<?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>226038</bug_id>
          
          <creation_ts>2021-05-20 12:46:53 -0700</creation_ts>
          <short_desc>[Modern Media Controls] REGRESSION(r254389) media controls needs the full list of language preferences for ordering tracks</short_desc>
          <delta_ts>2021-05-25 17:22:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</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=225994</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=225900</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=226059</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=226123</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=226252</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>
          <dependson>200043</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>msaboff</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1762100</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-20 12:46:53 -0700</bug_when>
    <thetext>media controls need access to the full list of language preferences in order to properly sort/order the list of tracks in the controls UI (e.g. if a `&lt;video&gt;` has subtitles for English, Spanish, and French, and the user has English (default) and French (alternate) configured in the Language &amp; Region view of System Preferences, WebKit should order the subtitles list English, French, and then Spanish)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762107</commentid>
    <comment_count>1</comment_count>
      <attachid>429210</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-20 12:58:47 -0700</bug_when>
    <thetext>Created attachment 429210
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762230</commentid>
    <comment_count>2</comment_count>
      <attachid>429210</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-05-20 17:12:37 -0700</bug_when>
    <thetext>Comment on attachment 429210
Patch

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

&gt; Source/JavaScriptCore/runtime/JSGlobalObject.h:253
&gt; +    typedef String (*DefaultLanguageFunctionPtr)(ShouldMinimizeLanguages);

I think this is philosophically the wrong direction. I can&apos;t think of a case where JavaScript would ever even have the possibility of passing No here. Can we consider reverting this typedef to what it was originally, and using a wrapper function instead?

&gt; Source/WTF/wtf/Language.cpp:197
&gt; +static Vector&lt;String&gt;&amp; platformPreferredLanguagesOverride()
&gt; +{
&gt; +    static LazyNeverDestroyed&lt;Vector&lt;String&gt;&gt; override;
&gt; +    static std::once_flag onceKey;
&gt; +    std::call_once(onceKey, [&amp;] {
&gt; +        override.construct();
&gt; +    });
&gt; +    return override;
&gt; +}
&gt; +
&gt; +Vector&lt;String&gt; platformUserPreferredLanguagesOverride()
&gt; +{
&gt; +    return platformPreferredLanguagesOverride();
&gt; +}
&gt; +
&gt; +void overridePlatformUserPreferredLanguages(const Vector&lt;String&gt;&amp; override)
&gt; +{
&gt; +    platformPreferredLanguagesOverride() = override;
&gt; +    languageDidChange();
&gt; +}

The &quot;platform&quot; prefix seems wrong here, since these functions are not platform-specific. (platformUserPreferredLanguages() is in LanguageCF.cpp and is thus platform-specific.)

It seems unfortunate to have two levels of overriding for what is (conceptually) a single feature. Can we do this instead by using Obj-C to swizzle out the runtime of +[NSLocale minimizedLanguagesFromLanguages:] in the web process (using injected bundle)?

&gt; Source/WTF/wtf/cf/LanguageCF.cpp:66
&gt; +    static LazyNeverDestroyed&lt;Vector&lt;String&gt;&gt; languages;
&gt; +    static std::once_flag onceKey;
&gt; +    std::call_once(onceKey, [&amp;] {
&gt; +        languages.construct();
&gt; +    });

What&apos;s the point of using &quot;Lazy&quot;NeverDestroyed if you always immediately construct it? Why not just use regular NeverDestroyed? I see that preferredLanguages() does this too.... maybe this pattern is more thread safe or something?

&gt; Source/WTF/wtf/cf/LanguageCF.cpp:147
&gt; +                    auto baseLanguage = baseLanguageFromLanguage(language);

Why are we doing this? I don&apos;t see any explanation at all in the changeLog. What&apos;s the relation between where or not we should be minimizing languages and whether or not base languages appear as duplicates in the list? I don&apos;t think we should be doing this.

&gt; Source/WTF/wtf/cf/LanguageCF.cpp:153
&gt;      }

Can we delete the double return at the end of this function while we&apos;re here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762232</commentid>
    <comment_count>3</comment_count>
      <attachid>429210</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-05-20 17:15:33 -0700</bug_when>
    <thetext>Comment on attachment 429210
Patch

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

&gt; Source/WTF/wtf/cf/LanguageCF.cpp:125
&gt;      if (userPreferredLanguages.isEmpty()) {

I wonder, since we&apos;re making changes in this area, if it makes sense to move this cache up to the non-platform-specific layer. All platforms will want to cache results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762235</commentid>
    <comment_count>4</comment_count>
      <attachid>429210</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-20 17:19:39 -0700</bug_when>
    <thetext>Comment on attachment 429210
Patch

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

&gt;&gt; Source/WTF/wtf/cf/LanguageCF.cpp:66
&gt;&gt; +    });
&gt; 
&gt; What&apos;s the point of using &quot;Lazy&quot;NeverDestroyed if you always immediately construct it? Why not just use regular NeverDestroyed? I see that preferredLanguages() does this too.... maybe this pattern is more thread safe or something?

We want to be using LazyNeverDestroyed&lt;&gt; with a call_once for global statics that can be accessed from multiple threads. This is because static variable initialization is not thread-safe in WebKit (because we disable that at compiler level for perf reasons).

That said, it looks to me here that ALL call sites grab the preferredLanguagesMutex lock before calling this. As a result, it does not seem we need any additional synchronization and we should be able to use NeverDestroyed and get rid of the call_once().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762533</commentid>
    <comment_count>5</comment_count>
      <attachid>429210</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-21 12:58:10 -0700</bug_when>
    <thetext>Comment on attachment 429210
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/JSGlobalObject.h:253
&gt;&gt; +    typedef String (*DefaultLanguageFunctionPtr)(ShouldMinimizeLanguages);
&gt; 
&gt; I think this is philosophically the wrong direction. I can&apos;t think of a case where JavaScript would ever even have the possibility of passing No here. Can we consider reverting this typedef to what it was originally, and using a wrapper function instead?

Sure.  I&apos;ll try using a `[] () { return defaultLanguage(); }` inline lambda.

&gt;&gt; Source/WTF/wtf/Language.cpp:197
&gt;&gt; +}
&gt; 
&gt; The &quot;platform&quot; prefix seems wrong here, since these functions are not platform-specific. (platformUserPreferredLanguages() is in LanguageCF.cpp and is thus platform-specific.)
&gt; 
&gt; It seems unfortunate to have two levels of overriding for what is (conceptually) a single feature. Can we do this instead by using Obj-C to swizzle out the runtime of +[NSLocale minimizedLanguagesFromLanguages:] in the web process (using injected bundle)?

The real thing I&apos;m after here is replacing `CFLocaleCopyPreferredLanguages` as we don&apos;t want to have to modify the bots to have more than one user configured language.  I agree that the naming is odd.  My thinking was that we&apos;re overriding how the platform gets the list of user languages.  I&apos;ll see about renaming.

&gt;&gt;&gt; Source/WTF/wtf/cf/LanguageCF.cpp:66
&gt;&gt;&gt; +    });
&gt;&gt; 
&gt;&gt; What&apos;s the point of using &quot;Lazy&quot;NeverDestroyed if you always immediately construct it? Why not just use regular NeverDestroyed? I see that preferredLanguages() does this too.... maybe this pattern is more thread safe or something?
&gt; 
&gt; We want to be using LazyNeverDestroyed&lt;&gt; with a call_once for global statics that can be accessed from multiple threads. This is because static variable initialization is not thread-safe in WebKit (because we disable that at compiler level for perf reasons).
&gt; 
&gt; That said, it looks to me here that ALL call sites grab the preferredLanguagesMutex lock before calling this. As a result, it does not seem we need any additional synchronization and we should be able to use NeverDestroyed and get rid of the call_once().

I&apos;ll change this to be a `CheckedLock` with `WTF_REQUIRES_LOCK` and `NeverDestroyed`.

&gt;&gt; Source/WTF/wtf/cf/LanguageCF.cpp:125
&gt;&gt;      if (userPreferredLanguages.isEmpty()) {
&gt; 
&gt; I wonder, since we&apos;re making changes in this area, if it makes sense to move this cache up to the non-platform-specific layer. All platforms will want to cache results.

While I do agree that caching could be done at a higher level, there appear to be other uses of `platformUserPreferredLanguages`.  I&apos;ll see if they still need to be there and if not I&apos;ll do this.

&gt;&gt; Source/WTF/wtf/cf/LanguageCF.cpp:147
&gt;&gt; +                    auto baseLanguage = baseLanguageFromLanguage(language);
&gt; 
&gt; Why are we doing this? I don&apos;t see any explanation at all in the changeLog. What&apos;s the relation between where or not we should be minimizing languages and whether or not base languages appear as duplicates in the list? I don&apos;t think we should be doing this.

This matches part of the implementation of `+[NSLocale minimizedLanguagesFromLanguages:]`.  The reason why we want this is that media tracks can specify `lang=&quot;en&quot;` (in addition to `lang=&quot;en-US&quot;`) and so as a result we want `&quot;en&quot;` to match if the user prefers `&quot;en-US&quot;` (and vice versa).  I&apos;ll add a comment in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762616</commentid>
    <comment_count>6</comment_count>
      <attachid>429350</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-21 15:22:03 -0700</bug_when>
    <thetext>Created attachment 429350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762713</commentid>
    <comment_count>7</comment_count>
      <attachid>429383</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-21 18:41:54 -0700</bug_when>
    <thetext>Created attachment 429383
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762780</commentid>
    <comment_count>8</comment_count>
      <attachid>429405</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-21 23:59:10 -0700</bug_when>
    <thetext>Created attachment 429405
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762783</commentid>
    <comment_count>9</comment_count>
      <attachid>429405</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-22 00:18:20 -0700</bug_when>
    <thetext>Comment on attachment 429405
Patch

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

&gt; Source/WTF/wtf/Language.h:38
&gt; +enum class ShouldMinimizeLanguages { Yes, No };

We prefer to put the No first in the enum, so that its value is 0, and Yes is 1.

&gt; Source/WTF/wtf/cf/LanguageCF.cpp:93
&gt; +            CFArrayAppendValue(array.get(), item.isolatedCopy().createCFString().get());

Why isolateCopy just to create a CFString?

&gt; Source/WTF/wtf/cocoa/LanguageCocoa.mm:70
&gt; +#if PLATFORM(IOS)

Could use #elif

Also, are we sure we want iOS only? Not Marzipan, WatchOS, TVOS?

&gt; Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp:480
&gt; +            temp.reserveCapacity(captionLanguagesCount + preferredLanguages.size());

reserveInitialCapacity() since you&apos;ve just created the vector.

&gt; Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp:482
&gt; +                temp.append(static_cast&lt;CFStringRef&gt;(CFArrayGetValueAtIndex(captionLanguages.get(), i)));

Can use uncheckedAppend() since you&apos;ve reserved capacity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762863</commentid>
    <comment_count>10</comment_count>
      <attachid>429441</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-22 16:48:15 -0700</bug_when>
    <thetext>Created attachment 429441
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762894</commentid>
    <comment_count>11</comment_count>
      <attachid>429458</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-22 22:34:49 -0700</bug_when>
    <thetext>Created attachment 429458
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762921</commentid>
    <comment_count>12</comment_count>
      <attachid>429469</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-23 11:43:51 -0700</bug_when>
    <thetext>Created attachment 429469
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762939</commentid>
    <comment_count>13</comment_count>
      <attachid>429472</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-23 13:05:47 -0700</bug_when>
    <thetext>Created attachment 429472
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762940</commentid>
    <comment_count>14</comment_count>
      <attachid>429473</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-23 13:10:41 -0700</bug_when>
    <thetext>Created attachment 429473
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762946</commentid>
    <comment_count>15</comment_count>
      <attachid>429476</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-23 13:19:47 -0700</bug_when>
    <thetext>Created attachment 429476
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762974</commentid>
    <comment_count>16</comment_count>
      <attachid>429483</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-23 16:14:47 -0700</bug_when>
    <thetext>Created attachment 429483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763123</commentid>
    <comment_count>17</comment_count>
      <attachid>429530</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-24 07:57:55 -0700</bug_when>
    <thetext>Created attachment 429530
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763145</commentid>
    <comment_count>18</comment_count>
      <attachid>429530</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-24 08:36:41 -0700</bug_when>
    <thetext>Comment on attachment 429530
Patch

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

&gt; Source/WTF/wtf/Language.cpp:40
&gt; +static CheckedLock cachedPlatformPreferredLanguagesLock;

Note that we should use Lock in new code, not CheckedLock. I am about to remove the CheckedLock alias.

Sorry about all the reshuffling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763298</commentid>
    <comment_count>19</comment_count>
      <attachid>429530</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-05-24 15:59:34 -0700</bug_when>
    <thetext>Comment on attachment 429530
Patch

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

&gt; Source/WTF/wtf/Language.cpp:219
&gt; +Vector&lt;String&gt; initialPlatformUserPreferredLanguagesOverrideForTesting()
&gt; +{
&gt; +    Locker locker { initialPlatformPreferredLanguagesOverrideForTestingLock };
&gt; +    return initialPlatformPreferredLanguagesOverrideForTesting();
&gt;  }

Devin and I talked about a way to remove this.

&gt; Source/WTF/wtf/cf/LanguageCF.cpp:115
&gt; +            // Convert languages with country codes to equivalent languages without country codes (if possible).
&gt; +            // e.g. &quot;en-US&quot; becomes &quot;en&quot;, which is useful when trying to match HTML `lang=&quot;en&quot;`.
&gt; +            auto baseLanguage = baseLanguageFromLanguage(platformLanguage);
&gt; +            if (baseLanguage &amp;&amp; baseLanguage != platformLanguage &amp;&amp; CFStringCompare(baseLanguage.get(), platformLanguage, 0) != kCFCompareEqualTo)
&gt; +                languages.append(httpStyleLanguageCode(baseLanguage.get(), shouldMinimizeLanguages));

Devin and I talked about a way to avoid this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763398</commentid>
    <comment_count>20</comment_count>
      <attachid>429616</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-24 19:56:42 -0700</bug_when>
    <thetext>Created attachment 429616
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763578</commentid>
    <comment_count>21</comment_count>
      <attachid>429616</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-05-25 11:00:28 -0700</bug_when>
    <thetext>Comment on attachment 429616
Patch

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

I can&apos;t review the media and subtitle specific code, but the language code stuff looks good.

&gt; Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig:35
&gt; +// Needed by `Source/WTF/wtf/cocoa/LanguageCocoa.mm`.
&gt; +WK_INTERNATIONAL_SUPPORT_LDFLAGS = -framework InternationalSupport;
&gt; +
&gt; +OTHER_LDFLAGS_BASE = $(OTHER_LDFLAGS_HIDE_SYMBOLS) -iframework $(SDK_DIR)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks -force_load &quot;$(BUILT_PRODUCTS_DIR)/DerivedSources/JavaScriptCore/libWTF.a&quot; $(WK_INTERNATIONAL_SUPPORT_LDFLAGS);

Why is this necessary? The only change to LanguageCocoa.mm is a comment.

&gt; Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp:486
&gt; +    if (!testingMode() &amp;&amp; MediaAccessibilityLibrary()) {
&gt; +        auto captionLanguages = adoptCF(MACaptionAppearanceCopySelectedLanguages(kMACaptionAppearanceDomainUser));
&gt; +        CFIndex captionLanguagesCount = captionLanguages ? CFArrayGetCount(captionLanguages.get()) : 0;
&gt; +        if (captionLanguagesCount) {
&gt; +            Vector&lt;String&gt; temp;
&gt; +            temp.reserveInitialCapacity(captionLanguagesCount + preferredLanguages.size());
&gt; +            for (CFIndex i = 0; i &lt; captionLanguagesCount; i++)
&gt; +                temp.uncheckedAppend(static_cast&lt;CFStringRef&gt;(CFArrayGetValueAtIndex(captionLanguages.get(), i)));
&gt; +            temp.appendVector(WTFMove(preferredLanguages));
&gt; +            preferredLanguages = WTFMove(temp);
&gt;          }
&gt;      }

I think WebKit prefers early return style like the red code below this, rather than the triangle style here.

&gt; LayoutTests/media/modern-media-controls/tracks-support/sorted-by-user-preferred-languages.html:36
&gt; +    shouldBecomeDifferent(&quot;shadowRoot.querySelector(&apos;button.tracks&apos;)&quot;, &quot;null&quot;, () =&gt; {

This is a big scary. Does this only work because we&apos;re inside a test?

&gt; WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/101500/InternationalSupport.framework/InternationalSupport.tbd:7
&gt; +--- !tapi-tbd-v3
&gt; +archs:           [ x86_64 ]
&gt; +install-name:    &apos;/System/Library/PrivateFrameworks/InternationalSupport.framework/InternationalSupport&apos;
&gt; +platform: zippered
&gt; +exports:
&gt; +  - archs:           [ x86_64 ]
&gt; +...

Are you sure you need these .tbd files? I don&apos;t think we&apos;re calling anything additional from InternationalSupport in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763579</commentid>
    <comment_count>22</comment_count>
      <attachid>429616</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-05-25 11:00:55 -0700</bug_when>
    <thetext>Comment on attachment 429616
Patch

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

&gt;&gt; LayoutTests/media/modern-media-controls/tracks-support/sorted-by-user-preferred-languages.html:36
&gt;&gt; +    shouldBecomeDifferent(&quot;shadowRoot.querySelector(&apos;button.tracks&apos;)&quot;, &quot;null&quot;, () =&gt; {
&gt; 
&gt; This is a big scary. Does this only work because we&apos;re inside a test?

*bit scary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763595</commentid>
    <comment_count>23</comment_count>
      <attachid>429616</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-05-25 11:57:05 -0700</bug_when>
    <thetext>Comment on attachment 429616
Patch

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

The media specific parts look fine to me modulo the comment about the test.

&gt; LayoutTests/media/modern-media-controls/tracks-support/sorted-by-user-preferred-languages.html:9
&gt; +    &lt;track src=&quot;../../lorem-ipsum.vtt&quot; kind=&quot;captions&quot;     srclang=&quot;en&quot; label=&quot;en&quot;&gt;

As we discussed, I think it would be less confusing to not use the same string for `label and `srclang`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763682</commentid>
    <comment_count>24</comment_count>
      <attachid>429616</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-25 14:14:53 -0700</bug_when>
    <thetext>Comment on attachment 429616
Patch

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

&gt;&gt; Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig:35
&gt;&gt; +OTHER_LDFLAGS_BASE = $(OTHER_LDFLAGS_HIDE_SYMBOLS) -iframework $(SDK_DIR)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks -force_load &quot;$(BUILT_PRODUCTS_DIR)/DerivedSources/JavaScriptCore/libWTF.a&quot; $(WK_INTERNATIONAL_SUPPORT_LDFLAGS);
&gt; 
&gt; Why is this necessary? The only change to LanguageCocoa.mm is a comment.

I was using this in previous patches to get non-internal EWS working.  It may not be necessary anymore.  Will try without it.

&gt;&gt;&gt; LayoutTests/media/modern-media-controls/tracks-support/sorted-by-user-preferred-languages.html:36
&gt;&gt;&gt; +    shouldBecomeDifferent(&quot;shadowRoot.querySelector(&apos;button.tracks&apos;)&quot;, &quot;null&quot;, () =&gt; {
&gt;&gt; 
&gt;&gt; This is a big scary. Does this only work because we&apos;re inside a test?
&gt; 
&gt; *bit scary

Yes this is from `Internals::shadowRoot`.  We use this extensively in media controls tests.  It is not exposed to the web.

&gt;&gt; WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/101500/InternationalSupport.framework/InternationalSupport.tbd:7
&gt;&gt; +...
&gt; 
&gt; Are you sure you need these .tbd files? I don&apos;t think we&apos;re calling anything additional from InternationalSupport in this patch.

ditto (JavaScriptCore.xcconfig:35)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763690</commentid>
    <comment_count>25</comment_count>
      <attachid>429694</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-25 14:50:15 -0700</bug_when>
    <thetext>Created attachment 429694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763763</commentid>
    <comment_count>26</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-25 17:15:10 -0700</bug_when>
    <thetext>Committed r278064 (238145@main): &lt;https://commits.webkit.org/238145@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429694.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763769</commentid>
    <comment_count>27</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-25 17:16:49 -0700</bug_when>
    <thetext>&lt;rdar://problem/78484571&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429210</attachid>
            <date>2021-05-20 12:58:47 -0700</date>
            <delta_ts>2021-05-21 15:22:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226038-20210520135846.patch</filename>
            <type>text/plain</type>
            <size>33175</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDUwMDY0YmE1ZTZkZDI0ZDk3NjE5NDhlYmJlYWJk
ZjdkMzk2ZTVjNzguLjAyMjNhMWMzMTkyY2IxMjVjM2E2YjRhZDQ0MzZjNzcxOTVlOTg0ZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1LTIwICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENv
bnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxs
IGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWEgY29udHJvbHMg
bmVlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBpbiBv
cmRlciB0byBwcm9wZXJseQorICAgICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNrcyBp
biB0aGUgY29udHJvbHMgVUkuIEZvciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3VidGl0
bGVzCisgICAgICAgIGZvciBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhlIHVz
ZXIgaGFzIEVuZ2xpc2ggKGRlZmF1bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAgICAg
Y29uZmlndXJlZCBpbiB0aGUgTGFuZ3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJlZmVy
ZW5jZXMgb24gbWFjT1MsIFdlYktpdCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRpdGxl
cyBsaXN0IEVuZ2xpc2gsIEZyZW5jaCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3Bw
OgorICAgICAgICAoSlNDOjpkZWZhdWx0TG9jYWxlKToKKyAgICAgICAgVXBkYXRlIHVzYWdlIG9m
IGBXVEY6OmRlZmF1bHRMYW5ndWFnZWAgdG8gYWxzbyBoYXZlIGBXVEY6OlNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzYC4KKwogMjAyMS0wNS0yMCAgVHVvbWFzIEthcmtrYWluZW4gIDx0dW9tYXMud2Vi
a2l0QGFwcGxlLmNvbT4KIAogICAgICAgICAkdm0gc2hvdWxkIGhhdmUgYSBmdW5jdGlvbiBmb3Ig
Y2hlY2tpbmcgaWYgQVNhbiBpcyBlbmFibGVkIHNpbWlsYXIgdG8gJHZtLmFzc2VydEVuYWJsZWQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggMjY0NmVhOTYyOTVlODc2OTk5YjEyNmU5MzU4OTY2ZWYwYWU2MzU4OC4uNmVkNGM4OGNm
YzA0YzhjZmM0ODRlY2M1YmFiMGMxOGQwZWEzZWYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAy
MS0wNS0yMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW01v
ZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRpYSBjb250cm9scyBu
ZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZvciBvcmRlcmluZyB0
cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1l
ZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qgb2YgbGFuZ3VhZ2UgcHJl
ZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29ydC9vcmRlciB0aGUgbGlz
dCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBsZSwgaWYgYSBgPHZpZGVv
PmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3BhbmlzaCwgYW5kIEZyZW5j
aCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQgRnJlbmNoIChhbHRlcm5h
dGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYgUmVnaW9uIHZpZXcgb2Yg
U3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxkIG9yZGVyCisgICAgICAg
IHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0aGVuIFNwYW5pc2guCisK
KyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuaDoKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuY3BwOgor
ICAgICAgICAoV1RGOjpkZWZhdWx0TGFuZ3VhZ2UpOgorICAgICAgICAoV1RGOjp1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKFdURjo6cGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNP
dmVycmlkZSk6IEFkZGVkLgorICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXNPdmVycmlkZSk6IEFkZGVkLgorICAgICAgICAoV1RGOjpvdmVycmlkZVBsYXRmb3JtVXNl
clByZWZlcnJlZExhbmd1YWdlcyk6IEFkZGVkLgorICAgICAgICAqIHd0Zi9jZi9MYW5ndWFnZUNG
LmNwcDoKKyAgICAgICAgKFdURjo6bWluaW1pemVkUHJlZmVycmVkTGFuZ3VhZ2VzKTogQWRkZWQu
CisgICAgICAgIChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2VEaWRDaGFuZ2UpOgorICAgICAgICAoV1RG
OjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICAqIHd0Zi9jb2NvYS9M
YW5ndWFnZUNvY29hLm1tOgorICAgICAgICAoV1RGOjpiYXNlTGFuZ3VhZ2VGcm9tTGFuZ3VhZ2Up
OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5j
cHA6CisgICAgICAgIChXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAg
ICAgICogd3RmL3NwaS9jb2NvYS9OU0xvY2FsZVNQSS5oOgorICAgICAgICAqIHd0Zi91bml4L0xh
bmd1YWdlVW5peC5jcHA6CisgICAgICAgIChXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlcyk6CisgICAgICAgICogd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHA6CisgICAgICAgIChXVEY6
OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgIEFkZCBgV1RGOjpTaG91
bGRNaW5pbWl6ZUxhbmd1YWdlc2AgdGhhdCBjb250cm9scyB3aGV0aGVyIGBXVEY6Om1pbmltaXpl
ZFByZWZlcnJlZExhbmd1YWdlc2AKKyAgICAgICAgaXMgY2FsbGVkLiBTaW5jZSB0aGUgcmVzdWx0
IGlzIGNhY2hlZCwgY3JlYXRlIHNlcGFyYXRlIGBWZWN0b3I8U3RyaW5nPmAgZm9yIGVhY2ggZW51
bSB2YWx1ZS4KKwogMjAyMS0wNS0xOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBOYXZpZ2F0aW9uIFRpbWluZyBM
ZXZlbCAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggNjA4Mjk4ZDQ3YTAzZDk2YzQxOWIxN2FlZWRiZTM4NTlhZjJk
NWIwMC4uNzQ3M2IyYzU5NmU0N2UyMTE3NDM5NzVjMTgwMmVkZjM4ODRjYmY4NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTA1LTIwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFw
cGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xzXSBSRUdSRVNTSU9OKHIy
NTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxsIGxpc3Qgb2YgbGFuZ3VhZ2UgcHJl
ZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTWVkaWEgY29udHJvbHMgbmVlZCBhY2Nlc3MgdG8gdGhlIGZ1
bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBpbiBvcmRlciB0byBwcm9wZXJseQorICAg
ICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNrcyBpbiB0aGUgY29udHJvbHMgVUkuIEZv
ciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3VidGl0bGVzCisgICAgICAgIGZvciBFbmds
aXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhlIHVzZXIgaGFzIEVuZ2xpc2ggKGRlZmF1
bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAgICAgY29uZmlndXJlZCBpbiB0aGUgTGFu
Z3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJlZmVyZW5jZXMgb24gbWFjT1MsIFdlYktp
dCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRpdGxlcyBsaXN0IEVuZ2xpc2gsIEZyZW5j
aCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAgICAgICBUZXN0czogTGFuZ3VhZ2UuU2hvdWxkTWlu
aW1pemVMYW5ndWFnZXNZZXMKKyAgICAgICAgICAgICAgIExhbmd1YWdlLlNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzTm8KKworICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpwcmVmZXJyZWRMYW5n
dWFnZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6
dGV4dFRyYWNrU2VsZWN0aW9uU2NvcmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlv
blVzZXJQcmVmZXJlbmNlczo6cHJpbWFyeUF1ZGlvVHJhY2tMYW5ndWFnZU92ZXJyaWRlIGNvbnN0
KToKKyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpwcmVmZXJyZWRM
YW5ndWFnZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGREaXNwbGF5U3RyaW5nRm9y
VHJhY2tCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OnRleHRUcmFja0NvbXBhcmUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZG
T2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDOjp1
cGRhdGVPcHRpb25zKToKKwogMjAyMS0wNS0yMCAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5j
b20+CiAKICAgICAgICAgQWxsb3cgcGFzc2luZyBhIFZpc2libGVSZWN0Q29udGV4dCB3aGVuIGNh
bGN1bGF0aW5nIHRoZSBjbGlwcGVkIG92ZXJmbG93IHJlY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5kZXggZDVhY2NlMDM0NmU5ZWVmMDJjMzFjYzMx
YzFjMzQ0YWE3YzUwM2MzYS4uZGFiMmZjYjcwZjdlMTFhYzM5ZjQzYTUzZjNlMWRmNDg3M2U5YTlh
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKQEAg
LTczOSw3ICs3MzksNyBAQCBTdHJpbmcgZGVmYXVsdExvY2FsZShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQogICAgIC8vIGJlIGRldGVybWluZWQgYnkgV2ViQ29yZS1zcGVjaWZpYyBsb2dp
YyBsaWtlIHNvbWUgV0sgc2V0dGluZ3MuIFVzdWFsbHkgdGhpcyB3aWxsIHJldHVybiB0aGUKICAg
ICAvLyBzYW1lIHRoaW5nIGFzIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKVswXS4KICAgICBpZiAo
YXV0byBkZWZhdWx0TGFuZ3VhZ2UgPSBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRh
YmxlKCktPmRlZmF1bHRMYW5ndWFnZSkgewotICAgICAgICBTdHJpbmcgbG9jYWxlID0gY2Fub25p
Y2FsaXplTGFuZ3VhZ2VUYWcoZGVmYXVsdExhbmd1YWdlKCkudXRmOCgpKTsKKyAgICAgICAgU3Ry
aW5nIGxvY2FsZSA9IGNhbm9uaWNhbGl6ZUxhbmd1YWdlVGFnKGRlZmF1bHRMYW5ndWFnZShTaG91
bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzKS51dGY4KCkpOwogICAgICAgICBpZiAoIWxvY2FsZS5p
c0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gbG9jYWxlOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDY0OGEzMGJiM2Uy
NzgzMzAwNTRhYjFiNGQxMDI5OGE3ZDQzY2NkNGYuLmVlMjIyNGQ4ODQ2ZDM0MTI1NzRlODI5ZjBi
YzJkYTM1NzY1MGJmMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuaApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgPGFycmF5PgogI2luY2x1
ZGUgPHd0Zi9GaXhlZFZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVk
ZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CiAKQEAgLTI0OSw3ICsyNTAsNyBAQCBzdHJ1Y3QgR2xvYmFsT2JqZWN0
TWV0aG9kVGFibGUgewogICAgIHR5cGVkZWYgU2NyaXB0RXhlY3V0aW9uU3RhdHVzICgqU2NyaXB0
RXhlY3V0aW9uU3RhdHVzUHRyKShKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiBzY3JpcHRFeGVj
dXRpb25Pd25lcik7CiAgICAgU2NyaXB0RXhlY3V0aW9uU3RhdHVzUHRyIHNjcmlwdEV4ZWN1dGlv
blN0YXR1czsKIAotICAgIHR5cGVkZWYgU3RyaW5nICgqRGVmYXVsdExhbmd1YWdlRnVuY3Rpb25Q
dHIpKCk7CisgICAgdHlwZWRlZiBTdHJpbmcgKCpEZWZhdWx0TGFuZ3VhZ2VGdW5jdGlvblB0ciko
U2hvdWxkTWluaW1pemVMYW5ndWFnZXMpOwogICAgIERlZmF1bHRMYW5ndWFnZUZ1bmN0aW9uUHRy
IGRlZmF1bHRMYW5ndWFnZTsKIAogICAgIHR5cGVkZWYgSlNQcm9taXNlKiAoKkNvbXBpbGVTdHJl
YW1pbmdQdHIpKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9MYW5ndWFnZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKaW5kZXgg
MTcyZDA5OGI4NGQ1NjA4MTRhNDlmYjdkYWI4YWYzZDhmZTlhNTg0Mi4uZWJiM2QzM2ViNTMwYmI2
YmQ1OGNhYzM2ZjdmNzU4ZmJiYjNkMzBjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTGFu
Z3VhZ2UuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcApAQCAtNjksOSArNjks
OSBAQCB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCkKICAgICB9CiB9CiAKLVN0cmluZyBkZWZhdWx0
TGFuZ3VhZ2UoKQorU3RyaW5nIGRlZmF1bHRMYW5ndWFnZShTaG91bGRNaW5pbWl6ZUxhbmd1YWdl
cyBzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcykKIHsKLSAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFn
ZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgVmVjdG9yPFN0cmluZz4gbGFuZ3Vh
Z2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcyhzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyk7CiAg
ICAgaWYgKGxhbmd1YWdlcy5zaXplKCkpCiAgICAgICAgIHJldHVybiBsYW5ndWFnZXNbMF07CiAK
QEAgLTEwOCw3ICsxMDgsNyBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gaXNvbGF0ZWRDb3B5KGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBzdHJpbmdzKQogICAgIHJldHVybiBjb3B5OwogfQogCi1WZWN0
b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKK1ZlY3RvcjxTdHJpbmc+IHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgc2hvdWxkTWluaW1pemVM
YW5ndWFnZXMpCiB7CiAgICAgewogICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNNdXRleCk7CkBAIC0xMTcsNyArMTE3LDcgQEAgVmVjdG9yPFN0cmlu
Zz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpCiAgICAgICAgICAgICByZXR1cm4gaXNvbGF0ZWRD
b3B5KG92ZXJyaWRlKTsKICAgICB9CiAKLSAgICByZXR1cm4gcGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKCk7CisgICAgcmV0dXJuIHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhz
aG91bGRNaW5pbWl6ZUxhbmd1YWdlcyk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgY2Fub25pY2FsTGFu
Z3VhZ2VJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2VDb2RlKQpAQCAtMTc1LDYgKzE3
NSwyNyBAQCBzaXplX3QgaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdlSW5MaXN0KGNvbnN0IFN0
cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFZlY3RvcjxTdAogICAgIHJldHVybiBsYW5ndWFnZUxpc3Qu
c2l6ZSgpOwogfQogCitzdGF0aWMgVmVjdG9yPFN0cmluZz4mIHBsYXRmb3JtUHJlZmVycmVkTGFu
Z3VhZ2VzT3ZlcnJpZGUoKQoreworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8VmVjdG9y
PFN0cmluZz4+IG92ZXJyaWRlOworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlS2V5Owor
ICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXksIFsmXSB7CisgICAgICAgIG92ZXJyaWRlLmNvbnN0
cnVjdCgpOworICAgIH0pOworICAgIHJldHVybiBvdmVycmlkZTsKK30KKworVmVjdG9yPFN0cmlu
Zz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKQoreworICAgIHJldHVy
biBwbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCk7Cit9CisKK3ZvaWQgb3ZlcnJp
ZGVQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG92
ZXJyaWRlKQoreworICAgIHBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKSA9IG92
ZXJyaWRlOworICAgIGxhbmd1YWdlRGlkQ2hhbmdlKCk7Cit9CisKIFN0cmluZyBkaXNwbGF5TmFt
ZUZvckxhbmd1YWdlTG9jYWxlKGNvbnN0IFN0cmluZyYgbG9jYWxlTmFtZSkKIHsKICNpZiBVU0Uo
Q0YpICYmICFQTEFURk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFn
ZS5oIGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaAppbmRleCBmMDc0ZDc1NjhkMDAyZTkzMmE1
MzI2YmRiNTJkN2ZiOGMwNjU4MTgzLi4xYzdmMTdlYjBmMzYyMTNiNjQ4MGRlMzE1NjU5NWY0YzNl
YWNlNDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0xhbmd1YWdlLmgKQEAgLTM1LDEyICszNSwxNiBAQAogCiBuYW1lc3BhY2UgV1RG
IHsKIAotV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoKTsgLy8gVGhy
ZWFkLXNhZmUuCi1XVEZfRVhQT1JUX1BSSVZBVEUgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJl
ZExhbmd1YWdlcygpOyAvLyBUaHJlYWQtc2FmZSwgcmV0dXJucyBCQ1AgNDcgbGFuZ3VhZ2UgdGFn
cy4KK2VudW0gY2xhc3MgU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgeyBZZXMsIE5vIH07CisKK1dU
Rl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgZGVmYXVsdExhbmd1YWdlKFNob3VsZE1pbmltaXplTGFu
Z3VhZ2VzID0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Olllcyk7IC8vIFRocmVhZC1zYWZlLgor
V1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMo
U2hvdWxkTWluaW1pemVMYW5ndWFnZXMgPSBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzKTsg
Ly8gVGhyZWFkLXNhZmUsIHJldHVybnMgQkNQIDQ3IGxhbmd1YWdlIHRhZ3MuCiBXVEZfRVhQT1JU
X1BSSVZBVEUgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCk7
CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mKTsKIFdURl9FWFBPUlRfUFJJVkFURSBzaXplX3QgaW5kZXhP
ZkJlc3RNYXRjaGluZ0xhbmd1YWdlSW5MaXN0KGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZUxpc3QsIGJvb2wmIGV4YWN0TWF0Y2gpOwotV1RGX0VY
UE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cygpOworV1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZl
cnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9IFNob3VsZE1pbmltaXplTGFu
Z3VhZ2VzOjpZZXMpOworV1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCk7CitXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBvdmVycmlkZVBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpOwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcGxhdGZvcm1MYW5ndWFnZURpZENoYW5n
ZSgpOwogCiAvLyBDYWxsZWQgZnJvbSBwbGF0Zm9ybSBzcGVjaWZpYyBjb2RlIHdoZW4gdGhlIHVz
ZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2UocykgY2hhbmdlLgpAQCAtNTYsMTYgKzYwLDIwIEBAIFdU
Rl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShjb25z
dCBTdHJpbmcmKTsKIGJvb2wgY2FuTWluaW1pemVMYW5ndWFnZXMoKTsKIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGxpc3RlbkZvckxhbmd1YWdlQ2hhbmdlTm90aWZpY2F0aW9ucygpOwogUmV0YWlu
UHRyPENGQXJyYXlSZWY+IG1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFnZXMoQ0ZBcnJheVJl
Zik7CitSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGJhc2VMYW5ndWFnZUZyb21MYW5ndWFnZShDRlN0
cmluZ1JlZik7CiAjZW5kaWYKIAogfQogCit1c2luZyBXVEY6OlNob3VsZE1pbmltaXplTGFuZ3Vh
Z2VzOwogdXNpbmcgV1RGOjpkZWZhdWx0TGFuZ3VhZ2U7CiB1c2luZyBXVEY6OnVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXM7CiB1c2luZyBXVEY6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZTsK
IHVzaW5nIFdURjo6b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwogdXNpbmcgV1RGOjpp
bmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3Q7CiB1c2luZyBXVEY6OnBsYXRmb3JtVXNl
clByZWZlcnJlZExhbmd1YWdlczsKK3VzaW5nIFdURjo6cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFu
Z3VhZ2VzT3ZlcnJpZGU7Cit1c2luZyBXVEY6Om92ZXJyaWRlUGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzOwogdXNpbmcgV1RGOjphZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyOwogdXNpbmcg
V1RGOjpyZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyOwogdXNpbmcgV1RGOjpkaXNwbGF5TmFt
ZUZvckxhbmd1YWdlTG9jYWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY2YvTGFuZ3Vh
Z2VDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcAppbmRleCA1M2MwZWYw
ZGMwMGIzOTQyZDM5YjY1OGE4ZGNjMGQ2ZTA0Y2Y2ZDEzLi5lYjg2Y2E5OGVkYTNiY2RlNjIwMzg5
ZDBmZWU0NTU0YTAyYTU2NDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFn
ZUNGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcApAQCAtNTcsNiAr
NTcsMTYgQEAgc3RhdGljIFZlY3RvcjxTdHJpbmc+JiBwcmVmZXJyZWRMYW5ndWFnZXMoKQogICAg
IHJldHVybiBsYW5ndWFnZXM7CiB9CiAKK3N0YXRpYyBWZWN0b3I8U3RyaW5nPiYgbWluaW1pemVk
UHJlZmVycmVkTGFuZ3VhZ2VzKCkKK3sKKyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFZl
Y3RvcjxTdHJpbmc+PiBsYW5ndWFnZXM7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VL
ZXk7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUtleSwgWyZdIHsKKyAgICAgICAgbGFuZ3VhZ2Vz
LmNvbnN0cnVjdCgpOworICAgIH0pOworICAgIHJldHVybiBsYW5ndWFnZXM7Cit9CisKIHN0YXRp
YyBTdHJpbmcgaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKENGU3RyaW5nUmVmIGxhbmd1YWdlKQogewog
ICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcHJlZmVycmVkTGFuZ3VhZ2VDb2RlOwpAQCAtOTMs
NiArMTAzLDcgQEAgdm9pZCBwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdlKCkKICAgICB7CiAgICAg
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2socHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXgpOwogICAg
ICAgICBwcmVmZXJyZWRMYW5ndWFnZXMoKS5jbGVhcigpOworICAgICAgICBtaW5pbWl6ZWRQcmVm
ZXJyZWRMYW5ndWFnZXMoKS5jbGVhcigpOwogICAgIH0KIH0KIApAQCAtMTA2LDIwICsxMTcsMzgg
QEAgdm9pZCBsaXN0ZW5Gb3JMYW5ndWFnZUNoYW5nZU5vdGlmaWNhdGlvbnMoKQogI2VuZGlmCiB9
CiAKLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCitWZWN0
b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVM
YW5ndWFnZXMgc2hvdWxkTWluaW1pemVMYW5ndWFnZXMpCiB7CiAgICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhwcmVmZXJyZWRMYW5ndWFnZXNNdXRleCk7Ci0gICAgVmVjdG9yPFN0cmluZz4mIHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMgPSBwcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBWZWN0b3I8
U3RyaW5nPiYgdXNlclByZWZlcnJlZExhbmd1YWdlcyA9IHNob3VsZE1pbmltaXplTGFuZ3VhZ2Vz
ID09IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMgPyBtaW5pbWl6ZWRQcmVmZXJyZWRMYW5n
dWFnZXMoKSA6IHByZWZlcnJlZExhbmd1YWdlcygpOwogCiAgICAgaWYgKHVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFJldGFpblB0cjxDRkFycmF5UmVmPiBsYW5n
dWFnZXMgPSBhZG9wdENGKENGTG9jYWxlQ29weVByZWZlcnJlZExhbmd1YWdlcygpKTsKLSAgICAg
ICAgbGFuZ3VhZ2VzID0gbWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlcyhsYW5ndWFnZXMu
Z2V0KCkpOworICAgICAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gbGFuZ3VhZ2VzOworICAgICAg
ICBpZiAoYXV0byBvdmVycmlkZSA9IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJy
aWRlKCk7ICFvdmVycmlkZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGF1dG8gYXJyYXkgPSBh
ZG9wdENGKENGQXJyYXlDcmVhdGVNdXRhYmxlKDAsIG92ZXJyaWRlLnNpemUoKSwgJmtDRlR5cGVB
cnJheUNhbGxCYWNrcykpOworICAgICAgICAgICAgZm9yIChhdXRvJiBpdGVtIDogb3ZlcnJpZGUp
CisgICAgICAgICAgICAgICAgQ0ZBcnJheUFwcGVuZFZhbHVlKGFycmF5LmdldCgpLCBpdGVtLmlz
b2xhdGVkQ29weSgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOworICAgICAgICAgICAgbGFuZ3Vh
Z2VzID0gV1RGTW92ZShhcnJheSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbGFuZ3Vh
Z2VzID0gYWRvcHRDRihDRkxvY2FsZUNvcHlQcmVmZXJyZWRMYW5ndWFnZXMoKSk7CisKKyAgICAg
ICAgaWYgKHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID09IFNob3VsZE1pbmltaXplTGFuZ3VhZ2Vz
OjpZZXMpCisgICAgICAgICAgICBsYW5ndWFnZXMgPSBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFu
Z3VhZ2VzKGxhbmd1YWdlcy5nZXQoKSk7CisKICAgICAgICAgQ0ZJbmRleCBsYW5ndWFnZUNvdW50
ID0gQ0ZBcnJheUdldENvdW50KGxhbmd1YWdlcy5nZXQoKSk7CiAgICAgICAgIGlmICghbGFuZ3Vh
Z2VDb3VudCkKICAgICAgICAgICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5kKCJlbiIp
OwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGxh
bmd1YWdlQ291bnQ7IGkrKykKLSAgICAgICAgICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
LmFwcGVuZChodHRwU3R5bGVMYW5ndWFnZUNvZGUoc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENG
QXJyYXlHZXRWYWx1ZUF0SW5kZXgobGFuZ3VhZ2VzLmdldCgpLCBpKSkpKTsKKyAgICAgICAgICAg
IGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGxhbmd1YWdlQ291bnQ7IGkrKykgeworICAgICAgICAg
ICAgICAgIGF1dG8gbGFuZ3VhZ2UgPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZBcnJheUdl
dFZhbHVlQXRJbmRleChsYW5ndWFnZXMuZ2V0KCksIGkpKTsKKyAgICAgICAgICAgICAgICB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZChodHRwU3R5bGVMYW5ndWFnZUNvZGUobGFuZ3VhZ2Up
KTsKKworICAgICAgICAgICAgICAgIGlmIChzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9PSBTaG91
bGRNaW5pbWl6ZUxhbmd1YWdlczo6Tm8pIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBiYXNl
TGFuZ3VhZ2UgPSBiYXNlTGFuZ3VhZ2VGcm9tTGFuZ3VhZ2UobGFuZ3VhZ2UpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoQ0ZTdHJpbmdDb21wYXJlKGJhc2VMYW5ndWFnZS5nZXQoKSwgbGFuZ3Vh
Z2UsIDApICE9IGtDRkNvbXBhcmVFcXVhbFRvKQorICAgICAgICAgICAgICAgICAgICAgICAgdXNl
clByZWZlcnJlZExhbmd1YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKGJhc2VMYW5n
dWFnZS5nZXQoKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2Nv
YS5tbSBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0KaW5kZXggNWJhYjdj
N2IyNjdjMGFkZDI1NWIyZmU2NzYyZWU2NDBlMDU4ODk5My4uMmViY2NmYjQ0YWQ3Y2I4MzI1N2Yw
ZDA3NmI2MmM5OTJjOGM2Mzk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY29jb2EvTGFu
Z3VhZ2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1t
CkBAIC01OCw0ICs1OCw5IEBAIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfQkVHSU4KIEFM
TE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiB9CiAKK1JldGFpblB0cjxDRlN0cmluZ1Jl
Zj4gYmFzZUxhbmd1YWdlRnJvbUxhbmd1YWdlKENGU3RyaW5nUmVmIGxhbmd1YWdlKQoreworICAg
IHJldHVybiAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpW05TTG9jYWxlIGJhc2VMYW5ndWFnZUZyb21M
YW5ndWFnZTooX19icmlkZ2UgTlNTdHJpbmcgKilsYW5ndWFnZV07Cit9CisKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0aW9uL0xhbmd1YWdlUGxheVN0YXRpb24uY3BwIGIv
U291cmNlL1dURi93dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5jcHAKaW5kZXgg
ZDQ1MzdhNjk0MGI1ZTAyMmJmNWU1Y2RmNzFhODYzZDMzMDlkZjYxYy4uY2FmMTU0OWY4MDAyYzEz
N2UyZjFhMDYyMjgxODE1NGY1NjI1NGU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvcGxh
eXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvcGxh
eXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFt
ZXNwYWNlIFdURiB7CiAKLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlcygpCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hv
dWxkTWluaW1pemVMYW5ndWFnZXMpCiB7CiAgICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2EvTlNMb2NhbGVTUEkuaCBiL1Nv
dXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9OU0xvY2FsZVNQSS5oCmluZGV4IDVjZWYxNjQwMzE2YjQ3
M2E3MWJlN2JiYTYxYTg4Mjc0ZjI4MTA2MjEuLmNhOTgyMDFjNjE2M2EzNzllZTFkOGYyY2E0ZjU1
ZDM2ZmZhYmYwYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9OU0xvY2Fs
ZVNQSS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9OU0xvY2FsZVNQSS5oCkBAIC0z
Miw2ICszMiw3IEBACiAjZW5kaWYKIAogQGludGVyZmFjZSBOU0xvY2FsZSAoKQorKyAobm9ubnVs
bCBOU1N0cmluZyAqKWJhc2VMYW5ndWFnZUZyb21MYW5ndWFnZToobm9ubnVsbCBOU1N0cmluZyAq
KWxhbmd1YWdlSUQ7CiArIChub25udWxsIE5TQXJyYXk8TlNTdHJpbmcgKj4gKiltaW5pbWl6ZWRM
YW5ndWFnZXNGcm9tTGFuZ3VhZ2VzOihub25udWxsIE5TQXJyYXk8TlNTdHJpbmcgKj4gKilsYW5n
dWFnZXM7CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VV
bml4LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcAppbmRleCAzMWM3
NTc0NzJlZWFiNjQwNzI2ZTk0YzVjNTc1MDcxOGZhMzkzOGQxLi5hZjk0YmIwNmNjMzhkZDJhODU5
NWJmYmI3NzE2OTBmOTJkYjQ4YWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xh
bmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3Bw
CkBAIC00Miw3ICs0Miw3IEBAIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiAgICAg
cmV0dXJuIG5vcm1hbGl6ZWREZWZhdWx0OwogfQogCi1WZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewogICAgIHJldHVybiB7IHBs
YXRmb3JtTGFuZ3VhZ2UoKSB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvd2luL0xh
bmd1YWdlV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAKaW5kZXgg
OWU3YmZmMTA5Nzk4YzY2N2FlNzUyYWYyYWZkOGY0ZmEzZDlkYzI2My4uYTNmYzc5ZjVlZjIyNGRj
MjkyYTJlZTFkMTE4MTdlYzQ2NDFlNThmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvd2lu
L0xhbmd1YWdlV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3Bw
CkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiAgICAg
cmV0dXJuIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlOwogfQogCi1WZWN0b3I8U3RyaW5nPiBwbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewogICAgIHJldHVy
biB7IHBsYXRmb3JtTGFuZ3VhZ2UoKSB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKaW5kZXggZDNlNDVlOGJiNGM3ZDIwMGNkM2E0YTIxMjgy
MGRlNGVkZmNkMWJmOC4uNTVmYTA5NjRjN2ZkOTg4NjM1ZWYzMzI1Y2JkYWJmMGUyMTM0NDg0YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCkBA
IC0xNzAsNyArMTcwLDcgQEAgdm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpjYXB0aW9uUHJl
ZmVyZW5jZXNDaGFuZ2VkKCkKIAogVmVjdG9yPFN0cmluZz4gQ2FwdGlvblVzZXJQcmVmZXJlbmNl
czo6cHJlZmVycmVkTGFuZ3VhZ2VzKCkgY29uc3QKIHsKLSAgICBWZWN0b3I8U3RyaW5nPiBsYW5n
dWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgVmVjdG9yPFN0cmluZz4gbGFu
Z3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6
Tm8pOwogICAgIGlmIChtX3Rlc3RpbmdNb2RlICYmICFtX3VzZXJQcmVmZXJyZWRMYW5ndWFnZS5p
c0VtcHR5KCkpCiAgICAgICAgIGxhbmd1YWdlcy5pbnNlcnQoMCwgbV91c2VyUHJlZmVycmVkTGFu
Z3VhZ2UpOwogCkBAIC0zNDEsNyArMzQxLDcgQEAgaW50IENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6
OnRleHRUcmFja1NlbGVjdGlvblNjb3JlKFRleHRUcmFjayogdHJhY2ssIEhUTUxNZWRpYUUKICAg
ICAgICAgICAgIGlmIChvZmZzZXQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBsYW5ndWFnZUxpc3QuYXBwZW5kKGRlZmF1bHRMYW5ndWFn
ZSgpKTsKKyAgICAgICAgICAgIGxhbmd1YWdlTGlzdC5hcHBlbmQoZGVmYXVsdExhbmd1YWdlKFNo
b3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObykpOwogCiAgICAgICAgICAgICAvLyBPbmx5IGVuYWJs
ZSBhIHRleHQgdHJhY2sgaWYgdGhlIGN1cnJlbnQgYXVkaW8gdHJhY2sgaXMgTk9UIGluIHRoZSB1
c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlIC4uLgogICAgICAgICAgICAgc2l6ZV90IG9mZnNldCA9
IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChhdWRpb1RyYWNrTGFuZ3VhZ2UsIGxh
bmd1YWdlTGlzdCwgZXhhY3RNYXRjaCk7CkBAIC00MTgsNyArNDE4LDcgQEAgU3RyaW5nIENhcHRp
b25Vc2VyUHJlZmVyZW5jZXM6OnByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZSgpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX3ByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZS5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybiBtX3ByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlk
ZTsKLSAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlKCk7CisgICAgcmV0dXJuIGRlZmF1bHRMYW5n
dWFnZShTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6Tm8pOwogfQogICAgIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcApp
bmRleCBjZjJlMWJlYTI1YjBmMDc5OTg2MzkyMDU5NDVkZjBlZWY5MmQzYzQyLi5hZGY1YjE4OTQ2
OTU1ODBiZjZmNjBhZDJiMGJhZDQzYjU0ZjU4NzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcApAQCAtNDc0LDcgKzQ3
NCw3IEBAIFZlY3RvcjxTdHJpbmc+IENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpwcmVm
ZXJyZWRMYW5ndWFnZXMoKSBjb25zdAogICAgIGlmICh0ZXN0aW5nTW9kZSgpIHx8ICFNZWRpYUFj
Y2Vzc2liaWxpdHlMaWJyYXJ5KCkpCiAgICAgICAgIHJldHVybiBDYXB0aW9uVXNlclByZWZlcmVu
Y2VzOjpwcmVmZXJyZWRMYW5ndWFnZXMoKTsKIAotICAgIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3Jt
TGFuZ3VhZ2VzID0gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgVmVjdG9y
PFN0cmluZz4gcGxhdGZvcm1MYW5ndWFnZXMgPSBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKTsKICAgICBWZWN0b3I8U3RyaW5nPiBvdmVy
cmlkZSA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwogICAgIGlmICghb3ZlcnJp
ZGUuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmIChwbGF0Zm9ybUxhbmd1YWdlcy5zaXplKCkgIT0g
b3ZlcnJpZGUuc2l6ZSgpKQpAQCAtNTc5LDEzICs1NzksMTUgQEAgc3RhdGljIHZvaWQgYnVpbGRE
aXNwbGF5U3RyaW5nRm9yVHJhY2tCYXNlKFN0cmluZ0J1aWxkZXImIGRpc3BsYXlOYW1lLCBjb25z
dCBUcmEKICAgICBTdHJpbmcgbGFiZWwgPSB0cmFjay5sYWJlbCgpOwogICAgIFN0cmluZyB0cmFj
a0xhbmd1YWdlSWRlbnRpZmllciA9IHRyYWNrLnZhbGlkQkNQNDdMYW5ndWFnZSgpOwogCi0gICAg
UmV0YWluUHRyPENGTG9jYWxlUmVmPiBjdXJyZW50TG9jYWxlID0gYWRvcHRDRihDRkxvY2FsZUNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkZWZhdWx0TGFuZ3VhZ2UoKS5jcmVhdGVDRlN0cmlu
ZygpLmdldCgpKSk7CisgICAgYXV0byBwcmVmZXJyZWRMYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObyk7CisgICAgYXV0byBkZWZhdWx0
TGFuZ3VhZ2UgPSAhcHJlZmVycmVkTGFuZ3VhZ2VzLmlzRW1wdHkoKSA/IHByZWZlcnJlZExhbmd1
YWdlc1swXSA6IGVtcHR5U3RyaW5nKCk7IC8vIFRoaXMgbWF0Y2hlcyBgV1RGOjpkZWZhdWx0TGFu
Z3VhZ2VgLgorICAgIFJldGFpblB0cjxDRkxvY2FsZVJlZj4gY3VycmVudExvY2FsZSA9IGFkb3B0
Q0YoQ0ZMb2NhbGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGVmYXVsdExhbmd1YWdlLmNy
ZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGxvY2Fs
ZUlkZW50aWZpZXIgPSBhZG9wdENGKENGTG9jYWxlQ3JlYXRlQ2Fub25pY2FsTG9jYWxlSWRlbnRp
ZmllckZyb21TdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgdHJhY2tMYW5ndWFnZUlkZW50aWZp
ZXIuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOwogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4g
bGFuZ3VhZ2VDRiA9IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5RGlzcGxheU5hbWVGb3JQcm9wZXJ0eVZh
bHVlKGN1cnJlbnRMb2NhbGUuZ2V0KCksIGtDRkxvY2FsZUxhbmd1YWdlQ29kZSwgbG9jYWxlSWRl
bnRpZmllci5nZXQoKSkpOwogICAgIFN0cmluZyBsYW5ndWFnZSA9IGxhbmd1YWdlQ0YuZ2V0KCk7
CiAKICAgICBpZiAoIWxhYmVsLmlzRW1wdHkoKSkgewotICAgICAgICBpZiAobGFuZ3VhZ2UuaXNF
bXB0eSgpIHx8IGxhYmVsLmNvbnRhaW5zKGxhbmd1YWdlKSkKKyAgICAgICAgaWYgKGxhbmd1YWdl
LmlzRW1wdHkoKSB8fCBsYWJlbC5jb250YWlucyhsYW5ndWFnZSkgfHwgcHJlZmVycmVkTGFuZ3Vh
Z2VzLmNvbnRhaW5zKHRyYWNrTGFuZ3VhZ2VJZGVudGlmaWVyKSkKICAgICAgICAgICAgIGRpc3Bs
YXlOYW1lLmFwcGVuZChsYWJlbCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgUmV0YWlu
UHRyPENGRGljdGlvbmFyeVJlZj4gbG9jYWxlRGljdCA9IGFkb3B0Q0YoQ0ZMb2NhbGVDcmVhdGVD
b21wb25lbnRzRnJvbUxvY2FsZUlkZW50aWZpZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbG9jYWxl
SWRlbnRpZmllci5nZXQoKSkpOwpAQCAtNzA5LDE1ICs3MTEsMTYgQEAgU3RyaW5nIENhcHRpb25V
c2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpkaXNwbGF5TmFtZUZvclRyYWNrKFRleHRUcmFjayogdHJh
Y2spIGNvbnMKIAogc3RhdGljIGJvb2wgdGV4dFRyYWNrQ29tcGFyZShjb25zdCBSZWZQdHI8VGV4
dFRyYWNrPiYgYSwgY29uc3QgUmVmUHRyPFRleHRUcmFjaz4mIGIpCiB7Ci0gICAgU3RyaW5nIHBy
ZWZlcnJlZExhbmd1YWdlRGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxl
KGxhbmd1YWdlSWRlbnRpZmllcihkZWZhdWx0TGFuZ3VhZ2UoKSkpOwogICAgIFN0cmluZyBhTGFu
Z3VhZ2VEaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUobGFuZ3VhZ2VJ
ZGVudGlmaWVyKGEtPnZhbGlkQkNQNDdMYW5ndWFnZSgpKSk7CiAgICAgU3RyaW5nIGJMYW5ndWFn
ZURpc3BsYXlOYW1lID0gZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShsYW5ndWFnZUlkZW50
aWZpZXIoYi0+dmFsaWRCQ1A0N0xhbmd1YWdlKCkpKTsKIAotICAgIC8vIFRyYWNrcyBpbiB0aGUg
dXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZSBhcmUgYWx3YXlzIGF0IHRoZSB0b3Agb2YgdGhlIG1l
bnUuCi0gICAgYm9vbCBhSXNQcmVmZXJyZWRMYW5ndWFnZSA9IGFMYW5ndWFnZURpc3BsYXlOYW1l
ID09IHByZWZlcnJlZExhbmd1YWdlRGlzcGxheU5hbWU7Ci0gICAgYm9vbCBiSXNQcmVmZXJyZWRM
YW5ndWFnZSA9IGJMYW5ndWFnZURpc3BsYXlOYW1lID09IHByZWZlcnJlZExhbmd1YWdlRGlzcGxh
eU5hbWU7Ci0gICAgaWYgKGFJc1ByZWZlcnJlZExhbmd1YWdlICE9IGJJc1ByZWZlcnJlZExhbmd1
YWdlKQotICAgICAgICByZXR1cm4gYUlzUHJlZmVycmVkTGFuZ3VhZ2U7CisgICAgZm9yIChhdXRv
JiBwcmVmZXJyZWRMYW5ndWFnZSA6IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1p
emVMYW5ndWFnZXM6Ok5vKSkgeworICAgICAgICBTdHJpbmcgcHJlZmVycmVkTGFuZ3VhZ2VEaXNw
bGF5TmFtZSA9IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUobGFuZ3VhZ2VJZGVudGlmaWVy
KHByZWZlcnJlZExhbmd1YWdlKSk7CisgICAgICAgIGJvb2wgYUlzUHJlZmVycmVkTGFuZ3VhZ2Ug
PSBhTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9PSBwcmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lOwor
ICAgICAgICBib29sIGJJc1ByZWZlcnJlZExhbmd1YWdlID0gYkxhbmd1YWdlRGlzcGxheU5hbWUg
PT0gcHJlZmVycmVkTGFuZ3VhZ2VEaXNwbGF5TmFtZTsKKyAgICAgICAgaWYgKGFJc1ByZWZlcnJl
ZExhbmd1YWdlICE9IGJJc1ByZWZlcnJlZExhbmd1YWdlKQorICAgICAgICAgICAgcmV0dXJuIGFJ
c1ByZWZlcnJlZExhbmd1YWdlOworICAgIH0KIAogICAgIENvbGxhdG9yIGNvbGxhdG9yOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KaW5kZXgg
OWJkNTY0ODQwYzI4MmFmNTdhMTBkNGU0ZGNiZTg3NTczNGJjODI2YS4uYjQxOWI2MGQ5OGUzNjZk
YjQ3ZGM3MDU3ZWJkMjU3NjhkYzNkNjkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQpAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgTWVkaWFT
ZWxlY3Rpb25Hcm91cEFWRk9iakM6OnVwZGF0ZU9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4m
IGNoYXJhY3RlcmlzCiAgICAgICAgIHJldHVybjsKIAogICAgIE5TQXJyYXkqIGZpbHRlcmVkT3B0
aW9ucyA9IFtQQUw6OmdldEFWTWVkaWFTZWxlY3Rpb25Hcm91cENsYXNzKCkgbWVkaWFTZWxlY3Rp
b25PcHRpb25zRnJvbUFycmF5OlttX21lZGlhU2VsZWN0aW9uR3JvdXAgb3B0aW9uc10KLSAgICAg
ICAgZmlsdGVyZWRBbmRTb3J0ZWRBY2NvcmRpbmdUb1ByZWZlcnJlZExhbmd1YWdlczpjcmVhdGVO
U0FycmF5KHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSkuZ2V0KCldOworICAgICAgICBmaWx0ZXJl
ZEFuZFNvcnRlZEFjY29yZGluZ1RvUHJlZmVycmVkTGFuZ3VhZ2VzOmNyZWF0ZU5TQXJyYXkodXNl
clByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6Tm8pKS5nZXQoKV07
CiAKICAgICBpZiAoIVtmaWx0ZXJlZE9wdGlvbnMgY291bnRdICYmIGNoYXJhY3RlcmlzdGljcy5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1YThjOGQ0YzMwN2I4MmZiZjY1ZTNiMDdiMmI5NzRkNDA4
MTAxOThlLi5hMDc0NThjYWU1ZTlmNzdkNDk3ZDQyZTNlZmYxYTY0OTdkNzIzY2MyIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMjEtMDUtMjAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAg
ICAgIFtNb2Rlcm4gTWVkaWEgQ29udHJvbHNdIFJFR1JFU1NJT04ocjI1NDM4OSkgbWVkaWEgY29u
dHJvbHMgbmVlZHMgdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBmb3Igb3Jk
ZXJpbmcgdHJhY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjYwMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NmL0xhbmd1YWdlLmNwcDogQWRkZWQuCisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNULkxhbmd1YWdlLlNob3VsZE1pbmltaXplTGFuZ3Vh
Z2VzWWVzKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QuTGFuZ3VhZ2UuU2hvdWxkTWlu
aW1pemVMYW5ndWFnZXNObyk6CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0wNS0yMCAgS2F0ZSBDaGVuZXkg
IDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGNvbnRy
aWJ1dG9yIG5hbWUgdXBkYXRlLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1ZWRmZjVkMDNi
MTIzMTVhOTc5NDk2ZDMwNzcwZGJkYzhmNmNlYTMxLi5jZGI2MDc2ZGNkMmY4MjcyZDgxZjEyYTlm
YTZmZWVjMmFiZDE2YjQwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODc3LDYgKzg3Nyw3
IEBACiAJCTk1MDk1RjIwMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9yLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwOTVGMUYy
NjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdlVG9wQ29sb3IubW0gKi87IH07CiAJCTk1MEU0
Q0MxMjUyRTc1MjQwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlG
IC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi87IH07CiAJCTk1M0FCQjM1MjVDMEQ2ODIwMDRDOEI3
MyAvKiBXS1dlYlZpZXdVbmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTNBQkIzNDI1QzBENjgxMDA0QzhCNzMg
LyogV0tXZWJWaWV3VW5kZXJQYWdlQmFja2dyb3VuZENvbG9yLm1tICovOyB9OworCQk5NTRFNDEz
MDI2NTZFMDY4MDA0NTVENEYgLyogTGFuZ3VhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU0RTQxMkUyNjU2RTA2MzAwNDU1RDRGIC8qIExhbmd1
YWdlLmNwcCAqLzsgfTsKIAkJOTVBNTI0OTUyNTgxQTEwRDAwNDYxRkU5IC8qIFdLV2ViVmlld1Ro
ZW1lQ29sb3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NUE1MjQ5NDI1ODFBMTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3VGhlbWVDb2xvci5tbSAqLzsg
fTsKIAkJOTVCNkIzQjcyNTFFQkYyRjAwRkM0MzgyIC8qIE1lZGlhRG9jdW1lbnQubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUI2QjNCNjI1MUVCRjJG
MDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5tbSAqLzsgfTsKIAkJOTk4NEZBQ0MxQ0ZGQUY2MDAw
OEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5ODRGQUNBMUNGRkFFRUUwMDhEMTk4QyAvKiBXS1dlYlZp
ZXdUZXh0SW5wdXQubW0gKi87IH07CkBAIC0yNTgyLDYgKzI1ODMsNyBAQAogCQk5NTA5NUYxRjI2
MkZGRkE1MDAwMEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNhbXBsZWRQYWdlVG9wQ29sb3IubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEU0Q0MwMjUyRTc1MjMwMDcxNjU5RiAvKiBpT1NTdHls
dXNTdXBwb3J0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gaU9T
U3R5bHVzU3VwcG9ydC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUzQUJCMzQy
NUMwRDY4MTAwNEM4QjczIC8qIFdLV2ViVmlld1VuZGVyUGFnZUJhY2tncm91bmRDb2xvci5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1VuZGVyUGFn
ZUJhY2tncm91bmRDb2xvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTU0RTQx
MkUyNjU2RTA2MzAwNDU1RDRGIC8qIExhbmd1YWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IExhbmd1YWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTVBNTI0OTQyNTgxQTEwRDAwNDYxRkU5IC8qIFdLV2ViVmlld1RoZW1lQ29sb3IubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdUaGVtZUNvbG9y
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUI2QjNCNjI1MUVCRjJGMDBGQzQz
ODIgLyogTWVkaWFEb2N1bWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IE1lZGlhRG9jdW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5
ODRGQUNBMUNGRkFFRUUwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdUZXh0SW5wdXQubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NDI3LDcgKzQ0MjksNiBAQAogCQkJCTkzM0Q2
MzFCMUZDQjc2MTgwMDMyRUNENiAvKiBIYXNoZXIuY3BwICovLAogCQkJCTBCQ0Q4MzM0MTQ4NTdD
RTQwMEVBMjAwMyAvKiBIYXNoTWFwLmNwcCAqLywKIAkJCQkyNkIyREZGODE1QkRFNTk5MDA0RjY5
MUQgLyogSGFzaFNldC5jcHAgKi8sCi0JCQkJMzNDMkM5QzAyNjUxRjVCOTAwRTQwN0Y2IC8qIFNt
YWxsU2V0LmNwcCAqLywKIAkJCQk3QzhCRkY3MDIzQzAxMDY3MDBDMDA5QjMgLyogSGV4TnVtYmVy
LmNwcCAqLywKIAkJCQkzMzk3NkQ4MjI0REM0NzlCMDA4MTIzMDQgLyogSW5kZXhTcGFyc2VTZXQu
Y3BwICovLAogCQkJCTI2NkZBRkQyMTVFNTc3NTIwMEY2MUQ1QiAvKiBJbnRlZ2VyVG9TdHJpbmdD
b252ZXJzaW9uLmNwcCAqLywKQEAgLTQ0NzMsNiArNDQ3NCw3IEBACiAJCQkJMEJDRDg1NjkxNDg1
Qzk4QjAwRUEyMDAzIC8qIFNldEZvclNjb3BlLmNwcCAqLywKIAkJCQlDRDUzOTNDOTE3NTdCQUM0
MDBDMDcxMjMgLyogU0hBMS5jcHAgKi8sCiAJCQkJRTM5NTNGOTUxRjJDRjMyMTAwQTc2QTJFIC8q
IFNpZ25hbHMuY3BwICovLAorCQkJCTMzQzJDOUMwMjY1MUY1QjkwMEU0MDdGNiAvKiBTbWFsbFNl
dC5jcHAgKi8sCiAJCQkJOTNGQ0RCMzMyNjM2MzE1NjAwNDZERDdEIC8qIFNvcnRlZEFycmF5TWFw
LmNwcCAqLywKIAkJCQlGRTJCQ0RDNjI0NzBGQzcwMDBERUMzM0IgLyogU3RkTGliRXh0cmFzLmNw
cCAqLywKIAkJCQk4MUI1MDE5MjE0MEYyMzIzMDBEOUVCNTggLyogU3RyaW5nQnVpbGRlci5jcHAg
Ki8sCkBAIC00ODEyLDYgKzQ4MTQsNyBAQAogCQlDMDk5MUM0RjE0M0M3RDY4MDA3OTk4RjIgLyog
Y2YgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTk1NEU0
MTJFMjY1NkUwNjMwMDQ1NUQ0RiAvKiBMYW5ndWFnZS5jcHAgKi8sCiAJCQkJQkMwMjlCMTYxNDg2
QUQ2NDAwODE3REE5IC8qIFJldGFpblB0ci5jcHAgKi8sCiAJCQkJQzA5OTFDNTAxNDNDN0Q2ODAw
Nzk5OEYyIC8qIFJldGFpblB0ckhhc2hpbmcuY3BwICovLAogCQkJKTsKQEAgLTUxNjQsNyArNTE2
Nyw2IEBACiAJCQlmaWxlcyA9ICgKIAkJCQk3QzgzREU5OTFEMEE1OTBDMDBGRUJDRjMgLyogQXRv
bVN0cmluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTJEOTQ3NDI0NUVCMkY0MDBFNDgxMzUg
LyogQml0bWFwLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTMzQzJDOUMxMjY1MUY1QjkwMEU0MDdG
NiAvKiBTbWFsbFNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQURBRDE1MDFENzdBOUY2MDAy
MTI1ODYgLyogQmxvY2tQdHIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzREU5QzFEMEE1OTBD
MDBGRUJDRjMgLyogQmxvb21GaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0RGMTgx
RDBBNTkwQzAwRkVCQ0YzIC8qIEJveFB0ci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTUxOTQsNiAr
NTE5Niw3IEBACiAJCQkJNTNGQ0RFNkIyMjlFRkZCOTAwNTk4RUNGIC8qIElzb0hlYXAuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0NFQjYyQUIyMjM2MDlERTAwNjlDQkIwIC8qIEl0ZXJhdG9yUmFu
Z2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0EwNTA5NDExRkI5RjA2NDAwQjMzRkI4IC8qIEpT
T05WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5NTRFNDEzMDI2NTZFMDY4MDA0NTVENEYg
LyogTGFuZ3VhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTMxQzFEOEUxREY4RUY3MjAwNkU5
NzlGIC8qIExFQkRlY29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU3RDU0RjkxRjMzOTdC
NDAwQTk3QUE3IC8qIExpZmVjeWNsZUxvZ2dlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0Uy
QzU1NTFGRDMyMDQxMDBFMURGNkEgLyogTGluZUVuZGluZy5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTUyMzIsNiArNTIzNSw3IEBACiAJCQkJN0M4M0RGM0QxRDBBNTkwQzAwRkVCQ0YzIC8qIFNldEZv
clNjb3BlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNERjJBMUQwQTU5MEMwMEZFQkNGMyAv
KiBTSEExLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUzNzNENzkxMUYyQ0YzNTIwMEM2RkFBRiAv
KiBTaWduYWxzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMzQzJDOUMxMjY1MUY1QjkwMEU0MDdG
NiAvKiBTbWFsbFNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0ZDREIzNDI2MzYzMTU2MDA0
NkREN0QgLyogU29ydGVkQXJyYXlNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkUyQkNEQzcy
NDcwRkRBMzAwREVDMzNCIC8qIFN0ZExpYkV4dHJhcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
QzgzREYzMjFEMEE1OTBDMDBGRUJDRjMgLyogU3RyaW5nQnVpbGRlci5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NmL0xhbmd1YWdl
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NmL0xhbmd1YWdlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43ZTIwNWU5OTVkN2I2MTE2MmYwMzk3ZDI4NmRkYjU1ZTI0YWQ5NDM3Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvTGFuZ3VhZ2UuY3Bw
CkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
bmNsdWRlIDx3dGYvTGFuZ3VhZ2UuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKwor
VEVTVChMYW5ndWFnZSwgU2hvdWxkTWluaW1pemVMYW5ndWFnZXNZZXMpCit7CisgICAgb3ZlcnJp
ZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHsgfSk7CisgICAgb3ZlcnJpZGVQbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMoeyAiZW4tVVMiX3MsICJlcy1VUyJfcywgImZyLVVTIl9zIH0pOwor
CisgICAgYXV0byBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmlt
aXplTGFuZ3VhZ2VzOjpZZXMpOworCisgICAgRVhQRUNUX0dFKGxhbmd1YWdlcy5maW5kKCJlbi1V
UyJfcyksIDBVKTsKKyAgICBFWFBFQ1RfR1QobGFuZ3VhZ2VzLmZpbmQoImVuIl9zKSwgbGFuZ3Vh
Z2VzLmZpbmQoImVuLVVTIl9zKSk7CisKKyAgICBFWFBFQ1RfRkFMU0UobGFuZ3VhZ2VzLmNvbnRh
aW5zKCJlcy1VUyJfcykpOworICAgIEVYUEVDVF9GQUxTRShsYW5ndWFnZXMuY29udGFpbnMoImVz
Il9zKSk7CisKKyAgICBFWFBFQ1RfRkFMU0UobGFuZ3VhZ2VzLmNvbnRhaW5zKCJmci1VUyJfcykp
OworICAgIEVYUEVDVF9GQUxTRShsYW5ndWFnZXMuY29udGFpbnMoImZyIl9zKSk7CisKKyAgICBv
dmVycmlkZVBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyh7IH0pOyAvLyBjbGVhbnVwCit9
CisKK1RFU1QoTGFuZ3VhZ2UsIFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzTm8pCit7CisgICAgb3Zl
cnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHsgfSk7CisgICAgb3ZlcnJpZGVQbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoeyAiZW4tVVMiX3MsICJlcy1VUyJfcywgImZyLVVTIl9zIH0p
OworCisgICAgYXV0byBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzOjpObyk7CisKKyAgICBFWFBFQ1RfR0UobGFuZ3VhZ2VzLmZpbmQoImVu
LVVTIl9zKSwgMFUpOworICAgIEVYUEVDVF9HVChsYW5ndWFnZXMuZmluZCgiZW4iX3MpLCBsYW5n
dWFnZXMuZmluZCgiZW4tVVMiX3MpKTsKKworICAgIEVYUEVDVF9HVChsYW5ndWFnZXMuZmluZCgi
ZXMtVVMiX3MpLCBsYW5ndWFnZXMuZmluZCgiZW4tVVMiX3MpKTsKKyAgICBFWFBFQ1RfR1QobGFu
Z3VhZ2VzLmZpbmQoImVzIl9zKSwgbGFuZ3VhZ2VzLmZpbmQoImVzLVVTIl9zKSk7CisKKyAgICBF
WFBFQ1RfR1QobGFuZ3VhZ2VzLmZpbmQoImZyLVVTIl9zKSwgbGFuZ3VhZ2VzLmZpbmQoImVzLVVT
Il9zKSk7CisgICAgRVhQRUNUX0dUKGxhbmd1YWdlcy5maW5kKCJmciJfcyksIGxhbmd1YWdlcy5m
aW5kKCJmci1VUyJfcykpOworCisgICAgb3ZlcnJpZGVQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMoeyB9KTsgLy8gY2xlYW51cAorfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429350</attachid>
            <date>2021-05-21 15:22:03 -0700</date>
            <delta_ts>2021-05-21 18:41:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226038-20210521162202.patch</filename>
            <type>text/plain</type>
            <size>38164</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDBhNzI0OGIwY2I1ZDQ4Yjg2NDlkOTNlNWRmNmI0
YTI0ODA5MTgyYzUuLjQwOGE0YTYwODQ3NTVmYzc2ZjU4MmQzOTk2MmVmODA4YjU2Y2NiNmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA1LTIxICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENv
bnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxs
IGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWEgY29udHJvbHMg
bmVlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBpbiBv
cmRlciB0byBwcm9wZXJseQorICAgICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNrcyBp
biB0aGUgY29udHJvbHMgVUkuIEZvciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3VidGl0
bGVzCisgICAgICAgIGZvciBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhlIHVz
ZXIgaGFzIEVuZ2xpc2ggKGRlZmF1bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAgICAg
Y29uZmlndXJlZCBpbiB0aGUgTGFuZ3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJlZmVy
ZW5jZXMgb24gbWFjT1MsIFdlYktpdCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRpdGxl
cyBsaXN0IEVuZ2xpc2gsIEZyZW5jaCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3Bw
OgorICAgICAgICAoSlNDOjpkZWZhdWx0TG9jYWxlKToKKyAgICAgICAgVXBkYXRlIHVzYWdlIG9m
IGBXVEY6OmRlZmF1bHRMYW5ndWFnZWAgdG8gYWxzbyBoYXZlIGBXVEY6OlNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzYC4KKworICAgICAgICAqIHNoZWxsL3BsYXlzdGF0aW9uL1Rlc3RTaGVsbC5jcHA6
CisgICAgICAgIChwcmVUZXN0KToKKyAgICAgICAgSW5zdGVhZCBvZiBwcm9wYWdhdGluZyB0aGUg
b3ZlcnJpZGUsIGp1c3QgY2xlYXIgaXQgb3V0LgorCiAyMDIxLTA1LTIxICBNYXJrIExhbSAgPG1h
cmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2luZyBKSVRUaHVua3M6OnByZWlu
aXRpYWxpemVDVElUaHVua3MoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYjUxMzliYzA5NDA2ZjkwNjFmNTVmOTFlNGI2MTcz
NzQ3MzY3NDYxOC4uYTNlM2ExZDk3M2Y2OGM0NzdjODVkNjQxYzQ3ZTIwODI4MzE1NjRhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0NCBAQAorMjAyMS0wNS0yMSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBs
ZS5jb20+CisKKyAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0
Mzg5KSBtZWRpYSBjb250cm9scyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZl
cmVuY2VzIGZvciBvcmRlcmluZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxs
IGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAg
ICAgc29ydC9vcmRlciB0aGUgbGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3Ig
ZXhhbXBsZSwgaWYgYSBgPHZpZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlz
aCwgU3BhbmlzaCwgYW5kIEZyZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0
KSBhbmQgRnJlbmNoIChhbHRlcm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1
YWdlICYgUmVnaW9uIHZpZXcgb2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQg
c2hvdWxkIG9yZGVyCisgICAgICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gs
IGFuZCB0aGVuIFNwYW5pc2guCisKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuaDoKKyAgICAgICAg
KiB3dGYvTGFuZ3VhZ2UuY3BwOgorICAgICAgICAoV1RGOjpjYWNoZWRGdWxsUGxhdGZvcm1QcmVm
ZXJyZWRMYW5ndWFnZXMpOiBBZGRlZC4KKyAgICAgICAgKFdURjo6Y2FjaGVkTWluaW1pemVkUGxh
dGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMpOiBBZGRlZC4KKyAgICAgICAgKFdURjo6bGFuZ3VhZ2VE
aWRDaGFuZ2UpOgorICAgICAgICAoV1RGOjpkZWZhdWx0TGFuZ3VhZ2UpOgorICAgICAgICAoV1RG
Ojp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKFdURjo6aW5pdGlhbFBsYXRmb3Jt
UHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nKTogQWRkZWQuCisgICAgICAgIChX
VEY6OmluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3Rp
bmcpOiBBZGRlZC4KKyAgICAgICAgKFdURjo6b3ZlcnJpZGVJbml0aWFsUGxhdGZvcm1Vc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzRm9yVGVzdGluZyk6IEFkZGVkLgorICAgICAgICBNb3ZlIHRoZSBjYWNo
aW5nIGluIGB3dGYvY2YvTGFuZ3VhZ2VDRi5jcHBgIHRvIGB3dGYvTGFuZ3VhZ2UuY3BwYCBzbyB0
aGF0IGFsbCBwbGF0Zm9ybXMgY2FuCisgICAgICAgIGJlbmVmaXQgZnJvbSBjYWNoaW5nIHRoZSBy
ZXN1bHQgb2YgYHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc2AuCisKKyAgICAgICAgKiB3
dGYvY2YvTGFuZ3VhZ2VDRi5jcHA6CisgICAgICAgIChXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJl
ZExhbmd1YWdlcyk6CisgICAgICAgIChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2VEaWRDaGFuZ2UpOiBE
ZWxldGVkLgorICAgICAgICAqIHd0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1tOgorICAgICAgICAo
V1RGOjpiYXNlTGFuZ3VhZ2VGcm9tTGFuZ3VhZ2UpOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvcGxh
eXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5jcHA6CisgICAgICAgIChXVEY6OnBsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgICogd3RmL3NwaS9jb2NvYS9OU0xvY2Fs
ZVNQSS5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAgIChX
VEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgICogd3RmL3dpbi9M
YW5ndWFnZVdpbi5jcHA6CisgICAgICAgIChXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlcyk6CisgICAgICAgIEFkZCBgV1RGOjpTaG91bGRNaW5pbWl6ZUxhbmd1YWdlc2AgdGhhdCBj
b250cm9scyB3aGV0aGVyIGBXVEY6Om1pbmltaXplZFByZWZlcnJlZExhbmd1YWdlc2AKKyAgICAg
ICAgaXMgY2FsbGVkLiBTaW5jZSB0aGUgcmVzdWx0IGlzIGNhY2hlZCwgY3JlYXRlIHNlcGFyYXRl
IGBWZWN0b3I8U3RyaW5nPmAgZm9yIGVhY2ggZW51bSB2YWx1ZS4KKwogMjAyMS0wNS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gVW5hYmxlIHRv
IHVwbG9hZCBmaWxlcyB0aGF0IGFyZSBzdG9yZWQgaW4gdGhlIGNsb3VkICh3aXRob3V0IGEgbG9j
YWwgY29weSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhNjA3OTJlMmRmZDU1NWRhNWQ5ZTBlNjcyZDE0OWU5MDEz
OWQzZTk5Li43ODNiNThmOWVlMTJhNWYwMjY2MzdkY2JhNjgzNDViMjhmYjgyMWI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDUtMjEgIERldmluIFJvdXNzbyAgPGRyb3Vzc29A
YXBwbGUuY29tPgorCisgICAgICAgIFtNb2Rlcm4gTWVkaWEgQ29udHJvbHNdIFJFR1JFU1NJT04o
cjI1NDM4OSkgbWVkaWEgY29udHJvbHMgbmVlZHMgdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBw
cmVmZXJlbmNlcyBmb3Igb3JkZXJpbmcgdHJhY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYwMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNZWRpYSBjb250cm9scyBuZWVkIGFjY2VzcyB0byB0aGUg
ZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGluIG9yZGVyIHRvIHByb3Blcmx5Cisg
ICAgICAgIHNvcnQvb3JkZXIgdGhlIGxpc3Qgb2YgdHJhY2tzIGluIHRoZSBjb250cm9scyBVSS4g
Rm9yIGV4YW1wbGUsIGlmIGEgYDx2aWRlbz5gIGhhcyBzdWJ0aXRsZXMKKyAgICAgICAgZm9yIEVu
Z2xpc2gsIFNwYW5pc2gsIGFuZCBGcmVuY2gsIGFuZCB0aGUgdXNlciBoYXMgRW5nbGlzaCAoZGVm
YXVsdCkgYW5kIEZyZW5jaCAoYWx0ZXJuYXRlKQorICAgICAgICBjb25maWd1cmVkIGluIHRoZSBM
YW5ndWFnZSAmIFJlZ2lvbiB2aWV3IG9mIFN5c3RlbSBQcmVmZXJlbmNlcyBvbiBtYWNPUywgV2Vi
S2l0IHNob3VsZCBvcmRlcgorICAgICAgICB0aGUgc3VidGl0bGVzIGxpc3QgRW5nbGlzaCwgRnJl
bmNoLCBhbmQgdGhlbiBTcGFuaXNoLgorCisgICAgICAgIFRlc3RzOiBMYW5ndWFnZS5TaG91bGRN
aW5pbWl6ZUxhbmd1YWdlc1llcworICAgICAgICAgICAgICAgTGFuZ3VhZ2UuU2hvdWxkTWluaW1p
emVMYW5ndWFnZXNObworCisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByZWZlcnJlZExh
bmd1YWdlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2Vz
Ojp0ZXh0VHJhY2tTZWxlY3Rpb25TY29yZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDYXB0
aW9uVXNlclByZWZlcmVuY2VzOjpwcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGUgY29u
c3QpOgorICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OnByZWZlcnJl
ZExhbmd1YWdlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZERpc3BsYXlTdHJpbmdG
b3JUcmFja0Jhc2UpOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFRyYWNrQ29tcGFyZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBB
VkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM6
OnVwZGF0ZU9wdGlvbnMpOgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHA6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAg
ICAgICAgV3JhcCBgZGVmYXVsdExhbmd1YWdlYCBpbiBhIGxhbWJkYSBzaW5jZSBpdCBub3cgaGFz
IGEgcGFyYW1ldGVyLgorCiAyMDIxLTA1LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVwbGFjZSBtb3JlIHN0YXRpYyBMb2NrcyB3aXRoIENoZWNrZWRMb2Nr
cyBpbiBXVEYgLyBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hl
bGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVs
bC9wbGF5c3RhdGlvbi9UZXN0U2hlbGwuY3BwCmluZGV4IDI3ODJmZGEwODk4NjVkY2YwZTJmN2Mx
ZGIyOTMzMTUxMjg5NGRlNDkuLjMxZmVhZjdlYzU4Zjc5NWY4YzNkYmI3N2Q5Zjk1N2MzM2Y2MmZj
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9wbGF5c3RhdGlvbi9U
ZXN0U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9wbGF5c3RhdGlv
bi9UZXN0U2hlbGwuY3BwCkBAIC02Miw3ICs2Miw3IEBAIGV4dGVybiAiQyIgdm9pZCBwcmVUZXN0
KCkKICAgICBKU0M6Ok9wdGlvbnM6Om5hbWVfKCkgPSBvcmlnIyNuYW1lXzsKICAgICBGT1JfRUFD
SF9KU0NfT1BUSU9OKElOSVRfT1BUSU9OKQogI3VuZGVmIElOSVRfT1BUSU9OCi0gICAgb3ZlcnJp
ZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygp
KTsKKyAgICBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoeyB9KTsKIH0KIAogZXh0ZXJu
ICJDIiBpbnQgcnVuVGVzdChpbnQgYXJnYywgY2hhciogYXJndltdKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwIGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwCmlu
ZGV4IGJlNjI1OGQ4NTdlNTk4OGY5Njk4MzkwMjAyYmNjOTNjM2MxNzgyMGYuLmVmNGNkMTIxY2Jk
YjllNzdmZTI1NmE5Nzk4N2IxMjE2YTI1MzQzMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L0xhbmd1YWdlLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKQEAgLTM3LDYg
KzM3LDE4IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCitzdGF0aWMgQ2hlY2tlZExvY2sgY2FjaGVk
UGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrOworc3RhdGljIFZlY3RvcjxTdHJpbmc+JiBj
YWNoZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKSBXVEZfUkVRVUlSRVNfTE9DSyhj
YWNoZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc0xvY2spCit7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBsYW5ndWFnZXM7CisgICAgcmV0dXJuIGxhbmd1YWdl
czsKK30KK3N0YXRpYyBWZWN0b3I8U3RyaW5nPiYgY2FjaGVkTWluaW1pemVkUGxhdGZvcm1QcmVm
ZXJyZWRMYW5ndWFnZXMoKSBXVEZfUkVRVUlSRVNfTE9DSyhjYWNoZWRQbGF0Zm9ybVByZWZlcnJl
ZExhbmd1YWdlc0xvY2spCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJp
bmc+PiBsYW5ndWFnZXM7CisgICAgcmV0dXJuIGxhbmd1YWdlczsKK30KKwogc3RhdGljIENoZWNr
ZWRMb2NrIHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlTG9jazsKIHN0YXRpYyBWZWN0b3I8U3Ry
aW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKSBXVEZfUkVRVUlSRVNfTE9DSyhwcmVm
ZXJyZWRMYW5ndWFnZXNPdmVycmlkZUxvY2spCiB7CkBAIC02OCwxNiArODAsMjEgQEAgdm9pZCBy
ZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNvbnRleHQpCiAKIHZvaWQgbGFuZ3Vh
Z2VEaWRDaGFuZ2UoKQogewotICAgIHBsYXRmb3JtTGFuZ3VhZ2VEaWRDaGFuZ2UoKTsKKyAgICB7
CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBjYWNoZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdl
c0xvY2sgfTsKKyAgICAgICAgY2FjaGVkRnVsbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCku
Y2xlYXIoKTsKKyAgICAgICAgY2FjaGVkTWluaW1pemVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFn
ZXMoKS5jbGVhcigpOworICAgIH0KKwogICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBjb3B5VG9W
ZWN0b3Iob2JzZXJ2ZXJNYXAoKSkpIHsKICAgICAgICAgaWYgKG9ic2VydmVyTWFwKCkuY29udGFp
bnMob2JzZXJ2ZXIua2V5KSkKICAgICAgICAgICAgIG9ic2VydmVyLnZhbHVlKG9ic2VydmVyLmtl
eSk7CiAgICAgfQogfQogCi1TdHJpbmcgZGVmYXVsdExhbmd1YWdlKCkKK1N0cmluZyBkZWZhdWx0
TGFuZ3VhZ2UoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgc2hvdWxkTWluaW1pemVMYW5ndWFnZXMp
CiB7Ci0gICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdl
cygpOworICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXMoc2hvdWxkTWluaW1pemVMYW5ndWFnZXMpOwogICAgIGlmIChsYW5ndWFnZXMuc2l6ZSgpKQog
ICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzWzBdOwogCkBAIC0xMDgsNyArMTI1LDcgQEAgc3RhdGlj
IFZlY3RvcjxTdHJpbmc+IGlzb2xhdGVkQ29weShjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3RyaW5n
cykKICAgICByZXR1cm4gY29weTsKIH0KIAotVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExh
bmd1YWdlcygpCitWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzIHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewogICAgIHsKICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlTG9jayB9OwpAQCAt
MTE3LDcgKzEzNCwxMSBAQCBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkK
ICAgICAgICAgICAgIHJldHVybiBpc29sYXRlZENvcHkob3ZlcnJpZGUpOwogICAgIH0KIAotICAg
IHJldHVybiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBMb2NrZXIgbG9j
a2VyIHsgY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrIH07CisgICAgYXV0byYg
bGFuZ3VhZ2VzID0gc2hvdWxkTWluaW1pemVMYW5ndWFnZXMgPT0gU2hvdWxkTWluaW1pemVMYW5n
dWFnZXM6OlllcyA/IGNhY2hlZE1pbmltaXplZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkg
OiBjYWNoZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBpZiAobGFuZ3Vh
Z2VzLmlzRW1wdHkoKSkKKyAgICAgICAgbGFuZ3VhZ2VzID0gcGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKTsKKyAgICByZXR1cm4gaXNvbGF0ZWRD
b3B5KGxhbmd1YWdlcyk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgY2Fub25pY2FsTGFuZ3VhZ2VJZGVu
dGlmaWVyKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2VDb2RlKQpAQCAtMTkwLDQgKzIxMSwyNiBAQCB2
b2lkIHBsYXRmb3JtTGFuZ3VhZ2VEaWRDaGFuZ2UoKQogfQogI2VuZGlmCiAKK3N0YXRpYyBDaGVj
a2VkTG9jayBpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3Rp
bmdMb2NrOworc3RhdGljIFZlY3RvcjxTdHJpbmc+JiBpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRM
YW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKSBXVEZfUkVRVUlSRVNfTE9DSyhpbml0aWFsUGxh
dGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmdMb2NrKQoreworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4gb3ZlcnJpZGU7CisgICAgcmV0dXJu
IG92ZXJyaWRlOwogfQorCitWZWN0b3I8U3RyaW5nPiBpbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nKCkKK3sKKyAgICBMb2NrZXIgbG9ja2VyIHsg
aW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nTG9jayB9
OworICAgIHJldHVybiBpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZv
clRlc3RpbmcoKTsKK30KKwordm9pZCBvdmVycmlkZUluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXNGb3JUZXN0aW5nKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvdmVycmlkZSkKK3sK
KyAgICB7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRM
YW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmdMb2NrIH07CisgICAgICAgIGluaXRpYWxQbGF0Zm9y
bVByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlRm9yVGVzdGluZygpID0gb3ZlcnJpZGU7CisgICAg
fQorICAgIGxhbmd1YWdlRGlkQ2hhbmdlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaCBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1
YWdlLmgKaW5kZXggZjA3NGQ3NTY4ZDAwMmU5MzJhNTMyNmJkYjUyZDdmYjhjMDY1ODE4My4uMmEx
OGMyMTRhYTk4MjFhZWNjODU4ZGZkZGRkZmQ1MzcwNzNiNDg1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvTGFuZ3VhZ2UuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oCkBAIC0z
NSwxMyArMzUsMTMgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLVdURl9FWFBPUlRfUFJJVkFURSBT
dHJpbmcgZGVmYXVsdExhbmd1YWdlKCk7IC8vIFRocmVhZC1zYWZlLgotV1RGX0VYUE9SVF9QUklW
QVRFIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsgLy8gVGhyZWFkLXNh
ZmUsIHJldHVybnMgQkNQIDQ3IGxhbmd1YWdlIHRhZ3MuCitlbnVtIGNsYXNzIFNob3VsZE1pbmlt
aXplTGFuZ3VhZ2VzIHsgWWVzLCBObyB9OworCitXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIGRl
ZmF1bHRMYW5ndWFnZShTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9IFNob3VsZE1pbmltaXplTGFu
Z3VhZ2VzOjpZZXMpOyAvLyBUaHJlYWQtc2FmZS4KK1dURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8
U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID0g
U2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Olllcyk7IC8vIFRocmVhZC1zYWZlLCByZXR1cm5zIEJD
UCA0NyBsYW5ndWFnZSB0YWdzLgogV1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiBX
VEZfRVhQT1JUX1BSSVZBVEUgc2l6ZV90IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlz
dChjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VM
aXN0LCBib29sJiBleGFjdE1hdGNoKTsKLVdURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5n
PiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKLVdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIHBsYXRmb3JtTGFuZ3VhZ2VEaWRDaGFuZ2UoKTsKIAogLy8gQ2FsbGVkIGZyb20gcGxhdGZv
cm0gc3BlY2lmaWMgY29kZSB3aGVuIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlKHMpIGNo
YW5nZS4KIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCk7CkBAIC01
MiwyMCArNTIsMjYgQEAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYWRkTGFuZ3VhZ2VDaGFuZ2VP
YnNlcnZlcih2b2lkKiBjb250ZXh0LCBMYW5ndWFnZUNoYW5nZU8KIFdURl9FWFBPUlRfUFJJVkFU
RSB2b2lkIHJlbW92ZUxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCk7CiBXVEZf
RVhQT1JUX1BSSVZBVEUgU3RyaW5nIGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3Qg
U3RyaW5nJik7CiAKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMp
OworCiAjaWYgUExBVEZPUk0oQ09DT0EpCiBib29sIGNhbk1pbmltaXplTGFuZ3VhZ2VzKCk7CiBX
VEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBsaXN0ZW5Gb3JMYW5ndWFnZUNoYW5nZU5vdGlmaWNhdGlv
bnMoKTsKIFJldGFpblB0cjxDRkFycmF5UmVmPiBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3Vh
Z2VzKENGQXJyYXlSZWYpOwotI2VuZGlmCitSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGJhc2VMYW5n
dWFnZUZyb21MYW5ndWFnZShDRlN0cmluZ1JlZik7CiAKLX0KK1ZlY3RvcjxTdHJpbmc+IGluaXRp
YWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKTsKK1dU
Rl9FWFBPUlRfUFJJVkFURSB2b2lkIG92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJl
ZExhbmd1YWdlc0ZvclRlc3RpbmcoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKyNlbmRpZiAvLyBQ
TEFURk9STShDT0NPQSkKIAorfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6U2hvdWxk
TWluaW1pemVMYW5ndWFnZXM7CiB1c2luZyBXVEY6OmRlZmF1bHRMYW5ndWFnZTsKIHVzaW5nIFdU
Rjo6dXNlclByZWZlcnJlZExhbmd1YWdlczsKIHVzaW5nIFdURjo6dXNlclByZWZlcnJlZExhbmd1
YWdlc092ZXJyaWRlOwogdXNpbmcgV1RGOjpvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7
CiB1c2luZyBXVEY6OmluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdDsKLXVzaW5nIFdU
Rjo6cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwogdXNpbmcgV1RGOjphZGRMYW5ndWFn
ZUNoYW5nZU9ic2VydmVyOwogdXNpbmcgV1RGOjpyZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVy
OwogdXNpbmcgV1RGOjpkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5n
dWFnZUNGLmNwcAppbmRleCBlMDczMTE1NDI5MWJmZDA3YzRjYzE2ZGEwNDJhYWFkYjU5YzllM2Ix
Li45YWVlOTM2ZGM2ZThkOTA4ZDc4YjE0YmExY2ZkODcxY2RiOGI4MTg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9M
YW5ndWFnZUNGLmNwcApAQCAtMzAsMTYgKzMwLDEyIEBACiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5j
bHVkZSA8dW5pY29kZS91bG9jLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNs
dWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3NwaS9jZi9DRkJ1bmRs
ZVNQSS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV1RG
IHsKIAotc3RhdGljIENoZWNrZWRMb2NrIHByZWZlcnJlZExhbmd1YWdlc0xvY2s7Ci0KICNpZiBQ
TEFURk9STShNQUMpCiBzdGF0aWMgdm9pZCBsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdlKENG
Tm90aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkKiwgQ0ZTdHJpbmdSZWYsIGNvbnN0IHZvaWQqLCBD
RkRpY3Rpb25hcnlSZWYpCiB7CkBAIC00NywxNiArNDMsNiBAQCBzdGF0aWMgdm9pZCBsYW5ndWFn
ZVByZWZlcmVuY2VzRGlkQ2hhbmdlKENGTm90aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkKiwgQ0ZT
dHJpbgogfQogI2VuZGlmCiAKLXN0YXRpYyBWZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3Vh
Z2VzKCkgV1RGX1JFUVVJUkVTX0xPQ0socHJlZmVycmVkTGFuZ3VhZ2VzTG9jaykKLXsKLSAgICBz
dGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBsYW5ndWFnZXM7Ci0gICAg
c3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7Ci0gICAgc3RkOjpjYWxsX29uY2Uob25jZUtl
eSwgWyZdIHsKLSAgICAgICAgbGFuZ3VhZ2VzLmNvbnN0cnVjdCgpOwotICAgIH0pOwotICAgIHJl
dHVybiBsYW5ndWFnZXM7Ci19Ci0KIHN0YXRpYyBTdHJpbmcgaHR0cFN0eWxlTGFuZ3VhZ2VDb2Rl
KENGU3RyaW5nUmVmIGxhbmd1YWdlKQogewogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcHJl
ZmVycmVkTGFuZ3VhZ2VDb2RlOwpAQCAtODgsMTQgKzc0LDYgQEAgc3RhdGljIFN0cmluZyBodHRw
U3R5bGVMYW5ndWFnZUNvZGUoQ0ZTdHJpbmdSZWYgbGFuZ3VhZ2UpCiAgICAgcmV0dXJuIG11dGFi
bGVMYW5ndWFnZUNvZGUuZ2V0KCk7CiB9CiAKLXZvaWQgcGxhdGZvcm1MYW5ndWFnZURpZENoYW5n
ZSgpCi17Ci0gICAgewotICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJlZmVycmVkTGFuZ3VhZ2Vz
TG9jayB9OwotICAgICAgICBwcmVmZXJyZWRMYW5ndWFnZXMoKS5jbGVhcigpOwotICAgIH0KLX0K
LQogdm9pZCBsaXN0ZW5Gb3JMYW5ndWFnZUNoYW5nZU5vdGlmaWNhdGlvbnMoKQogewogI2lmIFBM
QVRGT1JNKE1BQykKQEAgLTEwNiwzMiArODQsMzggQEAgdm9pZCBsaXN0ZW5Gb3JMYW5ndWFnZUNo
YW5nZU5vdGlmaWNhdGlvbnMoKQogI2VuZGlmCiB9CiAKLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlcygpCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgc2hvdWxkTWluaW1pemVMYW5n
dWFnZXMpCiB7Ci0gICAgTG9ja2VyIGxvY2tlciB7IHByZWZlcnJlZExhbmd1YWdlc0xvY2sgfTsK
LSAgICBWZWN0b3I8U3RyaW5nPiYgdXNlclByZWZlcnJlZExhbmd1YWdlcyA9IHByZWZlcnJlZExh
bmd1YWdlcygpOworICAgIFJldGFpblB0cjxDRkFycmF5UmVmPiBwbGF0Zm9ybUxhbmd1YWdlczsK
KyAgICBpZiAoYXV0byBvdmVycmlkZSA9IGluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKTsgIW92ZXJyaWRlLmlzRW1wdHkoKSkgeworICAgICAg
ICBhdXRvIGFycmF5ID0gYWRvcHRDRihDRkFycmF5Q3JlYXRlTXV0YWJsZSgwLCBvdmVycmlkZS5z
aXplKCksICZrQ0ZUeXBlQXJyYXlDYWxsQmFja3MpKTsKKyAgICAgICAgZm9yIChhdXRvJiBpdGVt
IDogb3ZlcnJpZGUpCisgICAgICAgICAgICBDRkFycmF5QXBwZW5kVmFsdWUoYXJyYXkuZ2V0KCks
IGl0ZW0uaXNvbGF0ZWRDb3B5KCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CisgICAgICAgIHBs
YXRmb3JtTGFuZ3VhZ2VzID0gV1RGTW92ZShhcnJheSk7CisgICAgfSBlbHNlCisgICAgICAgIHBs
YXRmb3JtTGFuZ3VhZ2VzID0gYWRvcHRDRihDRkxvY2FsZUNvcHlQcmVmZXJyZWRMYW5ndWFnZXMo
KSk7CiAKLSAgICBpZiAodXNlclByZWZlcnJlZExhbmd1YWdlcy5pc0VtcHR5KCkpIHsKLSAgICAg
ICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IGxhbmd1YWdlcyA9IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5
UHJlZmVycmVkTGFuZ3VhZ2VzKCkpOwotICAgICAgICBsYW5ndWFnZXMgPSBtaW5pbWl6ZWRMYW5n
dWFnZXNGcm9tTGFuZ3VhZ2VzKGxhbmd1YWdlcy5nZXQoKSk7Ci0gICAgICAgIENGSW5kZXggbGFu
Z3VhZ2VDb3VudCA9IENGQXJyYXlHZXRDb3VudChsYW5ndWFnZXMuZ2V0KCkpOwotICAgICAgICBp
ZiAoIWxhbmd1YWdlQ291bnQpCi0gICAgICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmFw
cGVuZCgiZW4iKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBmb3IgKENGSW5kZXggaSA9
IDA7IGkgPCBsYW5ndWFnZUNvdW50OyBpKyspCi0gICAgICAgICAgICAgICAgdXNlclByZWZlcnJl
ZExhbmd1YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKHN0YXRpY19jYXN0PENGU3Ry
aW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGxhbmd1YWdlcy5nZXQoKSwgaSkpKSk7Cisg
ICAgaWYgKHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID09IFNob3VsZE1pbmltaXplTGFuZ3VhZ2Vz
OjpZZXMpCisgICAgICAgIHBsYXRmb3JtTGFuZ3VhZ2VzID0gbWluaW1pemVkTGFuZ3VhZ2VzRnJv
bUxhbmd1YWdlcyhwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSk7CisKKyAgICBDRkluZGV4IHBsYXRm
b3JtTGFuZ3VhZ2VzQ291bnQgPSBDRkFycmF5R2V0Q291bnQocGxhdGZvcm1MYW5ndWFnZXMuZ2V0
KCkpOworICAgIGlmICghcGxhdGZvcm1MYW5ndWFnZXNDb3VudCkKKyAgICAgICAgcmV0dXJuIHsg
ImVuIl9zIH07CisKKyAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXM7CisgICAgZm9yIChDRklu
ZGV4IGkgPSAwOyBpIDwgcGxhdGZvcm1MYW5ndWFnZXNDb3VudDsgaSsrKSB7CisgICAgICAgIGF1
dG8gcGxhdGZvcm1MYW5ndWFnZSA9IHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5R2V0
VmFsdWVBdEluZGV4KHBsYXRmb3JtTGFuZ3VhZ2VzLmdldCgpLCBpKSk7CisgICAgICAgIGxhbmd1
YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKHBsYXRmb3JtTGFuZ3VhZ2UpKTsKKwor
ICAgICAgICBpZiAoc2hvdWxkTWluaW1pemVMYW5ndWFnZXMgPT0gU2hvdWxkTWluaW1pemVMYW5n
dWFnZXM6Ok5vKSB7CisgICAgICAgICAgICAvLyBDb252ZXJ0IGxhbmd1YWdlcyB3aXRoIGNvdW50
cnkgY29kZXMgdG8gZXF1aXZhbGVudCBsYW5ndWFnZXMgd2l0aG91dCBjb3VudHJ5IGNvZGVzIChp
ZiBwb3NzaWJsZSkuCisgICAgICAgICAgICAvLyBlLmcuICJlbi1VUyIgYmVjb21lcyAiZW4iLCB3
aGljaCBpcyB1c2VmdWwgd2hlbiB0cnlpbmcgdG8gbWF0Y2ggSFRNTCBgbGFuZz0iZW4iYC4KKyAg
ICAgICAgICAgIGF1dG8gYmFzZUxhbmd1YWdlID0gYmFzZUxhbmd1YWdlRnJvbUxhbmd1YWdlKHBs
YXRmb3JtTGFuZ3VhZ2UpOworICAgICAgICAgICAgaWYgKENGU3RyaW5nQ29tcGFyZShiYXNlTGFu
Z3VhZ2UuZ2V0KCksIHBsYXRmb3JtTGFuZ3VhZ2UsIDApICE9IGtDRkNvbXBhcmVFcXVhbFRvKQor
ICAgICAgICAgICAgICAgIGxhbmd1YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKGJh
c2VMYW5ndWFnZS5nZXQoKSkpOwogICAgICAgICB9CiAgICAgfQotCi0gICAgVmVjdG9yPFN0cmlu
Zz4gdXNlclByZWZlcnJlZExhbmd1YWdlc0NvcHk7Ci0gICAgdXNlclByZWZlcnJlZExhbmd1YWdl
c0NvcHkucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLnNpemUo
KSk7Ci0KLSAgICBmb3IgKGF1dG8mIGxhbmd1YWdlIDogdXNlclByZWZlcnJlZExhbmd1YWdlcykK
LSAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlc0NvcHkudW5jaGVja2VkQXBwZW5kKGxhbmd1
YWdlLmlzb2xhdGVkQ29weSgpKTsKLQotICAgIHJldHVybiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
Q29weTsKLQotICAgIHJldHVybiBWZWN0b3I8U3RyaW5nPigpOworICAgIHJldHVybiBsYW5ndWFn
ZXM7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
Y29jb2EvTGFuZ3VhZ2VDb2NvYS5tbSBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29j
b2EubW0KaW5kZXggNWJhYjdjN2IyNjdjMGFkZDI1NWIyZmU2NzYyZWU2NDBlMDU4ODk5My4uODQ2
YmU0NDI5Y2U0MmUzMmE4MzhjNjk0NDcyNWZhN2FhYTJhNzM5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jb2Nv
YS9MYW5ndWFnZUNvY29hLm1tCkBAIC01OCw0ICs1OCw5IEBAIEFMTE9XX05FV19BUElfV0lUSE9V
VF9HVUFSRFNfQkVHSU4KIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiB9CiAKK1Jl
dGFpblB0cjxDRlN0cmluZ1JlZj4gYmFzZUxhbmd1YWdlRnJvbUxhbmd1YWdlKENGU3RyaW5nUmVm
IGxhbmd1YWdlKQoreworICAgIHJldHVybiAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpW05TTG9jYWxl
IGJhc2VMYW5ndWFnZUZyb21MYW5ndWFnZTooX19icmlkZ2UgTlNTdHJpbmcgKilsYW5ndWFnZV07
CiB9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvcGxh
eXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9wbGF5c3Rh
dGlvbi9MYW5ndWFnZVBsYXlTdGF0aW9uLmNwcAppbmRleCBkNDUzN2E2OTQwYjVlMDIyYmY1ZTVj
ZGY3MWE4NjNkMzMwOWRmNjFjLi5jYWYxNTQ5ZjgwMDJjMTM3ZTJmMWEwNjIyODE4MTU0ZjU2MjU0
ZTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9wbGF5c3RhdGlvbi9MYW5ndWFnZVBsYXlT
dGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9wbGF5c3RhdGlvbi9MYW5ndWFnZVBsYXlT
dGF0aW9uLmNwcApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotVmVjdG9y
PFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKK1ZlY3RvcjxTdHJpbmc+
IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcykK
IHsKICAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3NwaS9jb2NvYS9OU0xvY2FsZVNQSS5oIGIvU291cmNlL1dURi93dGYvc3BpL2NvY29h
L05TTG9jYWxlU1BJLmgKaW5kZXggNWNlZjE2NDAzMTZiNDczYTcxYmU3YmJhNjFhODgyNzRmMjgx
MDYyMS4uY2E5ODIwMWM2MTYzYTM3OWVlMWQ4ZjJjYTRmNTVkMzZmZmFiZjBiMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvc3BpL2NvY29hL05TTG9jYWxlU1BJLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvc3BpL2NvY29hL05TTG9jYWxlU1BJLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNlbmRpZgog
CiBAaW50ZXJmYWNlIE5TTG9jYWxlICgpCisrIChub25udWxsIE5TU3RyaW5nICopYmFzZUxhbmd1
YWdlRnJvbUxhbmd1YWdlOihub25udWxsIE5TU3RyaW5nICopbGFuZ3VhZ2VJRDsKICsgKG5vbm51
bGwgTlNBcnJheTxOU1N0cmluZyAqPiAqKW1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFnZXM6
KG5vbm51bGwgTlNBcnJheTxOU1N0cmluZyAqPiAqKWxhbmd1YWdlczsKIEBlbmQKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwIGIvU291cmNlL1dURi93
dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCmluZGV4IDMxYzc1NzQ3MmVlYWI2NDA3MjZlOTRjNWM1
NzUwNzE4ZmEzOTM4ZDEuLmFmOTRiYjA2Y2MzOGRkMmE4NTk1YmZiYjc3MTY5MGY5MmRiNDhhZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgc3Rh
dGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKICAgICByZXR1cm4gbm9ybWFsaXplZERlZmF1
bHQ7CiB9CiAKLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygp
CitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWlu
aW1pemVMYW5ndWFnZXMpCiB7CiAgICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgpIH07CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwIGIvU291cmNl
L1dURi93dGYvd2luL0xhbmd1YWdlV2luLmNwcAppbmRleCA5ZTdiZmYxMDk3OThjNjY3YWU3NTJh
ZjJhZmQ4ZjRmYTNkOWRjMjYzLi5hM2ZjNzlmNWVmMjI0ZGMyOTJhMmVlMWQxMTgxN2VjNDY0MWU1
OGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgc3Rh
dGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKICAgICByZXR1cm4gY29tcHV0ZWREZWZhdWx0
TGFuZ3VhZ2U7CiB9CiAKLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlcygpCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hv
dWxkTWluaW1pemVMYW5ndWFnZXMpCiB7CiAgICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgp
IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNw
cAppbmRleCBhYjAzYmRiNDNjNmYzYTNmMTViYTk1ZThkMmJiMzFlN2JjYTFlNTM5Li44MTE0MTkw
YjQzZWM1OTYyZDFiZmU3MmNiOGI5MTEyMGZjZDcyNWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgY29uc3Qg
R2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1l
dGhvZFRhYmxlID0gewogICAgICZyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAog
ICAgICZjdXJyZW50U2NyaXB0RXhlY3V0aW9uT3duZXIsCiAgICAgJnNjcmlwdEV4ZWN1dGlvblN0
YXR1cywKLSAgICAmZGVmYXVsdExhbmd1YWdlLAorICAgIFtdIHsgcmV0dXJuIGRlZmF1bHRMYW5n
dWFnZSgpOyB9LAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAmY29tcGlsZVN0cmVhbWlu
ZywKICAgICAmaW5zdGFudGlhdGVTdHJlYW1pbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNDgzOTk3MDhl
ZTAzNGJjNThhYzM4MmYzY2FjOTdmOTE2Nzc4MmZiOC4uOTIxMjVlNTZkNjk5NWQ0NjAwZGNkOGZj
YjdiNDIzYmE1OGJiNDgzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtNjEsNyArNjEsNyBAQCBjb25zdCBH
bG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxP
YmplY3RNZXRob2RUYWJsZQogICAgICZyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29w
LAogICAgICZjdXJyZW50U2NyaXB0RXhlY3V0aW9uT3duZXIsCiAgICAgJnNjcmlwdEV4ZWN1dGlv
blN0YXR1cywKLSAgICAmZGVmYXVsdExhbmd1YWdlLAorICAgIFtdIHsgcmV0dXJuIGRlZmF1bHRM
YW5ndWFnZSgpOyB9LAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAmY29tcGlsZVN0cmVh
bWluZywKICAgICAmaW5zdGFudGlhdGVTdHJlYW1pbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAppbmRleCA0MjFl
NzQ0ZjMzMDdhYmQ5OWIxZTVjMmQ1ZDdmMTNlMzNiMzhlOTAxLi40MjAyNzJhMWQwYjc1Y2E2OTVh
NjZmMTI0NmU0NzQ1OTZkNWE0ZTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAg
Y29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlOjpz
X2dsb2JhbE9iamVjdE1ldGhvZFRhYmwKICAgICAmcmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2
ZW50TG9vcCwKICAgICAmY3VycmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLAogICAgICZzY3JpcHRF
eGVjdXRpb25TdGF0dXMsCi0gICAgJmRlZmF1bHRMYW5ndWFnZSwKKyAgICBbXSB7IHJldHVybiBk
ZWZhdWx0TGFuZ3VhZ2UoKTsgfSwKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgJmNvbXBp
bGVTdHJlYW1pbmcsCiAgICAgJmluc3RhbnRpYXRlU3RyZWFtaW5nLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKaW5kZXggZDNlNDVlOGJiNGM3ZDIw
MGNkM2E0YTIxMjgyMGRlNGVkZmNkMWJmOC4uNTVmYTA5NjRjN2ZkOTg4NjM1ZWYzMzI1Y2JkYWJm
MGUyMTM0NDg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclBy
ZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVy
ZW5jZXMuY3BwCkBAIC0xNzAsNyArMTcwLDcgQEAgdm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2Vz
OjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCkKIAogVmVjdG9yPFN0cmluZz4gQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzKCkgY29uc3QKIHsKLSAgICBWZWN0b3I8
U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgVmVjdG9y
PFN0cmluZz4gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6
ZUxhbmd1YWdlczo6Tm8pOwogICAgIGlmIChtX3Rlc3RpbmdNb2RlICYmICFtX3VzZXJQcmVmZXJy
ZWRMYW5ndWFnZS5pc0VtcHR5KCkpCiAgICAgICAgIGxhbmd1YWdlcy5pbnNlcnQoMCwgbV91c2Vy
UHJlZmVycmVkTGFuZ3VhZ2UpOwogCkBAIC0zNDEsNyArMzQxLDcgQEAgaW50IENhcHRpb25Vc2Vy
UHJlZmVyZW5jZXM6OnRleHRUcmFja1NlbGVjdGlvblNjb3JlKFRleHRUcmFjayogdHJhY2ssIEhU
TUxNZWRpYUUKICAgICAgICAgICAgIGlmIChvZmZzZXQpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IDA7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBsYW5ndWFnZUxpc3QuYXBwZW5kKGRl
ZmF1bHRMYW5ndWFnZSgpKTsKKyAgICAgICAgICAgIGxhbmd1YWdlTGlzdC5hcHBlbmQoZGVmYXVs
dExhbmd1YWdlKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObykpOwogCiAgICAgICAgICAgICAv
LyBPbmx5IGVuYWJsZSBhIHRleHQgdHJhY2sgaWYgdGhlIGN1cnJlbnQgYXVkaW8gdHJhY2sgaXMg
Tk9UIGluIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlIC4uLgogICAgICAgICAgICAgc2l6
ZV90IG9mZnNldCA9IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChhdWRpb1RyYWNr
TGFuZ3VhZ2UsIGxhbmd1YWdlTGlzdCwgZXhhY3RNYXRjaCk7CkBAIC00MTgsNyArNDE4LDcgQEAg
U3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VP
dmVycmlkZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3ByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VP
dmVycmlkZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBtX3ByaW1hcnlBdWRpb1RyYWNrTGFu
Z3VhZ2VPdmVycmlkZTsKLSAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlKCk7CisgICAgcmV0dXJu
IGRlZmF1bHRMYW5ndWFnZShTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6Tm8pOwogfQogICAgIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2Vz
TWVkaWFBRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
ZWRpYUFGLmNwcAppbmRleCBjZjJlMWJlYTI1YjBmMDc5OTg2MzkyMDU5NDVkZjBlZWY5MmQzYzQy
Li4zMzU3Zjc3NDI2MGM0ZWQwZDg4NGEwYjg1N2RjYjhmNmNjZWM3NTE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcApA
QCAtNDcxLDM2ICs0NzEsMjAgQEAgdm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6
c2V0UHJlZmVycmVkTGFuZ3VhZ2UoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkKIAogVmVjdG9yPFN0
cmluZz4gQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OnByZWZlcnJlZExhbmd1YWdlcygp
IGNvbnN0CiB7Ci0gICAgaWYgKHRlc3RpbmdNb2RlKCkgfHwgIU1lZGlhQWNjZXNzaWJpbGl0eUxp
YnJhcnkoKSkKLSAgICAgICAgcmV0dXJuIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByZWZlcnJl
ZExhbmd1YWdlcygpOwotCi0gICAgVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1MYW5ndWFnZXMgPSBw
bGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKLSAgICBWZWN0b3I8U3RyaW5nPiBvdmVy
cmlkZSA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwotICAgIGlmICghb3ZlcnJp
ZGUuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGlmIChwbGF0Zm9ybUxhbmd1YWdlcy5zaXplKCkgIT0g
b3ZlcnJpZGUuc2l6ZSgpKQotICAgICAgICAgICAgcmV0dXJuIG92ZXJyaWRlOwotICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG92ZXJyaWRlLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgICAg
ICBpZiAob3ZlcnJpZGVbaV0gIT0gcGxhdGZvcm1MYW5ndWFnZXNbaV0pCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIG92ZXJyaWRlOworICAgIGF1dG8gcHJlZmVycmVkTGFuZ3VhZ2VzID0gQ2FwdGlv
blVzZXJQcmVmZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgaWYgKCF0ZXN0aW5n
TW9kZSgpICYmIE1lZGlhQWNjZXNzaWJpbGl0eUxpYnJhcnkoKSkgeworICAgICAgICBhdXRvIGNh
cHRpb25MYW5ndWFnZXMgPSBhZG9wdENGKE1BQ2FwdGlvbkFwcGVhcmFuY2VDb3B5U2VsZWN0ZWRM
YW5ndWFnZXMoa01BQ2FwdGlvbkFwcGVhcmFuY2VEb21haW5Vc2VyKSk7CisgICAgICAgIENGSW5k
ZXggY2FwdGlvbkxhbmd1YWdlc0NvdW50ID0gY2FwdGlvbkxhbmd1YWdlcyA/IENGQXJyYXlHZXRD
b3VudChjYXB0aW9uTGFuZ3VhZ2VzLmdldCgpKSA6IDA7CisgICAgICAgIGlmIChjYXB0aW9uTGFu
Z3VhZ2VzQ291bnQpIHsKKyAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHRlbXA7CisgICAgICAg
ICAgICB0ZW1wLnJlc2VydmVDYXBhY2l0eShjYXB0aW9uTGFuZ3VhZ2VzQ291bnQgKyBwcmVmZXJy
ZWRMYW5ndWFnZXMuc2l6ZSgpKTsKKyAgICAgICAgICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8
IGNhcHRpb25MYW5ndWFnZXNDb3VudDsgaSsrKQorICAgICAgICAgICAgICAgIHRlbXAuYXBwZW5k
KHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGNhcHRpb25M
YW5ndWFnZXMuZ2V0KCksIGkpKSk7CisgICAgICAgICAgICB0ZW1wLmFwcGVuZFZlY3RvcihXVEZN
b3ZlKHByZWZlcnJlZExhbmd1YWdlcykpOworICAgICAgICAgICAgcHJlZmVycmVkTGFuZ3VhZ2Vz
ID0gV1RGTW92ZSh0ZW1wKTsKICAgICAgICAgfQogICAgIH0KLQotICAgIENGSW5kZXggbGFuZ3Vh
Z2VDb3VudCA9IDA7Ci0gICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IGxhbmd1YWdlcyA9IGFkb3B0
Q0YoTUFDYXB0aW9uQXBwZWFyYW5jZUNvcHlTZWxlY3RlZExhbmd1YWdlcyhrTUFDYXB0aW9uQXBw
ZWFyYW5jZURvbWFpblVzZXIpKTsKLSAgICBpZiAobGFuZ3VhZ2VzKQotICAgICAgICBsYW5ndWFn
ZUNvdW50ID0gQ0ZBcnJheUdldENvdW50KGxhbmd1YWdlcy5nZXQoKSk7Ci0KLSAgICBpZiAoIWxh
bmd1YWdlQ291bnQpCi0gICAgICAgIHJldHVybiBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpwcmVm
ZXJyZWRMYW5ndWFnZXMoKTsKLQotICAgIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5n
dWFnZXM7Ci0gICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5yZXNlcnZlQ2FwYWNpdHkobGFuZ3Vh
Z2VDb3VudCArIHBsYXRmb3JtTGFuZ3VhZ2VzLnNpemUoKSk7Ci0gICAgZm9yIChDRkluZGV4IGkg
PSAwOyBpIDwgbGFuZ3VhZ2VDb3VudDsgaSsrKQotICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzLmFwcGVuZChzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRl
eChsYW5ndWFnZXMuZ2V0KCksIGkpKSk7Ci0KLSAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmFw
cGVuZFZlY3RvcihwbGF0Zm9ybUxhbmd1YWdlcyk7Ci0KLSAgICByZXR1cm4gdXNlclByZWZlcnJl
ZExhbmd1YWdlczsKKyAgICByZXR1cm4gcHJlZmVycmVkTGFuZ3VhZ2VzOwogfQogCiB2b2lkIENh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpzZXRQcmVmZXJyZWRBdWRpb0NoYXJhY3Rlcmlz
dGljKGNvbnN0IFN0cmluZyYgY2hhcmFjdGVyaXN0aWMpCkBAIC01NzksMTMgKzU2MywxNSBAQCBz
dGF0aWMgdm9pZCBidWlsZERpc3BsYXlTdHJpbmdGb3JUcmFja0Jhc2UoU3RyaW5nQnVpbGRlciYg
ZGlzcGxheU5hbWUsIGNvbnN0IFRyYQogICAgIFN0cmluZyBsYWJlbCA9IHRyYWNrLmxhYmVsKCk7
CiAgICAgU3RyaW5nIHRyYWNrTGFuZ3VhZ2VJZGVudGlmaWVyID0gdHJhY2sudmFsaWRCQ1A0N0xh
bmd1YWdlKCk7CiAKLSAgICBSZXRhaW5QdHI8Q0ZMb2NhbGVSZWY+IGN1cnJlbnRMb2NhbGUgPSBh
ZG9wdENGKENGTG9jYWxlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRlZmF1bHRMYW5ndWFn
ZSgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKKyAgICBhdXRvIHByZWZlcnJlZExhbmd1YWdl
cyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKTsK
KyAgICBhdXRvIGRlZmF1bHRMYW5ndWFnZSA9ICFwcmVmZXJyZWRMYW5ndWFnZXMuaXNFbXB0eSgp
ID8gcHJlZmVycmVkTGFuZ3VhZ2VzWzBdIDogZW1wdHlTdHJpbmcoKTsgLy8gVGhpcyBtYXRjaGVz
IGBXVEY6OmRlZmF1bHRMYW5ndWFnZWAuCisgICAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBjdXJy
ZW50TG9jYWxlID0gYWRvcHRDRihDRkxvY2FsZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBk
ZWZhdWx0TGFuZ3VhZ2UuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOwogICAgIFJldGFpblB0cjxD
RlN0cmluZ1JlZj4gbG9jYWxlSWRlbnRpZmllciA9IGFkb3B0Q0YoQ0ZMb2NhbGVDcmVhdGVDYW5v
bmljYWxMb2NhbGVJZGVudGlmaWVyRnJvbVN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCB0cmFj
a0xhbmd1YWdlSWRlbnRpZmllci5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CiAgICAgUmV0YWlu
UHRyPENGU3RyaW5nUmVmPiBsYW5ndWFnZUNGID0gYWRvcHRDRihDRkxvY2FsZUNvcHlEaXNwbGF5
TmFtZUZvclByb3BlcnR5VmFsdWUoY3VycmVudExvY2FsZS5nZXQoKSwga0NGTG9jYWxlTGFuZ3Vh
Z2VDb2RlLCBsb2NhbGVJZGVudGlmaWVyLmdldCgpKSk7CiAgICAgU3RyaW5nIGxhbmd1YWdlID0g
bGFuZ3VhZ2VDRi5nZXQoKTsKIAogICAgIGlmICghbGFiZWwuaXNFbXB0eSgpKSB7Ci0gICAgICAg
IGlmIChsYW5ndWFnZS5pc0VtcHR5KCkgfHwgbGFiZWwuY29udGFpbnMobGFuZ3VhZ2UpKQorICAg
ICAgICBpZiAobGFuZ3VhZ2UuaXNFbXB0eSgpIHx8IGxhYmVsLmNvbnRhaW5zKGxhbmd1YWdlKSB8
fCBwcmVmZXJyZWRMYW5ndWFnZXMuY29udGFpbnModHJhY2tMYW5ndWFnZUlkZW50aWZpZXIpKQog
ICAgICAgICAgICAgZGlzcGxheU5hbWUuYXBwZW5kKGxhYmVsKTsKICAgICAgICAgZWxzZSB7CiAg
ICAgICAgICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBsb2NhbGVEaWN0ID0gYWRvcHRD
RihDRkxvY2FsZUNyZWF0ZUNvbXBvbmVudHNGcm9tTG9jYWxlSWRlbnRpZmllcihrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBsb2NhbGVJZGVudGlmaWVyLmdldCgpKSk7CkBAIC03MDksMTUgKzY5NSwxNiBA
QCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmRpc3BsYXlOYW1lRm9yVHJh
Y2soVGV4dFRyYWNrKiB0cmFjaykgY29ucwogCiBzdGF0aWMgYm9vbCB0ZXh0VHJhY2tDb21wYXJl
KGNvbnN0IFJlZlB0cjxUZXh0VHJhY2s+JiBhLCBjb25zdCBSZWZQdHI8VGV4dFRyYWNrPiYgYikK
IHsKLSAgICBTdHJpbmcgcHJlZmVycmVkTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1l
Rm9yTGFuZ3VhZ2VMb2NhbGUobGFuZ3VhZ2VJZGVudGlmaWVyKGRlZmF1bHRMYW5ndWFnZSgpKSk7
CiAgICAgU3RyaW5nIGFMYW5ndWFnZURpc3BsYXlOYW1lID0gZGlzcGxheU5hbWVGb3JMYW5ndWFn
ZUxvY2FsZShsYW5ndWFnZUlkZW50aWZpZXIoYS0+dmFsaWRCQ1A0N0xhbmd1YWdlKCkpKTsKICAg
ICBTdHJpbmcgYkxhbmd1YWdlRGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9j
YWxlKGxhbmd1YWdlSWRlbnRpZmllcihiLT52YWxpZEJDUDQ3TGFuZ3VhZ2UoKSkpOwogCi0gICAg
Ly8gVHJhY2tzIGluIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlIGFyZSBhbHdheXMgYXQg
dGhlIHRvcCBvZiB0aGUgbWVudS4KLSAgICBib29sIGFJc1ByZWZlcnJlZExhbmd1YWdlID0gYUxh
bmd1YWdlRGlzcGxheU5hbWUgPT0gcHJlZmVycmVkTGFuZ3VhZ2VEaXNwbGF5TmFtZTsKLSAgICBi
b29sIGJJc1ByZWZlcnJlZExhbmd1YWdlID0gYkxhbmd1YWdlRGlzcGxheU5hbWUgPT0gcHJlZmVy
cmVkTGFuZ3VhZ2VEaXNwbGF5TmFtZTsKLSAgICBpZiAoYUlzUHJlZmVycmVkTGFuZ3VhZ2UgIT0g
YklzUHJlZmVycmVkTGFuZ3VhZ2UpCi0gICAgICAgIHJldHVybiBhSXNQcmVmZXJyZWRMYW5ndWFn
ZTsKKyAgICBmb3IgKGF1dG8mIHByZWZlcnJlZExhbmd1YWdlIDogdXNlclByZWZlcnJlZExhbmd1
YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6Tm8pKSB7CisgICAgICAgIFN0cmluZyBwcmVm
ZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lID0gZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShs
YW5ndWFnZUlkZW50aWZpZXIocHJlZmVycmVkTGFuZ3VhZ2UpKTsKKyAgICAgICAgYm9vbCBhSXNQ
cmVmZXJyZWRMYW5ndWFnZSA9IGFMYW5ndWFnZURpc3BsYXlOYW1lID09IHByZWZlcnJlZExhbmd1
YWdlRGlzcGxheU5hbWU7CisgICAgICAgIGJvb2wgYklzUHJlZmVycmVkTGFuZ3VhZ2UgPSBiTGFu
Z3VhZ2VEaXNwbGF5TmFtZSA9PSBwcmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lOworICAgICAg
ICBpZiAoYUlzUHJlZmVycmVkTGFuZ3VhZ2UgIT0gYklzUHJlZmVycmVkTGFuZ3VhZ2UpCisgICAg
ICAgICAgICByZXR1cm4gYUlzUHJlZmVycmVkTGFuZ3VhZ2U7CisgICAgfQogCiAgICAgQ29sbGF0
b3IgY29sbGF0b3I7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3Vw
QVZGT2JqQy5tbQppbmRleCA5YmQ1NjQ4NDBjMjgyYWY1N2ExMGQ0ZTRkY2JlODc1NzM0YmM4MjZh
Li5iNDE5YjYwZDk4ZTM2NmRiNDdkYzcwNTdlYmQyNTc2OGRjM2Q2OTM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rp
b25Hcm91cEFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCkBAIC0xMzQsNyArMTM0
LDcgQEAgdm9pZCBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQzo6dXBkYXRlT3B0aW9ucyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgY2hhcmFjdGVyaXMKICAgICAgICAgcmV0dXJuOwogCiAgICAgTlNB
cnJheSogZmlsdGVyZWRPcHRpb25zID0gW1BBTDo6Z2V0QVZNZWRpYVNlbGVjdGlvbkdyb3VwQ2xh
c3MoKSBtZWRpYVNlbGVjdGlvbk9wdGlvbnNGcm9tQXJyYXk6W21fbWVkaWFTZWxlY3Rpb25Hcm91
cCBvcHRpb25zXQotICAgICAgICBmaWx0ZXJlZEFuZFNvcnRlZEFjY29yZGluZ1RvUHJlZmVycmVk
TGFuZ3VhZ2VzOmNyZWF0ZU5TQXJyYXkodXNlclByZWZlcnJlZExhbmd1YWdlcygpKS5nZXQoKV07
CisgICAgICAgIGZpbHRlcmVkQW5kU29ydGVkQWNjb3JkaW5nVG9QcmVmZXJyZWRMYW5ndWFnZXM6
Y3JlYXRlTlNBcnJheSh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3Vh
Z2VzOjpObykpLmdldCgpXTsKIAogICAgIGlmICghW2ZpbHRlcmVkT3B0aW9ucyBjb3VudF0gJiYg
Y2hhcmFjdGVyaXN0aWNzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGVjMWRlZjYyN2I1ZmQyNTQz
YmViYWEyNWYxYzY1ODY0NWMyZDg0MTQuLjIyZmE0ZjZhNzJlZWEwNDU1ZGU1MzA3ZTg5YTU3NjVm
NmY4NzIxZDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wNS0yMSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihy
MjU0Mzg5KSBtZWRpYSBjb250cm9scyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHBy
ZWZlcmVuY2VzIGZvciBvcmRlcmluZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvTGFuZ3Vh
Z2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QuTGFuZ3VhZ2UuU2hv
dWxkTWluaW1pemVMYW5ndWFnZXNZZXMpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVC5M
YW5ndWFnZS5TaG91bGRNaW5pbWl6ZUxhbmd1YWdlc05vKToKKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA1
LTIxICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtD
b2NvYV0gVXBkYXRlIEF1ZGlvU2Vzc2lvbiBidWZmZXIgc2l6ZSBoYW5kbGluZwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAzYmI4ZWJiNjJiNWY2MzU5ZTVjMjg3MWI4ZjVlZDVmYTBmZDBjYzZk
Li5mMTY2MGM3ZTVjMmEzNTM4Y2UxYTA0OGMzZTIxZDkxMDhmM2IxZTBjIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtODc5LDYgKzg3OSw3IEBACiAJCTk1MDk1RjIwMjYyRkZGQTUwMDAwRDky
MCAvKiBTYW1wbGVkUGFnZVRvcENvbG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTUwOTVGMUYyNjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdl
VG9wQ29sb3IubW0gKi87IH07CiAJCTk1MEU0Q0MxMjUyRTc1MjQwMDcxNjU5RiAvKiBpT1NTdHls
dXNTdXBwb3J0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi87IH07
CiAJCTk1M0FCQjM1MjVDMEQ2ODIwMDRDOEI3MyAvKiBXS1dlYlZpZXdVbmRlclBhZ2VCYWNrZ3Jv
dW5kQ29sb3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NTNBQkIzNDI1QzBENjgxMDA0QzhCNzMgLyogV0tXZWJWaWV3VW5kZXJQYWdlQmFja2dyb3Vu
ZENvbG9yLm1tICovOyB9OworCQk5NTRFNDEzMDI2NTZFMDY4MDA0NTVENEYgLyogTGFuZ3VhZ2Uu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU0RTQx
MkUyNjU2RTA2MzAwNDU1RDRGIC8qIExhbmd1YWdlLmNwcCAqLzsgfTsKIAkJOTVBNTI0OTUyNTgx
QTEwRDAwNDYxRkU5IC8qIFdLV2ViVmlld1RoZW1lQ29sb3IubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUE1MjQ5NDI1ODFBMTBEMDA0NjFGRTkgLyog
V0tXZWJWaWV3VGhlbWVDb2xvci5tbSAqLzsgfTsKIAkJOTVCNkIzQjcyNTFFQkYyRjAwRkM0Mzgy
IC8qIE1lZGlhRG9jdW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NUI2QjNCNjI1MUVCRjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5tbSAq
LzsgfTsKIAkJOTk4NEZBQ0MxQ0ZGQUY2MDAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5ODRGQUNB
MUNGRkFFRUUwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi87IH07CkBAIC0yNTg3
LDYgKzI1ODgsNyBAQAogCQk5NTA5NUYxRjI2MkZGRkE1MDAwMEQ5MjAgLyogU2FtcGxlZFBhZ2VU
b3BDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNhbXBs
ZWRQYWdlVG9wQ29sb3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEU0Q0Mw
MjUyRTc1MjMwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gaU9TU3R5bHVzU3VwcG9ydC5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTUzQUJCMzQyNUMwRDY4MTAwNEM4QjczIC8qIFdLV2ViVmlld1Vu
ZGVyUGFnZUJhY2tncm91bmRDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdLV2ViVmlld1VuZGVyUGFnZUJhY2tncm91bmRDb2xvci5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTU0RTQxMkUyNjU2RTA2MzAwNDU1RDRGIC8qIExhbmd1YWdl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExhbmd1YWdlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVBNTI0OTQyNTgxQTEwRDAwNDYxRkU5IC8q
IFdLV2ViVmlld1RoZW1lQ29sb3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5NUI2QjNCNjI1MUVCRjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhRG9jdW1lbnQubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5ODRGQUNBMUNGRkFFRUUwMDhEMTk4QyAvKiBXS1dl
YlZpZXdUZXh0SW5wdXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXS1dlYlZpZXdUZXh0SW5wdXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00
ODE5LDYgKzQ4MjEsNyBAQAogCQlDMDk5MUM0RjE0M0M3RDY4MDA3OTk4RjIgLyogY2YgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTk1NEU0MTJFMjY1NkUw
NjMwMDQ1NUQ0RiAvKiBMYW5ndWFnZS5jcHAgKi8sCiAJCQkJQkMwMjlCMTYxNDg2QUQ2NDAwODE3
REE5IC8qIFJldGFpblB0ci5jcHAgKi8sCiAJCQkJQzA5OTFDNTAxNDNDN0Q2ODAwNzk5OEYyIC8q
IFJldGFpblB0ckhhc2hpbmcuY3BwICovLAogCQkJKTsKQEAgLTUyMDAsNiArNTIwMyw3IEBACiAJ
CQkJNTNGQ0RFNkIyMjlFRkZCOTAwNTk4RUNGIC8qIElzb0hlYXAuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NFQjYyQUIyMjM2MDlERTAwNjlDQkIwIC8qIEl0ZXJhdG9yUmFuZ2UuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0EwNTA5NDExRkI5RjA2NDAwQjMzRkI4IC8qIEpTT05WYWx1ZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk5NTRFNDEzMDI2NTZFMDY4MDA0NTVENEYgLyogTGFuZ3VhZ2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTMxQzFEOEUxREY4RUY3MjAwNkU5NzlGIC8qIExFQkRl
Y29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU3RDU0RjkxRjMzOTdCNDAwQTk3QUE3IC8q
IExpZmVjeWNsZUxvZ2dlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0UyQzU1NTFGRDMyMDQx
MDBFMURGNkEgLyogTGluZUVuZGluZy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NmL0xhbmd1YWdlLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL2NmL0xhbmd1YWdlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNWUzODg2YmM1
MjNiMjA5Y2RlOWIyZjA4ZGIwYTM3ZTFjNDMzYWM1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvTGFuZ3VhZ2UuY3BwCkBAIC0wLDAgKzEsNzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDx3dGYvTGFuZ3Vh
Z2UuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0
cmVhbS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CisKK1RFU1QoTGFuZ3VhZ2UsIFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzWWVz
KQoreworICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyh7IH0pOworICAgIFdURjo6
b3ZlcnJpZGVJbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRm9yVGVzdGluZyh7
ICJlbi1VUyJfcywgImVzLVVTIl9zLCAiZnItVVMiX3MgfSk7CisKKyAgICBhdXRvIGxhbmd1YWdl
cyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Olllcyk7
CisgICAgQUxXQVlTX0xPR19XSVRIX1NUUkVBTShzdHJlYW0gPDwgIkxhbmd1YWdlLlNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzWWVzIC0gbGFuZ3VhZ2VzID0gIiA8PCBsYW5ndWFnZXMpOworCisgICAg
RVhQRUNUX0dFKGxhbmd1YWdlcy5maW5kKCJlbi1VUyJfcyksIDBVKTsKKyAgICBFWFBFQ1RfR1Qo
bGFuZ3VhZ2VzLmZpbmQoImVuIl9zKSwgbGFuZ3VhZ2VzLmZpbmQoImVuLVVTIl9zKSk7CisKKyAg
ICBFWFBFQ1RfRkFMU0UobGFuZ3VhZ2VzLmNvbnRhaW5zKCJlcy1VUyJfcykpOworICAgIEVYUEVD
VF9GQUxTRShsYW5ndWFnZXMuY29udGFpbnMoImVzIl9zKSk7CisKKyAgICBFWFBFQ1RfRkFMU0Uo
bGFuZ3VhZ2VzLmNvbnRhaW5zKCJmci1VUyJfcykpOworICAgIEVYUEVDVF9GQUxTRShsYW5ndWFn
ZXMuY29udGFpbnMoImZyIl9zKSk7CisKKyAgICBXVEY6Om92ZXJyaWRlSW5pdGlhbFBsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlc0ZvclRlc3RpbmcoeyB9KTsgLy8gY2xlYW51cAorfQorCitU
RVNUKExhbmd1YWdlLCBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlc05vKQoreworICAgIG92ZXJyaWRl
VXNlclByZWZlcnJlZExhbmd1YWdlcyh7IH0pOworICAgIFdURjo6b3ZlcnJpZGVJbml0aWFsUGxh
dGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRm9yVGVzdGluZyh7ICJlbi1VUyJfcywgImVzLVVT
Il9zLCAiZnItVVMiX3MgfSk7CisKKyAgICBhdXRvIGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKTsKKyAgICBBTFdBWVNfTE9HX1dJ
VEhfU1RSRUFNKHN0cmVhbSA8PCAiTGFuZ3VhZ2UuU2hvdWxkTWluaW1pemVMYW5ndWFnZXNObyAt
IGxhbmd1YWdlcyA9ICIgPDwgbGFuZ3VhZ2VzKTsKKworICAgIEVYUEVDVF9HRShsYW5ndWFnZXMu
ZmluZCgiZW4tVVMiX3MpLCAwVSk7CisgICAgRVhQRUNUX0dUKGxhbmd1YWdlcy5maW5kKCJlbiJf
cyksIGxhbmd1YWdlcy5maW5kKCJlbi1VUyJfcykpOworCisgICAgRVhQRUNUX0dUKGxhbmd1YWdl
cy5maW5kKCJlcy1VUyJfcyksIGxhbmd1YWdlcy5maW5kKCJlbi1VUyJfcykpOworICAgIEVYUEVD
VF9HVChsYW5ndWFnZXMuZmluZCgiZXMiX3MpLCBsYW5ndWFnZXMuZmluZCgiZXMtVVMiX3MpKTsK
KworICAgIEVYUEVDVF9HVChsYW5ndWFnZXMuZmluZCgiZnItVVMiX3MpLCBsYW5ndWFnZXMuZmlu
ZCgiZXMtVVMiX3MpKTsKKyAgICBFWFBFQ1RfR1QobGFuZ3VhZ2VzLmZpbmQoImZyIl9zKSwgbGFu
Z3VhZ2VzLmZpbmQoImZyLVVTIl9zKSk7CisKKyAgICBXVEY6Om92ZXJyaWRlSW5pdGlhbFBsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0ZvclRlc3RpbmcoeyB9KTsgLy8gY2xlYW51cAorfQor
Cit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429383</attachid>
            <date>2021-05-21 18:41:54 -0700</date>
            <delta_ts>2021-05-21 23:59:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>226038.diff</filename>
            <type>text/plain</type>
            <size>38365</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDBhNzI0OGIwY2I1ZDQ4Yjg2NDlkOTNlNWRmNmI0
YTI0ODA5MTgyYzUuLjQwOGE0YTYwODQ3NTVmYzc2ZjU4MmQzOTk2MmVmODA4YjU2Y2NiNmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA1LTIxICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENv
bnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxs
IGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWEgY29udHJvbHMg
bmVlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBpbiBv
cmRlciB0byBwcm9wZXJseQorICAgICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNrcyBp
biB0aGUgY29udHJvbHMgVUkuIEZvciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3VidGl0
bGVzCisgICAgICAgIGZvciBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhlIHVz
ZXIgaGFzIEVuZ2xpc2ggKGRlZmF1bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAgICAg
Y29uZmlndXJlZCBpbiB0aGUgTGFuZ3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJlZmVy
ZW5jZXMgb24gbWFjT1MsIFdlYktpdCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRpdGxl
cyBsaXN0IEVuZ2xpc2gsIEZyZW5jaCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3Bw
OgorICAgICAgICAoSlNDOjpkZWZhdWx0TG9jYWxlKToKKyAgICAgICAgVXBkYXRlIHVzYWdlIG9m
IGBXVEY6OmRlZmF1bHRMYW5ndWFnZWAgdG8gYWxzbyBoYXZlIGBXVEY6OlNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzYC4KKworICAgICAgICAqIHNoZWxsL3BsYXlzdGF0aW9uL1Rlc3RTaGVsbC5jcHA6
CisgICAgICAgIChwcmVUZXN0KToKKyAgICAgICAgSW5zdGVhZCBvZiBwcm9wYWdhdGluZyB0aGUg
b3ZlcnJpZGUsIGp1c3QgY2xlYXIgaXQgb3V0LgorCiAyMDIxLTA1LTIxICBNYXJrIExhbSAgPG1h
cmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2luZyBKSVRUaHVua3M6OnByZWlu
aXRpYWxpemVDVElUaHVua3MoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYjUxMzliYzA5NDA2ZjkwNjFmNTVmOTFlNGI2MTcz
NzQ3MzY3NDYxOC4uYTNlM2ExZDk3M2Y2OGM0NzdjODVkNjQxYzQ3ZTIwODI4MzE1NjRhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0NCBAQAorMjAyMS0wNS0yMSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBs
ZS5jb20+CisKKyAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0
Mzg5KSBtZWRpYSBjb250cm9scyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZl
cmVuY2VzIGZvciBvcmRlcmluZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxs
IGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAg
ICAgc29ydC9vcmRlciB0aGUgbGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3Ig
ZXhhbXBsZSwgaWYgYSBgPHZpZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlz
aCwgU3BhbmlzaCwgYW5kIEZyZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0
KSBhbmQgRnJlbmNoIChhbHRlcm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1
YWdlICYgUmVnaW9uIHZpZXcgb2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQg
c2hvdWxkIG9yZGVyCisgICAgICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gs
IGFuZCB0aGVuIFNwYW5pc2guCisKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuaDoKKyAgICAgICAg
KiB3dGYvTGFuZ3VhZ2UuY3BwOgorICAgICAgICAoV1RGOjpjYWNoZWRGdWxsUGxhdGZvcm1QcmVm
ZXJyZWRMYW5ndWFnZXMpOiBBZGRlZC4KKyAgICAgICAgKFdURjo6Y2FjaGVkTWluaW1pemVkUGxh
dGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMpOiBBZGRlZC4KKyAgICAgICAgKFdURjo6bGFuZ3VhZ2VE
aWRDaGFuZ2UpOgorICAgICAgICAoV1RGOjpkZWZhdWx0TGFuZ3VhZ2UpOgorICAgICAgICAoV1RG
Ojp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgKFdURjo6aW5pdGlhbFBsYXRmb3Jt
UHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nKTogQWRkZWQuCisgICAgICAgIChX
VEY6OmluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3Rp
bmcpOiBBZGRlZC4KKyAgICAgICAgKFdURjo6b3ZlcnJpZGVJbml0aWFsUGxhdGZvcm1Vc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzRm9yVGVzdGluZyk6IEFkZGVkLgorICAgICAgICBNb3ZlIHRoZSBjYWNo
aW5nIGluIGB3dGYvY2YvTGFuZ3VhZ2VDRi5jcHBgIHRvIGB3dGYvTGFuZ3VhZ2UuY3BwYCBzbyB0
aGF0IGFsbCBwbGF0Zm9ybXMgY2FuCisgICAgICAgIGJlbmVmaXQgZnJvbSBjYWNoaW5nIHRoZSBy
ZXN1bHQgb2YgYHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc2AuCisKKyAgICAgICAgKiB3
dGYvY2YvTGFuZ3VhZ2VDRi5jcHA6CisgICAgICAgIChXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJl
ZExhbmd1YWdlcyk6CisgICAgICAgIChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2VEaWRDaGFuZ2UpOiBE
ZWxldGVkLgorICAgICAgICAqIHd0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1tOgorICAgICAgICAo
V1RGOjpiYXNlTGFuZ3VhZ2VGcm9tTGFuZ3VhZ2UpOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvcGxh
eXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5jcHA6CisgICAgICAgIChXVEY6OnBsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgICogd3RmL3NwaS9jb2NvYS9OU0xvY2Fs
ZVNQSS5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5jcHA6CisgICAgICAgIChX
VEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgICogd3RmL3dpbi9M
YW5ndWFnZVdpbi5jcHA6CisgICAgICAgIChXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlcyk6CisgICAgICAgIEFkZCBgV1RGOjpTaG91bGRNaW5pbWl6ZUxhbmd1YWdlc2AgdGhhdCBj
b250cm9scyB3aGV0aGVyIGBXVEY6Om1pbmltaXplZFByZWZlcnJlZExhbmd1YWdlc2AKKyAgICAg
ICAgaXMgY2FsbGVkLiBTaW5jZSB0aGUgcmVzdWx0IGlzIGNhY2hlZCwgY3JlYXRlIHNlcGFyYXRl
IGBWZWN0b3I8U3RyaW5nPmAgZm9yIGVhY2ggZW51bSB2YWx1ZS4KKwogMjAyMS0wNS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gVW5hYmxlIHRv
IHVwbG9hZCBmaWxlcyB0aGF0IGFyZSBzdG9yZWQgaW4gdGhlIGNsb3VkICh3aXRob3V0IGEgbG9j
YWwgY29weSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhNjA3OTJlMmRmZDU1NWRhNWQ5ZTBlNjcyZDE0OWU5MDEz
OWQzZTk5Li43ODNiNThmOWVlMTJhNWYwMjY2MzdkY2JhNjgzNDViMjhmYjgyMWI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDUtMjEgIERldmluIFJvdXNzbyAgPGRyb3Vzc29A
YXBwbGUuY29tPgorCisgICAgICAgIFtNb2Rlcm4gTWVkaWEgQ29udHJvbHNdIFJFR1JFU1NJT04o
cjI1NDM4OSkgbWVkaWEgY29udHJvbHMgbmVlZHMgdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBw
cmVmZXJlbmNlcyBmb3Igb3JkZXJpbmcgdHJhY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYwMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNZWRpYSBjb250cm9scyBuZWVkIGFjY2VzcyB0byB0aGUg
ZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGluIG9yZGVyIHRvIHByb3Blcmx5Cisg
ICAgICAgIHNvcnQvb3JkZXIgdGhlIGxpc3Qgb2YgdHJhY2tzIGluIHRoZSBjb250cm9scyBVSS4g
Rm9yIGV4YW1wbGUsIGlmIGEgYDx2aWRlbz5gIGhhcyBzdWJ0aXRsZXMKKyAgICAgICAgZm9yIEVu
Z2xpc2gsIFNwYW5pc2gsIGFuZCBGcmVuY2gsIGFuZCB0aGUgdXNlciBoYXMgRW5nbGlzaCAoZGVm
YXVsdCkgYW5kIEZyZW5jaCAoYWx0ZXJuYXRlKQorICAgICAgICBjb25maWd1cmVkIGluIHRoZSBM
YW5ndWFnZSAmIFJlZ2lvbiB2aWV3IG9mIFN5c3RlbSBQcmVmZXJlbmNlcyBvbiBtYWNPUywgV2Vi
S2l0IHNob3VsZCBvcmRlcgorICAgICAgICB0aGUgc3VidGl0bGVzIGxpc3QgRW5nbGlzaCwgRnJl
bmNoLCBhbmQgdGhlbiBTcGFuaXNoLgorCisgICAgICAgIFRlc3RzOiBMYW5ndWFnZS5TaG91bGRN
aW5pbWl6ZUxhbmd1YWdlc1llcworICAgICAgICAgICAgICAgTGFuZ3VhZ2UuU2hvdWxkTWluaW1p
emVMYW5ndWFnZXNObworCisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByZWZlcnJlZExh
bmd1YWdlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2Vz
Ojp0ZXh0VHJhY2tTZWxlY3Rpb25TY29yZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDYXB0
aW9uVXNlclByZWZlcmVuY2VzOjpwcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGUgY29u
c3QpOgorICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OnByZWZlcnJl
ZExhbmd1YWdlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpidWlsZERpc3BsYXlTdHJpbmdG
b3JUcmFja0Jhc2UpOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFRyYWNrQ29tcGFyZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBB
VkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM6
OnVwZGF0ZU9wdGlvbnMpOgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHA6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAg
ICAgICAgV3JhcCBgZGVmYXVsdExhbmd1YWdlYCBpbiBhIGxhbWJkYSBzaW5jZSBpdCBub3cgaGFz
IGEgcGFyYW1ldGVyLgorCiAyMDIxLTA1LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVwbGFjZSBtb3JlIHN0YXRpYyBMb2NrcyB3aXRoIENoZWNrZWRMb2Nr
cyBpbiBXVEYgLyBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hl
bGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVs
bC9wbGF5c3RhdGlvbi9UZXN0U2hlbGwuY3BwCmluZGV4IDI3ODJmZGEwODk4NjVkY2YwZTJmN2Mx
ZGIyOTMzMTUxMjg5NGRlNDkuLjMxZmVhZjdlYzU4Zjc5NWY4YzNkYmI3N2Q5Zjk1N2MzM2Y2MmZj
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9wbGF5c3RhdGlvbi9U
ZXN0U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9wbGF5c3RhdGlv
bi9UZXN0U2hlbGwuY3BwCkBAIC02Miw3ICs2Miw3IEBAIGV4dGVybiAiQyIgdm9pZCBwcmVUZXN0
KCkKICAgICBKU0M6Ok9wdGlvbnM6Om5hbWVfKCkgPSBvcmlnIyNuYW1lXzsKICAgICBGT1JfRUFD
SF9KU0NfT1BUSU9OKElOSVRfT1BUSU9OKQogI3VuZGVmIElOSVRfT1BUSU9OCi0gICAgb3ZlcnJp
ZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygp
KTsKKyAgICBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoeyB9KTsKIH0KIAogZXh0ZXJu
ICJDIiBpbnQgcnVuVGVzdChpbnQgYXJnYywgY2hhciogYXJndltdKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwIGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwCmlu
ZGV4IGJlNjI1OGQ4NTdlNTk4OGY5Njk4MzkwMjAyYmNjOTNjM2MxNzgyMGYuLmVmNGNkMTIxY2Jk
YjllNzdmZTI1NmE5Nzk4N2IxMjE2YTI1MzQzMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L0xhbmd1YWdlLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKQEAgLTM3LDYg
KzM3LDE4IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCitzdGF0aWMgQ2hlY2tlZExvY2sgY2FjaGVk
UGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrOworc3RhdGljIFZlY3RvcjxTdHJpbmc+JiBj
YWNoZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKSBXVEZfUkVRVUlSRVNfTE9DSyhj
YWNoZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc0xvY2spCit7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBsYW5ndWFnZXM7CisgICAgcmV0dXJuIGxhbmd1YWdl
czsKK30KK3N0YXRpYyBWZWN0b3I8U3RyaW5nPiYgY2FjaGVkTWluaW1pemVkUGxhdGZvcm1QcmVm
ZXJyZWRMYW5ndWFnZXMoKSBXVEZfUkVRVUlSRVNfTE9DSyhjYWNoZWRQbGF0Zm9ybVByZWZlcnJl
ZExhbmd1YWdlc0xvY2spCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJp
bmc+PiBsYW5ndWFnZXM7CisgICAgcmV0dXJuIGxhbmd1YWdlczsKK30KKwogc3RhdGljIENoZWNr
ZWRMb2NrIHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlTG9jazsKIHN0YXRpYyBWZWN0b3I8U3Ry
aW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKSBXVEZfUkVRVUlSRVNfTE9DSyhwcmVm
ZXJyZWRMYW5ndWFnZXNPdmVycmlkZUxvY2spCiB7CkBAIC02OCwxNiArODAsMjEgQEAgdm9pZCBy
ZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNvbnRleHQpCiAKIHZvaWQgbGFuZ3Vh
Z2VEaWRDaGFuZ2UoKQogewotICAgIHBsYXRmb3JtTGFuZ3VhZ2VEaWRDaGFuZ2UoKTsKKyAgICB7
CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBjYWNoZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdl
c0xvY2sgfTsKKyAgICAgICAgY2FjaGVkRnVsbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCku
Y2xlYXIoKTsKKyAgICAgICAgY2FjaGVkTWluaW1pemVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFn
ZXMoKS5jbGVhcigpOworICAgIH0KKwogICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBjb3B5VG9W
ZWN0b3Iob2JzZXJ2ZXJNYXAoKSkpIHsKICAgICAgICAgaWYgKG9ic2VydmVyTWFwKCkuY29udGFp
bnMob2JzZXJ2ZXIua2V5KSkKICAgICAgICAgICAgIG9ic2VydmVyLnZhbHVlKG9ic2VydmVyLmtl
eSk7CiAgICAgfQogfQogCi1TdHJpbmcgZGVmYXVsdExhbmd1YWdlKCkKK1N0cmluZyBkZWZhdWx0
TGFuZ3VhZ2UoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgc2hvdWxkTWluaW1pemVMYW5ndWFnZXMp
CiB7Ci0gICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdl
cygpOworICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXMoc2hvdWxkTWluaW1pemVMYW5ndWFnZXMpOwogICAgIGlmIChsYW5ndWFnZXMuc2l6ZSgpKQog
ICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzWzBdOwogCkBAIC0xMDgsNyArMTI1LDcgQEAgc3RhdGlj
IFZlY3RvcjxTdHJpbmc+IGlzb2xhdGVkQ29weShjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3RyaW5n
cykKICAgICByZXR1cm4gY29weTsKIH0KIAotVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExh
bmd1YWdlcygpCitWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzIHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewogICAgIHsKICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlTG9jayB9OwpAQCAt
MTE3LDcgKzEzNCwxMSBAQCBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkK
ICAgICAgICAgICAgIHJldHVybiBpc29sYXRlZENvcHkob3ZlcnJpZGUpOwogICAgIH0KIAotICAg
IHJldHVybiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBMb2NrZXIgbG9j
a2VyIHsgY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrIH07CisgICAgYXV0byYg
bGFuZ3VhZ2VzID0gc2hvdWxkTWluaW1pemVMYW5ndWFnZXMgPT0gU2hvdWxkTWluaW1pemVMYW5n
dWFnZXM6OlllcyA/IGNhY2hlZE1pbmltaXplZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkg
OiBjYWNoZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBpZiAobGFuZ3Vh
Z2VzLmlzRW1wdHkoKSkKKyAgICAgICAgbGFuZ3VhZ2VzID0gcGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKTsKKyAgICByZXR1cm4gaXNvbGF0ZWRD
b3B5KGxhbmd1YWdlcyk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgY2Fub25pY2FsTGFuZ3VhZ2VJZGVu
dGlmaWVyKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2VDb2RlKQpAQCAtMTkwLDQgKzIxMSwyNiBAQCB2
b2lkIHBsYXRmb3JtTGFuZ3VhZ2VEaWRDaGFuZ2UoKQogfQogI2VuZGlmCiAKK3N0YXRpYyBDaGVj
a2VkTG9jayBpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3Rp
bmdMb2NrOworc3RhdGljIFZlY3RvcjxTdHJpbmc+JiBpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRM
YW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKSBXVEZfUkVRVUlSRVNfTE9DSyhpbml0aWFsUGxh
dGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmdMb2NrKQoreworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4gb3ZlcnJpZGU7CisgICAgcmV0dXJu
IG92ZXJyaWRlOwogfQorCitWZWN0b3I8U3RyaW5nPiBpbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nKCkKK3sKKyAgICBMb2NrZXIgbG9ja2VyIHsg
aW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nTG9jayB9
OworICAgIHJldHVybiBpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZv
clRlc3RpbmcoKTsKK30KKwordm9pZCBvdmVycmlkZUluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXNGb3JUZXN0aW5nKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvdmVycmlkZSkKK3sK
KyAgICB7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRM
YW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmdMb2NrIH07CisgICAgICAgIGluaXRpYWxQbGF0Zm9y
bVByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlRm9yVGVzdGluZygpID0gb3ZlcnJpZGU7CisgICAg
fQorICAgIGxhbmd1YWdlRGlkQ2hhbmdlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaCBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1
YWdlLmgKaW5kZXggZjA3NGQ3NTY4ZDAwMmU5MzJhNTMyNmJkYjUyZDdmYjhjMDY1ODE4My4uMmEx
OGMyMTRhYTk4MjFhZWNjODU4ZGZkZGRkZmQ1MzcwNzNiNDg1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvTGFuZ3VhZ2UuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oCkBAIC0z
NSwxMyArMzUsMTMgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLVdURl9FWFBPUlRfUFJJVkFURSBT
dHJpbmcgZGVmYXVsdExhbmd1YWdlKCk7IC8vIFRocmVhZC1zYWZlLgotV1RGX0VYUE9SVF9QUklW
QVRFIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsgLy8gVGhyZWFkLXNh
ZmUsIHJldHVybnMgQkNQIDQ3IGxhbmd1YWdlIHRhZ3MuCitlbnVtIGNsYXNzIFNob3VsZE1pbmlt
aXplTGFuZ3VhZ2VzIHsgWWVzLCBObyB9OworCitXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIGRl
ZmF1bHRMYW5ndWFnZShTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9IFNob3VsZE1pbmltaXplTGFu
Z3VhZ2VzOjpZZXMpOyAvLyBUaHJlYWQtc2FmZS4KK1dURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8
U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID0g
U2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Olllcyk7IC8vIFRocmVhZC1zYWZlLCByZXR1cm5zIEJD
UCA0NyBsYW5ndWFnZSB0YWdzLgogV1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiBX
VEZfRVhQT1JUX1BSSVZBVEUgc2l6ZV90IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlz
dChjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VM
aXN0LCBib29sJiBleGFjdE1hdGNoKTsKLVdURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5n
PiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKLVdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIHBsYXRmb3JtTGFuZ3VhZ2VEaWRDaGFuZ2UoKTsKIAogLy8gQ2FsbGVkIGZyb20gcGxhdGZv
cm0gc3BlY2lmaWMgY29kZSB3aGVuIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlKHMpIGNo
YW5nZS4KIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCk7CkBAIC01
MiwyMCArNTIsMjYgQEAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYWRkTGFuZ3VhZ2VDaGFuZ2VP
YnNlcnZlcih2b2lkKiBjb250ZXh0LCBMYW5ndWFnZUNoYW5nZU8KIFdURl9FWFBPUlRfUFJJVkFU
RSB2b2lkIHJlbW92ZUxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCk7CiBXVEZf
RVhQT1JUX1BSSVZBVEUgU3RyaW5nIGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3Qg
U3RyaW5nJik7CiAKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMp
OworCiAjaWYgUExBVEZPUk0oQ09DT0EpCiBib29sIGNhbk1pbmltaXplTGFuZ3VhZ2VzKCk7CiBX
VEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBsaXN0ZW5Gb3JMYW5ndWFnZUNoYW5nZU5vdGlmaWNhdGlv
bnMoKTsKIFJldGFpblB0cjxDRkFycmF5UmVmPiBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3Vh
Z2VzKENGQXJyYXlSZWYpOwotI2VuZGlmCitSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGJhc2VMYW5n
dWFnZUZyb21MYW5ndWFnZShDRlN0cmluZ1JlZik7CiAKLX0KK1ZlY3RvcjxTdHJpbmc+IGluaXRp
YWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKTsKK1dU
Rl9FWFBPUlRfUFJJVkFURSB2b2lkIG92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJl
ZExhbmd1YWdlc0ZvclRlc3RpbmcoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKyNlbmRpZiAvLyBQ
TEFURk9STShDT0NPQSkKIAorfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6U2hvdWxk
TWluaW1pemVMYW5ndWFnZXM7CiB1c2luZyBXVEY6OmRlZmF1bHRMYW5ndWFnZTsKIHVzaW5nIFdU
Rjo6dXNlclByZWZlcnJlZExhbmd1YWdlczsKIHVzaW5nIFdURjo6dXNlclByZWZlcnJlZExhbmd1
YWdlc092ZXJyaWRlOwogdXNpbmcgV1RGOjpvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7
CiB1c2luZyBXVEY6OmluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdDsKLXVzaW5nIFdU
Rjo6cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwogdXNpbmcgV1RGOjphZGRMYW5ndWFn
ZUNoYW5nZU9ic2VydmVyOwogdXNpbmcgV1RGOjpyZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVy
OwogdXNpbmcgV1RGOjpkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5n
dWFnZUNGLmNwcAppbmRleCBlMDczMTE1NDI5MWJmZDA3YzRjYzE2ZGEwNDJhYWFkYjU5YzllM2Ix
Li45YWVlOTM2ZGM2ZThkOTA4ZDc4YjE0YmExY2ZkODcxY2RiOGI4MTg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9M
YW5ndWFnZUNGLmNwcApAQCAtMzAsMTYgKzMwLDEyIEBACiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5j
bHVkZSA8dW5pY29kZS91bG9jLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNs
dWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3NwaS9jZi9DRkJ1bmRs
ZVNQSS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV1RG
IHsKIAotc3RhdGljIENoZWNrZWRMb2NrIHByZWZlcnJlZExhbmd1YWdlc0xvY2s7Ci0KICNpZiBQ
TEFURk9STShNQUMpCiBzdGF0aWMgdm9pZCBsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdlKENG
Tm90aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkKiwgQ0ZTdHJpbmdSZWYsIGNvbnN0IHZvaWQqLCBD
RkRpY3Rpb25hcnlSZWYpCiB7CkBAIC00NywxNiArNDMsNiBAQCBzdGF0aWMgdm9pZCBsYW5ndWFn
ZVByZWZlcmVuY2VzRGlkQ2hhbmdlKENGTm90aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkKiwgQ0ZT
dHJpbgogfQogI2VuZGlmCiAKLXN0YXRpYyBWZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3Vh
Z2VzKCkgV1RGX1JFUVVJUkVTX0xPQ0socHJlZmVycmVkTGFuZ3VhZ2VzTG9jaykKLXsKLSAgICBz
dGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBsYW5ndWFnZXM7Ci0gICAg
c3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7Ci0gICAgc3RkOjpjYWxsX29uY2Uob25jZUtl
eSwgWyZdIHsKLSAgICAgICAgbGFuZ3VhZ2VzLmNvbnN0cnVjdCgpOwotICAgIH0pOwotICAgIHJl
dHVybiBsYW5ndWFnZXM7Ci19Ci0KIHN0YXRpYyBTdHJpbmcgaHR0cFN0eWxlTGFuZ3VhZ2VDb2Rl
KENGU3RyaW5nUmVmIGxhbmd1YWdlKQogewogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcHJl
ZmVycmVkTGFuZ3VhZ2VDb2RlOwpAQCAtODgsMTQgKzc0LDYgQEAgc3RhdGljIFN0cmluZyBodHRw
U3R5bGVMYW5ndWFnZUNvZGUoQ0ZTdHJpbmdSZWYgbGFuZ3VhZ2UpCiAgICAgcmV0dXJuIG11dGFi
bGVMYW5ndWFnZUNvZGUuZ2V0KCk7CiB9CiAKLXZvaWQgcGxhdGZvcm1MYW5ndWFnZURpZENoYW5n
ZSgpCi17Ci0gICAgewotICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJlZmVycmVkTGFuZ3VhZ2Vz
TG9jayB9OwotICAgICAgICBwcmVmZXJyZWRMYW5ndWFnZXMoKS5jbGVhcigpOwotICAgIH0KLX0K
LQogdm9pZCBsaXN0ZW5Gb3JMYW5ndWFnZUNoYW5nZU5vdGlmaWNhdGlvbnMoKQogewogI2lmIFBM
QVRGT1JNKE1BQykKQEAgLTEwNiwzMiArODQsMzggQEAgdm9pZCBsaXN0ZW5Gb3JMYW5ndWFnZUNo
YW5nZU5vdGlmaWNhdGlvbnMoKQogI2VuZGlmCiB9CiAKLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlcygpCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgc2hvdWxkTWluaW1pemVMYW5n
dWFnZXMpCiB7Ci0gICAgTG9ja2VyIGxvY2tlciB7IHByZWZlcnJlZExhbmd1YWdlc0xvY2sgfTsK
LSAgICBWZWN0b3I8U3RyaW5nPiYgdXNlclByZWZlcnJlZExhbmd1YWdlcyA9IHByZWZlcnJlZExh
bmd1YWdlcygpOworICAgIFJldGFpblB0cjxDRkFycmF5UmVmPiBwbGF0Zm9ybUxhbmd1YWdlczsK
KyAgICBpZiAoYXV0byBvdmVycmlkZSA9IGluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKTsgIW92ZXJyaWRlLmlzRW1wdHkoKSkgeworICAgICAg
ICBhdXRvIGFycmF5ID0gYWRvcHRDRihDRkFycmF5Q3JlYXRlTXV0YWJsZSgwLCBvdmVycmlkZS5z
aXplKCksICZrQ0ZUeXBlQXJyYXlDYWxsQmFja3MpKTsKKyAgICAgICAgZm9yIChhdXRvJiBpdGVt
IDogb3ZlcnJpZGUpCisgICAgICAgICAgICBDRkFycmF5QXBwZW5kVmFsdWUoYXJyYXkuZ2V0KCks
IGl0ZW0uaXNvbGF0ZWRDb3B5KCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CisgICAgICAgIHBs
YXRmb3JtTGFuZ3VhZ2VzID0gV1RGTW92ZShhcnJheSk7CisgICAgfSBlbHNlCisgICAgICAgIHBs
YXRmb3JtTGFuZ3VhZ2VzID0gYWRvcHRDRihDRkxvY2FsZUNvcHlQcmVmZXJyZWRMYW5ndWFnZXMo
KSk7CiAKLSAgICBpZiAodXNlclByZWZlcnJlZExhbmd1YWdlcy5pc0VtcHR5KCkpIHsKLSAgICAg
ICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IGxhbmd1YWdlcyA9IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5
UHJlZmVycmVkTGFuZ3VhZ2VzKCkpOwotICAgICAgICBsYW5ndWFnZXMgPSBtaW5pbWl6ZWRMYW5n
dWFnZXNGcm9tTGFuZ3VhZ2VzKGxhbmd1YWdlcy5nZXQoKSk7Ci0gICAgICAgIENGSW5kZXggbGFu
Z3VhZ2VDb3VudCA9IENGQXJyYXlHZXRDb3VudChsYW5ndWFnZXMuZ2V0KCkpOwotICAgICAgICBp
ZiAoIWxhbmd1YWdlQ291bnQpCi0gICAgICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmFw
cGVuZCgiZW4iKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBmb3IgKENGSW5kZXggaSA9
IDA7IGkgPCBsYW5ndWFnZUNvdW50OyBpKyspCi0gICAgICAgICAgICAgICAgdXNlclByZWZlcnJl
ZExhbmd1YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKHN0YXRpY19jYXN0PENGU3Ry
aW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGxhbmd1YWdlcy5nZXQoKSwgaSkpKSk7Cisg
ICAgaWYgKHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID09IFNob3VsZE1pbmltaXplTGFuZ3VhZ2Vz
OjpZZXMpCisgICAgICAgIHBsYXRmb3JtTGFuZ3VhZ2VzID0gbWluaW1pemVkTGFuZ3VhZ2VzRnJv
bUxhbmd1YWdlcyhwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSk7CisKKyAgICBDRkluZGV4IHBsYXRm
b3JtTGFuZ3VhZ2VzQ291bnQgPSBDRkFycmF5R2V0Q291bnQocGxhdGZvcm1MYW5ndWFnZXMuZ2V0
KCkpOworICAgIGlmICghcGxhdGZvcm1MYW5ndWFnZXNDb3VudCkKKyAgICAgICAgcmV0dXJuIHsg
ImVuIl9zIH07CisKKyAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXM7CisgICAgZm9yIChDRklu
ZGV4IGkgPSAwOyBpIDwgcGxhdGZvcm1MYW5ndWFnZXNDb3VudDsgaSsrKSB7CisgICAgICAgIGF1
dG8gcGxhdGZvcm1MYW5ndWFnZSA9IHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5R2V0
VmFsdWVBdEluZGV4KHBsYXRmb3JtTGFuZ3VhZ2VzLmdldCgpLCBpKSk7CisgICAgICAgIGxhbmd1
YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKHBsYXRmb3JtTGFuZ3VhZ2UpKTsKKwor
ICAgICAgICBpZiAoc2hvdWxkTWluaW1pemVMYW5ndWFnZXMgPT0gU2hvdWxkTWluaW1pemVMYW5n
dWFnZXM6Ok5vKSB7CisgICAgICAgICAgICAvLyBDb252ZXJ0IGxhbmd1YWdlcyB3aXRoIGNvdW50
cnkgY29kZXMgdG8gZXF1aXZhbGVudCBsYW5ndWFnZXMgd2l0aG91dCBjb3VudHJ5IGNvZGVzIChp
ZiBwb3NzaWJsZSkuCisgICAgICAgICAgICAvLyBlLmcuICJlbi1VUyIgYmVjb21lcyAiZW4iLCB3
aGljaCBpcyB1c2VmdWwgd2hlbiB0cnlpbmcgdG8gbWF0Y2ggSFRNTCBgbGFuZz0iZW4iYC4KKyAg
ICAgICAgICAgIGF1dG8gYmFzZUxhbmd1YWdlID0gYmFzZUxhbmd1YWdlRnJvbUxhbmd1YWdlKHBs
YXRmb3JtTGFuZ3VhZ2UpOworICAgICAgICAgICAgaWYgKENGU3RyaW5nQ29tcGFyZShiYXNlTGFu
Z3VhZ2UuZ2V0KCksIHBsYXRmb3JtTGFuZ3VhZ2UsIDApICE9IGtDRkNvbXBhcmVFcXVhbFRvKQor
ICAgICAgICAgICAgICAgIGxhbmd1YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKGJh
c2VMYW5ndWFnZS5nZXQoKSkpOwogICAgICAgICB9CiAgICAgfQotCi0gICAgVmVjdG9yPFN0cmlu
Zz4gdXNlclByZWZlcnJlZExhbmd1YWdlc0NvcHk7Ci0gICAgdXNlclByZWZlcnJlZExhbmd1YWdl
c0NvcHkucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLnNpemUo
KSk7Ci0KLSAgICBmb3IgKGF1dG8mIGxhbmd1YWdlIDogdXNlclByZWZlcnJlZExhbmd1YWdlcykK
LSAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlc0NvcHkudW5jaGVja2VkQXBwZW5kKGxhbmd1
YWdlLmlzb2xhdGVkQ29weSgpKTsKLQotICAgIHJldHVybiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
Q29weTsKLQotICAgIHJldHVybiBWZWN0b3I8U3RyaW5nPigpOworICAgIHJldHVybiBsYW5ndWFn
ZXM7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
Y29jb2EvTGFuZ3VhZ2VDb2NvYS5tbSBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29j
b2EubW0KaW5kZXggNWJhYjdjN2IyNjdjMGFkZDI1NWIyZmU2NzYyZWU2NDBlMDU4ODk5My4uODQ2
YmU0NDI5Y2U0MmUzMmE4MzhjNjk0NDcyNWZhN2FhYTJhNzM5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jb2Nv
YS9MYW5ndWFnZUNvY29hLm1tCkBAIC01OCw0ICs1OCw5IEBAIEFMTE9XX05FV19BUElfV0lUSE9V
VF9HVUFSRFNfQkVHSU4KIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiB9CiAKK1Jl
dGFpblB0cjxDRlN0cmluZ1JlZj4gYmFzZUxhbmd1YWdlRnJvbUxhbmd1YWdlKENGU3RyaW5nUmVm
IGxhbmd1YWdlKQoreworICAgIHJldHVybiAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpW05TTG9jYWxl
IGJhc2VMYW5ndWFnZUZyb21MYW5ndWFnZTooX19icmlkZ2UgTlNTdHJpbmcgKilsYW5ndWFnZV07
CiB9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvcGxh
eXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9wbGF5c3Rh
dGlvbi9MYW5ndWFnZVBsYXlTdGF0aW9uLmNwcAppbmRleCBkNDUzN2E2OTQwYjVlMDIyYmY1ZTVj
ZGY3MWE4NjNkMzMwOWRmNjFjLi5jYWYxNTQ5ZjgwMDJjMTM3ZTJmMWEwNjIyODE4MTU0ZjU2MjU0
ZTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9wbGF5c3RhdGlvbi9MYW5ndWFnZVBsYXlT
dGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9wbGF5c3RhdGlvbi9MYW5ndWFnZVBsYXlT
dGF0aW9uLmNwcApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotVmVjdG9y
PFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKK1ZlY3RvcjxTdHJpbmc+
IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcykK
IHsKICAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3NwaS9jb2NvYS9OU0xvY2FsZVNQSS5oIGIvU291cmNlL1dURi93dGYvc3BpL2NvY29h
L05TTG9jYWxlU1BJLmgKaW5kZXggNWNlZjE2NDAzMTZiNDczYTcxYmU3YmJhNjFhODgyNzRmMjgx
MDYyMS4uY2E5ODIwMWM2MTYzYTM3OWVlMWQ4ZjJjYTRmNTVkMzZmZmFiZjBiMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvc3BpL2NvY29hL05TTG9jYWxlU1BJLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvc3BpL2NvY29hL05TTG9jYWxlU1BJLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNlbmRpZgog
CiBAaW50ZXJmYWNlIE5TTG9jYWxlICgpCisrIChub25udWxsIE5TU3RyaW5nICopYmFzZUxhbmd1
YWdlRnJvbUxhbmd1YWdlOihub25udWxsIE5TU3RyaW5nICopbGFuZ3VhZ2VJRDsKICsgKG5vbm51
bGwgTlNBcnJheTxOU1N0cmluZyAqPiAqKW1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFnZXM6
KG5vbm51bGwgTlNBcnJheTxOU1N0cmluZyAqPiAqKWxhbmd1YWdlczsKIEBlbmQKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwIGIvU291cmNlL1dURi93
dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCmluZGV4IDMxYzc1NzQ3MmVlYWI2NDA3MjZlOTRjNWM1
NzUwNzE4ZmEzOTM4ZDEuLmFmOTRiYjA2Y2MzOGRkMmE4NTk1YmZiYjc3MTY5MGY5MmRiNDhhZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgc3Rh
dGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKICAgICByZXR1cm4gbm9ybWFsaXplZERlZmF1
bHQ7CiB9CiAKLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygp
CitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWlu
aW1pemVMYW5ndWFnZXMpCiB7CiAgICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgpIH07CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwIGIvU291cmNl
L1dURi93dGYvd2luL0xhbmd1YWdlV2luLmNwcAppbmRleCA5ZTdiZmYxMDk3OThjNjY3YWU3NTJh
ZjJhZmQ4ZjRmYTNkOWRjMjYzLi5hM2ZjNzlmNWVmMjI0ZGMyOTJhMmVlMWQxMTgxN2VjNDY0MWU1
OGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgc3Rh
dGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1YWdlKCkKICAgICByZXR1cm4gY29tcHV0ZWREZWZhdWx0
TGFuZ3VhZ2U7CiB9CiAKLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlcygpCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hv
dWxkTWluaW1pemVMYW5ndWFnZXMpCiB7CiAgICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgp
IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNw
cAppbmRleCBhYjAzYmRiNDNjNmYzYTNmMTViYTk1ZThkMmJiMzFlN2JjYTFlNTM5Li44MTE0MTkw
YjQzZWM1OTYyZDFiZmU3MmNiOGI5MTEyMGZjZDcyNWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgY29uc3Qg
R2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1l
dGhvZFRhYmxlID0gewogICAgICZyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAog
ICAgICZjdXJyZW50U2NyaXB0RXhlY3V0aW9uT3duZXIsCiAgICAgJnNjcmlwdEV4ZWN1dGlvblN0
YXR1cywKLSAgICAmZGVmYXVsdExhbmd1YWdlLAorICAgIFtdIHsgcmV0dXJuIGRlZmF1bHRMYW5n
dWFnZSgpOyB9LAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAmY29tcGlsZVN0cmVhbWlu
ZywKICAgICAmaW5zdGFudGlhdGVTdHJlYW1pbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNDgzOTk3MDhl
ZTAzNGJjNThhYzM4MmYzY2FjOTdmOTE2Nzc4MmZiOC4uOTIxMjVlNTZkNjk5NWQ0NjAwZGNkOGZj
YjdiNDIzYmE1OGJiNDgzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtNjEsNyArNjEsNyBAQCBjb25zdCBH
bG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxP
YmplY3RNZXRob2RUYWJsZQogICAgICZyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29w
LAogICAgICZjdXJyZW50U2NyaXB0RXhlY3V0aW9uT3duZXIsCiAgICAgJnNjcmlwdEV4ZWN1dGlv
blN0YXR1cywKLSAgICAmZGVmYXVsdExhbmd1YWdlLAorICAgIFtdIHsgcmV0dXJuIGRlZmF1bHRM
YW5ndWFnZSgpOyB9LAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAmY29tcGlsZVN0cmVh
bWluZywKICAgICAmaW5zdGFudGlhdGVTdHJlYW1pbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAppbmRleCA0MjFl
NzQ0ZjMzMDdhYmQ5OWIxZTVjMmQ1ZDdmMTNlMzNiMzhlOTAxLi40MjAyNzJhMWQwYjc1Y2E2OTVh
NjZmMTI0NmU0NzQ1OTZkNWE0ZTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAg
Y29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlOjpz
X2dsb2JhbE9iamVjdE1ldGhvZFRhYmwKICAgICAmcmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2
ZW50TG9vcCwKICAgICAmY3VycmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLAogICAgICZzY3JpcHRF
eGVjdXRpb25TdGF0dXMsCi0gICAgJmRlZmF1bHRMYW5ndWFnZSwKKyAgICBbXSB7IHJldHVybiBk
ZWZhdWx0TGFuZ3VhZ2UoKTsgfSwKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgJmNvbXBp
bGVTdHJlYW1pbmcsCiAgICAgJmluc3RhbnRpYXRlU3RyZWFtaW5nLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKaW5kZXggZDNlNDVlOGJiNGM3ZDIw
MGNkM2E0YTIxMjgyMGRlNGVkZmNkMWJmOC4uNTVmYTA5NjRjN2ZkOTg4NjM1ZWYzMzI1Y2JkYWJm
MGUyMTM0NDg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclBy
ZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVy
ZW5jZXMuY3BwCkBAIC0xNzAsNyArMTcwLDcgQEAgdm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2Vz
OjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCkKIAogVmVjdG9yPFN0cmluZz4gQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzKCkgY29uc3QKIHsKLSAgICBWZWN0b3I8
U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgVmVjdG9y
PFN0cmluZz4gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6
ZUxhbmd1YWdlczo6Tm8pOwogICAgIGlmIChtX3Rlc3RpbmdNb2RlICYmICFtX3VzZXJQcmVmZXJy
ZWRMYW5ndWFnZS5pc0VtcHR5KCkpCiAgICAgICAgIGxhbmd1YWdlcy5pbnNlcnQoMCwgbV91c2Vy
UHJlZmVycmVkTGFuZ3VhZ2UpOwogCkBAIC0zNDEsNyArMzQxLDcgQEAgaW50IENhcHRpb25Vc2Vy
UHJlZmVyZW5jZXM6OnRleHRUcmFja1NlbGVjdGlvblNjb3JlKFRleHRUcmFjayogdHJhY2ssIEhU
TUxNZWRpYUUKICAgICAgICAgICAgIGlmIChvZmZzZXQpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IDA7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBsYW5ndWFnZUxpc3QuYXBwZW5kKGRl
ZmF1bHRMYW5ndWFnZSgpKTsKKyAgICAgICAgICAgIGxhbmd1YWdlTGlzdC5hcHBlbmQoZGVmYXVs
dExhbmd1YWdlKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObykpOwogCiAgICAgICAgICAgICAv
LyBPbmx5IGVuYWJsZSBhIHRleHQgdHJhY2sgaWYgdGhlIGN1cnJlbnQgYXVkaW8gdHJhY2sgaXMg
Tk9UIGluIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlIC4uLgogICAgICAgICAgICAgc2l6
ZV90IG9mZnNldCA9IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChhdWRpb1RyYWNr
TGFuZ3VhZ2UsIGxhbmd1YWdlTGlzdCwgZXhhY3RNYXRjaCk7CkBAIC00MTgsNyArNDE4LDcgQEAg
U3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VP
dmVycmlkZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3ByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VP
dmVycmlkZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBtX3ByaW1hcnlBdWRpb1RyYWNrTGFu
Z3VhZ2VPdmVycmlkZTsKLSAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlKCk7CisgICAgcmV0dXJu
IGRlZmF1bHRMYW5ndWFnZShTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6Tm8pOwogfQogICAgIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2Vz
TWVkaWFBRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
ZWRpYUFGLmNwcAppbmRleCBjZjJlMWJlYTI1YjBmMDc5OTg2MzkyMDU5NDVkZjBlZWY5MmQzYzQy
Li4zMzU3Zjc3NDI2MGM0ZWQwZDg4NGEwYjg1N2RjYjhmNmNjZWM3NTE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcApA
QCAtNDcxLDM2ICs0NzEsMjAgQEAgdm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6
c2V0UHJlZmVycmVkTGFuZ3VhZ2UoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkKIAogVmVjdG9yPFN0
cmluZz4gQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OnByZWZlcnJlZExhbmd1YWdlcygp
IGNvbnN0CiB7Ci0gICAgaWYgKHRlc3RpbmdNb2RlKCkgfHwgIU1lZGlhQWNjZXNzaWJpbGl0eUxp
YnJhcnkoKSkKLSAgICAgICAgcmV0dXJuIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByZWZlcnJl
ZExhbmd1YWdlcygpOwotCi0gICAgVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1MYW5ndWFnZXMgPSBw
bGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKLSAgICBWZWN0b3I8U3RyaW5nPiBvdmVy
cmlkZSA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwotICAgIGlmICghb3ZlcnJp
ZGUuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGlmIChwbGF0Zm9ybUxhbmd1YWdlcy5zaXplKCkgIT0g
b3ZlcnJpZGUuc2l6ZSgpKQotICAgICAgICAgICAgcmV0dXJuIG92ZXJyaWRlOwotICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG92ZXJyaWRlLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgICAg
ICBpZiAob3ZlcnJpZGVbaV0gIT0gcGxhdGZvcm1MYW5ndWFnZXNbaV0pCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIG92ZXJyaWRlOworICAgIGF1dG8gcHJlZmVycmVkTGFuZ3VhZ2VzID0gQ2FwdGlv
blVzZXJQcmVmZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgaWYgKCF0ZXN0aW5n
TW9kZSgpICYmIE1lZGlhQWNjZXNzaWJpbGl0eUxpYnJhcnkoKSkgeworICAgICAgICBhdXRvIGNh
cHRpb25MYW5ndWFnZXMgPSBhZG9wdENGKE1BQ2FwdGlvbkFwcGVhcmFuY2VDb3B5U2VsZWN0ZWRM
YW5ndWFnZXMoa01BQ2FwdGlvbkFwcGVhcmFuY2VEb21haW5Vc2VyKSk7CisgICAgICAgIENGSW5k
ZXggY2FwdGlvbkxhbmd1YWdlc0NvdW50ID0gY2FwdGlvbkxhbmd1YWdlcyA/IENGQXJyYXlHZXRD
b3VudChjYXB0aW9uTGFuZ3VhZ2VzLmdldCgpKSA6IDA7CisgICAgICAgIGlmIChjYXB0aW9uTGFu
Z3VhZ2VzQ291bnQpIHsKKyAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHRlbXA7CisgICAgICAg
ICAgICB0ZW1wLnJlc2VydmVDYXBhY2l0eShjYXB0aW9uTGFuZ3VhZ2VzQ291bnQgKyBwcmVmZXJy
ZWRMYW5ndWFnZXMuc2l6ZSgpKTsKKyAgICAgICAgICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8
IGNhcHRpb25MYW5ndWFnZXNDb3VudDsgaSsrKQorICAgICAgICAgICAgICAgIHRlbXAuYXBwZW5k
KHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGNhcHRpb25M
YW5ndWFnZXMuZ2V0KCksIGkpKSk7CisgICAgICAgICAgICB0ZW1wLmFwcGVuZFZlY3RvcihXVEZN
b3ZlKHByZWZlcnJlZExhbmd1YWdlcykpOworICAgICAgICAgICAgcHJlZmVycmVkTGFuZ3VhZ2Vz
ID0gV1RGTW92ZSh0ZW1wKTsKICAgICAgICAgfQogICAgIH0KLQotICAgIENGSW5kZXggbGFuZ3Vh
Z2VDb3VudCA9IDA7Ci0gICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IGxhbmd1YWdlcyA9IGFkb3B0
Q0YoTUFDYXB0aW9uQXBwZWFyYW5jZUNvcHlTZWxlY3RlZExhbmd1YWdlcyhrTUFDYXB0aW9uQXBw
ZWFyYW5jZURvbWFpblVzZXIpKTsKLSAgICBpZiAobGFuZ3VhZ2VzKQotICAgICAgICBsYW5ndWFn
ZUNvdW50ID0gQ0ZBcnJheUdldENvdW50KGxhbmd1YWdlcy5nZXQoKSk7Ci0KLSAgICBpZiAoIWxh
bmd1YWdlQ291bnQpCi0gICAgICAgIHJldHVybiBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpwcmVm
ZXJyZWRMYW5ndWFnZXMoKTsKLQotICAgIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5n
dWFnZXM7Ci0gICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5yZXNlcnZlQ2FwYWNpdHkobGFuZ3Vh
Z2VDb3VudCArIHBsYXRmb3JtTGFuZ3VhZ2VzLnNpemUoKSk7Ci0gICAgZm9yIChDRkluZGV4IGkg
PSAwOyBpIDwgbGFuZ3VhZ2VDb3VudDsgaSsrKQotICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzLmFwcGVuZChzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRl
eChsYW5ndWFnZXMuZ2V0KCksIGkpKSk7Ci0KLSAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmFw
cGVuZFZlY3RvcihwbGF0Zm9ybUxhbmd1YWdlcyk7Ci0KLSAgICByZXR1cm4gdXNlclByZWZlcnJl
ZExhbmd1YWdlczsKKyAgICByZXR1cm4gcHJlZmVycmVkTGFuZ3VhZ2VzOwogfQogCiB2b2lkIENh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpzZXRQcmVmZXJyZWRBdWRpb0NoYXJhY3Rlcmlz
dGljKGNvbnN0IFN0cmluZyYgY2hhcmFjdGVyaXN0aWMpCkBAIC01NzksMTMgKzU2MywxNSBAQCBz
dGF0aWMgdm9pZCBidWlsZERpc3BsYXlTdHJpbmdGb3JUcmFja0Jhc2UoU3RyaW5nQnVpbGRlciYg
ZGlzcGxheU5hbWUsIGNvbnN0IFRyYQogICAgIFN0cmluZyBsYWJlbCA9IHRyYWNrLmxhYmVsKCk7
CiAgICAgU3RyaW5nIHRyYWNrTGFuZ3VhZ2VJZGVudGlmaWVyID0gdHJhY2sudmFsaWRCQ1A0N0xh
bmd1YWdlKCk7CiAKLSAgICBSZXRhaW5QdHI8Q0ZMb2NhbGVSZWY+IGN1cnJlbnRMb2NhbGUgPSBh
ZG9wdENGKENGTG9jYWxlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRlZmF1bHRMYW5ndWFn
ZSgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKKyAgICBhdXRvIHByZWZlcnJlZExhbmd1YWdl
cyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKTsK
KyAgICBhdXRvIGRlZmF1bHRMYW5ndWFnZSA9ICFwcmVmZXJyZWRMYW5ndWFnZXMuaXNFbXB0eSgp
ID8gcHJlZmVycmVkTGFuZ3VhZ2VzWzBdIDogZW1wdHlTdHJpbmcoKTsgLy8gVGhpcyBtYXRjaGVz
IGBXVEY6OmRlZmF1bHRMYW5ndWFnZWAuCisgICAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBjdXJy
ZW50TG9jYWxlID0gYWRvcHRDRihDRkxvY2FsZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBk
ZWZhdWx0TGFuZ3VhZ2UuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOwogICAgIFJldGFpblB0cjxD
RlN0cmluZ1JlZj4gbG9jYWxlSWRlbnRpZmllciA9IGFkb3B0Q0YoQ0ZMb2NhbGVDcmVhdGVDYW5v
bmljYWxMb2NhbGVJZGVudGlmaWVyRnJvbVN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCB0cmFj
a0xhbmd1YWdlSWRlbnRpZmllci5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CiAgICAgUmV0YWlu
UHRyPENGU3RyaW5nUmVmPiBsYW5ndWFnZUNGID0gYWRvcHRDRihDRkxvY2FsZUNvcHlEaXNwbGF5
TmFtZUZvclByb3BlcnR5VmFsdWUoY3VycmVudExvY2FsZS5nZXQoKSwga0NGTG9jYWxlTGFuZ3Vh
Z2VDb2RlLCBsb2NhbGVJZGVudGlmaWVyLmdldCgpKSk7CiAgICAgU3RyaW5nIGxhbmd1YWdlID0g
bGFuZ3VhZ2VDRi5nZXQoKTsKIAogICAgIGlmICghbGFiZWwuaXNFbXB0eSgpKSB7Ci0gICAgICAg
IGlmIChsYW5ndWFnZS5pc0VtcHR5KCkgfHwgbGFiZWwuY29udGFpbnMobGFuZ3VhZ2UpKQorICAg
ICAgICBpZiAobGFuZ3VhZ2UuaXNFbXB0eSgpIHx8IGxhYmVsLmNvbnRhaW5zKGxhbmd1YWdlKSB8
fCBwcmVmZXJyZWRMYW5ndWFnZXMuY29udGFpbnModHJhY2tMYW5ndWFnZUlkZW50aWZpZXIpKQog
ICAgICAgICAgICAgZGlzcGxheU5hbWUuYXBwZW5kKGxhYmVsKTsKICAgICAgICAgZWxzZSB7CiAg
ICAgICAgICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBsb2NhbGVEaWN0ID0gYWRvcHRD
RihDRkxvY2FsZUNyZWF0ZUNvbXBvbmVudHNGcm9tTG9jYWxlSWRlbnRpZmllcihrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBsb2NhbGVJZGVudGlmaWVyLmdldCgpKSk7CkBAIC03MDksMTUgKzY5NSwxNiBA
QCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmRpc3BsYXlOYW1lRm9yVHJh
Y2soVGV4dFRyYWNrKiB0cmFjaykgY29ucwogCiBzdGF0aWMgYm9vbCB0ZXh0VHJhY2tDb21wYXJl
KGNvbnN0IFJlZlB0cjxUZXh0VHJhY2s+JiBhLCBjb25zdCBSZWZQdHI8VGV4dFRyYWNrPiYgYikK
IHsKLSAgICBTdHJpbmcgcHJlZmVycmVkTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1l
Rm9yTGFuZ3VhZ2VMb2NhbGUobGFuZ3VhZ2VJZGVudGlmaWVyKGRlZmF1bHRMYW5ndWFnZSgpKSk7
CiAgICAgU3RyaW5nIGFMYW5ndWFnZURpc3BsYXlOYW1lID0gZGlzcGxheU5hbWVGb3JMYW5ndWFn
ZUxvY2FsZShsYW5ndWFnZUlkZW50aWZpZXIoYS0+dmFsaWRCQ1A0N0xhbmd1YWdlKCkpKTsKICAg
ICBTdHJpbmcgYkxhbmd1YWdlRGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9j
YWxlKGxhbmd1YWdlSWRlbnRpZmllcihiLT52YWxpZEJDUDQ3TGFuZ3VhZ2UoKSkpOwogCi0gICAg
Ly8gVHJhY2tzIGluIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlIGFyZSBhbHdheXMgYXQg
dGhlIHRvcCBvZiB0aGUgbWVudS4KLSAgICBib29sIGFJc1ByZWZlcnJlZExhbmd1YWdlID0gYUxh
bmd1YWdlRGlzcGxheU5hbWUgPT0gcHJlZmVycmVkTGFuZ3VhZ2VEaXNwbGF5TmFtZTsKLSAgICBi
b29sIGJJc1ByZWZlcnJlZExhbmd1YWdlID0gYkxhbmd1YWdlRGlzcGxheU5hbWUgPT0gcHJlZmVy
cmVkTGFuZ3VhZ2VEaXNwbGF5TmFtZTsKLSAgICBpZiAoYUlzUHJlZmVycmVkTGFuZ3VhZ2UgIT0g
YklzUHJlZmVycmVkTGFuZ3VhZ2UpCi0gICAgICAgIHJldHVybiBhSXNQcmVmZXJyZWRMYW5ndWFn
ZTsKKyAgICBmb3IgKGF1dG8mIHByZWZlcnJlZExhbmd1YWdlIDogdXNlclByZWZlcnJlZExhbmd1
YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6Tm8pKSB7CisgICAgICAgIFN0cmluZyBwcmVm
ZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lID0gZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShs
YW5ndWFnZUlkZW50aWZpZXIocHJlZmVycmVkTGFuZ3VhZ2UpKTsKKyAgICAgICAgYm9vbCBhSXNQ
cmVmZXJyZWRMYW5ndWFnZSA9IGFMYW5ndWFnZURpc3BsYXlOYW1lID09IHByZWZlcnJlZExhbmd1
YWdlRGlzcGxheU5hbWU7CisgICAgICAgIGJvb2wgYklzUHJlZmVycmVkTGFuZ3VhZ2UgPSBiTGFu
Z3VhZ2VEaXNwbGF5TmFtZSA9PSBwcmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lOworICAgICAg
ICBpZiAoYUlzUHJlZmVycmVkTGFuZ3VhZ2UgIT0gYklzUHJlZmVycmVkTGFuZ3VhZ2UpCisgICAg
ICAgICAgICByZXR1cm4gYUlzUHJlZmVycmVkTGFuZ3VhZ2U7CisgICAgfQogCiAgICAgQ29sbGF0
b3IgY29sbGF0b3I7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3Vw
QVZGT2JqQy5tbQppbmRleCA5YmQ1NjQ4NDBjMjgyYWY1N2ExMGQ0ZTRkY2JlODc1NzM0YmM4MjZh
Li5iNDE5YjYwZDk4ZTM2NmRiNDdkYzcwNTdlYmQyNTc2OGRjM2Q2OTM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rp
b25Hcm91cEFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCkBAIC0xMzQsNyArMTM0
LDcgQEAgdm9pZCBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQzo6dXBkYXRlT3B0aW9ucyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgY2hhcmFjdGVyaXMKICAgICAgICAgcmV0dXJuOwogCiAgICAgTlNB
cnJheSogZmlsdGVyZWRPcHRpb25zID0gW1BBTDo6Z2V0QVZNZWRpYVNlbGVjdGlvbkdyb3VwQ2xh
c3MoKSBtZWRpYVNlbGVjdGlvbk9wdGlvbnNGcm9tQXJyYXk6W21fbWVkaWFTZWxlY3Rpb25Hcm91
cCBvcHRpb25zXQotICAgICAgICBmaWx0ZXJlZEFuZFNvcnRlZEFjY29yZGluZ1RvUHJlZmVycmVk
TGFuZ3VhZ2VzOmNyZWF0ZU5TQXJyYXkodXNlclByZWZlcnJlZExhbmd1YWdlcygpKS5nZXQoKV07
CisgICAgICAgIGZpbHRlcmVkQW5kU29ydGVkQWNjb3JkaW5nVG9QcmVmZXJyZWRMYW5ndWFnZXM6
Y3JlYXRlTlNBcnJheSh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3Vh
Z2VzOjpObykpLmdldCgpXTsKIAogICAgIGlmICghW2ZpbHRlcmVkT3B0aW9ucyBjb3VudF0gJiYg
Y2hhcmFjdGVyaXN0aWNzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGVjMWRlZjYyN2I1ZmQyNTQz
YmViYWEyNWYxYzY1ODY0NWMyZDg0MTQuLjIyZmE0ZjZhNzJlZWEwNDU1ZGU1MzA3ZTg5YTU3NjVm
NmY4NzIxZDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wNS0yMSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihy
MjU0Mzg5KSBtZWRpYSBjb250cm9scyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHBy
ZWZlcmVuY2VzIGZvciBvcmRlcmluZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvTGFuZ3Vh
Z2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QuTGFuZ3VhZ2UuU2hv
dWxkTWluaW1pemVMYW5ndWFnZXNZZXMpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVC5M
YW5ndWFnZS5TaG91bGRNaW5pbWl6ZUxhbmd1YWdlc05vKToKKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA1
LTIxICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtD
b2NvYV0gVXBkYXRlIEF1ZGlvU2Vzc2lvbiBidWZmZXIgc2l6ZSBoYW5kbGluZwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAzYmI4ZWJiNjJiNWY2MzU5ZTVjMjg3MWI4ZjVlZDVmYTBmZDBjYzZk
Li5mMTY2MGM3ZTVjMmEzNTM4Y2UxYTA0OGMzZTIxZDkxMDhmM2IxZTBjIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtODc5LDYgKzg3OSw3IEBACiAJCTk1MDk1RjIwMjYyRkZGQTUwMDAwRDky
MCAvKiBTYW1wbGVkUGFnZVRvcENvbG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTUwOTVGMUYyNjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdl
VG9wQ29sb3IubW0gKi87IH07CiAJCTk1MEU0Q0MxMjUyRTc1MjQwMDcxNjU5RiAvKiBpT1NTdHls
dXNTdXBwb3J0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi87IH07
CiAJCTk1M0FCQjM1MjVDMEQ2ODIwMDRDOEI3MyAvKiBXS1dlYlZpZXdVbmRlclBhZ2VCYWNrZ3Jv
dW5kQ29sb3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NTNBQkIzNDI1QzBENjgxMDA0QzhCNzMgLyogV0tXZWJWaWV3VW5kZXJQYWdlQmFja2dyb3Vu
ZENvbG9yLm1tICovOyB9OworCQk5NTRFNDEzMDI2NTZFMDY4MDA0NTVENEYgLyogTGFuZ3VhZ2Uu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU0RTQx
MkUyNjU2RTA2MzAwNDU1RDRGIC8qIExhbmd1YWdlLmNwcCAqLzsgfTsKIAkJOTVBNTI0OTUyNTgx
QTEwRDAwNDYxRkU5IC8qIFdLV2ViVmlld1RoZW1lQ29sb3IubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUE1MjQ5NDI1ODFBMTBEMDA0NjFGRTkgLyog
V0tXZWJWaWV3VGhlbWVDb2xvci5tbSAqLzsgfTsKIAkJOTVCNkIzQjcyNTFFQkYyRjAwRkM0Mzgy
IC8qIE1lZGlhRG9jdW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NUI2QjNCNjI1MUVCRjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5tbSAq
LzsgfTsKIAkJOTk4NEZBQ0MxQ0ZGQUY2MDAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5ODRGQUNB
MUNGRkFFRUUwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi87IH07CkBAIC0yNTg3
LDYgKzI1ODgsNyBAQAogCQk5NTA5NUYxRjI2MkZGRkE1MDAwMEQ5MjAgLyogU2FtcGxlZFBhZ2VU
b3BDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNhbXBs
ZWRQYWdlVG9wQ29sb3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEU0Q0Mw
MjUyRTc1MjMwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gaU9TU3R5bHVzU3VwcG9ydC5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTUzQUJCMzQyNUMwRDY4MTAwNEM4QjczIC8qIFdLV2ViVmlld1Vu
ZGVyUGFnZUJhY2tncm91bmRDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdLV2ViVmlld1VuZGVyUGFnZUJhY2tncm91bmRDb2xvci5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTU0RTQxMkUyNjU2RTA2MzAwNDU1RDRGIC8qIExhbmd1YWdl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExhbmd1YWdlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVBNTI0OTQyNTgxQTEwRDAwNDYxRkU5IC8q
IFdLV2ViVmlld1RoZW1lQ29sb3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5NUI2QjNCNjI1MUVCRjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhRG9jdW1lbnQubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5ODRGQUNBMUNGRkFFRUUwMDhEMTk4QyAvKiBXS1dl
YlZpZXdUZXh0SW5wdXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXS1dlYlZpZXdUZXh0SW5wdXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00
ODE5LDYgKzQ4MjEsNyBAQAogCQlDMDk5MUM0RjE0M0M3RDY4MDA3OTk4RjIgLyogY2YgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTk1NEU0MTJFMjY1NkUw
NjMwMDQ1NUQ0RiAvKiBMYW5ndWFnZS5jcHAgKi8sCiAJCQkJQkMwMjlCMTYxNDg2QUQ2NDAwODE3
REE5IC8qIFJldGFpblB0ci5jcHAgKi8sCiAJCQkJQzA5OTFDNTAxNDNDN0Q2ODAwNzk5OEYyIC8q
IFJldGFpblB0ckhhc2hpbmcuY3BwICovLAogCQkJKTsKQEAgLTUyMDAsNiArNTIwMyw3IEBACiAJ
CQkJNTNGQ0RFNkIyMjlFRkZCOTAwNTk4RUNGIC8qIElzb0hlYXAuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NFQjYyQUIyMjM2MDlERTAwNjlDQkIwIC8qIEl0ZXJhdG9yUmFuZ2UuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0EwNTA5NDExRkI5RjA2NDAwQjMzRkI4IC8qIEpTT05WYWx1ZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk5NTRFNDEzMDI2NTZFMDY4MDA0NTVENEYgLyogTGFuZ3VhZ2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTMxQzFEOEUxREY4RUY3MjAwNkU5NzlGIC8qIExFQkRl
Y29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU3RDU0RjkxRjMzOTdCNDAwQTk3QUE3IC8q
IExpZmVjeWNsZUxvZ2dlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0UyQzU1NTFGRDMyMDQx
MDBFMURGNkEgLyogTGluZUVuZGluZy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NmL0xhbmd1YWdlLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL2NmL0xhbmd1YWdlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNWUzODg2YmM1
MjNiMjA5Y2RlOWIyZjA4ZGIwYTM3ZTFjNDMzYWM1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvTGFuZ3VhZ2UuY3BwCkBAIC0wLDAgKzEsNzkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDx3dGYvTGFuZ3Vh
Z2UuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0
cmVhbS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CisKK1RFU1QoTGFuZ3VhZ2UsIFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzWWVz
KQoreworICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyh7IH0pOworICAgIFdURjo6
b3ZlcnJpZGVJbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRm9yVGVzdGluZyh7
ICJlbi1VUyJfcywgImVzLVVTIl9zLCAiZnItVVMiX3MgfSk7CisKKyAgICBhdXRvIGxhbmd1YWdl
cyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Olllcyk7
CisgICAgQUxXQVlTX0xPR19XSVRIX1NUUkVBTShzdHJlYW0gPDwgIkxhbmd1YWdlLlNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzWWVzIC0gbGFuZ3VhZ2VzID0gIiA8PCBsYW5ndWFnZXMpOworCisgICAg
YXV0byBlbmdsaXNoSW5kZXggPSBsYW5ndWFnZXMuZmluZCgiZW4iX3MpOworICAgIEVYUEVDVF9U
UlVFKGVuZ2xpc2hJbmRleCAhPSBub3RGb3VuZCk7CisKKyAgICAvLyBUaGUgaW5jbHVzaW9uIG9m
ICJlbi1VUyIgd2lsbCBvbmx5IGhhcHBlbiBpZiB0aGUgc3lzdGVtIGlzIGFscmVhZHkgaW4gImVu
LVVTIi4KKyAgICBhdXRvIGVuZ2xpc2hVU0luZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImVuLVVTIl9z
KTsKKyAgICBFWFBFQ1RfVFJVRShlbmdsaXNoVVNJbmRleCA9PSBub3RGb3VuZCB8fCBlbmdsaXNo
VVNJbmRleCA8IGVuZ2xpc2hJbmRleCk7CisKKyAgICBFWFBFQ1RfRkFMU0UobGFuZ3VhZ2VzLmNv
bnRhaW5zKCJlcy1VUyJfcykpOworICAgIEVYUEVDVF9GQUxTRShsYW5ndWFnZXMuY29udGFpbnMo
ImVzIl9zKSk7CisKKyAgICBFWFBFQ1RfRkFMU0UobGFuZ3VhZ2VzLmNvbnRhaW5zKCJmci1VUyJf
cykpOworICAgIEVYUEVDVF9GQUxTRShsYW5ndWFnZXMuY29udGFpbnMoImZyIl9zKSk7CisKKyAg
ICBXVEY6Om92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0ZvclRl
c3RpbmcoeyB9KTsgLy8gY2xlYW51cAorfQorCitURVNUKExhbmd1YWdlLCBTaG91bGRNaW5pbWl6
ZUxhbmd1YWdlc05vKQoreworICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyh7IH0p
OworICAgIFdURjo6b3ZlcnJpZGVJbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
Rm9yVGVzdGluZyh7ICJlbi1VUyJfcywgImVzLVVTIl9zLCAiZnItVVMiX3MgfSk7CisKKyAgICBh
dXRvIGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5n
dWFnZXM6Ok5vKTsKKyAgICBBTFdBWVNfTE9HX1dJVEhfU1RSRUFNKHN0cmVhbSA8PCAiTGFuZ3Vh
Z2UuU2hvdWxkTWluaW1pemVMYW5ndWFnZXNObyAtIGxhbmd1YWdlcyA9ICIgPDwgbGFuZ3VhZ2Vz
KTsKKworICAgIEVYUEVDVF9HRShsYW5ndWFnZXMuZmluZCgiZW4tVVMiX3MpLCAwVSk7CisgICAg
RVhQRUNUX0dUKGxhbmd1YWdlcy5maW5kKCJlbiJfcyksIGxhbmd1YWdlcy5maW5kKCJlbi1VUyJf
cykpOworCisgICAgRVhQRUNUX0dUKGxhbmd1YWdlcy5maW5kKCJlcy1VUyJfcyksIGxhbmd1YWdl
cy5maW5kKCJlbi1VUyJfcykpOworICAgIEVYUEVDVF9HVChsYW5ndWFnZXMuZmluZCgiZXMiX3Mp
LCBsYW5ndWFnZXMuZmluZCgiZXMtVVMiX3MpKTsKKworICAgIEVYUEVDVF9HVChsYW5ndWFnZXMu
ZmluZCgiZnItVVMiX3MpLCBsYW5ndWFnZXMuZmluZCgiZXMtVVMiX3MpKTsKKyAgICBFWFBFQ1Rf
R1QobGFuZ3VhZ2VzLmZpbmQoImZyIl9zKSwgbGFuZ3VhZ2VzLmZpbmQoImZyLVVTIl9zKSk7CisK
KyAgICBXVEY6Om92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0Zv
clRlc3RpbmcoeyB9KTsgLy8gY2xlYW51cAorfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429405</attachid>
            <date>2021-05-21 23:59:10 -0700</date>
            <delta_ts>2021-05-22 16:48:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226038-20210522005909.patch</filename>
            <type>text/plain</type>
            <size>45528</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDZjYTg2Njk0N2ZjZDg4YTAyZjQxY2JmMDQ5M2Uy
MTUzMzAzYTA3M2UuLmRhN2Q2ZTY0Y2M5M2IwYjQxYzM5ZWQ2NTAzNzQ5MmNlMTIzNTY1NWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA1LTIyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENv
bnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxs
IGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWEgY29udHJvbHMg
bmVlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBpbiBv
cmRlciB0byBwcm9wZXJseQorICAgICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNrcyBp
biB0aGUgY29udHJvbHMgVUkuIEZvciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3VidGl0
bGVzCisgICAgICAgIGZvciBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhlIHVz
ZXIgaGFzIEVuZ2xpc2ggKGRlZmF1bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAgICAg
Y29uZmlndXJlZCBpbiB0aGUgTGFuZ3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJlZmVy
ZW5jZXMgb24gbWFjT1MsIFdlYktpdCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRpdGxl
cyBsaXN0IEVuZ2xpc2gsIEZyZW5jaCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3Bw
OgorICAgICAgICAoSlNDOjpkZWZhdWx0TG9jYWxlKToKKyAgICAgICAgVXBkYXRlIHVzYWdlIG9m
IGBXVEY6OmRlZmF1bHRMYW5ndWFnZWAgdG8gYWxzbyBoYXZlIGBXVEY6OlNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzYC4KKworICAgICAgICAqIHNoZWxsL3BsYXlzdGF0aW9uL1Rlc3RTaGVsbC5jcHA6
CisgICAgICAgIChwcmVUZXN0KToKKyAgICAgICAgSW5zdGVhZCBvZiBwcm9wYWdhdGluZyB0aGUg
b3ZlcnJpZGUsIGp1c3QgY2xlYXIgaXQgb3V0LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
SmF2YVNjcmlwdENvcmUueGNjb25maWc6CisgICAgICAgIExpbmsgYEludGVybmF0aW9uYWxTdXBw
b3J0YCBhcyB0aGF0J3Mgd2hlcmUgdGhlIGBOU0xvY2FsZWAgZXh0ZW5zaW9ucyBhcmUgaW1wbGVt
ZW50ZWQuCisKIDIwMjEtMDUtMjEgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSB0aGUgdW5uZWNlc3NhcnkgdXNlIG9mIENvbXBpbGVPcFN0cmljdEVxVHlw
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggZDA1M2IzODRhMGNkZmMzY2E2YzAwMzYwNTgzZTczYWI5ZTRlYTc3Zi4uM2MxNTQ4
ZTRkMTAzNjhhYjQwNWYzNjRhMGVkN2I2YWZmOGI0MzdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAor
MjAyMS0wNS0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
W01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRpYSBjb250cm9s
cyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZvciBvcmRlcmlu
ZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qgb2YgbGFuZ3VhZ2Ug
cHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29ydC9vcmRlciB0aGUg
bGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBsZSwgaWYgYSBgPHZp
ZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3BhbmlzaCwgYW5kIEZy
ZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQgRnJlbmNoIChhbHRl
cm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYgUmVnaW9uIHZpZXcg
b2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxkIG9yZGVyCisgICAg
ICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0aGVuIFNwYW5pc2gu
CisKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuaDoKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuY3Bw
OgorICAgICAgICAoV1RGOjpjYWNoZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMpOiBB
ZGRlZC4KKyAgICAgICAgKFdURjo6Y2FjaGVkTWluaW1pemVkUGxhdGZvcm1QcmVmZXJyZWRMYW5n
dWFnZXMpOiBBZGRlZC4KKyAgICAgICAgKFdURjo6bGFuZ3VhZ2VEaWRDaGFuZ2UpOgorICAgICAg
ICAoV1RGOjpkZWZhdWx0TGFuZ3VhZ2UpOgorICAgICAgICAoV1RGOjp1c2VyUHJlZmVycmVkTGFu
Z3VhZ2VzKToKKyAgICAgICAgKFdURjo6aW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2Vz
T3ZlcnJpZGVGb3JUZXN0aW5nKTogQWRkZWQuCisgICAgICAgIChXVEY6OmluaXRpYWxQbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcpOiBBZGRlZC4KKyAgICAg
ICAgKFdURjo6b3ZlcnJpZGVJbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRm9y
VGVzdGluZyk6IEFkZGVkLgorICAgICAgICAoV1RGOjpwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdl
KTogRGVsZXRlZC4KKyAgICAgICAgTW92ZSB0aGUgY2FjaGluZyBpbiBgd3RmL2NmL0xhbmd1YWdl
Q0YuY3BwYCB0byBgd3RmL0xhbmd1YWdlLmNwcGAgc28gdGhhdCBhbGwgcGxhdGZvcm1zIGNhbgor
ICAgICAgICBiZW5lZml0IGZyb20gY2FjaGluZyB0aGUgcmVzdWx0IG9mIGBwbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNgLgorCisgICAgICAgICogd3RmL2NmL0xhbmd1YWdlQ0YuY3BwOgor
ICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICAo
V1RGOjpwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYv
Y29jb2EvTGFuZ3VhZ2VDb2NvYS5tbToKKyAgICAgICAgKFdURjo6YmFzZUxhbmd1YWdlRnJvbUxh
bmd1YWdlKTogQWRkZWQuCisgICAgICAgICogd3RmL3BsYXlzdGF0aW9uL0xhbmd1YWdlUGxheVN0
YXRpb24uY3BwOgorICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMp
OgorICAgICAgICAqIHd0Zi9zcGkvY29jb2EvTlNMb2NhbGVTUEkuaDoKKyAgICAgICAgKiB3dGYv
dW5peC9MYW5ndWFnZVVuaXguY3BwOgorICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMpOgorICAgICAgICAqIHd0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwOgorICAgICAg
ICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICBBZGQgYFdU
Rjo6U2hvdWxkTWluaW1pemVMYW5ndWFnZXNgIHRoYXQgY29udHJvbHMgd2hldGhlciBgV1RGOjpt
aW5pbWl6ZWRQcmVmZXJyZWRMYW5ndWFnZXNgCisgICAgICAgIGlzIGNhbGxlZC4gU2luY2UgdGhl
IHJlc3VsdCBpcyBjYWNoZWQsIGNyZWF0ZSBzZXBhcmF0ZSBgVmVjdG9yPFN0cmluZz5gIGZvciBl
YWNoIGVudW0gdmFsdWUuCisKIDIwMjEtMDUtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBVc2UgQ2hlY2tlZENvbmRpdGlvbiBpbiBtb3JlIHBsYWNlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGFkM2ExNGUxZThhM2JhMmU1NDI3OWEwM2NhMDI1MDM2MmExMzkyMmEuLjU0MzRi
M2JhNDUzZjM5NTMxZTQ4NWNiYmIzYTI4YTE4OGUxN2ZiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNSBAQAorMjAyMS0wNS0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRp
YSBjb250cm9scyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZv
ciBvcmRlcmluZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qgb2Yg
bGFuZ3VhZ2UgcHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29ydC9v
cmRlciB0aGUgbGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBsZSwg
aWYgYSBgPHZpZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3Bhbmlz
aCwgYW5kIEZyZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQgRnJl
bmNoIChhbHRlcm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYgUmVn
aW9uIHZpZXcgb2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxkIG9y
ZGVyCisgICAgICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0aGVu
IFNwYW5pc2guCisKKyAgICAgICAgVGVzdHM6IExhbmd1YWdlLlNob3VsZE1pbmltaXplTGFuZ3Vh
Z2VzWWVzCisgICAgICAgICAgICAgICBMYW5ndWFnZS5TaG91bGRNaW5pbWl6ZUxhbmd1YWdlc05v
CisKKyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnRleHRUcmFja1Nl
bGVjdGlvblNjb3JlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVy
ZW5jZXM6OnByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZSBjb25zdCk6CisgICAgICAg
ICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6cHJlZmVycmVkTGFuZ3VhZ2VzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkRGlzcGxheVN0cmluZ0ZvclRyYWNrQmFzZSk6
CisgICAgICAgIChXZWJDb3JlOjp0ZXh0VHJhY2tDb21wYXJlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQzo6dXBkYXRlT3B0aW9u
cyk6CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICBXcmFwIGBk
ZWZhdWx0TGFuZ3VhZ2VgIGluIGEgbGFtYmRhIHNpbmNlIGl0IG5vdyBoYXMgYSBwYXJhbWV0ZXIu
CisKIDIwMjEtMDUtMjEgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAg
IEFsbCBOZXRmbGl4IHBsYXliYWNrIGZhaWxzIGFmdGVyIHIyNzc3NDAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54Y2NvbmZp
ZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54
Y2NvbmZpZwppbmRleCA2ZGY4ZjAwYjQyYzMwM2Q0ZjI2ODBmYzY5ZDAyMTM1MTI2YWY0YzA0Li45
OGFjZmJiMTQyY2ZlODAzNjlhMDhlNWQ3ZGVlNzFmMzViMzYyOGE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvSmF2YVNjcmlwdENvcmUueGNjb25maWcK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0phdmFTY3JpcHRDb3Jl
LnhjY29uZmlnCkBAIC0yOSw3ICsyOSwxMCBAQCBNT0RVTEVNQVBfRklMRSA9ICQoU1JDUk9PVCkv
SmF2YVNjcmlwdENvcmUubW9kdWxlbWFwOwogLy8gUHJldmVudCBDKysgc3RhbmRhcmQgbGlicmFy
eSBvcGVyYXRvciBuZXcsIGRlbGV0ZSBhbmQgdGhlaXIgcmVsYXRlZCBleGNlcHRpb24gdHlwZXMg
ZnJvbSBiZWluZyBleHBvcnRlZCBhcyB3ZWFrIHN5bWJvbHMuCiBPVEhFUl9MREZMQUdTX0hJREVf
U1lNQk9MUyA9IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pUSVN0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
LF9fWlRTU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVFNTdDlleGNlcHRp
b24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pkbFB2U18gLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCxfX1pud21QdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5LU3QzX18xOGZ1bmN0aW9uSUZ2
dkVFY2xFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVD
MUVPUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMThmdW5jdGlvbklGdnZFRUMy
RU9TMl8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOS1N0M19fMThmdW5jdGlvbklGdlJOM0pT
QzE3Qnl0ZWNvZGVHZW5lcmF0b3JFUE5TMV8xMFJlZ2lzdGVySURFRUVjbEVTM19TNV8gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdl
bmVyYXRvckVQTlMxXzEwUmVnaXN0ZXJJREVFRUQxRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxf
X1pOU3QzX18xOGZ1bmN0aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvckVQTlMxXzEwUmVn
aXN0ZXJJREVFRUQyRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xOGZ1bmN0aW9u
SUZ2dkVFRDFFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2
RUVEMkV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVFZOU3QzX18xMTdiYWRfZnVuY3Rpb25f
Y2FsbEUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0y
NF9faXNfcGF0aGFibGVfY2hhcl9hcnJheUlQS2NTNF9jTGIxRUUxMV9fcmFuZ2VfZW5kRVM0XyAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTI0X19pc19w
YXRoYWJsZV9jaGFyX2FycmF5SVBLY1M0X2NMYjFFRTEzX19yYW5nZV9iZWdpbkVTNF8gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW04X1BhdGhDVlRJY0Ux
NF9fYXBwZW5kX3JhbmdlSVBLY0VFTlNfOWVuYWJsZV9pZklYc3IyN19faXNfY3BwMTdfZm9yd2Fy
ZF9pdGVyYXRvcklUX0VFNXZhbHVlRXZFNHR5cGVFUk5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNo
YXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTOF9TOF8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW04X1BhdGhDVlRJY0UxNV9fYXBwZW5kX3Nv
dXJjZUlQS2NFRXZSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFs
bG9jYXRvckljRUVFRVJLVF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMx
MGZpbGVzeXN0ZW04X1BhdGhDVlRJY0UxNF9fYXBwZW5kX3JhbmdlSVBLY0VFTlNfOWVuYWJsZV9p
ZklYc3IyMV9faXNfZm9yd2FyZF9pdGVyYXRvcklUX0VFNXZhbHVlRXZFNHR5cGVFUk5TXzEyYmFz
aWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTOF9TOF8g
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOS1N0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJl
Y3RvcnlfaXRlcmF0b3JkZUV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2Zz
MTBmaWxlc3lzdGVtMThkaXJlY3RvcnlfaXRlcmF0b3JwcEV2IC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJ
QTEwX2NQY2NMYjFFRTExX19yYW5nZV9lbmRFUEtjIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19a
TlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJQTEwX2NQ
Y2NMYjFFRTEzX19yYW5nZV9iZWdpbkVQS2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3Qz
X18xNF9fZnMxMGZpbGVzeXN0ZW00cGF0aGRWRVJLUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2ws
X19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtOF9QYXRoQ1ZUSWNFMTVfX2FwcGVuZF9zb3VyY2VJ
QTEwX2NFRXZSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9j
YXRvckljRUVFRVJLVF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZp
bGVzeXN0ZW0yNF9fdGhyb3dfZmlsZXN5c3RlbV9lcnJvcklKUlBLY1JLTlMxXzRwYXRoRVJLTlNf
MTBlcnJvcl9jb2RlRUVFRXZEcE9UXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0
X19mczEwZmlsZXN5c3RlbTE0X19pc19zZXBhcmF0b3JJY0VFTlNfOWVuYWJsZV9pZklYc3IxOF9f
Y2FuX2NvbnZlcnRfY2hhcklUX0VFNXZhbHVlRWJFNHR5cGVFUzRfIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJy
YXlJUEtjUzRfY0xiMUVFMTVfX2ZpcnN0X29yX251bGxFUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtNHBhdGgyMF9fc291cmNlX2lzX2Fic29sdXRl
SWNFRWJUXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3Rl
bTRwYXRoNmFwcGVuZElQS2NFRU5TXzllbmFibGVfaWZJWHNyMTNfX2lzX3BhdGhhYmxlSVRfRUU1
dmFsdWVFUlMyX0U0dHlwZUVSS1M3XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0
X19mczEwZmlsZXN5c3RlbTZ1OHBhdGhJUEtjRUVOU185ZW5hYmxlX2lmSVhzcjEzX19pc19wYXRo
YWJsZUlUX0VFNXZhbHVlRU5TMV80cGF0aEVFNHR5cGVFUktTNl8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCxfX1pOS1N0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJlY3RvcnlfaXRlcmF0b3JwdEV2
IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJl
Y3RvcnlfaXRlcmF0b3I5aW5jcmVtZW50RVJOU18xMGVycm9yX2NvZGVFOwogCi1PVEhFUl9MREZM
QUdTX0JBU0UgPSAkKE9USEVSX0xERkxBR1NfSElERV9TWU1CT0xTKSAtZm9yY2VfbG9hZCAiJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL2xpYldURi5h
IjsKKy8vIE5lZWRlZCBieSBgU291cmNlL1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbWAu
CitXS19JTlRFUk5BVElPTkFMX1NVUFBPUlRfTERGTEFHUyA9IC1mcmFtZXdvcmsgSW50ZXJuYXRp
b25hbFN1cHBvcnQ7CisKK09USEVSX0xERkxBR1NfQkFTRSA9ICQoT1RIRVJfTERGTEFHU19ISURF
X1NZTUJPTFMpIC1mb3JjZV9sb2FkICIkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvSmF2YVNjcmlwdENvcmUvbGliV1RGLmEiICQoV0tfSU5URVJOQVRJT05BTF9TVVBQT1JUX0xE
RkxBR1MpOwogT1RIRVJfTERGTEFHU1tzZGs9ZW1iZWRkZWQqXSA9ICQoaW5oZXJpdGVkKSAkKE9U
SEVSX0xERkxBR1NfQkFTRSk7CiBPVEhFUl9MREZMQUdTW3Nkaz1tYWNvc3gqXSA9ICQoaW5oZXJp
dGVkKSAkKE9USEVSX0xERkxBR1NfQkFTRSkgLWZyYW1ld29yayBDb3JlU2VydmljZXM7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9wbGF5c3RhdGlvbi9UZXN0U2hl
bGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL3BsYXlzdGF0aW9uL1Rlc3RTaGVs
bC5jcHAKaW5kZXggMjc4MmZkYTA4OTg2NWRjZjBlMmY3YzFkYjI5MzMxNTEyODk0ZGU0OS4uMzFm
ZWFmN2VjNThmNzk1ZjhjM2RiYjc3ZDlmOTU3YzMzZjYyZmMzMSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3NoZWxsL3BsYXlzdGF0aW9uL1Rlc3RTaGVsbC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL3BsYXlzdGF0aW9uL1Rlc3RTaGVsbC5jcHAKQEAgLTYy
LDcgKzYyLDcgQEAgZXh0ZXJuICJDIiB2b2lkIHByZVRlc3QoKQogICAgIEpTQzo6T3B0aW9uczo6
bmFtZV8oKSA9IG9yaWcjI25hbWVfOwogICAgIEZPUl9FQUNIX0pTQ19PUFRJT04oSU5JVF9PUFRJ
T04pCiAjdW5kZWYgSU5JVF9PUFRJT04KLSAgICBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXMocGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkpOworICAgIG92ZXJyaWRlVXNlclBy
ZWZlcnJlZExhbmd1YWdlcyh7IH0pOwogfQogCiBleHRlcm4gIkMiIGludCBydW5UZXN0KGludCBh
cmdjLCBjaGFyKiBhcmd2W10pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5j
cHAgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKaW5kZXggYmU2MjU4ZDg1N2U1OTg4Zjk2
OTgzOTAyMDJiY2M5M2MzYzE3ODIwZi4uNzAxNjk2MjA1MmZiYThhZTNkOTkxZTJhMGFmMDdjMmI1
MTdhM2JmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcApAQCAtMzcsNiArMzcsMTggQEAKIAogbmFtZXNwYWNl
IFdURiB7CiAKK3N0YXRpYyBDaGVja2VkTG9jayBjYWNoZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1
YWdlc0xvY2s7CitzdGF0aWMgVmVjdG9yPFN0cmluZz4mIGNhY2hlZEZ1bGxQbGF0Zm9ybVByZWZl
cnJlZExhbmd1YWdlcygpIFdURl9SRVFVSVJFU19MT0NLKGNhY2hlZFBsYXRmb3JtUHJlZmVycmVk
TGFuZ3VhZ2VzTG9jaykKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0cmlu
Zz4+IGxhbmd1YWdlczsKKyAgICByZXR1cm4gbGFuZ3VhZ2VzOworfQorc3RhdGljIFZlY3RvcjxT
dHJpbmc+JiBjYWNoZWRNaW5pbWl6ZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpIFdURl9S
RVFVSVJFU19MT0NLKGNhY2hlZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzTG9jaykKK3sKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+IGxhbmd1YWdlczsKKyAgICBy
ZXR1cm4gbGFuZ3VhZ2VzOworfQorCiBzdGF0aWMgQ2hlY2tlZExvY2sgcHJlZmVycmVkTGFuZ3Vh
Z2VzT3ZlcnJpZGVMb2NrOwogc3RhdGljIFZlY3RvcjxTdHJpbmc+JiBwcmVmZXJyZWRMYW5ndWFn
ZXNPdmVycmlkZSgpIFdURl9SRVFVSVJFU19MT0NLKHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRl
TG9jaykKIHsKQEAgLTY4LDE2ICs4MCwyMSBAQCB2b2lkIHJlbW92ZUxhbmd1YWdlQ2hhbmdlT2Jz
ZXJ2ZXIodm9pZCogY29udGV4dCkKIAogdm9pZCBsYW5ndWFnZURpZENoYW5nZSgpCiB7Ci0gICAg
cGxhdGZvcm1MYW5ndWFnZURpZENoYW5nZSgpOworICAgIHsKKyAgICAgICAgTG9ja2VyIGxvY2tl
ciB7IGNhY2hlZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzTG9jayB9OworICAgICAgICBjYWNo
ZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKS5jbGVhcigpOworICAgICAgICBjYWNo
ZWRNaW5pbWl6ZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpLmNsZWFyKCk7CisgICAgfQor
CiAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IGNvcHlUb1ZlY3RvcihvYnNlcnZlck1hcCgpKSkg
ewogICAgICAgICBpZiAob2JzZXJ2ZXJNYXAoKS5jb250YWlucyhvYnNlcnZlci5rZXkpKQogICAg
ICAgICAgICAgb2JzZXJ2ZXIudmFsdWUob2JzZXJ2ZXIua2V5KTsKICAgICB9CiB9CiAKLVN0cmlu
ZyBkZWZhdWx0TGFuZ3VhZ2UoKQorU3RyaW5nIGRlZmF1bHRMYW5ndWFnZShTaG91bGRNaW5pbWl6
ZUxhbmd1YWdlcyBzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcykKIHsKLSAgICBWZWN0b3I8U3RyaW5n
PiBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgVmVjdG9yPFN0cmlu
Zz4gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcyhzaG91bGRNaW5pbWl6ZUxhbmd1
YWdlcyk7CiAgICAgaWYgKGxhbmd1YWdlcy5zaXplKCkpCiAgICAgICAgIHJldHVybiBsYW5ndWFn
ZXNbMF07CiAKQEAgLTEwOCw3ICsxMjUsNyBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gaXNvbGF0
ZWRDb3B5KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdHJpbmdzKQogICAgIHJldHVybiBjb3B5Owog
fQogCi1WZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKK1ZlY3RvcjxTdHJp
bmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgc2hvdWxk
TWluaW1pemVMYW5ndWFnZXMpCiB7CiAgICAgewogICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJl
ZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVMb2NrIH07CkBAIC0xMTcsNyArMTM0LDExIEBAIFZlY3Rv
cjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQogICAgICAgICAgICAgcmV0dXJuIGlz
b2xhdGVkQ29weShvdmVycmlkZSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlcygpOworICAgIExvY2tlciBsb2NrZXIgeyBjYWNoZWRQbGF0Zm9ybVBy
ZWZlcnJlZExhbmd1YWdlc0xvY2sgfTsKKyAgICBhdXRvJiBsYW5ndWFnZXMgPSBzaG91bGRNaW5p
bWl6ZUxhbmd1YWdlcyA9PSBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzID8gY2FjaGVkTWlu
aW1pemVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKSA6IGNhY2hlZEZ1bGxQbGF0Zm9ybVBy
ZWZlcnJlZExhbmd1YWdlcygpOworICAgIGlmIChsYW5ndWFnZXMuaXNFbXB0eSgpKQorICAgICAg
ICBsYW5ndWFnZXMgPSBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoc2hvdWxkTWluaW1p
emVMYW5ndWFnZXMpOworICAgIHJldHVybiBpc29sYXRlZENvcHkobGFuZ3VhZ2VzKTsKIH0KIAog
c3RhdGljIFN0cmluZyBjYW5vbmljYWxMYW5ndWFnZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBs
YW5ndWFnZUNvZGUpCkBAIC0xODQsMTAgKzIwNSwyNiBAQCBTdHJpbmcgZGlzcGxheU5hbWVGb3JM
YW5ndWFnZUxvY2FsZShjb25zdCBTdHJpbmcmIGxvY2FsZU5hbWUpCiAgICAgcmV0dXJuIGxvY2Fs
ZU5hbWU7CiB9CiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpCi12b2lkIHBsYXRmb3JtTGFuZ3VhZ2VE
aWRDaGFuZ2UoKQorc3RhdGljIENoZWNrZWRMb2NrIGluaXRpYWxQbGF0Zm9ybVByZWZlcnJlZExh
bmd1YWdlc092ZXJyaWRlRm9yVGVzdGluZ0xvY2s7CitzdGF0aWMgVmVjdG9yPFN0cmluZz4mIGlu
aXRpYWxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlRm9yVGVzdGluZygpIFdURl9S
RVFVSVJFU19MT0NLKGluaXRpYWxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlRm9y
VGVzdGluZ0xvY2spCiB7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+
PiBvdmVycmlkZTsKKyAgICByZXR1cm4gb3ZlcnJpZGU7CiB9Ci0jZW5kaWYKIAorVmVjdG9yPFN0
cmluZz4gaW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlRm9yVGVz
dGluZygpCit7CisgICAgTG9ja2VyIGxvY2tlciB7IGluaXRpYWxQbGF0Zm9ybVByZWZlcnJlZExh
bmd1YWdlc092ZXJyaWRlRm9yVGVzdGluZ0xvY2sgfTsKKyAgICByZXR1cm4gaW5pdGlhbFBsYXRm
b3JtUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nKCk7CiB9CisKK3ZvaWQgb3Zl
cnJpZGVJbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRm9yVGVzdGluZyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgb3ZlcnJpZGUpCit7CisgICAgeworICAgICAgICBMb2NrZXIgbG9j
a2VyIHsgaW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5n
TG9jayB9OworICAgICAgICBpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlk
ZUZvclRlc3RpbmcoKSA9IG92ZXJyaWRlOworICAgIH0KKyAgICBsYW5ndWFnZURpZENoYW5nZSgp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xh
bmd1YWdlLmggYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oCmluZGV4IGYwNzRkNzU2OGQwMDJl
OTMyYTUzMjZiZGI1MmQ3ZmI4YzA2NTgxODMuLjJhMThjMjE0YWE5ODIxYWVjYzg1OGRmZGRkZGZk
NTM3MDczYjQ4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmgKKysrIGIv
U291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaApAQCAtMzUsMTMgKzM1LDEzIEBACiAKIG5hbWVzcGFj
ZSBXVEYgewogCi1XVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgpOyAv
LyBUaHJlYWQtc2FmZS4KLVdURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5nPiB1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKCk7IC8vIFRocmVhZC1zYWZlLCByZXR1cm5zIEJDUCA0NyBsYW5ndWFn
ZSB0YWdzLgorZW51bSBjbGFzcyBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyB7IFllcywgTm8gfTsK
KworV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoU2hvdWxkTWluaW1p
emVMYW5ndWFnZXMgPSBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzKTsgLy8gVGhyZWFkLXNh
ZmUuCitXVEZfRVhQT1JUX1BSSVZBVEUgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1
YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZ
ZXMpOyAvLyBUaHJlYWQtc2FmZSwgcmV0dXJucyBCQ1AgNDcgbGFuZ3VhZ2UgdGFncy4KIFdURl9F
WFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJp
ZGUoKTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1
YWdlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogV1RGX0VYUE9SVF9QUklWQVRFIHNpemVfdCBp
bmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlTGlzdCwgYm9vbCYgZXhhY3RNYXRjaCk7Ci1X
VEZfRVhQT1JUX1BSSVZBVEUgVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFu
Z3VhZ2VzKCk7Ci1XVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hh
bmdlKCk7CiAKIC8vIENhbGxlZCBmcm9tIHBsYXRmb3JtIHNwZWNpZmljIGNvZGUgd2hlbiB0aGUg
dXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZShzKSBjaGFuZ2UuCiBXVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBsYW5ndWFnZURpZENoYW5nZSgpOwpAQCAtNTIsMjAgKzUyLDI2IEBAIFdURl9FWFBPUlRf
UFJJVkFURSB2b2lkIGFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCwgTGFu
Z3VhZ2VDaGFuZ2VPCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCByZW1vdmVMYW5ndWFnZUNoYW5n
ZU9ic2VydmVyKHZvaWQqIGNvbnRleHQpOwogV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyBkaXNw
bGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlKGNvbnN0IFN0cmluZyYpOwogCitWZWN0b3I8U3RyaW5n
PiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMg
PSBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzKTsKKwogI2lmIFBMQVRGT1JNKENPQ09BKQog
Ym9vbCBjYW5NaW5pbWl6ZUxhbmd1YWdlcygpOwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgbGlz
dGVuRm9yTGFuZ3VhZ2VDaGFuZ2VOb3RpZmljYXRpb25zKCk7CiBSZXRhaW5QdHI8Q0ZBcnJheVJl
Zj4gbWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlcyhDRkFycmF5UmVmKTsKLSNlbmRpZgor
UmV0YWluUHRyPENGU3RyaW5nUmVmPiBiYXNlTGFuZ3VhZ2VGcm9tTGFuZ3VhZ2UoQ0ZTdHJpbmdS
ZWYpOwogCi19CitWZWN0b3I8U3RyaW5nPiBpbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFu
Z3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nKCk7CitXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBvdmVy
cmlkZUluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNGb3JUZXN0aW5nKGNvbnN0
IFZlY3RvcjxTdHJpbmc+Jik7CisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKK30gLy8gbmFt
ZXNwYWNlIFdURgorCit1c2luZyBXVEY6OlNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOwogdXNpbmcg
V1RGOjpkZWZhdWx0TGFuZ3VhZ2U7CiB1c2luZyBXVEY6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7
CiB1c2luZyBXVEY6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZTsKIHVzaW5nIFdURjo6
b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwogdXNpbmcgV1RGOjppbmRleE9mQmVzdE1h
dGNoaW5nTGFuZ3VhZ2VJbkxpc3Q7Ci11c2luZyBXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlczsKIHVzaW5nIFdURjo6YWRkTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcjsKIHVzaW5nIFdU
Rjo6cmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcjsKIHVzaW5nIFdURjo6ZGlzcGxheU5hbWVG
b3JMYW5ndWFnZUxvY2FsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NmL0xhbmd1YWdl
Q0YuY3BwIGIvU291cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAKaW5kZXggZTA3MzExNTQy
OTFiZmQwN2M0Y2MxNmRhMDQyYWFhZGI1OWM5ZTNiMS4uNTk1MWI1YWRhNGYzYmZkODM3MjlmOGZh
ODg2ZGFhNzA2OGU4NjJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VD
Ri5jcHAKKysrIGIvU291cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAKQEAgLTMwLDE2ICsz
MCwxMiBAQAogI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHVuaWNvZGUvdWxvYy5oPgogI2lu
Y2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+Ci0j
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9zcGkvY2YvQ0ZCdW5kbGVTUEkuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAKLXN0YXRpYyBDaGVja2VkTG9jayBw
cmVmZXJyZWRMYW5ndWFnZXNMb2NrOwotCiAjaWYgUExBVEZPUk0oTUFDKQogc3RhdGljIHZvaWQg
bGFuZ3VhZ2VQcmVmZXJlbmNlc0RpZENoYW5nZShDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9p
ZCosIENGU3RyaW5nUmVmLCBjb25zdCB2b2lkKiwgQ0ZEaWN0aW9uYXJ5UmVmKQogewpAQCAtNDcs
MTYgKzQzLDYgQEAgc3RhdGljIHZvaWQgbGFuZ3VhZ2VQcmVmZXJlbmNlc0RpZENoYW5nZShDRk5v
dGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCosIENGU3RyaW4KIH0KICNlbmRpZgogCi1zdGF0aWMg
VmVjdG9yPFN0cmluZz4mIHByZWZlcnJlZExhbmd1YWdlcygpIFdURl9SRVFVSVJFU19MT0NLKHBy
ZWZlcnJlZExhbmd1YWdlc0xvY2spCi17Ci0gICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxW
ZWN0b3I8U3RyaW5nPj4gbGFuZ3VhZ2VzOwotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNl
S2V5OwotICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXksIFsmXSB7Ci0gICAgICAgIGxhbmd1YWdl
cy5jb25zdHJ1Y3QoKTsKLSAgICB9KTsKLSAgICByZXR1cm4gbGFuZ3VhZ2VzOwotfQotCiBzdGF0
aWMgU3RyaW5nIGh0dHBTdHlsZUxhbmd1YWdlQ29kZShDRlN0cmluZ1JlZiBsYW5ndWFnZSkKIHsK
ICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHByZWZlcnJlZExhbmd1YWdlQ29kZTsKQEAgLTg4
LDE0ICs3NCw2IEBAIHN0YXRpYyBTdHJpbmcgaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKENGU3RyaW5n
UmVmIGxhbmd1YWdlKQogICAgIHJldHVybiBtdXRhYmxlTGFuZ3VhZ2VDb2RlLmdldCgpOwogfQog
Ci12b2lkIHBsYXRmb3JtTGFuZ3VhZ2VEaWRDaGFuZ2UoKQotewotICAgIHsKLSAgICAgICAgTG9j
a2VyIGxvY2tlciB7IHByZWZlcnJlZExhbmd1YWdlc0xvY2sgfTsKLSAgICAgICAgcHJlZmVycmVk
TGFuZ3VhZ2VzKCkuY2xlYXIoKTsKLSAgICB9Ci19Ci0KIHZvaWQgbGlzdGVuRm9yTGFuZ3VhZ2VD
aGFuZ2VOb3RpZmljYXRpb25zKCkKIHsKICNpZiBQTEFURk9STShNQUMpCkBAIC0xMDYsMzIgKzg0
LDM4IEBAIHZvaWQgbGlzdGVuRm9yTGFuZ3VhZ2VDaGFuZ2VOb3RpZmljYXRpb25zKCkKICNlbmRp
ZgogfQogCi1WZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQor
VmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmlt
aXplTGFuZ3VhZ2VzIHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewotICAgIExvY2tlciBsb2Nr
ZXIgeyBwcmVmZXJyZWRMYW5ndWFnZXNMb2NrIH07Ci0gICAgVmVjdG9yPFN0cmluZz4mIHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMgPSBwcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBSZXRhaW5QdHI8
Q0ZBcnJheVJlZj4gcGxhdGZvcm1MYW5ndWFnZXM7CisgICAgaWYgKGF1dG8gb3ZlcnJpZGUgPSBp
bml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nKCk7
ICFvdmVycmlkZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgYXV0byBhcnJheSA9IGFkb3B0Q0YoQ0ZB
cnJheUNyZWF0ZU11dGFibGUoMCwgb3ZlcnJpZGUuc2l6ZSgpLCAma0NGVHlwZUFycmF5Q2FsbEJh
Y2tzKSk7CisgICAgICAgIGZvciAoYXV0byYgaXRlbSA6IG92ZXJyaWRlKQorICAgICAgICAgICAg
Q0ZBcnJheUFwcGVuZFZhbHVlKGFycmF5LmdldCgpLCBpdGVtLmlzb2xhdGVkQ29weSgpLmNyZWF0
ZUNGU3RyaW5nKCkuZ2V0KCkpOworICAgICAgICBwbGF0Zm9ybUxhbmd1YWdlcyA9IFdURk1vdmUo
YXJyYXkpOworICAgIH0gZWxzZQorICAgICAgICBwbGF0Zm9ybUxhbmd1YWdlcyA9IGFkb3B0Q0Yo
Q0ZMb2NhbGVDb3B5UHJlZmVycmVkTGFuZ3VhZ2VzKCkpOwogCi0gICAgaWYgKHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFJldGFpblB0cjxDRkFycmF5UmVmPiBs
YW5ndWFnZXMgPSBhZG9wdENGKENGTG9jYWxlQ29weVByZWZlcnJlZExhbmd1YWdlcygpKTsKLSAg
ICAgICAgbGFuZ3VhZ2VzID0gbWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlcyhsYW5ndWFn
ZXMuZ2V0KCkpOwotICAgICAgICBDRkluZGV4IGxhbmd1YWdlQ291bnQgPSBDRkFycmF5R2V0Q291
bnQobGFuZ3VhZ2VzLmdldCgpKTsKLSAgICAgICAgaWYgKCFsYW5ndWFnZUNvdW50KQotICAgICAg
ICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBlbmQoImVuIik7Ci0gICAgICAgIGVsc2Ug
ewotICAgICAgICAgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgbGFuZ3VhZ2VDb3VudDsgaSsr
KQotICAgICAgICAgICAgICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5kKGh0dHBTdHls
ZUxhbmd1YWdlQ29kZShzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZBcnJheUdldFZhbHVlQXRJ
bmRleChsYW5ndWFnZXMuZ2V0KCksIGkpKSkpOworICAgIGlmIChzaG91bGRNaW5pbWl6ZUxhbmd1
YWdlcyA9PSBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzKQorICAgICAgICBwbGF0Zm9ybUxh
bmd1YWdlcyA9IG1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFnZXMocGxhdGZvcm1MYW5ndWFn
ZXMuZ2V0KCkpOworCisgICAgQ0ZJbmRleCBwbGF0Zm9ybUxhbmd1YWdlc0NvdW50ID0gQ0ZBcnJh
eUdldENvdW50KHBsYXRmb3JtTGFuZ3VhZ2VzLmdldCgpKTsKKyAgICBpZiAoIXBsYXRmb3JtTGFu
Z3VhZ2VzQ291bnQpCisgICAgICAgIHJldHVybiB7ICJlbiJfcyB9OworCisgICAgVmVjdG9yPFN0
cmluZz4gbGFuZ3VhZ2VzOworICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IHBsYXRmb3JtTGFu
Z3VhZ2VzQ291bnQ7IGkrKykgeworICAgICAgICBhdXRvIHBsYXRmb3JtTGFuZ3VhZ2UgPSBzdGF0
aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChwbGF0Zm9ybUxhbmd1
YWdlcy5nZXQoKSwgaSkpOworICAgICAgICBsYW5ndWFnZXMuYXBwZW5kKGh0dHBTdHlsZUxhbmd1
YWdlQ29kZShwbGF0Zm9ybUxhbmd1YWdlKSk7CisKKyAgICAgICAgaWYgKHNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzID09IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObykgeworICAgICAgICAgICAg
Ly8gQ29udmVydCBsYW5ndWFnZXMgd2l0aCBjb3VudHJ5IGNvZGVzIHRvIGVxdWl2YWxlbnQgbGFu
Z3VhZ2VzIHdpdGhvdXQgY291bnRyeSBjb2RlcyAoaWYgcG9zc2libGUpLgorICAgICAgICAgICAg
Ly8gZS5nLiAiZW4tVVMiIGJlY29tZXMgImVuIiwgd2hpY2ggaXMgdXNlZnVsIHdoZW4gdHJ5aW5n
IHRvIG1hdGNoIEhUTUwgYGxhbmc9ImVuImAuCisgICAgICAgICAgICBhdXRvIGJhc2VMYW5ndWFn
ZSA9IGJhc2VMYW5ndWFnZUZyb21MYW5ndWFnZShwbGF0Zm9ybUxhbmd1YWdlKTsKKyAgICAgICAg
ICAgIGlmIChiYXNlTGFuZ3VhZ2UgJiYgYmFzZUxhbmd1YWdlICE9IHBsYXRmb3JtTGFuZ3VhZ2Ug
JiYgQ0ZTdHJpbmdDb21wYXJlKGJhc2VMYW5ndWFnZS5nZXQoKSwgcGxhdGZvcm1MYW5ndWFnZSwg
MCkgIT0ga0NGQ29tcGFyZUVxdWFsVG8pCisgICAgICAgICAgICAgICAgbGFuZ3VhZ2VzLmFwcGVu
ZChodHRwU3R5bGVMYW5ndWFnZUNvZGUoYmFzZUxhbmd1YWdlLmdldCgpKSk7CiAgICAgICAgIH0K
ICAgICB9Ci0KLSAgICBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weTsK
LSAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMuc2l6ZSgpKTsKLQotICAgIGZvciAoYXV0byYgbGFuZ3VhZ2Ug
OiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKQotICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
Q29weS51bmNoZWNrZWRBcHBlbmQobGFuZ3VhZ2UuaXNvbGF0ZWRDb3B5KCkpOwotCi0gICAgcmV0
dXJuIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5OwotCi0gICAgcmV0dXJuIFZlY3RvcjxTdHJp
bmc+KCk7CisgICAgcmV0dXJuIGxhbmd1YWdlczsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1tIGIvU291cmNl
L1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbQppbmRleCA1YmFiN2M3YjI2N2MwYWRkMjU1
YjJmZTY3NjJlZTY0MGUwNTg4OTkzLi41OGM2ZTIxNDQ1ZmEzMTc4NGI3ZjM4NjFjOWM1Njc3MWY0
N2VlMjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1t
CisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0KQEAgLTUwLDYgKzUw
LDggQEAgYm9vbCBjYW5NaW5pbWl6ZUxhbmd1YWdlcygpCiAKIFJldGFpblB0cjxDRkFycmF5UmVm
PiBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzKENGQXJyYXlSZWYgbGFuZ3VhZ2VzKQog
eworICAgIC8vIFRoaXMgcmVxdWlyZXMgbGlua2luZyBgSW50ZXJuYXRpb25hbFN1cHBvcnRgLgor
CiAgICAgaWYgKCFjYW5NaW5pbWl6ZUxhbmd1YWdlcygpKQogICAgICAgICByZXR1cm4gbGFuZ3Vh
Z2VzOwogCkBAIC01OCw0ICs2MCwzMCBAQCBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JF
R0lOCiBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0VORAogfQogCitzdGF0aWMgYm9vbCBj
YW5HZXRCYXNlTGFuZ3VhZ2UoKQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHJlc3VsdCA9IFtd
KCkgLT4gYm9vbCB7CisjaWYgUExBVEZPUk0oTUFDKQorICAgICAgICBpZiAoYXBwbGljYXRpb25T
REtWZXJzaW9uKCkgPCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworI2VuZGlmCisjaWYgUExBVEZPUk0oSU9TKQorICAgICAgICBpZiAoYXBwbGlj
YXRpb25TREtWZXJzaW9uKCkgPCBEWUxEX0lPU19WRVJTSU9OXzExXzApCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIFtOU0xvY2FsZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKGJhc2VMYW5ndWFnZUZyb21MYW5ndWFnZTopXTsKKyAgICB9KCk7
CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KKworUmV0YWluUHRyPENGU3RyaW5nUmVmPiBiYXNlTGFu
Z3VhZ2VGcm9tTGFuZ3VhZ2UoQ0ZTdHJpbmdSZWYgbGFuZ3VhZ2UpCit7CisgICAgLy8gVGhpcyBy
ZXF1aXJlcyBsaW5raW5nIGBJbnRlcm5hdGlvbmFsU3VwcG9ydGAuCisKKyAgICBpZiAoIWNhbkdl
dEJhc2VMYW5ndWFnZSgpKQorICAgICAgICByZXR1cm4gbGFuZ3VhZ2U7CisKKyAgICByZXR1cm4g
KF9fYnJpZGdlIENGU3RyaW5nUmVmKVtOU0xvY2FsZSBiYXNlTGFuZ3VhZ2VGcm9tTGFuZ3VhZ2U6
KF9fYnJpZGdlIE5TU3RyaW5nICopbGFuZ3VhZ2VdOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0aW9uL0xhbmd1YWdlUGxheVN0YXRp
b24uY3BwIGIvU291cmNlL1dURi93dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5j
cHAKaW5kZXggZDQ1MzdhNjk0MGI1ZTAyMmJmNWU1Y2RmNzFhODYzZDMzMDlkZjYxYy4uY2FmMTU0
OWY4MDAyYzEzN2UyZjFhMDYyMjgxODE1NGY1NjI1NGU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5jcHAKQEAgLTMwLDcgKzMwLDcg
QEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZl
cnJlZExhbmd1YWdlcygpCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMpCiB7CiAgICAgVmVjdG9yPFN0cmluZz4gbGFu
Z3VhZ2VzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2EvTlNMb2NhbGVT
UEkuaCBiL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9OU0xvY2FsZVNQSS5oCmluZGV4IDVjZWYx
NjQwMzE2YjQ3M2E3MWJlN2JiYTYxYTg4Mjc0ZjI4MTA2MjEuLmNhOTgyMDFjNjE2M2EzNzllZTFk
OGYyY2E0ZjU1ZDM2ZmZhYmYwYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2Nv
YS9OU0xvY2FsZVNQSS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9OU0xvY2FsZVNQ
SS5oCkBAIC0zMiw2ICszMiw3IEBACiAjZW5kaWYKIAogQGludGVyZmFjZSBOU0xvY2FsZSAoKQor
KyAobm9ubnVsbCBOU1N0cmluZyAqKWJhc2VMYW5ndWFnZUZyb21MYW5ndWFnZToobm9ubnVsbCBO
U1N0cmluZyAqKWxhbmd1YWdlSUQ7CiArIChub25udWxsIE5TQXJyYXk8TlNTdHJpbmcgKj4gKilt
aW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzOihub25udWxsIE5TQXJyYXk8TlNTdHJpbmcg
Kj4gKilsYW5ndWFnZXM7CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3VuaXgv
TGFuZ3VhZ2VVbml4LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcApp
bmRleCAzMWM3NTc0NzJlZWFiNjQwNzI2ZTk0YzVjNTc1MDcxOGZhMzkzOGQxLi5hZjk0YmIwNmNj
MzhkZDJhODU5NWJmYmI3NzE2OTBmOTJkYjQ4YWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFn
ZVVuaXguY3BwCkBAIC00Miw3ICs0Miw3IEBAIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFn
ZSgpCiAgICAgcmV0dXJuIG5vcm1hbGl6ZWREZWZhdWx0OwogfQogCi1WZWN0b3I8U3RyaW5nPiBw
bGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewogICAgIHJl
dHVybiB7IHBsYXRmb3JtTGFuZ3VhZ2UoKSB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvd2luL0xhbmd1YWdlV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5j
cHAKaW5kZXggNmI1MmM5YzIwZDE1Y2JhN2UzOWQ1NDIwMTFiNDM4YTM4MzU4YzJiMi4uYmY5NmIw
YTU1Yzg4OTkzMWM0YzJkNTMzMTdlOGM1ZTAxN2UyYWExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvd2luL0xhbmd1YWdlV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3Vh
Z2VXaW4uY3BwCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFn
ZSgpCiAgICAgcmV0dXJuIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlOwogfQogCi1WZWN0b3I8U3Ry
aW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9yPFN0cmluZz4gcGxh
dGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewog
ICAgIHJldHVybiB7IHBsYXRmb3JtTGFuZ3VhZ2UoKSB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggYWIwM2JkYjQzYzZmM2EzZjE1
YmE5NWU4ZDJiYjMxZTdiY2ExZTUzOS4uODExNDE5MGI0M2VjNTk2MmQxYmZlNzJjYjhiOTExMjBm
Y2Q3MjVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jh
c2UuY3BwCkBAIC04Myw3ICs4Myw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpT
RE9NV2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsKICAgICAmcmVwb3J0
VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKICAgICAmY3VycmVudFNjcmlwdEV4ZWN1dGlv
bk93bmVyLAogICAgICZzY3JpcHRFeGVjdXRpb25TdGF0dXMsCi0gICAgJmRlZmF1bHRMYW5ndWFn
ZSwKKyAgICBbXSB7IHJldHVybiBkZWZhdWx0TGFuZ3VhZ2UoKTsgfSwKICNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCiAgICAgJmNvbXBpbGVTdHJlYW1pbmcsCiAgICAgJmluc3RhbnRpYXRlU3RyZWFt
aW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9i
YWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9i
YWxTY29wZUJhc2UuY3BwCmluZGV4IDQ4Mzk5NzA4ZWUwMzRiYzU4YWMzODJmM2NhYzk3ZjkxNjc3
ODJmYjguLjkyMTI1ZTU2ZDY5OTVkNDYwMGRjZDhmY2I3YjQyM2JhNThiYjQ4M2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFz
ZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNX
b3JrZXJHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUKICAgICAmcmVw
b3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKICAgICAmY3VycmVudFNjcmlwdEV4ZWN1
dGlvbk93bmVyLAogICAgICZzY3JpcHRFeGVjdXRpb25TdGF0dXMsCi0gICAgJmRlZmF1bHRMYW5n
dWFnZSwKKyAgICBbXSB7IHJldHVybiBkZWZhdWx0TGFuZ3VhZ2UoKTsgfSwKICNpZiBFTkFCTEUo
V0VCQVNTRU1CTFkpCiAgICAgJmNvbXBpbGVTdHJlYW1pbmcsCiAgICAgJmluc3RhbnRpYXRlU3Ry
ZWFtaW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0
R2xvYmFsU2NvcGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xl
dEdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNDIxZTc0NGYzMzA3YWJkOTliMWU1YzJkNWQ3ZjEz
ZTMzYjM4ZTkwMS4uNDIwMjcyYTFkMGI3NWNhNjk1YTY2ZjEyNDZlNDc0NTk2ZDVhNGU1YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxT
Y29wZUJhc2UuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRh
YmxlIEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsCiAg
ICAgJnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3AsCiAgICAgJmN1cnJlbnRTY3Jp
cHRFeGVjdXRpb25Pd25lciwKICAgICAmc2NyaXB0RXhlY3V0aW9uU3RhdHVzLAotICAgICZkZWZh
dWx0TGFuZ3VhZ2UsCisgICAgW10geyByZXR1cm4gZGVmYXVsdExhbmd1YWdlKCk7IH0sCiAjaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICZjb21waWxlU3RyZWFtaW5nLAogICAgICZpbnN0YW50
aWF0ZVN0cmVhbWluZywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVy
ZW5jZXMuY3BwCmluZGV4IGQzZTQ1ZThiYjRjN2QyMDBjZDNhNGEyMTI4MjBkZTRlZGZjZDFiZjgu
LjU1ZmEwOTY0YzdmZDk4ODYzNWVmMzMyNWNiZGFiZjBlMjEzNDQ4NGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcApAQCAtMTcwLDcgKzE3MCw3
IEBAIHZvaWQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Y2FwdGlvblByZWZlcmVuY2VzQ2hhbmdl
ZCgpCiAKIFZlY3RvcjxTdHJpbmc+IENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByZWZlcnJlZExh
bmd1YWdlcygpIGNvbnN0CiB7Ci0gICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzID0gdXNlclBy
ZWZlcnJlZExhbmd1YWdlcygpOworICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlcyA9IHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKTsKICAgICBpZiAo
bV90ZXN0aW5nTW9kZSAmJiAhbV91c2VyUHJlZmVycmVkTGFuZ3VhZ2UuaXNFbXB0eSgpKQogICAg
ICAgICBsYW5ndWFnZXMuaW5zZXJ0KDAsIG1fdXNlclByZWZlcnJlZExhbmd1YWdlKTsKIApAQCAt
MzQxLDcgKzM0MSw3IEBAIGludCBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjp0ZXh0VHJhY2tTZWxl
Y3Rpb25TY29yZShUZXh0VHJhY2sqIHRyYWNrLCBIVE1MTWVkaWFFCiAgICAgICAgICAgICBpZiAo
b2Zmc2V0KQogICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgbGFuZ3VhZ2VMaXN0LmFwcGVuZChkZWZhdWx0TGFuZ3VhZ2UoKSk7CisgICAgICAg
ICAgICBsYW5ndWFnZUxpc3QuYXBwZW5kKGRlZmF1bHRMYW5ndWFnZShTaG91bGRNaW5pbWl6ZUxh
bmd1YWdlczo6Tm8pKTsKIAogICAgICAgICAgICAgLy8gT25seSBlbmFibGUgYSB0ZXh0IHRyYWNr
IGlmIHRoZSBjdXJyZW50IGF1ZGlvIHRyYWNrIGlzIE5PVCBpbiB0aGUgdXNlcidzIHByZWZlcnJl
ZCBsYW5ndWFnZSAuLi4KICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQgPSBpbmRleE9mQmVzdE1h
dGNoaW5nTGFuZ3VhZ2VJbkxpc3QoYXVkaW9UcmFja0xhbmd1YWdlLCBsYW5ndWFnZUxpc3QsIGV4
YWN0TWF0Y2gpOwpAQCAtNDE4LDcgKzQxOCw3IEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVu
Y2VzOjpwcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGUoKSBjb25zdAogewogICAgIGlm
ICghbV9wcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGUuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gbV9wcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGU7Ci0gICAgcmV0dXJu
IGRlZmF1bHRMYW5ndWFnZSgpOworICAgIHJldHVybiBkZWZhdWx0TGFuZ3VhZ2UoU2hvdWxkTWlu
aW1pemVMYW5ndWFnZXM6Ok5vKTsKIH0KICAgICAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKaW5kZXggY2YyZTFiZWEy
NWIwZjA3OTk4NjM5MjA1OTQ1ZGYwZWVmOTJkM2M0Mi4uMzM1N2Y3NzQyNjBjNGVkMGQ4ODRhMGI4
NTdkY2I4ZjZjY2VjNzUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9u
VXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0
aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKQEAgLTQ3MSwzNiArNDcxLDIwIEBAIHZvaWQg
Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OnNldFByZWZlcnJlZExhbmd1YWdlKGNvbnN0
IFN0cmluZyYgbGFuZ3VhZ2UpCiAKIFZlY3RvcjxTdHJpbmc+IENhcHRpb25Vc2VyUHJlZmVyZW5j
ZXNNZWRpYUFGOjpwcmVmZXJyZWRMYW5ndWFnZXMoKSBjb25zdAogewotICAgIGlmICh0ZXN0aW5n
TW9kZSgpIHx8ICFNZWRpYUFjY2Vzc2liaWxpdHlMaWJyYXJ5KCkpCi0gICAgICAgIHJldHVybiBD
YXB0aW9uVXNlclByZWZlcmVuY2VzOjpwcmVmZXJyZWRMYW5ndWFnZXMoKTsKLQotICAgIFZlY3Rv
cjxTdHJpbmc+IHBsYXRmb3JtTGFuZ3VhZ2VzID0gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzKCk7Ci0gICAgVmVjdG9yPFN0cmluZz4gb3ZlcnJpZGUgPSB1c2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzT3ZlcnJpZGUoKTsKLSAgICBpZiAoIW92ZXJyaWRlLmlzRW1wdHkoKSkgewotICAgICAgICBp
ZiAocGxhdGZvcm1MYW5ndWFnZXMuc2l6ZSgpICE9IG92ZXJyaWRlLnNpemUoKSkKLSAgICAgICAg
ICAgIHJldHVybiBvdmVycmlkZTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvdmVy
cmlkZS5zaXplKCk7IGkrKykgewotICAgICAgICAgICAgaWYgKG92ZXJyaWRlW2ldICE9IHBsYXRm
b3JtTGFuZ3VhZ2VzW2ldKQotICAgICAgICAgICAgICAgIHJldHVybiBvdmVycmlkZTsKKyAgICBh
dXRvIHByZWZlcnJlZExhbmd1YWdlcyA9IENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByZWZlcnJl
ZExhbmd1YWdlcygpOworICAgIGlmICghdGVzdGluZ01vZGUoKSAmJiBNZWRpYUFjY2Vzc2liaWxp
dHlMaWJyYXJ5KCkpIHsKKyAgICAgICAgYXV0byBjYXB0aW9uTGFuZ3VhZ2VzID0gYWRvcHRDRihN
QUNhcHRpb25BcHBlYXJhbmNlQ29weVNlbGVjdGVkTGFuZ3VhZ2VzKGtNQUNhcHRpb25BcHBlYXJh
bmNlRG9tYWluVXNlcikpOworICAgICAgICBDRkluZGV4IGNhcHRpb25MYW5ndWFnZXNDb3VudCA9
IGNhcHRpb25MYW5ndWFnZXMgPyBDRkFycmF5R2V0Q291bnQoY2FwdGlvbkxhbmd1YWdlcy5nZXQo
KSkgOiAwOworICAgICAgICBpZiAoY2FwdGlvbkxhbmd1YWdlc0NvdW50KSB7CisgICAgICAgICAg
ICBWZWN0b3I8U3RyaW5nPiB0ZW1wOworICAgICAgICAgICAgdGVtcC5yZXNlcnZlQ2FwYWNpdHko
Y2FwdGlvbkxhbmd1YWdlc0NvdW50ICsgcHJlZmVycmVkTGFuZ3VhZ2VzLnNpemUoKSk7CisgICAg
ICAgICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBjYXB0aW9uTGFuZ3VhZ2VzQ291bnQ7IGkr
KykKKyAgICAgICAgICAgICAgICB0ZW1wLmFwcGVuZChzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4o
Q0ZBcnJheUdldFZhbHVlQXRJbmRleChjYXB0aW9uTGFuZ3VhZ2VzLmdldCgpLCBpKSkpOworICAg
ICAgICAgICAgdGVtcC5hcHBlbmRWZWN0b3IoV1RGTW92ZShwcmVmZXJyZWRMYW5ndWFnZXMpKTsK
KyAgICAgICAgICAgIHByZWZlcnJlZExhbmd1YWdlcyA9IFdURk1vdmUodGVtcCk7CiAgICAgICAg
IH0KICAgICB9Ci0KLSAgICBDRkluZGV4IGxhbmd1YWdlQ291bnQgPSAwOwotICAgIFJldGFpblB0
cjxDRkFycmF5UmVmPiBsYW5ndWFnZXMgPSBhZG9wdENGKE1BQ2FwdGlvbkFwcGVhcmFuY2VDb3B5
U2VsZWN0ZWRMYW5ndWFnZXMoa01BQ2FwdGlvbkFwcGVhcmFuY2VEb21haW5Vc2VyKSk7Ci0gICAg
aWYgKGxhbmd1YWdlcykKLSAgICAgICAgbGFuZ3VhZ2VDb3VudCA9IENGQXJyYXlHZXRDb3VudChs
YW5ndWFnZXMuZ2V0KCkpOwotCi0gICAgaWYgKCFsYW5ndWFnZUNvdW50KQotICAgICAgICByZXR1
cm4gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzKCk7Ci0KLSAgICBW
ZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwotICAgIHVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMucmVzZXJ2ZUNhcGFjaXR5KGxhbmd1YWdlQ291bnQgKyBwbGF0Zm9ybUxhbmd1YWdl
cy5zaXplKCkpOwotICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGxhbmd1YWdlQ291bnQ7IGkr
KykKLSAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBlbmQoc3RhdGljX2Nhc3Q8Q0ZT
dHJpbmdSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgobGFuZ3VhZ2VzLmdldCgpLCBpKSkpOwot
Ci0gICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBlbmRWZWN0b3IocGxhdGZvcm1MYW5ndWFn
ZXMpOwotCi0gICAgcmV0dXJuIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7CisgICAgcmV0dXJuIHBy
ZWZlcnJlZExhbmd1YWdlczsKIH0KIAogdm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFB
Rjo6c2V0UHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpYyhjb25zdCBTdHJpbmcmIGNoYXJhY3Rl
cmlzdGljKQpAQCAtNTc5LDEzICs1NjMsMTUgQEAgc3RhdGljIHZvaWQgYnVpbGREaXNwbGF5U3Ry
aW5nRm9yVHJhY2tCYXNlKFN0cmluZ0J1aWxkZXImIGRpc3BsYXlOYW1lLCBjb25zdCBUcmEKICAg
ICBTdHJpbmcgbGFiZWwgPSB0cmFjay5sYWJlbCgpOwogICAgIFN0cmluZyB0cmFja0xhbmd1YWdl
SWRlbnRpZmllciA9IHRyYWNrLnZhbGlkQkNQNDdMYW5ndWFnZSgpOwogCi0gICAgUmV0YWluUHRy
PENGTG9jYWxlUmVmPiBjdXJyZW50TG9jYWxlID0gYWRvcHRDRihDRkxvY2FsZUNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBkZWZhdWx0TGFuZ3VhZ2UoKS5jcmVhdGVDRlN0cmluZygpLmdldCgp
KSk7CisgICAgYXV0byBwcmVmZXJyZWRMYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
KFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObyk7CisgICAgYXV0byBkZWZhdWx0TGFuZ3VhZ2Ug
PSAhcHJlZmVycmVkTGFuZ3VhZ2VzLmlzRW1wdHkoKSA/IHByZWZlcnJlZExhbmd1YWdlc1swXSA6
IGVtcHR5U3RyaW5nKCk7IC8vIFRoaXMgbWF0Y2hlcyBgV1RGOjpkZWZhdWx0TGFuZ3VhZ2VgLgor
ICAgIFJldGFpblB0cjxDRkxvY2FsZVJlZj4gY3VycmVudExvY2FsZSA9IGFkb3B0Q0YoQ0ZMb2Nh
bGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGVmYXVsdExhbmd1YWdlLmNyZWF0ZUNGU3Ry
aW5nKCkuZ2V0KCkpKTsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGxvY2FsZUlkZW50aWZp
ZXIgPSBhZG9wdENGKENGTG9jYWxlQ3JlYXRlQ2Fub25pY2FsTG9jYWxlSWRlbnRpZmllckZyb21T
dHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgdHJhY2tMYW5ndWFnZUlkZW50aWZpZXIuY3JlYXRl
Q0ZTdHJpbmcoKS5nZXQoKSkpOwogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gbGFuZ3VhZ2VD
RiA9IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5RGlzcGxheU5hbWVGb3JQcm9wZXJ0eVZhbHVlKGN1cnJl
bnRMb2NhbGUuZ2V0KCksIGtDRkxvY2FsZUxhbmd1YWdlQ29kZSwgbG9jYWxlSWRlbnRpZmllci5n
ZXQoKSkpOwogICAgIFN0cmluZyBsYW5ndWFnZSA9IGxhbmd1YWdlQ0YuZ2V0KCk7CiAKICAgICBp
ZiAoIWxhYmVsLmlzRW1wdHkoKSkgewotICAgICAgICBpZiAobGFuZ3VhZ2UuaXNFbXB0eSgpIHx8
IGxhYmVsLmNvbnRhaW5zKGxhbmd1YWdlKSkKKyAgICAgICAgaWYgKGxhbmd1YWdlLmlzRW1wdHko
KSB8fCBsYWJlbC5jb250YWlucyhsYW5ndWFnZSkgfHwgcHJlZmVycmVkTGFuZ3VhZ2VzLmNvbnRh
aW5zKHRyYWNrTGFuZ3VhZ2VJZGVudGlmaWVyKSkKICAgICAgICAgICAgIGRpc3BsYXlOYW1lLmFw
cGVuZChsYWJlbCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgUmV0YWluUHRyPENGRGlj
dGlvbmFyeVJlZj4gbG9jYWxlRGljdCA9IGFkb3B0Q0YoQ0ZMb2NhbGVDcmVhdGVDb21wb25lbnRz
RnJvbUxvY2FsZUlkZW50aWZpZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbG9jYWxlSWRlbnRpZmll
ci5nZXQoKSkpOwpAQCAtNzA5LDE1ICs2OTUsMTYgQEAgU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVy
ZW5jZXNNZWRpYUFGOjpkaXNwbGF5TmFtZUZvclRyYWNrKFRleHRUcmFjayogdHJhY2spIGNvbnMK
IAogc3RhdGljIGJvb2wgdGV4dFRyYWNrQ29tcGFyZShjb25zdCBSZWZQdHI8VGV4dFRyYWNrPiYg
YSwgY29uc3QgUmVmUHRyPFRleHRUcmFjaz4mIGIpCiB7Ci0gICAgU3RyaW5nIHByZWZlcnJlZExh
bmd1YWdlRGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlKGxhbmd1YWdl
SWRlbnRpZmllcihkZWZhdWx0TGFuZ3VhZ2UoKSkpOwogICAgIFN0cmluZyBhTGFuZ3VhZ2VEaXNw
bGF5TmFtZSA9IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUobGFuZ3VhZ2VJZGVudGlmaWVy
KGEtPnZhbGlkQkNQNDdMYW5ndWFnZSgpKSk7CiAgICAgU3RyaW5nIGJMYW5ndWFnZURpc3BsYXlO
YW1lID0gZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShsYW5ndWFnZUlkZW50aWZpZXIoYi0+
dmFsaWRCQ1A0N0xhbmd1YWdlKCkpKTsKIAotICAgIC8vIFRyYWNrcyBpbiB0aGUgdXNlcidzIHBy
ZWZlcnJlZCBsYW5ndWFnZSBhcmUgYWx3YXlzIGF0IHRoZSB0b3Agb2YgdGhlIG1lbnUuCi0gICAg
Ym9vbCBhSXNQcmVmZXJyZWRMYW5ndWFnZSA9IGFMYW5ndWFnZURpc3BsYXlOYW1lID09IHByZWZl
cnJlZExhbmd1YWdlRGlzcGxheU5hbWU7Ci0gICAgYm9vbCBiSXNQcmVmZXJyZWRMYW5ndWFnZSA9
IGJMYW5ndWFnZURpc3BsYXlOYW1lID09IHByZWZlcnJlZExhbmd1YWdlRGlzcGxheU5hbWU7Ci0g
ICAgaWYgKGFJc1ByZWZlcnJlZExhbmd1YWdlICE9IGJJc1ByZWZlcnJlZExhbmd1YWdlKQotICAg
ICAgICByZXR1cm4gYUlzUHJlZmVycmVkTGFuZ3VhZ2U7CisgICAgZm9yIChhdXRvJiBwcmVmZXJy
ZWRMYW5ndWFnZSA6IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFn
ZXM6Ok5vKSkgeworICAgICAgICBTdHJpbmcgcHJlZmVycmVkTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9
IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUobGFuZ3VhZ2VJZGVudGlmaWVyKHByZWZlcnJl
ZExhbmd1YWdlKSk7CisgICAgICAgIGJvb2wgYUlzUHJlZmVycmVkTGFuZ3VhZ2UgPSBhTGFuZ3Vh
Z2VEaXNwbGF5TmFtZSA9PSBwcmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lOworICAgICAgICBi
b29sIGJJc1ByZWZlcnJlZExhbmd1YWdlID0gYkxhbmd1YWdlRGlzcGxheU5hbWUgPT0gcHJlZmVy
cmVkTGFuZ3VhZ2VEaXNwbGF5TmFtZTsKKyAgICAgICAgaWYgKGFJc1ByZWZlcnJlZExhbmd1YWdl
ICE9IGJJc1ByZWZlcnJlZExhbmd1YWdlKQorICAgICAgICAgICAgcmV0dXJuIGFJc1ByZWZlcnJl
ZExhbmd1YWdlOworICAgIH0KIAogICAgIENvbGxhdG9yIGNvbGxhdG9yOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxl
Y3Rpb25Hcm91cEFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KaW5kZXggOWJkNTY0ODQw
YzI4MmFmNTdhMTBkNGU0ZGNiZTg3NTczNGJjODI2YS4uYjQxOWI2MGQ5OGUzNjZkYjQ3ZGM3MDU3
ZWJkMjU3NjhkYzNkNjkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlv
bkdyb3VwQVZGT2JqQy5tbQpAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgTWVkaWFTZWxlY3Rpb25H
cm91cEFWRk9iakM6OnVwZGF0ZU9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGNoYXJhY3Rl
cmlzCiAgICAgICAgIHJldHVybjsKIAogICAgIE5TQXJyYXkqIGZpbHRlcmVkT3B0aW9ucyA9IFtQ
QUw6OmdldEFWTWVkaWFTZWxlY3Rpb25Hcm91cENsYXNzKCkgbWVkaWFTZWxlY3Rpb25PcHRpb25z
RnJvbUFycmF5OlttX21lZGlhU2VsZWN0aW9uR3JvdXAgb3B0aW9uc10KLSAgICAgICAgZmlsdGVy
ZWRBbmRTb3J0ZWRBY2NvcmRpbmdUb1ByZWZlcnJlZExhbmd1YWdlczpjcmVhdGVOU0FycmF5KHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSkuZ2V0KCldOworICAgICAgICBmaWx0ZXJlZEFuZFNvcnRl
ZEFjY29yZGluZ1RvUHJlZmVycmVkTGFuZ3VhZ2VzOmNyZWF0ZU5TQXJyYXkodXNlclByZWZlcnJl
ZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6Tm8pKS5nZXQoKV07CiAKICAgICBp
ZiAoIVtmaWx0ZXJlZE9wdGlvbnMgY291bnRdICYmIGNoYXJhY3RlcmlzdGljcy5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCBiMzA5NGJhZmRlYzcyNzQ3ZTNhODBlNjEzODkxZWJmZWQyY2VlNDM4Li5h
YTE4MWY0NjZmZWRiZmYzMWE1MDRiN2QzOWQ3ZGFlMGQwNjU4OWQzIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEt
MDUtMjIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtNb2Rl
cm4gTWVkaWEgQ29udHJvbHNdIFJFR1JFU1NJT04ocjI1NDM4OSkgbWVkaWEgY29udHJvbHMgbmVl
ZHMgdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBmb3Igb3JkZXJpbmcgdHJh
Y2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYw
MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NmL0xhbmd1YWdlLmNwcDogQWRkZWQuCisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNULkxhbmd1YWdlLlNob3VsZE1pbmltaXplTGFuZ3VhZ2VzWWVzKToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QuTGFuZ3VhZ2UuU2hvdWxkTWluaW1pemVMYW5n
dWFnZXNObyk6CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RX
VEYueGNjb25maWc6CisgICAgICAgIExpbmsgYEludGVybmF0aW9uYWxTdXBwb3J0YCBhcyB0aGF0
J3Mgd2hlcmUgdGhlIGBOU0xvY2FsZWAgZXh0ZW5zaW9ucyBhcmUgaW1wbGVtZW50ZWQuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMS0wNS0yMSAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUnVuIGxheW91dCB0ZXN0cyBpbiBzdHJlc3MgbW9kZSBmb3IgMTAgaXRlcmF0
aW9ucyBvbiByZWd1bGFyIEVXUyBsYXlvdXQtdGVzdCBxdWV1ZXMKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdURi54Y2NvbmZpZyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdURi54Y2NvbmZpZwppbmRleCBlNmEyOTc3
ZmI0NTJkOGEyNjJmMzc0NGI0NWNmYTVhNWY5MzM4MmQxLi42MmFlMDc1YzdlYjhmNjU3MDg5OWE5
MmNhZjEyM2VkODIyYjBiMTgwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZp
Z3VyYXRpb25zL1Rlc3RXVEYueGNjb25maWcKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25m
aWd1cmF0aW9ucy9UZXN0V1RGLnhjY29uZmlnCkBAIC0yOSwxMCArMjksMTMgQEAgR0NDX0VOQUJM
RV9PQkpDX0VYQ0VQVElPTlMgPSBZRVM7CiAKIEdDQ19QUkVQUk9DRVNTT1JfREVGSU5JVElPTlMg
PSAkKGluaGVyaXRlZCkgQlVJTERJTkdfVEVTVF9XVEYgR1RFU1RfQVBJXz0KIAorLy8gTmVlZGVk
IGJ5IGBTb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1tYC4KK1dLX0lOVEVSTkFU
SU9OQUxfU1VQUE9SVF9MREZMQUdTID0gLWZyYW1ld29yayBJbnRlcm5hdGlvbmFsU3VwcG9ydDsK
KwogV0tfVUlLSVRNQUNIRUxQRVJfTERGTEFHUyA9ICQoV0tfVUlLSVRNQUNIRUxQRVJfTERGTEFH
U18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIFdLX1VJS0lUTUFDSEVMUEVSX0xERkxBR1NfbWFjY2F0
YWx5c3QgPSAtZnJhbWV3b3JrIFVJS2l0TWFjSGVscGVyOwogCi1PVEhFUl9MREZMQUdTID0gJChp
bmhlcml0ZWQpIC1sZ3Rlc3QgLWZvcmNlX2xvYWQgJChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlRl
c3RXVEYuYSAkKFdLX1VJS0lUTUFDSEVMUEVSX0xERkxBR1MpICQoT1RIRVJfTERGTEFHU19QTEFU
Rk9STV8kKFdLX0NPQ09BX1RPVUNIKSk7CitPVEhFUl9MREZMQUdTID0gJChpbmhlcml0ZWQpIC1s
Z3Rlc3QgLWZvcmNlX2xvYWQgJChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlRlc3RXVEYuYSAkKFdL
X0lOVEVSTkFUSU9OQUxfU1VQUE9SVF9MREZMQUdTKSAkKFdLX1VJS0lUTUFDSEVMUEVSX0xERkxB
R1MpICQoT1RIRVJfTERGTEFHU19QTEFURk9STV8kKFdLX0NPQ09BX1RPVUNIKSk7CiBPVEhFUl9M
REZMQUdTX1BMQVRGT1JNXyA9IC1mcmFtZXdvcmsgQ29jb2EgLWZyYW1ld29yayBDYXJib247CiAK
IC8vIEZJWE1FOiBUaGlzIHNob3VsZCBub3QgYmUgYnVpbHQgb24gaU9TLiBJbnN0ZWFkIHdlIHNo
b3VsZCBjcmVhdGUgYW5kIHVzZSBhIFRlc3RXVEYgYXBwbGljYXRpb24uCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDNiYjhlYmI2MmI1ZjYzNTllNWMyODcxYjhmNWVkNWZhMGZkMGNjNmQuLmYx
NjYwYzdlNWMyYTM1MzhjZTFhMDQ4YzNlMjFkOTEwOGYzYjFlMGMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC04NzksNiArODc5LDcgQEAKIAkJOTUwOTVGMjAyNjJGRkZBNTAwMDBEOTIwIC8q
IFNhbXBsZWRQYWdlVG9wQ29sb3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NTA5NUYxRjI2MkZGRkE1MDAwMEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BD
b2xvci5tbSAqLzsgfTsKIAkJOTUwRTRDQzEyNTJFNzUyNDAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1
cHBvcnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NTBFNENDMDI1MkU3NTIzMDA3MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5tbSAqLzsgfTsKIAkJ
OTUzQUJCMzUyNUMwRDY4MjAwNEM4QjczIC8qIFdLV2ViVmlld1VuZGVyUGFnZUJhY2tncm91bmRD
b2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1
M0FCQjM0MjVDMEQ2ODEwMDRDOEI3MyAvKiBXS1dlYlZpZXdVbmRlclBhZ2VCYWNrZ3JvdW5kQ29s
b3IubW0gKi87IH07CisJCTk1NEU0MTMwMjY1NkUwNjgwMDQ1NUQ0RiAvKiBMYW5ndWFnZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTRFNDEyRTI2
NTZFMDYzMDA0NTVENEYgLyogTGFuZ3VhZ2UuY3BwICovOyB9OwogCQk5NUE1MjQ5NTI1ODFBMTBE
MDA0NjFGRTkgLyogV0tXZWJWaWV3VGhlbWVDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QTUyNDk0MjU4MUExMEQwMDQ2MUZFOSAvKiBXS1dl
YlZpZXdUaGVtZUNvbG9yLm1tICovOyB9OwogCQk5NUI2QjNCNzI1MUVCRjJGMDBGQzQzODIgLyog
TWVkaWFEb2N1bWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk1QjZCM0I2MjUxRUJGMkYwMEZDNDM4MiAvKiBNZWRpYURvY3VtZW50Lm1tICovOyB9
OwogCQk5OTg0RkFDQzFDRkZBRjYwMDA4RDE5OEMgLyogV0tXZWJWaWV3VGV4dElucHV0Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk4NEZBQ0ExQ0ZG
QUVFRTAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSAqLzsgfTsKQEAgLTI1ODcsNiAr
MjU4OCw3IEBACiAJCTk1MDk1RjFGMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENv
bG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2FtcGxlZFBh
Z2VUb3BDb2xvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwRTRDQzAyNTJF
NzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBpT1NTdHlsdXNTdXBwb3J0Lm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5NTNBQkIzNDI1QzBENjgxMDA0QzhCNzMgLyogV0tXZWJWaWV3VW5kZXJQ
YWdlQmFja2dyb3VuZENvbG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV0tXZWJWaWV3VW5kZXJQYWdlQmFja2dyb3VuZENvbG9yLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5NTRFNDEyRTI2NTZFMDYzMDA0NTVENEYgLyogTGFuZ3VhZ2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGFuZ3VhZ2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUE1MjQ5NDI1ODFBMTBEMDA0NjFGRTkgLyogV0tX
ZWJWaWV3VGhlbWVDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdLV2ViVmlld1RoZW1lQ29sb3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk1QjZCM0I2MjUxRUJGMkYwMEZDNDM4MiAvKiBNZWRpYURvY3VtZW50Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFEb2N1bWVudC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk4NEZBQ0ExQ0ZGQUVFRTAwOEQxOThDIC8qIFdLV2ViVmll
d1RleHRJbnB1dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdL
V2ViVmlld1RleHRJbnB1dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4MTks
NiArNDgyMSw3IEBACiAJCUMwOTkxQzRGMTQzQzdENjgwMDc5OThGMiAvKiBjZiAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOTU0RTQxMkUyNjU2RTA2MzAw
NDU1RDRGIC8qIExhbmd1YWdlLmNwcCAqLywKIAkJCQlCQzAyOUIxNjE0ODZBRDY0MDA4MTdEQTkg
LyogUmV0YWluUHRyLmNwcCAqLywKIAkJCQlDMDk5MUM1MDE0M0M3RDY4MDA3OTk4RjIgLyogUmV0
YWluUHRySGFzaGluZy5jcHAgKi8sCiAJCQkpOwpAQCAtNTIwMCw2ICs1MjAzLDcgQEAKIAkJCQk1
M0ZDREU2QjIyOUVGRkI5MDA1OThFQ0YgLyogSXNvSGVhcC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3Q0VCNjJBQjIyMzYwOURFMDA2OUNCQjAgLyogSXRlcmF0b3JSYW5nZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3QTA1MDk0MTFGQjlGMDY0MDBCMzNGQjggLyogSlNPTlZhbHVlLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTk1NEU0MTMwMjY1NkUwNjgwMDQ1NUQ0RiAvKiBMYW5ndWFnZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MzFDMUQ4RTFERjhFRjcyMDA2RTk3OUYgLyogTEVCRGVjb2Rl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdENTRGOTFGMzM5N0I0MDBBOTdBQTcgLyogTGlm
ZWN5Y2xlTG9nZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRTJDNTU1MUZEMzIwNDEwMEUx
REY2QSAvKiBMaW5lRW5kaW5nLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvTGFuZ3VhZ2UuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvY2YvTGFuZ3VhZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlYjQ2NWQwNmE5NmE1
OTE4YjczZWNlZjhkNzhjYWViZTI2ZmM1ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9jZi9MYW5ndWFnZS5jcHAKQEAgLTAsMCArMSw5MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5o
PgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFt
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJIHsKKworVEVTVChMYW5ndWFnZSwgU2hvdWxkTWluaW1pemVMYW5ndWFnZXNZZXMpCit7
CisgICAgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHsgfSk7CisgICAgV1RGOjpvdmVy
cmlkZUluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNGb3JUZXN0aW5nKHsgImVu
LVVTIl9zLCAiZXMtVVMiX3MsICJmci1VUyJfcyB9KTsKKworICAgIGF1dG8gbGFuZ3VhZ2VzID0g
dXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzKTsKKwor
ICAgIGF1dG8gZW5nbGlzaFVTSW5kZXggPSBsYW5ndWFnZXMuZmluZCgiZW4tVVMiX3MpOworICAg
IGF1dG8gZW5nbGlzaEluZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImVuIl9zKTsKKyAgICBhdXRvIHNw
YW5pc2hVU0luZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImVzLVVTIl9zKTsKKyAgICBhdXRvIHNwYW5p
c2hJbmRleCA9IGxhbmd1YWdlcy5maW5kKCJlcyJfcyk7CisgICAgYXV0byBmcmVuY2hVU0luZGV4
ID0gbGFuZ3VhZ2VzLmZpbmQoImZyLVVTIl9zKTsKKyAgICBhdXRvIGZyZW5jaEluZGV4ID0gbGFu
Z3VhZ2VzLmZpbmQoImZyIl9zKTsKKworICAgIEVYUEVDVF9UUlVFKGVuZ2xpc2hVU0luZGV4ICE9
IG5vdEZvdW5kIHx8IGVuZ2xpc2hJbmRleCAhPSBub3RGb3VuZCk7CisgICAgRVhQRUNUX0VRKHNw
YW5pc2hVU0luZGV4LCBub3RGb3VuZCk7CisgICAgRVhQRUNUX0VRKHNwYW5pc2hJbmRleCwgbm90
Rm91bmQpOworICAgIEVYUEVDVF9FUShmcmVuY2hVU0luZGV4LCBub3RGb3VuZCk7CisgICAgRVhQ
RUNUX0VRKGZyZW5jaEluZGV4LCBub3RGb3VuZCk7CisKKyAgICBXVEY6Om92ZXJyaWRlSW5pdGlh
bFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0ZvclRlc3RpbmcoeyB9KTsgLy8gY2xlYW51
cAorfQorCitURVNUKExhbmd1YWdlLCBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlc05vKQoreworICAg
IG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyh7IH0pOworICAgIFdURjo6b3ZlcnJpZGVJ
bml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRm9yVGVzdGluZyh7ICJlbi1VUyJf
cywgImVzLVVTIl9zLCAiZnItVVMiX3MgfSk7CisKKyAgICBhdXRvIGxhbmd1YWdlcyA9IHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKTsKKworICAgIGF1
dG8gZW5nbGlzaFVTSW5kZXggPSBsYW5ndWFnZXMuZmluZCgiZW4tVVMiX3MpOworICAgIGF1dG8g
ZW5nbGlzaEluZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImVuIl9zKTsKKyAgICBhdXRvIHNwYW5pc2hV
U0luZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImVzLVVTIl9zKTsKKyAgICBhdXRvIHNwYW5pc2hJbmRl
eCA9IGxhbmd1YWdlcy5maW5kKCJlcyJfcyk7CisgICAgYXV0byBmcmVuY2hVU0luZGV4ID0gbGFu
Z3VhZ2VzLmZpbmQoImZyLVVTIl9zKTsKKyAgICBhdXRvIGZyZW5jaEluZGV4ID0gbGFuZ3VhZ2Vz
LmZpbmQoImZyIl9zKTsKKworICAgIEVYUEVDVF9ORShlbmdsaXNoVVNJbmRleCwgbm90Rm91bmQp
OworICAgIGlmIChlbmdsaXNoSW5kZXggIT0gbm90Rm91bmQpIHsKKyAgICAgICAgRVhQRUNUX0dU
KGVuZ2xpc2hJbmRleCwgZW5nbGlzaFVTSW5kZXgpOworICAgICAgICBFWFBFQ1RfTFQoZW5nbGlz
aEluZGV4LCBzcGFuaXNoVVNJbmRleCk7CisgICAgfQorICAgIEVYUEVDVF9ORShzcGFuaXNoVVNJ
bmRleCwgbm90Rm91bmQpOworICAgIEVYUEVDVF9HVChzcGFuaXNoVVNJbmRleCwgZW5nbGlzaFVT
SW5kZXgpOworICAgIGlmIChzcGFuaXNoSW5kZXggIT0gbm90Rm91bmQpIHsKKyAgICAgICAgRVhQ
RUNUX0dUKHNwYW5pc2hJbmRleCwgc3BhbmlzaFVTSW5kZXgpOworICAgICAgICBFWFBFQ1RfTFQo
c3BhbmlzaEluZGV4LCBmcmVuY2hVU0luZGV4KTsKKyAgICB9CisgICAgRVhQRUNUX05FKGZyZW5j
aFVTSW5kZXgsIG5vdEZvdW5kKTsKKyAgICBFWFBFQ1RfR1QoZnJlbmNoVVNJbmRleCwgc3Bhbmlz
aFVTSW5kZXgpOworICAgIGlmIChmcmVuY2hJbmRleCAhPSBub3RGb3VuZCkKKyAgICAgICAgRVhQ
RUNUX0dUKGZyZW5jaEluZGV4LCBmcmVuY2hVU0luZGV4KTsKKworICAgIFdURjo6b3ZlcnJpZGVJ
bml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRm9yVGVzdGluZyh7IH0pOyAvLyBj
bGVhbnVwCit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429441</attachid>
            <date>2021-05-22 16:48:15 -0700</date>
            <delta_ts>2021-05-22 22:34:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226038-20210522174814.patch</filename>
            <type>text/plain</type>
            <size>48249</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDZjYTg2Njk0N2ZjZDg4YTAyZjQxY2JmMDQ5M2Uy
MTUzMzAzYTA3M2UuLjgzMTMzZThhZjI1MDMzMjI5OTUyMDE1NjA2MTBlMzNjYWNjYzkzOGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA1LTIyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENv
bnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxs
IGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWEgY29udHJvbHMg
bmVlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBpbiBv
cmRlciB0byBwcm9wZXJseQorICAgICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNrcyBp
biB0aGUgY29udHJvbHMgVUkuIEZvciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3VidGl0
bGVzCisgICAgICAgIGZvciBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhlIHVz
ZXIgaGFzIEVuZ2xpc2ggKGRlZmF1bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAgICAg
Y29uZmlndXJlZCBpbiB0aGUgTGFuZ3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJlZmVy
ZW5jZXMgb24gbWFjT1MsIFdlYktpdCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRpdGxl
cyBsaXN0IEVuZ2xpc2gsIEZyZW5jaCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3Bw
OgorICAgICAgICAoSlNDOjpkZWZhdWx0TG9jYWxlKToKKyAgICAgICAgVXBkYXRlIHVzYWdlIG9m
IGBXVEY6OmRlZmF1bHRMYW5ndWFnZWAgdG8gYWxzbyBoYXZlIGBXVEY6OlNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzYC4KKworICAgICAgICAqIHNoZWxsL3BsYXlzdGF0aW9uL1Rlc3RTaGVsbC5jcHA6
CisgICAgICAgIChwcmVUZXN0KToKKyAgICAgICAgSW5zdGVhZCBvZiBwcm9wYWdhdGluZyB0aGUg
b3ZlcnJpZGUsIGp1c3QgY2xlYXIgaXQgb3V0LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
QmFzZS54Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54
Y2NvbmZpZzoKKyAgICAgICAgTGluayBgSW50ZXJuYXRpb25hbFN1cHBvcnRgIGFzIHRoYXQncyB3
aGVyZSB0aGUgYE5TTG9jYWxlYCBleHRlbnNpb25zIGFyZSBpbXBsZW1lbnRlZC4KKwogMjAyMS0w
NS0yMSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRo
ZSB1bm5lY2Vzc2FyeSB1c2Ugb2YgQ29tcGlsZU9wU3RyaWN0RXFUeXBlLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBkMDUzYjM4
NGEwY2RmYzNjYTZjMDAzNjA1ODNlNzNhYjllNGVhNzdmLi4zYzE1NDhlNGQxMDM2OGFiNDA1ZjM2
NGEwZWQ3YjZhZmY4YjQzN2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTA1LTIyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENv
bnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxs
IGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWEgY29udHJvbHMg
bmVlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBpbiBv
cmRlciB0byBwcm9wZXJseQorICAgICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNrcyBp
biB0aGUgY29udHJvbHMgVUkuIEZvciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3VidGl0
bGVzCisgICAgICAgIGZvciBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhlIHVz
ZXIgaGFzIEVuZ2xpc2ggKGRlZmF1bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAgICAg
Y29uZmlndXJlZCBpbiB0aGUgTGFuZ3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJlZmVy
ZW5jZXMgb24gbWFjT1MsIFdlYktpdCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRpdGxl
cyBsaXN0IEVuZ2xpc2gsIEZyZW5jaCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAgICAgICAqIHd0
Zi9MYW5ndWFnZS5oOgorICAgICAgICAqIHd0Zi9MYW5ndWFnZS5jcHA6CisgICAgICAgIChXVEY6
OmNhY2hlZEZ1bGxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcyk6IEFkZGVkLgorICAgICAgICAo
V1RGOjpjYWNoZWRNaW5pbWl6ZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcyk6IEFkZGVkLgor
ICAgICAgICAoV1RGOjpsYW5ndWFnZURpZENoYW5nZSk6CisgICAgICAgIChXVEY6OmRlZmF1bHRM
YW5ndWFnZSk6CisgICAgICAgIChXVEY6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAg
ICAoV1RGOjppbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3Rp
bmcpOiBBZGRlZC4KKyAgICAgICAgKFdURjo6aW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlc092ZXJyaWRlRm9yVGVzdGluZyk6IEFkZGVkLgorICAgICAgICAoV1RGOjpvdmVycmlk
ZUluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNGb3JUZXN0aW5nKTogQWRkZWQu
CisgICAgICAgIChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2VEaWRDaGFuZ2UpOiBEZWxldGVkLgorICAg
ICAgICBNb3ZlIHRoZSBjYWNoaW5nIGluIGB3dGYvY2YvTGFuZ3VhZ2VDRi5jcHBgIHRvIGB3dGYv
TGFuZ3VhZ2UuY3BwYCBzbyB0aGF0IGFsbCBwbGF0Zm9ybXMgY2FuCisgICAgICAgIGJlbmVmaXQg
ZnJvbSBjYWNoaW5nIHRoZSByZXN1bHQgb2YgYHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
c2AuCisKKyAgICAgICAgKiB3dGYvY2YvTGFuZ3VhZ2VDRi5jcHA6CisgICAgICAgIChXVEY6OnBs
YXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgIChXVEY6OnBsYXRmb3JtTGFu
Z3VhZ2VEaWRDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9jb2NvYS9MYW5ndWFnZUNv
Y29hLm1tOgorICAgICAgICAoV1RGOjpiYXNlTGFuZ3VhZ2VGcm9tTGFuZ3VhZ2UpOiBBZGRlZC4K
KyAgICAgICAgKiB3dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5jcHA6CisgICAg
ICAgIChXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgICogd3Rm
L3NwaS9jb2NvYS9OU0xvY2FsZVNQSS5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5p
eC5jcHA6CisgICAgICAgIChXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6Cisg
ICAgICAgICogd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHA6CisgICAgICAgIChXVEY6OnBsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgIEFkZCBgV1RGOjpTaG91bGRNaW5pbWl6
ZUxhbmd1YWdlc2AgdGhhdCBjb250cm9scyB3aGV0aGVyIGBXVEY6Om1pbmltaXplZFByZWZlcnJl
ZExhbmd1YWdlc2AKKyAgICAgICAgaXMgY2FsbGVkLiBTaW5jZSB0aGUgcmVzdWx0IGlzIGNhY2hl
ZCwgY3JlYXRlIHNlcGFyYXRlIGBWZWN0b3I8U3RyaW5nPmAgZm9yIGVhY2ggZW51bSB2YWx1ZS4K
KwogMjAyMS0wNS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IFVzZSBDaGVja2VkQ29uZGl0aW9uIGluIG1vcmUgcGxhY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWQzYTE0
ZTFlOGEzYmEyZTU0Mjc5YTAzY2EwMjUwMzYyYTEzOTIyYS4uNTQzNGIzYmE0NTNmMzk1MzFlNDg1
Y2JiYjNhMjhhMTg4ZTE3ZmIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTA1
LTIyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJu
IE1lZGlhIENvbnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRz
IHRoZSBmdWxsIGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNr
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWEg
Y29udHJvbHMgbmVlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJl
bmNlcyBpbiBvcmRlciB0byBwcm9wZXJseQorICAgICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9m
IHRyYWNrcyBpbiB0aGUgY29udHJvbHMgVUkuIEZvciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBo
YXMgc3VidGl0bGVzCisgICAgICAgIGZvciBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBh
bmQgdGhlIHVzZXIgaGFzIEVuZ2xpc2ggKGRlZmF1bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkK
KyAgICAgICAgY29uZmlndXJlZCBpbiB0aGUgTGFuZ3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0
ZW0gUHJlZmVyZW5jZXMgb24gbWFjT1MsIFdlYktpdCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhl
IHN1YnRpdGxlcyBsaXN0IEVuZ2xpc2gsIEZyZW5jaCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAg
ICAgICBUZXN0czogTGFuZ3VhZ2UuU2hvdWxkTWluaW1pemVMYW5ndWFnZXNZZXMKKyAgICAgICAg
ICAgICAgIExhbmd1YWdlLlNob3VsZE1pbmltaXplTGFuZ3VhZ2VzTm8KKworICAgICAgICAqIHBh
Z2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9u
VXNlclByZWZlcmVuY2VzOjpwcmVmZXJyZWRMYW5ndWFnZXMgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6dGV4dFRyYWNrU2VsZWN0aW9uU2NvcmUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJpbWFyeUF1
ZGlvVHJhY2tMYW5ndWFnZU92ZXJyaWRlIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0NhcHRpb25V
c2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2Vy
UHJlZmVyZW5jZXNNZWRpYUFGOjpwcmVmZXJyZWRMYW5ndWFnZXMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6YnVpbGREaXNwbGF5U3RyaW5nRm9yVHJhY2tCYXNlKToKKyAgICAgICAgKFdlYkNv
cmU6OnRleHRUcmFja0NvbXBhcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDOjp1cGRhdGVPcHRpb25zKToKKworICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29y
a2xldEdsb2JhbFNjb3BlQmFzZS5jcHA6CisgICAgICAgIFdyYXAgYGRlZmF1bHRMYW5ndWFnZWAg
aW4gYSBsYW1iZGEgc2luY2UgaXQgbm93IGhhcyBhIHBhcmFtZXRlci4KKwogMjAyMS0wNS0yMSAg
U2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWxsIE5ldGZsaXggcGxh
eWJhY2sgZmFpbHMgYWZ0ZXIgcjI3Nzc0MApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCA4OGQzZDRlOTk0MjU3NmViMDJmMTE4
M2FmYjcxNDU2NWIyODQ4M2E3Li43MjJiMGY5NTE3YzA2OWFiN2Q4MDgxZmU4NzkyY2NkNGJiNmJh
NjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvQmFz
ZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvQmFz
ZS54Y2NvbmZpZwpAQCAtMTU0LDcgKzE1NCw4IEBAIFNUUklQX0lOU1RBTExFRF9QUk9EVUNUW2Nv
bmZpZz1EZWJ1Z10gPSBOTzsKIAogU0RLUk9PVCA9IG1hY29zeC5pbnRlcm5hbDsKIAotT1RIRVJf
Q1BMVVNQTFVTRkxBR1MgPSAkKGluaGVyaXRlZCkgLWlzeXN0ZW0gJChTREtST09UKS9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL1N5c3RlbS5mcmFtZXdvcmsvUHJpdmF0ZUhlYWRlcnM7CitPVEhF
Ul9DRkxBR1MgPSAkKGluaGVyaXRlZCkgLWlmcmFtZXdvcmsgJChTREtST09UKSQoU1lTVEVNX0xJ
QlJBUllfRElSKS9Qcml2YXRlRnJhbWV3b3JrczsKK09USEVSX0NQTFVTUExVU0ZMQUdTID0gJChP
VEhFUl9DRkxBR1MpIC1pc3lzdGVtICQoU0RLUk9PVCkvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr
cy9TeXN0ZW0uZnJhbWV3b3JrL1ByaXZhdGVIZWFkZXJzOwogCiBXS19VU0VfT1ZFUlJJREVfRlJB
TUVXT1JLU19ESVIgPSAkKFdLX05PVF8kKFdLX0VNUFRZXyQoV0tfT1ZFUlJJREVfRlJBTUVXT1JL
U19ESVIpKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0
aW9ucy9KYXZhU2NyaXB0Q29yZS54Y2NvbmZpZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25m
aWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54Y2NvbmZpZwppbmRleCA2ZGY4ZjAwYjQyYzMwM2Q0
ZjI2ODBmYzY5ZDAyMTM1MTI2YWY0YzA0Li5hMDY3MjZhZTEwODNlZTMxYTBmNmE0MWRmYzZhNzVm
NDI0M2MzOTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlv
bnMvSmF2YVNjcmlwdENvcmUueGNjb25maWcKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Nv
bmZpZ3VyYXRpb25zL0phdmFTY3JpcHRDb3JlLnhjY29uZmlnCkBAIC0yNiwxMCArMjYsMTUgQEAK
IERFRklORVNfTU9EVUxFID0gWUVTOwogTU9EVUxFTUFQX0ZJTEUgPSAkKFNSQ1JPT1QpL0phdmFT
Y3JpcHRDb3JlLm1vZHVsZW1hcDsKIAorU1lTVEVNX0ZSQU1FV09SS19TRUFSQ0hfUEFUSFMgPSAk
KGluaGVyaXRlZCkgJChTREtST09UKSQoU1lTVEVNX0xJQlJBUllfRElSKS9Qcml2YXRlRnJhbWV3
b3JrcyAkKFNES1JPT1QpJChTWVNURU1fTElCUkFSWV9ESVIpL0ZyYW1ld29ya3M7CisKIC8vIFBy
ZXZlbnQgQysrIHN0YW5kYXJkIGxpYnJhcnkgb3BlcmF0b3IgbmV3LCBkZWxldGUgYW5kIHRoZWly
IHJlbGF0ZWQgZXhjZXB0aW9uIHR5cGVzIGZyb20gYmVpbmcgZXhwb3J0ZWQgYXMgd2VhayBzeW1i
b2xzLgogT1RIRVJfTERGTEFHU19ISURFX1NZTUJPTFMgPSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
LF9fWlRJU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVElTdDlleGNlcHRp
b24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pUU1N0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0
ZWRfc3ltYm9sLF9fWlRTU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aZGxQ
dlNfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19abndtUHYgLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCxfX1pOS1N0M19fMThmdW5jdGlvbklGdnZFRWNsRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxf
X1pOU3QzX18xOGZ1bmN0aW9uSUZ2dkVFQzFFT1MyXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9f
Wk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVDMkVPUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19a
TktTdDNfXzE4ZnVuY3Rpb25JRnZSTjNKU0MxN0J5dGVjb2RlR2VuZXJhdG9yRVBOUzFfMTBSZWdp
c3RlcklERUVFY2xFUzNfUzVfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMThmdW5j
dGlvbklGdlJOM0pTQzE3Qnl0ZWNvZGVHZW5lcmF0b3JFUE5TMV8xMFJlZ2lzdGVySURFRUVEMUV2
IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMThmdW5jdGlvbklGdlJOM0pTQzE3Qnl0
ZWNvZGVHZW5lcmF0b3JFUE5TMV8xMFJlZ2lzdGVySURFRUVEMkV2IC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wsX19aTlN0M19fMThmdW5jdGlvbklGdnZFRUQxRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2dkVFRDJFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9f
WlRWTlN0M19fMTE3YmFkX2Z1bmN0aW9uX2NhbGxFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19a
TlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJUEtjUzRf
Y0xiMUVFMTFfX3JhbmdlX2VuZEVTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18x
NF9fZnMxMGZpbGVzeXN0ZW0yNF9faXNfcGF0aGFibGVfY2hhcl9hcnJheUlQS2NTNF9jTGIxRUUx
M19fcmFuZ2VfYmVnaW5FUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2Zz
MTBmaWxlc3lzdGVtOF9QYXRoQ1ZUSWNFMTRfX2FwcGVuZF9yYW5nZUlQS2NFRU5TXzllbmFibGVf
aWZJWHNyMjdfX2lzX2NwcDE3X2ZvcndhcmRfaXRlcmF0b3JJVF9FRTV2YWx1ZUV2RTR0eXBlRVJO
U18xMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVF
UzhfUzhfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVt
OF9QYXRoQ1ZUSWNFMTVfX2FwcGVuZF9zb3VyY2VJUEtjRUV2Uk5TXzEyYmFzaWNfc3RyaW5nSWNO
U18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVSS1RfIC1XbCwtdW5leHBvcnRl
ZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtOF9QYXRoQ1ZUSWNFMTRfX2FwcGVu
ZF9yYW5nZUlQS2NFRU5TXzllbmFibGVfaWZJWHNyMjFfX2lzX2ZvcndhcmRfaXRlcmF0b3JJVF9F
RTV2YWx1ZUV2RTR0eXBlRVJOU18xMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVO
U185YWxsb2NhdG9ySWNFRUVFUzhfUzhfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTktTdDNf
XzE0X19mczEwZmlsZXN5c3RlbTE4ZGlyZWN0b3J5X2l0ZXJhdG9yZGVFdiAtV2wsLXVuZXhwb3J0
ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTE4ZGlyZWN0b3J5X2l0ZXJhdG9y
cHBFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTI0
X19pc19wYXRoYWJsZV9jaGFyX2FycmF5SUExMF9jUGNjTGIxRUUxMV9fcmFuZ2VfZW5kRVBLYyAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTI0X19pc19w
YXRoYWJsZV9jaGFyX2FycmF5SUExMF9jUGNjTGIxRUUxM19fcmFuZ2VfYmVnaW5FUEtjIC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtNHBhdGhkVkVSS1My
XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbThfUGF0
aENWVEljRTE1X19hcHBlbmRfc291cmNlSUExMF9jRUV2Uk5TXzEyYmFzaWNfc3RyaW5nSWNOU18x
MWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVSS1RfIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX3Rocm93X2ZpbGVzeXN0ZW1fZXJy
b3JJSlJQS2NSS05TMV80cGF0aEVSS05TXzEwZXJyb3JfY29kZUVFRUV2RHBPVF8gLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0xNF9faXNfc2VwYXJhdG9y
SWNFRU5TXzllbmFibGVfaWZJWHNyMThfX2Nhbl9jb252ZXJ0X2NoYXJJVF9FRTV2YWx1ZUViRTR0
eXBlRVM0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3Rl
bTI0X19pc19wYXRoYWJsZV9jaGFyX2FycmF5SVBLY1M0X2NMYjFFRTE1X19maXJzdF9vcl9udWxs
RVM0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTRw
YXRoMjBfX3NvdXJjZV9pc19hYnNvbHV0ZUljRUViVF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxf
X1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW00cGF0aDZhcHBlbmRJUEtjRUVOU185ZW5hYmxlX2lm
SVhzcjEzX19pc19wYXRoYWJsZUlUX0VFNXZhbHVlRVJTMl9FNHR5cGVFUktTN18gLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW02dThwYXRoSVBLY0VFTlNf
OWVuYWJsZV9pZklYc3IxM19faXNfcGF0aGFibGVJVF9FRTV2YWx1ZUVOUzFfNHBhdGhFRTR0eXBl
RVJLUzZfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTktTdDNfXzE0X19mczEwZmlsZXN5c3Rl
bTE4ZGlyZWN0b3J5X2l0ZXJhdG9ycHRFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNf
XzE0X19mczEwZmlsZXN5c3RlbTE4ZGlyZWN0b3J5X2l0ZXJhdG9yOWluY3JlbWVudEVSTlNfMTBl
cnJvcl9jb2RlRTsKIAotT1RIRVJfTERGTEFHU19CQVNFID0gJChPVEhFUl9MREZMQUdTX0hJREVf
U1lNQk9MUykgLWZvcmNlX2xvYWQgIiQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9KYXZhU2NyaXB0Q29yZS9saWJXVEYuYSI7CisvLyBOZWVkZWQgYnkgYFNvdXJjZS9XVEYvd3Rm
L2NvY29hL0xhbmd1YWdlQ29jb2EubW1gLgorV0tfSU5URVJOQVRJT05BTF9TVVBQT1JUX0xERkxB
R1MgPSAtZnJhbWV3b3JrIEludGVybmF0aW9uYWxTdXBwb3J0OworCitPVEhFUl9MREZMQUdTX0JB
U0UgPSAkKE9USEVSX0xERkxBR1NfSElERV9TWU1CT0xTKSAtaWZyYW1ld29yayAkKFNES19ESVIp
JChTWVNURU1fTElCUkFSWV9ESVIpL1ByaXZhdGVGcmFtZXdvcmtzIC1mb3JjZV9sb2FkICIkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvbGliV1RGLmEi
ICQoV0tfSU5URVJOQVRJT05BTF9TVVBQT1JUX0xERkxBR1MpOwogT1RIRVJfTERGTEFHU1tzZGs9
ZW1iZWRkZWQqXSA9ICQoaW5oZXJpdGVkKSAkKE9USEVSX0xERkxBR1NfQkFTRSk7CiBPVEhFUl9M
REZMQUdTW3Nkaz1tYWNvc3gqXSA9ICQoaW5oZXJpdGVkKSAkKE9USEVSX0xERkxBR1NfQkFTRSkg
LWZyYW1ld29yayBDb3JlU2VydmljZXM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9zaGVsbC9wbGF5c3RhdGlvbi9UZXN0U2hlbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3NoZWxsL3BsYXlzdGF0aW9uL1Rlc3RTaGVsbC5jcHAKaW5kZXggMjc4MmZkYTA4OTg2NWRj
ZjBlMmY3YzFkYjI5MzMxNTEyODk0ZGU0OS4uMzFmZWFmN2VjNThmNzk1ZjhjM2RiYjc3ZDlmOTU3
YzMzZjYyZmMzMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL3BsYXlz
dGF0aW9uL1Rlc3RTaGVsbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL3Bs
YXlzdGF0aW9uL1Rlc3RTaGVsbC5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgZXh0ZXJuICJDIiB2b2lk
IHByZVRlc3QoKQogICAgIEpTQzo6T3B0aW9uczo6bmFtZV8oKSA9IG9yaWcjI25hbWVfOwogICAg
IEZPUl9FQUNIX0pTQ19PUFRJT04oSU5JVF9PUFRJT04pCiAjdW5kZWYgSU5JVF9PUFRJT04KLSAg
ICBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMocGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFu
Z3VhZ2VzKCkpOworICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyh7IH0pOwogfQog
CiBleHRlcm4gIkMiIGludCBydW5UZXN0KGludCBhcmdjLCBjaGFyKiBhcmd2W10pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFn
ZS5jcHAKaW5kZXggYmU2MjU4ZDg1N2U1OTg4Zjk2OTgzOTAyMDJiY2M5M2MzYzE3ODIwZi4uNzAx
Njk2MjA1MmZiYThhZTNkOTkxZTJhMGFmMDdjMmI1MTdhM2JmNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvTGFuZ3VhZ2UuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcApA
QCAtMzcsNiArMzcsMTggQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKK3N0YXRpYyBDaGVja2VkTG9j
ayBjYWNoZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc0xvY2s7CitzdGF0aWMgVmVjdG9yPFN0
cmluZz4mIGNhY2hlZEZ1bGxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpIFdURl9SRVFVSVJF
U19MT0NLKGNhY2hlZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzTG9jaykKK3sKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+IGxhbmd1YWdlczsKKyAgICByZXR1cm4g
bGFuZ3VhZ2VzOworfQorc3RhdGljIFZlY3RvcjxTdHJpbmc+JiBjYWNoZWRNaW5pbWl6ZWRQbGF0
Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpIFdURl9SRVFVSVJFU19MT0NLKGNhY2hlZFBsYXRmb3Jt
UHJlZmVycmVkTGFuZ3VhZ2VzTG9jaykKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVj
dG9yPFN0cmluZz4+IGxhbmd1YWdlczsKKyAgICByZXR1cm4gbGFuZ3VhZ2VzOworfQorCiBzdGF0
aWMgQ2hlY2tlZExvY2sgcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVMb2NrOwogc3RhdGljIFZl
Y3RvcjxTdHJpbmc+JiBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpIFdURl9SRVFVSVJFU19M
T0NLKHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlTG9jaykKIHsKQEAgLTY4LDE2ICs4MCwyMSBA
QCB2b2lkIHJlbW92ZUxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCkKIAogdm9p
ZCBsYW5ndWFnZURpZENoYW5nZSgpCiB7Ci0gICAgcGxhdGZvcm1MYW5ndWFnZURpZENoYW5nZSgp
OworICAgIHsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IGNhY2hlZFBsYXRmb3JtUHJlZmVycmVk
TGFuZ3VhZ2VzTG9jayB9OworICAgICAgICBjYWNoZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5n
dWFnZXMoKS5jbGVhcigpOworICAgICAgICBjYWNoZWRNaW5pbWl6ZWRQbGF0Zm9ybVByZWZlcnJl
ZExhbmd1YWdlcygpLmNsZWFyKCk7CisgICAgfQorCiAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6
IGNvcHlUb1ZlY3RvcihvYnNlcnZlck1hcCgpKSkgewogICAgICAgICBpZiAob2JzZXJ2ZXJNYXAo
KS5jb250YWlucyhvYnNlcnZlci5rZXkpKQogICAgICAgICAgICAgb2JzZXJ2ZXIudmFsdWUob2Jz
ZXJ2ZXIua2V5KTsKICAgICB9CiB9CiAKLVN0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoKQorU3RyaW5n
IGRlZmF1bHRMYW5ndWFnZShTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyBzaG91bGRNaW5pbWl6ZUxh
bmd1YWdlcykKIHsKLSAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKCk7CisgICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJl
ZExhbmd1YWdlcyhzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyk7CiAgICAgaWYgKGxhbmd1YWdlcy5z
aXplKCkpCiAgICAgICAgIHJldHVybiBsYW5ndWFnZXNbMF07CiAKQEAgLTEwOCw3ICsxMjUsNyBA
QCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gaXNvbGF0ZWRDb3B5KGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBzdHJpbmdzKQogICAgIHJldHVybiBjb3B5OwogfQogCi1WZWN0b3I8U3RyaW5nPiB1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKCkKK1ZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMo
U2hvdWxkTWluaW1pemVMYW5ndWFnZXMgc2hvdWxkTWluaW1pemVMYW5ndWFnZXMpCiB7CiAgICAg
ewogICAgICAgICBMb2NrZXIgbG9ja2VyIHsgcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVMb2Nr
IH07CkBAIC0xMTcsNyArMTM0LDExIEBAIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMoKQogICAgICAgICAgICAgcmV0dXJuIGlzb2xhdGVkQ29weShvdmVycmlkZSk7CiAgICAg
fQogCi0gICAgcmV0dXJuIHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpOworICAgIExv
Y2tlciBsb2NrZXIgeyBjYWNoZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc0xvY2sgfTsKKyAg
ICBhdXRvJiBsYW5ndWFnZXMgPSBzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9PSBTaG91bGRNaW5p
bWl6ZUxhbmd1YWdlczo6WWVzID8gY2FjaGVkTWluaW1pemVkUGxhdGZvcm1QcmVmZXJyZWRMYW5n
dWFnZXMoKSA6IGNhY2hlZEZ1bGxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpOworICAgIGlm
IChsYW5ndWFnZXMuaXNFbXB0eSgpKQorICAgICAgICBsYW5ndWFnZXMgPSBwbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMoc2hvdWxkTWluaW1pemVMYW5ndWFnZXMpOworICAgIHJldHVybiBp
c29sYXRlZENvcHkobGFuZ3VhZ2VzKTsKIH0KIAogc3RhdGljIFN0cmluZyBjYW5vbmljYWxMYW5n
dWFnZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBsYW5ndWFnZUNvZGUpCkBAIC0xODQsMTAgKzIw
NSwyNiBAQCBTdHJpbmcgZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShjb25zdCBTdHJpbmcm
IGxvY2FsZU5hbWUpCiAgICAgcmV0dXJuIGxvY2FsZU5hbWU7CiB9CiAKLSNpZiAhUExBVEZPUk0o
Q09DT0EpCi12b2lkIHBsYXRmb3JtTGFuZ3VhZ2VEaWRDaGFuZ2UoKQorc3RhdGljIENoZWNrZWRM
b2NrIGluaXRpYWxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlRm9yVGVzdGluZ0xv
Y2s7CitzdGF0aWMgVmVjdG9yPFN0cmluZz4mIGluaXRpYWxQbGF0Zm9ybVByZWZlcnJlZExhbmd1
YWdlc092ZXJyaWRlRm9yVGVzdGluZygpIFdURl9SRVFVSVJFU19MT0NLKGluaXRpYWxQbGF0Zm9y
bVByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlRm9yVGVzdGluZ0xvY2spCiB7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBvdmVycmlkZTsKKyAgICByZXR1cm4gb3Zl
cnJpZGU7CiB9Ci0jZW5kaWYKIAorVmVjdG9yPFN0cmluZz4gaW5pdGlhbFBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlRm9yVGVzdGluZygpCit7CisgICAgTG9ja2VyIGxvY2tl
ciB7IGluaXRpYWxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlRm9yVGVzdGluZ0xv
Y2sgfTsKKyAgICByZXR1cm4gaW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJp
ZGVGb3JUZXN0aW5nKCk7CiB9CisKK3ZvaWQgb3ZlcnJpZGVJbml0aWFsUGxhdGZvcm1Vc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzRm9yVGVzdGluZyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3ZlcnJpZGUp
Cit7CisgICAgeworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgaW5pdGlhbFBsYXRmb3JtUHJlZmVy
cmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nTG9jayB9OworICAgICAgICBpbml0aWFsUGxh
dGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKSA9IG92ZXJyaWRlOwor
ICAgIH0KKyAgICBsYW5ndWFnZURpZENoYW5nZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmggYi9Tb3VyY2UvV1RGL3d0Zi9M
YW5ndWFnZS5oCmluZGV4IGYwNzRkNzU2OGQwMDJlOTMyYTUzMjZiZGI1MmQ3ZmI4YzA2NTgxODMu
LjI5MGUzZTdjOGI0NDdlMjRmM2UxODhlYmUwZTUzYmI2MmRmZmIwNzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0xhbmd1YWdlLmgKKysrIGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaApA
QCAtMzUsMTMgKzM1LDEzIEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1XVEZfRVhQT1JUX1BSSVZB
VEUgU3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgpOyAvLyBUaHJlYWQtc2FmZS4KLVdURl9FWFBPUlRf
UFJJVkFURSBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7IC8vIFRocmVh
ZC1zYWZlLCByZXR1cm5zIEJDUCA0NyBsYW5ndWFnZSB0YWdzLgorZW51bSBjbGFzcyBTaG91bGRN
aW5pbWl6ZUxhbmd1YWdlcyB7IE5vLCBZZXMgfTsKKworV1RGX0VYUE9SVF9QUklWQVRFIFN0cmlu
ZyBkZWZhdWx0TGFuZ3VhZ2UoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgPSBTaG91bGRNaW5pbWl6
ZUxhbmd1YWdlczo6WWVzKTsgLy8gVGhyZWFkLXNhZmUuCitXVEZfRVhQT1JUX1BSSVZBVEUgVmVj
dG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdl
cyA9IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMpOyAvLyBUaHJlYWQtc2FmZSwgcmV0dXJu
cyBCQ1AgNDcgbGFuZ3VhZ2UgdGFncy4KIFdURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5n
PiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKIFdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYp
OwogV1RGX0VYUE9SVF9QUklWQVRFIHNpemVfdCBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJ
bkxpc3QoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1
YWdlTGlzdCwgYm9vbCYgZXhhY3RNYXRjaCk7Ci1XVEZfRVhQT1JUX1BSSVZBVEUgVmVjdG9yPFN0
cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7Ci1XVEZfRVhQT1JUX1BSSVZB
VEUgdm9pZCBwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdlKCk7CiAKIC8vIENhbGxlZCBmcm9tIHBs
YXRmb3JtIHNwZWNpZmljIGNvZGUgd2hlbiB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZShz
KSBjaGFuZ2UuCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBsYW5ndWFnZURpZENoYW5nZSgpOwpA
QCAtNTIsMjAgKzUyLDI2IEBAIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFkZExhbmd1YWdlQ2hh
bmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCwgTGFuZ3VhZ2VDaGFuZ2VPCiBXVEZfRVhQT1JUX1BS
SVZBVEUgdm9pZCByZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNvbnRleHQpOwog
V1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyBkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlKGNv
bnN0IFN0cmluZyYpOwogCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgPSBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6
WWVzKTsKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogYm9vbCBjYW5NaW5pbWl6ZUxhbmd1YWdlcygp
OwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgbGlzdGVuRm9yTGFuZ3VhZ2VDaGFuZ2VOb3RpZmlj
YXRpb25zKCk7CiBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gbWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxh
bmd1YWdlcyhDRkFycmF5UmVmKTsKLSNlbmRpZgorUmV0YWluUHRyPENGU3RyaW5nUmVmPiBiYXNl
TGFuZ3VhZ2VGcm9tTGFuZ3VhZ2UoQ0ZTdHJpbmdSZWYpOwogCi19CitWZWN0b3I8U3RyaW5nPiBp
bml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nKCk7
CitXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBvdmVycmlkZUluaXRpYWxQbGF0Zm9ybVVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXNGb3JUZXN0aW5nKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisjZW5kaWYg
Ly8gUExBVEZPUk0oQ09DT0EpCiAKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OlNo
b3VsZE1pbmltaXplTGFuZ3VhZ2VzOwogdXNpbmcgV1RGOjpkZWZhdWx0TGFuZ3VhZ2U7CiB1c2lu
ZyBXVEY6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7CiB1c2luZyBXVEY6OnVzZXJQcmVmZXJyZWRM
YW5ndWFnZXNPdmVycmlkZTsKIHVzaW5nIFdURjo6b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzOwogdXNpbmcgV1RGOjppbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3Q7Ci11c2lu
ZyBXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlczsKIHVzaW5nIFdURjo6YWRkTGFu
Z3VhZ2VDaGFuZ2VPYnNlcnZlcjsKIHVzaW5nIFdURjo6cmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNl
cnZlcjsKIHVzaW5nIFdURjo6ZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL2NmL0xhbmd1YWdlQ0YuY3BwIGIvU291cmNlL1dURi93dGYvY2Yv
TGFuZ3VhZ2VDRi5jcHAKaW5kZXggZTA3MzExNTQyOTFiZmQwN2M0Y2MxNmRhMDQyYWFhZGI1OWM5
ZTNiMS4uNGM3YjYwMmVkYWQ0YjUzZTMzMDI0M2U4OThkNmI3NWIwMDIxMzM5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
Y2YvTGFuZ3VhZ2VDRi5jcHAKQEAgLTMwLDE2ICszMCwxMiBAQAogI2luY2x1ZGUgPG11dGV4Pgog
I2luY2x1ZGUgPHVuaWNvZGUvdWxvYy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0j
aW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9zcGkvY2YvQ0ZC
dW5kbGVTUEkuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IFdURiB7CiAKLXN0YXRpYyBDaGVja2VkTG9jayBwcmVmZXJyZWRMYW5ndWFnZXNMb2NrOwotCiAj
aWYgUExBVEZPUk0oTUFDKQogc3RhdGljIHZvaWQgbGFuZ3VhZ2VQcmVmZXJlbmNlc0RpZENoYW5n
ZShDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCosIENGU3RyaW5nUmVmLCBjb25zdCB2b2lk
KiwgQ0ZEaWN0aW9uYXJ5UmVmKQogewpAQCAtNDcsMTYgKzQzLDYgQEAgc3RhdGljIHZvaWQgbGFu
Z3VhZ2VQcmVmZXJlbmNlc0RpZENoYW5nZShDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCos
IENGU3RyaW4KIH0KICNlbmRpZgogCi1zdGF0aWMgVmVjdG9yPFN0cmluZz4mIHByZWZlcnJlZExh
bmd1YWdlcygpIFdURl9SRVFVSVJFU19MT0NLKHByZWZlcnJlZExhbmd1YWdlc0xvY2spCi17Ci0g
ICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4gbGFuZ3VhZ2VzOwot
ICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlS2V5OwotICAgIHN0ZDo6Y2FsbF9vbmNlKG9u
Y2VLZXksIFsmXSB7Ci0gICAgICAgIGxhbmd1YWdlcy5jb25zdHJ1Y3QoKTsKLSAgICB9KTsKLSAg
ICByZXR1cm4gbGFuZ3VhZ2VzOwotfQotCiBzdGF0aWMgU3RyaW5nIGh0dHBTdHlsZUxhbmd1YWdl
Q29kZShDRlN0cmluZ1JlZiBsYW5ndWFnZSkKIHsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+
IHByZWZlcnJlZExhbmd1YWdlQ29kZTsKQEAgLTg4LDE0ICs3NCw2IEBAIHN0YXRpYyBTdHJpbmcg
aHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKENGU3RyaW5nUmVmIGxhbmd1YWdlKQogICAgIHJldHVybiBt
dXRhYmxlTGFuZ3VhZ2VDb2RlLmdldCgpOwogfQogCi12b2lkIHBsYXRmb3JtTGFuZ3VhZ2VEaWRD
aGFuZ2UoKQotewotICAgIHsKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IHByZWZlcnJlZExhbmd1
YWdlc0xvY2sgfTsKLSAgICAgICAgcHJlZmVycmVkTGFuZ3VhZ2VzKCkuY2xlYXIoKTsKLSAgICB9
Ci19Ci0KIHZvaWQgbGlzdGVuRm9yTGFuZ3VhZ2VDaGFuZ2VOb3RpZmljYXRpb25zKCkKIHsKICNp
ZiBQTEFURk9STShNQUMpCkBAIC0xMDYsMzIgKzg0LDM4IEBAIHZvaWQgbGlzdGVuRm9yTGFuZ3Vh
Z2VDaGFuZ2VOb3RpZmljYXRpb25zKCkKICNlbmRpZgogfQogCi1WZWN0b3I8U3RyaW5nPiBwbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzIHNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzKQogewotICAgIExvY2tlciBsb2NrZXIgeyBwcmVmZXJyZWRMYW5ndWFnZXNMb2Nr
IH07Ci0gICAgVmVjdG9yPFN0cmluZz4mIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMgPSBwcmVmZXJy
ZWRMYW5ndWFnZXMoKTsKKyAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gcGxhdGZvcm1MYW5ndWFn
ZXM7CisgICAgaWYgKGF1dG8gb3ZlcnJpZGUgPSBpbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nKCk7ICFvdmVycmlkZS5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgYXV0byBhcnJheSA9IGFkb3B0Q0YoQ0ZBcnJheUNyZWF0ZU11dGFibGUoMCwgb3ZlcnJp
ZGUuc2l6ZSgpLCAma0NGVHlwZUFycmF5Q2FsbEJhY2tzKSk7CisgICAgICAgIGZvciAoYXV0byYg
aXRlbSA6IG92ZXJyaWRlKQorICAgICAgICAgICAgQ0ZBcnJheUFwcGVuZFZhbHVlKGFycmF5Lmdl
dCgpLCBpdGVtLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOworICAgICAgICBwbGF0Zm9ybUxhbmd1
YWdlcyA9IFdURk1vdmUoYXJyYXkpOworICAgIH0gZWxzZQorICAgICAgICBwbGF0Zm9ybUxhbmd1
YWdlcyA9IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5UHJlZmVycmVkTGFuZ3VhZ2VzKCkpOwogCi0gICAg
aWYgKHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFJldGFpblB0
cjxDRkFycmF5UmVmPiBsYW5ndWFnZXMgPSBhZG9wdENGKENGTG9jYWxlQ29weVByZWZlcnJlZExh
bmd1YWdlcygpKTsKLSAgICAgICAgbGFuZ3VhZ2VzID0gbWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxh
bmd1YWdlcyhsYW5ndWFnZXMuZ2V0KCkpOwotICAgICAgICBDRkluZGV4IGxhbmd1YWdlQ291bnQg
PSBDRkFycmF5R2V0Q291bnQobGFuZ3VhZ2VzLmdldCgpKTsKLSAgICAgICAgaWYgKCFsYW5ndWFn
ZUNvdW50KQotICAgICAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBlbmQoImVuIik7
Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgbGFu
Z3VhZ2VDb3VudDsgaSsrKQotICAgICAgICAgICAgICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMu
YXBwZW5kKGh0dHBTdHlsZUxhbmd1YWdlQ29kZShzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZB
cnJheUdldFZhbHVlQXRJbmRleChsYW5ndWFnZXMuZ2V0KCksIGkpKSkpOworICAgIGlmIChzaG91
bGRNaW5pbWl6ZUxhbmd1YWdlcyA9PSBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzKQorICAg
ICAgICBwbGF0Zm9ybUxhbmd1YWdlcyA9IG1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFnZXMo
cGxhdGZvcm1MYW5ndWFnZXMuZ2V0KCkpOworCisgICAgQ0ZJbmRleCBwbGF0Zm9ybUxhbmd1YWdl
c0NvdW50ID0gQ0ZBcnJheUdldENvdW50KHBsYXRmb3JtTGFuZ3VhZ2VzLmdldCgpKTsKKyAgICBp
ZiAoIXBsYXRmb3JtTGFuZ3VhZ2VzQ291bnQpCisgICAgICAgIHJldHVybiB7ICJlbiJfcyB9Owor
CisgICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzOworICAgIGZvciAoQ0ZJbmRleCBpID0gMDsg
aSA8IHBsYXRmb3JtTGFuZ3VhZ2VzQ291bnQ7IGkrKykgeworICAgICAgICBhdXRvIHBsYXRmb3Jt
TGFuZ3VhZ2UgPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRl
eChwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSwgaSkpOworICAgICAgICBsYW5ndWFnZXMuYXBwZW5k
KGh0dHBTdHlsZUxhbmd1YWdlQ29kZShwbGF0Zm9ybUxhbmd1YWdlKSk7CisKKyAgICAgICAgaWYg
KHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID09IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObykg
eworICAgICAgICAgICAgLy8gQ29udmVydCBsYW5ndWFnZXMgd2l0aCBjb3VudHJ5IGNvZGVzIHRv
IGVxdWl2YWxlbnQgbGFuZ3VhZ2VzIHdpdGhvdXQgY291bnRyeSBjb2RlcyAoaWYgcG9zc2libGUp
LgorICAgICAgICAgICAgLy8gZS5nLiAiZW4tVVMiIGJlY29tZXMgImVuIiwgd2hpY2ggaXMgdXNl
ZnVsIHdoZW4gdHJ5aW5nIHRvIG1hdGNoIEhUTUwgYGxhbmc9ImVuImAuCisgICAgICAgICAgICBh
dXRvIGJhc2VMYW5ndWFnZSA9IGJhc2VMYW5ndWFnZUZyb21MYW5ndWFnZShwbGF0Zm9ybUxhbmd1
YWdlKTsKKyAgICAgICAgICAgIGlmIChiYXNlTGFuZ3VhZ2UgJiYgYmFzZUxhbmd1YWdlICE9IHBs
YXRmb3JtTGFuZ3VhZ2UgJiYgQ0ZTdHJpbmdDb21wYXJlKGJhc2VMYW5ndWFnZS5nZXQoKSwgcGxh
dGZvcm1MYW5ndWFnZSwgMCkgIT0ga0NGQ29tcGFyZUVxdWFsVG8pCisgICAgICAgICAgICAgICAg
bGFuZ3VhZ2VzLmFwcGVuZChodHRwU3R5bGVMYW5ndWFnZUNvZGUoYmFzZUxhbmd1YWdlLmdldCgp
KSk7CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzQ29weTsKLSAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weS5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuc2l6ZSgpKTsKLQotICAgIGZvciAo
YXV0byYgbGFuZ3VhZ2UgOiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKQotICAgICAgICB1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzQ29weS51bmNoZWNrZWRBcHBlbmQobGFuZ3VhZ2UuaXNvbGF0ZWRDb3B5
KCkpOwotCi0gICAgcmV0dXJuIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5OwotCi0gICAgcmV0
dXJuIFZlY3RvcjxTdHJpbmc+KCk7CisgICAgcmV0dXJuIGxhbmd1YWdlczsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNv
Y29hLm1tIGIvU291cmNlL1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbQppbmRleCA1YmFi
N2M3YjI2N2MwYWRkMjU1YjJmZTY3NjJlZTY0MGUwNTg4OTkzLi40MWUwMzMyOTFhMzIxN2FhODQz
MWQwNjZmY2IzMDk2MjkwYTU2NmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9M
YW5ndWFnZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29jb2Eu
bW0KQEAgLTM4LDggKzM4LDcgQEAgYm9vbCBjYW5NaW5pbWl6ZUxhbmd1YWdlcygpCiAjaWYgUExB
VEZPUk0oTUFDKQogICAgICAgICBpZiAoYXBwbGljYXRpb25TREtWZXJzaW9uKCkgPCBEWUxEX01B
Q09TWF9WRVJTSU9OXzEwXzE1XzQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYK
LSNpZiBQTEFURk9STShJT1MpCisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICBp
ZiAoYXBwbGljYXRpb25TREtWZXJzaW9uKCkgPCBEWUxEX0lPU19WRVJTSU9OXzEzXzQpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKQEAgLTUwLDYgKzQ5LDggQEAgYm9vbCBjYW5N
aW5pbWl6ZUxhbmd1YWdlcygpCiAKIFJldGFpblB0cjxDRkFycmF5UmVmPiBtaW5pbWl6ZWRMYW5n
dWFnZXNGcm9tTGFuZ3VhZ2VzKENGQXJyYXlSZWYgbGFuZ3VhZ2VzKQogeworICAgIC8vIFRoaXMg
cmVxdWlyZXMgbGlua2luZyBgSW50ZXJuYXRpb25hbFN1cHBvcnRgLgorCiAgICAgaWYgKCFjYW5N
aW5pbWl6ZUxhbmd1YWdlcygpKQogICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzOwogCkBAIC01OCw0
ICs1OSwyOSBAQCBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiBBTExPV19ORVdf
QVBJX1dJVEhPVVRfR1VBUkRTX0VORAogfQogCitzdGF0aWMgYm9vbCBjYW5HZXRCYXNlTGFuZ3Vh
Z2UoKQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHJlc3VsdCA9IFtdKCkgLT4gYm9vbCB7Cisj
aWYgUExBVEZPUk0oTUFDKQorICAgICAgICBpZiAoYXBwbGljYXRpb25TREtWZXJzaW9uKCkgPCBE
WUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworI2Vs
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgaWYgKGFwcGxpY2F0aW9uU0RLVmVyc2lv
bigpIDwgRFlMRF9JT1NfVkVSU0lPTl8xMV8wKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
I2VuZGlmCisgICAgICAgIHJldHVybiBbTlNMb2NhbGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3RvcihiYXNlTGFuZ3VhZ2VGcm9tTGFuZ3VhZ2U6KV07CisgICAgfSgpOworICAgIHJldHVybiBy
ZXN1bHQ7CiB9CisKK1JldGFpblB0cjxDRlN0cmluZ1JlZj4gYmFzZUxhbmd1YWdlRnJvbUxhbmd1
YWdlKENGU3RyaW5nUmVmIGxhbmd1YWdlKQoreworICAgIC8vIFRoaXMgcmVxdWlyZXMgbGlua2lu
ZyBgSW50ZXJuYXRpb25hbFN1cHBvcnRgLgorCisgICAgaWYgKCFjYW5HZXRCYXNlTGFuZ3VhZ2Uo
KSkKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlOworCisgICAgcmV0dXJuIChfX2JyaWRnZSBDRlN0
cmluZ1JlZilbTlNMb2NhbGUgYmFzZUxhbmd1YWdlRnJvbUxhbmd1YWdlOihfX2JyaWRnZSBOU1N0
cmluZyAqKWxhbmd1YWdlXTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9wbGF5c3RhdGlvbi9MYW5ndWFnZVBsYXlTdGF0aW9uLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL3BsYXlzdGF0aW9uL0xhbmd1YWdlUGxheVN0YXRpb24uY3BwCmluZGV4IGQ0NTM3
YTY5NDBiNWUwMjJiZjVlNWNkZjcxYTg2M2QzMzA5ZGY2MWMuLmNhZjE1NDlmODAwMmMxMzdlMmYx
YTA2MjI4MTgxNTRmNTYyNTRlNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0
aW9uL0xhbmd1YWdlUGxheVN0YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0
aW9uL0xhbmd1YWdlUGxheVN0YXRpb24uY3BwCkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFj
ZSBXVEYgewogCi1WZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMo
KQorVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzKQogewogICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlczsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvc3BpL2NvY29hL05TTG9jYWxlU1BJLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9zcGkvY29jb2EvTlNMb2NhbGVTUEkuaAppbmRleCA1Y2VmMTY0MDMxNmI0NzNhNzFi
ZTdiYmE2MWE4ODI3NGYyODEwNjIxLi5jYTk4MjAxYzYxNjNhMzc5ZWUxZDhmMmNhNGY1NWQzNmZm
YWJmMGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2EvTlNMb2NhbGVTUEku
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2EvTlNMb2NhbGVTUEkuaApAQCAtMzIsNiAr
MzIsNyBAQAogI2VuZGlmCiAKIEBpbnRlcmZhY2UgTlNMb2NhbGUgKCkKKysgKG5vbm51bGwgTlNT
dHJpbmcgKiliYXNlTGFuZ3VhZ2VGcm9tTGFuZ3VhZ2U6KG5vbm51bGwgTlNTdHJpbmcgKilsYW5n
dWFnZUlEOwogKyAobm9ubnVsbCBOU0FycmF5PE5TU3RyaW5nICo+ICopbWluaW1pemVkTGFuZ3Vh
Z2VzRnJvbUxhbmd1YWdlczoobm9ubnVsbCBOU0FycmF5PE5TU3RyaW5nICo+ICopbGFuZ3VhZ2Vz
OwogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKaW5kZXggMzFjNzU3NDcy
ZWVhYjY0MDcyNmU5NGM1YzU3NTA3MThmYTM5MzhkMS4uYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJi
NzcxNjkwZjkyZGI0OGFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFn
ZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcApAQCAt
NDIsNyArNDIsNyBAQCBzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQogICAgIHJldHVy
biBub3JtYWxpemVkRGVmYXVsdDsKIH0KIAotVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKCkKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcykKIHsKICAgICByZXR1cm4geyBwbGF0Zm9y
bUxhbmd1YWdlKCkgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFn
ZVdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwCmluZGV4IDZiNTJj
OWMyMGQxNWNiYTdlMzlkNTQyMDExYjQzOGEzODM1OGMyYjIuLmJmOTZiMGE1NWM4ODk5MzFjNGMy
ZDUzMzE3ZThjNWUwMTdlMmFhMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5n
dWFnZVdpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvd2luL0xhbmd1YWdlV2luLmNwcApAQCAt
NzQsNyArNzQsNyBAQCBzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQogICAgIHJldHVy
biBjb21wdXRlZERlZmF1bHRMYW5ndWFnZTsKIH0KIAotVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZl
cnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcykKIHsKICAgICByZXR1cm4geyBw
bGF0Zm9ybUxhbmd1YWdlKCkgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IGFiMDNiZGI0M2M2ZjNhM2YxNWJhOTVlOGQyYmIzMWU3
YmNhMWU1MzkuLjgxMTQxOTBiNDNlYzU5NjJkMWJmZTcyY2I4YjkxMTIwZmNkNzI1ZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtODMs
NyArODMsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0RPTVdpbmRvd0Jhc2U6
OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiAgICAgJnJlcG9ydFVuY2F1Z2h0RXhjZXB0
aW9uQXRFdmVudExvb3AsCiAgICAgJmN1cnJlbnRTY3JpcHRFeGVjdXRpb25Pd25lciwKICAgICAm
c2NyaXB0RXhlY3V0aW9uU3RhdHVzLAotICAgICZkZWZhdWx0TGFuZ3VhZ2UsCisgICAgW10geyBy
ZXR1cm4gZGVmYXVsdExhbmd1YWdlKCk7IH0sCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAg
ICZjb21waWxlU3RyZWFtaW5nLAogICAgICZpbnN0YW50aWF0ZVN0cmVhbWluZywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNw
cAppbmRleCA0ODM5OTcwOGVlMDM0YmM1OGFjMzgyZjNjYWM5N2Y5MTY3NzgyZmI4Li45MjEyNWU1
NmQ2OTk1ZDQ2MDBkY2Q4ZmNiN2I0MjNiYTU4YmI0ODNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCkBAIC02MSw3
ICs2MSw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTV29ya2VyR2xvYmFsU2Nv
cGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlCiAgICAgJnJlcG9ydFVuY2F1Z2h0RXhj
ZXB0aW9uQXRFdmVudExvb3AsCiAgICAgJmN1cnJlbnRTY3JpcHRFeGVjdXRpb25Pd25lciwKICAg
ICAmc2NyaXB0RXhlY3V0aW9uU3RhdHVzLAotICAgICZkZWZhdWx0TGFuZ3VhZ2UsCisgICAgW10g
eyByZXR1cm4gZGVmYXVsdExhbmd1YWdlKCk7IH0sCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQog
ICAgICZjb21waWxlU3RyZWFtaW5nLAogICAgICZpbnN0YW50aWF0ZVN0cmVhbWluZywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJh
c2UuY3BwCmluZGV4IDQyMWU3NDRmMzMwN2FiZDk5YjFlNWMyZDVkN2YxM2UzM2IzOGU5MDEuLjQy
MDI3MmExZDBiNzVjYTY5NWE2NmYxMjQ2ZTQ3NDU5NmQ1YTRlNWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcApA
QCAtNTcsNyArNTcsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtsZXRH
bG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibAogICAgICZyZXBvcnRVbmNh
dWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50U2NyaXB0RXhlY3V0aW9uT3du
ZXIsCiAgICAgJnNjcmlwdEV4ZWN1dGlvblN0YXR1cywKLSAgICAmZGVmYXVsdExhbmd1YWdlLAor
ICAgIFtdIHsgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZSgpOyB9LAogI2lmIEVOQUJMRShXRUJBU1NF
TUJMWSkKICAgICAmY29tcGlsZVN0cmVhbWluZywKICAgICAmaW5zdGFudGlhdGVTdHJlYW1pbmcs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcAppbmRl
eCBkM2U0NWU4YmI0YzdkMjAwY2QzYTRhMjEyODIwZGU0ZWRmY2QxYmY4Li41NWZhMDk2NGM3ZmQ5
ODg2MzVlZjMzMjVjYmRhYmYwZTIxMzQ0ODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKQEAgLTE3MCw3ICsxNzAsNyBAQCB2b2lkIENhcHRp
b25Vc2VyUHJlZmVyZW5jZXM6OmNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKQogCiBWZWN0b3I8
U3RyaW5nPiBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpwcmVmZXJyZWRMYW5ndWFnZXMoKSBjb25z
dAogewotICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXMoKTsKKyAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObyk7CiAgICAgaWYgKG1fdGVzdGluZ01vZGUg
JiYgIW1fdXNlclByZWZlcnJlZExhbmd1YWdlLmlzRW1wdHkoKSkKICAgICAgICAgbGFuZ3VhZ2Vz
Lmluc2VydCgwLCBtX3VzZXJQcmVmZXJyZWRMYW5ndWFnZSk7CiAKQEAgLTM0MSw3ICszNDEsNyBA
QCBpbnQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6dGV4dFRyYWNrU2VsZWN0aW9uU2NvcmUoVGV4
dFRyYWNrKiB0cmFjaywgSFRNTE1lZGlhRQogICAgICAgICAgICAgaWYgKG9mZnNldCkKICAgICAg
ICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGxhbmd1
YWdlTGlzdC5hcHBlbmQoZGVmYXVsdExhbmd1YWdlKCkpOworICAgICAgICAgICAgbGFuZ3VhZ2VM
aXN0LmFwcGVuZChkZWZhdWx0TGFuZ3VhZ2UoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKSk7
CiAKICAgICAgICAgICAgIC8vIE9ubHkgZW5hYmxlIGEgdGV4dCB0cmFjayBpZiB0aGUgY3VycmVu
dCBhdWRpbyB0cmFjayBpcyBOT1QgaW4gdGhlIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2UgLi4u
CiAgICAgICAgICAgICBzaXplX3Qgb2Zmc2V0ID0gaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdl
SW5MaXN0KGF1ZGlvVHJhY2tMYW5ndWFnZSwgbGFuZ3VhZ2VMaXN0LCBleGFjdE1hdGNoKTsKQEAg
LTQxOCw3ICs0MTgsNyBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJpbWFyeUF1
ZGlvVHJhY2tMYW5ndWFnZU92ZXJyaWRlKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcHJpbWFyeUF1
ZGlvVHJhY2tMYW5ndWFnZU92ZXJyaWRlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG1fcHJp
bWFyeUF1ZGlvVHJhY2tMYW5ndWFnZU92ZXJyaWRlOwotICAgIHJldHVybiBkZWZhdWx0TGFuZ3Vh
Z2UoKTsKKyAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlKFNob3VsZE1pbmltaXplTGFuZ3VhZ2Vz
OjpObyk7CiB9CiAgICAgCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRp
b25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlv
blVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCmluZGV4IGNmMmUxYmVhMjViMGYwNzk5ODYzOTIw
NTk0NWRmMGVlZjkyZDNjNDIuLjlkNzJlZDY1ZTJmM2E3ODU4MDdhM2ZmMjViYmZkZjNjMDUyNjIw
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01lZGlhQUYuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJl
bmNlc01lZGlhQUYuY3BwCkBAIC00NzEsMzYgKzQ3MSwyMCBAQCB2b2lkIENhcHRpb25Vc2VyUHJl
ZmVyZW5jZXNNZWRpYUFGOjpzZXRQcmVmZXJyZWRMYW5ndWFnZShjb25zdCBTdHJpbmcmIGxhbmd1
YWdlKQogCiBWZWN0b3I8U3RyaW5nPiBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6cHJl
ZmVycmVkTGFuZ3VhZ2VzKCkgY29uc3QKIHsKLSAgICBpZiAodGVzdGluZ01vZGUoKSB8fCAhTWVk
aWFBY2Nlc3NpYmlsaXR5TGlicmFyeSgpKQotICAgICAgICByZXR1cm4gQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzKCk7Ci0KLSAgICBWZWN0b3I8U3RyaW5nPiBwbGF0
Zm9ybUxhbmd1YWdlcyA9IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpOwotICAgIFZl
Y3RvcjxTdHJpbmc+IG92ZXJyaWRlID0gdXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCk7
Ci0gICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKHBsYXRmb3JtTGFu
Z3VhZ2VzLnNpemUoKSAhPSBvdmVycmlkZS5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4gb3Zl
cnJpZGU7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb3ZlcnJpZGUuc2l6ZSgpOyBp
KyspIHsKLSAgICAgICAgICAgIGlmIChvdmVycmlkZVtpXSAhPSBwbGF0Zm9ybUxhbmd1YWdlc1tp
XSkKLSAgICAgICAgICAgICAgICByZXR1cm4gb3ZlcnJpZGU7CisgICAgYXV0byBwcmVmZXJyZWRM
YW5ndWFnZXMgPSBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpwcmVmZXJyZWRMYW5ndWFnZXMoKTsK
KyAgICBpZiAoIXRlc3RpbmdNb2RlKCkgJiYgTWVkaWFBY2Nlc3NpYmlsaXR5TGlicmFyeSgpKSB7
CisgICAgICAgIGF1dG8gY2FwdGlvbkxhbmd1YWdlcyA9IGFkb3B0Q0YoTUFDYXB0aW9uQXBwZWFy
YW5jZUNvcHlTZWxlY3RlZExhbmd1YWdlcyhrTUFDYXB0aW9uQXBwZWFyYW5jZURvbWFpblVzZXIp
KTsKKyAgICAgICAgQ0ZJbmRleCBjYXB0aW9uTGFuZ3VhZ2VzQ291bnQgPSBjYXB0aW9uTGFuZ3Vh
Z2VzID8gQ0ZBcnJheUdldENvdW50KGNhcHRpb25MYW5ndWFnZXMuZ2V0KCkpIDogMDsKKyAgICAg
ICAgaWYgKGNhcHRpb25MYW5ndWFnZXNDb3VudCkgeworICAgICAgICAgICAgVmVjdG9yPFN0cmlu
Zz4gdGVtcDsKKyAgICAgICAgICAgIHRlbXAucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjYXB0aW9u
TGFuZ3VhZ2VzQ291bnQgKyBwcmVmZXJyZWRMYW5ndWFnZXMuc2l6ZSgpKTsKKyAgICAgICAgICAg
IGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGNhcHRpb25MYW5ndWFnZXNDb3VudDsgaSsrKQorICAg
ICAgICAgICAgICAgIHRlbXAudW5jaGVja2VkQXBwZW5kKHN0YXRpY19jYXN0PENGU3RyaW5nUmVm
PihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGNhcHRpb25MYW5ndWFnZXMuZ2V0KCksIGkpKSk7Cisg
ICAgICAgICAgICB0ZW1wLmFwcGVuZFZlY3RvcihXVEZNb3ZlKHByZWZlcnJlZExhbmd1YWdlcykp
OworICAgICAgICAgICAgcHJlZmVycmVkTGFuZ3VhZ2VzID0gV1RGTW92ZSh0ZW1wKTsKICAgICAg
ICAgfQogICAgIH0KLQotICAgIENGSW5kZXggbGFuZ3VhZ2VDb3VudCA9IDA7Ci0gICAgUmV0YWlu
UHRyPENGQXJyYXlSZWY+IGxhbmd1YWdlcyA9IGFkb3B0Q0YoTUFDYXB0aW9uQXBwZWFyYW5jZUNv
cHlTZWxlY3RlZExhbmd1YWdlcyhrTUFDYXB0aW9uQXBwZWFyYW5jZURvbWFpblVzZXIpKTsKLSAg
ICBpZiAobGFuZ3VhZ2VzKQotICAgICAgICBsYW5ndWFnZUNvdW50ID0gQ0ZBcnJheUdldENvdW50
KGxhbmd1YWdlcy5nZXQoKSk7Ci0KLSAgICBpZiAoIWxhbmd1YWdlQ291bnQpCi0gICAgICAgIHJl
dHVybiBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpwcmVmZXJyZWRMYW5ndWFnZXMoKTsKLQotICAg
IFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7Ci0gICAgdXNlclByZWZlcnJl
ZExhbmd1YWdlcy5yZXNlcnZlQ2FwYWNpdHkobGFuZ3VhZ2VDb3VudCArIHBsYXRmb3JtTGFuZ3Vh
Z2VzLnNpemUoKSk7Ci0gICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgbGFuZ3VhZ2VDb3VudDsg
aSsrKQotICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZChzdGF0aWNfY2FzdDxD
RlN0cmluZ1JlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChsYW5ndWFnZXMuZ2V0KCksIGkpKSk7
Ci0KLSAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZFZlY3RvcihwbGF0Zm9ybUxhbmd1
YWdlcyk7Ci0KLSAgICByZXR1cm4gdXNlclByZWZlcnJlZExhbmd1YWdlczsKKyAgICByZXR1cm4g
cHJlZmVycmVkTGFuZ3VhZ2VzOwogfQogCiB2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRp
YUFGOjpzZXRQcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljKGNvbnN0IFN0cmluZyYgY2hhcmFj
dGVyaXN0aWMpCkBAIC01NzksMTMgKzU2MywxNSBAQCBzdGF0aWMgdm9pZCBidWlsZERpc3BsYXlT
dHJpbmdGb3JUcmFja0Jhc2UoU3RyaW5nQnVpbGRlciYgZGlzcGxheU5hbWUsIGNvbnN0IFRyYQog
ICAgIFN0cmluZyBsYWJlbCA9IHRyYWNrLmxhYmVsKCk7CiAgICAgU3RyaW5nIHRyYWNrTGFuZ3Vh
Z2VJZGVudGlmaWVyID0gdHJhY2sudmFsaWRCQ1A0N0xhbmd1YWdlKCk7CiAKLSAgICBSZXRhaW5Q
dHI8Q0ZMb2NhbGVSZWY+IGN1cnJlbnRMb2NhbGUgPSBhZG9wdENGKENGTG9jYWxlQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGRlZmF1bHRMYW5ndWFnZSgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0
KCkpKTsKKyAgICBhdXRvIHByZWZlcnJlZExhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKTsKKyAgICBhdXRvIGRlZmF1bHRMYW5ndWFn
ZSA9ICFwcmVmZXJyZWRMYW5ndWFnZXMuaXNFbXB0eSgpID8gcHJlZmVycmVkTGFuZ3VhZ2VzWzBd
IDogZW1wdHlTdHJpbmcoKTsgLy8gVGhpcyBtYXRjaGVzIGBXVEY6OmRlZmF1bHRMYW5ndWFnZWAu
CisgICAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBjdXJyZW50TG9jYWxlID0gYWRvcHRDRihDRkxv
Y2FsZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkZWZhdWx0TGFuZ3VhZ2UuY3JlYXRlQ0ZT
dHJpbmcoKS5nZXQoKSkpOwogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gbG9jYWxlSWRlbnRp
ZmllciA9IGFkb3B0Q0YoQ0ZMb2NhbGVDcmVhdGVDYW5vbmljYWxMb2NhbGVJZGVudGlmaWVyRnJv
bVN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCB0cmFja0xhbmd1YWdlSWRlbnRpZmllci5jcmVh
dGVDRlN0cmluZygpLmdldCgpKSk7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBsYW5ndWFn
ZUNGID0gYWRvcHRDRihDRkxvY2FsZUNvcHlEaXNwbGF5TmFtZUZvclByb3BlcnR5VmFsdWUoY3Vy
cmVudExvY2FsZS5nZXQoKSwga0NGTG9jYWxlTGFuZ3VhZ2VDb2RlLCBsb2NhbGVJZGVudGlmaWVy
LmdldCgpKSk7CiAgICAgU3RyaW5nIGxhbmd1YWdlID0gbGFuZ3VhZ2VDRi5nZXQoKTsKIAogICAg
IGlmICghbGFiZWwuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGlmIChsYW5ndWFnZS5pc0VtcHR5KCkg
fHwgbGFiZWwuY29udGFpbnMobGFuZ3VhZ2UpKQorICAgICAgICBpZiAobGFuZ3VhZ2UuaXNFbXB0
eSgpIHx8IGxhYmVsLmNvbnRhaW5zKGxhbmd1YWdlKSB8fCBwcmVmZXJyZWRMYW5ndWFnZXMuY29u
dGFpbnModHJhY2tMYW5ndWFnZUlkZW50aWZpZXIpKQogICAgICAgICAgICAgZGlzcGxheU5hbWUu
YXBwZW5kKGxhYmVsKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZE
aWN0aW9uYXJ5UmVmPiBsb2NhbGVEaWN0ID0gYWRvcHRDRihDRkxvY2FsZUNyZWF0ZUNvbXBvbmVu
dHNGcm9tTG9jYWxlSWRlbnRpZmllcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBsb2NhbGVJZGVudGlm
aWVyLmdldCgpKSk7CkBAIC03MDksMTUgKzY5NSwxNiBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlc01lZGlhQUY6OmRpc3BsYXlOYW1lRm9yVHJhY2soVGV4dFRyYWNrKiB0cmFjaykgY29u
cwogCiBzdGF0aWMgYm9vbCB0ZXh0VHJhY2tDb21wYXJlKGNvbnN0IFJlZlB0cjxUZXh0VHJhY2s+
JiBhLCBjb25zdCBSZWZQdHI8VGV4dFRyYWNrPiYgYikKIHsKLSAgICBTdHJpbmcgcHJlZmVycmVk
TGFuZ3VhZ2VEaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUobGFuZ3Vh
Z2VJZGVudGlmaWVyKGRlZmF1bHRMYW5ndWFnZSgpKSk7CiAgICAgU3RyaW5nIGFMYW5ndWFnZURp
c3BsYXlOYW1lID0gZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShsYW5ndWFnZUlkZW50aWZp
ZXIoYS0+dmFsaWRCQ1A0N0xhbmd1YWdlKCkpKTsKICAgICBTdHJpbmcgYkxhbmd1YWdlRGlzcGxh
eU5hbWUgPSBkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlKGxhbmd1YWdlSWRlbnRpZmllcihi
LT52YWxpZEJDUDQ3TGFuZ3VhZ2UoKSkpOwogCi0gICAgLy8gVHJhY2tzIGluIHRoZSB1c2VyJ3Mg
cHJlZmVycmVkIGxhbmd1YWdlIGFyZSBhbHdheXMgYXQgdGhlIHRvcCBvZiB0aGUgbWVudS4KLSAg
ICBib29sIGFJc1ByZWZlcnJlZExhbmd1YWdlID0gYUxhbmd1YWdlRGlzcGxheU5hbWUgPT0gcHJl
ZmVycmVkTGFuZ3VhZ2VEaXNwbGF5TmFtZTsKLSAgICBib29sIGJJc1ByZWZlcnJlZExhbmd1YWdl
ID0gYkxhbmd1YWdlRGlzcGxheU5hbWUgPT0gcHJlZmVycmVkTGFuZ3VhZ2VEaXNwbGF5TmFtZTsK
LSAgICBpZiAoYUlzUHJlZmVycmVkTGFuZ3VhZ2UgIT0gYklzUHJlZmVycmVkTGFuZ3VhZ2UpCi0g
ICAgICAgIHJldHVybiBhSXNQcmVmZXJyZWRMYW5ndWFnZTsKKyAgICBmb3IgKGF1dG8mIHByZWZl
cnJlZExhbmd1YWdlIDogdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1
YWdlczo6Tm8pKSB7CisgICAgICAgIFN0cmluZyBwcmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1l
ID0gZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShsYW5ndWFnZUlkZW50aWZpZXIocHJlZmVy
cmVkTGFuZ3VhZ2UpKTsKKyAgICAgICAgYm9vbCBhSXNQcmVmZXJyZWRMYW5ndWFnZSA9IGFMYW5n
dWFnZURpc3BsYXlOYW1lID09IHByZWZlcnJlZExhbmd1YWdlRGlzcGxheU5hbWU7CisgICAgICAg
IGJvb2wgYklzUHJlZmVycmVkTGFuZ3VhZ2UgPSBiTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9PSBwcmVm
ZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lOworICAgICAgICBpZiAoYUlzUHJlZmVycmVkTGFuZ3Vh
Z2UgIT0gYklzUHJlZmVycmVkTGFuZ3VhZ2UpCisgICAgICAgICAgICByZXR1cm4gYUlzUHJlZmVy
cmVkTGFuZ3VhZ2U7CisgICAgfQogCiAgICAgQ29sbGF0b3IgY29sbGF0b3I7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNl
bGVjdGlvbkdyb3VwQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQppbmRleCA5YmQ1NjQ4
NDBjMjgyYWY1N2ExMGQ0ZTRkY2JlODc1NzM0YmM4MjZhLi5iNDE5YjYwZDk4ZTM2NmRiNDdkYzcw
NTdlYmQyNTc2OGRjM2Q2OTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0
aW9uR3JvdXBBVkZPYmpDLm1tCkBAIC0xMzQsNyArMTM0LDcgQEAgdm9pZCBNZWRpYVNlbGVjdGlv
bkdyb3VwQVZGT2JqQzo6dXBkYXRlT3B0aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgY2hhcmFj
dGVyaXMKICAgICAgICAgcmV0dXJuOwogCiAgICAgTlNBcnJheSogZmlsdGVyZWRPcHRpb25zID0g
W1BBTDo6Z2V0QVZNZWRpYVNlbGVjdGlvbkdyb3VwQ2xhc3MoKSBtZWRpYVNlbGVjdGlvbk9wdGlv
bnNGcm9tQXJyYXk6W21fbWVkaWFTZWxlY3Rpb25Hcm91cCBvcHRpb25zXQotICAgICAgICBmaWx0
ZXJlZEFuZFNvcnRlZEFjY29yZGluZ1RvUHJlZmVycmVkTGFuZ3VhZ2VzOmNyZWF0ZU5TQXJyYXko
dXNlclByZWZlcnJlZExhbmd1YWdlcygpKS5nZXQoKV07CisgICAgICAgIGZpbHRlcmVkQW5kU29y
dGVkQWNjb3JkaW5nVG9QcmVmZXJyZWRMYW5ndWFnZXM6Y3JlYXRlTlNBcnJheSh1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObykpLmdldCgpXTsKIAogICAg
IGlmICghW2ZpbHRlcmVkT3B0aW9ucyBjb3VudF0gJiYgY2hhcmFjdGVyaXN0aWNzLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGIzMDk0YmFmZGVjNzI3NDdlM2E4MGU2MTM4OTFlYmZlZDJjZWU0Mzgu
LmExOTg1YjEwYjhlYTliMjgyZmU2ZjdmYTUwZTEzYjRkOTExZGZjMDcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAy
MS0wNS0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW01v
ZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRpYSBjb250cm9scyBu
ZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZvciBvcmRlcmluZyB0
cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvTGFuZ3VhZ2UuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QuTGFuZ3VhZ2UuU2hvdWxkTWluaW1pemVMYW5ndWFnZXNZZXMp
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVC5MYW5ndWFnZS5TaG91bGRNaW5pbWl6ZUxh
bmd1YWdlc05vKToKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvQmFz
ZS54Y2NvbmZpZzoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RX
VEYueGNjb25maWc6CisgICAgICAgIExpbmsgYEludGVybmF0aW9uYWxTdXBwb3J0YCBhcyB0aGF0
J3Mgd2hlcmUgdGhlIGBOU0xvY2FsZWAgZXh0ZW5zaW9ucyBhcmUgaW1wbGVtZW50ZWQuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMS0wNS0yMSAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUnVuIGxheW91dCB0ZXN0cyBpbiBzdHJlc3MgbW9kZSBmb3IgMTAgaXRlcmF0
aW9ucyBvbiByZWd1bGFyIEVXUyBsYXlvdXQtdGVzdCBxdWV1ZXMKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwppbmRleCAwY2MyNGM5ZGI0ZjY4
Yjc1OWVhOGY2ZjQzOTc5NDZmN2I0MGEyZjk3Li4zNzkwN2EyNWZlMjRiYTI5MzljZGM0NGU3NGVm
OGNkZjBhOTgyOGY3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRp
b25zL0Jhc2UueGNjb25maWcKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9u
cy9CYXNlLnhjY29uZmlnCkBAIC0xMDIsOCArMTAyLDcgQEAgRVhDTFVERURfU09VUkNFX0ZJTEVf
TkFNRVMgPSAkKEVYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTXyQoV0tfQ09DT0FfVE9VQ0gpKTsK
IEVYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTXyA9ICpJT1MuaCAqSU9TLmNwcCAqSU9TLm1tOwog
RVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNfY29jb2F0b3VjaCA9ICpNYWMuaCAqTWFjLmNwcCAq
TWFjLm1tICovbWFjLyo7CiAKLU9USEVSX0NGTEFHUyA9ICQoaW5oZXJpdGVkKSAtLXN5c3RlbS1o
ZWFkZXItcHJlZml4PVdlYktpdC87Ci1PVEhFUl9DRkxBR1Nbc2RrPW1hY29zeCpdID0gJChpbmhl
cml0ZWQpIC1pZnJhbWV3b3JrICQoU0RLUk9PVCkkKFNZU1RFTV9MSUJSQVJZX0RJUikvUHJpdmF0
ZUZyYW1ld29ya3M7CitPVEhFUl9DRkxBR1MgPSAkKGluaGVyaXRlZCkgLWlmcmFtZXdvcmsgJChT
REtST09UKSQoU1lTVEVNX0xJQlJBUllfRElSKS9Qcml2YXRlRnJhbWV3b3JrcyAtLXN5c3RlbS1o
ZWFkZXItcHJlZml4PVdlYktpdC87CiAKIFdLX0NPQ09BX1RPVUNIID0gJChXS19DT0NPQV9UT1VD
SF8kKFdLX1BMQVRGT1JNX05BTUUpKTsKIFdLX0NPQ09BX1RPVUNIX2lwaG9uZW9zID0gY29jb2F0
b3VjaDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVz
dFdURi54Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdU
Ri54Y2NvbmZpZwppbmRleCBlNmEyOTc3ZmI0NTJkOGEyNjJmMzc0NGI0NWNmYTVhNWY5MzM4MmQx
Li5kMTk5ZGFkMzUwOTEyMjE5ZDc2ZTE3NTQxODY3Mzk0MDIxNGQ4ZWM2IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXVEYueGNjb25maWcKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V1RGLnhjY29uZmlnCkBAIC0y
NSwxNCArMjUsMTkgQEAgUFJPRFVDVF9OQU1FID0gVGVzdFdURjsKIAogTElCUkFSWV9TRUFSQ0hf
UEFUSFMgPSAkKFBST0pFQ1RfRElSKS9UZXN0cy9XVEYvZGFyd2luICQoaW5oZXJ0aWVkKTsKIAor
U1lTVEVNX0ZSQU1FV09SS19TRUFSQ0hfUEFUSFMgPSAkKGluaGVyaXRlZCkgJChTREtST09UKSQo
U1lTVEVNX0xJQlJBUllfRElSKS9Qcml2YXRlRnJhbWV3b3JrcyAkKFNES1JPT1QpJChTWVNURU1f
TElCUkFSWV9ESVIpL0ZyYW1ld29ya3M7CisKIEdDQ19FTkFCTEVfT0JKQ19FWENFUFRJT05TID0g
WUVTOwogCiBHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05TID0gJChpbmhlcml0ZWQpIEJVSUxE
SU5HX1RFU1RfV1RGIEdURVNUX0FQSV89CiAKKy8vIE5lZWRlZCBieSBgU291cmNlL1dURi93dGYv
Y29jb2EvTGFuZ3VhZ2VDb2NvYS5tbWAuCitXS19JTlRFUk5BVElPTkFMX1NVUFBPUlRfTERGTEFH
UyA9IC1mcmFtZXdvcmsgSW50ZXJuYXRpb25hbFN1cHBvcnQ7CisKIFdLX1VJS0lUTUFDSEVMUEVS
X0xERkxBR1MgPSAkKFdLX1VJS0lUTUFDSEVMUEVSX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1F
KSk7CiBXS19VSUtJVE1BQ0hFTFBFUl9MREZMQUdTX21hY2NhdGFseXN0ID0gLWZyYW1ld29yayBV
SUtpdE1hY0hlbHBlcjsKIAotT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAtbGd0ZXN0IC1m
b3JjZV9sb2FkICQoQlVJTFRfUFJPRFVDVFNfRElSKS9saWJUZXN0V1RGLmEgJChXS19VSUtJVE1B
Q0hFTFBFUl9MREZMQUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VD
SCkpOworT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAtbGd0ZXN0IC1pZnJhbWV3b3JrICQo
U0RLX0RJUikkKFNZU1RFTV9MSUJSQVJZX0RJUikvUHJpdmF0ZUZyYW1ld29ya3MgLWZvcmNlX2xv
YWQgJChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlRlc3RXVEYuYSAkKFdLX0lOVEVSTkFUSU9OQUxf
U1VQUE9SVF9MREZMQUdTKSAkKFdLX1VJS0lUTUFDSEVMUEVSX0xERkxBR1MpICQoT1RIRVJfTERG
TEFHU19QTEFURk9STV8kKFdLX0NPQ09BX1RPVUNIKSk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JN
XyA9IC1mcmFtZXdvcmsgQ29jb2EgLWZyYW1ld29yayBDYXJib247CiAKIC8vIEZJWE1FOiBUaGlz
IHNob3VsZCBub3QgYmUgYnVpbHQgb24gaU9TLiBJbnN0ZWFkIHdlIHNob3VsZCBjcmVhdGUgYW5k
IHVzZSBhIFRlc3RXVEYgYXBwbGljYXRpb24uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNi
YjhlYmI2MmI1ZjYzNTllNWMyODcxYjhmNWVkNWZhMGZkMGNjNmQuLmYxNjYwYzdlNWMyYTM1Mzhj
ZTFhMDQ4YzNlMjFkOTEwOGYzYjFlMGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04Nzks
NiArODc5LDcgQEAKIAkJOTUwOTVGMjAyNjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdlVG9w
Q29sb3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NTA5NUYxRjI2MkZGRkE1MDAwMEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSAqLzsgfTsK
IAkJOTUwRTRDQzEyNTJFNzUyNDAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBFNENDMDI1MkU3NTIz
MDA3MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5tbSAqLzsgfTsKIAkJOTUzQUJCMzUyNUMwRDY4
MjAwNEM4QjczIC8qIFdLV2ViVmlld1VuZGVyUGFnZUJhY2tncm91bmRDb2xvci5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1M0FCQjM0MjVDMEQ2ODEw
MDRDOEI3MyAvKiBXS1dlYlZpZXdVbmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IubW0gKi87IH07CisJ
CTk1NEU0MTMwMjY1NkUwNjgwMDQ1NUQ0RiAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTRFNDEyRTI2NTZFMDYzMDA0NTVENEYg
LyogTGFuZ3VhZ2UuY3BwICovOyB9OwogCQk5NUE1MjQ5NTI1ODFBMTBEMDA0NjFGRTkgLyogV0tX
ZWJWaWV3VGhlbWVDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk1QTUyNDk0MjU4MUExMEQwMDQ2MUZFOSAvKiBXS1dlYlZpZXdUaGVtZUNvbG9y
Lm1tICovOyB9OwogCQk5NUI2QjNCNzI1MUVCRjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QjZCM0I2
MjUxRUJGMkYwMEZDNDM4MiAvKiBNZWRpYURvY3VtZW50Lm1tICovOyB9OwogCQk5OTg0RkFDQzFD
RkZBRjYwMDA4RDE5OEMgLyogV0tXZWJWaWV3VGV4dElucHV0Lm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk4NEZBQ0ExQ0ZGQUVFRTAwOEQxOThDIC8q
IFdLV2ViVmlld1RleHRJbnB1dC5tbSAqLzsgfTsKQEAgLTI1ODcsNiArMjU4OCw3IEBACiAJCTk1
MDk1RjFGMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9yLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2FtcGxlZFBhZ2VUb3BDb2xvci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8q
IGlPU1N0eWx1c1N1cHBvcnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBpT1NTdHlsdXNTdXBwb3J0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NTNBQkIzNDI1QzBENjgxMDA0QzhCNzMgLyogV0tXZWJWaWV3VW5kZXJQYWdlQmFja2dyb3VuZENv
bG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3
VW5kZXJQYWdlQmFja2dyb3VuZENvbG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5NTRFNDEyRTI2NTZFMDYzMDA0NTVENEYgLyogTGFuZ3VhZ2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGFuZ3VhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5NUE1MjQ5NDI1ODFBMTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3VGhlbWVDb2xv
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1Ro
ZW1lQ29sb3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1QjZCM0I2MjUxRUJG
MkYwMEZDNDM4MiAvKiBNZWRpYURvY3VtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gTWVkaWFEb2N1bWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTk4NEZBQ0ExQ0ZGQUVFRTAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1RleHRJbnB1
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4MTksNiArNDgyMSw3IEBACiAJ
CUMwOTkxQzRGMTQzQzdENjgwMDc5OThGMiAvKiBjZiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOTU0RTQxMkUyNjU2RTA2MzAwNDU1RDRGIC8qIExhbmd1
YWdlLmNwcCAqLywKIAkJCQlCQzAyOUIxNjE0ODZBRDY0MDA4MTdEQTkgLyogUmV0YWluUHRyLmNw
cCAqLywKIAkJCQlDMDk5MUM1MDE0M0M3RDY4MDA3OTk4RjIgLyogUmV0YWluUHRySGFzaGluZy5j
cHAgKi8sCiAJCQkpOwpAQCAtNTIwMCw2ICs1MjAzLDcgQEAKIAkJCQk1M0ZDREU2QjIyOUVGRkI5
MDA1OThFQ0YgLyogSXNvSGVhcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0VCNjJBQjIyMzYw
OURFMDA2OUNCQjAgLyogSXRlcmF0b3JSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTA1
MDk0MTFGQjlGMDY0MDBCMzNGQjggLyogSlNPTlZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTk1NEU0MTMwMjY1NkUwNjgwMDQ1NUQ0RiAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MzFDMUQ4RTFERjhFRjcyMDA2RTk3OUYgLyogTEVCRGVjb2Rlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBNTdENTRGOTFGMzM5N0I0MDBBOTdBQTcgLyogTGlmZWN5Y2xlTG9nZ2VyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTkzRTJDNTU1MUZEMzIwNDEwMEUxREY2QSAvKiBMaW5lRW5k
aW5nLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvY2YvTGFuZ3VhZ2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Y2YvTGFuZ3VhZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlYjQ2NWQwNmE5NmE1OTE4YjczZWNlZjhkNzhj
YWViZTI2ZmM1ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9jZi9MYW5ndWFnZS5jcHAKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVEVT
VChMYW5ndWFnZSwgU2hvdWxkTWluaW1pemVMYW5ndWFnZXNZZXMpCit7CisgICAgb3ZlcnJpZGVV
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHsgfSk7CisgICAgV1RGOjpvdmVycmlkZUluaXRpYWxQbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNGb3JUZXN0aW5nKHsgImVuLVVTIl9zLCAiZXMtVVMi
X3MsICJmci1VUyJfcyB9KTsKKworICAgIGF1dG8gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExh
bmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzKTsKKworICAgIGF1dG8gZW5nbGlz
aFVTSW5kZXggPSBsYW5ndWFnZXMuZmluZCgiZW4tVVMiX3MpOworICAgIGF1dG8gZW5nbGlzaElu
ZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImVuIl9zKTsKKyAgICBhdXRvIHNwYW5pc2hVU0luZGV4ID0g
bGFuZ3VhZ2VzLmZpbmQoImVzLVVTIl9zKTsKKyAgICBhdXRvIHNwYW5pc2hJbmRleCA9IGxhbmd1
YWdlcy5maW5kKCJlcyJfcyk7CisgICAgYXV0byBmcmVuY2hVU0luZGV4ID0gbGFuZ3VhZ2VzLmZp
bmQoImZyLVVTIl9zKTsKKyAgICBhdXRvIGZyZW5jaEluZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImZy
Il9zKTsKKworICAgIEVYUEVDVF9UUlVFKGVuZ2xpc2hVU0luZGV4ICE9IG5vdEZvdW5kIHx8IGVu
Z2xpc2hJbmRleCAhPSBub3RGb3VuZCk7CisgICAgRVhQRUNUX0VRKHNwYW5pc2hVU0luZGV4LCBu
b3RGb3VuZCk7CisgICAgRVhQRUNUX0VRKHNwYW5pc2hJbmRleCwgbm90Rm91bmQpOworICAgIEVY
UEVDVF9FUShmcmVuY2hVU0luZGV4LCBub3RGb3VuZCk7CisgICAgRVhQRUNUX0VRKGZyZW5jaElu
ZGV4LCBub3RGb3VuZCk7CisKKyAgICBXVEY6Om92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlc0ZvclRlc3RpbmcoeyB9KTsgLy8gY2xlYW51cAorfQorCitURVNUKExh
bmd1YWdlLCBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlc05vKQoreworICAgIG92ZXJyaWRlVXNlclBy
ZWZlcnJlZExhbmd1YWdlcyh7IH0pOworICAgIFdURjo6b3ZlcnJpZGVJbml0aWFsUGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzRm9yVGVzdGluZyh7ICJlbi1VUyJfcywgImVzLVVTIl9zLCAi
ZnItVVMiX3MgfSk7CisKKyAgICBhdXRvIGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKTsKKworICAgIGF1dG8gZW5nbGlzaFVTSW5k
ZXggPSBsYW5ndWFnZXMuZmluZCgiZW4tVVMiX3MpOworICAgIGF1dG8gZW5nbGlzaEluZGV4ID0g
bGFuZ3VhZ2VzLmZpbmQoImVuIl9zKTsKKyAgICBhdXRvIHNwYW5pc2hVU0luZGV4ID0gbGFuZ3Vh
Z2VzLmZpbmQoImVzLVVTIl9zKTsKKyAgICBhdXRvIHNwYW5pc2hJbmRleCA9IGxhbmd1YWdlcy5m
aW5kKCJlcyJfcyk7CisgICAgYXV0byBmcmVuY2hVU0luZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImZy
LVVTIl9zKTsKKyAgICBhdXRvIGZyZW5jaEluZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImZyIl9zKTsK
KworICAgIEVYUEVDVF9ORShlbmdsaXNoVVNJbmRleCwgbm90Rm91bmQpOworICAgIGlmIChlbmds
aXNoSW5kZXggIT0gbm90Rm91bmQpIHsKKyAgICAgICAgRVhQRUNUX0dUKGVuZ2xpc2hJbmRleCwg
ZW5nbGlzaFVTSW5kZXgpOworICAgICAgICBFWFBFQ1RfTFQoZW5nbGlzaEluZGV4LCBzcGFuaXNo
VVNJbmRleCk7CisgICAgfQorICAgIEVYUEVDVF9ORShzcGFuaXNoVVNJbmRleCwgbm90Rm91bmQp
OworICAgIEVYUEVDVF9HVChzcGFuaXNoVVNJbmRleCwgZW5nbGlzaFVTSW5kZXgpOworICAgIGlm
IChzcGFuaXNoSW5kZXggIT0gbm90Rm91bmQpIHsKKyAgICAgICAgRVhQRUNUX0dUKHNwYW5pc2hJ
bmRleCwgc3BhbmlzaFVTSW5kZXgpOworICAgICAgICBFWFBFQ1RfTFQoc3BhbmlzaEluZGV4LCBm
cmVuY2hVU0luZGV4KTsKKyAgICB9CisgICAgRVhQRUNUX05FKGZyZW5jaFVTSW5kZXgsIG5vdEZv
dW5kKTsKKyAgICBFWFBFQ1RfR1QoZnJlbmNoVVNJbmRleCwgc3BhbmlzaFVTSW5kZXgpOworICAg
IGlmIChmcmVuY2hJbmRleCAhPSBub3RGb3VuZCkKKyAgICAgICAgRVhQRUNUX0dUKGZyZW5jaElu
ZGV4LCBmcmVuY2hVU0luZGV4KTsKKworICAgIFdURjo6b3ZlcnJpZGVJbml0aWFsUGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzRm9yVGVzdGluZyh7IH0pOyAvLyBjbGVhbnVwCit9CisKK30g
Ly8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429458</attachid>
            <date>2021-05-22 22:34:49 -0700</date>
            <delta_ts>2021-05-23 11:43:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226038-20210522233448.patch</filename>
            <type>text/plain</type>
            <size>55011</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDZjYTg2Njk0N2ZjZDg4YTAyZjQxY2JmMDQ5M2Uy
MTUzMzAzYTA3M2UuLmRhN2Q2ZTY0Y2M5M2IwYjQxYzM5ZWQ2NTAzNzQ5MmNlMTIzNTY1NWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA1LTIyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENv
bnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxs
IGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWEgY29udHJvbHMg
bmVlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBpbiBv
cmRlciB0byBwcm9wZXJseQorICAgICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNrcyBp
biB0aGUgY29udHJvbHMgVUkuIEZvciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3VidGl0
bGVzCisgICAgICAgIGZvciBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhlIHVz
ZXIgaGFzIEVuZ2xpc2ggKGRlZmF1bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAgICAg
Y29uZmlndXJlZCBpbiB0aGUgTGFuZ3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJlZmVy
ZW5jZXMgb24gbWFjT1MsIFdlYktpdCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRpdGxl
cyBsaXN0IEVuZ2xpc2gsIEZyZW5jaCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3Bw
OgorICAgICAgICAoSlNDOjpkZWZhdWx0TG9jYWxlKToKKyAgICAgICAgVXBkYXRlIHVzYWdlIG9m
IGBXVEY6OmRlZmF1bHRMYW5ndWFnZWAgdG8gYWxzbyBoYXZlIGBXVEY6OlNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzYC4KKworICAgICAgICAqIHNoZWxsL3BsYXlzdGF0aW9uL1Rlc3RTaGVsbC5jcHA6
CisgICAgICAgIChwcmVUZXN0KToKKyAgICAgICAgSW5zdGVhZCBvZiBwcm9wYWdhdGluZyB0aGUg
b3ZlcnJpZGUsIGp1c3QgY2xlYXIgaXQgb3V0LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
SmF2YVNjcmlwdENvcmUueGNjb25maWc6CisgICAgICAgIExpbmsgYEludGVybmF0aW9uYWxTdXBw
b3J0YCBhcyB0aGF0J3Mgd2hlcmUgdGhlIGBOU0xvY2FsZWAgZXh0ZW5zaW9ucyBhcmUgaW1wbGVt
ZW50ZWQuCisKIDIwMjEtMDUtMjEgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSB0aGUgdW5uZWNlc3NhcnkgdXNlIG9mIENvbXBpbGVPcFN0cmljdEVxVHlw
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggZDA1M2IzODRhMGNkZmMzY2E2YzAwMzYwNTgzZTczYWI5ZTRlYTc3Zi4uM2MxNTQ4
ZTRkMTAzNjhhYjQwNWYzNjRhMGVkN2I2YWZmOGI0MzdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAor
MjAyMS0wNS0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
W01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRpYSBjb250cm9s
cyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZvciBvcmRlcmlu
ZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qgb2YgbGFuZ3VhZ2Ug
cHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29ydC9vcmRlciB0aGUg
bGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBsZSwgaWYgYSBgPHZp
ZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3BhbmlzaCwgYW5kIEZy
ZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQgRnJlbmNoIChhbHRl
cm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYgUmVnaW9uIHZpZXcg
b2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxkIG9yZGVyCisgICAg
ICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0aGVuIFNwYW5pc2gu
CisKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuaDoKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuY3Bw
OgorICAgICAgICAoV1RGOjpjYWNoZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMpOiBB
ZGRlZC4KKyAgICAgICAgKFdURjo6Y2FjaGVkTWluaW1pemVkUGxhdGZvcm1QcmVmZXJyZWRMYW5n
dWFnZXMpOiBBZGRlZC4KKyAgICAgICAgKFdURjo6bGFuZ3VhZ2VEaWRDaGFuZ2UpOgorICAgICAg
ICAoV1RGOjpkZWZhdWx0TGFuZ3VhZ2UpOgorICAgICAgICAoV1RGOjp1c2VyUHJlZmVycmVkTGFu
Z3VhZ2VzKToKKyAgICAgICAgKFdURjo6aW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2Vz
T3ZlcnJpZGVGb3JUZXN0aW5nKTogQWRkZWQuCisgICAgICAgIChXVEY6OmluaXRpYWxQbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcpOiBBZGRlZC4KKyAgICAg
ICAgKFdURjo6b3ZlcnJpZGVJbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRm9y
VGVzdGluZyk6IEFkZGVkLgorICAgICAgICAoV1RGOjpwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdl
KTogRGVsZXRlZC4KKyAgICAgICAgTW92ZSB0aGUgY2FjaGluZyBpbiBgd3RmL2NmL0xhbmd1YWdl
Q0YuY3BwYCB0byBgd3RmL0xhbmd1YWdlLmNwcGAgc28gdGhhdCBhbGwgcGxhdGZvcm1zIGNhbgor
ICAgICAgICBiZW5lZml0IGZyb20gY2FjaGluZyB0aGUgcmVzdWx0IG9mIGBwbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNgLgorCisgICAgICAgICogd3RmL2NmL0xhbmd1YWdlQ0YuY3BwOgor
ICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICAo
V1RGOjpwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYv
Y29jb2EvTGFuZ3VhZ2VDb2NvYS5tbToKKyAgICAgICAgKFdURjo6YmFzZUxhbmd1YWdlRnJvbUxh
bmd1YWdlKTogQWRkZWQuCisgICAgICAgICogd3RmL3BsYXlzdGF0aW9uL0xhbmd1YWdlUGxheVN0
YXRpb24uY3BwOgorICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMp
OgorICAgICAgICAqIHd0Zi9zcGkvY29jb2EvTlNMb2NhbGVTUEkuaDoKKyAgICAgICAgKiB3dGYv
dW5peC9MYW5ndWFnZVVuaXguY3BwOgorICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMpOgorICAgICAgICAqIHd0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwOgorICAgICAg
ICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICBBZGQgYFdU
Rjo6U2hvdWxkTWluaW1pemVMYW5ndWFnZXNgIHRoYXQgY29udHJvbHMgd2hldGhlciBgV1RGOjpt
aW5pbWl6ZWRQcmVmZXJyZWRMYW5ndWFnZXNgCisgICAgICAgIGlzIGNhbGxlZC4gU2luY2UgdGhl
IHJlc3VsdCBpcyBjYWNoZWQsIGNyZWF0ZSBzZXBhcmF0ZSBgVmVjdG9yPFN0cmluZz5gIGZvciBl
YWNoIGVudW0gdmFsdWUuCisKIDIwMjEtMDUtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBVc2UgQ2hlY2tlZENvbmRpdGlvbiBpbiBtb3JlIHBsYWNlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGFkM2ExNGUxZThhM2JhMmU1NDI3OWEwM2NhMDI1MDM2MmExMzkyMmEuLjU0MzRi
M2JhNDUzZjM5NTMxZTQ4NWNiYmIzYTI4YTE4OGUxN2ZiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNSBAQAorMjAyMS0wNS0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRp
YSBjb250cm9scyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZv
ciBvcmRlcmluZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qgb2Yg
bGFuZ3VhZ2UgcHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29ydC9v
cmRlciB0aGUgbGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBsZSwg
aWYgYSBgPHZpZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3Bhbmlz
aCwgYW5kIEZyZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQgRnJl
bmNoIChhbHRlcm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYgUmVn
aW9uIHZpZXcgb2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxkIG9y
ZGVyCisgICAgICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0aGVu
IFNwYW5pc2guCisKKyAgICAgICAgVGVzdHM6IExhbmd1YWdlLlNob3VsZE1pbmltaXplTGFuZ3Vh
Z2VzWWVzCisgICAgICAgICAgICAgICBMYW5ndWFnZS5TaG91bGRNaW5pbWl6ZUxhbmd1YWdlc05v
CisKKyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnRleHRUcmFja1Nl
bGVjdGlvblNjb3JlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVy
ZW5jZXM6OnByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZSBjb25zdCk6CisgICAgICAg
ICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6cHJlZmVycmVkTGFuZ3VhZ2VzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkRGlzcGxheVN0cmluZ0ZvclRyYWNrQmFzZSk6
CisgICAgICAgIChXZWJDb3JlOjp0ZXh0VHJhY2tDb21wYXJlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQzo6dXBkYXRlT3B0aW9u
cyk6CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICBXcmFwIGBk
ZWZhdWx0TGFuZ3VhZ2VgIGluIGEgbGFtYmRhIHNpbmNlIGl0IG5vdyBoYXMgYSBwYXJhbWV0ZXIu
CisKIDIwMjEtMDUtMjEgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAg
IEFsbCBOZXRmbGl4IHBsYXliYWNrIGZhaWxzIGFmdGVyIHIyNzc3NDAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54Y2NvbmZp
ZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54
Y2NvbmZpZwppbmRleCA2ZGY4ZjAwYjQyYzMwM2Q0ZjI2ODBmYzY5ZDAyMTM1MTI2YWY0YzA0Li5j
N2FjMTcwYzExYjZjMTgzMjUzNmI0OGYyODMyZDhjYmUyMjA0ZjQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvSmF2YVNjcmlwdENvcmUueGNjb25maWcK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0phdmFTY3JpcHRDb3Jl
LnhjY29uZmlnCkBAIC0yOSw3ICsyOSwxMCBAQCBNT0RVTEVNQVBfRklMRSA9ICQoU1JDUk9PVCkv
SmF2YVNjcmlwdENvcmUubW9kdWxlbWFwOwogLy8gUHJldmVudCBDKysgc3RhbmRhcmQgbGlicmFy
eSBvcGVyYXRvciBuZXcsIGRlbGV0ZSBhbmQgdGhlaXIgcmVsYXRlZCBleGNlcHRpb24gdHlwZXMg
ZnJvbSBiZWluZyBleHBvcnRlZCBhcyB3ZWFrIHN5bWJvbHMuCiBPVEhFUl9MREZMQUdTX0hJREVf
U1lNQk9MUyA9IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pUSVN0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
LF9fWlRTU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVFNTdDlleGNlcHRp
b24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pkbFB2U18gLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCxfX1pud21QdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5LU3QzX18xOGZ1bmN0aW9uSUZ2
dkVFY2xFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVD
MUVPUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMThmdW5jdGlvbklGdnZFRUMy
RU9TMl8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOS1N0M19fMThmdW5jdGlvbklGdlJOM0pT
QzE3Qnl0ZWNvZGVHZW5lcmF0b3JFUE5TMV8xMFJlZ2lzdGVySURFRUVjbEVTM19TNV8gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdl
bmVyYXRvckVQTlMxXzEwUmVnaXN0ZXJJREVFRUQxRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxf
X1pOU3QzX18xOGZ1bmN0aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvckVQTlMxXzEwUmVn
aXN0ZXJJREVFRUQyRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xOGZ1bmN0aW9u
SUZ2dkVFRDFFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2
RUVEMkV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVFZOU3QzX18xMTdiYWRfZnVuY3Rpb25f
Y2FsbEUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0y
NF9faXNfcGF0aGFibGVfY2hhcl9hcnJheUlQS2NTNF9jTGIxRUUxMV9fcmFuZ2VfZW5kRVM0XyAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTI0X19pc19w
YXRoYWJsZV9jaGFyX2FycmF5SVBLY1M0X2NMYjFFRTEzX19yYW5nZV9iZWdpbkVTNF8gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW04X1BhdGhDVlRJY0Ux
NF9fYXBwZW5kX3JhbmdlSVBLY0VFTlNfOWVuYWJsZV9pZklYc3IyN19faXNfY3BwMTdfZm9yd2Fy
ZF9pdGVyYXRvcklUX0VFNXZhbHVlRXZFNHR5cGVFUk5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNo
YXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTOF9TOF8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW04X1BhdGhDVlRJY0UxNV9fYXBwZW5kX3Nv
dXJjZUlQS2NFRXZSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFs
bG9jYXRvckljRUVFRVJLVF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMx
MGZpbGVzeXN0ZW04X1BhdGhDVlRJY0UxNF9fYXBwZW5kX3JhbmdlSVBLY0VFTlNfOWVuYWJsZV9p
ZklYc3IyMV9faXNfZm9yd2FyZF9pdGVyYXRvcklUX0VFNXZhbHVlRXZFNHR5cGVFUk5TXzEyYmFz
aWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTOF9TOF8g
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOS1N0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJl
Y3RvcnlfaXRlcmF0b3JkZUV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2Zz
MTBmaWxlc3lzdGVtMThkaXJlY3RvcnlfaXRlcmF0b3JwcEV2IC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJ
QTEwX2NQY2NMYjFFRTExX19yYW5nZV9lbmRFUEtjIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19a
TlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJQTEwX2NQ
Y2NMYjFFRTEzX19yYW5nZV9iZWdpbkVQS2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3Qz
X18xNF9fZnMxMGZpbGVzeXN0ZW00cGF0aGRWRVJLUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2ws
X19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtOF9QYXRoQ1ZUSWNFMTVfX2FwcGVuZF9zb3VyY2VJ
QTEwX2NFRXZSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9j
YXRvckljRUVFRVJLVF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZp
bGVzeXN0ZW0yNF9fdGhyb3dfZmlsZXN5c3RlbV9lcnJvcklKUlBLY1JLTlMxXzRwYXRoRVJLTlNf
MTBlcnJvcl9jb2RlRUVFRXZEcE9UXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0
X19mczEwZmlsZXN5c3RlbTE0X19pc19zZXBhcmF0b3JJY0VFTlNfOWVuYWJsZV9pZklYc3IxOF9f
Y2FuX2NvbnZlcnRfY2hhcklUX0VFNXZhbHVlRWJFNHR5cGVFUzRfIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJy
YXlJUEtjUzRfY0xiMUVFMTVfX2ZpcnN0X29yX251bGxFUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtNHBhdGgyMF9fc291cmNlX2lzX2Fic29sdXRl
SWNFRWJUXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3Rl
bTRwYXRoNmFwcGVuZElQS2NFRU5TXzllbmFibGVfaWZJWHNyMTNfX2lzX3BhdGhhYmxlSVRfRUU1
dmFsdWVFUlMyX0U0dHlwZUVSS1M3XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0
X19mczEwZmlsZXN5c3RlbTZ1OHBhdGhJUEtjRUVOU185ZW5hYmxlX2lmSVhzcjEzX19pc19wYXRo
YWJsZUlUX0VFNXZhbHVlRU5TMV80cGF0aEVFNHR5cGVFUktTNl8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCxfX1pOS1N0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJlY3RvcnlfaXRlcmF0b3JwdEV2
IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJl
Y3RvcnlfaXRlcmF0b3I5aW5jcmVtZW50RVJOU18xMGVycm9yX2NvZGVFOwogCi1PVEhFUl9MREZM
QUdTX0JBU0UgPSAkKE9USEVSX0xERkxBR1NfSElERV9TWU1CT0xTKSAtZm9yY2VfbG9hZCAiJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL2xpYldURi5h
IjsKKy8vIE5lZWRlZCBieSBgU291cmNlL1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbWAu
CitXS19JTlRFUk5BVElPTkFMX1NVUFBPUlRfTERGTEFHUyA9IC1mcmFtZXdvcmsgSW50ZXJuYXRp
b25hbFN1cHBvcnQ7CisKK09USEVSX0xERkxBR1NfQkFTRSA9ICQoT1RIRVJfTERGTEFHU19ISURF
X1NZTUJPTFMpIC1pZnJhbWV3b3JrICQoU0RLX0RJUikkKFNZU1RFTV9MSUJSQVJZX0RJUikvUHJp
dmF0ZUZyYW1ld29ya3MgLWZvcmNlX2xvYWQgIiQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9KYXZhU2NyaXB0Q29yZS9saWJXVEYuYSIgJChXS19JTlRFUk5BVElPTkFMX1NVUFBP
UlRfTERGTEFHUyk7CiBPVEhFUl9MREZMQUdTW3Nkaz1lbWJlZGRlZCpdID0gJChpbmhlcml0ZWQp
ICQoT1RIRVJfTERGTEFHU19CQVNFKTsKIE9USEVSX0xERkxBR1Nbc2RrPW1hY29zeCpdID0gJChp
bmhlcml0ZWQpICQoT1RIRVJfTERGTEFHU19CQVNFKSAtZnJhbWV3b3JrIENvcmVTZXJ2aWNlczsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL3BsYXlzdGF0aW9uL1Rl
c3RTaGVsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvcGxheXN0YXRpb24vVGVz
dFNoZWxsLmNwcAppbmRleCAyNzgyZmRhMDg5ODY1ZGNmMGUyZjdjMWRiMjkzMzE1MTI4OTRkZTQ5
Li4zMWZlYWY3ZWM1OGY3OTVmOGMzZGJiNzdkOWY5NTdjMzNmNjJmYzMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcApA
QCAtNjIsNyArNjIsNyBAQCBleHRlcm4gIkMiIHZvaWQgcHJlVGVzdCgpCiAgICAgSlNDOjpPcHRp
b25zOjpuYW1lXygpID0gb3JpZyMjbmFtZV87CiAgICAgRk9SX0VBQ0hfSlNDX09QVElPTihJTklU
X09QVElPTikKICN1bmRlZiBJTklUX09QVElPTgotICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExh
bmd1YWdlcyhwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSk7CisgICAgb3ZlcnJpZGVV
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHsgfSk7CiB9CiAKIGV4dGVybiAiQyIgaW50IHJ1blRlc3Qo
aW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xhbmd1
YWdlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcAppbmRleCBiZTYyNThkODU3ZTU5
ODhmOTY5ODM5MDIwMmJjYzkzYzNjMTc4MjBmLi43MDE2OTYyMDUyZmJhOGFlM2Q5OTFlMmEwYWYw
N2MyYjUxN2EzYmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwCkBAIC0zNyw2ICszNywxOCBAQAogCiBuYW1l
c3BhY2UgV1RGIHsKIAorc3RhdGljIENoZWNrZWRMb2NrIGNhY2hlZFBsYXRmb3JtUHJlZmVycmVk
TGFuZ3VhZ2VzTG9jazsKK3N0YXRpYyBWZWN0b3I8U3RyaW5nPiYgY2FjaGVkRnVsbFBsYXRmb3Jt
UHJlZmVycmVkTGFuZ3VhZ2VzKCkgV1RGX1JFUVVJUkVTX0xPQ0soY2FjaGVkUGxhdGZvcm1QcmVm
ZXJyZWRMYW5ndWFnZXNMb2NrKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8
U3RyaW5nPj4gbGFuZ3VhZ2VzOworICAgIHJldHVybiBsYW5ndWFnZXM7Cit9CitzdGF0aWMgVmVj
dG9yPFN0cmluZz4mIGNhY2hlZE1pbmltaXplZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkg
V1RGX1JFUVVJUkVTX0xPQ0soY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrKQor
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4gbGFuZ3VhZ2VzOwor
ICAgIHJldHVybiBsYW5ndWFnZXM7Cit9CisKIHN0YXRpYyBDaGVja2VkTG9jayBwcmVmZXJyZWRM
YW5ndWFnZXNPdmVycmlkZUxvY2s7CiBzdGF0aWMgVmVjdG9yPFN0cmluZz4mIHByZWZlcnJlZExh
bmd1YWdlc092ZXJyaWRlKCkgV1RGX1JFUVVJUkVTX0xPQ0socHJlZmVycmVkTGFuZ3VhZ2VzT3Zl
cnJpZGVMb2NrKQogewpAQCAtNjgsMTYgKzgwLDIxIEBAIHZvaWQgcmVtb3ZlTGFuZ3VhZ2VDaGFu
Z2VPYnNlcnZlcih2b2lkKiBjb250ZXh0KQogCiB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCkKIHsK
LSAgICBwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdlKCk7CisgICAgeworICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrIH07CisgICAgICAg
IGNhY2hlZEZ1bGxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpLmNsZWFyKCk7CisgICAgICAg
IGNhY2hlZE1pbmltaXplZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkuY2xlYXIoKTsKKyAg
ICB9CisKICAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogY29weVRvVmVjdG9yKG9ic2VydmVyTWFw
KCkpKSB7CiAgICAgICAgIGlmIChvYnNlcnZlck1hcCgpLmNvbnRhaW5zKG9ic2VydmVyLmtleSkp
CiAgICAgICAgICAgICBvYnNlcnZlci52YWx1ZShvYnNlcnZlci5rZXkpOwogICAgIH0KIH0KIAot
U3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgpCitTdHJpbmcgZGVmYXVsdExhbmd1YWdlKFNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzIHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewotICAgIFZlY3RvcjxT
dHJpbmc+IGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBWZWN0b3I8
U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzKTsKICAgICBpZiAobGFuZ3VhZ2VzLnNpemUoKSkKICAgICAgICAgcmV0dXJuIGxh
bmd1YWdlc1swXTsKIApAQCAtMTA4LDcgKzEyNSw3IEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBp
c29sYXRlZENvcHkoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmluZ3MpCiAgICAgcmV0dXJuIGNv
cHk7CiB9CiAKLVZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9y
PFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyBz
aG91bGRNaW5pbWl6ZUxhbmd1YWdlcykKIHsKICAgICB7CiAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUxvY2sgfTsKQEAgLTExNyw3ICsxMzQsMTEgQEAg
VmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpCiAgICAgICAgICAgICByZXR1
cm4gaXNvbGF0ZWRDb3B5KG92ZXJyaWRlKTsKICAgICB9CiAKLSAgICByZXR1cm4gcGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgTG9ja2VyIGxvY2tlciB7IGNhY2hlZFBsYXRm
b3JtUHJlZmVycmVkTGFuZ3VhZ2VzTG9jayB9OworICAgIGF1dG8mIGxhbmd1YWdlcyA9IHNob3Vs
ZE1pbmltaXplTGFuZ3VhZ2VzID09IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMgPyBjYWNo
ZWRNaW5pbWl6ZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpIDogY2FjaGVkRnVsbFBsYXRm
b3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgaWYgKGxhbmd1YWdlcy5pc0VtcHR5KCkpCisg
ICAgICAgIGxhbmd1YWdlcyA9IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhzaG91bGRN
aW5pbWl6ZUxhbmd1YWdlcyk7CisgICAgcmV0dXJuIGlzb2xhdGVkQ29weShsYW5ndWFnZXMpOwog
fQogCiBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmd1YWdlSWRlbnRpZmllcihjb25zdCBTdHJp
bmcmIGxhbmd1YWdlQ29kZSkKQEAgLTE4NCwxMCArMjA1LDI2IEBAIFN0cmluZyBkaXNwbGF5TmFt
ZUZvckxhbmd1YWdlTG9jYWxlKGNvbnN0IFN0cmluZyYgbG9jYWxlTmFtZSkKICAgICByZXR1cm4g
bG9jYWxlTmFtZTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkKLXZvaWQgcGxhdGZvcm1MYW5n
dWFnZURpZENoYW5nZSgpCitzdGF0aWMgQ2hlY2tlZExvY2sgaW5pdGlhbFBsYXRmb3JtUHJlZmVy
cmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nTG9jazsKK3N0YXRpYyBWZWN0b3I8U3RyaW5n
PiYgaW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nKCkg
V1RGX1JFUVVJUkVTX0xPQ0soaW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJp
ZGVGb3JUZXN0aW5nTG9jaykKIHsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0
cmluZz4+IG92ZXJyaWRlOworICAgIHJldHVybiBvdmVycmlkZTsKIH0KLSNlbmRpZgogCitWZWN0
b3I8U3RyaW5nPiBpbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVG
b3JUZXN0aW5nKCkKK3sKKyAgICBMb2NrZXIgbG9ja2VyIHsgaW5pdGlhbFBsYXRmb3JtUHJlZmVy
cmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nTG9jayB9OworICAgIHJldHVybiBpbml0aWFs
UGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKTsKIH0KKwordm9p
ZCBvdmVycmlkZUluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNGb3JUZXN0aW5n
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvdmVycmlkZSkKK3sKKyAgICB7CisgICAgICAgIExvY2tl
ciBsb2NrZXIgeyBpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRl
c3RpbmdMb2NrIH07CisgICAgICAgIGluaXRpYWxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc092
ZXJyaWRlRm9yVGVzdGluZygpID0gb3ZlcnJpZGU7CisgICAgfQorICAgIGxhbmd1YWdlRGlkQ2hh
bmdlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvTGFuZ3VhZ2UuaCBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmgKaW5kZXggZjA3NGQ3NTY4
ZDAwMmU5MzJhNTMyNmJkYjUyZDdmYjhjMDY1ODE4My4uMjkwZTNlN2M4YjQ0N2UyNGYzZTE4OGVi
ZTBlNTNiYjYyZGZmYjA3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oCkBAIC0zNSwxMyArMzUsMTMgQEAKIAogbmFt
ZXNwYWNlIFdURiB7CiAKLVdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgZGVmYXVsdExhbmd1YWdl
KCk7IC8vIFRocmVhZC1zYWZlLgotV1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsgLy8gVGhyZWFkLXNhZmUsIHJldHVybnMgQkNQIDQ3IGxh
bmd1YWdlIHRhZ3MuCitlbnVtIGNsYXNzIFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzIHsgTm8sIFll
cyB9OworCitXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIGRlZmF1bHRMYW5ndWFnZShTaG91bGRN
aW5pbWl6ZUxhbmd1YWdlcyA9IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMpOyAvLyBUaHJl
YWQtc2FmZS4KK1dURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID0gU2hvdWxkTWluaW1pemVMYW5ndWFn
ZXM6Olllcyk7IC8vIFRocmVhZC1zYWZlLCByZXR1cm5zIEJDUCA0NyBsYW5ndWFnZSB0YWdzLgog
V1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNP
dmVycmlkZSgpOwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgb3ZlcnJpZGVVc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgc2l6
ZV90IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChjb25zdCBTdHJpbmcmIGxhbmd1
YWdlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VMaXN0LCBib29sJiBleGFjdE1hdGNo
KTsKLVdURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoKTsKLVdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHBsYXRmb3JtTGFuZ3VhZ2VE
aWRDaGFuZ2UoKTsKIAogLy8gQ2FsbGVkIGZyb20gcGxhdGZvcm0gc3BlY2lmaWMgY29kZSB3aGVu
IHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlKHMpIGNoYW5nZS4KIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCk7CkBAIC01MiwyMCArNTIsMjYgQEAgV1RGX0VY
UE9SVF9QUklWQVRFIHZvaWQgYWRkTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0
LCBMYW5ndWFnZUNoYW5nZU8KIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHJlbW92ZUxhbmd1YWdl
Q2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5n
IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJik7CiAKK1ZlY3RvcjxT
dHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1
YWdlcyA9IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMpOworCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiBib29sIGNhbk1pbmltaXplTGFuZ3VhZ2VzKCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBsaXN0ZW5Gb3JMYW5ndWFnZUNoYW5nZU5vdGlmaWNhdGlvbnMoKTsKIFJldGFpblB0cjxDRkFy
cmF5UmVmPiBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzKENGQXJyYXlSZWYpOwotI2Vu
ZGlmCitSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGJhc2VMYW5ndWFnZUZyb21MYW5ndWFnZShDRlN0
cmluZ1JlZik7CiAKLX0KK1ZlY3RvcjxTdHJpbmc+IGluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKTsKK1dURl9FWFBPUlRfUFJJVkFURSB2b2lk
IG92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0ZvclRlc3Rpbmco
Y29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAorfSAv
LyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6U2hvdWxkTWluaW1pemVMYW5ndWFnZXM7CiB1
c2luZyBXVEY6OmRlZmF1bHRMYW5ndWFnZTsKIHVzaW5nIFdURjo6dXNlclByZWZlcnJlZExhbmd1
YWdlczsKIHVzaW5nIFdURjo6dXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlOwogdXNpbmcg
V1RGOjpvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7CiB1c2luZyBXVEY6OmluZGV4T2ZC
ZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdDsKLXVzaW5nIFdURjo6cGxhdGZvcm1Vc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzOwogdXNpbmcgV1RGOjphZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyOwogdXNp
bmcgV1RGOjpyZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyOwogdXNpbmcgV1RGOjpkaXNwbGF5
TmFtZUZvckxhbmd1YWdlTG9jYWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY2YvTGFu
Z3VhZ2VDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcAppbmRleCBlMDcz
MTE1NDI5MWJmZDA3YzRjYzE2ZGEwNDJhYWFkYjU5YzllM2IxLi40YzdiNjAyZWRhZDRiNTNlMzMw
MjQzZTg5OGQ2Yjc1YjAwMjEzMzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5n
dWFnZUNGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcApAQCAtMzAs
MTYgKzMwLDEyIEBACiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8dW5pY29kZS91bG9jLmg+
CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2su
aD4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3NwaS9jZi9DRkJ1bmRsZVNQSS5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIAotc3RhdGljIENoZWNrZWRM
b2NrIHByZWZlcnJlZExhbmd1YWdlc0xvY2s7Ci0KICNpZiBQTEFURk9STShNQUMpCiBzdGF0aWMg
dm9pZCBsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdlKENGTm90aWZpY2F0aW9uQ2VudGVyUmVm
LCB2b2lkKiwgQ0ZTdHJpbmdSZWYsIGNvbnN0IHZvaWQqLCBDRkRpY3Rpb25hcnlSZWYpCiB7CkBA
IC00NywxNiArNDMsNiBAQCBzdGF0aWMgdm9pZCBsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdl
KENGTm90aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkKiwgQ0ZTdHJpbgogfQogI2VuZGlmCiAKLXN0
YXRpYyBWZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzKCkgV1RGX1JFUVVJUkVTX0xP
Q0socHJlZmVycmVkTGFuZ3VhZ2VzTG9jaykKLXsKLSAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJv
eWVkPFZlY3RvcjxTdHJpbmc+PiBsYW5ndWFnZXM7Ci0gICAgc3RhdGljIHN0ZDo6b25jZV9mbGFn
IG9uY2VLZXk7Ci0gICAgc3RkOjpjYWxsX29uY2Uob25jZUtleSwgWyZdIHsKLSAgICAgICAgbGFu
Z3VhZ2VzLmNvbnN0cnVjdCgpOwotICAgIH0pOwotICAgIHJldHVybiBsYW5ndWFnZXM7Ci19Ci0K
IHN0YXRpYyBTdHJpbmcgaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKENGU3RyaW5nUmVmIGxhbmd1YWdl
KQogewogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcHJlZmVycmVkTGFuZ3VhZ2VDb2RlOwpA
QCAtODgsMTQgKzc0LDYgQEAgc3RhdGljIFN0cmluZyBodHRwU3R5bGVMYW5ndWFnZUNvZGUoQ0ZT
dHJpbmdSZWYgbGFuZ3VhZ2UpCiAgICAgcmV0dXJuIG11dGFibGVMYW5ndWFnZUNvZGUuZ2V0KCk7
CiB9CiAKLXZvaWQgcGxhdGZvcm1MYW5ndWFnZURpZENoYW5nZSgpCi17Ci0gICAgewotICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgcHJlZmVycmVkTGFuZ3VhZ2VzTG9jayB9OwotICAgICAgICBwcmVm
ZXJyZWRMYW5ndWFnZXMoKS5jbGVhcigpOwotICAgIH0KLX0KLQogdm9pZCBsaXN0ZW5Gb3JMYW5n
dWFnZUNoYW5nZU5vdGlmaWNhdGlvbnMoKQogewogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTEwNiwz
MiArODQsMzggQEAgdm9pZCBsaXN0ZW5Gb3JMYW5ndWFnZUNoYW5nZU5vdGlmaWNhdGlvbnMoKQog
I2VuZGlmCiB9CiAKLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cygpCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxk
TWluaW1pemVMYW5ndWFnZXMgc2hvdWxkTWluaW1pemVMYW5ndWFnZXMpCiB7Ci0gICAgTG9ja2Vy
IGxvY2tlciB7IHByZWZlcnJlZExhbmd1YWdlc0xvY2sgfTsKLSAgICBWZWN0b3I8U3RyaW5nPiYg
dXNlclByZWZlcnJlZExhbmd1YWdlcyA9IHByZWZlcnJlZExhbmd1YWdlcygpOworICAgIFJldGFp
blB0cjxDRkFycmF5UmVmPiBwbGF0Zm9ybUxhbmd1YWdlczsKKyAgICBpZiAoYXV0byBvdmVycmlk
ZSA9IGluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3Rp
bmcoKTsgIW92ZXJyaWRlLmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvIGFycmF5ID0gYWRvcHRD
RihDRkFycmF5Q3JlYXRlTXV0YWJsZSgwLCBvdmVycmlkZS5zaXplKCksICZrQ0ZUeXBlQXJyYXlD
YWxsQmFja3MpKTsKKyAgICAgICAgZm9yIChhdXRvJiBpdGVtIDogb3ZlcnJpZGUpCisgICAgICAg
ICAgICBDRkFycmF5QXBwZW5kVmFsdWUoYXJyYXkuZ2V0KCksIGl0ZW0uY3JlYXRlQ0ZTdHJpbmco
KS5nZXQoKSk7CisgICAgICAgIHBsYXRmb3JtTGFuZ3VhZ2VzID0gV1RGTW92ZShhcnJheSk7Cisg
ICAgfSBlbHNlCisgICAgICAgIHBsYXRmb3JtTGFuZ3VhZ2VzID0gYWRvcHRDRihDRkxvY2FsZUNv
cHlQcmVmZXJyZWRMYW5ndWFnZXMoKSk7CiAKLSAgICBpZiAodXNlclByZWZlcnJlZExhbmd1YWdl
cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IGxhbmd1YWdlcyA9
IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5UHJlZmVycmVkTGFuZ3VhZ2VzKCkpOwotICAgICAgICBsYW5n
dWFnZXMgPSBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzKGxhbmd1YWdlcy5nZXQoKSk7
Ci0gICAgICAgIENGSW5kZXggbGFuZ3VhZ2VDb3VudCA9IENGQXJyYXlHZXRDb3VudChsYW5ndWFn
ZXMuZ2V0KCkpOwotICAgICAgICBpZiAoIWxhbmd1YWdlQ291bnQpCi0gICAgICAgICAgICB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZCgiZW4iKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBsYW5ndWFnZUNvdW50OyBpKyspCi0gICAgICAg
ICAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFuZ3VhZ2VD
b2RlKHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGxhbmd1
YWdlcy5nZXQoKSwgaSkpKSk7CisgICAgaWYgKHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID09IFNo
b3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMpCisgICAgICAgIHBsYXRmb3JtTGFuZ3VhZ2VzID0g
bWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlcyhwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSk7
CisKKyAgICBDRkluZGV4IHBsYXRmb3JtTGFuZ3VhZ2VzQ291bnQgPSBDRkFycmF5R2V0Q291bnQo
cGxhdGZvcm1MYW5ndWFnZXMuZ2V0KCkpOworICAgIGlmICghcGxhdGZvcm1MYW5ndWFnZXNDb3Vu
dCkKKyAgICAgICAgcmV0dXJuIHsgImVuIl9zIH07CisKKyAgICBWZWN0b3I8U3RyaW5nPiBsYW5n
dWFnZXM7CisgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgcGxhdGZvcm1MYW5ndWFnZXNDb3Vu
dDsgaSsrKSB7CisgICAgICAgIGF1dG8gcGxhdGZvcm1MYW5ndWFnZSA9IHN0YXRpY19jYXN0PENG
U3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KHBsYXRmb3JtTGFuZ3VhZ2VzLmdldCgp
LCBpKSk7CisgICAgICAgIGxhbmd1YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKHBs
YXRmb3JtTGFuZ3VhZ2UpKTsKKworICAgICAgICBpZiAoc2hvdWxkTWluaW1pemVMYW5ndWFnZXMg
PT0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKSB7CisgICAgICAgICAgICAvLyBDb252ZXJ0
IGxhbmd1YWdlcyB3aXRoIGNvdW50cnkgY29kZXMgdG8gZXF1aXZhbGVudCBsYW5ndWFnZXMgd2l0
aG91dCBjb3VudHJ5IGNvZGVzIChpZiBwb3NzaWJsZSkuCisgICAgICAgICAgICAvLyBlLmcuICJl
bi1VUyIgYmVjb21lcyAiZW4iLCB3aGljaCBpcyB1c2VmdWwgd2hlbiB0cnlpbmcgdG8gbWF0Y2gg
SFRNTCBgbGFuZz0iZW4iYC4KKyAgICAgICAgICAgIGF1dG8gYmFzZUxhbmd1YWdlID0gYmFzZUxh
bmd1YWdlRnJvbUxhbmd1YWdlKHBsYXRmb3JtTGFuZ3VhZ2UpOworICAgICAgICAgICAgaWYgKGJh
c2VMYW5ndWFnZSAmJiBiYXNlTGFuZ3VhZ2UgIT0gcGxhdGZvcm1MYW5ndWFnZSAmJiBDRlN0cmlu
Z0NvbXBhcmUoYmFzZUxhbmd1YWdlLmdldCgpLCBwbGF0Zm9ybUxhbmd1YWdlLCAwKSAhPSBrQ0ZD
b21wYXJlRXF1YWxUbykKKyAgICAgICAgICAgICAgICBsYW5ndWFnZXMuYXBwZW5kKGh0dHBTdHls
ZUxhbmd1YWdlQ29kZShiYXNlTGFuZ3VhZ2UuZ2V0KCkpKTsKICAgICAgICAgfQogICAgIH0KLQot
ICAgIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5OwotICAgIHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNDb3B5LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodXNlclByZWZlcnJl
ZExhbmd1YWdlcy5zaXplKCkpOwotCi0gICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IHVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMpCi0gICAgICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5LnVuY2hl
Y2tlZEFwcGVuZChsYW5ndWFnZS5pc29sYXRlZENvcHkoKSk7Ci0KLSAgICByZXR1cm4gdXNlclBy
ZWZlcnJlZExhbmd1YWdlc0NvcHk7Ci0KLSAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKKyAg
ICByZXR1cm4gbGFuZ3VhZ2VzOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0gYi9Tb3VyY2UvV1RGL3d0Zi9j
b2NvYS9MYW5ndWFnZUNvY29hLm1tCmluZGV4IDViYWI3YzdiMjY3YzBhZGQyNTViMmZlNjc2MmVl
NjQwZTA1ODg5OTMuLjQxZTAzMzI5MWEzMjE3YWE4NDMxZDA2NmZjYjMwOTYyOTBhNTY2ZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0KKysrIGIvU291
cmNlL1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbQpAQCAtMzgsOCArMzgsNyBAQCBib29s
IGNhbk1pbmltaXplTGFuZ3VhZ2VzKCkKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIGlmIChh
cHBsaWNhdGlvblNES1ZlcnNpb24oKSA8IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTVfNCkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKElPUykKKyNlbGlm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgIGlmIChhcHBsaWNhdGlvblNES1ZlcnNpb24o
KSA8IERZTERfSU9TX1ZFUlNJT05fMTNfNCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICNl
bmRpZgpAQCAtNTAsNiArNDksOCBAQCBib29sIGNhbk1pbmltaXplTGFuZ3VhZ2VzKCkKIAogUmV0
YWluUHRyPENGQXJyYXlSZWY+IG1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFnZXMoQ0ZBcnJh
eVJlZiBsYW5ndWFnZXMpCiB7CisgICAgLy8gVGhpcyByZXF1aXJlcyBsaW5raW5nIGBJbnRlcm5h
dGlvbmFsU3VwcG9ydGAuCisKICAgICBpZiAoIWNhbk1pbmltaXplTGFuZ3VhZ2VzKCkpCiAgICAg
ICAgIHJldHVybiBsYW5ndWFnZXM7CiAKQEAgLTU4LDQgKzU5LDI5IEBAIEFMTE9XX05FV19BUElf
V0lUSE9VVF9HVUFSRFNfQkVHSU4KIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiB9
CiAKK3N0YXRpYyBib29sIGNhbkdldEJhc2VMYW5ndWFnZSgpCit7CisgICAgc3RhdGljIGNvbnN0
IGJvb2wgcmVzdWx0ID0gW10oKSAtPiBib29sIHsKKyNpZiBQTEFURk9STShNQUMpCisgICAgICAg
IGlmIChhcHBsaWNhdGlvblNES1ZlcnNpb24oKSA8IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgICAgICBpZiAoYXBwbGljYXRpb25TREtWZXJzaW9uKCkgPCBEWUxEX0lPU19WRVJTSU9OXzEx
XzApCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIFtO
U0xvY2FsZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGJhc2VMYW5ndWFnZUZyb21MYW5n
dWFnZTopXTsKKyAgICB9KCk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KKworUmV0YWluUHRyPENG
U3RyaW5nUmVmPiBiYXNlTGFuZ3VhZ2VGcm9tTGFuZ3VhZ2UoQ0ZTdHJpbmdSZWYgbGFuZ3VhZ2Up
Cit7CisgICAgLy8gVGhpcyByZXF1aXJlcyBsaW5raW5nIGBJbnRlcm5hdGlvbmFsU3VwcG9ydGAu
CisKKyAgICBpZiAoIWNhbkdldEJhc2VMYW5ndWFnZSgpKQorICAgICAgICByZXR1cm4gbGFuZ3Vh
Z2U7CisKKyAgICByZXR1cm4gKF9fYnJpZGdlIENGU3RyaW5nUmVmKVtOU0xvY2FsZSBiYXNlTGFu
Z3VhZ2VGcm9tTGFuZ3VhZ2U6KF9fYnJpZGdlIE5TU3RyaW5nICopbGFuZ3VhZ2VdOworfQorCit9
IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0aW9u
L0xhbmd1YWdlUGxheVN0YXRpb24uY3BwIGIvU291cmNlL1dURi93dGYvcGxheXN0YXRpb24vTGFu
Z3VhZ2VQbGF5U3RhdGlvbi5jcHAKaW5kZXggZDQ1MzdhNjk0MGI1ZTAyMmJmNWU1Y2RmNzFhODYz
ZDMzMDlkZjYxYy4uY2FmMTU0OWY4MDAyYzEzN2UyZjFhMDYyMjgxODE1NGY1NjI1NGU1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5j
cHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLVZlY3RvcjxTdHJpbmc+
IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMpCiB7CiAgICAg
VmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9z
cGkvY29jb2EvTlNMb2NhbGVTUEkuaCBiL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9OU0xvY2Fs
ZVNQSS5oCmluZGV4IDVjZWYxNjQwMzE2YjQ3M2E3MWJlN2JiYTYxYTg4Mjc0ZjI4MTA2MjEuLmNh
OTgyMDFjNjE2M2EzNzllZTFkOGYyY2E0ZjU1ZDM2ZmZhYmYwYjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL3NwaS9jb2NvYS9OU0xvY2FsZVNQSS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Nw
aS9jb2NvYS9OU0xvY2FsZVNQSS5oCkBAIC0zMiw2ICszMiw3IEBACiAjZW5kaWYKIAogQGludGVy
ZmFjZSBOU0xvY2FsZSAoKQorKyAobm9ubnVsbCBOU1N0cmluZyAqKWJhc2VMYW5ndWFnZUZyb21M
YW5ndWFnZToobm9ubnVsbCBOU1N0cmluZyAqKWxhbmd1YWdlSUQ7CiArIChub25udWxsIE5TQXJy
YXk8TlNTdHJpbmcgKj4gKiltaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzOihub25udWxs
IE5TQXJyYXk8TlNTdHJpbmcgKj4gKilsYW5ndWFnZXM7CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VuaXgv
TGFuZ3VhZ2VVbml4LmNwcAppbmRleCAzMWM3NTc0NzJlZWFiNjQwNzI2ZTk0YzVjNTc1MDcxOGZh
MzkzOGQxLi5hZjk0YmIwNmNjMzhkZDJhODU5NWJmYmI3NzE2OTBmOTJkYjQ4YWUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCkBAIC00Miw3ICs0Miw3IEBAIHN0YXRpYyBTdHJp
bmcgcGxhdGZvcm1MYW5ndWFnZSgpCiAgICAgcmV0dXJuIG5vcm1hbGl6ZWREZWZhdWx0OwogfQog
Ci1WZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9y
PFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFu
Z3VhZ2VzKQogewogICAgIHJldHVybiB7IHBsYXRmb3JtTGFuZ3VhZ2UoKSB9OwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvd2luL0xhbmd1YWdlV2luLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L3dpbi9MYW5ndWFnZVdpbi5jcHAKaW5kZXggNmI1MmM5YzIwZDE1Y2JhN2UzOWQ1NDIwMTFiNDM4
YTM4MzU4YzJiMi4uYmY5NmIwYTU1Yzg4OTkzMWM0YzJkNTMzMTdlOGM1ZTAxN2UyYWExMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvd2luL0xhbmd1YWdlV2luLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBTdHJp
bmcgcGxhdGZvcm1MYW5ndWFnZSgpCiAgICAgcmV0dXJuIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdl
OwogfQogCi1WZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQor
VmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmlt
aXplTGFuZ3VhZ2VzKQogewogICAgIHJldHVybiB7IHBsYXRmb3JtTGFuZ3VhZ2UoKSB9OwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXgg
YWIwM2JkYjQzYzZmM2EzZjE1YmE5NWU4ZDJiYjMxZTdiY2ExZTUzOS4uODExNDE5MGI0M2VjNTk2
MmQxYmZlNzJjYjhiOTExMjBmY2Q3MjVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC04Myw3ICs4Myw3IEBAIGNvbnN0IEdsb2JhbE9i
amVjdE1ldGhvZFRhYmxlIEpTRE9NV2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSA9IHsKICAgICAmcmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKICAgICAmY3Vy
cmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLAogICAgICZzY3JpcHRFeGVjdXRpb25TdGF0dXMsCi0g
ICAgJmRlZmF1bHRMYW5ndWFnZSwKKyAgICBbXSB7IHJldHVybiBkZWZhdWx0TGFuZ3VhZ2UoKTsg
fSwKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgJmNvbXBpbGVTdHJlYW1pbmcsCiAgICAg
Jmluc3RhbnRpYXRlU3RyZWFtaW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IDQ4Mzk5NzA4ZWUwMzRiYzU4
YWMzODJmM2NhYzk3ZjkxNjc3ODJmYjguLjkyMTI1ZTU2ZDY5OTVkNDYwMGRjZDhmY2I3YjQyM2Jh
NThiYjQ4M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2Vy
R2xvYmFsU2NvcGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgY29uc3QgR2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0
aG9kVGFibGUKICAgICAmcmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKICAgICAm
Y3VycmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLAogICAgICZzY3JpcHRFeGVjdXRpb25TdGF0dXMs
Ci0gICAgJmRlZmF1bHRMYW5ndWFnZSwKKyAgICBbXSB7IHJldHVybiBkZWZhdWx0TGFuZ3VhZ2Uo
KTsgfSwKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgJmNvbXBpbGVTdHJlYW1pbmcsCiAg
ICAgJmluc3RhbnRpYXRlU3RyZWFtaW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNDIxZTc0NGYzMzA3
YWJkOTliMWU1YzJkNWQ3ZjEzZTMzYjM4ZTkwMS4uNDIwMjcyYTFkMGI3NWNhNjk1YTY2ZjEyNDZl
NDc0NTk2ZDVhNGU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIGNvbnN0IEds
b2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxP
YmplY3RNZXRob2RUYWJsCiAgICAgJnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3As
CiAgICAgJmN1cnJlbnRTY3JpcHRFeGVjdXRpb25Pd25lciwKICAgICAmc2NyaXB0RXhlY3V0aW9u
U3RhdHVzLAotICAgICZkZWZhdWx0TGFuZ3VhZ2UsCisgICAgW10geyByZXR1cm4gZGVmYXVsdExh
bmd1YWdlKCk7IH0sCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICZjb21waWxlU3RyZWFt
aW5nLAogICAgICZpbnN0YW50aWF0ZVN0cmVhbWluZywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCmluZGV4IGQzZTQ1ZThiYjRjN2QyMDBjZDNhNGEy
MTI4MjBkZTRlZGZjZDFiZjguLjU1ZmEwOTY0YzdmZDk4ODYzNWVmMzMyNWNiZGFiZjBlMjEzNDQ4
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNl
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNw
cApAQCAtMTcwLDcgKzE3MCw3IEBAIHZvaWQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Y2FwdGlv
blByZWZlcmVuY2VzQ2hhbmdlZCgpCiAKIFZlY3RvcjxTdHJpbmc+IENhcHRpb25Vc2VyUHJlZmVy
ZW5jZXM6OnByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0CiB7Ci0gICAgVmVjdG9yPFN0cmluZz4g
bGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOworICAgIFZlY3RvcjxTdHJpbmc+
IGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFn
ZXM6Ok5vKTsKICAgICBpZiAobV90ZXN0aW5nTW9kZSAmJiAhbV91c2VyUHJlZmVycmVkTGFuZ3Vh
Z2UuaXNFbXB0eSgpKQogICAgICAgICBsYW5ndWFnZXMuaW5zZXJ0KDAsIG1fdXNlclByZWZlcnJl
ZExhbmd1YWdlKTsKIApAQCAtMzQxLDcgKzM0MSw3IEBAIGludCBDYXB0aW9uVXNlclByZWZlcmVu
Y2VzOjp0ZXh0VHJhY2tTZWxlY3Rpb25TY29yZShUZXh0VHJhY2sqIHRyYWNrLCBIVE1MTWVkaWFF
CiAgICAgICAgICAgICBpZiAob2Zmc2V0KQogICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgbGFuZ3VhZ2VMaXN0LmFwcGVuZChkZWZhdWx0TGFu
Z3VhZ2UoKSk7CisgICAgICAgICAgICBsYW5ndWFnZUxpc3QuYXBwZW5kKGRlZmF1bHRMYW5ndWFn
ZShTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6Tm8pKTsKIAogICAgICAgICAgICAgLy8gT25seSBl
bmFibGUgYSB0ZXh0IHRyYWNrIGlmIHRoZSBjdXJyZW50IGF1ZGlvIHRyYWNrIGlzIE5PVCBpbiB0
aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZSAuLi4KICAgICAgICAgICAgIHNpemVfdCBvZmZz
ZXQgPSBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QoYXVkaW9UcmFja0xhbmd1YWdl
LCBsYW5ndWFnZUxpc3QsIGV4YWN0TWF0Y2gpOwpAQCAtNDE4LDcgKzQxOCw3IEBAIFN0cmluZyBD
YXB0aW9uVXNlclByZWZlcmVuY2VzOjpwcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGUo
KSBjb25zdAogewogICAgIGlmICghbV9wcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGUu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbV9wcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3Zl
cnJpZGU7Ci0gICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZSgpOworICAgIHJldHVybiBkZWZhdWx0
TGFuZ3VhZ2UoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKTsKIH0KICAgICAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5j
cHAKaW5kZXggY2YyZTFiZWEyNWIwZjA3OTk4NjM5MjA1OTQ1ZGYwZWVmOTJkM2M0Mi4uOWQ3MmVk
NjVlMmYzYTc4NTgwN2EzZmYyNWJiZmRmM2MwNTI2MjA0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKQEAgLTQ3MSwz
NiArNDcxLDIwIEBAIHZvaWQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OnNldFByZWZl
cnJlZExhbmd1YWdlKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpCiAKIFZlY3RvcjxTdHJpbmc+IENh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpwcmVmZXJyZWRMYW5ndWFnZXMoKSBjb25zdAog
ewotICAgIGlmICh0ZXN0aW5nTW9kZSgpIHx8ICFNZWRpYUFjY2Vzc2liaWxpdHlMaWJyYXJ5KCkp
Ci0gICAgICAgIHJldHVybiBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpwcmVmZXJyZWRMYW5ndWFn
ZXMoKTsKLQotICAgIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtTGFuZ3VhZ2VzID0gcGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7Ci0gICAgVmVjdG9yPFN0cmluZz4gb3ZlcnJpZGUgPSB1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKLSAgICBpZiAoIW92ZXJyaWRlLmlzRW1w
dHkoKSkgewotICAgICAgICBpZiAocGxhdGZvcm1MYW5ndWFnZXMuc2l6ZSgpICE9IG92ZXJyaWRl
LnNpemUoKSkKLSAgICAgICAgICAgIHJldHVybiBvdmVycmlkZTsKLSAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBvdmVycmlkZS5zaXplKCk7IGkrKykgewotICAgICAgICAgICAgaWYgKG92
ZXJyaWRlW2ldICE9IHBsYXRmb3JtTGFuZ3VhZ2VzW2ldKQotICAgICAgICAgICAgICAgIHJldHVy
biBvdmVycmlkZTsKKyAgICBhdXRvIHByZWZlcnJlZExhbmd1YWdlcyA9IENhcHRpb25Vc2VyUHJl
ZmVyZW5jZXM6OnByZWZlcnJlZExhbmd1YWdlcygpOworICAgIGlmICghdGVzdGluZ01vZGUoKSAm
JiBNZWRpYUFjY2Vzc2liaWxpdHlMaWJyYXJ5KCkpIHsKKyAgICAgICAgYXV0byBjYXB0aW9uTGFu
Z3VhZ2VzID0gYWRvcHRDRihNQUNhcHRpb25BcHBlYXJhbmNlQ29weVNlbGVjdGVkTGFuZ3VhZ2Vz
KGtNQUNhcHRpb25BcHBlYXJhbmNlRG9tYWluVXNlcikpOworICAgICAgICBDRkluZGV4IGNhcHRp
b25MYW5ndWFnZXNDb3VudCA9IGNhcHRpb25MYW5ndWFnZXMgPyBDRkFycmF5R2V0Q291bnQoY2Fw
dGlvbkxhbmd1YWdlcy5nZXQoKSkgOiAwOworICAgICAgICBpZiAoY2FwdGlvbkxhbmd1YWdlc0Nv
dW50KSB7CisgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiB0ZW1wOworICAgICAgICAgICAgdGVt
cC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNhcHRpb25MYW5ndWFnZXNDb3VudCArIHByZWZlcnJl
ZExhbmd1YWdlcy5zaXplKCkpOworICAgICAgICAgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwg
Y2FwdGlvbkxhbmd1YWdlc0NvdW50OyBpKyspCisgICAgICAgICAgICAgICAgdGVtcC51bmNoZWNr
ZWRBcHBlbmQoc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgo
Y2FwdGlvbkxhbmd1YWdlcy5nZXQoKSwgaSkpKTsKKyAgICAgICAgICAgIHRlbXAuYXBwZW5kVmVj
dG9yKFdURk1vdmUocHJlZmVycmVkTGFuZ3VhZ2VzKSk7CisgICAgICAgICAgICBwcmVmZXJyZWRM
YW5ndWFnZXMgPSBXVEZNb3ZlKHRlbXApOwogICAgICAgICB9CiAgICAgfQotCi0gICAgQ0ZJbmRl
eCBsYW5ndWFnZUNvdW50ID0gMDsKLSAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gbGFuZ3VhZ2Vz
ID0gYWRvcHRDRihNQUNhcHRpb25BcHBlYXJhbmNlQ29weVNlbGVjdGVkTGFuZ3VhZ2VzKGtNQUNh
cHRpb25BcHBlYXJhbmNlRG9tYWluVXNlcikpOwotICAgIGlmIChsYW5ndWFnZXMpCi0gICAgICAg
IGxhbmd1YWdlQ291bnQgPSBDRkFycmF5R2V0Q291bnQobGFuZ3VhZ2VzLmdldCgpKTsKLQotICAg
IGlmICghbGFuZ3VhZ2VDb3VudCkKLSAgICAgICAgcmV0dXJuIENhcHRpb25Vc2VyUHJlZmVyZW5j
ZXM6OnByZWZlcnJlZExhbmd1YWdlcygpOwotCi0gICAgVmVjdG9yPFN0cmluZz4gdXNlclByZWZl
cnJlZExhbmd1YWdlczsKLSAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLnJlc2VydmVDYXBhY2l0
eShsYW5ndWFnZUNvdW50ICsgcGxhdGZvcm1MYW5ndWFnZXMuc2l6ZSgpKTsKLSAgICBmb3IgKENG
SW5kZXggaSA9IDA7IGkgPCBsYW5ndWFnZUNvdW50OyBpKyspCi0gICAgICAgIHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMuYXBwZW5kKHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5R2V0VmFs
dWVBdEluZGV4KGxhbmd1YWdlcy5nZXQoKSwgaSkpKTsKLQotICAgIHVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMuYXBwZW5kVmVjdG9yKHBsYXRmb3JtTGFuZ3VhZ2VzKTsKLQotICAgIHJldHVybiB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzOworICAgIHJldHVybiBwcmVmZXJyZWRMYW5ndWFnZXM7CiB9CiAK
IHZvaWQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OnNldFByZWZlcnJlZEF1ZGlvQ2hh
cmFjdGVyaXN0aWMoY29uc3QgU3RyaW5nJiBjaGFyYWN0ZXJpc3RpYykKQEAgLTU3OSwxMyArNTYz
LDE1IEBAIHN0YXRpYyB2b2lkIGJ1aWxkRGlzcGxheVN0cmluZ0ZvclRyYWNrQmFzZShTdHJpbmdC
dWlsZGVyJiBkaXNwbGF5TmFtZSwgY29uc3QgVHJhCiAgICAgU3RyaW5nIGxhYmVsID0gdHJhY2su
bGFiZWwoKTsKICAgICBTdHJpbmcgdHJhY2tMYW5ndWFnZUlkZW50aWZpZXIgPSB0cmFjay52YWxp
ZEJDUDQ3TGFuZ3VhZ2UoKTsKIAotICAgIFJldGFpblB0cjxDRkxvY2FsZVJlZj4gY3VycmVudExv
Y2FsZSA9IGFkb3B0Q0YoQ0ZMb2NhbGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGVmYXVs
dExhbmd1YWdlKCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOworICAgIGF1dG8gcHJlZmVycmVk
TGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdl
czo6Tm8pOworICAgIGF1dG8gZGVmYXVsdExhbmd1YWdlID0gIXByZWZlcnJlZExhbmd1YWdlcy5p
c0VtcHR5KCkgPyBwcmVmZXJyZWRMYW5ndWFnZXNbMF0gOiBlbXB0eVN0cmluZygpOyAvLyBUaGlz
IG1hdGNoZXMgYFdURjo6ZGVmYXVsdExhbmd1YWdlYC4KKyAgICBSZXRhaW5QdHI8Q0ZMb2NhbGVS
ZWY+IGN1cnJlbnRMb2NhbGUgPSBhZG9wdENGKENGTG9jYWxlQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGRlZmF1bHRMYW5ndWFnZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CiAgICAgUmV0
YWluUHRyPENGU3RyaW5nUmVmPiBsb2NhbGVJZGVudGlmaWVyID0gYWRvcHRDRihDRkxvY2FsZUNy
ZWF0ZUNhbm9uaWNhbExvY2FsZUlkZW50aWZpZXJGcm9tU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1
bHQsIHRyYWNrTGFuZ3VhZ2VJZGVudGlmaWVyLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKICAg
ICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGxhbmd1YWdlQ0YgPSBhZG9wdENGKENGTG9jYWxlQ29w
eURpc3BsYXlOYW1lRm9yUHJvcGVydHlWYWx1ZShjdXJyZW50TG9jYWxlLmdldCgpLCBrQ0ZMb2Nh
bGVMYW5ndWFnZUNvZGUsIGxvY2FsZUlkZW50aWZpZXIuZ2V0KCkpKTsKICAgICBTdHJpbmcgbGFu
Z3VhZ2UgPSBsYW5ndWFnZUNGLmdldCgpOwogCiAgICAgaWYgKCFsYWJlbC5pc0VtcHR5KCkpIHsK
LSAgICAgICAgaWYgKGxhbmd1YWdlLmlzRW1wdHkoKSB8fCBsYWJlbC5jb250YWlucyhsYW5ndWFn
ZSkpCisgICAgICAgIGlmIChsYW5ndWFnZS5pc0VtcHR5KCkgfHwgbGFiZWwuY29udGFpbnMobGFu
Z3VhZ2UpIHx8IHByZWZlcnJlZExhbmd1YWdlcy5jb250YWlucyh0cmFja0xhbmd1YWdlSWRlbnRp
ZmllcikpCiAgICAgICAgICAgICBkaXNwbGF5TmFtZS5hcHBlbmQobGFiZWwpOwogICAgICAgICBl
bHNlIHsKICAgICAgICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGxvY2FsZURpY3Qg
PSBhZG9wdENGKENGTG9jYWxlQ3JlYXRlQ29tcG9uZW50c0Zyb21Mb2NhbGVJZGVudGlmaWVyKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGxvY2FsZUlkZW50aWZpZXIuZ2V0KCkpKTsKQEAgLTcwOSwxNSAr
Njk1LDE2IEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6ZGlzcGxheU5h
bWVGb3JUcmFjayhUZXh0VHJhY2sqIHRyYWNrKSBjb25zCiAKIHN0YXRpYyBib29sIHRleHRUcmFj
a0NvbXBhcmUoY29uc3QgUmVmUHRyPFRleHRUcmFjaz4mIGEsIGNvbnN0IFJlZlB0cjxUZXh0VHJh
Y2s+JiBiKQogewotICAgIFN0cmluZyBwcmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lID0gZGlz
cGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShsYW5ndWFnZUlkZW50aWZpZXIoZGVmYXVsdExhbmd1
YWdlKCkpKTsKICAgICBTdHJpbmcgYUxhbmd1YWdlRGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUZv
ckxhbmd1YWdlTG9jYWxlKGxhbmd1YWdlSWRlbnRpZmllcihhLT52YWxpZEJDUDQ3TGFuZ3VhZ2Uo
KSkpOwogICAgIFN0cmluZyBiTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lRm9yTGFu
Z3VhZ2VMb2NhbGUobGFuZ3VhZ2VJZGVudGlmaWVyKGItPnZhbGlkQkNQNDdMYW5ndWFnZSgpKSk7
CiAKLSAgICAvLyBUcmFja3MgaW4gdGhlIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2UgYXJlIGFs
d2F5cyBhdCB0aGUgdG9wIG9mIHRoZSBtZW51LgotICAgIGJvb2wgYUlzUHJlZmVycmVkTGFuZ3Vh
Z2UgPSBhTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9PSBwcmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1l
OwotICAgIGJvb2wgYklzUHJlZmVycmVkTGFuZ3VhZ2UgPSBiTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9
PSBwcmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lOwotICAgIGlmIChhSXNQcmVmZXJyZWRMYW5n
dWFnZSAhPSBiSXNQcmVmZXJyZWRMYW5ndWFnZSkKLSAgICAgICAgcmV0dXJuIGFJc1ByZWZlcnJl
ZExhbmd1YWdlOworICAgIGZvciAoYXV0byYgcHJlZmVycmVkTGFuZ3VhZ2UgOiB1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObykpIHsKKyAgICAgICAgU3Ry
aW5nIHByZWZlcnJlZExhbmd1YWdlRGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUZvckxhbmd1YWdl
TG9jYWxlKGxhbmd1YWdlSWRlbnRpZmllcihwcmVmZXJyZWRMYW5ndWFnZSkpOworICAgICAgICBi
b29sIGFJc1ByZWZlcnJlZExhbmd1YWdlID0gYUxhbmd1YWdlRGlzcGxheU5hbWUgPT0gcHJlZmVy
cmVkTGFuZ3VhZ2VEaXNwbGF5TmFtZTsKKyAgICAgICAgYm9vbCBiSXNQcmVmZXJyZWRMYW5ndWFn
ZSA9IGJMYW5ndWFnZURpc3BsYXlOYW1lID09IHByZWZlcnJlZExhbmd1YWdlRGlzcGxheU5hbWU7
CisgICAgICAgIGlmIChhSXNQcmVmZXJyZWRMYW5ndWFnZSAhPSBiSXNQcmVmZXJyZWRMYW5ndWFn
ZSkKKyAgICAgICAgICAgIHJldHVybiBhSXNQcmVmZXJyZWRMYW5ndWFnZTsKKyAgICB9CiAKICAg
ICBDb2xsYXRvciBjb2xsYXRvcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0
aW9uR3JvdXBBVkZPYmpDLm1tCmluZGV4IDliZDU2NDg0MGMyODJhZjU3YTEwZDRlNGRjYmU4NzU3
MzRiYzgyNmEuLmI0MTliNjBkOThlMzY2ZGI0N2RjNzA1N2ViZDI1NzY4ZGMzZDY5MzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KQEAgLTEz
NCw3ICsxMzQsNyBAQCB2b2lkIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDOjp1cGRhdGVPcHRp
b25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjaGFyYWN0ZXJpcwogICAgICAgICByZXR1cm47CiAK
ICAgICBOU0FycmF5KiBmaWx0ZXJlZE9wdGlvbnMgPSBbUEFMOjpnZXRBVk1lZGlhU2VsZWN0aW9u
R3JvdXBDbGFzcygpIG1lZGlhU2VsZWN0aW9uT3B0aW9uc0Zyb21BcnJheTpbbV9tZWRpYVNlbGVj
dGlvbkdyb3VwIG9wdGlvbnNdCi0gICAgICAgIGZpbHRlcmVkQW5kU29ydGVkQWNjb3JkaW5nVG9Q
cmVmZXJyZWRMYW5ndWFnZXM6Y3JlYXRlTlNBcnJheSh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkp
LmdldCgpXTsKKyAgICAgICAgZmlsdGVyZWRBbmRTb3J0ZWRBY2NvcmRpbmdUb1ByZWZlcnJlZExh
bmd1YWdlczpjcmVhdGVOU0FycmF5KHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1p
emVMYW5ndWFnZXM6Ok5vKSkuZ2V0KCldOwogCiAgICAgaWYgKCFbZmlsdGVyZWRPcHRpb25zIGNv
dW50XSAmJiBjaGFyYWN0ZXJpc3RpY3MuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjMwOTRiYWZk
ZWM3Mjc0N2UzYTgwZTYxMzg5MWViZmVkMmNlZTQzOC4uYWExODFmNDY2ZmVkYmZmMzFhNTA0Yjdk
MzlkN2RhZTBkMDY1ODlkMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA1LTIyICBEZXZpbiBSb3Vzc28gIDxk
cm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xzXSBSRUdS
RVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxsIGxpc3Qgb2YgbGFu
Z3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9j
Zi9MYW5ndWFnZS5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVC5MYW5n
dWFnZS5TaG91bGRNaW5pbWl6ZUxhbmd1YWdlc1llcyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNULkxhbmd1YWdlLlNob3VsZE1pbmltaXplTGFuZ3VhZ2VzTm8pOgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V1RGLnhjY29uZmlnOgorICAgICAgICBM
aW5rIGBJbnRlcm5hdGlvbmFsU3VwcG9ydGAgYXMgdGhhdCdzIHdoZXJlIHRoZSBgTlNMb2NhbGVg
IGV4dGVuc2lvbnMgYXJlIGltcGxlbWVudGVkLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMDUtMjEgIEFh
a2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJ1biBsYXlvdXQg
dGVzdHMgaW4gc3RyZXNzIG1vZGUgZm9yIDEwIGl0ZXJhdGlvbnMgb24gcmVndWxhciBFV1MgbGF5
b3V0LXRlc3QgcXVldWVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3Vy
YXRpb25zL1Rlc3RXVEYueGNjb25maWcgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRp
b25zL1Rlc3RXVEYueGNjb25maWcKaW5kZXggZTZhMjk3N2ZiNDUyZDhhMjYyZjM3NDRiNDVjZmE1
YTVmOTMzODJkMS4uZjhlYzgxYWE2MmVkZDY0OTJjN2RkNjExMzk0YmZmOThmODcxMzcyMiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V1RGLnhjY29u
ZmlnCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdURi54Y2Nv
bmZpZwpAQCAtMjksMTAgKzI5LDEzIEBAIEdDQ19FTkFCTEVfT0JKQ19FWENFUFRJT05TID0gWUVT
OwogCiBHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05TID0gJChpbmhlcml0ZWQpIEJVSUxESU5H
X1RFU1RfV1RGIEdURVNUX0FQSV89CiAKKy8vIE5lZWRlZCBieSBgU291cmNlL1dURi93dGYvY29j
b2EvTGFuZ3VhZ2VDb2NvYS5tbWAuCitXS19JTlRFUk5BVElPTkFMX1NVUFBPUlRfTERGTEFHUyA9
IC1mcmFtZXdvcmsgSW50ZXJuYXRpb25hbFN1cHBvcnQ7CisKIFdLX1VJS0lUTUFDSEVMUEVSX0xE
RkxBR1MgPSAkKFdLX1VJS0lUTUFDSEVMUEVSX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7
CiBXS19VSUtJVE1BQ0hFTFBFUl9MREZMQUdTX21hY2NhdGFseXN0ID0gLWZyYW1ld29yayBVSUtp
dE1hY0hlbHBlcjsKIAotT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAtbGd0ZXN0IC1mb3Jj
ZV9sb2FkICQoQlVJTFRfUFJPRFVDVFNfRElSKS9saWJUZXN0V1RGLmEgJChXS19VSUtJVE1BQ0hF
TFBFUl9MREZMQUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkp
OworT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAtbGd0ZXN0IC1pZnJhbWV3b3JrICQoU0RL
X0RJUikkKFNZU1RFTV9MSUJSQVJZX0RJUikvUHJpdmF0ZUZyYW1ld29ya3MgLWZvcmNlX2xvYWQg
JChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlRlc3RXVEYuYSAkKFdLX0lOVEVSTkFUSU9OQUxfU1VQ
UE9SVF9MREZMQUdTKSAkKFdLX1VJS0lUTUFDSEVMUEVSX0xERkxBR1MpICQoT1RIRVJfTERGTEFH
U19QTEFURk9STV8kKFdLX0NPQ09BX1RPVUNIKSk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JNXyA9
IC1mcmFtZXdvcmsgQ29jb2EgLWZyYW1ld29yayBDYXJib247CiAKIC8vIEZJWE1FOiBUaGlzIHNo
b3VsZCBub3QgYmUgYnVpbHQgb24gaU9TLiBJbnN0ZWFkIHdlIHNob3VsZCBjcmVhdGUgYW5kIHVz
ZSBhIFRlc3RXVEYgYXBwbGljYXRpb24uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNiYjhl
YmI2MmI1ZjYzNTllNWMyODcxYjhmNWVkNWZhMGZkMGNjNmQuLmYxNjYwYzdlNWMyYTM1MzhjZTFh
MDQ4YzNlMjFkOTEwOGYzYjFlMGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NzksNiAr
ODc5LDcgQEAKIAkJOTUwOTVGMjAyNjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdlVG9wQ29s
b3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTA5
NUYxRjI2MkZGRkE1MDAwMEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSAqLzsgfTsKIAkJ
OTUwRTRDQzEyNTJFNzUyNDAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBFNENDMDI1MkU3NTIzMDA3
MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5tbSAqLzsgfTsKIAkJOTUzQUJCMzUyNUMwRDY4MjAw
NEM4QjczIC8qIFdLV2ViVmlld1VuZGVyUGFnZUJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1M0FCQjM0MjVDMEQ2ODEwMDRD
OEI3MyAvKiBXS1dlYlZpZXdVbmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IubW0gKi87IH07CisJCTk1
NEU0MTMwMjY1NkUwNjgwMDQ1NUQ0RiAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTRFNDEyRTI2NTZFMDYzMDA0NTVENEYgLyog
TGFuZ3VhZ2UuY3BwICovOyB9OwogCQk5NUE1MjQ5NTI1ODFBMTBEMDA0NjFGRTkgLyogV0tXZWJW
aWV3VGhlbWVDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk1QTUyNDk0MjU4MUExMEQwMDQ2MUZFOSAvKiBXS1dlYlZpZXdUaGVtZUNvbG9yLm1t
ICovOyB9OwogCQk5NUI2QjNCNzI1MUVCRjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QjZCM0I2MjUx
RUJGMkYwMEZDNDM4MiAvKiBNZWRpYURvY3VtZW50Lm1tICovOyB9OwogCQk5OTg0RkFDQzFDRkZB
RjYwMDA4RDE5OEMgLyogV0tXZWJWaWV3VGV4dElucHV0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk4NEZBQ0ExQ0ZGQUVFRTAwOEQxOThDIC8qIFdL
V2ViVmlld1RleHRJbnB1dC5tbSAqLzsgfTsKQEAgLTI1ODcsNiArMjU4OCw3IEBACiAJCTk1MDk1
RjFGMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9yLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2FtcGxlZFBhZ2VUb3BDb2xvci5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlP
U1N0eWx1c1N1cHBvcnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBpT1NTdHlsdXNTdXBwb3J0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTNB
QkIzNDI1QzBENjgxMDA0QzhCNzMgLyogV0tXZWJWaWV3VW5kZXJQYWdlQmFja2dyb3VuZENvbG9y
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3VW5k
ZXJQYWdlQmFja2dyb3VuZENvbG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
NTRFNDEyRTI2NTZFMDYzMDA0NTVENEYgLyogTGFuZ3VhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTGFuZ3VhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5NUE1MjQ5NDI1ODFBMTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3VGhlbWVDb2xvci5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1RoZW1l
Q29sb3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1QjZCM0I2MjUxRUJGMkYw
MEZDNDM4MiAvKiBNZWRpYURvY3VtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gTWVkaWFEb2N1bWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTk4NEZBQ0ExQ0ZGQUVFRTAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1RleHRJbnB1dC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4MTksNiArNDgyMSw3IEBACiAJCUMw
OTkxQzRGMTQzQzdENjgwMDc5OThGMiAvKiBjZiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJOTU0RTQxMkUyNjU2RTA2MzAwNDU1RDRGIC8qIExhbmd1YWdl
LmNwcCAqLywKIAkJCQlCQzAyOUIxNjE0ODZBRDY0MDA4MTdEQTkgLyogUmV0YWluUHRyLmNwcCAq
LywKIAkJCQlDMDk5MUM1MDE0M0M3RDY4MDA3OTk4RjIgLyogUmV0YWluUHRySGFzaGluZy5jcHAg
Ki8sCiAJCQkpOwpAQCAtNTIwMCw2ICs1MjAzLDcgQEAKIAkJCQk1M0ZDREU2QjIyOUVGRkI5MDA1
OThFQ0YgLyogSXNvSGVhcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0VCNjJBQjIyMzYwOURF
MDA2OUNCQjAgLyogSXRlcmF0b3JSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTA1MDk0
MTFGQjlGMDY0MDBCMzNGQjggLyogSlNPTlZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk1
NEU0MTMwMjY1NkUwNjgwMDQ1NUQ0RiAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MzFDMUQ4RTFERjhFRjcyMDA2RTk3OUYgLyogTEVCRGVjb2Rlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNTdENTRGOTFGMzM5N0I0MDBBOTdBQTcgLyogTGlmZWN5Y2xlTG9nZ2VyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTkzRTJDNTU1MUZEMzIwNDEwMEUxREY2QSAvKiBMaW5lRW5kaW5n
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvY2YvTGFuZ3VhZ2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2Yv
TGFuZ3VhZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlYjQ2NWQwNmE5NmE1OTE4YjczZWNlZjhkNzhjYWVi
ZTI2ZmM1ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9jZi9MYW5ndWFnZS5jcHAKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgorI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVEVTVChM
YW5ndWFnZSwgU2hvdWxkTWluaW1pemVMYW5ndWFnZXNZZXMpCit7CisgICAgb3ZlcnJpZGVVc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzKHsgfSk7CisgICAgV1RGOjpvdmVycmlkZUluaXRpYWxQbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNGb3JUZXN0aW5nKHsgImVuLVVTIl9zLCAiZXMtVVMiX3Ms
ICJmci1VUyJfcyB9KTsKKworICAgIGF1dG8gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1
YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzKTsKKworICAgIGF1dG8gZW5nbGlzaFVT
SW5kZXggPSBsYW5ndWFnZXMuZmluZCgiZW4tVVMiX3MpOworICAgIGF1dG8gZW5nbGlzaEluZGV4
ID0gbGFuZ3VhZ2VzLmZpbmQoImVuIl9zKTsKKyAgICBhdXRvIHNwYW5pc2hVU0luZGV4ID0gbGFu
Z3VhZ2VzLmZpbmQoImVzLVVTIl9zKTsKKyAgICBhdXRvIHNwYW5pc2hJbmRleCA9IGxhbmd1YWdl
cy5maW5kKCJlcyJfcyk7CisgICAgYXV0byBmcmVuY2hVU0luZGV4ID0gbGFuZ3VhZ2VzLmZpbmQo
ImZyLVVTIl9zKTsKKyAgICBhdXRvIGZyZW5jaEluZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImZyIl9z
KTsKKworICAgIEVYUEVDVF9UUlVFKGVuZ2xpc2hVU0luZGV4ICE9IG5vdEZvdW5kIHx8IGVuZ2xp
c2hJbmRleCAhPSBub3RGb3VuZCk7CisgICAgRVhQRUNUX0VRKHNwYW5pc2hVU0luZGV4LCBub3RG
b3VuZCk7CisgICAgRVhQRUNUX0VRKHNwYW5pc2hJbmRleCwgbm90Rm91bmQpOworICAgIEVYUEVD
VF9FUShmcmVuY2hVU0luZGV4LCBub3RGb3VuZCk7CisgICAgRVhQRUNUX0VRKGZyZW5jaEluZGV4
LCBub3RGb3VuZCk7CisKKyAgICBXVEY6Om92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclByZWZl
cnJlZExhbmd1YWdlc0ZvclRlc3RpbmcoeyB9KTsgLy8gY2xlYW51cAorfQorCitURVNUKExhbmd1
YWdlLCBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlc05vKQoreworICAgIG92ZXJyaWRlVXNlclByZWZl
cnJlZExhbmd1YWdlcyh7IH0pOworICAgIFdURjo6b3ZlcnJpZGVJbml0aWFsUGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzRm9yVGVzdGluZyh7ICJlbi1VUyJfcywgImVzLVVTIl9zLCAiZnIt
VVMiX3MgfSk7CisKKyAgICBhdXRvIGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMo
U2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKTsKKworICAgIGF1dG8gZW5nbGlzaFVTSW5kZXgg
PSBsYW5ndWFnZXMuZmluZCgiZW4tVVMiX3MpOworICAgIGF1dG8gZW5nbGlzaEluZGV4ID0gbGFu
Z3VhZ2VzLmZpbmQoImVuIl9zKTsKKyAgICBhdXRvIHNwYW5pc2hVU0luZGV4ID0gbGFuZ3VhZ2Vz
LmZpbmQoImVzLVVTIl9zKTsKKyAgICBhdXRvIHNwYW5pc2hJbmRleCA9IGxhbmd1YWdlcy5maW5k
KCJlcyJfcyk7CisgICAgYXV0byBmcmVuY2hVU0luZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImZyLVVT
Il9zKTsKKyAgICBhdXRvIGZyZW5jaEluZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImZyIl9zKTsKKwor
ICAgIEVYUEVDVF9ORShlbmdsaXNoVVNJbmRleCwgbm90Rm91bmQpOworICAgIGlmIChlbmdsaXNo
SW5kZXggIT0gbm90Rm91bmQpIHsKKyAgICAgICAgRVhQRUNUX0dUKGVuZ2xpc2hJbmRleCwgZW5n
bGlzaFVTSW5kZXgpOworICAgICAgICBFWFBFQ1RfTFQoZW5nbGlzaEluZGV4LCBzcGFuaXNoVVNJ
bmRleCk7CisgICAgfQorICAgIEVYUEVDVF9ORShzcGFuaXNoVVNJbmRleCwgbm90Rm91bmQpOwor
ICAgIEVYUEVDVF9HVChzcGFuaXNoVVNJbmRleCwgZW5nbGlzaFVTSW5kZXgpOworICAgIGlmIChz
cGFuaXNoSW5kZXggIT0gbm90Rm91bmQpIHsKKyAgICAgICAgRVhQRUNUX0dUKHNwYW5pc2hJbmRl
eCwgc3BhbmlzaFVTSW5kZXgpOworICAgICAgICBFWFBFQ1RfTFQoc3BhbmlzaEluZGV4LCBmcmVu
Y2hVU0luZGV4KTsKKyAgICB9CisgICAgRVhQRUNUX05FKGZyZW5jaFVTSW5kZXgsIG5vdEZvdW5k
KTsKKyAgICBFWFBFQ1RfR1QoZnJlbmNoVVNJbmRleCwgc3BhbmlzaFVTSW5kZXgpOworICAgIGlm
IChmcmVuY2hJbmRleCAhPSBub3RGb3VuZCkKKyAgICAgICAgRVhQRUNUX0dUKGZyZW5jaEluZGV4
LCBmcmVuY2hVU0luZGV4KTsKKworICAgIFdURjo6b3ZlcnJpZGVJbml0aWFsUGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzRm9yVGVzdGluZyh7IH0pOyAvLyBjbGVhbnVwCit9CisKK30gLy8g
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9DaGFu
Z2VMb2cgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCmluZGV4IGQyYzIwYjk1NjYyMDljNTVj
NzEwMzQyZTdkODliZDAzMmM5MGEyYWIuLmRkMzFkMjJmYjdmMWMyZmFkNWRlNDhkNGJhOTBkNjBi
MzkyOGVmMDAgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0TGlicmFyaWVzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA1LTIyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENv
bnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxs
IGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWEgY29udHJvbHMg
bmVlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBpbiBv
cmRlciB0byBwcm9wZXJseQorICAgICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNrcyBp
biB0aGUgY29udHJvbHMgVUkuIEZvciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3VidGl0
bGVzCisgICAgICAgIGZvciBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhlIHVz
ZXIgaGFzIEVuZ2xpc2ggKGRlZmF1bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAgICAg
Y29uZmlndXJlZCBpbiB0aGUgTGFuZ3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJlZmVy
ZW5jZXMgb24gbWFjT1MsIFdlYktpdCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRpdGxl
cyBsaXN0IEVuZ2xpc2gsIEZyZW5jaCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAgICAgICAqIFdl
YktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9NYWMvMTAxNTAwL0ludGVybmF0aW9uYWxTdXBwb3J0
LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQ6IEFkZGVkLgorICAgICAgICAqIFdl
YktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9NYWMvMTAxNjAwL0ludGVybmF0aW9uYWxTdXBwb3J0
LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQ6IEFkZGVkLgorICAgICAgICAqIFdl
YktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9NYWMvMTEwMDAwL0ludGVybmF0aW9uYWxTdXBwb3J0
LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQ6IEFkZGVkLgorICAgICAgICAqIFdl
YktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9hcHBsZXR2b3MvMTQvSW50ZXJuYXRpb25hbFN1cHBv
cnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZDogQWRkZWQuCisgICAgICAgICog
V2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5m
cmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkOiBBZGRlZC4KKyAgICAgICAgKiBXZWJL
aXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvd2F0Y2hvcy83L0ludGVybmF0aW9uYWxTdXBwb3J0LmZy
YW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQ6IEFkZGVkLgorICAgICAgICBMaW5rIGBJ
bnRlcm5hdGlvbmFsU3VwcG9ydGAgYXMgdGhhdCdzIHdoZXJlIHRoZSBgTlNMb2NhbGVgIGV4dGVu
c2lvbnMgYXJlIGltcGxlbWVudGVkLgorCiAyMDIxLTAxLTA0ICBKZWZmIE1pbGxlciAgPGplZmZt
QGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgdXNlci12aXNpYmxlIGNvcHlyaWdodCBzdHJp
bmdzIHRvIGluY2x1ZGUgMjAyMQpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFBy
aXZhdGVGcmFtZXdvcmtTdHVicy9NYWMvMTAxNTAwL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1l
d29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJp
dmF0ZUZyYW1ld29ya1N0dWJzL01hYy8xMDE1MDAvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3
b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTgwODg1MGNiYzZiODkw
NDgxZTdjYWZjZDgwOGRmN2M1NDkwNmUwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFy
aWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9NYWMvMTAxNTAwL0ludGVybmF0aW9uYWxT
dXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKQEAgLTAsMCArMSw5IEBA
CistLS0gIXRhcGktdGJkLXYzCithcmNoczogICAgICAgICAgIFsgeDg2XzY0IF0KK3V1aWRzOiAg
ICAgICAgICAgWyAneDg2XzY0OiA5QkFCQzcyNi02MjJGLTNFMzUtQThDNS1FNzIyNjc3QTMwOEMn
LCAneDg2XzY0OiA5QkFCQzcyNi02MjJGLTNFMzUtQThDNS1FNzIyNjc3QTMwOEMnIF0KK3BsYXRm
b3JtOiAgICAgICAgemlwcGVyZWQKK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Q
cml2YXRlRnJhbWV3b3Jrcy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9JbnRlcm5hdGlvbmFsU3VwcG9ydCcKK2N1cnJlbnQtdmVyc2lvbjogNDQKK2V4cG9ydHM6ICAg
ICAgICAgCisgIC0gYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCBdCisuLi4KZGlmZiAtLWdpdCBh
L1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzEwMTYwMC9J
bnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkIGIv
V2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9NYWMvMTAxNjAwL0lu
dGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDBiNTM1MzRjZTliMjFhYzU3YTNlYWEyMGU3ZDdiMzlhZGE2M2U5MgotLS0gL2Rl
di9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMv
TWFjLzEwMTYwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1
cHBvcnQudGJkCkBAIC0wLDAgKzEsMjEgQEAKKy0tLSAhdGFwaS10YmQKK3RiZC12ZXJzaW9uOiAg
ICAgNAordGFyZ2V0czogICAgICAgICBbIHg4Nl82NC1tYWNvcywgeDg2XzY0LW1hY2NhdGFseXN0
LCBhcm02NC1tYWNvcywgYXJtNjQtbWFjY2F0YWx5c3QsIGFybTY0ZS1tYWNvcywgYXJtNjRlLW1h
Y2NhdGFseXN0IF0KK3V1aWRzOgorICAtIHRhcmdldDogICAgICAgICAgeDg2XzY0LW1hY29zCisg
ICAgdmFsdWU6ICAgICAgICAgICBBQjU4RTFCMS02MEU1LTM4M0UtQkNERS1FM0M0OEY0QkM3ODcK
KyAgLSB0YXJnZXQ6ICAgICAgICAgIHg4Nl82NC1tYWNjYXRhbHlzdAorICAgIHZhbHVlOiAgICAg
ICAgICAgQUI1OEUxQjEtNjBFNS0zODNFLUJDREUtRTNDNDhGNEJDNzg3CisgIC0gdGFyZ2V0OiAg
ICAgICAgICBhcm02NC1tYWNvcworICAgIHZhbHVlOiAgICAgICAgICAgMDAwMDAwMDAtMDAwMC0w
MDAwLTAwMDAtMDAwMDAwMDAwMDAwCisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NC1tYWNjYXRh
bHlzdAorICAgIHZhbHVlOiAgICAgICAgICAgMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAw
MDAwMDAwCisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NGUtbWFjb3MKKyAgICB2YWx1ZTogICAg
ICAgICAgIDkzRTczNzg2LTlENkQtMzIyOS1CMkI2LUE0N0M5MEZGRDM0NgorICAtIHRhcmdldDog
ICAgICAgICAgYXJtNjRlLW1hY2NhdGFseXN0CisgICAgdmFsdWU6ICAgICAgICAgICA5M0U3Mzc4
Ni05RDZELTMyMjktQjJCNi1BNDdDOTBGRkQzNDYKK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0v
TGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9JbnRlcm5hdGlvbmFsU3VwcG9ydCcKK2N1cnJlbnQtdmVyc2lvbjogNjAKK2V4
cG9ydHM6CisgIC0gdGFyZ2V0czogICAgICAgICBbIGFybTY0ZS1tYWNvcywgeDg2XzY0LW1hY29z
LCB4ODZfNjQtbWFjY2F0YWx5c3QsIGFybTY0ZS1tYWNjYXRhbHlzdCwgYXJtNjQtbWFjb3MsIGFy
bTY0LW1hY2NhdGFseXN0IF0KKy4uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktp
dFByaXZhdGVGcmFtZXdvcmtTdHVicy9NYWMvMTEwMDAwL0ludGVybmF0aW9uYWxTdXBwb3J0LmZy
YW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0
UHJpdmF0ZUZyYW1ld29ya1N0dWJzL01hYy8xMTAwMDAvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJh
bWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MGI1MzUzNGNlOWIy
MWFjNTdhM2VhYTIwZTdkN2IzOWFkYTYzZTkyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGli
cmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9NYWMvMTEwMDAwL0ludGVybmF0aW9u
YWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKQEAgLTAsMCArMSwy
MSBAQAorLS0tICF0YXBpLXRiZAordGJkLXZlcnNpb246ICAgICA0Cit0YXJnZXRzOiAgICAgICAg
IFsgeDg2XzY0LW1hY29zLCB4ODZfNjQtbWFjY2F0YWx5c3QsIGFybTY0LW1hY29zLCBhcm02NC1t
YWNjYXRhbHlzdCwgYXJtNjRlLW1hY29zLCBhcm02NGUtbWFjY2F0YWx5c3QgXQordXVpZHM6Cisg
IC0gdGFyZ2V0OiAgICAgICAgICB4ODZfNjQtbWFjb3MKKyAgICB2YWx1ZTogICAgICAgICAgIEFC
NThFMUIxLTYwRTUtMzgzRS1CQ0RFLUUzQzQ4RjRCQzc4NworICAtIHRhcmdldDogICAgICAgICAg
eDg2XzY0LW1hY2NhdGFseXN0CisgICAgdmFsdWU6ICAgICAgICAgICBBQjU4RTFCMS02MEU1LTM4
M0UtQkNERS1FM0M0OEY0QkM3ODcKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybTY0LW1hY29zCisg
ICAgdmFsdWU6ICAgICAgICAgICAwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAK
KyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybTY0LW1hY2NhdGFseXN0CisgICAgdmFsdWU6ICAgICAg
ICAgICAwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAKKyAgLSB0YXJnZXQ6ICAg
ICAgICAgIGFybTY0ZS1tYWNvcworICAgIHZhbHVlOiAgICAgICAgICAgOTNFNzM3ODYtOUQ2RC0z
MjI5LUIyQjYtQTQ3QzkwRkZEMzQ2CisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NGUtbWFjY2F0
YWx5c3QKKyAgICB2YWx1ZTogICAgICAgICAgIDkzRTczNzg2LTlENkQtMzIyOS1CMkI2LUE0N0M5
MEZGRDM0NgoraW5zdGFsbC1uYW1lOiAgICAnL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdv
cmtzL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9WZXJzaW9ucy9BL0ludGVybmF0aW9u
YWxTdXBwb3J0JworY3VycmVudC12ZXJzaW9uOiA2MAorZXhwb3J0czoKKyAgLSB0YXJnZXRzOiAg
ICAgICAgIFsgYXJtNjRlLW1hY29zLCB4ODZfNjQtbWFjb3MsIHg4Nl82NC1tYWNjYXRhbHlzdCwg
YXJtNjRlLW1hY2NhdGFseXN0LCBhcm02NC1tYWNvcywgYXJtNjQtbWFjY2F0YWx5c3QgXQorLi4u
CmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJz
L2FwcGxldHZvcy8xNC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25h
bFN1cHBvcnQudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVi
cy9hcHBsZXR2b3MvMTQvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9u
YWxTdXBwb3J0LnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDcwNGJmMzk2MzQ1Y2E2NGUwZDIwOGFiMzlhZmM0
NDc1YzhjOWJlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZh
dGVGcmFtZXdvcmtTdHVicy9hcHBsZXR2b3MvMTQvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3
b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZApAQCAtMCwwICsxLDEzIEBACistLS0gIXRhcGkt
dGJkCit0YmQtdmVyc2lvbjogICAgIDQKK3RhcmdldHM6ICAgICAgICAgWyBhcm02NC10dm9zLCBh
cm02NGUtdHZvcyBdCit1dWlkczoKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybTY0LXR2b3MKKyAg
ICB2YWx1ZTogICAgICAgICAgIEY5RTkwOUJDLTE3NDAtMzRGQi1CNDkwLUZBMEI4RjgwOUZCQwor
ICAtIHRhcmdldDogICAgICAgICAgYXJtNjRlLXR2b3MKKyAgICB2YWx1ZTogICAgICAgICAgIDhG
NUIxQzE2LTc3MkEtM0NBMi1CQTJDLUZDNUM5QjM1RDk4MAoraW5zdGFsbC1uYW1lOiAgICAnL1N5
c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1l
d29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydCcKK2N1cnJlbnQtdmVyc2lvbjogNTkKK2V4cG9ydHM6
CisgIC0gdGFyZ2V0czogICAgICAgICBbIGFybTY0LXR2b3MsIGFybTY0ZS10dm9zIF0KKy4uLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9p
T1MvMTQvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0
LnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0
L0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTllZTY0OWY0MmU0OGJhNzJkOTEzMzQ3YjVjYzVkZWQ1MzQyMDcxMQotLS0g
L2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1
YnMvaU9TLzE0L0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3Vw
cG9ydC50YmQKQEAgLTAsMCArMSwxNyBAQAorLS0tICF0YXBpLXRiZAordGJkLXZlcnNpb246ICAg
ICA0Cit0YXJnZXRzOiAgICAgICAgIFsgYXJtdjctaW9zLCBhcm12N3MtaW9zLCBhcm02NC1pb3Ms
IGFybTY0ZS1pb3MgXQordXVpZHM6CisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm12Ny1pb3MKKyAg
ICB2YWx1ZTogICAgICAgICAgIDAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMAor
ICAtIHRhcmdldDogICAgICAgICAgYXJtdjdzLWlvcworICAgIHZhbHVlOiAgICAgICAgICAgMDAw
MDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwCisgIC0gdGFyZ2V0OiAgICAgICAgICBh
cm02NC1pb3MKKyAgICB2YWx1ZTogICAgICAgICAgIDA4NDQxOUY1LUI3OTQtMzc4OC1CNTU2LTFF
MzEzNzhCODhDRgorICAtIHRhcmdldDogICAgICAgICAgYXJtNjRlLWlvcworICAgIHZhbHVlOiAg
ICAgICAgICAgRjM1Qzc1RTEtN0UzNy0zRTNDLThGM0YtREMyQjhDQUZCRThDCitpbnN0YWxsLW5h
bWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvSW50ZXJuYXRpb25hbFN1
cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0JworY3VycmVudC12ZXJzaW9uOiA2
MS4xCitleHBvcnRzOgorICAtIHRhcmdldHM6ICAgICAgICAgWyBhcm02NC1pb3MsIGFybTY0ZS1p
b3MsIGFybXY3LWlvcywgYXJtdjdzLWlvcyBdCisuLi4KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJh
cmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvd2F0Y2hvcy83L0ludGVybmF0aW9uYWxT
dXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQgYi9XZWJLaXRMaWJyYXJp
ZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL3dhdGNob3MvNy9JbnRlcm5hdGlvbmFsU3Vw
cG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjNDdh
MGRhMGJmN2ZkNTI0MjgzNDZmYzlhMjQ5OTU0NTQ0MWIxNjgKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL3dhdGNob3MvNy9JbnRl
cm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCkBAIC0w
LDAgKzEsMTUgQEAKKy0tLSAhdGFwaS10YmQKK3RiZC12ZXJzaW9uOiAgICAgNAordGFyZ2V0czog
ICAgICAgICBbIGFybXY3ay13YXRjaG9zLCBhcm02NGUtd2F0Y2hvcywgYXJtNjRfMzItd2F0Y2hv
cyBdCit1dWlkczoKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybXY3ay13YXRjaG9zCisgICAgdmFs
dWU6ICAgICAgICAgICA3NTE2MkM0NS05NUYzLTM5MjctODJFRC1BQjI4MDMyQzE3RjgKKyAgLSB0
YXJnZXQ6ICAgICAgICAgIGFybTY0ZS13YXRjaG9zCisgICAgdmFsdWU6ICAgICAgICAgICBGMzNC
NEZBRS0zN0QzLTM5NTktQjYzOS01MjBDQkZGNTk4NkQKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFy
bTY0XzMyLXdhdGNob3MKKyAgICB2YWx1ZTogICAgICAgICAgIDM1RDlFQzBBLUVFQjAtMzRGNy1C
RDAyLTc3RTlDQTM4NDA1NQoraW5zdGFsbC1uYW1lOiAgICAnL1N5c3RlbS9MaWJyYXJ5L1ByaXZh
dGVGcmFtZXdvcmtzL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFs
U3VwcG9ydCcKK2N1cnJlbnQtdmVyc2lvbjogNTkKK2V4cG9ydHM6CisgIC0gdGFyZ2V0czogICAg
ICAgICBbIGFybTY0XzMyLXdhdGNob3MsIGFybTY0ZS13YXRjaG9zLCBhcm12N2std2F0Y2hvcyBd
CisuLi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429469</attachid>
            <date>2021-05-23 11:43:51 -0700</date>
            <delta_ts>2021-05-23 13:05:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>226038.diff</filename>
            <type>text/plain</type>
            <size>55222</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDZjYTg2Njk0N2ZjZDg4YTAyZjQxY2JmMDQ5M2Uy
MTUzMzAzYTA3M2UuLmRhN2Q2ZTY0Y2M5M2IwYjQxYzM5ZWQ2NTAzNzQ5MmNlMTIzNTY1NWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA1LTIyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENv
bnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxs
IGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWEgY29udHJvbHMg
bmVlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBpbiBv
cmRlciB0byBwcm9wZXJseQorICAgICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNrcyBp
biB0aGUgY29udHJvbHMgVUkuIEZvciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3VidGl0
bGVzCisgICAgICAgIGZvciBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhlIHVz
ZXIgaGFzIEVuZ2xpc2ggKGRlZmF1bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAgICAg
Y29uZmlndXJlZCBpbiB0aGUgTGFuZ3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJlZmVy
ZW5jZXMgb24gbWFjT1MsIFdlYktpdCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRpdGxl
cyBsaXN0IEVuZ2xpc2gsIEZyZW5jaCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3Bw
OgorICAgICAgICAoSlNDOjpkZWZhdWx0TG9jYWxlKToKKyAgICAgICAgVXBkYXRlIHVzYWdlIG9m
IGBXVEY6OmRlZmF1bHRMYW5ndWFnZWAgdG8gYWxzbyBoYXZlIGBXVEY6OlNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzYC4KKworICAgICAgICAqIHNoZWxsL3BsYXlzdGF0aW9uL1Rlc3RTaGVsbC5jcHA6
CisgICAgICAgIChwcmVUZXN0KToKKyAgICAgICAgSW5zdGVhZCBvZiBwcm9wYWdhdGluZyB0aGUg
b3ZlcnJpZGUsIGp1c3QgY2xlYXIgaXQgb3V0LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
SmF2YVNjcmlwdENvcmUueGNjb25maWc6CisgICAgICAgIExpbmsgYEludGVybmF0aW9uYWxTdXBw
b3J0YCBhcyB0aGF0J3Mgd2hlcmUgdGhlIGBOU0xvY2FsZWAgZXh0ZW5zaW9ucyBhcmUgaW1wbGVt
ZW50ZWQuCisKIDIwMjEtMDUtMjEgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSB0aGUgdW5uZWNlc3NhcnkgdXNlIG9mIENvbXBpbGVPcFN0cmljdEVxVHlw
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggZDA1M2IzODRhMGNkZmMzY2E2YzAwMzYwNTgzZTczYWI5ZTRlYTc3Zi4uM2MxNTQ4
ZTRkMTAzNjhhYjQwNWYzNjRhMGVkN2I2YWZmOGI0MzdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAor
MjAyMS0wNS0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
W01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRpYSBjb250cm9s
cyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZvciBvcmRlcmlu
ZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qgb2YgbGFuZ3VhZ2Ug
cHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29ydC9vcmRlciB0aGUg
bGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBsZSwgaWYgYSBgPHZp
ZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3BhbmlzaCwgYW5kIEZy
ZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQgRnJlbmNoIChhbHRl
cm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYgUmVnaW9uIHZpZXcg
b2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxkIG9yZGVyCisgICAg
ICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0aGVuIFNwYW5pc2gu
CisKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuaDoKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuY3Bw
OgorICAgICAgICAoV1RGOjpjYWNoZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMpOiBB
ZGRlZC4KKyAgICAgICAgKFdURjo6Y2FjaGVkTWluaW1pemVkUGxhdGZvcm1QcmVmZXJyZWRMYW5n
dWFnZXMpOiBBZGRlZC4KKyAgICAgICAgKFdURjo6bGFuZ3VhZ2VEaWRDaGFuZ2UpOgorICAgICAg
ICAoV1RGOjpkZWZhdWx0TGFuZ3VhZ2UpOgorICAgICAgICAoV1RGOjp1c2VyUHJlZmVycmVkTGFu
Z3VhZ2VzKToKKyAgICAgICAgKFdURjo6aW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2Vz
T3ZlcnJpZGVGb3JUZXN0aW5nKTogQWRkZWQuCisgICAgICAgIChXVEY6OmluaXRpYWxQbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcpOiBBZGRlZC4KKyAgICAg
ICAgKFdURjo6b3ZlcnJpZGVJbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRm9y
VGVzdGluZyk6IEFkZGVkLgorICAgICAgICAoV1RGOjpwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdl
KTogRGVsZXRlZC4KKyAgICAgICAgTW92ZSB0aGUgY2FjaGluZyBpbiBgd3RmL2NmL0xhbmd1YWdl
Q0YuY3BwYCB0byBgd3RmL0xhbmd1YWdlLmNwcGAgc28gdGhhdCBhbGwgcGxhdGZvcm1zIGNhbgor
ICAgICAgICBiZW5lZml0IGZyb20gY2FjaGluZyB0aGUgcmVzdWx0IG9mIGBwbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNgLgorCisgICAgICAgICogd3RmL2NmL0xhbmd1YWdlQ0YuY3BwOgor
ICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICAo
V1RGOjpwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYv
Y29jb2EvTGFuZ3VhZ2VDb2NvYS5tbToKKyAgICAgICAgKFdURjo6YmFzZUxhbmd1YWdlRnJvbUxh
bmd1YWdlKTogQWRkZWQuCisgICAgICAgICogd3RmL3BsYXlzdGF0aW9uL0xhbmd1YWdlUGxheVN0
YXRpb24uY3BwOgorICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMp
OgorICAgICAgICAqIHd0Zi9zcGkvY29jb2EvTlNMb2NhbGVTUEkuaDoKKyAgICAgICAgKiB3dGYv
dW5peC9MYW5ndWFnZVVuaXguY3BwOgorICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMpOgorICAgICAgICAqIHd0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwOgorICAgICAg
ICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICBBZGQgYFdU
Rjo6U2hvdWxkTWluaW1pemVMYW5ndWFnZXNgIHRoYXQgY29udHJvbHMgd2hldGhlciBgV1RGOjpt
aW5pbWl6ZWRQcmVmZXJyZWRMYW5ndWFnZXNgCisgICAgICAgIGlzIGNhbGxlZC4gU2luY2UgdGhl
IHJlc3VsdCBpcyBjYWNoZWQsIGNyZWF0ZSBzZXBhcmF0ZSBgVmVjdG9yPFN0cmluZz5gIGZvciBl
YWNoIGVudW0gdmFsdWUuCisKIDIwMjEtMDUtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBVc2UgQ2hlY2tlZENvbmRpdGlvbiBpbiBtb3JlIHBsYWNlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGFkM2ExNGUxZThhM2JhMmU1NDI3OWEwM2NhMDI1MDM2MmExMzkyMmEuLjU0MzRi
M2JhNDUzZjM5NTMxZTQ4NWNiYmIzYTI4YTE4OGUxN2ZiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNSBAQAorMjAyMS0wNS0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRp
YSBjb250cm9scyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZv
ciBvcmRlcmluZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qgb2Yg
bGFuZ3VhZ2UgcHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29ydC9v
cmRlciB0aGUgbGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBsZSwg
aWYgYSBgPHZpZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3Bhbmlz
aCwgYW5kIEZyZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQgRnJl
bmNoIChhbHRlcm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYgUmVn
aW9uIHZpZXcgb2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxkIG9y
ZGVyCisgICAgICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0aGVu
IFNwYW5pc2guCisKKyAgICAgICAgVGVzdHM6IExhbmd1YWdlLlNob3VsZE1pbmltaXplTGFuZ3Vh
Z2VzWWVzCisgICAgICAgICAgICAgICBMYW5ndWFnZS5TaG91bGRNaW5pbWl6ZUxhbmd1YWdlc05v
CisKKyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnRleHRUcmFja1Nl
bGVjdGlvblNjb3JlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVy
ZW5jZXM6OnByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZSBjb25zdCk6CisgICAgICAg
ICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6cHJlZmVycmVkTGFuZ3VhZ2VzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkRGlzcGxheVN0cmluZ0ZvclRyYWNrQmFzZSk6
CisgICAgICAgIChXZWJDb3JlOjp0ZXh0VHJhY2tDb21wYXJlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQzo6dXBkYXRlT3B0aW9u
cyk6CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICBXcmFwIGBk
ZWZhdWx0TGFuZ3VhZ2VgIGluIGEgbGFtYmRhIHNpbmNlIGl0IG5vdyBoYXMgYSBwYXJhbWV0ZXIu
CisKIDIwMjEtMDUtMjEgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAg
IEFsbCBOZXRmbGl4IHBsYXliYWNrIGZhaWxzIGFmdGVyIHIyNzc3NDAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54Y2NvbmZp
ZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54
Y2NvbmZpZwppbmRleCA2ZGY4ZjAwYjQyYzMwM2Q0ZjI2ODBmYzY5ZDAyMTM1MTI2YWY0YzA0Li5j
N2FjMTcwYzExYjZjMTgzMjUzNmI0OGYyODMyZDhjYmUyMjA0ZjQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvSmF2YVNjcmlwdENvcmUueGNjb25maWcK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0phdmFTY3JpcHRDb3Jl
LnhjY29uZmlnCkBAIC0yOSw3ICsyOSwxMCBAQCBNT0RVTEVNQVBfRklMRSA9ICQoU1JDUk9PVCkv
SmF2YVNjcmlwdENvcmUubW9kdWxlbWFwOwogLy8gUHJldmVudCBDKysgc3RhbmRhcmQgbGlicmFy
eSBvcGVyYXRvciBuZXcsIGRlbGV0ZSBhbmQgdGhlaXIgcmVsYXRlZCBleGNlcHRpb24gdHlwZXMg
ZnJvbSBiZWluZyBleHBvcnRlZCBhcyB3ZWFrIHN5bWJvbHMuCiBPVEhFUl9MREZMQUdTX0hJREVf
U1lNQk9MUyA9IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pUSVN0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
LF9fWlRTU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVFNTdDlleGNlcHRp
b24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pkbFB2U18gLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCxfX1pud21QdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5LU3QzX18xOGZ1bmN0aW9uSUZ2
dkVFY2xFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVD
MUVPUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMThmdW5jdGlvbklGdnZFRUMy
RU9TMl8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOS1N0M19fMThmdW5jdGlvbklGdlJOM0pT
QzE3Qnl0ZWNvZGVHZW5lcmF0b3JFUE5TMV8xMFJlZ2lzdGVySURFRUVjbEVTM19TNV8gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdl
bmVyYXRvckVQTlMxXzEwUmVnaXN0ZXJJREVFRUQxRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxf
X1pOU3QzX18xOGZ1bmN0aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvckVQTlMxXzEwUmVn
aXN0ZXJJREVFRUQyRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xOGZ1bmN0aW9u
SUZ2dkVFRDFFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2
RUVEMkV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVFZOU3QzX18xMTdiYWRfZnVuY3Rpb25f
Y2FsbEUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0y
NF9faXNfcGF0aGFibGVfY2hhcl9hcnJheUlQS2NTNF9jTGIxRUUxMV9fcmFuZ2VfZW5kRVM0XyAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTI0X19pc19w
YXRoYWJsZV9jaGFyX2FycmF5SVBLY1M0X2NMYjFFRTEzX19yYW5nZV9iZWdpbkVTNF8gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW04X1BhdGhDVlRJY0Ux
NF9fYXBwZW5kX3JhbmdlSVBLY0VFTlNfOWVuYWJsZV9pZklYc3IyN19faXNfY3BwMTdfZm9yd2Fy
ZF9pdGVyYXRvcklUX0VFNXZhbHVlRXZFNHR5cGVFUk5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNo
YXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTOF9TOF8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW04X1BhdGhDVlRJY0UxNV9fYXBwZW5kX3Nv
dXJjZUlQS2NFRXZSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFs
bG9jYXRvckljRUVFRVJLVF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMx
MGZpbGVzeXN0ZW04X1BhdGhDVlRJY0UxNF9fYXBwZW5kX3JhbmdlSVBLY0VFTlNfOWVuYWJsZV9p
ZklYc3IyMV9faXNfZm9yd2FyZF9pdGVyYXRvcklUX0VFNXZhbHVlRXZFNHR5cGVFUk5TXzEyYmFz
aWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTOF9TOF8g
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOS1N0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJl
Y3RvcnlfaXRlcmF0b3JkZUV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2Zz
MTBmaWxlc3lzdGVtMThkaXJlY3RvcnlfaXRlcmF0b3JwcEV2IC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJ
QTEwX2NQY2NMYjFFRTExX19yYW5nZV9lbmRFUEtjIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19a
TlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJQTEwX2NQ
Y2NMYjFFRTEzX19yYW5nZV9iZWdpbkVQS2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3Qz
X18xNF9fZnMxMGZpbGVzeXN0ZW00cGF0aGRWRVJLUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2ws
X19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtOF9QYXRoQ1ZUSWNFMTVfX2FwcGVuZF9zb3VyY2VJ
QTEwX2NFRXZSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9j
YXRvckljRUVFRVJLVF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZp
bGVzeXN0ZW0yNF9fdGhyb3dfZmlsZXN5c3RlbV9lcnJvcklKUlBLY1JLTlMxXzRwYXRoRVJLTlNf
MTBlcnJvcl9jb2RlRUVFRXZEcE9UXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0
X19mczEwZmlsZXN5c3RlbTE0X19pc19zZXBhcmF0b3JJY0VFTlNfOWVuYWJsZV9pZklYc3IxOF9f
Y2FuX2NvbnZlcnRfY2hhcklUX0VFNXZhbHVlRWJFNHR5cGVFUzRfIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJy
YXlJUEtjUzRfY0xiMUVFMTVfX2ZpcnN0X29yX251bGxFUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtNHBhdGgyMF9fc291cmNlX2lzX2Fic29sdXRl
SWNFRWJUXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3Rl
bTRwYXRoNmFwcGVuZElQS2NFRU5TXzllbmFibGVfaWZJWHNyMTNfX2lzX3BhdGhhYmxlSVRfRUU1
dmFsdWVFUlMyX0U0dHlwZUVSS1M3XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0
X19mczEwZmlsZXN5c3RlbTZ1OHBhdGhJUEtjRUVOU185ZW5hYmxlX2lmSVhzcjEzX19pc19wYXRo
YWJsZUlUX0VFNXZhbHVlRU5TMV80cGF0aEVFNHR5cGVFUktTNl8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCxfX1pOS1N0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJlY3RvcnlfaXRlcmF0b3JwdEV2
IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJl
Y3RvcnlfaXRlcmF0b3I5aW5jcmVtZW50RVJOU18xMGVycm9yX2NvZGVFOwogCi1PVEhFUl9MREZM
QUdTX0JBU0UgPSAkKE9USEVSX0xERkxBR1NfSElERV9TWU1CT0xTKSAtZm9yY2VfbG9hZCAiJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL2xpYldURi5h
IjsKKy8vIE5lZWRlZCBieSBgU291cmNlL1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbWAu
CitXS19JTlRFUk5BVElPTkFMX1NVUFBPUlRfTERGTEFHUyA9IC1mcmFtZXdvcmsgSW50ZXJuYXRp
b25hbFN1cHBvcnQ7CisKK09USEVSX0xERkxBR1NfQkFTRSA9ICQoT1RIRVJfTERGTEFHU19ISURF
X1NZTUJPTFMpIC1pZnJhbWV3b3JrICQoU0RLX0RJUikkKFNZU1RFTV9MSUJSQVJZX0RJUikvUHJp
dmF0ZUZyYW1ld29ya3MgLWZvcmNlX2xvYWQgIiQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9KYXZhU2NyaXB0Q29yZS9saWJXVEYuYSIgJChXS19JTlRFUk5BVElPTkFMX1NVUFBP
UlRfTERGTEFHUyk7CiBPVEhFUl9MREZMQUdTW3Nkaz1lbWJlZGRlZCpdID0gJChpbmhlcml0ZWQp
ICQoT1RIRVJfTERGTEFHU19CQVNFKTsKIE9USEVSX0xERkxBR1Nbc2RrPW1hY29zeCpdID0gJChp
bmhlcml0ZWQpICQoT1RIRVJfTERGTEFHU19CQVNFKSAtZnJhbWV3b3JrIENvcmVTZXJ2aWNlczsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL3BsYXlzdGF0aW9uL1Rl
c3RTaGVsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvcGxheXN0YXRpb24vVGVz
dFNoZWxsLmNwcAppbmRleCAyNzgyZmRhMDg5ODY1ZGNmMGUyZjdjMWRiMjkzMzE1MTI4OTRkZTQ5
Li4zMWZlYWY3ZWM1OGY3OTVmOGMzZGJiNzdkOWY5NTdjMzNmNjJmYzMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcApA
QCAtNjIsNyArNjIsNyBAQCBleHRlcm4gIkMiIHZvaWQgcHJlVGVzdCgpCiAgICAgSlNDOjpPcHRp
b25zOjpuYW1lXygpID0gb3JpZyMjbmFtZV87CiAgICAgRk9SX0VBQ0hfSlNDX09QVElPTihJTklU
X09QVElPTikKICN1bmRlZiBJTklUX09QVElPTgotICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExh
bmd1YWdlcyhwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSk7CisgICAgb3ZlcnJpZGVV
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHsgfSk7CiB9CiAKIGV4dGVybiAiQyIgaW50IHJ1blRlc3Qo
aW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xhbmd1
YWdlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcAppbmRleCBiZTYyNThkODU3ZTU5
ODhmOTY5ODM5MDIwMmJjYzkzYzNjMTc4MjBmLi43MDE2OTYyMDUyZmJhOGFlM2Q5OTFlMmEwYWYw
N2MyYjUxN2EzYmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwCkBAIC0zNyw2ICszNywxOCBAQAogCiBuYW1l
c3BhY2UgV1RGIHsKIAorc3RhdGljIENoZWNrZWRMb2NrIGNhY2hlZFBsYXRmb3JtUHJlZmVycmVk
TGFuZ3VhZ2VzTG9jazsKK3N0YXRpYyBWZWN0b3I8U3RyaW5nPiYgY2FjaGVkRnVsbFBsYXRmb3Jt
UHJlZmVycmVkTGFuZ3VhZ2VzKCkgV1RGX1JFUVVJUkVTX0xPQ0soY2FjaGVkUGxhdGZvcm1QcmVm
ZXJyZWRMYW5ndWFnZXNMb2NrKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8
U3RyaW5nPj4gbGFuZ3VhZ2VzOworICAgIHJldHVybiBsYW5ndWFnZXM7Cit9CitzdGF0aWMgVmVj
dG9yPFN0cmluZz4mIGNhY2hlZE1pbmltaXplZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkg
V1RGX1JFUVVJUkVTX0xPQ0soY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrKQor
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4gbGFuZ3VhZ2VzOwor
ICAgIHJldHVybiBsYW5ndWFnZXM7Cit9CisKIHN0YXRpYyBDaGVja2VkTG9jayBwcmVmZXJyZWRM
YW5ndWFnZXNPdmVycmlkZUxvY2s7CiBzdGF0aWMgVmVjdG9yPFN0cmluZz4mIHByZWZlcnJlZExh
bmd1YWdlc092ZXJyaWRlKCkgV1RGX1JFUVVJUkVTX0xPQ0socHJlZmVycmVkTGFuZ3VhZ2VzT3Zl
cnJpZGVMb2NrKQogewpAQCAtNjgsMTYgKzgwLDIxIEBAIHZvaWQgcmVtb3ZlTGFuZ3VhZ2VDaGFu
Z2VPYnNlcnZlcih2b2lkKiBjb250ZXh0KQogCiB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCkKIHsK
LSAgICBwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdlKCk7CisgICAgeworICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrIH07CisgICAgICAg
IGNhY2hlZEZ1bGxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpLmNsZWFyKCk7CisgICAgICAg
IGNhY2hlZE1pbmltaXplZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkuY2xlYXIoKTsKKyAg
ICB9CisKICAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogY29weVRvVmVjdG9yKG9ic2VydmVyTWFw
KCkpKSB7CiAgICAgICAgIGlmIChvYnNlcnZlck1hcCgpLmNvbnRhaW5zKG9ic2VydmVyLmtleSkp
CiAgICAgICAgICAgICBvYnNlcnZlci52YWx1ZShvYnNlcnZlci5rZXkpOwogICAgIH0KIH0KIAot
U3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgpCitTdHJpbmcgZGVmYXVsdExhbmd1YWdlKFNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzIHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewotICAgIFZlY3RvcjxT
dHJpbmc+IGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBWZWN0b3I8
U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzKTsKICAgICBpZiAobGFuZ3VhZ2VzLnNpemUoKSkKICAgICAgICAgcmV0dXJuIGxh
bmd1YWdlc1swXTsKIApAQCAtMTA4LDcgKzEyNSw3IEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBp
c29sYXRlZENvcHkoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmluZ3MpCiAgICAgcmV0dXJuIGNv
cHk7CiB9CiAKLVZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9y
PFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyBz
aG91bGRNaW5pbWl6ZUxhbmd1YWdlcykKIHsKICAgICB7CiAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUxvY2sgfTsKQEAgLTExNyw3ICsxMzQsMTEgQEAg
VmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpCiAgICAgICAgICAgICByZXR1
cm4gaXNvbGF0ZWRDb3B5KG92ZXJyaWRlKTsKICAgICB9CiAKLSAgICByZXR1cm4gcGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgTG9ja2VyIGxvY2tlciB7IGNhY2hlZFBsYXRm
b3JtUHJlZmVycmVkTGFuZ3VhZ2VzTG9jayB9OworICAgIGF1dG8mIGxhbmd1YWdlcyA9IHNob3Vs
ZE1pbmltaXplTGFuZ3VhZ2VzID09IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMgPyBjYWNo
ZWRNaW5pbWl6ZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpIDogY2FjaGVkRnVsbFBsYXRm
b3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgaWYgKGxhbmd1YWdlcy5pc0VtcHR5KCkpCisg
ICAgICAgIGxhbmd1YWdlcyA9IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhzaG91bGRN
aW5pbWl6ZUxhbmd1YWdlcyk7CisgICAgcmV0dXJuIGlzb2xhdGVkQ29weShsYW5ndWFnZXMpOwog
fQogCiBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmd1YWdlSWRlbnRpZmllcihjb25zdCBTdHJp
bmcmIGxhbmd1YWdlQ29kZSkKQEAgLTE4NCwxMCArMjA1LDI2IEBAIFN0cmluZyBkaXNwbGF5TmFt
ZUZvckxhbmd1YWdlTG9jYWxlKGNvbnN0IFN0cmluZyYgbG9jYWxlTmFtZSkKICAgICByZXR1cm4g
bG9jYWxlTmFtZTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkKLXZvaWQgcGxhdGZvcm1MYW5n
dWFnZURpZENoYW5nZSgpCitzdGF0aWMgQ2hlY2tlZExvY2sgaW5pdGlhbFBsYXRmb3JtUHJlZmVy
cmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nTG9jazsKK3N0YXRpYyBWZWN0b3I8U3RyaW5n
PiYgaW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nKCkg
V1RGX1JFUVVJUkVTX0xPQ0soaW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJp
ZGVGb3JUZXN0aW5nTG9jaykKIHsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0
cmluZz4+IG92ZXJyaWRlOworICAgIHJldHVybiBvdmVycmlkZTsKIH0KLSNlbmRpZgogCitWZWN0
b3I8U3RyaW5nPiBpbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVG
b3JUZXN0aW5nKCkKK3sKKyAgICBMb2NrZXIgbG9ja2VyIHsgaW5pdGlhbFBsYXRmb3JtUHJlZmVy
cmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nTG9jayB9OworICAgIHJldHVybiBpbml0aWFs
UGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKTsKIH0KKwordm9p
ZCBvdmVycmlkZUluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNGb3JUZXN0aW5n
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvdmVycmlkZSkKK3sKKyAgICB7CisgICAgICAgIExvY2tl
ciBsb2NrZXIgeyBpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRl
c3RpbmdMb2NrIH07CisgICAgICAgIGluaXRpYWxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc092
ZXJyaWRlRm9yVGVzdGluZygpID0gb3ZlcnJpZGU7CisgICAgfQorICAgIGxhbmd1YWdlRGlkQ2hh
bmdlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvTGFuZ3VhZ2UuaCBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmgKaW5kZXggZjA3NGQ3NTY4
ZDAwMmU5MzJhNTMyNmJkYjUyZDdmYjhjMDY1ODE4My4uMjkwZTNlN2M4YjQ0N2UyNGYzZTE4OGVi
ZTBlNTNiYjYyZGZmYjA3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oCkBAIC0zNSwxMyArMzUsMTMgQEAKIAogbmFt
ZXNwYWNlIFdURiB7CiAKLVdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgZGVmYXVsdExhbmd1YWdl
KCk7IC8vIFRocmVhZC1zYWZlLgotV1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsgLy8gVGhyZWFkLXNhZmUsIHJldHVybnMgQkNQIDQ3IGxh
bmd1YWdlIHRhZ3MuCitlbnVtIGNsYXNzIFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzIHsgTm8sIFll
cyB9OworCitXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIGRlZmF1bHRMYW5ndWFnZShTaG91bGRN
aW5pbWl6ZUxhbmd1YWdlcyA9IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMpOyAvLyBUaHJl
YWQtc2FmZS4KK1dURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID0gU2hvdWxkTWluaW1pemVMYW5ndWFn
ZXM6Olllcyk7IC8vIFRocmVhZC1zYWZlLCByZXR1cm5zIEJDUCA0NyBsYW5ndWFnZSB0YWdzLgog
V1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNP
dmVycmlkZSgpOwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgb3ZlcnJpZGVVc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgc2l6
ZV90IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChjb25zdCBTdHJpbmcmIGxhbmd1
YWdlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VMaXN0LCBib29sJiBleGFjdE1hdGNo
KTsKLVdURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoKTsKLVdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHBsYXRmb3JtTGFuZ3VhZ2VE
aWRDaGFuZ2UoKTsKIAogLy8gQ2FsbGVkIGZyb20gcGxhdGZvcm0gc3BlY2lmaWMgY29kZSB3aGVu
IHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlKHMpIGNoYW5nZS4KIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCk7CkBAIC01MiwyMCArNTIsMjYgQEAgV1RGX0VY
UE9SVF9QUklWQVRFIHZvaWQgYWRkTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0
LCBMYW5ndWFnZUNoYW5nZU8KIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHJlbW92ZUxhbmd1YWdl
Q2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5n
IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJik7CiAKK1ZlY3RvcjxT
dHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1
YWdlcyA9IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMpOworCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiBib29sIGNhbk1pbmltaXplTGFuZ3VhZ2VzKCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBsaXN0ZW5Gb3JMYW5ndWFnZUNoYW5nZU5vdGlmaWNhdGlvbnMoKTsKIFJldGFpblB0cjxDRkFy
cmF5UmVmPiBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzKENGQXJyYXlSZWYpOwotI2Vu
ZGlmCitSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGJhc2VMYW5ndWFnZUZyb21MYW5ndWFnZShDRlN0
cmluZ1JlZik7CiAKLX0KK1ZlY3RvcjxTdHJpbmc+IGluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKTsKK1dURl9FWFBPUlRfUFJJVkFURSB2b2lk
IG92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0ZvclRlc3Rpbmco
Y29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAorfSAv
LyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6U2hvdWxkTWluaW1pemVMYW5ndWFnZXM7CiB1
c2luZyBXVEY6OmRlZmF1bHRMYW5ndWFnZTsKIHVzaW5nIFdURjo6dXNlclByZWZlcnJlZExhbmd1
YWdlczsKIHVzaW5nIFdURjo6dXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlOwogdXNpbmcg
V1RGOjpvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7CiB1c2luZyBXVEY6OmluZGV4T2ZC
ZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdDsKLXVzaW5nIFdURjo6cGxhdGZvcm1Vc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzOwogdXNpbmcgV1RGOjphZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyOwogdXNp
bmcgV1RGOjpyZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyOwogdXNpbmcgV1RGOjpkaXNwbGF5
TmFtZUZvckxhbmd1YWdlTG9jYWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY2YvTGFu
Z3VhZ2VDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcAppbmRleCBlMDcz
MTE1NDI5MWJmZDA3YzRjYzE2ZGEwNDJhYWFkYjU5YzllM2IxLi40YzdiNjAyZWRhZDRiNTNlMzMw
MjQzZTg5OGQ2Yjc1YjAwMjEzMzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5n
dWFnZUNGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcApAQCAtMzAs
MTYgKzMwLDEyIEBACiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8dW5pY29kZS91bG9jLmg+
CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2su
aD4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3NwaS9jZi9DRkJ1bmRsZVNQSS5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIAotc3RhdGljIENoZWNrZWRM
b2NrIHByZWZlcnJlZExhbmd1YWdlc0xvY2s7Ci0KICNpZiBQTEFURk9STShNQUMpCiBzdGF0aWMg
dm9pZCBsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdlKENGTm90aWZpY2F0aW9uQ2VudGVyUmVm
LCB2b2lkKiwgQ0ZTdHJpbmdSZWYsIGNvbnN0IHZvaWQqLCBDRkRpY3Rpb25hcnlSZWYpCiB7CkBA
IC00NywxNiArNDMsNiBAQCBzdGF0aWMgdm9pZCBsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdl
KENGTm90aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkKiwgQ0ZTdHJpbgogfQogI2VuZGlmCiAKLXN0
YXRpYyBWZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzKCkgV1RGX1JFUVVJUkVTX0xP
Q0socHJlZmVycmVkTGFuZ3VhZ2VzTG9jaykKLXsKLSAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJv
eWVkPFZlY3RvcjxTdHJpbmc+PiBsYW5ndWFnZXM7Ci0gICAgc3RhdGljIHN0ZDo6b25jZV9mbGFn
IG9uY2VLZXk7Ci0gICAgc3RkOjpjYWxsX29uY2Uob25jZUtleSwgWyZdIHsKLSAgICAgICAgbGFu
Z3VhZ2VzLmNvbnN0cnVjdCgpOwotICAgIH0pOwotICAgIHJldHVybiBsYW5ndWFnZXM7Ci19Ci0K
IHN0YXRpYyBTdHJpbmcgaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKENGU3RyaW5nUmVmIGxhbmd1YWdl
KQogewogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcHJlZmVycmVkTGFuZ3VhZ2VDb2RlOwpA
QCAtODgsMTQgKzc0LDYgQEAgc3RhdGljIFN0cmluZyBodHRwU3R5bGVMYW5ndWFnZUNvZGUoQ0ZT
dHJpbmdSZWYgbGFuZ3VhZ2UpCiAgICAgcmV0dXJuIG11dGFibGVMYW5ndWFnZUNvZGUuZ2V0KCk7
CiB9CiAKLXZvaWQgcGxhdGZvcm1MYW5ndWFnZURpZENoYW5nZSgpCi17Ci0gICAgewotICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgcHJlZmVycmVkTGFuZ3VhZ2VzTG9jayB9OwotICAgICAgICBwcmVm
ZXJyZWRMYW5ndWFnZXMoKS5jbGVhcigpOwotICAgIH0KLX0KLQogdm9pZCBsaXN0ZW5Gb3JMYW5n
dWFnZUNoYW5nZU5vdGlmaWNhdGlvbnMoKQogewogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTEwNiwz
MiArODQsMzggQEAgdm9pZCBsaXN0ZW5Gb3JMYW5ndWFnZUNoYW5nZU5vdGlmaWNhdGlvbnMoKQog
I2VuZGlmCiB9CiAKLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cygpCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxk
TWluaW1pemVMYW5ndWFnZXMgc2hvdWxkTWluaW1pemVMYW5ndWFnZXMpCiB7Ci0gICAgTG9ja2Vy
IGxvY2tlciB7IHByZWZlcnJlZExhbmd1YWdlc0xvY2sgfTsKLSAgICBWZWN0b3I8U3RyaW5nPiYg
dXNlclByZWZlcnJlZExhbmd1YWdlcyA9IHByZWZlcnJlZExhbmd1YWdlcygpOworICAgIFJldGFp
blB0cjxDRkFycmF5UmVmPiBwbGF0Zm9ybUxhbmd1YWdlczsKKyAgICBpZiAoYXV0byBvdmVycmlk
ZSA9IGluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3Rp
bmcoKTsgIW92ZXJyaWRlLmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvIGFycmF5ID0gYWRvcHRD
RihDRkFycmF5Q3JlYXRlTXV0YWJsZSgwLCBvdmVycmlkZS5zaXplKCksICZrQ0ZUeXBlQXJyYXlD
YWxsQmFja3MpKTsKKyAgICAgICAgZm9yIChhdXRvJiBpdGVtIDogb3ZlcnJpZGUpCisgICAgICAg
ICAgICBDRkFycmF5QXBwZW5kVmFsdWUoYXJyYXkuZ2V0KCksIGl0ZW0uY3JlYXRlQ0ZTdHJpbmco
KS5nZXQoKSk7CisgICAgICAgIHBsYXRmb3JtTGFuZ3VhZ2VzID0gV1RGTW92ZShhcnJheSk7Cisg
ICAgfSBlbHNlCisgICAgICAgIHBsYXRmb3JtTGFuZ3VhZ2VzID0gYWRvcHRDRihDRkxvY2FsZUNv
cHlQcmVmZXJyZWRMYW5ndWFnZXMoKSk7CiAKLSAgICBpZiAodXNlclByZWZlcnJlZExhbmd1YWdl
cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IGxhbmd1YWdlcyA9
IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5UHJlZmVycmVkTGFuZ3VhZ2VzKCkpOwotICAgICAgICBsYW5n
dWFnZXMgPSBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzKGxhbmd1YWdlcy5nZXQoKSk7
Ci0gICAgICAgIENGSW5kZXggbGFuZ3VhZ2VDb3VudCA9IENGQXJyYXlHZXRDb3VudChsYW5ndWFn
ZXMuZ2V0KCkpOwotICAgICAgICBpZiAoIWxhbmd1YWdlQ291bnQpCi0gICAgICAgICAgICB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZCgiZW4iKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBsYW5ndWFnZUNvdW50OyBpKyspCi0gICAgICAg
ICAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFuZ3VhZ2VD
b2RlKHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGxhbmd1
YWdlcy5nZXQoKSwgaSkpKSk7CisgICAgaWYgKHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID09IFNo
b3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMpCisgICAgICAgIHBsYXRmb3JtTGFuZ3VhZ2VzID0g
bWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlcyhwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSk7
CisKKyAgICBDRkluZGV4IHBsYXRmb3JtTGFuZ3VhZ2VzQ291bnQgPSBDRkFycmF5R2V0Q291bnQo
cGxhdGZvcm1MYW5ndWFnZXMuZ2V0KCkpOworICAgIGlmICghcGxhdGZvcm1MYW5ndWFnZXNDb3Vu
dCkKKyAgICAgICAgcmV0dXJuIHsgImVuIl9zIH07CisKKyAgICBWZWN0b3I8U3RyaW5nPiBsYW5n
dWFnZXM7CisgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgcGxhdGZvcm1MYW5ndWFnZXNDb3Vu
dDsgaSsrKSB7CisgICAgICAgIGF1dG8gcGxhdGZvcm1MYW5ndWFnZSA9IHN0YXRpY19jYXN0PENG
U3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KHBsYXRmb3JtTGFuZ3VhZ2VzLmdldCgp
LCBpKSk7CisgICAgICAgIGxhbmd1YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKHBs
YXRmb3JtTGFuZ3VhZ2UpKTsKKworICAgICAgICBpZiAoc2hvdWxkTWluaW1pemVMYW5ndWFnZXMg
PT0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKSB7CisgICAgICAgICAgICAvLyBDb252ZXJ0
IGxhbmd1YWdlcyB3aXRoIGNvdW50cnkgY29kZXMgdG8gZXF1aXZhbGVudCBsYW5ndWFnZXMgd2l0
aG91dCBjb3VudHJ5IGNvZGVzIChpZiBwb3NzaWJsZSkuCisgICAgICAgICAgICAvLyBlLmcuICJl
bi1VUyIgYmVjb21lcyAiZW4iLCB3aGljaCBpcyB1c2VmdWwgd2hlbiB0cnlpbmcgdG8gbWF0Y2gg
SFRNTCBgbGFuZz0iZW4iYC4KKyAgICAgICAgICAgIGF1dG8gYmFzZUxhbmd1YWdlID0gYmFzZUxh
bmd1YWdlRnJvbUxhbmd1YWdlKHBsYXRmb3JtTGFuZ3VhZ2UpOworICAgICAgICAgICAgaWYgKGJh
c2VMYW5ndWFnZSAmJiBiYXNlTGFuZ3VhZ2UgIT0gcGxhdGZvcm1MYW5ndWFnZSAmJiBDRlN0cmlu
Z0NvbXBhcmUoYmFzZUxhbmd1YWdlLmdldCgpLCBwbGF0Zm9ybUxhbmd1YWdlLCAwKSAhPSBrQ0ZD
b21wYXJlRXF1YWxUbykKKyAgICAgICAgICAgICAgICBsYW5ndWFnZXMuYXBwZW5kKGh0dHBTdHls
ZUxhbmd1YWdlQ29kZShiYXNlTGFuZ3VhZ2UuZ2V0KCkpKTsKICAgICAgICAgfQogICAgIH0KLQot
ICAgIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5OwotICAgIHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNDb3B5LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodXNlclByZWZlcnJl
ZExhbmd1YWdlcy5zaXplKCkpOwotCi0gICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IHVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMpCi0gICAgICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5LnVuY2hl
Y2tlZEFwcGVuZChsYW5ndWFnZS5pc29sYXRlZENvcHkoKSk7Ci0KLSAgICByZXR1cm4gdXNlclBy
ZWZlcnJlZExhbmd1YWdlc0NvcHk7Ci0KLSAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKKyAg
ICByZXR1cm4gbGFuZ3VhZ2VzOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0gYi9Tb3VyY2UvV1RGL3d0Zi9j
b2NvYS9MYW5ndWFnZUNvY29hLm1tCmluZGV4IDViYWI3YzdiMjY3YzBhZGQyNTViMmZlNjc2MmVl
NjQwZTA1ODg5OTMuLjQxZTAzMzI5MWEzMjE3YWE4NDMxZDA2NmZjYjMwOTYyOTBhNTY2ZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0KKysrIGIvU291
cmNlL1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbQpAQCAtMzgsOCArMzgsNyBAQCBib29s
IGNhbk1pbmltaXplTGFuZ3VhZ2VzKCkKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIGlmIChh
cHBsaWNhdGlvblNES1ZlcnNpb24oKSA8IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTVfNCkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKElPUykKKyNlbGlm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgIGlmIChhcHBsaWNhdGlvblNES1ZlcnNpb24o
KSA8IERZTERfSU9TX1ZFUlNJT05fMTNfNCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICNl
bmRpZgpAQCAtNTAsNiArNDksOCBAQCBib29sIGNhbk1pbmltaXplTGFuZ3VhZ2VzKCkKIAogUmV0
YWluUHRyPENGQXJyYXlSZWY+IG1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFnZXMoQ0ZBcnJh
eVJlZiBsYW5ndWFnZXMpCiB7CisgICAgLy8gVGhpcyByZXF1aXJlcyBsaW5raW5nIGBJbnRlcm5h
dGlvbmFsU3VwcG9ydGAuCisKICAgICBpZiAoIWNhbk1pbmltaXplTGFuZ3VhZ2VzKCkpCiAgICAg
ICAgIHJldHVybiBsYW5ndWFnZXM7CiAKQEAgLTU4LDQgKzU5LDI5IEBAIEFMTE9XX05FV19BUElf
V0lUSE9VVF9HVUFSRFNfQkVHSU4KIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiB9
CiAKK3N0YXRpYyBib29sIGNhbkdldEJhc2VMYW5ndWFnZSgpCit7CisgICAgc3RhdGljIGNvbnN0
IGJvb2wgcmVzdWx0ID0gW10oKSAtPiBib29sIHsKKyNpZiBQTEFURk9STShNQUMpCisgICAgICAg
IGlmIChhcHBsaWNhdGlvblNES1ZlcnNpb24oKSA8IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgICAgICBpZiAoYXBwbGljYXRpb25TREtWZXJzaW9uKCkgPCBEWUxEX0lPU19WRVJTSU9OXzEx
XzApCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIFtO
U0xvY2FsZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGJhc2VMYW5ndWFnZUZyb21MYW5n
dWFnZTopXTsKKyAgICB9KCk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KKworUmV0YWluUHRyPENG
U3RyaW5nUmVmPiBiYXNlTGFuZ3VhZ2VGcm9tTGFuZ3VhZ2UoQ0ZTdHJpbmdSZWYgbGFuZ3VhZ2Up
Cit7CisgICAgLy8gVGhpcyByZXF1aXJlcyBsaW5raW5nIGBJbnRlcm5hdGlvbmFsU3VwcG9ydGAu
CisKKyAgICBpZiAoIWNhbkdldEJhc2VMYW5ndWFnZSgpKQorICAgICAgICByZXR1cm4gbGFuZ3Vh
Z2U7CisKKyAgICByZXR1cm4gKF9fYnJpZGdlIENGU3RyaW5nUmVmKVtOU0xvY2FsZSBiYXNlTGFu
Z3VhZ2VGcm9tTGFuZ3VhZ2U6KF9fYnJpZGdlIE5TU3RyaW5nICopbGFuZ3VhZ2VdOworfQorCit9
IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0aW9u
L0xhbmd1YWdlUGxheVN0YXRpb24uY3BwIGIvU291cmNlL1dURi93dGYvcGxheXN0YXRpb24vTGFu
Z3VhZ2VQbGF5U3RhdGlvbi5jcHAKaW5kZXggZDQ1MzdhNjk0MGI1ZTAyMmJmNWU1Y2RmNzFhODYz
ZDMzMDlkZjYxYy4uY2FmMTU0OWY4MDAyYzEzN2UyZjFhMDYyMjgxODE1NGY1NjI1NGU1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5j
cHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLVZlY3RvcjxTdHJpbmc+
IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMpCiB7CiAgICAg
VmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9z
cGkvY29jb2EvTlNMb2NhbGVTUEkuaCBiL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9OU0xvY2Fs
ZVNQSS5oCmluZGV4IDVjZWYxNjQwMzE2YjQ3M2E3MWJlN2JiYTYxYTg4Mjc0ZjI4MTA2MjEuLmNh
OTgyMDFjNjE2M2EzNzllZTFkOGYyY2E0ZjU1ZDM2ZmZhYmYwYjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL3NwaS9jb2NvYS9OU0xvY2FsZVNQSS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Nw
aS9jb2NvYS9OU0xvY2FsZVNQSS5oCkBAIC0zMiw2ICszMiw3IEBACiAjZW5kaWYKIAogQGludGVy
ZmFjZSBOU0xvY2FsZSAoKQorKyAobm9ubnVsbCBOU1N0cmluZyAqKWJhc2VMYW5ndWFnZUZyb21M
YW5ndWFnZToobm9ubnVsbCBOU1N0cmluZyAqKWxhbmd1YWdlSUQ7CiArIChub25udWxsIE5TQXJy
YXk8TlNTdHJpbmcgKj4gKiltaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzOihub25udWxs
IE5TQXJyYXk8TlNTdHJpbmcgKj4gKilsYW5ndWFnZXM7CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VuaXgv
TGFuZ3VhZ2VVbml4LmNwcAppbmRleCAzMWM3NTc0NzJlZWFiNjQwNzI2ZTk0YzVjNTc1MDcxOGZh
MzkzOGQxLi5hZjk0YmIwNmNjMzhkZDJhODU5NWJmYmI3NzE2OTBmOTJkYjQ4YWUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCkBAIC00Miw3ICs0Miw3IEBAIHN0YXRpYyBTdHJp
bmcgcGxhdGZvcm1MYW5ndWFnZSgpCiAgICAgcmV0dXJuIG5vcm1hbGl6ZWREZWZhdWx0OwogfQog
Ci1WZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9y
PFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFu
Z3VhZ2VzKQogewogICAgIHJldHVybiB7IHBsYXRmb3JtTGFuZ3VhZ2UoKSB9OwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvd2luL0xhbmd1YWdlV2luLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L3dpbi9MYW5ndWFnZVdpbi5jcHAKaW5kZXggNmI1MmM5YzIwZDE1Y2JhN2UzOWQ1NDIwMTFiNDM4
YTM4MzU4YzJiMi4uYmY5NmIwYTU1Yzg4OTkzMWM0YzJkNTMzMTdlOGM1ZTAxN2UyYWExMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvd2luL0xhbmd1YWdlV2luLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBTdHJp
bmcgcGxhdGZvcm1MYW5ndWFnZSgpCiAgICAgcmV0dXJuIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdl
OwogfQogCi1WZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQor
VmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmlt
aXplTGFuZ3VhZ2VzKQogewogICAgIHJldHVybiB7IHBsYXRmb3JtTGFuZ3VhZ2UoKSB9OwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXgg
YWIwM2JkYjQzYzZmM2EzZjE1YmE5NWU4ZDJiYjMxZTdiY2ExZTUzOS4uODExNDE5MGI0M2VjNTk2
MmQxYmZlNzJjYjhiOTExMjBmY2Q3MjVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC04Myw3ICs4Myw3IEBAIGNvbnN0IEdsb2JhbE9i
amVjdE1ldGhvZFRhYmxlIEpTRE9NV2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSA9IHsKICAgICAmcmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKICAgICAmY3Vy
cmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLAogICAgICZzY3JpcHRFeGVjdXRpb25TdGF0dXMsCi0g
ICAgJmRlZmF1bHRMYW5ndWFnZSwKKyAgICBbXSB7IHJldHVybiBkZWZhdWx0TGFuZ3VhZ2UoKTsg
fSwKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgJmNvbXBpbGVTdHJlYW1pbmcsCiAgICAg
Jmluc3RhbnRpYXRlU3RyZWFtaW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IDQ4Mzk5NzA4ZWUwMzRiYzU4
YWMzODJmM2NhYzk3ZjkxNjc3ODJmYjguLjkyMTI1ZTU2ZDY5OTVkNDYwMGRjZDhmY2I3YjQyM2Jh
NThiYjQ4M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2Vy
R2xvYmFsU2NvcGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgY29uc3QgR2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0
aG9kVGFibGUKICAgICAmcmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKICAgICAm
Y3VycmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLAogICAgICZzY3JpcHRFeGVjdXRpb25TdGF0dXMs
Ci0gICAgJmRlZmF1bHRMYW5ndWFnZSwKKyAgICBbXSB7IHJldHVybiBkZWZhdWx0TGFuZ3VhZ2Uo
KTsgfSwKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgJmNvbXBpbGVTdHJlYW1pbmcsCiAg
ICAgJmluc3RhbnRpYXRlU3RyZWFtaW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNDIxZTc0NGYzMzA3
YWJkOTliMWU1YzJkNWQ3ZjEzZTMzYjM4ZTkwMS4uNDIwMjcyYTFkMGI3NWNhNjk1YTY2ZjEyNDZl
NDc0NTk2ZDVhNGU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
b3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIGNvbnN0IEds
b2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxP
YmplY3RNZXRob2RUYWJsCiAgICAgJnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3As
CiAgICAgJmN1cnJlbnRTY3JpcHRFeGVjdXRpb25Pd25lciwKICAgICAmc2NyaXB0RXhlY3V0aW9u
U3RhdHVzLAotICAgICZkZWZhdWx0TGFuZ3VhZ2UsCisgICAgW10geyByZXR1cm4gZGVmYXVsdExh
bmd1YWdlKCk7IH0sCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICZjb21waWxlU3RyZWFt
aW5nLAogICAgICZpbnN0YW50aWF0ZVN0cmVhbWluZywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCmluZGV4IGQzZTQ1ZThiYjRjN2QyMDBjZDNhNGEy
MTI4MjBkZTRlZGZjZDFiZjguLjU1ZmEwOTY0YzdmZDk4ODYzNWVmMzMyNWNiZGFiZjBlMjEzNDQ4
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNl
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNw
cApAQCAtMTcwLDcgKzE3MCw3IEBAIHZvaWQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Y2FwdGlv
blByZWZlcmVuY2VzQ2hhbmdlZCgpCiAKIFZlY3RvcjxTdHJpbmc+IENhcHRpb25Vc2VyUHJlZmVy
ZW5jZXM6OnByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0CiB7Ci0gICAgVmVjdG9yPFN0cmluZz4g
bGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOworICAgIFZlY3RvcjxTdHJpbmc+
IGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFn
ZXM6Ok5vKTsKICAgICBpZiAobV90ZXN0aW5nTW9kZSAmJiAhbV91c2VyUHJlZmVycmVkTGFuZ3Vh
Z2UuaXNFbXB0eSgpKQogICAgICAgICBsYW5ndWFnZXMuaW5zZXJ0KDAsIG1fdXNlclByZWZlcnJl
ZExhbmd1YWdlKTsKIApAQCAtMzQxLDcgKzM0MSw3IEBAIGludCBDYXB0aW9uVXNlclByZWZlcmVu
Y2VzOjp0ZXh0VHJhY2tTZWxlY3Rpb25TY29yZShUZXh0VHJhY2sqIHRyYWNrLCBIVE1MTWVkaWFF
CiAgICAgICAgICAgICBpZiAob2Zmc2V0KQogICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgbGFuZ3VhZ2VMaXN0LmFwcGVuZChkZWZhdWx0TGFu
Z3VhZ2UoKSk7CisgICAgICAgICAgICBsYW5ndWFnZUxpc3QuYXBwZW5kKGRlZmF1bHRMYW5ndWFn
ZShTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6Tm8pKTsKIAogICAgICAgICAgICAgLy8gT25seSBl
bmFibGUgYSB0ZXh0IHRyYWNrIGlmIHRoZSBjdXJyZW50IGF1ZGlvIHRyYWNrIGlzIE5PVCBpbiB0
aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZSAuLi4KICAgICAgICAgICAgIHNpemVfdCBvZmZz
ZXQgPSBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QoYXVkaW9UcmFja0xhbmd1YWdl
LCBsYW5ndWFnZUxpc3QsIGV4YWN0TWF0Y2gpOwpAQCAtNDE4LDcgKzQxOCw3IEBAIFN0cmluZyBD
YXB0aW9uVXNlclByZWZlcmVuY2VzOjpwcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGUo
KSBjb25zdAogewogICAgIGlmICghbV9wcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGUu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbV9wcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3Zl
cnJpZGU7Ci0gICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZSgpOworICAgIHJldHVybiBkZWZhdWx0
TGFuZ3VhZ2UoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKTsKIH0KICAgICAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5j
cHAKaW5kZXggY2YyZTFiZWEyNWIwZjA3OTk4NjM5MjA1OTQ1ZGYwZWVmOTJkM2M0Mi4uOWQ3MmVk
NjVlMmYzYTc4NTgwN2EzZmYyNWJiZmRmM2MwNTI2MjA0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKQEAgLTQ3MSwz
NiArNDcxLDIwIEBAIHZvaWQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OnNldFByZWZl
cnJlZExhbmd1YWdlKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpCiAKIFZlY3RvcjxTdHJpbmc+IENh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpwcmVmZXJyZWRMYW5ndWFnZXMoKSBjb25zdAog
ewotICAgIGlmICh0ZXN0aW5nTW9kZSgpIHx8ICFNZWRpYUFjY2Vzc2liaWxpdHlMaWJyYXJ5KCkp
Ci0gICAgICAgIHJldHVybiBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpwcmVmZXJyZWRMYW5ndWFn
ZXMoKTsKLQotICAgIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtTGFuZ3VhZ2VzID0gcGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7Ci0gICAgVmVjdG9yPFN0cmluZz4gb3ZlcnJpZGUgPSB1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKLSAgICBpZiAoIW92ZXJyaWRlLmlzRW1w
dHkoKSkgewotICAgICAgICBpZiAocGxhdGZvcm1MYW5ndWFnZXMuc2l6ZSgpICE9IG92ZXJyaWRl
LnNpemUoKSkKLSAgICAgICAgICAgIHJldHVybiBvdmVycmlkZTsKLSAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBvdmVycmlkZS5zaXplKCk7IGkrKykgewotICAgICAgICAgICAgaWYgKG92
ZXJyaWRlW2ldICE9IHBsYXRmb3JtTGFuZ3VhZ2VzW2ldKQotICAgICAgICAgICAgICAgIHJldHVy
biBvdmVycmlkZTsKKyAgICBhdXRvIHByZWZlcnJlZExhbmd1YWdlcyA9IENhcHRpb25Vc2VyUHJl
ZmVyZW5jZXM6OnByZWZlcnJlZExhbmd1YWdlcygpOworICAgIGlmICghdGVzdGluZ01vZGUoKSAm
JiBNZWRpYUFjY2Vzc2liaWxpdHlMaWJyYXJ5KCkpIHsKKyAgICAgICAgYXV0byBjYXB0aW9uTGFu
Z3VhZ2VzID0gYWRvcHRDRihNQUNhcHRpb25BcHBlYXJhbmNlQ29weVNlbGVjdGVkTGFuZ3VhZ2Vz
KGtNQUNhcHRpb25BcHBlYXJhbmNlRG9tYWluVXNlcikpOworICAgICAgICBDRkluZGV4IGNhcHRp
b25MYW5ndWFnZXNDb3VudCA9IGNhcHRpb25MYW5ndWFnZXMgPyBDRkFycmF5R2V0Q291bnQoY2Fw
dGlvbkxhbmd1YWdlcy5nZXQoKSkgOiAwOworICAgICAgICBpZiAoY2FwdGlvbkxhbmd1YWdlc0Nv
dW50KSB7CisgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiB0ZW1wOworICAgICAgICAgICAgdGVt
cC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNhcHRpb25MYW5ndWFnZXNDb3VudCArIHByZWZlcnJl
ZExhbmd1YWdlcy5zaXplKCkpOworICAgICAgICAgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwg
Y2FwdGlvbkxhbmd1YWdlc0NvdW50OyBpKyspCisgICAgICAgICAgICAgICAgdGVtcC51bmNoZWNr
ZWRBcHBlbmQoc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgo
Y2FwdGlvbkxhbmd1YWdlcy5nZXQoKSwgaSkpKTsKKyAgICAgICAgICAgIHRlbXAuYXBwZW5kVmVj
dG9yKFdURk1vdmUocHJlZmVycmVkTGFuZ3VhZ2VzKSk7CisgICAgICAgICAgICBwcmVmZXJyZWRM
YW5ndWFnZXMgPSBXVEZNb3ZlKHRlbXApOwogICAgICAgICB9CiAgICAgfQotCi0gICAgQ0ZJbmRl
eCBsYW5ndWFnZUNvdW50ID0gMDsKLSAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gbGFuZ3VhZ2Vz
ID0gYWRvcHRDRihNQUNhcHRpb25BcHBlYXJhbmNlQ29weVNlbGVjdGVkTGFuZ3VhZ2VzKGtNQUNh
cHRpb25BcHBlYXJhbmNlRG9tYWluVXNlcikpOwotICAgIGlmIChsYW5ndWFnZXMpCi0gICAgICAg
IGxhbmd1YWdlQ291bnQgPSBDRkFycmF5R2V0Q291bnQobGFuZ3VhZ2VzLmdldCgpKTsKLQotICAg
IGlmICghbGFuZ3VhZ2VDb3VudCkKLSAgICAgICAgcmV0dXJuIENhcHRpb25Vc2VyUHJlZmVyZW5j
ZXM6OnByZWZlcnJlZExhbmd1YWdlcygpOwotCi0gICAgVmVjdG9yPFN0cmluZz4gdXNlclByZWZl
cnJlZExhbmd1YWdlczsKLSAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLnJlc2VydmVDYXBhY2l0
eShsYW5ndWFnZUNvdW50ICsgcGxhdGZvcm1MYW5ndWFnZXMuc2l6ZSgpKTsKLSAgICBmb3IgKENG
SW5kZXggaSA9IDA7IGkgPCBsYW5ndWFnZUNvdW50OyBpKyspCi0gICAgICAgIHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMuYXBwZW5kKHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5R2V0VmFs
dWVBdEluZGV4KGxhbmd1YWdlcy5nZXQoKSwgaSkpKTsKLQotICAgIHVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMuYXBwZW5kVmVjdG9yKHBsYXRmb3JtTGFuZ3VhZ2VzKTsKLQotICAgIHJldHVybiB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzOworICAgIHJldHVybiBwcmVmZXJyZWRMYW5ndWFnZXM7CiB9CiAK
IHZvaWQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OnNldFByZWZlcnJlZEF1ZGlvQ2hh
cmFjdGVyaXN0aWMoY29uc3QgU3RyaW5nJiBjaGFyYWN0ZXJpc3RpYykKQEAgLTU3OSwxMyArNTYz
LDE1IEBAIHN0YXRpYyB2b2lkIGJ1aWxkRGlzcGxheVN0cmluZ0ZvclRyYWNrQmFzZShTdHJpbmdC
dWlsZGVyJiBkaXNwbGF5TmFtZSwgY29uc3QgVHJhCiAgICAgU3RyaW5nIGxhYmVsID0gdHJhY2su
bGFiZWwoKTsKICAgICBTdHJpbmcgdHJhY2tMYW5ndWFnZUlkZW50aWZpZXIgPSB0cmFjay52YWxp
ZEJDUDQ3TGFuZ3VhZ2UoKTsKIAotICAgIFJldGFpblB0cjxDRkxvY2FsZVJlZj4gY3VycmVudExv
Y2FsZSA9IGFkb3B0Q0YoQ0ZMb2NhbGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGVmYXVs
dExhbmd1YWdlKCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOworICAgIGF1dG8gcHJlZmVycmVk
TGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdl
czo6Tm8pOworICAgIGF1dG8gZGVmYXVsdExhbmd1YWdlID0gIXByZWZlcnJlZExhbmd1YWdlcy5p
c0VtcHR5KCkgPyBwcmVmZXJyZWRMYW5ndWFnZXNbMF0gOiBlbXB0eVN0cmluZygpOyAvLyBUaGlz
IG1hdGNoZXMgYFdURjo6ZGVmYXVsdExhbmd1YWdlYC4KKyAgICBSZXRhaW5QdHI8Q0ZMb2NhbGVS
ZWY+IGN1cnJlbnRMb2NhbGUgPSBhZG9wdENGKENGTG9jYWxlQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGRlZmF1bHRMYW5ndWFnZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CiAgICAgUmV0
YWluUHRyPENGU3RyaW5nUmVmPiBsb2NhbGVJZGVudGlmaWVyID0gYWRvcHRDRihDRkxvY2FsZUNy
ZWF0ZUNhbm9uaWNhbExvY2FsZUlkZW50aWZpZXJGcm9tU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1
bHQsIHRyYWNrTGFuZ3VhZ2VJZGVudGlmaWVyLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKICAg
ICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGxhbmd1YWdlQ0YgPSBhZG9wdENGKENGTG9jYWxlQ29w
eURpc3BsYXlOYW1lRm9yUHJvcGVydHlWYWx1ZShjdXJyZW50TG9jYWxlLmdldCgpLCBrQ0ZMb2Nh
bGVMYW5ndWFnZUNvZGUsIGxvY2FsZUlkZW50aWZpZXIuZ2V0KCkpKTsKICAgICBTdHJpbmcgbGFu
Z3VhZ2UgPSBsYW5ndWFnZUNGLmdldCgpOwogCiAgICAgaWYgKCFsYWJlbC5pc0VtcHR5KCkpIHsK
LSAgICAgICAgaWYgKGxhbmd1YWdlLmlzRW1wdHkoKSB8fCBsYWJlbC5jb250YWlucyhsYW5ndWFn
ZSkpCisgICAgICAgIGlmIChsYW5ndWFnZS5pc0VtcHR5KCkgfHwgbGFiZWwuY29udGFpbnMobGFu
Z3VhZ2UpIHx8IHByZWZlcnJlZExhbmd1YWdlcy5jb250YWlucyh0cmFja0xhbmd1YWdlSWRlbnRp
ZmllcikpCiAgICAgICAgICAgICBkaXNwbGF5TmFtZS5hcHBlbmQobGFiZWwpOwogICAgICAgICBl
bHNlIHsKICAgICAgICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGxvY2FsZURpY3Qg
PSBhZG9wdENGKENGTG9jYWxlQ3JlYXRlQ29tcG9uZW50c0Zyb21Mb2NhbGVJZGVudGlmaWVyKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGxvY2FsZUlkZW50aWZpZXIuZ2V0KCkpKTsKQEAgLTcwOSwxNSAr
Njk1LDE2IEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6ZGlzcGxheU5h
bWVGb3JUcmFjayhUZXh0VHJhY2sqIHRyYWNrKSBjb25zCiAKIHN0YXRpYyBib29sIHRleHRUcmFj
a0NvbXBhcmUoY29uc3QgUmVmUHRyPFRleHRUcmFjaz4mIGEsIGNvbnN0IFJlZlB0cjxUZXh0VHJh
Y2s+JiBiKQogewotICAgIFN0cmluZyBwcmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lID0gZGlz
cGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShsYW5ndWFnZUlkZW50aWZpZXIoZGVmYXVsdExhbmd1
YWdlKCkpKTsKICAgICBTdHJpbmcgYUxhbmd1YWdlRGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUZv
ckxhbmd1YWdlTG9jYWxlKGxhbmd1YWdlSWRlbnRpZmllcihhLT52YWxpZEJDUDQ3TGFuZ3VhZ2Uo
KSkpOwogICAgIFN0cmluZyBiTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lRm9yTGFu
Z3VhZ2VMb2NhbGUobGFuZ3VhZ2VJZGVudGlmaWVyKGItPnZhbGlkQkNQNDdMYW5ndWFnZSgpKSk7
CiAKLSAgICAvLyBUcmFja3MgaW4gdGhlIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2UgYXJlIGFs
d2F5cyBhdCB0aGUgdG9wIG9mIHRoZSBtZW51LgotICAgIGJvb2wgYUlzUHJlZmVycmVkTGFuZ3Vh
Z2UgPSBhTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9PSBwcmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1l
OwotICAgIGJvb2wgYklzUHJlZmVycmVkTGFuZ3VhZ2UgPSBiTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9
PSBwcmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lOwotICAgIGlmIChhSXNQcmVmZXJyZWRMYW5n
dWFnZSAhPSBiSXNQcmVmZXJyZWRMYW5ndWFnZSkKLSAgICAgICAgcmV0dXJuIGFJc1ByZWZlcnJl
ZExhbmd1YWdlOworICAgIGZvciAoYXV0byYgcHJlZmVycmVkTGFuZ3VhZ2UgOiB1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObykpIHsKKyAgICAgICAgU3Ry
aW5nIHByZWZlcnJlZExhbmd1YWdlRGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUZvckxhbmd1YWdl
TG9jYWxlKGxhbmd1YWdlSWRlbnRpZmllcihwcmVmZXJyZWRMYW5ndWFnZSkpOworICAgICAgICBi
b29sIGFJc1ByZWZlcnJlZExhbmd1YWdlID0gYUxhbmd1YWdlRGlzcGxheU5hbWUgPT0gcHJlZmVy
cmVkTGFuZ3VhZ2VEaXNwbGF5TmFtZTsKKyAgICAgICAgYm9vbCBiSXNQcmVmZXJyZWRMYW5ndWFn
ZSA9IGJMYW5ndWFnZURpc3BsYXlOYW1lID09IHByZWZlcnJlZExhbmd1YWdlRGlzcGxheU5hbWU7
CisgICAgICAgIGlmIChhSXNQcmVmZXJyZWRMYW5ndWFnZSAhPSBiSXNQcmVmZXJyZWRMYW5ndWFn
ZSkKKyAgICAgICAgICAgIHJldHVybiBhSXNQcmVmZXJyZWRMYW5ndWFnZTsKKyAgICB9CiAKICAg
ICBDb2xsYXRvciBjb2xsYXRvcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0
aW9uR3JvdXBBVkZPYmpDLm1tCmluZGV4IDliZDU2NDg0MGMyODJhZjU3YTEwZDRlNGRjYmU4NzU3
MzRiYzgyNmEuLmI0MTliNjBkOThlMzY2ZGI0N2RjNzA1N2ViZDI1NzY4ZGMzZDY5MzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KQEAgLTEz
NCw3ICsxMzQsNyBAQCB2b2lkIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDOjp1cGRhdGVPcHRp
b25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjaGFyYWN0ZXJpcwogICAgICAgICByZXR1cm47CiAK
ICAgICBOU0FycmF5KiBmaWx0ZXJlZE9wdGlvbnMgPSBbUEFMOjpnZXRBVk1lZGlhU2VsZWN0aW9u
R3JvdXBDbGFzcygpIG1lZGlhU2VsZWN0aW9uT3B0aW9uc0Zyb21BcnJheTpbbV9tZWRpYVNlbGVj
dGlvbkdyb3VwIG9wdGlvbnNdCi0gICAgICAgIGZpbHRlcmVkQW5kU29ydGVkQWNjb3JkaW5nVG9Q
cmVmZXJyZWRMYW5ndWFnZXM6Y3JlYXRlTlNBcnJheSh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkp
LmdldCgpXTsKKyAgICAgICAgZmlsdGVyZWRBbmRTb3J0ZWRBY2NvcmRpbmdUb1ByZWZlcnJlZExh
bmd1YWdlczpjcmVhdGVOU0FycmF5KHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1p
emVMYW5ndWFnZXM6Ok5vKSkuZ2V0KCldOwogCiAgICAgaWYgKCFbZmlsdGVyZWRPcHRpb25zIGNv
dW50XSAmJiBjaGFyYWN0ZXJpc3RpY3MuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjMwOTRiYWZk
ZWM3Mjc0N2UzYTgwZTYxMzg5MWViZmVkMmNlZTQzOC4uYWExODFmNDY2ZmVkYmZmMzFhNTA0Yjdk
MzlkN2RhZTBkMDY1ODlkMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA1LTIyICBEZXZpbiBSb3Vzc28gIDxk
cm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xzXSBSRUdS
RVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxsIGxpc3Qgb2YgbGFu
Z3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9j
Zi9MYW5ndWFnZS5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVC5MYW5n
dWFnZS5TaG91bGRNaW5pbWl6ZUxhbmd1YWdlc1llcyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNULkxhbmd1YWdlLlNob3VsZE1pbmltaXplTGFuZ3VhZ2VzTm8pOgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V1RGLnhjY29uZmlnOgorICAgICAgICBM
aW5rIGBJbnRlcm5hdGlvbmFsU3VwcG9ydGAgYXMgdGhhdCdzIHdoZXJlIHRoZSBgTlNMb2NhbGVg
IGV4dGVuc2lvbnMgYXJlIGltcGxlbWVudGVkLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMDUtMjEgIEFh
a2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJ1biBsYXlvdXQg
dGVzdHMgaW4gc3RyZXNzIG1vZGUgZm9yIDEwIGl0ZXJhdGlvbnMgb24gcmVndWxhciBFV1MgbGF5
b3V0LXRlc3QgcXVldWVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3Vy
YXRpb25zL1Rlc3RXVEYueGNjb25maWcgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRp
b25zL1Rlc3RXVEYueGNjb25maWcKaW5kZXggZTZhMjk3N2ZiNDUyZDhhMjYyZjM3NDRiNDVjZmE1
YTVmOTMzODJkMS4uZjhlYzgxYWE2MmVkZDY0OTJjN2RkNjExMzk0YmZmOThmODcxMzcyMiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V1RGLnhjY29u
ZmlnCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdURi54Y2Nv
bmZpZwpAQCAtMjksMTAgKzI5LDEzIEBAIEdDQ19FTkFCTEVfT0JKQ19FWENFUFRJT05TID0gWUVT
OwogCiBHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05TID0gJChpbmhlcml0ZWQpIEJVSUxESU5H
X1RFU1RfV1RGIEdURVNUX0FQSV89CiAKKy8vIE5lZWRlZCBieSBgU291cmNlL1dURi93dGYvY29j
b2EvTGFuZ3VhZ2VDb2NvYS5tbWAuCitXS19JTlRFUk5BVElPTkFMX1NVUFBPUlRfTERGTEFHUyA9
IC1mcmFtZXdvcmsgSW50ZXJuYXRpb25hbFN1cHBvcnQ7CisKIFdLX1VJS0lUTUFDSEVMUEVSX0xE
RkxBR1MgPSAkKFdLX1VJS0lUTUFDSEVMUEVSX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7
CiBXS19VSUtJVE1BQ0hFTFBFUl9MREZMQUdTX21hY2NhdGFseXN0ID0gLWZyYW1ld29yayBVSUtp
dE1hY0hlbHBlcjsKIAotT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAtbGd0ZXN0IC1mb3Jj
ZV9sb2FkICQoQlVJTFRfUFJPRFVDVFNfRElSKS9saWJUZXN0V1RGLmEgJChXS19VSUtJVE1BQ0hF
TFBFUl9MREZMQUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkp
OworT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAtbGd0ZXN0IC1pZnJhbWV3b3JrICQoU0RL
X0RJUikkKFNZU1RFTV9MSUJSQVJZX0RJUikvUHJpdmF0ZUZyYW1ld29ya3MgLWZvcmNlX2xvYWQg
JChCVUlMVF9QUk9EVUNUU19ESVIpL2xpYlRlc3RXVEYuYSAkKFdLX0lOVEVSTkFUSU9OQUxfU1VQ
UE9SVF9MREZMQUdTKSAkKFdLX1VJS0lUTUFDSEVMUEVSX0xERkxBR1MpICQoT1RIRVJfTERGTEFH
U19QTEFURk9STV8kKFdLX0NPQ09BX1RPVUNIKSk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JNXyA9
IC1mcmFtZXdvcmsgQ29jb2EgLWZyYW1ld29yayBDYXJib247CiAKIC8vIEZJWE1FOiBUaGlzIHNo
b3VsZCBub3QgYmUgYnVpbHQgb24gaU9TLiBJbnN0ZWFkIHdlIHNob3VsZCBjcmVhdGUgYW5kIHVz
ZSBhIFRlc3RXVEYgYXBwbGljYXRpb24uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNiYjhl
YmI2MmI1ZjYzNTllNWMyODcxYjhmNWVkNWZhMGZkMGNjNmQuLmYxNjYwYzdlNWMyYTM1MzhjZTFh
MDQ4YzNlMjFkOTEwOGYzYjFlMGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NzksNiAr
ODc5LDcgQEAKIAkJOTUwOTVGMjAyNjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdlVG9wQ29s
b3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTA5
NUYxRjI2MkZGRkE1MDAwMEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSAqLzsgfTsKIAkJ
OTUwRTRDQzEyNTJFNzUyNDAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBFNENDMDI1MkU3NTIzMDA3
MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5tbSAqLzsgfTsKIAkJOTUzQUJCMzUyNUMwRDY4MjAw
NEM4QjczIC8qIFdLV2ViVmlld1VuZGVyUGFnZUJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1M0FCQjM0MjVDMEQ2ODEwMDRD
OEI3MyAvKiBXS1dlYlZpZXdVbmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IubW0gKi87IH07CisJCTk1
NEU0MTMwMjY1NkUwNjgwMDQ1NUQ0RiAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTRFNDEyRTI2NTZFMDYzMDA0NTVENEYgLyog
TGFuZ3VhZ2UuY3BwICovOyB9OwogCQk5NUE1MjQ5NTI1ODFBMTBEMDA0NjFGRTkgLyogV0tXZWJW
aWV3VGhlbWVDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk1QTUyNDk0MjU4MUExMEQwMDQ2MUZFOSAvKiBXS1dlYlZpZXdUaGVtZUNvbG9yLm1t
ICovOyB9OwogCQk5NUI2QjNCNzI1MUVCRjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QjZCM0I2MjUx
RUJGMkYwMEZDNDM4MiAvKiBNZWRpYURvY3VtZW50Lm1tICovOyB9OwogCQk5OTg0RkFDQzFDRkZB
RjYwMDA4RDE5OEMgLyogV0tXZWJWaWV3VGV4dElucHV0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk4NEZBQ0ExQ0ZGQUVFRTAwOEQxOThDIC8qIFdL
V2ViVmlld1RleHRJbnB1dC5tbSAqLzsgfTsKQEAgLTI1ODcsNiArMjU4OCw3IEBACiAJCTk1MDk1
RjFGMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9yLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2FtcGxlZFBhZ2VUb3BDb2xvci5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlP
U1N0eWx1c1N1cHBvcnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBpT1NTdHlsdXNTdXBwb3J0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTNB
QkIzNDI1QzBENjgxMDA0QzhCNzMgLyogV0tXZWJWaWV3VW5kZXJQYWdlQmFja2dyb3VuZENvbG9y
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3VW5k
ZXJQYWdlQmFja2dyb3VuZENvbG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
NTRFNDEyRTI2NTZFMDYzMDA0NTVENEYgLyogTGFuZ3VhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTGFuZ3VhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5NUE1MjQ5NDI1ODFBMTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3VGhlbWVDb2xvci5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1RoZW1l
Q29sb3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1QjZCM0I2MjUxRUJGMkYw
MEZDNDM4MiAvKiBNZWRpYURvY3VtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gTWVkaWFEb2N1bWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTk4NEZBQ0ExQ0ZGQUVFRTAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1RleHRJbnB1dC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4MTksNiArNDgyMSw3IEBACiAJCUMw
OTkxQzRGMTQzQzdENjgwMDc5OThGMiAvKiBjZiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJOTU0RTQxMkUyNjU2RTA2MzAwNDU1RDRGIC8qIExhbmd1YWdl
LmNwcCAqLywKIAkJCQlCQzAyOUIxNjE0ODZBRDY0MDA4MTdEQTkgLyogUmV0YWluUHRyLmNwcCAq
LywKIAkJCQlDMDk5MUM1MDE0M0M3RDY4MDA3OTk4RjIgLyogUmV0YWluUHRySGFzaGluZy5jcHAg
Ki8sCiAJCQkpOwpAQCAtNTIwMCw2ICs1MjAzLDcgQEAKIAkJCQk1M0ZDREU2QjIyOUVGRkI5MDA1
OThFQ0YgLyogSXNvSGVhcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0VCNjJBQjIyMzYwOURF
MDA2OUNCQjAgLyogSXRlcmF0b3JSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTA1MDk0
MTFGQjlGMDY0MDBCMzNGQjggLyogSlNPTlZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk1
NEU0MTMwMjY1NkUwNjgwMDQ1NUQ0RiAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MzFDMUQ4RTFERjhFRjcyMDA2RTk3OUYgLyogTEVCRGVjb2Rlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNTdENTRGOTFGMzM5N0I0MDBBOTdBQTcgLyogTGlmZWN5Y2xlTG9nZ2VyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTkzRTJDNTU1MUZEMzIwNDEwMEUxREY2QSAvKiBMaW5lRW5kaW5n
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvY2YvTGFuZ3VhZ2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2Yv
TGFuZ3VhZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlYjQ2NWQwNmE5NmE1OTE4YjczZWNlZjhkNzhjYWVi
ZTI2ZmM1ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9jZi9MYW5ndWFnZS5jcHAKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgorI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVEVTVChM
YW5ndWFnZSwgU2hvdWxkTWluaW1pemVMYW5ndWFnZXNZZXMpCit7CisgICAgb3ZlcnJpZGVVc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzKHsgfSk7CisgICAgV1RGOjpvdmVycmlkZUluaXRpYWxQbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNGb3JUZXN0aW5nKHsgImVuLVVTIl9zLCAiZXMtVVMiX3Ms
ICJmci1VUyJfcyB9KTsKKworICAgIGF1dG8gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1
YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzKTsKKyAgICBBTFdBWVNfTE9HX1dJVEhf
U1RSRUFNKHN0cmVhbSA8PCAiTGFuZ3VhZ2UuU2hvdWxkTWluaW1pemVMYW5ndWFnZXNZZXMgLSBs
YW5ndWFnZXMgPSAiIDw8IGxhbmd1YWdlcyk7CisKKyAgICBhdXRvIGVuZ2xpc2hVU0luZGV4ID0g
bGFuZ3VhZ2VzLmZpbmQoImVuLVVTIl9zKTsKKyAgICBhdXRvIGVuZ2xpc2hJbmRleCA9IGxhbmd1
YWdlcy5maW5kKCJlbiJfcyk7CisgICAgYXV0byBzcGFuaXNoVVNJbmRleCA9IGxhbmd1YWdlcy5m
aW5kKCJlcy1VUyJfcyk7CisgICAgYXV0byBzcGFuaXNoSW5kZXggPSBsYW5ndWFnZXMuZmluZCgi
ZXMiX3MpOworICAgIGF1dG8gZnJlbmNoVVNJbmRleCA9IGxhbmd1YWdlcy5maW5kKCJmci1VUyJf
cyk7CisgICAgYXV0byBmcmVuY2hJbmRleCA9IGxhbmd1YWdlcy5maW5kKCJmciJfcyk7CisKKyAg
ICBFWFBFQ1RfVFJVRShlbmdsaXNoVVNJbmRleCAhPSBub3RGb3VuZCB8fCBlbmdsaXNoSW5kZXgg
IT0gbm90Rm91bmQpOworICAgIEVYUEVDVF9FUShzcGFuaXNoVVNJbmRleCwgbm90Rm91bmQpOwor
ICAgIEVYUEVDVF9FUShzcGFuaXNoSW5kZXgsIG5vdEZvdW5kKTsKKyAgICBFWFBFQ1RfRVEoZnJl
bmNoVVNJbmRleCwgbm90Rm91bmQpOworICAgIEVYUEVDVF9FUShmcmVuY2hJbmRleCwgbm90Rm91
bmQpOworCisgICAgV1RGOjpvdmVycmlkZUluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXNGb3JUZXN0aW5nKHsgfSk7IC8vIGNsZWFudXAKK30KKworVEVTVChMYW5ndWFnZSwgU2hv
dWxkTWluaW1pemVMYW5ndWFnZXNObykKK3sKKyAgICBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMoeyB9KTsKKyAgICBXVEY6Om92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJl
ZExhbmd1YWdlc0ZvclRlc3RpbmcoeyAiZW4tVVMiX3MsICJlcy1VUyJfcywgImZyLVVTIl9zIH0p
OworCisgICAgYXV0byBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzOjpObyk7CisgICAgQUxXQVlTX0xPR19XSVRIX1NUUkVBTShzdHJlYW0g
PDwgIkxhbmd1YWdlLlNob3VsZE1pbmltaXplTGFuZ3VhZ2VzTm8gLSBsYW5ndWFnZXMgPSAiIDw8
IGxhbmd1YWdlcyk7CisKKyAgICBhdXRvIGVuZ2xpc2hVU0luZGV4ID0gbGFuZ3VhZ2VzLmZpbmQo
ImVuLVVTIl9zKTsKKyAgICBhdXRvIGVuZ2xpc2hJbmRleCA9IGxhbmd1YWdlcy5maW5kKCJlbiJf
cyk7CisgICAgYXV0byBzcGFuaXNoVVNJbmRleCA9IGxhbmd1YWdlcy5maW5kKCJlcy1VUyJfcyk7
CisgICAgYXV0byBzcGFuaXNoSW5kZXggPSBsYW5ndWFnZXMuZmluZCgiZXMiX3MpOworICAgIGF1
dG8gZnJlbmNoVVNJbmRleCA9IGxhbmd1YWdlcy5maW5kKCJmci1VUyJfcyk7CisgICAgYXV0byBm
cmVuY2hJbmRleCA9IGxhbmd1YWdlcy5maW5kKCJmciJfcyk7CisKKyAgICBFWFBFQ1RfTkUoZW5n
bGlzaFVTSW5kZXgsIG5vdEZvdW5kKTsKKyAgICBpZiAoZW5nbGlzaEluZGV4ICE9IG5vdEZvdW5k
KSB7CisgICAgICAgIEVYUEVDVF9HVChlbmdsaXNoSW5kZXgsIGVuZ2xpc2hVU0luZGV4KTsKKyAg
ICAgICAgRVhQRUNUX0xUKGVuZ2xpc2hJbmRleCwgc3BhbmlzaFVTSW5kZXgpOworICAgIH0KKyAg
ICBFWFBFQ1RfTkUoc3BhbmlzaFVTSW5kZXgsIG5vdEZvdW5kKTsKKyAgICBFWFBFQ1RfR1Qoc3Bh
bmlzaFVTSW5kZXgsIGVuZ2xpc2hVU0luZGV4KTsKKyAgICBpZiAoc3BhbmlzaEluZGV4ICE9IG5v
dEZvdW5kKSB7CisgICAgICAgIEVYUEVDVF9HVChzcGFuaXNoSW5kZXgsIHNwYW5pc2hVU0luZGV4
KTsKKyAgICAgICAgRVhQRUNUX0xUKHNwYW5pc2hJbmRleCwgZnJlbmNoVVNJbmRleCk7CisgICAg
fQorICAgIEVYUEVDVF9ORShmcmVuY2hVU0luZGV4LCBub3RGb3VuZCk7CisgICAgRVhQRUNUX0dU
KGZyZW5jaFVTSW5kZXgsIHNwYW5pc2hVU0luZGV4KTsKKyAgICBpZiAoZnJlbmNoSW5kZXggIT0g
bm90Rm91bmQpCisgICAgICAgIEVYUEVDVF9HVChmcmVuY2hJbmRleCwgZnJlbmNoVVNJbmRleCk7
CisKKyAgICBXVEY6Om92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
c0ZvclRlc3RpbmcoeyB9KTsgLy8gY2xlYW51cAorfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nIGIvV2ViS2l0TGli
cmFyaWVzL0NoYW5nZUxvZwppbmRleCBkMmMyMGI5NTY2MjA5YzU1YzcxMDM0MmU3ZDg5YmQwMzJj
OTBhMmFiLi5kZDMxZDIyZmI3ZjFjMmZhZDVkZTQ4ZDRiYTkwZDYwYjM5MjhlZjAwIDEwMDY0NAot
LS0gYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdExpYnJhcmllcy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMS0wNS0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNz
b0BhcHBsZS5jb20+CisKKyAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lP
TihyMjU0Mzg5KSBtZWRpYSBjb250cm9scyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdl
IHByZWZlcmVuY2VzIGZvciBvcmRlcmluZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRo
ZSBmdWxsIGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkK
KyAgICAgICAgc29ydC9vcmRlciB0aGUgbGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJ
LiBGb3IgZXhhbXBsZSwgaWYgYSBgPHZpZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3Ig
RW5nbGlzaCwgU3BhbmlzaCwgYW5kIEZyZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChk
ZWZhdWx0KSBhbmQgRnJlbmNoIChhbHRlcm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhl
IExhbmd1YWdlICYgUmVnaW9uIHZpZXcgb2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBX
ZWJLaXQgc2hvdWxkIG9yZGVyCisgICAgICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBG
cmVuY2gsIGFuZCB0aGVuIFNwYW5pc2guCisKKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3
b3JrU3R1YnMvTWFjLzEwMTUwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJu
YXRpb25hbFN1cHBvcnQudGJkOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3
b3JrU3R1YnMvTWFjLzEwMTYwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJu
YXRpb25hbFN1cHBvcnQudGJkOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3
b3JrU3R1YnMvTWFjLzExMDAwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJu
YXRpb25hbFN1cHBvcnQudGJkOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3
b3JrU3R1YnMvYXBwbGV0dm9zLzE0L0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRl
cm5hdGlvbmFsU3VwcG9ydC50YmQ6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFt
ZXdvcmtTdHVicy9pT1MvMTQvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0
aW9uYWxTdXBwb3J0LnRiZDogQWRkZWQuCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29y
a1N0dWJzL3dhdGNob3MvNy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRp
b25hbFN1cHBvcnQudGJkOiBBZGRlZC4KKyAgICAgICAgTGluayBgSW50ZXJuYXRpb25hbFN1cHBv
cnRgIGFzIHRoYXQncyB3aGVyZSB0aGUgYE5TTG9jYWxlYCBleHRlbnNpb25zIGFyZSBpbXBsZW1l
bnRlZC4KKwogMjAyMS0wMS0wNCAgSmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXBkYXRlIHVzZXItdmlzaWJsZSBjb3B5cmlnaHQgc3RyaW5ncyB0byBpbmNsdWRlIDIw
MjEKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1
YnMvTWFjLzEwMTUwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25h
bFN1cHBvcnQudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVi
cy9NYWMvMTAxNTAwL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFs
U3VwcG9ydC50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE4MDg4NTBjYmM2Yjg5MDQ4MWU3Y2FmY2Q4MDhkZjdj
NTQ5MDZlMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRl
RnJhbWV3b3JrU3R1YnMvTWFjLzEwMTUwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsv
SW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCkBAIC0wLDAgKzEsOSBAQAorLS0tICF0YXBpLXRiZC12
MworYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCBdCit1dWlkczogICAgICAgICAgIFsgJ3g4Nl82
NDogOUJBQkM3MjYtNjIyRi0zRTM1LUE4QzUtRTcyMjY3N0EzMDhDJywgJ3g4Nl82NDogOUJBQkM3
MjYtNjIyRi0zRTM1LUE4QzUtRTcyMjY3N0EzMDhDJyBdCitwbGF0Zm9ybTogICAgICAgIHppcHBl
cmVkCitpbnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3Mv
SW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSW50ZXJuYXRpb25hbFN1
cHBvcnQnCitjdXJyZW50LXZlcnNpb246IDQ0CitleHBvcnRzOiAgICAgICAgIAorICAtIGFyY2hz
OiAgICAgICAgICAgWyB4ODZfNjQgXQorLi4uCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMv
V2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL01hYy8xMDE2MDAvSW50ZXJuYXRpb25hbFN1cHBv
cnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZCBiL1dlYktpdExpYnJhcmllcy9X
ZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzEwMTYwMC9JbnRlcm5hdGlvbmFsU3VwcG9y
dC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwYjUzNTM0
Y2U5YjIxYWM1N2EzZWFhMjBlN2Q3YjM5YWRhNjNlOTIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL01hYy8xMDE2MDAvSW50ZXJu
YXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZApAQCAtMCww
ICsxLDIxIEBACistLS0gIXRhcGktdGJkCit0YmQtdmVyc2lvbjogICAgIDQKK3RhcmdldHM6ICAg
ICAgICAgWyB4ODZfNjQtbWFjb3MsIHg4Nl82NC1tYWNjYXRhbHlzdCwgYXJtNjQtbWFjb3MsIGFy
bTY0LW1hY2NhdGFseXN0LCBhcm02NGUtbWFjb3MsIGFybTY0ZS1tYWNjYXRhbHlzdCBdCit1dWlk
czoKKyAgLSB0YXJnZXQ6ICAgICAgICAgIHg4Nl82NC1tYWNvcworICAgIHZhbHVlOiAgICAgICAg
ICAgQUI1OEUxQjEtNjBFNS0zODNFLUJDREUtRTNDNDhGNEJDNzg3CisgIC0gdGFyZ2V0OiAgICAg
ICAgICB4ODZfNjQtbWFjY2F0YWx5c3QKKyAgICB2YWx1ZTogICAgICAgICAgIEFCNThFMUIxLTYw
RTUtMzgzRS1CQ0RFLUUzQzQ4RjRCQzc4NworICAtIHRhcmdldDogICAgICAgICAgYXJtNjQtbWFj
b3MKKyAgICB2YWx1ZTogICAgICAgICAgIDAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAw
MDAwMAorICAtIHRhcmdldDogICAgICAgICAgYXJtNjQtbWFjY2F0YWx5c3QKKyAgICB2YWx1ZTog
ICAgICAgICAgIDAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMAorICAtIHRhcmdl
dDogICAgICAgICAgYXJtNjRlLW1hY29zCisgICAgdmFsdWU6ICAgICAgICAgICA5M0U3Mzc4Ni05
RDZELTMyMjktQjJCNi1BNDdDOTBGRkQzNDYKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybTY0ZS1t
YWNjYXRhbHlzdAorICAgIHZhbHVlOiAgICAgICAgICAgOTNFNzM3ODYtOUQ2RC0zMjI5LUIyQjYt
QTQ3QzkwRkZEMzQ2CitpbnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZy
YW1ld29ya3MvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSW50ZXJu
YXRpb25hbFN1cHBvcnQnCitjdXJyZW50LXZlcnNpb246IDYwCitleHBvcnRzOgorICAtIHRhcmdl
dHM6ICAgICAgICAgWyBhcm02NGUtbWFjb3MsIHg4Nl82NC1tYWNvcywgeDg2XzY0LW1hY2NhdGFs
eXN0LCBhcm02NGUtbWFjY2F0YWx5c3QsIGFybTY0LW1hY29zLCBhcm02NC1tYWNjYXRhbHlzdCBd
CisuLi4KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3Jr
U3R1YnMvTWFjLzExMDAwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRp
b25hbFN1cHBvcnQudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtT
dHVicy9NYWMvMTEwMDAwL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlv
bmFsU3VwcG9ydC50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBiNTM1MzRjZTliMjFhYzU3YTNlYWEyMGU3ZDdi
MzlhZGE2M2U5MgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2
YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzExMDAwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdv
cmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCkBAIC0wLDAgKzEsMjEgQEAKKy0tLSAhdGFwaS10
YmQKK3RiZC12ZXJzaW9uOiAgICAgNAordGFyZ2V0czogICAgICAgICBbIHg4Nl82NC1tYWNvcywg
eDg2XzY0LW1hY2NhdGFseXN0LCBhcm02NC1tYWNvcywgYXJtNjQtbWFjY2F0YWx5c3QsIGFybTY0
ZS1tYWNvcywgYXJtNjRlLW1hY2NhdGFseXN0IF0KK3V1aWRzOgorICAtIHRhcmdldDogICAgICAg
ICAgeDg2XzY0LW1hY29zCisgICAgdmFsdWU6ICAgICAgICAgICBBQjU4RTFCMS02MEU1LTM4M0Ut
QkNERS1FM0M0OEY0QkM3ODcKKyAgLSB0YXJnZXQ6ICAgICAgICAgIHg4Nl82NC1tYWNjYXRhbHlz
dAorICAgIHZhbHVlOiAgICAgICAgICAgQUI1OEUxQjEtNjBFNS0zODNFLUJDREUtRTNDNDhGNEJD
Nzg3CisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NC1tYWNvcworICAgIHZhbHVlOiAgICAgICAg
ICAgMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwCisgIC0gdGFyZ2V0OiAgICAg
ICAgICBhcm02NC1tYWNjYXRhbHlzdAorICAgIHZhbHVlOiAgICAgICAgICAgMDAwMDAwMDAtMDAw
MC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwCisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NGUtbWFj
b3MKKyAgICB2YWx1ZTogICAgICAgICAgIDkzRTczNzg2LTlENkQtMzIyOS1CMkI2LUE0N0M5MEZG
RDM0NgorICAtIHRhcmdldDogICAgICAgICAgYXJtNjRlLW1hY2NhdGFseXN0CisgICAgdmFsdWU6
ICAgICAgICAgICA5M0U3Mzc4Ni05RDZELTMyMjktQjJCNi1BNDdDOTBGRkQzNDYKK2luc3RhbGwt
bmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JbnRlcm5hdGlvbmFs
U3VwcG9ydC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9JbnRlcm5hdGlvbmFsU3VwcG9ydCcKK2N1cnJl
bnQtdmVyc2lvbjogNjAKK2V4cG9ydHM6CisgIC0gdGFyZ2V0czogICAgICAgICBbIGFybTY0ZS1t
YWNvcywgeDg2XzY0LW1hY29zLCB4ODZfNjQtbWFjY2F0YWx5c3QsIGFybTY0ZS1tYWNjYXRhbHlz
dCwgYXJtNjQtbWFjb3MsIGFybTY0LW1hY2NhdGFseXN0IF0KKy4uLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9hcHBsZXR2b3MvMTQvSW50
ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZCBiL1dl
YktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE0L0lu
dGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmQ3MDRiZjM5NjM0NWNhNjRlMGQyMDhhYjM5YWZjNDQ3NWM4YzliZQotLS0gL2Rl
di9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMv
YXBwbGV0dm9zLzE0L0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFs
U3VwcG9ydC50YmQKQEAgLTAsMCArMSwxMyBAQAorLS0tICF0YXBpLXRiZAordGJkLXZlcnNpb246
ICAgICA0Cit0YXJnZXRzOiAgICAgICAgIFsgYXJtNjQtdHZvcywgYXJtNjRlLXR2b3MgXQordXVp
ZHM6CisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NC10dm9zCisgICAgdmFsdWU6ICAgICAgICAg
ICBGOUU5MDlCQy0xNzQwLTM0RkItQjQ5MC1GQTBCOEY4MDlGQkMKKyAgLSB0YXJnZXQ6ICAgICAg
ICAgIGFybTY0ZS10dm9zCisgICAgdmFsdWU6ICAgICAgICAgICA4RjVCMUMxNi03NzJBLTNDQTIt
QkEyQy1GQzVDOUIzNUQ5ODAKK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2
YXRlRnJhbWV3b3Jrcy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25h
bFN1cHBvcnQnCitjdXJyZW50LXZlcnNpb246IDU5CitleHBvcnRzOgorICAtIHRhcmdldHM6ICAg
ICAgICAgWyBhcm02NC10dm9zLCBhcm02NGUtdHZvcyBdCisuLi4KZGlmZiAtLWdpdCBhL1dlYktp
dExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L0ludGVybmF0aW9u
YWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQgYi9XZWJLaXRMaWJy
YXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9JbnRlcm5hdGlvbmFsU3Vw
cG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5ZWU2
NDlmNDJlNDhiYTcyZDkxMzM0N2I1Y2M1ZGVkNTM0MjA3MTEKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9JbnRlcm5h
dGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCkBAIC0wLDAg
KzEsMTcgQEAKKy0tLSAhdGFwaS10YmQKK3RiZC12ZXJzaW9uOiAgICAgNAordGFyZ2V0czogICAg
ICAgICBbIGFybXY3LWlvcywgYXJtdjdzLWlvcywgYXJtNjQtaW9zLCBhcm02NGUtaW9zIF0KK3V1
aWRzOgorICAtIHRhcmdldDogICAgICAgICAgYXJtdjctaW9zCisgICAgdmFsdWU6ICAgICAgICAg
ICAwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAKKyAgLSB0YXJnZXQ6ICAgICAg
ICAgIGFybXY3cy1pb3MKKyAgICB2YWx1ZTogICAgICAgICAgIDAwMDAwMDAwLTAwMDAtMDAwMC0w
MDAwLTAwMDAwMDAwMDAwMAorICAtIHRhcmdldDogICAgICAgICAgYXJtNjQtaW9zCisgICAgdmFs
dWU6ICAgICAgICAgICAwODQ0MTlGNS1CNzk0LTM3ODgtQjU1Ni0xRTMxMzc4Qjg4Q0YKKyAgLSB0
YXJnZXQ6ICAgICAgICAgIGFybTY0ZS1pb3MKKyAgICB2YWx1ZTogICAgICAgICAgIEYzNUM3NUUx
LTdFMzctM0UzQy04RjNGLURDMkI4Q0FGQkU4QworaW5zdGFsbC1uYW1lOiAgICAnL1N5c3RlbS9M
aWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9J
bnRlcm5hdGlvbmFsU3VwcG9ydCcKK2N1cnJlbnQtdmVyc2lvbjogNjEuMQorZXhwb3J0czoKKyAg
LSB0YXJnZXRzOiAgICAgICAgIFsgYXJtNjQtaW9zLCBhcm02NGUtaW9zLCBhcm12Ny1pb3MsIGFy
bXY3cy1pb3MgXQorLi4uCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0
ZUZyYW1ld29ya1N0dWJzL3dhdGNob3MvNy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsv
SW50ZXJuYXRpb25hbFN1cHBvcnQudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVG
cmFtZXdvcmtTdHVicy93YXRjaG9zLzcvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0lu
dGVybmF0aW9uYWxTdXBwb3J0LnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzQ3YTBkYTBiZjdmZDUyNDI4MzQ2
ZmM5YTI0OTk1NDU0NDFiMTY4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dl
YktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy93YXRjaG9zLzcvSW50ZXJuYXRpb25hbFN1cHBvcnQu
ZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZApAQCAtMCwwICsxLDE1IEBACistLS0g
IXRhcGktdGJkCit0YmQtdmVyc2lvbjogICAgIDQKK3RhcmdldHM6ICAgICAgICAgWyBhcm12N2st
d2F0Y2hvcywgYXJtNjRlLXdhdGNob3MsIGFybTY0XzMyLXdhdGNob3MgXQordXVpZHM6CisgIC0g
dGFyZ2V0OiAgICAgICAgICBhcm12N2std2F0Y2hvcworICAgIHZhbHVlOiAgICAgICAgICAgNzUx
NjJDNDUtOTVGMy0zOTI3LTgyRUQtQUIyODAzMkMxN0Y4CisgIC0gdGFyZ2V0OiAgICAgICAgICBh
cm02NGUtd2F0Y2hvcworICAgIHZhbHVlOiAgICAgICAgICAgRjMzQjRGQUUtMzdEMy0zOTU5LUI2
MzktNTIwQ0JGRjU5ODZECisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NF8zMi13YXRjaG9zCisg
ICAgdmFsdWU6ICAgICAgICAgICAzNUQ5RUMwQS1FRUIwLTM0RjctQkQwMi03N0U5Q0EzODQwNTUK
K2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JbnRl
cm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQnCitjdXJyZW50
LXZlcnNpb246IDU5CitleHBvcnRzOgorICAtIHRhcmdldHM6ICAgICAgICAgWyBhcm02NF8zMi13
YXRjaG9zLCBhcm02NGUtd2F0Y2hvcywgYXJtdjdrLXdhdGNob3MgXQorLi4uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429472</attachid>
            <date>2021-05-23 13:05:47 -0700</date>
            <delta_ts>2021-05-23 13:21:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>226038.diff</filename>
            <type>text/plain</type>
            <size>55668</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDZjYTg2Njk0N2ZjZDg4YTAyZjQxY2JmMDQ5M2Uy
MTUzMzAzYTA3M2UuLmRhN2Q2ZTY0Y2M5M2IwYjQxYzM5ZWQ2NTAzNzQ5MmNlMTIzNTY1NWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA1LTIyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENv
bnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxs
IGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWEgY29udHJvbHMg
bmVlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBpbiBv
cmRlciB0byBwcm9wZXJseQorICAgICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNrcyBp
biB0aGUgY29udHJvbHMgVUkuIEZvciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3VidGl0
bGVzCisgICAgICAgIGZvciBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhlIHVz
ZXIgaGFzIEVuZ2xpc2ggKGRlZmF1bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAgICAg
Y29uZmlndXJlZCBpbiB0aGUgTGFuZ3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJlZmVy
ZW5jZXMgb24gbWFjT1MsIFdlYktpdCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRpdGxl
cyBsaXN0IEVuZ2xpc2gsIEZyZW5jaCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3Bw
OgorICAgICAgICAoSlNDOjpkZWZhdWx0TG9jYWxlKToKKyAgICAgICAgVXBkYXRlIHVzYWdlIG9m
IGBXVEY6OmRlZmF1bHRMYW5ndWFnZWAgdG8gYWxzbyBoYXZlIGBXVEY6OlNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzYC4KKworICAgICAgICAqIHNoZWxsL3BsYXlzdGF0aW9uL1Rlc3RTaGVsbC5jcHA6
CisgICAgICAgIChwcmVUZXN0KToKKyAgICAgICAgSW5zdGVhZCBvZiBwcm9wYWdhdGluZyB0aGUg
b3ZlcnJpZGUsIGp1c3QgY2xlYXIgaXQgb3V0LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
SmF2YVNjcmlwdENvcmUueGNjb25maWc6CisgICAgICAgIExpbmsgYEludGVybmF0aW9uYWxTdXBw
b3J0YCBhcyB0aGF0J3Mgd2hlcmUgdGhlIGBOU0xvY2FsZWAgZXh0ZW5zaW9ucyBhcmUgaW1wbGVt
ZW50ZWQuCisKIDIwMjEtMDUtMjEgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSB0aGUgdW5uZWNlc3NhcnkgdXNlIG9mIENvbXBpbGVPcFN0cmljdEVxVHlw
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggZDA1M2IzODRhMGNkZmMzY2E2YzAwMzYwNTgzZTczYWI5ZTRlYTc3Zi4uM2MxNTQ4
ZTRkMTAzNjhhYjQwNWYzNjRhMGVkN2I2YWZmOGI0MzdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAor
MjAyMS0wNS0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
W01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRpYSBjb250cm9s
cyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZvciBvcmRlcmlu
ZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qgb2YgbGFuZ3VhZ2Ug
cHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29ydC9vcmRlciB0aGUg
bGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBsZSwgaWYgYSBgPHZp
ZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3BhbmlzaCwgYW5kIEZy
ZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQgRnJlbmNoIChhbHRl
cm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYgUmVnaW9uIHZpZXcg
b2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxkIG9yZGVyCisgICAg
ICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0aGVuIFNwYW5pc2gu
CisKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuaDoKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuY3Bw
OgorICAgICAgICAoV1RGOjpjYWNoZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMpOiBB
ZGRlZC4KKyAgICAgICAgKFdURjo6Y2FjaGVkTWluaW1pemVkUGxhdGZvcm1QcmVmZXJyZWRMYW5n
dWFnZXMpOiBBZGRlZC4KKyAgICAgICAgKFdURjo6bGFuZ3VhZ2VEaWRDaGFuZ2UpOgorICAgICAg
ICAoV1RGOjpkZWZhdWx0TGFuZ3VhZ2UpOgorICAgICAgICAoV1RGOjp1c2VyUHJlZmVycmVkTGFu
Z3VhZ2VzKToKKyAgICAgICAgKFdURjo6aW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2Vz
T3ZlcnJpZGVGb3JUZXN0aW5nKTogQWRkZWQuCisgICAgICAgIChXVEY6OmluaXRpYWxQbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcpOiBBZGRlZC4KKyAgICAg
ICAgKFdURjo6b3ZlcnJpZGVJbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRm9y
VGVzdGluZyk6IEFkZGVkLgorICAgICAgICAoV1RGOjpwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdl
KTogRGVsZXRlZC4KKyAgICAgICAgTW92ZSB0aGUgY2FjaGluZyBpbiBgd3RmL2NmL0xhbmd1YWdl
Q0YuY3BwYCB0byBgd3RmL0xhbmd1YWdlLmNwcGAgc28gdGhhdCBhbGwgcGxhdGZvcm1zIGNhbgor
ICAgICAgICBiZW5lZml0IGZyb20gY2FjaGluZyB0aGUgcmVzdWx0IG9mIGBwbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNgLgorCisgICAgICAgICogd3RmL2NmL0xhbmd1YWdlQ0YuY3BwOgor
ICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICAo
V1RGOjpwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYv
Y29jb2EvTGFuZ3VhZ2VDb2NvYS5tbToKKyAgICAgICAgKFdURjo6YmFzZUxhbmd1YWdlRnJvbUxh
bmd1YWdlKTogQWRkZWQuCisgICAgICAgICogd3RmL3BsYXlzdGF0aW9uL0xhbmd1YWdlUGxheVN0
YXRpb24uY3BwOgorICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMp
OgorICAgICAgICAqIHd0Zi9zcGkvY29jb2EvTlNMb2NhbGVTUEkuaDoKKyAgICAgICAgKiB3dGYv
dW5peC9MYW5ndWFnZVVuaXguY3BwOgorICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMpOgorICAgICAgICAqIHd0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwOgorICAgICAg
ICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICBBZGQgYFdU
Rjo6U2hvdWxkTWluaW1pemVMYW5ndWFnZXNgIHRoYXQgY29udHJvbHMgd2hldGhlciBgV1RGOjpt
aW5pbWl6ZWRQcmVmZXJyZWRMYW5ndWFnZXNgCisgICAgICAgIGlzIGNhbGxlZC4gU2luY2UgdGhl
IHJlc3VsdCBpcyBjYWNoZWQsIGNyZWF0ZSBzZXBhcmF0ZSBgVmVjdG9yPFN0cmluZz5gIGZvciBl
YWNoIGVudW0gdmFsdWUuCisKIDIwMjEtMDUtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBVc2UgQ2hlY2tlZENvbmRpdGlvbiBpbiBtb3JlIHBsYWNlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGFkM2ExNGUxZThhM2JhMmU1NDI3OWEwM2NhMDI1MDM2MmExMzkyMmEuLjU0MzRi
M2JhNDUzZjM5NTMxZTQ4NWNiYmIzYTI4YTE4OGUxN2ZiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNSBAQAorMjAyMS0wNS0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRp
YSBjb250cm9scyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZv
ciBvcmRlcmluZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qgb2Yg
bGFuZ3VhZ2UgcHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29ydC9v
cmRlciB0aGUgbGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBsZSwg
aWYgYSBgPHZpZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3Bhbmlz
aCwgYW5kIEZyZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQgRnJl
bmNoIChhbHRlcm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYgUmVn
aW9uIHZpZXcgb2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxkIG9y
ZGVyCisgICAgICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0aGVu
IFNwYW5pc2guCisKKyAgICAgICAgVGVzdHM6IExhbmd1YWdlLlNob3VsZE1pbmltaXplTGFuZ3Vh
Z2VzWWVzCisgICAgICAgICAgICAgICBMYW5ndWFnZS5TaG91bGRNaW5pbWl6ZUxhbmd1YWdlc05v
CisKKyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnRleHRUcmFja1Nl
bGVjdGlvblNjb3JlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVy
ZW5jZXM6OnByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZSBjb25zdCk6CisgICAgICAg
ICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6cHJlZmVycmVkTGFuZ3VhZ2VzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkRGlzcGxheVN0cmluZ0ZvclRyYWNrQmFzZSk6
CisgICAgICAgIChXZWJDb3JlOjp0ZXh0VHJhY2tDb21wYXJlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQzo6dXBkYXRlT3B0aW9u
cyk6CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICBXcmFwIGBk
ZWZhdWx0TGFuZ3VhZ2VgIGluIGEgbGFtYmRhIHNpbmNlIGl0IG5vdyBoYXMgYSBwYXJhbWV0ZXIu
CisKIDIwMjEtMDUtMjEgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAg
IEFsbCBOZXRmbGl4IHBsYXliYWNrIGZhaWxzIGFmdGVyIHIyNzc3NDAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54Y2NvbmZp
ZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54
Y2NvbmZpZwppbmRleCA2ZGY4ZjAwYjQyYzMwM2Q0ZjI2ODBmYzY5ZDAyMTM1MTI2YWY0YzA0Li5j
N2FjMTcwYzExYjZjMTgzMjUzNmI0OGYyODMyZDhjYmUyMjA0ZjQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvSmF2YVNjcmlwdENvcmUueGNjb25maWcK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0phdmFTY3JpcHRDb3Jl
LnhjY29uZmlnCkBAIC0yOSw3ICsyOSwxMCBAQCBNT0RVTEVNQVBfRklMRSA9ICQoU1JDUk9PVCkv
SmF2YVNjcmlwdENvcmUubW9kdWxlbWFwOwogLy8gUHJldmVudCBDKysgc3RhbmRhcmQgbGlicmFy
eSBvcGVyYXRvciBuZXcsIGRlbGV0ZSBhbmQgdGhlaXIgcmVsYXRlZCBleGNlcHRpb24gdHlwZXMg
ZnJvbSBiZWluZyBleHBvcnRlZCBhcyB3ZWFrIHN5bWJvbHMuCiBPVEhFUl9MREZMQUdTX0hJREVf
U1lNQk9MUyA9IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pUSVN0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
LF9fWlRTU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVFNTdDlleGNlcHRp
b24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pkbFB2U18gLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCxfX1pud21QdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5LU3QzX18xOGZ1bmN0aW9uSUZ2
dkVFY2xFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVD
MUVPUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMThmdW5jdGlvbklGdnZFRUMy
RU9TMl8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOS1N0M19fMThmdW5jdGlvbklGdlJOM0pT
QzE3Qnl0ZWNvZGVHZW5lcmF0b3JFUE5TMV8xMFJlZ2lzdGVySURFRUVjbEVTM19TNV8gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdl
bmVyYXRvckVQTlMxXzEwUmVnaXN0ZXJJREVFRUQxRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxf
X1pOU3QzX18xOGZ1bmN0aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvckVQTlMxXzEwUmVn
aXN0ZXJJREVFRUQyRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xOGZ1bmN0aW9u
SUZ2dkVFRDFFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2
RUVEMkV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVFZOU3QzX18xMTdiYWRfZnVuY3Rpb25f
Y2FsbEUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0y
NF9faXNfcGF0aGFibGVfY2hhcl9hcnJheUlQS2NTNF9jTGIxRUUxMV9fcmFuZ2VfZW5kRVM0XyAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTI0X19pc19w
YXRoYWJsZV9jaGFyX2FycmF5SVBLY1M0X2NMYjFFRTEzX19yYW5nZV9iZWdpbkVTNF8gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW04X1BhdGhDVlRJY0Ux
NF9fYXBwZW5kX3JhbmdlSVBLY0VFTlNfOWVuYWJsZV9pZklYc3IyN19faXNfY3BwMTdfZm9yd2Fy
ZF9pdGVyYXRvcklUX0VFNXZhbHVlRXZFNHR5cGVFUk5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNo
YXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTOF9TOF8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW04X1BhdGhDVlRJY0UxNV9fYXBwZW5kX3Nv
dXJjZUlQS2NFRXZSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFs
bG9jYXRvckljRUVFRVJLVF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMx
MGZpbGVzeXN0ZW04X1BhdGhDVlRJY0UxNF9fYXBwZW5kX3JhbmdlSVBLY0VFTlNfOWVuYWJsZV9p
ZklYc3IyMV9faXNfZm9yd2FyZF9pdGVyYXRvcklUX0VFNXZhbHVlRXZFNHR5cGVFUk5TXzEyYmFz
aWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTOF9TOF8g
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOS1N0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJl
Y3RvcnlfaXRlcmF0b3JkZUV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2Zz
MTBmaWxlc3lzdGVtMThkaXJlY3RvcnlfaXRlcmF0b3JwcEV2IC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJ
QTEwX2NQY2NMYjFFRTExX19yYW5nZV9lbmRFUEtjIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19a
TlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJQTEwX2NQ
Y2NMYjFFRTEzX19yYW5nZV9iZWdpbkVQS2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3Qz
X18xNF9fZnMxMGZpbGVzeXN0ZW00cGF0aGRWRVJLUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2ws
X19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtOF9QYXRoQ1ZUSWNFMTVfX2FwcGVuZF9zb3VyY2VJ
QTEwX2NFRXZSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9j
YXRvckljRUVFRVJLVF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZp
bGVzeXN0ZW0yNF9fdGhyb3dfZmlsZXN5c3RlbV9lcnJvcklKUlBLY1JLTlMxXzRwYXRoRVJLTlNf
MTBlcnJvcl9jb2RlRUVFRXZEcE9UXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0
X19mczEwZmlsZXN5c3RlbTE0X19pc19zZXBhcmF0b3JJY0VFTlNfOWVuYWJsZV9pZklYc3IxOF9f
Y2FuX2NvbnZlcnRfY2hhcklUX0VFNXZhbHVlRWJFNHR5cGVFUzRfIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJy
YXlJUEtjUzRfY0xiMUVFMTVfX2ZpcnN0X29yX251bGxFUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtNHBhdGgyMF9fc291cmNlX2lzX2Fic29sdXRl
SWNFRWJUXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3Rl
bTRwYXRoNmFwcGVuZElQS2NFRU5TXzllbmFibGVfaWZJWHNyMTNfX2lzX3BhdGhhYmxlSVRfRUU1
dmFsdWVFUlMyX0U0dHlwZUVSS1M3XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0
X19mczEwZmlsZXN5c3RlbTZ1OHBhdGhJUEtjRUVOU185ZW5hYmxlX2lmSVhzcjEzX19pc19wYXRo
YWJsZUlUX0VFNXZhbHVlRU5TMV80cGF0aEVFNHR5cGVFUktTNl8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCxfX1pOS1N0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJlY3RvcnlfaXRlcmF0b3JwdEV2
IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJl
Y3RvcnlfaXRlcmF0b3I5aW5jcmVtZW50RVJOU18xMGVycm9yX2NvZGVFOwogCi1PVEhFUl9MREZM
QUdTX0JBU0UgPSAkKE9USEVSX0xERkxBR1NfSElERV9TWU1CT0xTKSAtZm9yY2VfbG9hZCAiJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL2xpYldURi5h
IjsKKy8vIE5lZWRlZCBieSBgU291cmNlL1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbWAu
CitXS19JTlRFUk5BVElPTkFMX1NVUFBPUlRfTERGTEFHUyA9IC1mcmFtZXdvcmsgSW50ZXJuYXRp
b25hbFN1cHBvcnQ7CisKK09USEVSX0xERkxBR1NfQkFTRSA9ICQoT1RIRVJfTERGTEFHU19ISURF
X1NZTUJPTFMpIC1pZnJhbWV3b3JrICQoU0RLX0RJUikkKFNZU1RFTV9MSUJSQVJZX0RJUikvUHJp
dmF0ZUZyYW1ld29ya3MgLWZvcmNlX2xvYWQgIiQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9KYXZhU2NyaXB0Q29yZS9saWJXVEYuYSIgJChXS19JTlRFUk5BVElPTkFMX1NVUFBP
UlRfTERGTEFHUyk7CiBPVEhFUl9MREZMQUdTW3Nkaz1lbWJlZGRlZCpdID0gJChpbmhlcml0ZWQp
ICQoT1RIRVJfTERGTEFHU19CQVNFKTsKIE9USEVSX0xERkxBR1Nbc2RrPW1hY29zeCpdID0gJChp
bmhlcml0ZWQpICQoT1RIRVJfTERGTEFHU19CQVNFKSAtZnJhbWV3b3JrIENvcmVTZXJ2aWNlczsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL3BsYXlzdGF0aW9uL1Rl
c3RTaGVsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvcGxheXN0YXRpb24vVGVz
dFNoZWxsLmNwcAppbmRleCAyNzgyZmRhMDg5ODY1ZGNmMGUyZjdjMWRiMjkzMzE1MTI4OTRkZTQ5
Li4zMWZlYWY3ZWM1OGY3OTVmOGMzZGJiNzdkOWY5NTdjMzNmNjJmYzMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcApA
QCAtNjIsNyArNjIsNyBAQCBleHRlcm4gIkMiIHZvaWQgcHJlVGVzdCgpCiAgICAgSlNDOjpPcHRp
b25zOjpuYW1lXygpID0gb3JpZyMjbmFtZV87CiAgICAgRk9SX0VBQ0hfSlNDX09QVElPTihJTklU
X09QVElPTikKICN1bmRlZiBJTklUX09QVElPTgotICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExh
bmd1YWdlcyhwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSk7CisgICAgb3ZlcnJpZGVV
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHsgfSk7CiB9CiAKIGV4dGVybiAiQyIgaW50IHJ1blRlc3Qo
aW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xhbmd1
YWdlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcAppbmRleCBiZTYyNThkODU3ZTU5
ODhmOTY5ODM5MDIwMmJjYzkzYzNjMTc4MjBmLi43MDE2OTYyMDUyZmJhOGFlM2Q5OTFlMmEwYWYw
N2MyYjUxN2EzYmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwCkBAIC0zNyw2ICszNywxOCBAQAogCiBuYW1l
c3BhY2UgV1RGIHsKIAorc3RhdGljIENoZWNrZWRMb2NrIGNhY2hlZFBsYXRmb3JtUHJlZmVycmVk
TGFuZ3VhZ2VzTG9jazsKK3N0YXRpYyBWZWN0b3I8U3RyaW5nPiYgY2FjaGVkRnVsbFBsYXRmb3Jt
UHJlZmVycmVkTGFuZ3VhZ2VzKCkgV1RGX1JFUVVJUkVTX0xPQ0soY2FjaGVkUGxhdGZvcm1QcmVm
ZXJyZWRMYW5ndWFnZXNMb2NrKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8
U3RyaW5nPj4gbGFuZ3VhZ2VzOworICAgIHJldHVybiBsYW5ndWFnZXM7Cit9CitzdGF0aWMgVmVj
dG9yPFN0cmluZz4mIGNhY2hlZE1pbmltaXplZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkg
V1RGX1JFUVVJUkVTX0xPQ0soY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrKQor
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4gbGFuZ3VhZ2VzOwor
ICAgIHJldHVybiBsYW5ndWFnZXM7Cit9CisKIHN0YXRpYyBDaGVja2VkTG9jayBwcmVmZXJyZWRM
YW5ndWFnZXNPdmVycmlkZUxvY2s7CiBzdGF0aWMgVmVjdG9yPFN0cmluZz4mIHByZWZlcnJlZExh
bmd1YWdlc092ZXJyaWRlKCkgV1RGX1JFUVVJUkVTX0xPQ0socHJlZmVycmVkTGFuZ3VhZ2VzT3Zl
cnJpZGVMb2NrKQogewpAQCAtNjgsMTYgKzgwLDIxIEBAIHZvaWQgcmVtb3ZlTGFuZ3VhZ2VDaGFu
Z2VPYnNlcnZlcih2b2lkKiBjb250ZXh0KQogCiB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCkKIHsK
LSAgICBwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdlKCk7CisgICAgeworICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrIH07CisgICAgICAg
IGNhY2hlZEZ1bGxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpLmNsZWFyKCk7CisgICAgICAg
IGNhY2hlZE1pbmltaXplZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkuY2xlYXIoKTsKKyAg
ICB9CisKICAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogY29weVRvVmVjdG9yKG9ic2VydmVyTWFw
KCkpKSB7CiAgICAgICAgIGlmIChvYnNlcnZlck1hcCgpLmNvbnRhaW5zKG9ic2VydmVyLmtleSkp
CiAgICAgICAgICAgICBvYnNlcnZlci52YWx1ZShvYnNlcnZlci5rZXkpOwogICAgIH0KIH0KIAot
U3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgpCitTdHJpbmcgZGVmYXVsdExhbmd1YWdlKFNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzIHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewotICAgIFZlY3RvcjxT
dHJpbmc+IGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBWZWN0b3I8
U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzKTsKICAgICBpZiAobGFuZ3VhZ2VzLnNpemUoKSkKICAgICAgICAgcmV0dXJuIGxh
bmd1YWdlc1swXTsKIApAQCAtMTA4LDcgKzEyNSw3IEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBp
c29sYXRlZENvcHkoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmluZ3MpCiAgICAgcmV0dXJuIGNv
cHk7CiB9CiAKLVZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9y
PFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyBz
aG91bGRNaW5pbWl6ZUxhbmd1YWdlcykKIHsKICAgICB7CiAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUxvY2sgfTsKQEAgLTExNyw3ICsxMzQsMTEgQEAg
VmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpCiAgICAgICAgICAgICByZXR1
cm4gaXNvbGF0ZWRDb3B5KG92ZXJyaWRlKTsKICAgICB9CiAKLSAgICByZXR1cm4gcGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgTG9ja2VyIGxvY2tlciB7IGNhY2hlZFBsYXRm
b3JtUHJlZmVycmVkTGFuZ3VhZ2VzTG9jayB9OworICAgIGF1dG8mIGxhbmd1YWdlcyA9IHNob3Vs
ZE1pbmltaXplTGFuZ3VhZ2VzID09IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMgPyBjYWNo
ZWRNaW5pbWl6ZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpIDogY2FjaGVkRnVsbFBsYXRm
b3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgaWYgKGxhbmd1YWdlcy5pc0VtcHR5KCkpCisg
ICAgICAgIGxhbmd1YWdlcyA9IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhzaG91bGRN
aW5pbWl6ZUxhbmd1YWdlcyk7CisgICAgcmV0dXJuIGlzb2xhdGVkQ29weShsYW5ndWFnZXMpOwog
fQogCiBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmd1YWdlSWRlbnRpZmllcihjb25zdCBTdHJp
bmcmIGxhbmd1YWdlQ29kZSkKQEAgLTE4NCwxMCArMjA1LDI2IEBAIFN0cmluZyBkaXNwbGF5TmFt
ZUZvckxhbmd1YWdlTG9jYWxlKGNvbnN0IFN0cmluZyYgbG9jYWxlTmFtZSkKICAgICByZXR1cm4g
bG9jYWxlTmFtZTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkKLXZvaWQgcGxhdGZvcm1MYW5n
dWFnZURpZENoYW5nZSgpCitzdGF0aWMgQ2hlY2tlZExvY2sgaW5pdGlhbFBsYXRmb3JtUHJlZmVy
cmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nTG9jazsKK3N0YXRpYyBWZWN0b3I8U3RyaW5n
PiYgaW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nKCkg
V1RGX1JFUVVJUkVTX0xPQ0soaW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJp
ZGVGb3JUZXN0aW5nTG9jaykKIHsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0
cmluZz4+IG92ZXJyaWRlOworICAgIHJldHVybiBvdmVycmlkZTsKIH0KLSNlbmRpZgogCitWZWN0
b3I8U3RyaW5nPiBpbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVG
b3JUZXN0aW5nKCkKK3sKKyAgICBMb2NrZXIgbG9ja2VyIHsgaW5pdGlhbFBsYXRmb3JtUHJlZmVy
cmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nTG9jayB9OworICAgIHJldHVybiBpbml0aWFs
UGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKTsKIH0KKwordm9p
ZCBvdmVycmlkZUluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNGb3JUZXN0aW5n
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvdmVycmlkZSkKK3sKKyAgICB7CisgICAgICAgIExvY2tl
ciBsb2NrZXIgeyBpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRl
c3RpbmdMb2NrIH07CisgICAgICAgIGluaXRpYWxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc092
ZXJyaWRlRm9yVGVzdGluZygpID0gb3ZlcnJpZGU7CisgICAgfQorICAgIGxhbmd1YWdlRGlkQ2hh
bmdlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvTGFuZ3VhZ2UuaCBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmgKaW5kZXggZjA3NGQ3NTY4
ZDAwMmU5MzJhNTMyNmJkYjUyZDdmYjhjMDY1ODE4My4uMjkwZTNlN2M4YjQ0N2UyNGYzZTE4OGVi
ZTBlNTNiYjYyZGZmYjA3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oCkBAIC0zNSwxMyArMzUsMTMgQEAKIAogbmFt
ZXNwYWNlIFdURiB7CiAKLVdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgZGVmYXVsdExhbmd1YWdl
KCk7IC8vIFRocmVhZC1zYWZlLgotV1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsgLy8gVGhyZWFkLXNhZmUsIHJldHVybnMgQkNQIDQ3IGxh
bmd1YWdlIHRhZ3MuCitlbnVtIGNsYXNzIFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzIHsgTm8sIFll
cyB9OworCitXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIGRlZmF1bHRMYW5ndWFnZShTaG91bGRN
aW5pbWl6ZUxhbmd1YWdlcyA9IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMpOyAvLyBUaHJl
YWQtc2FmZS4KK1dURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID0gU2hvdWxkTWluaW1pemVMYW5ndWFn
ZXM6Olllcyk7IC8vIFRocmVhZC1zYWZlLCByZXR1cm5zIEJDUCA0NyBsYW5ndWFnZSB0YWdzLgog
V1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNP
dmVycmlkZSgpOwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgb3ZlcnJpZGVVc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgc2l6
ZV90IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChjb25zdCBTdHJpbmcmIGxhbmd1
YWdlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VMaXN0LCBib29sJiBleGFjdE1hdGNo
KTsKLVdURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoKTsKLVdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHBsYXRmb3JtTGFuZ3VhZ2VE
aWRDaGFuZ2UoKTsKIAogLy8gQ2FsbGVkIGZyb20gcGxhdGZvcm0gc3BlY2lmaWMgY29kZSB3aGVu
IHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlKHMpIGNoYW5nZS4KIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCk7CkBAIC01MiwyMCArNTIsMjYgQEAgV1RGX0VY
UE9SVF9QUklWQVRFIHZvaWQgYWRkTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0
LCBMYW5ndWFnZUNoYW5nZU8KIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHJlbW92ZUxhbmd1YWdl
Q2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5n
IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJik7CiAKK1ZlY3RvcjxT
dHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1
YWdlcyA9IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMpOworCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiBib29sIGNhbk1pbmltaXplTGFuZ3VhZ2VzKCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBsaXN0ZW5Gb3JMYW5ndWFnZUNoYW5nZU5vdGlmaWNhdGlvbnMoKTsKIFJldGFpblB0cjxDRkFy
cmF5UmVmPiBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzKENGQXJyYXlSZWYpOwotI2Vu
ZGlmCitSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGJhc2VMYW5ndWFnZUZyb21MYW5ndWFnZShDRlN0
cmluZ1JlZik7CiAKLX0KK1ZlY3RvcjxTdHJpbmc+IGluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKTsKK1dURl9FWFBPUlRfUFJJVkFURSB2b2lk
IG92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0ZvclRlc3Rpbmco
Y29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAorfSAv
LyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6U2hvdWxkTWluaW1pemVMYW5ndWFnZXM7CiB1
c2luZyBXVEY6OmRlZmF1bHRMYW5ndWFnZTsKIHVzaW5nIFdURjo6dXNlclByZWZlcnJlZExhbmd1
YWdlczsKIHVzaW5nIFdURjo6dXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlOwogdXNpbmcg
V1RGOjpvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7CiB1c2luZyBXVEY6OmluZGV4T2ZC
ZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdDsKLXVzaW5nIFdURjo6cGxhdGZvcm1Vc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzOwogdXNpbmcgV1RGOjphZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyOwogdXNp
bmcgV1RGOjpyZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyOwogdXNpbmcgV1RGOjpkaXNwbGF5
TmFtZUZvckxhbmd1YWdlTG9jYWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY2YvTGFu
Z3VhZ2VDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcAppbmRleCBlMDcz
MTE1NDI5MWJmZDA3YzRjYzE2ZGEwNDJhYWFkYjU5YzllM2IxLi40YzdiNjAyZWRhZDRiNTNlMzMw
MjQzZTg5OGQ2Yjc1YjAwMjEzMzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5n
dWFnZUNGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcApAQCAtMzAs
MTYgKzMwLDEyIEBACiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8dW5pY29kZS91bG9jLmg+
CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2su
aD4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3NwaS9jZi9DRkJ1bmRsZVNQSS5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIAotc3RhdGljIENoZWNrZWRM
b2NrIHByZWZlcnJlZExhbmd1YWdlc0xvY2s7Ci0KICNpZiBQTEFURk9STShNQUMpCiBzdGF0aWMg
dm9pZCBsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdlKENGTm90aWZpY2F0aW9uQ2VudGVyUmVm
LCB2b2lkKiwgQ0ZTdHJpbmdSZWYsIGNvbnN0IHZvaWQqLCBDRkRpY3Rpb25hcnlSZWYpCiB7CkBA
IC00NywxNiArNDMsNiBAQCBzdGF0aWMgdm9pZCBsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdl
KENGTm90aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkKiwgQ0ZTdHJpbgogfQogI2VuZGlmCiAKLXN0
YXRpYyBWZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzKCkgV1RGX1JFUVVJUkVTX0xP
Q0socHJlZmVycmVkTGFuZ3VhZ2VzTG9jaykKLXsKLSAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJv
eWVkPFZlY3RvcjxTdHJpbmc+PiBsYW5ndWFnZXM7Ci0gICAgc3RhdGljIHN0ZDo6b25jZV9mbGFn
IG9uY2VLZXk7Ci0gICAgc3RkOjpjYWxsX29uY2Uob25jZUtleSwgWyZdIHsKLSAgICAgICAgbGFu
Z3VhZ2VzLmNvbnN0cnVjdCgpOwotICAgIH0pOwotICAgIHJldHVybiBsYW5ndWFnZXM7Ci19Ci0K
IHN0YXRpYyBTdHJpbmcgaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKENGU3RyaW5nUmVmIGxhbmd1YWdl
KQogewogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcHJlZmVycmVkTGFuZ3VhZ2VDb2RlOwpA
QCAtODgsMTQgKzc0LDYgQEAgc3RhdGljIFN0cmluZyBodHRwU3R5bGVMYW5ndWFnZUNvZGUoQ0ZT
dHJpbmdSZWYgbGFuZ3VhZ2UpCiAgICAgcmV0dXJuIG11dGFibGVMYW5ndWFnZUNvZGUuZ2V0KCk7
CiB9CiAKLXZvaWQgcGxhdGZvcm1MYW5ndWFnZURpZENoYW5nZSgpCi17Ci0gICAgewotICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgcHJlZmVycmVkTGFuZ3VhZ2VzTG9jayB9OwotICAgICAgICBwcmVm
ZXJyZWRMYW5ndWFnZXMoKS5jbGVhcigpOwotICAgIH0KLX0KLQogdm9pZCBsaXN0ZW5Gb3JMYW5n
dWFnZUNoYW5nZU5vdGlmaWNhdGlvbnMoKQogewogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTEwNiwz
MiArODQsMzggQEAgdm9pZCBsaXN0ZW5Gb3JMYW5ndWFnZUNoYW5nZU5vdGlmaWNhdGlvbnMoKQog
I2VuZGlmCiB9CiAKLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cygpCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxk
TWluaW1pemVMYW5ndWFnZXMgc2hvdWxkTWluaW1pemVMYW5ndWFnZXMpCiB7Ci0gICAgTG9ja2Vy
IGxvY2tlciB7IHByZWZlcnJlZExhbmd1YWdlc0xvY2sgfTsKLSAgICBWZWN0b3I8U3RyaW5nPiYg
dXNlclByZWZlcnJlZExhbmd1YWdlcyA9IHByZWZlcnJlZExhbmd1YWdlcygpOworICAgIFJldGFp
blB0cjxDRkFycmF5UmVmPiBwbGF0Zm9ybUxhbmd1YWdlczsKKyAgICBpZiAoYXV0byBvdmVycmlk
ZSA9IGluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3Rp
bmcoKTsgIW92ZXJyaWRlLmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvIGFycmF5ID0gYWRvcHRD
RihDRkFycmF5Q3JlYXRlTXV0YWJsZSgwLCBvdmVycmlkZS5zaXplKCksICZrQ0ZUeXBlQXJyYXlD
YWxsQmFja3MpKTsKKyAgICAgICAgZm9yIChhdXRvJiBpdGVtIDogb3ZlcnJpZGUpCisgICAgICAg
ICAgICBDRkFycmF5QXBwZW5kVmFsdWUoYXJyYXkuZ2V0KCksIGl0ZW0uY3JlYXRlQ0ZTdHJpbmco
KS5nZXQoKSk7CisgICAgICAgIHBsYXRmb3JtTGFuZ3VhZ2VzID0gV1RGTW92ZShhcnJheSk7Cisg
ICAgfSBlbHNlCisgICAgICAgIHBsYXRmb3JtTGFuZ3VhZ2VzID0gYWRvcHRDRihDRkxvY2FsZUNv
cHlQcmVmZXJyZWRMYW5ndWFnZXMoKSk7CiAKLSAgICBpZiAodXNlclByZWZlcnJlZExhbmd1YWdl
cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IGxhbmd1YWdlcyA9
IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5UHJlZmVycmVkTGFuZ3VhZ2VzKCkpOwotICAgICAgICBsYW5n
dWFnZXMgPSBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzKGxhbmd1YWdlcy5nZXQoKSk7
Ci0gICAgICAgIENGSW5kZXggbGFuZ3VhZ2VDb3VudCA9IENGQXJyYXlHZXRDb3VudChsYW5ndWFn
ZXMuZ2V0KCkpOwotICAgICAgICBpZiAoIWxhbmd1YWdlQ291bnQpCi0gICAgICAgICAgICB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZCgiZW4iKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBsYW5ndWFnZUNvdW50OyBpKyspCi0gICAgICAg
ICAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFuZ3VhZ2VD
b2RlKHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGxhbmd1
YWdlcy5nZXQoKSwgaSkpKSk7CisgICAgaWYgKHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID09IFNo
b3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMpCisgICAgICAgIHBsYXRmb3JtTGFuZ3VhZ2VzID0g
bWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlcyhwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSk7
CisKKyAgICBDRkluZGV4IHBsYXRmb3JtTGFuZ3VhZ2VzQ291bnQgPSBDRkFycmF5R2V0Q291bnQo
cGxhdGZvcm1MYW5ndWFnZXMuZ2V0KCkpOworICAgIGlmICghcGxhdGZvcm1MYW5ndWFnZXNDb3Vu
dCkKKyAgICAgICAgcmV0dXJuIHsgImVuIl9zIH07CisKKyAgICBWZWN0b3I8U3RyaW5nPiBsYW5n
dWFnZXM7CisgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgcGxhdGZvcm1MYW5ndWFnZXNDb3Vu
dDsgaSsrKSB7CisgICAgICAgIGF1dG8gcGxhdGZvcm1MYW5ndWFnZSA9IHN0YXRpY19jYXN0PENG
U3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KHBsYXRmb3JtTGFuZ3VhZ2VzLmdldCgp
LCBpKSk7IEFMV0FZU19MT0dfV0lUSF9TVFJFQU0oc3RyZWFtIDw8ICJMYW5ndWFnZS5TaG91bGRN
aW5pbWl6ZUxhbmd1YWdlcyIgPDwgKHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID09IFNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzOjpZZXMgPyAiWWVzIiA6ICJObyIpIDw8ICIgLSBwbGF0Zm9ybUxhbmd1
YWdlc1siIDw8IGkgPDwgIl0gPSAiIDw8IFN0cmluZyhwbGF0Zm9ybUxhbmd1YWdlKSA8PCAiIHZz
ICIgPDwgaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKHBsYXRmb3JtTGFuZ2F1Z2UpKTsKKyAgICAgICAg
bGFuZ3VhZ2VzLmFwcGVuZChodHRwU3R5bGVMYW5ndWFnZUNvZGUocGxhdGZvcm1MYW5ndWFnZSkp
OworCisgICAgICAgIGlmIChzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9PSBTaG91bGRNaW5pbWl6
ZUxhbmd1YWdlczo6Tm8pIHsKKyAgICAgICAgICAgIC8vIENvbnZlcnQgbGFuZ3VhZ2VzIHdpdGgg
Y291bnRyeSBjb2RlcyB0byBlcXVpdmFsZW50IGxhbmd1YWdlcyB3aXRob3V0IGNvdW50cnkgY29k
ZXMgKGlmIHBvc3NpYmxlKS4KKyAgICAgICAgICAgIC8vIGUuZy4gImVuLVVTIiBiZWNvbWVzICJl
biIsIHdoaWNoIGlzIHVzZWZ1bCB3aGVuIHRyeWluZyB0byBtYXRjaCBIVE1MIGBsYW5nPSJlbiJg
LgorICAgICAgICAgICAgYXV0byBiYXNlTGFuZ3VhZ2UgPSBiYXNlTGFuZ3VhZ2VGcm9tTGFuZ3Vh
Z2UocGxhdGZvcm1MYW5ndWFnZSk7IEFMV0FZU19MT0dfV0lUSF9TVFJFQU0oc3RyZWFtIDw8ICJM
YW5ndWFnZS5TaG91bGRNaW5pbWl6ZUxhbmd1YWdlc05vIC0gYmFzZUxhbmd1YWdlc1siIDw8IGkg
PDwgIl0gPSAiIDw8IFN0cmluZyhiYXNlTGFuZ3VhZ2UpIDw8ICIgdnMgIiA8PCBodHRwU3R5bGVM
YW5ndWFnZUNvZGUoYmFzZUxhbmd1YWdlKSk7CisgICAgICAgICAgICBpZiAoYmFzZUxhbmd1YWdl
ICYmIGJhc2VMYW5ndWFnZSAhPSBwbGF0Zm9ybUxhbmd1YWdlICYmIENGU3RyaW5nQ29tcGFyZShi
YXNlTGFuZ3VhZ2UuZ2V0KCksIHBsYXRmb3JtTGFuZ3VhZ2UsIDApICE9IGtDRkNvbXBhcmVFcXVh
bFRvKQorICAgICAgICAgICAgICAgIGxhbmd1YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFuZ3VhZ2VD
b2RlKGJhc2VMYW5ndWFnZS5nZXQoKSkpOwogICAgICAgICB9CiAgICAgfQotCi0gICAgVmVjdG9y
PFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlc0NvcHk7Ci0gICAgdXNlclByZWZlcnJlZExh
bmd1YWdlc0NvcHkucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh1c2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
LnNpemUoKSk7Ci0KLSAgICBmb3IgKGF1dG8mIGxhbmd1YWdlIDogdXNlclByZWZlcnJlZExhbmd1
YWdlcykKLSAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlc0NvcHkudW5jaGVja2VkQXBwZW5k
KGxhbmd1YWdlLmlzb2xhdGVkQ29weSgpKTsKLQotICAgIHJldHVybiB1c2VyUHJlZmVycmVkTGFu
Z3VhZ2VzQ29weTsKLQotICAgIHJldHVybiBWZWN0b3I8U3RyaW5nPigpOworICAgIHJldHVybiBs
YW5ndWFnZXM7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbSBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1
YWdlQ29jb2EubW0KaW5kZXggNWJhYjdjN2IyNjdjMGFkZDI1NWIyZmU2NzYyZWU2NDBlMDU4ODk5
My4uNDFlMDMzMjkxYTMyMTdhYTg0MzFkMDY2ZmNiMzA5NjI5MGE1NjZkNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1tCkBAIC0zOCw4ICszOCw3IEBAIGJvb2wgY2FuTWluaW1p
emVMYW5ndWFnZXMoKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgaWYgKGFwcGxpY2F0aW9u
U0RLVmVyc2lvbigpIDwgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNV80KQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotI2VuZGlmCi0jaWYgUExBVEZPUk0oSU9TKQorI2VsaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKICAgICAgICAgaWYgKGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpIDwgRFlMRF9J
T1NfVkVSU0lPTl8xM180KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCkBAIC01
MCw2ICs0OSw4IEBAIGJvb2wgY2FuTWluaW1pemVMYW5ndWFnZXMoKQogCiBSZXRhaW5QdHI8Q0ZB
cnJheVJlZj4gbWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlcyhDRkFycmF5UmVmIGxhbmd1
YWdlcykKIHsKKyAgICAvLyBUaGlzIHJlcXVpcmVzIGxpbmtpbmcgYEludGVybmF0aW9uYWxTdXBw
b3J0YC4KKwogICAgIGlmICghY2FuTWluaW1pemVMYW5ndWFnZXMoKSkKICAgICAgICAgcmV0dXJu
IGxhbmd1YWdlczsKIApAQCAtNTgsNCArNTksMjkgQEAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dV
QVJEU19CRUdJTgogQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKIH0KIAorc3RhdGlj
IGJvb2wgY2FuR2V0QmFzZUxhbmd1YWdlKCkKK3sKKyAgICBzdGF0aWMgY29uc3QgYm9vbCByZXN1
bHQgPSBbXSgpIC0+IGJvb2wgeworI2lmIFBMQVRGT1JNKE1BQykKKyAgICAgICAgaWYgKGFwcGxp
Y2F0aW9uU0RLVmVyc2lvbigpIDwgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xMykKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIGlm
IChhcHBsaWNhdGlvblNES1ZlcnNpb24oKSA8IERZTERfSU9TX1ZFUlNJT05fMTFfMCkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gW05TTG9jYWxlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYmFzZUxhbmd1YWdlRnJvbUxhbmd1YWdlOildOwor
ICAgIH0oKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQorCitSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+
IGJhc2VMYW5ndWFnZUZyb21MYW5ndWFnZShDRlN0cmluZ1JlZiBsYW5ndWFnZSkKK3sKKyAgICAv
LyBUaGlzIHJlcXVpcmVzIGxpbmtpbmcgYEludGVybmF0aW9uYWxTdXBwb3J0YC4KKworICAgIGlm
ICghY2FuR2V0QmFzZUxhbmd1YWdlKCkpCisgICAgICAgIHJldHVybiBsYW5ndWFnZTsKKworICAg
IHJldHVybiAoX19icmlkZ2UgQ0ZTdHJpbmdSZWYpW05TTG9jYWxlIGJhc2VMYW5ndWFnZUZyb21M
YW5ndWFnZTooX19icmlkZ2UgTlNTdHJpbmcgKilsYW5ndWFnZV07Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQ
bGF5U3RhdGlvbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9wbGF5c3RhdGlvbi9MYW5ndWFnZVBsYXlT
dGF0aW9uLmNwcAppbmRleCBkNDUzN2E2OTQwYjVlMDIyYmY1ZTVjZGY3MWE4NjNkMzMwOWRmNjFj
Li5jYWYxNTQ5ZjgwMDJjMTM3ZTJmMWEwNjIyODE4MTU0ZjU2MjU0ZTVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9wbGF5c3RhdGlvbi9MYW5ndWFnZVBsYXlTdGF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9wbGF5c3RhdGlvbi9MYW5ndWFnZVBsYXlTdGF0aW9uLmNwcApAQCAtMzAs
NyArMzAsNyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZl
cnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcykKIHsKICAgICBWZWN0b3I8U3Ry
aW5nPiBsYW5ndWFnZXM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9O
U0xvY2FsZVNQSS5oIGIvU291cmNlL1dURi93dGYvc3BpL2NvY29hL05TTG9jYWxlU1BJLmgKaW5k
ZXggNWNlZjE2NDAzMTZiNDczYTcxYmU3YmJhNjFhODgyNzRmMjgxMDYyMS4uY2E5ODIwMWM2MTYz
YTM3OWVlMWQ4ZjJjYTRmNTVkMzZmZmFiZjBiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
c3BpL2NvY29hL05TTG9jYWxlU1BJLmgKKysrIGIvU291cmNlL1dURi93dGYvc3BpL2NvY29hL05T
TG9jYWxlU1BJLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNlbmRpZgogCiBAaW50ZXJmYWNlIE5TTG9j
YWxlICgpCisrIChub25udWxsIE5TU3RyaW5nICopYmFzZUxhbmd1YWdlRnJvbUxhbmd1YWdlOihu
b25udWxsIE5TU3RyaW5nICopbGFuZ3VhZ2VJRDsKICsgKG5vbm51bGwgTlNBcnJheTxOU1N0cmlu
ZyAqPiAqKW1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFnZXM6KG5vbm51bGwgTlNBcnJheTxO
U1N0cmluZyAqPiAqKWxhbmd1YWdlczsKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVu
aXguY3BwCmluZGV4IDMxYzc1NzQ3MmVlYWI2NDA3MjZlOTRjNWM1NzUwNzE4ZmEzOTM4ZDEuLmFm
OTRiYjA2Y2MzOGRkMmE4NTk1YmZiYjc3MTY5MGY5MmRiNDhhZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4
L0xhbmd1YWdlVW5peC5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgc3RhdGljIFN0cmluZyBwbGF0Zm9y
bUxhbmd1YWdlKCkKICAgICByZXR1cm4gbm9ybWFsaXplZERlZmF1bHQ7CiB9CiAKLVZlY3RvcjxT
dHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCitWZWN0b3I8U3RyaW5nPiBw
bGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMpCiB7
CiAgICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgpIH07CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL0xhbmd1
YWdlV2luLmNwcAppbmRleCA2YjUyYzljMjBkMTVjYmE3ZTM5ZDU0MjAxMWI0MzhhMzgzNThjMmIy
Li5iZjk2YjBhNTVjODg5OTMxYzRjMmQ1MzMxN2U4YzVlMDE3ZTJhYTEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dp
bi9MYW5ndWFnZVdpbi5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIFN0cmluZyBwbGF0Zm9y
bUxhbmd1YWdlKCkKICAgICByZXR1cm4gY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2U7CiB9CiAKLVZl
Y3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCitWZWN0b3I8U3Ry
aW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFn
ZXMpCiB7CiAgICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgpIH07CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCBhYjAzYmRiNDNj
NmYzYTNmMTViYTk1ZThkMmJiMzFlN2JjYTFlNTM5Li44MTE0MTkwYjQzZWM1OTYyZDFiZmU3MmNi
OGI5MTEyMGZjZDcyNWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93QmFzZS5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9k
VGFibGUgSlNET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewogICAg
ICZyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50U2NyaXB0
RXhlY3V0aW9uT3duZXIsCiAgICAgJnNjcmlwdEV4ZWN1dGlvblN0YXR1cywKLSAgICAmZGVmYXVs
dExhbmd1YWdlLAorICAgIFtdIHsgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZSgpOyB9LAogI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkKICAgICAmY29tcGlsZVN0cmVhbWluZywKICAgICAmaW5zdGFudGlh
dGVTdHJlYW1pbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNDgzOTk3MDhlZTAzNGJjNThhYzM4MmYzY2Fj
OTdmOTE2Nzc4MmZiOC4uOTIxMjVlNTZkNjk5NWQ0NjAwZGNkOGZjYjdiNDIzYmE1OGJiNDgzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFs
U2NvcGVCYXNlLmNwcApAQCAtNjEsNyArNjEsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RU
YWJsZSBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZQog
ICAgICZyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50U2Ny
aXB0RXhlY3V0aW9uT3duZXIsCiAgICAgJnNjcmlwdEV4ZWN1dGlvblN0YXR1cywKLSAgICAmZGVm
YXVsdExhbmd1YWdlLAorICAgIFtdIHsgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZSgpOyB9LAogI2lm
IEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAmY29tcGlsZVN0cmVhbWluZywKICAgICAmaW5zdGFu
dGlhdGVTdHJlYW1pbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAppbmRleCA0MjFlNzQ0ZjMzMDdhYmQ5OWIxZTVj
MmQ1ZDdmMTNlMzNiMzhlOTAxLi40MjAyNzJhMWQwYjc1Y2E2OTVhNjZmMTI0NmU0NzQ1OTZkNWE0
ZTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9i
YWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xl
dEdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0
TWV0aG9kVGFibGUgSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhv
ZFRhYmwKICAgICAmcmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKICAgICAmY3Vy
cmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLAogICAgICZzY3JpcHRFeGVjdXRpb25TdGF0dXMsCi0g
ICAgJmRlZmF1bHRMYW5ndWFnZSwKKyAgICBbXSB7IHJldHVybiBkZWZhdWx0TGFuZ3VhZ2UoKTsg
fSwKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgJmNvbXBpbGVTdHJlYW1pbmcsCiAgICAg
Jmluc3RhbnRpYXRlU3RyZWFtaW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
YXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlcy5jcHAKaW5kZXggZDNlNDVlOGJiNGM3ZDIwMGNkM2E0YTIxMjgyMGRlNGVk
ZmNkMWJmOC4uNTVmYTA5NjRjN2ZkOTg4NjM1ZWYzMzI1Y2JkYWJmMGUyMTM0NDg0YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCkBAIC0xNzAs
NyArMTcwLDcgQEAgdm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpjYXB0aW9uUHJlZmVyZW5j
ZXNDaGFuZ2VkKCkKIAogVmVjdG9yPFN0cmluZz4gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJl
ZmVycmVkTGFuZ3VhZ2VzKCkgY29uc3QKIHsKLSAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMg
PSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2Vz
ID0gdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6Tm8pOwog
ICAgIGlmIChtX3Rlc3RpbmdNb2RlICYmICFtX3VzZXJQcmVmZXJyZWRMYW5ndWFnZS5pc0VtcHR5
KCkpCiAgICAgICAgIGxhbmd1YWdlcy5pbnNlcnQoMCwgbV91c2VyUHJlZmVycmVkTGFuZ3VhZ2Up
OwogCkBAIC0zNDEsNyArMzQxLDcgQEAgaW50IENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnRleHRU
cmFja1NlbGVjdGlvblNjb3JlKFRleHRUcmFjayogdHJhY2ssIEhUTUxNZWRpYUUKICAgICAgICAg
ICAgIGlmIChvZmZzZXQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBsYW5ndWFnZUxpc3QuYXBwZW5kKGRlZmF1bHRMYW5ndWFnZSgpKTsK
KyAgICAgICAgICAgIGxhbmd1YWdlTGlzdC5hcHBlbmQoZGVmYXVsdExhbmd1YWdlKFNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzOjpObykpOwogCiAgICAgICAgICAgICAvLyBPbmx5IGVuYWJsZSBhIHRl
eHQgdHJhY2sgaWYgdGhlIGN1cnJlbnQgYXVkaW8gdHJhY2sgaXMgTk9UIGluIHRoZSB1c2VyJ3Mg
cHJlZmVycmVkIGxhbmd1YWdlIC4uLgogICAgICAgICAgICAgc2l6ZV90IG9mZnNldCA9IGluZGV4
T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChhdWRpb1RyYWNrTGFuZ3VhZ2UsIGxhbmd1YWdl
TGlzdCwgZXhhY3RNYXRjaCk7CkBAIC00MTgsNyArNDE4LDcgQEAgU3RyaW5nIENhcHRpb25Vc2Vy
UHJlZmVyZW5jZXM6OnByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZSgpIGNvbnN0CiB7
CiAgICAgaWYgKCFtX3ByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZS5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybiBtX3ByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZTsKLSAg
ICByZXR1cm4gZGVmYXVsdExhbmd1YWdlKCk7CisgICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZShT
aG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6Tm8pOwogfQogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAppbmRleCBj
ZjJlMWJlYTI1YjBmMDc5OTg2MzkyMDU5NDVkZjBlZWY5MmQzYzQyLi45ZDcyZWQ2NWUyZjNhNzg1
ODA3YTNmZjI1YmJmZGYzYzA1MjYyMDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcApAQCAtNDcxLDM2ICs0NzEsMjAg
QEAgdm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6c2V0UHJlZmVycmVkTGFuZ3Vh
Z2UoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkKIAogVmVjdG9yPFN0cmluZz4gQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlc01lZGlhQUY6OnByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0CiB7Ci0gICAgaWYg
KHRlc3RpbmdNb2RlKCkgfHwgIU1lZGlhQWNjZXNzaWJpbGl0eUxpYnJhcnkoKSkKLSAgICAgICAg
cmV0dXJuIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByZWZlcnJlZExhbmd1YWdlcygpOwotCi0g
ICAgVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1MYW5ndWFnZXMgPSBwbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoKTsKLSAgICBWZWN0b3I8U3RyaW5nPiBvdmVycmlkZSA9IHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXNPdmVycmlkZSgpOwotICAgIGlmICghb3ZlcnJpZGUuaXNFbXB0eSgpKSB7Ci0g
ICAgICAgIGlmIChwbGF0Zm9ybUxhbmd1YWdlcy5zaXplKCkgIT0gb3ZlcnJpZGUuc2l6ZSgpKQot
ICAgICAgICAgICAgcmV0dXJuIG92ZXJyaWRlOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IG92ZXJyaWRlLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgICAgICBpZiAob3ZlcnJpZGVbaV0g
IT0gcGxhdGZvcm1MYW5ndWFnZXNbaV0pCi0gICAgICAgICAgICAgICAgcmV0dXJuIG92ZXJyaWRl
OworICAgIGF1dG8gcHJlZmVycmVkTGFuZ3VhZ2VzID0gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6
cHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgaWYgKCF0ZXN0aW5nTW9kZSgpICYmIE1lZGlhQWNj
ZXNzaWJpbGl0eUxpYnJhcnkoKSkgeworICAgICAgICBhdXRvIGNhcHRpb25MYW5ndWFnZXMgPSBh
ZG9wdENGKE1BQ2FwdGlvbkFwcGVhcmFuY2VDb3B5U2VsZWN0ZWRMYW5ndWFnZXMoa01BQ2FwdGlv
bkFwcGVhcmFuY2VEb21haW5Vc2VyKSk7CisgICAgICAgIENGSW5kZXggY2FwdGlvbkxhbmd1YWdl
c0NvdW50ID0gY2FwdGlvbkxhbmd1YWdlcyA/IENGQXJyYXlHZXRDb3VudChjYXB0aW9uTGFuZ3Vh
Z2VzLmdldCgpKSA6IDA7CisgICAgICAgIGlmIChjYXB0aW9uTGFuZ3VhZ2VzQ291bnQpIHsKKyAg
ICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHRlbXA7CisgICAgICAgICAgICB0ZW1wLnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkoY2FwdGlvbkxhbmd1YWdlc0NvdW50ICsgcHJlZmVycmVkTGFuZ3VhZ2Vz
LnNpemUoKSk7CisgICAgICAgICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBjYXB0aW9uTGFu
Z3VhZ2VzQ291bnQ7IGkrKykKKyAgICAgICAgICAgICAgICB0ZW1wLnVuY2hlY2tlZEFwcGVuZChz
dGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChjYXB0aW9uTGFu
Z3VhZ2VzLmdldCgpLCBpKSkpOworICAgICAgICAgICAgdGVtcC5hcHBlbmRWZWN0b3IoV1RGTW92
ZShwcmVmZXJyZWRMYW5ndWFnZXMpKTsKKyAgICAgICAgICAgIHByZWZlcnJlZExhbmd1YWdlcyA9
IFdURk1vdmUodGVtcCk7CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICBDRkluZGV4IGxhbmd1YWdl
Q291bnQgPSAwOwotICAgIFJldGFpblB0cjxDRkFycmF5UmVmPiBsYW5ndWFnZXMgPSBhZG9wdENG
KE1BQ2FwdGlvbkFwcGVhcmFuY2VDb3B5U2VsZWN0ZWRMYW5ndWFnZXMoa01BQ2FwdGlvbkFwcGVh
cmFuY2VEb21haW5Vc2VyKSk7Ci0gICAgaWYgKGxhbmd1YWdlcykKLSAgICAgICAgbGFuZ3VhZ2VD
b3VudCA9IENGQXJyYXlHZXRDb3VudChsYW5ndWFnZXMuZ2V0KCkpOwotCi0gICAgaWYgKCFsYW5n
dWFnZUNvdW50KQotICAgICAgICByZXR1cm4gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVy
cmVkTGFuZ3VhZ2VzKCk7Ci0KLSAgICBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzOwotICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMucmVzZXJ2ZUNhcGFjaXR5KGxhbmd1YWdl
Q291bnQgKyBwbGF0Zm9ybUxhbmd1YWdlcy5zaXplKCkpOwotICAgIGZvciAoQ0ZJbmRleCBpID0g
MDsgaSA8IGxhbmd1YWdlQ291bnQ7IGkrKykKLSAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdl
cy5hcHBlbmQoc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgo
bGFuZ3VhZ2VzLmdldCgpLCBpKSkpOwotCi0gICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBl
bmRWZWN0b3IocGxhdGZvcm1MYW5ndWFnZXMpOwotCi0gICAgcmV0dXJuIHVzZXJQcmVmZXJyZWRM
YW5ndWFnZXM7CisgICAgcmV0dXJuIHByZWZlcnJlZExhbmd1YWdlczsKIH0KIAogdm9pZCBDYXB0
aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6c2V0UHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3Rp
Yyhjb25zdCBTdHJpbmcmIGNoYXJhY3RlcmlzdGljKQpAQCAtNTc5LDEzICs1NjMsMTUgQEAgc3Rh
dGljIHZvaWQgYnVpbGREaXNwbGF5U3RyaW5nRm9yVHJhY2tCYXNlKFN0cmluZ0J1aWxkZXImIGRp
c3BsYXlOYW1lLCBjb25zdCBUcmEKICAgICBTdHJpbmcgbGFiZWwgPSB0cmFjay5sYWJlbCgpOwog
ICAgIFN0cmluZyB0cmFja0xhbmd1YWdlSWRlbnRpZmllciA9IHRyYWNrLnZhbGlkQkNQNDdMYW5n
dWFnZSgpOwogCi0gICAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBjdXJyZW50TG9jYWxlID0gYWRv
cHRDRihDRkxvY2FsZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkZWZhdWx0TGFuZ3VhZ2Uo
KS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CisgICAgYXV0byBwcmVmZXJyZWRMYW5ndWFnZXMg
PSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObyk7Cisg
ICAgYXV0byBkZWZhdWx0TGFuZ3VhZ2UgPSAhcHJlZmVycmVkTGFuZ3VhZ2VzLmlzRW1wdHkoKSA/
IHByZWZlcnJlZExhbmd1YWdlc1swXSA6IGVtcHR5U3RyaW5nKCk7IC8vIFRoaXMgbWF0Y2hlcyBg
V1RGOjpkZWZhdWx0TGFuZ3VhZ2VgLgorICAgIFJldGFpblB0cjxDRkxvY2FsZVJlZj4gY3VycmVu
dExvY2FsZSA9IGFkb3B0Q0YoQ0ZMb2NhbGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGVm
YXVsdExhbmd1YWdlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKICAgICBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IGxvY2FsZUlkZW50aWZpZXIgPSBhZG9wdENGKENGTG9jYWxlQ3JlYXRlQ2Fub25p
Y2FsTG9jYWxlSWRlbnRpZmllckZyb21TdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgdHJhY2tM
YW5ndWFnZUlkZW50aWZpZXIuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOwogICAgIFJldGFpblB0
cjxDRlN0cmluZ1JlZj4gbGFuZ3VhZ2VDRiA9IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5RGlzcGxheU5h
bWVGb3JQcm9wZXJ0eVZhbHVlKGN1cnJlbnRMb2NhbGUuZ2V0KCksIGtDRkxvY2FsZUxhbmd1YWdl
Q29kZSwgbG9jYWxlSWRlbnRpZmllci5nZXQoKSkpOwogICAgIFN0cmluZyBsYW5ndWFnZSA9IGxh
bmd1YWdlQ0YuZ2V0KCk7CiAKICAgICBpZiAoIWxhYmVsLmlzRW1wdHkoKSkgewotICAgICAgICBp
ZiAobGFuZ3VhZ2UuaXNFbXB0eSgpIHx8IGxhYmVsLmNvbnRhaW5zKGxhbmd1YWdlKSkKKyAgICAg
ICAgaWYgKGxhbmd1YWdlLmlzRW1wdHkoKSB8fCBsYWJlbC5jb250YWlucyhsYW5ndWFnZSkgfHwg
cHJlZmVycmVkTGFuZ3VhZ2VzLmNvbnRhaW5zKHRyYWNrTGFuZ3VhZ2VJZGVudGlmaWVyKSkKICAg
ICAgICAgICAgIGRpc3BsYXlOYW1lLmFwcGVuZChsYWJlbCk7CiAgICAgICAgIGVsc2UgewogICAg
ICAgICAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gbG9jYWxlRGljdCA9IGFkb3B0Q0Yo
Q0ZMb2NhbGVDcmVhdGVDb21wb25lbnRzRnJvbUxvY2FsZUlkZW50aWZpZXIoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgbG9jYWxlSWRlbnRpZmllci5nZXQoKSkpOwpAQCAtNzA5LDE1ICs2OTUsMTYgQEAg
U3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpkaXNwbGF5TmFtZUZvclRyYWNr
KFRleHRUcmFjayogdHJhY2spIGNvbnMKIAogc3RhdGljIGJvb2wgdGV4dFRyYWNrQ29tcGFyZShj
b25zdCBSZWZQdHI8VGV4dFRyYWNrPiYgYSwgY29uc3QgUmVmUHRyPFRleHRUcmFjaz4mIGIpCiB7
Ci0gICAgU3RyaW5nIHByZWZlcnJlZExhbmd1YWdlRGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUZv
ckxhbmd1YWdlTG9jYWxlKGxhbmd1YWdlSWRlbnRpZmllcihkZWZhdWx0TGFuZ3VhZ2UoKSkpOwog
ICAgIFN0cmluZyBhTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VM
b2NhbGUobGFuZ3VhZ2VJZGVudGlmaWVyKGEtPnZhbGlkQkNQNDdMYW5ndWFnZSgpKSk7CiAgICAg
U3RyaW5nIGJMYW5ndWFnZURpc3BsYXlOYW1lID0gZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2Fs
ZShsYW5ndWFnZUlkZW50aWZpZXIoYi0+dmFsaWRCQ1A0N0xhbmd1YWdlKCkpKTsKIAotICAgIC8v
IFRyYWNrcyBpbiB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZSBhcmUgYWx3YXlzIGF0IHRo
ZSB0b3Agb2YgdGhlIG1lbnUuCi0gICAgYm9vbCBhSXNQcmVmZXJyZWRMYW5ndWFnZSA9IGFMYW5n
dWFnZURpc3BsYXlOYW1lID09IHByZWZlcnJlZExhbmd1YWdlRGlzcGxheU5hbWU7Ci0gICAgYm9v
bCBiSXNQcmVmZXJyZWRMYW5ndWFnZSA9IGJMYW5ndWFnZURpc3BsYXlOYW1lID09IHByZWZlcnJl
ZExhbmd1YWdlRGlzcGxheU5hbWU7Ci0gICAgaWYgKGFJc1ByZWZlcnJlZExhbmd1YWdlICE9IGJJ
c1ByZWZlcnJlZExhbmd1YWdlKQotICAgICAgICByZXR1cm4gYUlzUHJlZmVycmVkTGFuZ3VhZ2U7
CisgICAgZm9yIChhdXRvJiBwcmVmZXJyZWRMYW5ndWFnZSA6IHVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKSkgeworICAgICAgICBTdHJpbmcgcHJlZmVy
cmVkTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUobGFu
Z3VhZ2VJZGVudGlmaWVyKHByZWZlcnJlZExhbmd1YWdlKSk7CisgICAgICAgIGJvb2wgYUlzUHJl
ZmVycmVkTGFuZ3VhZ2UgPSBhTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9PSBwcmVmZXJyZWRMYW5ndWFn
ZURpc3BsYXlOYW1lOworICAgICAgICBib29sIGJJc1ByZWZlcnJlZExhbmd1YWdlID0gYkxhbmd1
YWdlRGlzcGxheU5hbWUgPT0gcHJlZmVycmVkTGFuZ3VhZ2VEaXNwbGF5TmFtZTsKKyAgICAgICAg
aWYgKGFJc1ByZWZlcnJlZExhbmd1YWdlICE9IGJJc1ByZWZlcnJlZExhbmd1YWdlKQorICAgICAg
ICAgICAgcmV0dXJuIGFJc1ByZWZlcnJlZExhbmd1YWdlOworICAgIH0KIAogICAgIENvbGxhdG9y
IGNvbGxhdG9yOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFW
Rk9iakMubW0KaW5kZXggOWJkNTY0ODQwYzI4MmFmNTdhMTBkNGU0ZGNiZTg3NTczNGJjODI2YS4u
YjQxOWI2MGQ5OGUzNjZkYjQ3ZGM3MDU3ZWJkMjU3NjhkYzNkNjkzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9u
R3JvdXBBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQpAQCAtMTM0LDcgKzEzNCw3
IEBAIHZvaWQgTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM6OnVwZGF0ZU9wdGlvbnMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGNoYXJhY3RlcmlzCiAgICAgICAgIHJldHVybjsKIAogICAgIE5TQXJy
YXkqIGZpbHRlcmVkT3B0aW9ucyA9IFtQQUw6OmdldEFWTWVkaWFTZWxlY3Rpb25Hcm91cENsYXNz
KCkgbWVkaWFTZWxlY3Rpb25PcHRpb25zRnJvbUFycmF5OlttX21lZGlhU2VsZWN0aW9uR3JvdXAg
b3B0aW9uc10KLSAgICAgICAgZmlsdGVyZWRBbmRTb3J0ZWRBY2NvcmRpbmdUb1ByZWZlcnJlZExh
bmd1YWdlczpjcmVhdGVOU0FycmF5KHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSkuZ2V0KCldOwor
ICAgICAgICBmaWx0ZXJlZEFuZFNvcnRlZEFjY29yZGluZ1RvUHJlZmVycmVkTGFuZ3VhZ2VzOmNy
ZWF0ZU5TQXJyYXkodXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdl
czo6Tm8pKS5nZXQoKV07CiAKICAgICBpZiAoIVtmaWx0ZXJlZE9wdGlvbnMgY291bnRdICYmIGNo
YXJhY3RlcmlzdGljcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiMzA5NGJhZmRlYzcyNzQ3ZTNh
ODBlNjEzODkxZWJmZWQyY2VlNDM4Li5hYTE4MWY0NjZmZWRiZmYzMWE1MDRiN2QzOWQ3ZGFlMGQw
NjU4OWQzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMDUtMjIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBw
bGUuY29tPgorCisgICAgICAgIFtNb2Rlcm4gTWVkaWEgQ29udHJvbHNdIFJFR1JFU1NJT04ocjI1
NDM4OSkgbWVkaWEgY29udHJvbHMgbmVlZHMgdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVm
ZXJlbmNlcyBmb3Igb3JkZXJpbmcgdHJhY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYwMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NmL0xhbmd1YWdl
LmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNULkxhbmd1YWdlLlNob3Vs
ZE1pbmltaXplTGFuZ3VhZ2VzWWVzKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QuTGFu
Z3VhZ2UuU2hvdWxkTWluaW1pemVMYW5ndWFnZXNObyk6CisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXVEYueGNjb25maWc6CisgICAgICAgIExpbmsgYEludGVy
bmF0aW9uYWxTdXBwb3J0YCBhcyB0aGF0J3Mgd2hlcmUgdGhlIGBOU0xvY2FsZWAgZXh0ZW5zaW9u
cyBhcmUgaW1wbGVtZW50ZWQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0wNS0yMSAgQWFrYXNoIEphaW4g
IDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUnVuIGxheW91dCB0ZXN0cyBpbiBz
dHJlc3MgbW9kZSBmb3IgMTAgaXRlcmF0aW9ucyBvbiByZWd1bGFyIEVXUyBsYXlvdXQtdGVzdCBx
dWV1ZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVz
dFdURi54Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdU
Ri54Y2NvbmZpZwppbmRleCBlNmEyOTc3ZmI0NTJkOGEyNjJmMzc0NGI0NWNmYTVhNWY5MzM4MmQx
Li5mOGVjODFhYTYyZWRkNjQ5MmM3ZGQ2MTEzOTRiZmY5OGY4NzEzNzIyIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXVEYueGNjb25maWcKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V1RGLnhjY29uZmlnCkBAIC0y
OSwxMCArMjksMTMgQEAgR0NDX0VOQUJMRV9PQkpDX0VYQ0VQVElPTlMgPSBZRVM7CiAKIEdDQ19Q
UkVQUk9DRVNTT1JfREVGSU5JVElPTlMgPSAkKGluaGVyaXRlZCkgQlVJTERJTkdfVEVTVF9XVEYg
R1RFU1RfQVBJXz0KIAorLy8gTmVlZGVkIGJ5IGBTb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFn
ZUNvY29hLm1tYC4KK1dLX0lOVEVSTkFUSU9OQUxfU1VQUE9SVF9MREZMQUdTID0gLWZyYW1ld29y
ayBJbnRlcm5hdGlvbmFsU3VwcG9ydDsKKwogV0tfVUlLSVRNQUNIRUxQRVJfTERGTEFHUyA9ICQo
V0tfVUlLSVRNQUNIRUxQRVJfTERGTEFHU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIFdLX1VJS0lU
TUFDSEVMUEVSX0xERkxBR1NfbWFjY2F0YWx5c3QgPSAtZnJhbWV3b3JrIFVJS2l0TWFjSGVscGVy
OwogCi1PVEhFUl9MREZMQUdTID0gJChpbmhlcml0ZWQpIC1sZ3Rlc3QgLWZvcmNlX2xvYWQgJChC
VUlMVF9QUk9EVUNUU19ESVIpL2xpYlRlc3RXVEYuYSAkKFdLX1VJS0lUTUFDSEVMUEVSX0xERkxB
R1MpICQoT1RIRVJfTERGTEFHU19QTEFURk9STV8kKFdLX0NPQ09BX1RPVUNIKSk7CitPVEhFUl9M
REZMQUdTID0gJChpbmhlcml0ZWQpIC1sZ3Rlc3QgLWlmcmFtZXdvcmsgJChTREtfRElSKSQoU1lT
VEVNX0xJQlJBUllfRElSKS9Qcml2YXRlRnJhbWV3b3JrcyAtZm9yY2VfbG9hZCAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvbGliVGVzdFdURi5hICQoV0tfSU5URVJOQVRJT05BTF9TVVBQT1JUX0xERkxB
R1MpICQoV0tfVUlLSVRNQUNIRUxQRVJfTERGTEFHUykgJChPVEhFUl9MREZMQUdTX1BMQVRGT1JN
XyQoV0tfQ09DT0FfVE9VQ0gpKTsKIE9USEVSX0xERkxBR1NfUExBVEZPUk1fID0gLWZyYW1ld29y
ayBDb2NvYSAtZnJhbWV3b3JrIENhcmJvbjsKIAogLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBi
ZSBidWlsdCBvbiBpT1MuIEluc3RlYWQgd2Ugc2hvdWxkIGNyZWF0ZSBhbmQgdXNlIGEgVGVzdFdU
RiBhcHBsaWNhdGlvbi4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2JiOGViYjYyYjVmNjM1
OWU1YzI4NzFiOGY1ZWQ1ZmEwZmQwY2M2ZC4uZjE2NjBjN2U1YzJhMzUzOGNlMWEwNDhjM2UyMWQ5
MTA4ZjNiMWUwYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg3OSw2ICs4NzksNyBAQAog
CQk5NTA5NUYyMDI2MkZGRkE1MDAwMEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MDk1RjFGMjYyRkZG
QTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9yLm1tICovOyB9OwogCQk5NTBFNENDMTI1
MkU3NTI0MDA3MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEU0Q0MwMjUyRTc1MjMwMDcxNjU5RiAvKiBp
T1NTdHlsdXNTdXBwb3J0Lm1tICovOyB9OwogCQk5NTNBQkIzNTI1QzBENjgyMDA0QzhCNzMgLyog
V0tXZWJWaWV3VW5kZXJQYWdlQmFja2dyb3VuZENvbG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUzQUJCMzQyNUMwRDY4MTAwNEM4QjczIC8qIFdL
V2ViVmlld1VuZGVyUGFnZUJhY2tncm91bmRDb2xvci5tbSAqLzsgfTsKKwkJOTU0RTQxMzAyNjU2
RTA2ODAwNDU1RDRGIC8qIExhbmd1YWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk1NEU0MTJFMjY1NkUwNjMwMDQ1NUQ0RiAvKiBMYW5ndWFnZS5j
cHAgKi87IH07CiAJCTk1QTUyNDk1MjU4MUExMEQwMDQ2MUZFOSAvKiBXS1dlYlZpZXdUaGVtZUNv
bG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVB
NTI0OTQyNTgxQTEwRDAwNDYxRkU5IC8qIFdLV2ViVmlld1RoZW1lQ29sb3IubW0gKi87IH07CiAJ
CTk1QjZCM0I3MjUxRUJGMkYwMEZDNDM4MiAvKiBNZWRpYURvY3VtZW50Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVCNkIzQjYyNTFFQkYyRjAwRkM0
MzgyIC8qIE1lZGlhRG9jdW1lbnQubW0gKi87IH07CiAJCTk5ODRGQUNDMUNGRkFGNjAwMDhEMTk4
QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5OTg0RkFDQTFDRkZBRUVFMDA4RDE5OEMgLyogV0tXZWJWaWV3VGV4
dElucHV0Lm1tICovOyB9OwpAQCAtMjU4Nyw2ICsyNTg4LDcgQEAKIAkJOTUwOTVGMUYyNjJGRkZB
NTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdlVG9wQ29sb3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBTYW1wbGVkUGFnZVRvcENvbG9yLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5NTBFNENDMDI1MkU3NTIzMDA3MTY1OUYgLyogaU9TU3R5bHVzU3Vw
cG9ydC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IGlPU1N0eWx1
c1N1cHBvcnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1M0FCQjM0MjVDMEQ2
ODEwMDRDOEI3MyAvKiBXS1dlYlZpZXdVbmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdVbmRlclBhZ2VCYWNr
Z3JvdW5kQ29sb3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1NEU0MTJFMjY1
NkUwNjMwMDQ1NUQ0RiAvKiBMYW5ndWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBMYW5ndWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1
QTUyNDk0MjU4MUExMEQwMDQ2MUZFOSAvKiBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3VGhlbWVDb2xvci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVCNkIzQjYyNTFFQkYyRjAwRkM0MzgyIC8q
IE1lZGlhRG9jdW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBNZWRpYURvY3VtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTg0RkFD
QTFDRkZBRUVFMDA4RDE5OEMgLyogV0tXZWJWaWV3VGV4dElucHV0Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3VGV4dElucHV0Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDgxOSw2ICs0ODIxLDcgQEAKIAkJQzA5OTFDNEYxNDND
N0Q2ODAwNzk5OEYyIC8qIGNmICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQk5NTRFNDEyRTI2NTZFMDYzMDA0NTVENEYgLyogTGFuZ3VhZ2UuY3BwICovLAog
CQkJCUJDMDI5QjE2MTQ4NkFENjQwMDgxN0RBOSAvKiBSZXRhaW5QdHIuY3BwICovLAogCQkJCUMw
OTkxQzUwMTQzQzdENjgwMDc5OThGMiAvKiBSZXRhaW5QdHJIYXNoaW5nLmNwcCAqLywKIAkJCSk7
CkBAIC01MjAwLDYgKzUyMDMsNyBAQAogCQkJCTUzRkNERTZCMjI5RUZGQjkwMDU5OEVDRiAvKiBJ
c29IZWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDRUI2MkFCMjIzNjA5REUwMDY5Q0JCMCAv
KiBJdGVyYXRvclJhbmdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBMDUwOTQxMUZCOUYwNjQw
MEIzM0ZCOCAvKiBKU09OVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTU0RTQxMzAyNjU2
RTA2ODAwNDU1RDRGIC8qIExhbmd1YWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUzMUMxRDhF
MURGOEVGNzIwMDZFOTc5RiAvKiBMRUJEZWNvZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1
N0Q1NEY5MUYzMzk3QjQwMEE5N0FBNyAvKiBMaWZlY3ljbGVMb2dnZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTNFMkM1NTUxRkQzMjA0MTAwRTFERjZBIC8qIExpbmVFbmRpbmcuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9jZi9M
YW5ndWFnZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9jZi9MYW5ndWFnZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYWViNDY1ZDA2YTk2YTU5MThiNzNlY2VmOGQ3OGNhZWJlMjZmYzVlNgot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NmL0xhbmd1
YWdlLmNwcApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKExhbmd1YWdlLCBT
aG91bGRNaW5pbWl6ZUxhbmd1YWdlc1llcykKK3sKKyAgICBvdmVycmlkZVVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMoeyB9KTsKKyAgICBXVEY6Om92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclByZWZl
cnJlZExhbmd1YWdlc0ZvclRlc3RpbmcoeyAiZW4tVVMiX3MsICJlcy1VUyJfcywgImZyLVVTIl9z
IH0pOworCisgICAgYXV0byBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3Vs
ZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMpOworICAgIEFMV0FZU19MT0dfV0lUSF9TVFJFQU0oc3Ry
ZWFtIDw8ICJMYW5ndWFnZS5TaG91bGRNaW5pbWl6ZUxhbmd1YWdlc1llcyAtIGxhbmd1YWdlcyA9
ICIgPDwgbGFuZ3VhZ2VzKTsKKworICAgIGF1dG8gZW5nbGlzaFVTSW5kZXggPSBsYW5ndWFnZXMu
ZmluZCgiZW4tVVMiX3MpOworICAgIGF1dG8gZW5nbGlzaEluZGV4ID0gbGFuZ3VhZ2VzLmZpbmQo
ImVuIl9zKTsKKyAgICBhdXRvIHNwYW5pc2hVU0luZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImVzLVVT
Il9zKTsKKyAgICBhdXRvIHNwYW5pc2hJbmRleCA9IGxhbmd1YWdlcy5maW5kKCJlcyJfcyk7Cisg
ICAgYXV0byBmcmVuY2hVU0luZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImZyLVVTIl9zKTsKKyAgICBh
dXRvIGZyZW5jaEluZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImZyIl9zKTsKKworICAgIEVYUEVDVF9U
UlVFKGVuZ2xpc2hVU0luZGV4ICE9IG5vdEZvdW5kIHx8IGVuZ2xpc2hJbmRleCAhPSBub3RGb3Vu
ZCk7CisgICAgRVhQRUNUX0VRKHNwYW5pc2hVU0luZGV4LCBub3RGb3VuZCk7CisgICAgRVhQRUNU
X0VRKHNwYW5pc2hJbmRleCwgbm90Rm91bmQpOworICAgIEVYUEVDVF9FUShmcmVuY2hVU0luZGV4
LCBub3RGb3VuZCk7CisgICAgRVhQRUNUX0VRKGZyZW5jaEluZGV4LCBub3RGb3VuZCk7CisKKyAg
ICBXVEY6Om92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0ZvclRl
c3RpbmcoeyB9KTsgLy8gY2xlYW51cAorfQorCitURVNUKExhbmd1YWdlLCBTaG91bGRNaW5pbWl6
ZUxhbmd1YWdlc05vKQoreworICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyh7IH0p
OworICAgIFdURjo6b3ZlcnJpZGVJbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
Rm9yVGVzdGluZyh7ICJlbi1VUyJfcywgImVzLVVTIl9zLCAiZnItVVMiX3MgfSk7CisKKyAgICBh
dXRvIGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5n
dWFnZXM6Ok5vKTsKKyAgICBBTFdBWVNfTE9HX1dJVEhfU1RSRUFNKHN0cmVhbSA8PCAiTGFuZ3Vh
Z2UuU2hvdWxkTWluaW1pemVMYW5ndWFnZXNObyAtIGxhbmd1YWdlcyA9ICIgPDwgbGFuZ3VhZ2Vz
KTsKKworICAgIGF1dG8gZW5nbGlzaFVTSW5kZXggPSBsYW5ndWFnZXMuZmluZCgiZW4tVVMiX3Mp
OworICAgIGF1dG8gZW5nbGlzaEluZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImVuIl9zKTsKKyAgICBh
dXRvIHNwYW5pc2hVU0luZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImVzLVVTIl9zKTsKKyAgICBhdXRv
IHNwYW5pc2hJbmRleCA9IGxhbmd1YWdlcy5maW5kKCJlcyJfcyk7CisgICAgYXV0byBmcmVuY2hV
U0luZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImZyLVVTIl9zKTsKKyAgICBhdXRvIGZyZW5jaEluZGV4
ID0gbGFuZ3VhZ2VzLmZpbmQoImZyIl9zKTsKKworICAgIEVYUEVDVF9ORShlbmdsaXNoVVNJbmRl
eCwgbm90Rm91bmQpOworICAgIGlmIChlbmdsaXNoSW5kZXggIT0gbm90Rm91bmQpIHsKKyAgICAg
ICAgRVhQRUNUX0dUKGVuZ2xpc2hJbmRleCwgZW5nbGlzaFVTSW5kZXgpOworICAgICAgICBFWFBF
Q1RfTFQoZW5nbGlzaEluZGV4LCBzcGFuaXNoVVNJbmRleCk7CisgICAgfQorICAgIEVYUEVDVF9O
RShzcGFuaXNoVVNJbmRleCwgbm90Rm91bmQpOworICAgIEVYUEVDVF9HVChzcGFuaXNoVVNJbmRl
eCwgZW5nbGlzaFVTSW5kZXgpOworICAgIGlmIChzcGFuaXNoSW5kZXggIT0gbm90Rm91bmQpIHsK
KyAgICAgICAgRVhQRUNUX0dUKHNwYW5pc2hJbmRleCwgc3BhbmlzaFVTSW5kZXgpOworICAgICAg
ICBFWFBFQ1RfTFQoc3BhbmlzaEluZGV4LCBmcmVuY2hVU0luZGV4KTsKKyAgICB9CisgICAgRVhQ
RUNUX05FKGZyZW5jaFVTSW5kZXgsIG5vdEZvdW5kKTsKKyAgICBFWFBFQ1RfR1QoZnJlbmNoVVNJ
bmRleCwgc3BhbmlzaFVTSW5kZXgpOworICAgIGlmIChmcmVuY2hJbmRleCAhPSBub3RGb3VuZCkK
KyAgICAgICAgRVhQRUNUX0dUKGZyZW5jaEluZGV4LCBmcmVuY2hVU0luZGV4KTsKKworICAgIFdU
Rjo6b3ZlcnJpZGVJbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRm9yVGVzdGlu
Zyh7IH0pOyAvLyBjbGVhbnVwCit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlm
ZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cgYi9XZWJLaXRMaWJyYXJpZXMvQ2hh
bmdlTG9nCmluZGV4IGQyYzIwYjk1NjYyMDljNTVjNzEwMzQyZTdkODliZDAzMmM5MGEyYWIuLmRk
MzFkMjJmYjdmMWMyZmFkNWRlNDhkNGJhOTBkNjBiMzkyOGVmMDAgMTAwNjQ0Ci0tLSBhL1dlYktp
dExpYnJhcmllcy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI0IEBACisyMDIxLTA1LTIyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkp
IG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxsIGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5j
ZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTWVkaWEgY29udHJvbHMgbmVlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwgbGlz
dCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBpbiBvcmRlciB0byBwcm9wZXJseQorICAgICAgICBz
b3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNrcyBpbiB0aGUgY29udHJvbHMgVUkuIEZvciBleGFt
cGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3VidGl0bGVzCisgICAgICAgIGZvciBFbmdsaXNoLCBT
cGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhlIHVzZXIgaGFzIEVuZ2xpc2ggKGRlZmF1bHQpIGFu
ZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAgICAgY29uZmlndXJlZCBpbiB0aGUgTGFuZ3VhZ2Ug
JiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJlZmVyZW5jZXMgb24gbWFjT1MsIFdlYktpdCBzaG91
bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRpdGxlcyBsaXN0IEVuZ2xpc2gsIEZyZW5jaCwgYW5k
IHRoZW4gU3BhbmlzaC4KKworICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9N
YWMvMTAxNTAwL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3Vw
cG9ydC50YmQ6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9N
YWMvMTAxNjAwL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3Vw
cG9ydC50YmQ6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9N
YWMvMTEwMDAwL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3Vw
cG9ydC50YmQ6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9h
cHBsZXR2b3MvMTQvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxT
dXBwb3J0LnRiZDogQWRkZWQuCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJz
L2lPUy8xNC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBv
cnQudGJkOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvd2F0
Y2hvcy83L0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9y
dC50YmQ6IEFkZGVkLgorICAgICAgICBMaW5rIGBJbnRlcm5hdGlvbmFsU3VwcG9ydGAgYXMgdGhh
dCdzIHdoZXJlIHRoZSBgTlNMb2NhbGVgIGV4dGVuc2lvbnMgYXJlIGltcGxlbWVudGVkLgorCiAy
MDIxLTAxLTA0ICBKZWZmIE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRh
dGUgdXNlci12aXNpYmxlIGNvcHlyaWdodCBzdHJpbmdzIHRvIGluY2x1ZGUgMjAyMQpkaWZmIC0t
Z2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9NYWMvMTAx
NTAwL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50
YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL01hYy8xMDE1
MDAvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRi
ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42YTgwODg1MGNiYzZiODkwNDgxZTdjYWZjZDgwOGRmN2M1NDkwNmUwCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtT
dHVicy9NYWMvMTAxNTAwL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlv
bmFsU3VwcG9ydC50YmQKQEAgLTAsMCArMSw5IEBACistLS0gIXRhcGktdGJkLXYzCithcmNoczog
ICAgICAgICAgIFsgeDg2XzY0IF0KK3V1aWRzOiAgICAgICAgICAgWyAneDg2XzY0OiA5QkFCQzcy
Ni02MjJGLTNFMzUtQThDNS1FNzIyNjc3QTMwOEMnLCAneDg2XzY0OiA5QkFCQzcyNi02MjJGLTNF
MzUtQThDNS1FNzIyNjc3QTMwOEMnIF0KK3BsYXRmb3JtOiAgICAgICAgemlwcGVyZWQKK2luc3Rh
bGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JbnRlcm5hdGlv
bmFsU3VwcG9ydC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9JbnRlcm5hdGlvbmFsU3VwcG9ydCcKK2N1
cnJlbnQtdmVyc2lvbjogNDQKK2V4cG9ydHM6ICAgICAgICAgCisgIC0gYXJjaHM6ICAgICAgICAg
ICBbIHg4Nl82NCBdCisuLi4KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2
YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzEwMTYwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdv
cmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZh
dGVGcmFtZXdvcmtTdHVicy9NYWMvMTAxNjAwL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29y
ay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBiNTM1MzRjZTliMjFhYzU3
YTNlYWEyMGU3ZDdiMzlhZGE2M2U5MgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJhcmll
cy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzEwMTYwMC9JbnRlcm5hdGlvbmFsU3Vw
cG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCkBAIC0wLDAgKzEsMjEgQEAK
Ky0tLSAhdGFwaS10YmQKK3RiZC12ZXJzaW9uOiAgICAgNAordGFyZ2V0czogICAgICAgICBbIHg4
Nl82NC1tYWNvcywgeDg2XzY0LW1hY2NhdGFseXN0LCBhcm02NC1tYWNvcywgYXJtNjQtbWFjY2F0
YWx5c3QsIGFybTY0ZS1tYWNvcywgYXJtNjRlLW1hY2NhdGFseXN0IF0KK3V1aWRzOgorICAtIHRh
cmdldDogICAgICAgICAgeDg2XzY0LW1hY29zCisgICAgdmFsdWU6ICAgICAgICAgICBBQjU4RTFC
MS02MEU1LTM4M0UtQkNERS1FM0M0OEY0QkM3ODcKKyAgLSB0YXJnZXQ6ICAgICAgICAgIHg4Nl82
NC1tYWNjYXRhbHlzdAorICAgIHZhbHVlOiAgICAgICAgICAgQUI1OEUxQjEtNjBFNS0zODNFLUJD
REUtRTNDNDhGNEJDNzg3CisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NC1tYWNvcworICAgIHZh
bHVlOiAgICAgICAgICAgMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwCisgIC0g
dGFyZ2V0OiAgICAgICAgICBhcm02NC1tYWNjYXRhbHlzdAorICAgIHZhbHVlOiAgICAgICAgICAg
MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwCisgIC0gdGFyZ2V0OiAgICAgICAg
ICBhcm02NGUtbWFjb3MKKyAgICB2YWx1ZTogICAgICAgICAgIDkzRTczNzg2LTlENkQtMzIyOS1C
MkI2LUE0N0M5MEZGRDM0NgorICAtIHRhcmdldDogICAgICAgICAgYXJtNjRlLW1hY2NhdGFseXN0
CisgICAgdmFsdWU6ICAgICAgICAgICA5M0U3Mzc4Ni05RDZELTMyMjktQjJCNi1BNDdDOTBGRkQz
NDYKK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9J
bnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9JbnRlcm5hdGlvbmFsU3Vw
cG9ydCcKK2N1cnJlbnQtdmVyc2lvbjogNjAKK2V4cG9ydHM6CisgIC0gdGFyZ2V0czogICAgICAg
ICBbIGFybTY0ZS1tYWNvcywgeDg2XzY0LW1hY29zLCB4ODZfNjQtbWFjY2F0YWx5c3QsIGFybTY0
ZS1tYWNjYXRhbHlzdCwgYXJtNjQtbWFjb3MsIGFybTY0LW1hY2NhdGFseXN0IF0KKy4uLgpkaWZm
IC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9NYWMv
MTEwMDAwL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9y
dC50YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL01hYy8x
MTAwMDAvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0
LnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40MGI1MzUzNGNlOWIyMWFjNTdhM2VhYTIwZTdkN2IzOWFkYTYzZTky
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdv
cmtTdHVicy9NYWMvMTEwMDAwL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5h
dGlvbmFsU3VwcG9ydC50YmQKQEAgLTAsMCArMSwyMSBAQAorLS0tICF0YXBpLXRiZAordGJkLXZl
cnNpb246ICAgICA0Cit0YXJnZXRzOiAgICAgICAgIFsgeDg2XzY0LW1hY29zLCB4ODZfNjQtbWFj
Y2F0YWx5c3QsIGFybTY0LW1hY29zLCBhcm02NC1tYWNjYXRhbHlzdCwgYXJtNjRlLW1hY29zLCBh
cm02NGUtbWFjY2F0YWx5c3QgXQordXVpZHM6CisgIC0gdGFyZ2V0OiAgICAgICAgICB4ODZfNjQt
bWFjb3MKKyAgICB2YWx1ZTogICAgICAgICAgIEFCNThFMUIxLTYwRTUtMzgzRS1CQ0RFLUUzQzQ4
RjRCQzc4NworICAtIHRhcmdldDogICAgICAgICAgeDg2XzY0LW1hY2NhdGFseXN0CisgICAgdmFs
dWU6ICAgICAgICAgICBBQjU4RTFCMS02MEU1LTM4M0UtQkNERS1FM0M0OEY0QkM3ODcKKyAgLSB0
YXJnZXQ6ICAgICAgICAgIGFybTY0LW1hY29zCisgICAgdmFsdWU6ICAgICAgICAgICAwMDAwMDAw
MC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybTY0
LW1hY2NhdGFseXN0CisgICAgdmFsdWU6ICAgICAgICAgICAwMDAwMDAwMC0wMDAwLTAwMDAtMDAw
MC0wMDAwMDAwMDAwMDAKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybTY0ZS1tYWNvcworICAgIHZh
bHVlOiAgICAgICAgICAgOTNFNzM3ODYtOUQ2RC0zMjI5LUIyQjYtQTQ3QzkwRkZEMzQ2CisgIC0g
dGFyZ2V0OiAgICAgICAgICBhcm02NGUtbWFjY2F0YWx5c3QKKyAgICB2YWx1ZTogICAgICAgICAg
IDkzRTczNzg2LTlENkQtMzIyOS1CMkI2LUE0N0M5MEZGRDM0NgoraW5zdGFsbC1uYW1lOiAgICAn
L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0ludGVybmF0aW9uYWxTdXBwb3J0LmZy
YW1ld29yay9WZXJzaW9ucy9BL0ludGVybmF0aW9uYWxTdXBwb3J0JworY3VycmVudC12ZXJzaW9u
OiA2MAorZXhwb3J0czoKKyAgLSB0YXJnZXRzOiAgICAgICAgIFsgYXJtNjRlLW1hY29zLCB4ODZf
NjQtbWFjb3MsIHg4Nl82NC1tYWNjYXRhbHlzdCwgYXJtNjRlLW1hY2NhdGFseXN0LCBhcm02NC1t
YWNvcywgYXJtNjQtbWFjY2F0YWx5c3QgXQorLi4uCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJp
ZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2FwcGxldHZvcy8xNC9JbnRlcm5hdGlvbmFs
U3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkIGIvV2ViS2l0TGlicmFy
aWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9hcHBsZXR2b3MvMTQvSW50ZXJuYXRpb25h
bFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
ZDcwNGJmMzk2MzQ1Y2E2NGUwZDIwOGFiMzlhZmM0NDc1YzhjOWJlCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9hcHBsZXR2b3Mv
MTQvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRi
ZApAQCAtMCwwICsxLDEzIEBACistLS0gIXRhcGktdGJkCit0YmQtdmVyc2lvbjogICAgIDQKK3Rh
cmdldHM6ICAgICAgICAgWyBhcm02NC10dm9zLCBhcm02NGUtdHZvcyBdCit1dWlkczoKKyAgLSB0
YXJnZXQ6ICAgICAgICAgIGFybTY0LXR2b3MKKyAgICB2YWx1ZTogICAgICAgICAgIEY5RTkwOUJD
LTE3NDAtMzRGQi1CNDkwLUZBMEI4RjgwOUZCQworICAtIHRhcmdldDogICAgICAgICAgYXJtNjRl
LXR2b3MKKyAgICB2YWx1ZTogICAgICAgICAgIDhGNUIxQzE2LTc3MkEtM0NBMi1CQTJDLUZDNUM5
QjM1RDk4MAoraW5zdGFsbC1uYW1lOiAgICAnL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdv
cmtzL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydCcK
K2N1cnJlbnQtdmVyc2lvbjogNTkKK2V4cG9ydHM6CisgIC0gdGFyZ2V0czogICAgICAgICBbIGFy
bTY0LXR2b3MsIGFybTY0ZS10dm9zIF0KKy4uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVz
L1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTQvSW50ZXJuYXRpb25hbFN1cHBvcnQu
ZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJL
aXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1l
d29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTllZTY0OWY0MmU0OGJh
NzJkOTEzMzQ3YjVjYzVkZWQ1MzQyMDcxMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJh
cmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L0ludGVybmF0aW9uYWxTdXBw
b3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKQEAgLTAsMCArMSwxNyBAQAor
LS0tICF0YXBpLXRiZAordGJkLXZlcnNpb246ICAgICA0Cit0YXJnZXRzOiAgICAgICAgIFsgYXJt
djctaW9zLCBhcm12N3MtaW9zLCBhcm02NC1pb3MsIGFybTY0ZS1pb3MgXQordXVpZHM6CisgIC0g
dGFyZ2V0OiAgICAgICAgICBhcm12Ny1pb3MKKyAgICB2YWx1ZTogICAgICAgICAgIDAwMDAwMDAw
LTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMAorICAtIHRhcmdldDogICAgICAgICAgYXJtdjdz
LWlvcworICAgIHZhbHVlOiAgICAgICAgICAgMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAw
MDAwMDAwCisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NC1pb3MKKyAgICB2YWx1ZTogICAgICAg
ICAgIDA4NDQxOUY1LUI3OTQtMzc4OC1CNTU2LTFFMzEzNzhCODhDRgorICAtIHRhcmdldDogICAg
ICAgICAgYXJtNjRlLWlvcworICAgIHZhbHVlOiAgICAgICAgICAgRjM1Qzc1RTEtN0UzNy0zRTND
LThGM0YtREMyQjhDQUZCRThDCitpbnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJp
dmF0ZUZyYW1ld29ya3MvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9u
YWxTdXBwb3J0JworY3VycmVudC12ZXJzaW9uOiA2MS4xCitleHBvcnRzOgorICAtIHRhcmdldHM6
ICAgICAgICAgWyBhcm02NC1pb3MsIGFybTY0ZS1pb3MsIGFybXY3LWlvcywgYXJtdjdzLWlvcyBd
CisuLi4KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3Jr
U3R1YnMvd2F0Y2hvcy83L0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlv
bmFsU3VwcG9ydC50YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0
dWJzL3dhdGNob3MvNy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25h
bFN1cHBvcnQudGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjNDdhMGRhMGJmN2ZkNTI0MjgzNDZmYzlhMjQ5OTU0
NTQ0MWIxNjgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0
ZUZyYW1ld29ya1N0dWJzL3dhdGNob3MvNy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsv
SW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCkBAIC0wLDAgKzEsMTUgQEAKKy0tLSAhdGFwaS10YmQK
K3RiZC12ZXJzaW9uOiAgICAgNAordGFyZ2V0czogICAgICAgICBbIGFybXY3ay13YXRjaG9zLCBh
cm02NGUtd2F0Y2hvcywgYXJtNjRfMzItd2F0Y2hvcyBdCit1dWlkczoKKyAgLSB0YXJnZXQ6ICAg
ICAgICAgIGFybXY3ay13YXRjaG9zCisgICAgdmFsdWU6ICAgICAgICAgICA3NTE2MkM0NS05NUYz
LTM5MjctODJFRC1BQjI4MDMyQzE3RjgKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybTY0ZS13YXRj
aG9zCisgICAgdmFsdWU6ICAgICAgICAgICBGMzNCNEZBRS0zN0QzLTM5NTktQjYzOS01MjBDQkZG
NTk4NkQKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybTY0XzMyLXdhdGNob3MKKyAgICB2YWx1ZTog
ICAgICAgICAgIDM1RDlFQzBBLUVFQjAtMzRGNy1CRDAyLTc3RTlDQTM4NDA1NQoraW5zdGFsbC1u
YW1lOiAgICAnL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0ludGVybmF0aW9uYWxT
dXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydCcKK2N1cnJlbnQtdmVyc2lvbjog
NTkKK2V4cG9ydHM6CisgIC0gdGFyZ2V0czogICAgICAgICBbIGFybTY0XzMyLXdhdGNob3MsIGFy
bTY0ZS13YXRjaG9zLCBhcm12N2std2F0Y2hvcyBdCisuLi4K
</data>
<flag name="commit-queue"
          id="450669"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429473</attachid>
            <date>2021-05-23 13:10:41 -0700</date>
            <delta_ts>2021-05-23 13:25:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>226038.diff</filename>
            <type>text/plain</type>
            <size>55714</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDZjYTg2Njk0N2ZjZDg4YTAyZjQxY2JmMDQ5M2Uy
MTUzMzAzYTA3M2UuLmRhN2Q2ZTY0Y2M5M2IwYjQxYzM5ZWQ2NTAzNzQ5MmNlMTIzNTY1NWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA1LTIyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENv
bnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxs
IGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWEgY29udHJvbHMg
bmVlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBpbiBv
cmRlciB0byBwcm9wZXJseQorICAgICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNrcyBp
biB0aGUgY29udHJvbHMgVUkuIEZvciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3VidGl0
bGVzCisgICAgICAgIGZvciBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhlIHVz
ZXIgaGFzIEVuZ2xpc2ggKGRlZmF1bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAgICAg
Y29uZmlndXJlZCBpbiB0aGUgTGFuZ3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJlZmVy
ZW5jZXMgb24gbWFjT1MsIFdlYktpdCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRpdGxl
cyBsaXN0IEVuZ2xpc2gsIEZyZW5jaCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3Bw
OgorICAgICAgICAoSlNDOjpkZWZhdWx0TG9jYWxlKToKKyAgICAgICAgVXBkYXRlIHVzYWdlIG9m
IGBXVEY6OmRlZmF1bHRMYW5ndWFnZWAgdG8gYWxzbyBoYXZlIGBXVEY6OlNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzYC4KKworICAgICAgICAqIHNoZWxsL3BsYXlzdGF0aW9uL1Rlc3RTaGVsbC5jcHA6
CisgICAgICAgIChwcmVUZXN0KToKKyAgICAgICAgSW5zdGVhZCBvZiBwcm9wYWdhdGluZyB0aGUg
b3ZlcnJpZGUsIGp1c3QgY2xlYXIgaXQgb3V0LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
SmF2YVNjcmlwdENvcmUueGNjb25maWc6CisgICAgICAgIExpbmsgYEludGVybmF0aW9uYWxTdXBw
b3J0YCBhcyB0aGF0J3Mgd2hlcmUgdGhlIGBOU0xvY2FsZWAgZXh0ZW5zaW9ucyBhcmUgaW1wbGVt
ZW50ZWQuCisKIDIwMjEtMDUtMjEgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSB0aGUgdW5uZWNlc3NhcnkgdXNlIG9mIENvbXBpbGVPcFN0cmljdEVxVHlw
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggZDA1M2IzODRhMGNkZmMzY2E2YzAwMzYwNTgzZTczYWI5ZTRlYTc3Zi4uM2MxNTQ4
ZTRkMTAzNjhhYjQwNWYzNjRhMGVkN2I2YWZmOGI0MzdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAor
MjAyMS0wNS0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
W01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRpYSBjb250cm9s
cyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZvciBvcmRlcmlu
ZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qgb2YgbGFuZ3VhZ2Ug
cHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29ydC9vcmRlciB0aGUg
bGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBsZSwgaWYgYSBgPHZp
ZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3BhbmlzaCwgYW5kIEZy
ZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQgRnJlbmNoIChhbHRl
cm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYgUmVnaW9uIHZpZXcg
b2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxkIG9yZGVyCisgICAg
ICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0aGVuIFNwYW5pc2gu
CisKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuaDoKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuY3Bw
OgorICAgICAgICAoV1RGOjpjYWNoZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMpOiBB
ZGRlZC4KKyAgICAgICAgKFdURjo6Y2FjaGVkTWluaW1pemVkUGxhdGZvcm1QcmVmZXJyZWRMYW5n
dWFnZXMpOiBBZGRlZC4KKyAgICAgICAgKFdURjo6bGFuZ3VhZ2VEaWRDaGFuZ2UpOgorICAgICAg
ICAoV1RGOjpkZWZhdWx0TGFuZ3VhZ2UpOgorICAgICAgICAoV1RGOjp1c2VyUHJlZmVycmVkTGFu
Z3VhZ2VzKToKKyAgICAgICAgKFdURjo6aW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2Vz
T3ZlcnJpZGVGb3JUZXN0aW5nKTogQWRkZWQuCisgICAgICAgIChXVEY6OmluaXRpYWxQbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcpOiBBZGRlZC4KKyAgICAg
ICAgKFdURjo6b3ZlcnJpZGVJbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRm9y
VGVzdGluZyk6IEFkZGVkLgorICAgICAgICAoV1RGOjpwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdl
KTogRGVsZXRlZC4KKyAgICAgICAgTW92ZSB0aGUgY2FjaGluZyBpbiBgd3RmL2NmL0xhbmd1YWdl
Q0YuY3BwYCB0byBgd3RmL0xhbmd1YWdlLmNwcGAgc28gdGhhdCBhbGwgcGxhdGZvcm1zIGNhbgor
ICAgICAgICBiZW5lZml0IGZyb20gY2FjaGluZyB0aGUgcmVzdWx0IG9mIGBwbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNgLgorCisgICAgICAgICogd3RmL2NmL0xhbmd1YWdlQ0YuY3BwOgor
ICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICAo
V1RGOjpwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYv
Y29jb2EvTGFuZ3VhZ2VDb2NvYS5tbToKKyAgICAgICAgKFdURjo6YmFzZUxhbmd1YWdlRnJvbUxh
bmd1YWdlKTogQWRkZWQuCisgICAgICAgICogd3RmL3BsYXlzdGF0aW9uL0xhbmd1YWdlUGxheVN0
YXRpb24uY3BwOgorICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMp
OgorICAgICAgICAqIHd0Zi9zcGkvY29jb2EvTlNMb2NhbGVTUEkuaDoKKyAgICAgICAgKiB3dGYv
dW5peC9MYW5ndWFnZVVuaXguY3BwOgorICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMpOgorICAgICAgICAqIHd0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwOgorICAgICAg
ICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICBBZGQgYFdU
Rjo6U2hvdWxkTWluaW1pemVMYW5ndWFnZXNgIHRoYXQgY29udHJvbHMgd2hldGhlciBgV1RGOjpt
aW5pbWl6ZWRQcmVmZXJyZWRMYW5ndWFnZXNgCisgICAgICAgIGlzIGNhbGxlZC4gU2luY2UgdGhl
IHJlc3VsdCBpcyBjYWNoZWQsIGNyZWF0ZSBzZXBhcmF0ZSBgVmVjdG9yPFN0cmluZz5gIGZvciBl
YWNoIGVudW0gdmFsdWUuCisKIDIwMjEtMDUtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBVc2UgQ2hlY2tlZENvbmRpdGlvbiBpbiBtb3JlIHBsYWNlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGFkM2ExNGUxZThhM2JhMmU1NDI3OWEwM2NhMDI1MDM2MmExMzkyMmEuLjU0MzRi
M2JhNDUzZjM5NTMxZTQ4NWNiYmIzYTI4YTE4OGUxN2ZiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNSBAQAorMjAyMS0wNS0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRp
YSBjb250cm9scyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZv
ciBvcmRlcmluZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qgb2Yg
bGFuZ3VhZ2UgcHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29ydC9v
cmRlciB0aGUgbGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBsZSwg
aWYgYSBgPHZpZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3Bhbmlz
aCwgYW5kIEZyZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQgRnJl
bmNoIChhbHRlcm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYgUmVn
aW9uIHZpZXcgb2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxkIG9y
ZGVyCisgICAgICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0aGVu
IFNwYW5pc2guCisKKyAgICAgICAgVGVzdHM6IExhbmd1YWdlLlNob3VsZE1pbmltaXplTGFuZ3Vh
Z2VzWWVzCisgICAgICAgICAgICAgICBMYW5ndWFnZS5TaG91bGRNaW5pbWl6ZUxhbmd1YWdlc05v
CisKKyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnRleHRUcmFja1Nl
bGVjdGlvblNjb3JlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVy
ZW5jZXM6OnByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZSBjb25zdCk6CisgICAgICAg
ICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6cHJlZmVycmVkTGFuZ3VhZ2VzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkRGlzcGxheVN0cmluZ0ZvclRyYWNrQmFzZSk6
CisgICAgICAgIChXZWJDb3JlOjp0ZXh0VHJhY2tDb21wYXJlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQzo6dXBkYXRlT3B0aW9u
cyk6CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICBXcmFwIGBk
ZWZhdWx0TGFuZ3VhZ2VgIGluIGEgbGFtYmRhIHNpbmNlIGl0IG5vdyBoYXMgYSBwYXJhbWV0ZXIu
CisKIDIwMjEtMDUtMjEgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAg
IEFsbCBOZXRmbGl4IHBsYXliYWNrIGZhaWxzIGFmdGVyIHIyNzc3NDAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54Y2NvbmZp
ZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54
Y2NvbmZpZwppbmRleCA2ZGY4ZjAwYjQyYzMwM2Q0ZjI2ODBmYzY5ZDAyMTM1MTI2YWY0YzA0Li5j
N2FjMTcwYzExYjZjMTgzMjUzNmI0OGYyODMyZDhjYmUyMjA0ZjQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvSmF2YVNjcmlwdENvcmUueGNjb25maWcK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0phdmFTY3JpcHRDb3Jl
LnhjY29uZmlnCkBAIC0yOSw3ICsyOSwxMCBAQCBNT0RVTEVNQVBfRklMRSA9ICQoU1JDUk9PVCkv
SmF2YVNjcmlwdENvcmUubW9kdWxlbWFwOwogLy8gUHJldmVudCBDKysgc3RhbmRhcmQgbGlicmFy
eSBvcGVyYXRvciBuZXcsIGRlbGV0ZSBhbmQgdGhlaXIgcmVsYXRlZCBleGNlcHRpb24gdHlwZXMg
ZnJvbSBiZWluZyBleHBvcnRlZCBhcyB3ZWFrIHN5bWJvbHMuCiBPVEhFUl9MREZMQUdTX0hJREVf
U1lNQk9MUyA9IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pUSVN0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
LF9fWlRTU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVFNTdDlleGNlcHRp
b24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pkbFB2U18gLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCxfX1pud21QdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5LU3QzX18xOGZ1bmN0aW9uSUZ2
dkVFY2xFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVD
MUVPUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMThmdW5jdGlvbklGdnZFRUMy
RU9TMl8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOS1N0M19fMThmdW5jdGlvbklGdlJOM0pT
QzE3Qnl0ZWNvZGVHZW5lcmF0b3JFUE5TMV8xMFJlZ2lzdGVySURFRUVjbEVTM19TNV8gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdl
bmVyYXRvckVQTlMxXzEwUmVnaXN0ZXJJREVFRUQxRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxf
X1pOU3QzX18xOGZ1bmN0aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvckVQTlMxXzEwUmVn
aXN0ZXJJREVFRUQyRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xOGZ1bmN0aW9u
SUZ2dkVFRDFFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2
RUVEMkV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVFZOU3QzX18xMTdiYWRfZnVuY3Rpb25f
Y2FsbEUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0y
NF9faXNfcGF0aGFibGVfY2hhcl9hcnJheUlQS2NTNF9jTGIxRUUxMV9fcmFuZ2VfZW5kRVM0XyAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTI0X19pc19w
YXRoYWJsZV9jaGFyX2FycmF5SVBLY1M0X2NMYjFFRTEzX19yYW5nZV9iZWdpbkVTNF8gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW04X1BhdGhDVlRJY0Ux
NF9fYXBwZW5kX3JhbmdlSVBLY0VFTlNfOWVuYWJsZV9pZklYc3IyN19faXNfY3BwMTdfZm9yd2Fy
ZF9pdGVyYXRvcklUX0VFNXZhbHVlRXZFNHR5cGVFUk5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNo
YXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTOF9TOF8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW04X1BhdGhDVlRJY0UxNV9fYXBwZW5kX3Nv
dXJjZUlQS2NFRXZSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFs
bG9jYXRvckljRUVFRVJLVF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMx
MGZpbGVzeXN0ZW04X1BhdGhDVlRJY0UxNF9fYXBwZW5kX3JhbmdlSVBLY0VFTlNfOWVuYWJsZV9p
ZklYc3IyMV9faXNfZm9yd2FyZF9pdGVyYXRvcklUX0VFNXZhbHVlRXZFNHR5cGVFUk5TXzEyYmFz
aWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTOF9TOF8g
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOS1N0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJl
Y3RvcnlfaXRlcmF0b3JkZUV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2Zz
MTBmaWxlc3lzdGVtMThkaXJlY3RvcnlfaXRlcmF0b3JwcEV2IC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJ
QTEwX2NQY2NMYjFFRTExX19yYW5nZV9lbmRFUEtjIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19a
TlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJQTEwX2NQ
Y2NMYjFFRTEzX19yYW5nZV9iZWdpbkVQS2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3Qz
X18xNF9fZnMxMGZpbGVzeXN0ZW00cGF0aGRWRVJLUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2ws
X19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtOF9QYXRoQ1ZUSWNFMTVfX2FwcGVuZF9zb3VyY2VJ
QTEwX2NFRXZSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9j
YXRvckljRUVFRVJLVF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZp
bGVzeXN0ZW0yNF9fdGhyb3dfZmlsZXN5c3RlbV9lcnJvcklKUlBLY1JLTlMxXzRwYXRoRVJLTlNf
MTBlcnJvcl9jb2RlRUVFRXZEcE9UXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0
X19mczEwZmlsZXN5c3RlbTE0X19pc19zZXBhcmF0b3JJY0VFTlNfOWVuYWJsZV9pZklYc3IxOF9f
Y2FuX2NvbnZlcnRfY2hhcklUX0VFNXZhbHVlRWJFNHR5cGVFUzRfIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJy
YXlJUEtjUzRfY0xiMUVFMTVfX2ZpcnN0X29yX251bGxFUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtNHBhdGgyMF9fc291cmNlX2lzX2Fic29sdXRl
SWNFRWJUXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3Rl
bTRwYXRoNmFwcGVuZElQS2NFRU5TXzllbmFibGVfaWZJWHNyMTNfX2lzX3BhdGhhYmxlSVRfRUU1
dmFsdWVFUlMyX0U0dHlwZUVSS1M3XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0
X19mczEwZmlsZXN5c3RlbTZ1OHBhdGhJUEtjRUVOU185ZW5hYmxlX2lmSVhzcjEzX19pc19wYXRo
YWJsZUlUX0VFNXZhbHVlRU5TMV80cGF0aEVFNHR5cGVFUktTNl8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCxfX1pOS1N0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJlY3RvcnlfaXRlcmF0b3JwdEV2
IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJl
Y3RvcnlfaXRlcmF0b3I5aW5jcmVtZW50RVJOU18xMGVycm9yX2NvZGVFOwogCi1PVEhFUl9MREZM
QUdTX0JBU0UgPSAkKE9USEVSX0xERkxBR1NfSElERV9TWU1CT0xTKSAtZm9yY2VfbG9hZCAiJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL2xpYldURi5h
IjsKKy8vIE5lZWRlZCBieSBgU291cmNlL1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbWAu
CitXS19JTlRFUk5BVElPTkFMX1NVUFBPUlRfTERGTEFHUyA9IC1mcmFtZXdvcmsgSW50ZXJuYXRp
b25hbFN1cHBvcnQ7CisKK09USEVSX0xERkxBR1NfQkFTRSA9ICQoT1RIRVJfTERGTEFHU19ISURF
X1NZTUJPTFMpIC1pZnJhbWV3b3JrICQoU0RLX0RJUikkKFNZU1RFTV9MSUJSQVJZX0RJUikvUHJp
dmF0ZUZyYW1ld29ya3MgLWZvcmNlX2xvYWQgIiQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9KYXZhU2NyaXB0Q29yZS9saWJXVEYuYSIgJChXS19JTlRFUk5BVElPTkFMX1NVUFBP
UlRfTERGTEFHUyk7CiBPVEhFUl9MREZMQUdTW3Nkaz1lbWJlZGRlZCpdID0gJChpbmhlcml0ZWQp
ICQoT1RIRVJfTERGTEFHU19CQVNFKTsKIE9USEVSX0xERkxBR1Nbc2RrPW1hY29zeCpdID0gJChp
bmhlcml0ZWQpICQoT1RIRVJfTERGTEFHU19CQVNFKSAtZnJhbWV3b3JrIENvcmVTZXJ2aWNlczsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL3BsYXlzdGF0aW9uL1Rl
c3RTaGVsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvcGxheXN0YXRpb24vVGVz
dFNoZWxsLmNwcAppbmRleCAyNzgyZmRhMDg5ODY1ZGNmMGUyZjdjMWRiMjkzMzE1MTI4OTRkZTQ5
Li4zMWZlYWY3ZWM1OGY3OTVmOGMzZGJiNzdkOWY5NTdjMzNmNjJmYzMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcApA
QCAtNjIsNyArNjIsNyBAQCBleHRlcm4gIkMiIHZvaWQgcHJlVGVzdCgpCiAgICAgSlNDOjpPcHRp
b25zOjpuYW1lXygpID0gb3JpZyMjbmFtZV87CiAgICAgRk9SX0VBQ0hfSlNDX09QVElPTihJTklU
X09QVElPTikKICN1bmRlZiBJTklUX09QVElPTgotICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExh
bmd1YWdlcyhwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSk7CisgICAgb3ZlcnJpZGVV
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHsgfSk7CiB9CiAKIGV4dGVybiAiQyIgaW50IHJ1blRlc3Qo
aW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xhbmd1
YWdlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcAppbmRleCBiZTYyNThkODU3ZTU5
ODhmOTY5ODM5MDIwMmJjYzkzYzNjMTc4MjBmLi43MDE2OTYyMDUyZmJhOGFlM2Q5OTFlMmEwYWYw
N2MyYjUxN2EzYmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwCkBAIC0zNyw2ICszNywxOCBAQAogCiBuYW1l
c3BhY2UgV1RGIHsKIAorc3RhdGljIENoZWNrZWRMb2NrIGNhY2hlZFBsYXRmb3JtUHJlZmVycmVk
TGFuZ3VhZ2VzTG9jazsKK3N0YXRpYyBWZWN0b3I8U3RyaW5nPiYgY2FjaGVkRnVsbFBsYXRmb3Jt
UHJlZmVycmVkTGFuZ3VhZ2VzKCkgV1RGX1JFUVVJUkVTX0xPQ0soY2FjaGVkUGxhdGZvcm1QcmVm
ZXJyZWRMYW5ndWFnZXNMb2NrKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8
U3RyaW5nPj4gbGFuZ3VhZ2VzOworICAgIHJldHVybiBsYW5ndWFnZXM7Cit9CitzdGF0aWMgVmVj
dG9yPFN0cmluZz4mIGNhY2hlZE1pbmltaXplZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkg
V1RGX1JFUVVJUkVTX0xPQ0soY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrKQor
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4gbGFuZ3VhZ2VzOwor
ICAgIHJldHVybiBsYW5ndWFnZXM7Cit9CisKIHN0YXRpYyBDaGVja2VkTG9jayBwcmVmZXJyZWRM
YW5ndWFnZXNPdmVycmlkZUxvY2s7CiBzdGF0aWMgVmVjdG9yPFN0cmluZz4mIHByZWZlcnJlZExh
bmd1YWdlc092ZXJyaWRlKCkgV1RGX1JFUVVJUkVTX0xPQ0socHJlZmVycmVkTGFuZ3VhZ2VzT3Zl
cnJpZGVMb2NrKQogewpAQCAtNjgsMTYgKzgwLDIxIEBAIHZvaWQgcmVtb3ZlTGFuZ3VhZ2VDaGFu
Z2VPYnNlcnZlcih2b2lkKiBjb250ZXh0KQogCiB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCkKIHsK
LSAgICBwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdlKCk7CisgICAgeworICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrIH07CisgICAgICAg
IGNhY2hlZEZ1bGxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpLmNsZWFyKCk7CisgICAgICAg
IGNhY2hlZE1pbmltaXplZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkuY2xlYXIoKTsKKyAg
ICB9CisKICAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogY29weVRvVmVjdG9yKG9ic2VydmVyTWFw
KCkpKSB7CiAgICAgICAgIGlmIChvYnNlcnZlck1hcCgpLmNvbnRhaW5zKG9ic2VydmVyLmtleSkp
CiAgICAgICAgICAgICBvYnNlcnZlci52YWx1ZShvYnNlcnZlci5rZXkpOwogICAgIH0KIH0KIAot
U3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgpCitTdHJpbmcgZGVmYXVsdExhbmd1YWdlKFNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzIHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewotICAgIFZlY3RvcjxT
dHJpbmc+IGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBWZWN0b3I8
U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzKTsKICAgICBpZiAobGFuZ3VhZ2VzLnNpemUoKSkKICAgICAgICAgcmV0dXJuIGxh
bmd1YWdlc1swXTsKIApAQCAtMTA4LDcgKzEyNSw3IEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBp
c29sYXRlZENvcHkoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmluZ3MpCiAgICAgcmV0dXJuIGNv
cHk7CiB9CiAKLVZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9y
PFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyBz
aG91bGRNaW5pbWl6ZUxhbmd1YWdlcykKIHsKICAgICB7CiAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUxvY2sgfTsKQEAgLTExNyw3ICsxMzQsMTEgQEAg
VmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpCiAgICAgICAgICAgICByZXR1
cm4gaXNvbGF0ZWRDb3B5KG92ZXJyaWRlKTsKICAgICB9CiAKLSAgICByZXR1cm4gcGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgTG9ja2VyIGxvY2tlciB7IGNhY2hlZFBsYXRm
b3JtUHJlZmVycmVkTGFuZ3VhZ2VzTG9jayB9OworICAgIGF1dG8mIGxhbmd1YWdlcyA9IHNob3Vs
ZE1pbmltaXplTGFuZ3VhZ2VzID09IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMgPyBjYWNo
ZWRNaW5pbWl6ZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpIDogY2FjaGVkRnVsbFBsYXRm
b3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgaWYgKGxhbmd1YWdlcy5pc0VtcHR5KCkpCisg
ICAgICAgIGxhbmd1YWdlcyA9IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhzaG91bGRN
aW5pbWl6ZUxhbmd1YWdlcyk7CisgICAgcmV0dXJuIGlzb2xhdGVkQ29weShsYW5ndWFnZXMpOwog
fQogCiBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmd1YWdlSWRlbnRpZmllcihjb25zdCBTdHJp
bmcmIGxhbmd1YWdlQ29kZSkKQEAgLTE4NCwxMCArMjA1LDI2IEBAIFN0cmluZyBkaXNwbGF5TmFt
ZUZvckxhbmd1YWdlTG9jYWxlKGNvbnN0IFN0cmluZyYgbG9jYWxlTmFtZSkKICAgICByZXR1cm4g
bG9jYWxlTmFtZTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkKLXZvaWQgcGxhdGZvcm1MYW5n
dWFnZURpZENoYW5nZSgpCitzdGF0aWMgQ2hlY2tlZExvY2sgaW5pdGlhbFBsYXRmb3JtUHJlZmVy
cmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nTG9jazsKK3N0YXRpYyBWZWN0b3I8U3RyaW5n
PiYgaW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nKCkg
V1RGX1JFUVVJUkVTX0xPQ0soaW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJp
ZGVGb3JUZXN0aW5nTG9jaykKIHsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0
cmluZz4+IG92ZXJyaWRlOworICAgIHJldHVybiBvdmVycmlkZTsKIH0KLSNlbmRpZgogCitWZWN0
b3I8U3RyaW5nPiBpbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVG
b3JUZXN0aW5nKCkKK3sKKyAgICBMb2NrZXIgbG9ja2VyIHsgaW5pdGlhbFBsYXRmb3JtUHJlZmVy
cmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nTG9jayB9OworICAgIHJldHVybiBpbml0aWFs
UGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKTsKIH0KKwordm9p
ZCBvdmVycmlkZUluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNGb3JUZXN0aW5n
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvdmVycmlkZSkKK3sKKyAgICB7CisgICAgICAgIExvY2tl
ciBsb2NrZXIgeyBpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRl
c3RpbmdMb2NrIH07CisgICAgICAgIGluaXRpYWxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc092
ZXJyaWRlRm9yVGVzdGluZygpID0gb3ZlcnJpZGU7CisgICAgfQorICAgIGxhbmd1YWdlRGlkQ2hh
bmdlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvTGFuZ3VhZ2UuaCBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmgKaW5kZXggZjA3NGQ3NTY4
ZDAwMmU5MzJhNTMyNmJkYjUyZDdmYjhjMDY1ODE4My4uMjkwZTNlN2M4YjQ0N2UyNGYzZTE4OGVi
ZTBlNTNiYjYyZGZmYjA3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oCkBAIC0zNSwxMyArMzUsMTMgQEAKIAogbmFt
ZXNwYWNlIFdURiB7CiAKLVdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgZGVmYXVsdExhbmd1YWdl
KCk7IC8vIFRocmVhZC1zYWZlLgotV1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsgLy8gVGhyZWFkLXNhZmUsIHJldHVybnMgQkNQIDQ3IGxh
bmd1YWdlIHRhZ3MuCitlbnVtIGNsYXNzIFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzIHsgTm8sIFll
cyB9OworCitXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIGRlZmF1bHRMYW5ndWFnZShTaG91bGRN
aW5pbWl6ZUxhbmd1YWdlcyA9IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMpOyAvLyBUaHJl
YWQtc2FmZS4KK1dURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID0gU2hvdWxkTWluaW1pemVMYW5ndWFn
ZXM6Olllcyk7IC8vIFRocmVhZC1zYWZlLCByZXR1cm5zIEJDUCA0NyBsYW5ndWFnZSB0YWdzLgog
V1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNP
dmVycmlkZSgpOwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgb3ZlcnJpZGVVc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgc2l6
ZV90IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChjb25zdCBTdHJpbmcmIGxhbmd1
YWdlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VMaXN0LCBib29sJiBleGFjdE1hdGNo
KTsKLVdURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoKTsKLVdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHBsYXRmb3JtTGFuZ3VhZ2VE
aWRDaGFuZ2UoKTsKIAogLy8gQ2FsbGVkIGZyb20gcGxhdGZvcm0gc3BlY2lmaWMgY29kZSB3aGVu
IHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlKHMpIGNoYW5nZS4KIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCk7CkBAIC01MiwyMCArNTIsMjYgQEAgV1RGX0VY
UE9SVF9QUklWQVRFIHZvaWQgYWRkTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0
LCBMYW5ndWFnZUNoYW5nZU8KIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHJlbW92ZUxhbmd1YWdl
Q2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5n
IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJik7CiAKK1ZlY3RvcjxT
dHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1
YWdlcyA9IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMpOworCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiBib29sIGNhbk1pbmltaXplTGFuZ3VhZ2VzKCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBsaXN0ZW5Gb3JMYW5ndWFnZUNoYW5nZU5vdGlmaWNhdGlvbnMoKTsKIFJldGFpblB0cjxDRkFy
cmF5UmVmPiBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzKENGQXJyYXlSZWYpOwotI2Vu
ZGlmCitSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGJhc2VMYW5ndWFnZUZyb21MYW5ndWFnZShDRlN0
cmluZ1JlZik7CiAKLX0KK1ZlY3RvcjxTdHJpbmc+IGluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKTsKK1dURl9FWFBPUlRfUFJJVkFURSB2b2lk
IG92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0ZvclRlc3Rpbmco
Y29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAorfSAv
LyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6U2hvdWxkTWluaW1pemVMYW5ndWFnZXM7CiB1
c2luZyBXVEY6OmRlZmF1bHRMYW5ndWFnZTsKIHVzaW5nIFdURjo6dXNlclByZWZlcnJlZExhbmd1
YWdlczsKIHVzaW5nIFdURjo6dXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlOwogdXNpbmcg
V1RGOjpvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7CiB1c2luZyBXVEY6OmluZGV4T2ZC
ZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdDsKLXVzaW5nIFdURjo6cGxhdGZvcm1Vc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzOwogdXNpbmcgV1RGOjphZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyOwogdXNp
bmcgV1RGOjpyZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyOwogdXNpbmcgV1RGOjpkaXNwbGF5
TmFtZUZvckxhbmd1YWdlTG9jYWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY2YvTGFu
Z3VhZ2VDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcAppbmRleCBlMDcz
MTE1NDI5MWJmZDA3YzRjYzE2ZGEwNDJhYWFkYjU5YzllM2IxLi40YzdiNjAyZWRhZDRiNTNlMzMw
MjQzZTg5OGQ2Yjc1YjAwMjEzMzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5n
dWFnZUNGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcApAQCAtMzAs
MTYgKzMwLDEzIEBACiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8dW5pY29kZS91bG9jLmg+
CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2su
aD4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3NwaS9jZi9DRkJ1bmRsZVNQSS5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdURiB7CiAKLXN0YXRpYyBDaGVja2VkTG9jayBwcmVmZXJyZWRMYW5ndWFnZXNM
b2NrOwotCiAjaWYgUExBVEZPUk0oTUFDKQogc3RhdGljIHZvaWQgbGFuZ3VhZ2VQcmVmZXJlbmNl
c0RpZENoYW5nZShDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCosIENGU3RyaW5nUmVmLCBj
b25zdCB2b2lkKiwgQ0ZEaWN0aW9uYXJ5UmVmKQogewpAQCAtNDcsMTYgKzQzLDYgQEAgc3RhdGlj
IHZvaWQgbGFuZ3VhZ2VQcmVmZXJlbmNlc0RpZENoYW5nZShDRk5vdGlmaWNhdGlvbkNlbnRlclJl
Ziwgdm9pZCosIENGU3RyaW4KIH0KICNlbmRpZgogCi1zdGF0aWMgVmVjdG9yPFN0cmluZz4mIHBy
ZWZlcnJlZExhbmd1YWdlcygpIFdURl9SRVFVSVJFU19MT0NLKHByZWZlcnJlZExhbmd1YWdlc0xv
Y2spCi17Ci0gICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4gbGFu
Z3VhZ2VzOwotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlS2V5OwotICAgIHN0ZDo6Y2Fs
bF9vbmNlKG9uY2VLZXksIFsmXSB7Ci0gICAgICAgIGxhbmd1YWdlcy5jb25zdHJ1Y3QoKTsKLSAg
ICB9KTsKLSAgICByZXR1cm4gbGFuZ3VhZ2VzOwotfQotCiBzdGF0aWMgU3RyaW5nIGh0dHBTdHls
ZUxhbmd1YWdlQ29kZShDRlN0cmluZ1JlZiBsYW5ndWFnZSkKIHsKICAgICBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IHByZWZlcnJlZExhbmd1YWdlQ29kZTsKQEAgLTg4LDE0ICs3NCw2IEBAIHN0YXRp
YyBTdHJpbmcgaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKENGU3RyaW5nUmVmIGxhbmd1YWdlKQogICAg
IHJldHVybiBtdXRhYmxlTGFuZ3VhZ2VDb2RlLmdldCgpOwogfQogCi12b2lkIHBsYXRmb3JtTGFu
Z3VhZ2VEaWRDaGFuZ2UoKQotewotICAgIHsKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IHByZWZl
cnJlZExhbmd1YWdlc0xvY2sgfTsKLSAgICAgICAgcHJlZmVycmVkTGFuZ3VhZ2VzKCkuY2xlYXIo
KTsKLSAgICB9Ci19Ci0KIHZvaWQgbGlzdGVuRm9yTGFuZ3VhZ2VDaGFuZ2VOb3RpZmljYXRpb25z
KCkKIHsKICNpZiBQTEFURk9STShNQUMpCkBAIC0xMDYsMzIgKzg0LDM4IEBAIHZvaWQgbGlzdGVu
Rm9yTGFuZ3VhZ2VDaGFuZ2VOb3RpZmljYXRpb25zKCkKICNlbmRpZgogfQogCi1WZWN0b3I8U3Ry
aW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9yPFN0cmluZz4gcGxh
dGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzIHNob3Vs
ZE1pbmltaXplTGFuZ3VhZ2VzKQogewotICAgIExvY2tlciBsb2NrZXIgeyBwcmVmZXJyZWRMYW5n
dWFnZXNMb2NrIH07Ci0gICAgVmVjdG9yPFN0cmluZz4mIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMg
PSBwcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gcGxhdGZv
cm1MYW5ndWFnZXM7CisgICAgaWYgKGF1dG8gb3ZlcnJpZGUgPSBpbml0aWFsUGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nKCk7ICFvdmVycmlkZS5pc0VtcHR5
KCkpIHsKKyAgICAgICAgYXV0byBhcnJheSA9IGFkb3B0Q0YoQ0ZBcnJheUNyZWF0ZU11dGFibGUo
MCwgb3ZlcnJpZGUuc2l6ZSgpLCAma0NGVHlwZUFycmF5Q2FsbEJhY2tzKSk7CisgICAgICAgIGZv
ciAoYXV0byYgaXRlbSA6IG92ZXJyaWRlKQorICAgICAgICAgICAgQ0ZBcnJheUFwcGVuZFZhbHVl
KGFycmF5LmdldCgpLCBpdGVtLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOworICAgICAgICBwbGF0
Zm9ybUxhbmd1YWdlcyA9IFdURk1vdmUoYXJyYXkpOworICAgIH0gZWxzZQorICAgICAgICBwbGF0
Zm9ybUxhbmd1YWdlcyA9IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5UHJlZmVycmVkTGFuZ3VhZ2VzKCkp
OwogCi0gICAgaWYgKHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAg
IFJldGFpblB0cjxDRkFycmF5UmVmPiBsYW5ndWFnZXMgPSBhZG9wdENGKENGTG9jYWxlQ29weVBy
ZWZlcnJlZExhbmd1YWdlcygpKTsKLSAgICAgICAgbGFuZ3VhZ2VzID0gbWluaW1pemVkTGFuZ3Vh
Z2VzRnJvbUxhbmd1YWdlcyhsYW5ndWFnZXMuZ2V0KCkpOwotICAgICAgICBDRkluZGV4IGxhbmd1
YWdlQ291bnQgPSBDRkFycmF5R2V0Q291bnQobGFuZ3VhZ2VzLmdldCgpKTsKLSAgICAgICAgaWYg
KCFsYW5ndWFnZUNvdW50KQotICAgICAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBl
bmQoImVuIik7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgZm9yIChDRkluZGV4IGkgPSAw
OyBpIDwgbGFuZ3VhZ2VDb3VudDsgaSsrKQotICAgICAgICAgICAgICAgIHVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMuYXBwZW5kKGh0dHBTdHlsZUxhbmd1YWdlQ29kZShzdGF0aWNfY2FzdDxDRlN0cmlu
Z1JlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChsYW5ndWFnZXMuZ2V0KCksIGkpKSkpOworICAg
IGlmIChzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9PSBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6
WWVzKQorICAgICAgICBwbGF0Zm9ybUxhbmd1YWdlcyA9IG1pbmltaXplZExhbmd1YWdlc0Zyb21M
YW5ndWFnZXMocGxhdGZvcm1MYW5ndWFnZXMuZ2V0KCkpOworCisgICAgQ0ZJbmRleCBwbGF0Zm9y
bUxhbmd1YWdlc0NvdW50ID0gQ0ZBcnJheUdldENvdW50KHBsYXRmb3JtTGFuZ3VhZ2VzLmdldCgp
KTsKKyAgICBpZiAoIXBsYXRmb3JtTGFuZ3VhZ2VzQ291bnQpCisgICAgICAgIHJldHVybiB7ICJl
biJfcyB9OworCisgICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzOworICAgIGZvciAoQ0ZJbmRl
eCBpID0gMDsgaSA8IHBsYXRmb3JtTGFuZ3VhZ2VzQ291bnQ7IGkrKykgeworICAgICAgICBhdXRv
IHBsYXRmb3JtTGFuZ3VhZ2UgPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZBcnJheUdldFZh
bHVlQXRJbmRleChwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSwgaSkpOyBBTFdBWVNfTE9HX1dJVEhf
U1RSRUFNKHN0cmVhbSA8PCAiTGFuZ3VhZ2UuU2hvdWxkTWluaW1pemVMYW5ndWFnZXMiIDw8IChz
aG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9PSBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzID8g
IlllcyIgOiAiTm8iKSA8PCAiIC0gcGxhdGZvcm1MYW5ndWFnZXNbIiA8PCBpIDw8ICJdID0gIiA8
PCBTdHJpbmcocGxhdGZvcm1MYW5ndWFnZSkgPDwgIiB2cyAiIDw8IGh0dHBTdHlsZUxhbmd1YWdl
Q29kZShwbGF0Zm9ybUxhbmdhdWdlKSk7CisgICAgICAgIGxhbmd1YWdlcy5hcHBlbmQoaHR0cFN0
eWxlTGFuZ3VhZ2VDb2RlKHBsYXRmb3JtTGFuZ3VhZ2UpKTsKKworICAgICAgICBpZiAoc2hvdWxk
TWluaW1pemVMYW5ndWFnZXMgPT0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKSB7CisgICAg
ICAgICAgICAvLyBDb252ZXJ0IGxhbmd1YWdlcyB3aXRoIGNvdW50cnkgY29kZXMgdG8gZXF1aXZh
bGVudCBsYW5ndWFnZXMgd2l0aG91dCBjb3VudHJ5IGNvZGVzIChpZiBwb3NzaWJsZSkuCisgICAg
ICAgICAgICAvLyBlLmcuICJlbi1VUyIgYmVjb21lcyAiZW4iLCB3aGljaCBpcyB1c2VmdWwgd2hl
biB0cnlpbmcgdG8gbWF0Y2ggSFRNTCBgbGFuZz0iZW4iYC4KKyAgICAgICAgICAgIGF1dG8gYmFz
ZUxhbmd1YWdlID0gYmFzZUxhbmd1YWdlRnJvbUxhbmd1YWdlKHBsYXRmb3JtTGFuZ3VhZ2UpOyBB
TFdBWVNfTE9HX1dJVEhfU1RSRUFNKHN0cmVhbSA8PCAiTGFuZ3VhZ2UuU2hvdWxkTWluaW1pemVM
YW5ndWFnZXNObyAtIGJhc2VMYW5ndWFnZXNbIiA8PCBpIDw8ICJdID0gIiA8PCBTdHJpbmcoYmFz
ZUxhbmd1YWdlLmdldCgpKSA8PCAiIHZzICIgPDwgaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKGJhc2VM
YW5ndWFnZS5nZXQoKSkpOworICAgICAgICAgICAgaWYgKGJhc2VMYW5ndWFnZSAmJiBiYXNlTGFu
Z3VhZ2UgIT0gcGxhdGZvcm1MYW5ndWFnZSAmJiBDRlN0cmluZ0NvbXBhcmUoYmFzZUxhbmd1YWdl
LmdldCgpLCBwbGF0Zm9ybUxhbmd1YWdlLCAwKSAhPSBrQ0ZDb21wYXJlRXF1YWxUbykKKyAgICAg
ICAgICAgICAgICBsYW5ndWFnZXMuYXBwZW5kKGh0dHBTdHlsZUxhbmd1YWdlQ29kZShiYXNlTGFu
Z3VhZ2UuZ2V0KCkpKTsKICAgICAgICAgfQogICAgIH0KLQotICAgIFZlY3RvcjxTdHJpbmc+IHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5OwotICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodXNlclByZWZlcnJlZExhbmd1YWdlcy5zaXplKCkpOwot
Ci0gICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpCi0gICAg
ICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5LnVuY2hlY2tlZEFwcGVuZChsYW5ndWFnZS5p
c29sYXRlZENvcHkoKSk7Ci0KLSAgICByZXR1cm4gdXNlclByZWZlcnJlZExhbmd1YWdlc0NvcHk7
Ci0KLSAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKKyAgICByZXR1cm4gbGFuZ3VhZ2VzOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NvY29h
L0xhbmd1YWdlQ29jb2EubW0gYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1t
CmluZGV4IDViYWI3YzdiMjY3YzBhZGQyNTViMmZlNjc2MmVlNjQwZTA1ODg5OTMuLjQxZTAzMzI5
MWEzMjE3YWE4NDMxZDA2NmZjYjMwOTYyOTBhNTY2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0KKysrIGIvU291cmNlL1dURi93dGYvY29jb2EvTGFu
Z3VhZ2VDb2NvYS5tbQpAQCAtMzgsOCArMzgsNyBAQCBib29sIGNhbk1pbmltaXplTGFuZ3VhZ2Vz
KCkKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIGlmIChhcHBsaWNhdGlvblNES1ZlcnNpb24o
KSA8IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTVfNCkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKElPUykKKyNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgICAgIGlmIChhcHBsaWNhdGlvblNES1ZlcnNpb24oKSA8IERZTERfSU9TX1ZFUlNJT05f
MTNfNCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpAQCAtNTAsNiArNDksOCBA
QCBib29sIGNhbk1pbmltaXplTGFuZ3VhZ2VzKCkKIAogUmV0YWluUHRyPENGQXJyYXlSZWY+IG1p
bmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFnZXMoQ0ZBcnJheVJlZiBsYW5ndWFnZXMpCiB7Cisg
ICAgLy8gVGhpcyByZXF1aXJlcyBsaW5raW5nIGBJbnRlcm5hdGlvbmFsU3VwcG9ydGAuCisKICAg
ICBpZiAoIWNhbk1pbmltaXplTGFuZ3VhZ2VzKCkpCiAgICAgICAgIHJldHVybiBsYW5ndWFnZXM7
CiAKQEAgLTU4LDQgKzU5LDI5IEBAIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfQkVHSU4K
IEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiB9CiAKK3N0YXRpYyBib29sIGNhbkdl
dEJhc2VMYW5ndWFnZSgpCit7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgcmVzdWx0ID0gW10oKSAt
PiBib29sIHsKKyNpZiBQTEFURk9STShNQUMpCisgICAgICAgIGlmIChhcHBsaWNhdGlvblNES1Zl
cnNpb24oKSA8IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBpZiAoYXBwbGljYXRp
b25TREtWZXJzaW9uKCkgPCBEWUxEX0lPU19WRVJTSU9OXzExXzApCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIFtOU0xvY2FsZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKGJhc2VMYW5ndWFnZUZyb21MYW5ndWFnZTopXTsKKyAgICB9KCk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KKworUmV0YWluUHRyPENGU3RyaW5nUmVmPiBiYXNlTGFuZ3Vh
Z2VGcm9tTGFuZ3VhZ2UoQ0ZTdHJpbmdSZWYgbGFuZ3VhZ2UpCit7CisgICAgLy8gVGhpcyByZXF1
aXJlcyBsaW5raW5nIGBJbnRlcm5hdGlvbmFsU3VwcG9ydGAuCisKKyAgICBpZiAoIWNhbkdldEJh
c2VMYW5ndWFnZSgpKQorICAgICAgICByZXR1cm4gbGFuZ3VhZ2U7CisKKyAgICByZXR1cm4gKF9f
YnJpZGdlIENGU3RyaW5nUmVmKVtOU0xvY2FsZSBiYXNlTGFuZ3VhZ2VGcm9tTGFuZ3VhZ2U6KF9f
YnJpZGdlIE5TU3RyaW5nICopbGFuZ3VhZ2VdOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0aW9uL0xhbmd1YWdlUGxheVN0YXRpb24u
Y3BwIGIvU291cmNlL1dURi93dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5jcHAK
aW5kZXggZDQ1MzdhNjk0MGI1ZTAyMmJmNWU1Y2RmNzFhODYzZDMzMDlkZjYxYy4uY2FmMTU0OWY4
MDAyYzEzN2UyZjFhMDYyMjgxODE1NGY1NjI1NGU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5jcHAKKysrIGIvU291cmNlL1dURi93
dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5jcHAKQEAgLTMwLDcgKzMwLDcgQEAK
IAogbmFtZXNwYWNlIFdURiB7CiAKLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJl
ZExhbmd1YWdlcygpCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMpCiB7CiAgICAgVmVjdG9yPFN0cmluZz4gbGFuZ3Vh
Z2VzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2EvTlNMb2NhbGVTUEku
aCBiL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9OU0xvY2FsZVNQSS5oCmluZGV4IDVjZWYxNjQw
MzE2YjQ3M2E3MWJlN2JiYTYxYTg4Mjc0ZjI4MTA2MjEuLmNhOTgyMDFjNjE2M2EzNzllZTFkOGYy
Y2E0ZjU1ZDM2ZmZhYmYwYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9O
U0xvY2FsZVNQSS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9OU0xvY2FsZVNQSS5o
CkBAIC0zMiw2ICszMiw3IEBACiAjZW5kaWYKIAogQGludGVyZmFjZSBOU0xvY2FsZSAoKQorKyAo
bm9ubnVsbCBOU1N0cmluZyAqKWJhc2VMYW5ndWFnZUZyb21MYW5ndWFnZToobm9ubnVsbCBOU1N0
cmluZyAqKWxhbmd1YWdlSUQ7CiArIChub25udWxsIE5TQXJyYXk8TlNTdHJpbmcgKj4gKiltaW5p
bWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzOihub25udWxsIE5TQXJyYXk8TlNTdHJpbmcgKj4g
KilsYW5ndWFnZXM7CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcAppbmRl
eCAzMWM3NTc0NzJlZWFiNjQwNzI2ZTk0YzVjNTc1MDcxOGZhMzkzOGQxLi5hZjk0YmIwNmNjMzhk
ZDJhODU5NWJmYmI3NzE2OTBmOTJkYjQ4YWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVu
aXguY3BwCkBAIC00Miw3ICs0Miw3IEBAIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgp
CiAgICAgcmV0dXJuIG5vcm1hbGl6ZWREZWZhdWx0OwogfQogCi1WZWN0b3I8U3RyaW5nPiBwbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewogICAgIHJldHVy
biB7IHBsYXRmb3JtTGFuZ3VhZ2UoKSB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
d2luL0xhbmd1YWdlV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAK
aW5kZXggNmI1MmM5YzIwZDE1Y2JhN2UzOWQ1NDIwMTFiNDM4YTM4MzU4YzJiMi4uYmY5NmIwYTU1
Yzg4OTkzMWM0YzJkNTMzMTdlOGM1ZTAxN2UyYWExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvd2luL0xhbmd1YWdlV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VX
aW4uY3BwCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgp
CiAgICAgcmV0dXJuIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlOwogfQogCi1WZWN0b3I8U3RyaW5n
PiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9yPFN0cmluZz4gcGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewogICAg
IHJldHVybiB7IHBsYXRmb3JtTGFuZ3VhZ2UoKSB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggYWIwM2JkYjQzYzZmM2EzZjE1YmE5
NWU4ZDJiYjMxZTdiY2ExZTUzOS4uODExNDE5MGI0M2VjNTk2MmQxYmZlNzJjYjhiOTExMjBmY2Q3
MjVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
Y3BwCkBAIC04Myw3ICs4Myw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTRE9N
V2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsKICAgICAmcmVwb3J0VW5j
YXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKICAgICAmY3VycmVudFNjcmlwdEV4ZWN1dGlvbk93
bmVyLAogICAgICZzY3JpcHRFeGVjdXRpb25TdGF0dXMsCi0gICAgJmRlZmF1bHRMYW5ndWFnZSwK
KyAgICBbXSB7IHJldHVybiBkZWZhdWx0TGFuZ3VhZ2UoKTsgfSwKICNpZiBFTkFCTEUoV0VCQVNT
RU1CTFkpCiAgICAgJmNvbXBpbGVTdHJlYW1pbmcsCiAgICAgJmluc3RhbnRpYXRlU3RyZWFtaW5n
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxT
Y29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxT
Y29wZUJhc2UuY3BwCmluZGV4IDQ4Mzk5NzA4ZWUwMzRiYzU4YWMzODJmM2NhYzk3ZjkxNjc3ODJm
YjguLjkyMTI1ZTU2ZDY5OTVkNDYwMGRjZDhmY2I3YjQyM2JhNThiYjQ4M2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5j
cHAKQEAgLTYxLDcgKzYxLDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3Jr
ZXJHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUKICAgICAmcmVwb3J0
VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKICAgICAmY3VycmVudFNjcmlwdEV4ZWN1dGlv
bk93bmVyLAogICAgICZzY3JpcHRFeGVjdXRpb25TdGF0dXMsCi0gICAgJmRlZmF1bHRMYW5ndWFn
ZSwKKyAgICBbXSB7IHJldHVybiBkZWZhdWx0TGFuZ3VhZ2UoKTsgfSwKICNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCiAgICAgJmNvbXBpbGVTdHJlYW1pbmcsCiAgICAgJmluc3RhbnRpYXRlU3RyZWFt
aW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xv
YmFsU2NvcGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEds
b2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNDIxZTc0NGYzMzA3YWJkOTliMWU1YzJkNWQ3ZjEzZTMz
YjM4ZTkwMS4uNDIwMjcyYTFkMGI3NWNhNjk1YTY2ZjEyNDZlNDc0NTk2ZDVhNGU1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29w
ZUJhc2UuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxl
IEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsCiAgICAg
JnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3AsCiAgICAgJmN1cnJlbnRTY3JpcHRF
eGVjdXRpb25Pd25lciwKICAgICAmc2NyaXB0RXhlY3V0aW9uU3RhdHVzLAotICAgICZkZWZhdWx0
TGFuZ3VhZ2UsCisgICAgW10geyByZXR1cm4gZGVmYXVsdExhbmd1YWdlKCk7IH0sCiAjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZKQogICAgICZjb21waWxlU3RyZWFtaW5nLAogICAgICZpbnN0YW50aWF0
ZVN0cmVhbWluZywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5j
ZXMuY3BwCmluZGV4IGQzZTQ1ZThiYjRjN2QyMDBjZDNhNGEyMTI4MjBkZTRlZGZjZDFiZjguLjU1
ZmEwOTY0YzdmZDk4ODYzNWVmMzMyNWNiZGFiZjBlMjEzNDQ4NGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcApAQCAtMTcwLDcgKzE3MCw3IEBA
IHZvaWQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Y2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgp
CiAKIFZlY3RvcjxTdHJpbmc+IENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByZWZlcnJlZExhbmd1
YWdlcygpIGNvbnN0CiB7Ci0gICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzID0gdXNlclByZWZl
cnJlZExhbmd1YWdlcygpOworICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlcyA9IHVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKTsKICAgICBpZiAobV90
ZXN0aW5nTW9kZSAmJiAhbV91c2VyUHJlZmVycmVkTGFuZ3VhZ2UuaXNFbXB0eSgpKQogICAgICAg
ICBsYW5ndWFnZXMuaW5zZXJ0KDAsIG1fdXNlclByZWZlcnJlZExhbmd1YWdlKTsKIApAQCAtMzQx
LDcgKzM0MSw3IEBAIGludCBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjp0ZXh0VHJhY2tTZWxlY3Rp
b25TY29yZShUZXh0VHJhY2sqIHRyYWNrLCBIVE1MTWVkaWFFCiAgICAgICAgICAgICBpZiAob2Zm
c2V0KQogICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgbGFuZ3VhZ2VMaXN0LmFwcGVuZChkZWZhdWx0TGFuZ3VhZ2UoKSk7CisgICAgICAgICAg
ICBsYW5ndWFnZUxpc3QuYXBwZW5kKGRlZmF1bHRMYW5ndWFnZShTaG91bGRNaW5pbWl6ZUxhbmd1
YWdlczo6Tm8pKTsKIAogICAgICAgICAgICAgLy8gT25seSBlbmFibGUgYSB0ZXh0IHRyYWNrIGlm
IHRoZSBjdXJyZW50IGF1ZGlvIHRyYWNrIGlzIE5PVCBpbiB0aGUgdXNlcidzIHByZWZlcnJlZCBs
YW5ndWFnZSAuLi4KICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQgPSBpbmRleE9mQmVzdE1hdGNo
aW5nTGFuZ3VhZ2VJbkxpc3QoYXVkaW9UcmFja0xhbmd1YWdlLCBsYW5ndWFnZUxpc3QsIGV4YWN0
TWF0Y2gpOwpAQCAtNDE4LDcgKzQxOCw3IEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2Vz
OjpwcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGUoKSBjb25zdAogewogICAgIGlmICgh
bV9wcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGUuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gbV9wcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGU7Ci0gICAgcmV0dXJuIGRl
ZmF1bHRMYW5ndWFnZSgpOworICAgIHJldHVybiBkZWZhdWx0TGFuZ3VhZ2UoU2hvdWxkTWluaW1p
emVMYW5ndWFnZXM6Ok5vKTsKIH0KICAgICAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKaW5kZXggY2YyZTFiZWEyNWIw
ZjA3OTk4NjM5MjA1OTQ1ZGYwZWVmOTJkM2M0Mi4uOWQ3MmVkNjVlMmYzYTc4NTgwN2EzZmYyNWJi
ZmRmM2MwNTI2MjA0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNl
clByZWZlcmVuY2VzTWVkaWFBRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9u
VXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKQEAgLTQ3MSwzNiArNDcxLDIwIEBAIHZvaWQgQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OnNldFByZWZlcnJlZExhbmd1YWdlKGNvbnN0IFN0
cmluZyYgbGFuZ3VhZ2UpCiAKIFZlY3RvcjxTdHJpbmc+IENhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
ZWRpYUFGOjpwcmVmZXJyZWRMYW5ndWFnZXMoKSBjb25zdAogewotICAgIGlmICh0ZXN0aW5nTW9k
ZSgpIHx8ICFNZWRpYUFjY2Vzc2liaWxpdHlMaWJyYXJ5KCkpCi0gICAgICAgIHJldHVybiBDYXB0
aW9uVXNlclByZWZlcmVuY2VzOjpwcmVmZXJyZWRMYW5ndWFnZXMoKTsKLQotICAgIFZlY3RvcjxT
dHJpbmc+IHBsYXRmb3JtTGFuZ3VhZ2VzID0gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
KCk7Ci0gICAgVmVjdG9yPFN0cmluZz4gb3ZlcnJpZGUgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
T3ZlcnJpZGUoKTsKLSAgICBpZiAoIW92ZXJyaWRlLmlzRW1wdHkoKSkgewotICAgICAgICBpZiAo
cGxhdGZvcm1MYW5ndWFnZXMuc2l6ZSgpICE9IG92ZXJyaWRlLnNpemUoKSkKLSAgICAgICAgICAg
IHJldHVybiBvdmVycmlkZTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvdmVycmlk
ZS5zaXplKCk7IGkrKykgewotICAgICAgICAgICAgaWYgKG92ZXJyaWRlW2ldICE9IHBsYXRmb3Jt
TGFuZ3VhZ2VzW2ldKQotICAgICAgICAgICAgICAgIHJldHVybiBvdmVycmlkZTsKKyAgICBhdXRv
IHByZWZlcnJlZExhbmd1YWdlcyA9IENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByZWZlcnJlZExh
bmd1YWdlcygpOworICAgIGlmICghdGVzdGluZ01vZGUoKSAmJiBNZWRpYUFjY2Vzc2liaWxpdHlM
aWJyYXJ5KCkpIHsKKyAgICAgICAgYXV0byBjYXB0aW9uTGFuZ3VhZ2VzID0gYWRvcHRDRihNQUNh
cHRpb25BcHBlYXJhbmNlQ29weVNlbGVjdGVkTGFuZ3VhZ2VzKGtNQUNhcHRpb25BcHBlYXJhbmNl
RG9tYWluVXNlcikpOworICAgICAgICBDRkluZGV4IGNhcHRpb25MYW5ndWFnZXNDb3VudCA9IGNh
cHRpb25MYW5ndWFnZXMgPyBDRkFycmF5R2V0Q291bnQoY2FwdGlvbkxhbmd1YWdlcy5nZXQoKSkg
OiAwOworICAgICAgICBpZiAoY2FwdGlvbkxhbmd1YWdlc0NvdW50KSB7CisgICAgICAgICAgICBW
ZWN0b3I8U3RyaW5nPiB0ZW1wOworICAgICAgICAgICAgdGVtcC5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KGNhcHRpb25MYW5ndWFnZXNDb3VudCArIHByZWZlcnJlZExhbmd1YWdlcy5zaXplKCkpOwor
ICAgICAgICAgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgY2FwdGlvbkxhbmd1YWdlc0NvdW50
OyBpKyspCisgICAgICAgICAgICAgICAgdGVtcC51bmNoZWNrZWRBcHBlbmQoc3RhdGljX2Nhc3Q8
Q0ZTdHJpbmdSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoY2FwdGlvbkxhbmd1YWdlcy5nZXQo
KSwgaSkpKTsKKyAgICAgICAgICAgIHRlbXAuYXBwZW5kVmVjdG9yKFdURk1vdmUocHJlZmVycmVk
TGFuZ3VhZ2VzKSk7CisgICAgICAgICAgICBwcmVmZXJyZWRMYW5ndWFnZXMgPSBXVEZNb3ZlKHRl
bXApOwogICAgICAgICB9CiAgICAgfQotCi0gICAgQ0ZJbmRleCBsYW5ndWFnZUNvdW50ID0gMDsK
LSAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gbGFuZ3VhZ2VzID0gYWRvcHRDRihNQUNhcHRpb25B
cHBlYXJhbmNlQ29weVNlbGVjdGVkTGFuZ3VhZ2VzKGtNQUNhcHRpb25BcHBlYXJhbmNlRG9tYWlu
VXNlcikpOwotICAgIGlmIChsYW5ndWFnZXMpCi0gICAgICAgIGxhbmd1YWdlQ291bnQgPSBDRkFy
cmF5R2V0Q291bnQobGFuZ3VhZ2VzLmdldCgpKTsKLQotICAgIGlmICghbGFuZ3VhZ2VDb3VudCkK
LSAgICAgICAgcmV0dXJuIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByZWZlcnJlZExhbmd1YWdl
cygpOwotCi0gICAgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlczsKLSAgICB1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLnJlc2VydmVDYXBhY2l0eShsYW5ndWFnZUNvdW50ICsgcGxh
dGZvcm1MYW5ndWFnZXMuc2l6ZSgpKTsKLSAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBsYW5n
dWFnZUNvdW50OyBpKyspCi0gICAgICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5kKHN0
YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGxhbmd1YWdlcy5n
ZXQoKSwgaSkpKTsKLQotICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5kVmVjdG9yKHBs
YXRmb3JtTGFuZ3VhZ2VzKTsKLQotICAgIHJldHVybiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwor
ICAgIHJldHVybiBwcmVmZXJyZWRMYW5ndWFnZXM7CiB9CiAKIHZvaWQgQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlc01lZGlhQUY6OnNldFByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWMoY29uc3QgU3Ry
aW5nJiBjaGFyYWN0ZXJpc3RpYykKQEAgLTU3OSwxMyArNTYzLDE1IEBAIHN0YXRpYyB2b2lkIGJ1
aWxkRGlzcGxheVN0cmluZ0ZvclRyYWNrQmFzZShTdHJpbmdCdWlsZGVyJiBkaXNwbGF5TmFtZSwg
Y29uc3QgVHJhCiAgICAgU3RyaW5nIGxhYmVsID0gdHJhY2subGFiZWwoKTsKICAgICBTdHJpbmcg
dHJhY2tMYW5ndWFnZUlkZW50aWZpZXIgPSB0cmFjay52YWxpZEJDUDQ3TGFuZ3VhZ2UoKTsKIAot
ICAgIFJldGFpblB0cjxDRkxvY2FsZVJlZj4gY3VycmVudExvY2FsZSA9IGFkb3B0Q0YoQ0ZMb2Nh
bGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGVmYXVsdExhbmd1YWdlKCkuY3JlYXRlQ0ZT
dHJpbmcoKS5nZXQoKSkpOworICAgIGF1dG8gcHJlZmVycmVkTGFuZ3VhZ2VzID0gdXNlclByZWZl
cnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6Tm8pOworICAgIGF1dG8gZGVm
YXVsdExhbmd1YWdlID0gIXByZWZlcnJlZExhbmd1YWdlcy5pc0VtcHR5KCkgPyBwcmVmZXJyZWRM
YW5ndWFnZXNbMF0gOiBlbXB0eVN0cmluZygpOyAvLyBUaGlzIG1hdGNoZXMgYFdURjo6ZGVmYXVs
dExhbmd1YWdlYC4KKyAgICBSZXRhaW5QdHI8Q0ZMb2NhbGVSZWY+IGN1cnJlbnRMb2NhbGUgPSBh
ZG9wdENGKENGTG9jYWxlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRlZmF1bHRMYW5ndWFn
ZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBs
b2NhbGVJZGVudGlmaWVyID0gYWRvcHRDRihDRkxvY2FsZUNyZWF0ZUNhbm9uaWNhbExvY2FsZUlk
ZW50aWZpZXJGcm9tU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIHRyYWNrTGFuZ3VhZ2VJZGVu
dGlmaWVyLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdS
ZWY+IGxhbmd1YWdlQ0YgPSBhZG9wdENGKENGTG9jYWxlQ29weURpc3BsYXlOYW1lRm9yUHJvcGVy
dHlWYWx1ZShjdXJyZW50TG9jYWxlLmdldCgpLCBrQ0ZMb2NhbGVMYW5ndWFnZUNvZGUsIGxvY2Fs
ZUlkZW50aWZpZXIuZ2V0KCkpKTsKICAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBsYW5ndWFnZUNGLmdl
dCgpOwogCiAgICAgaWYgKCFsYWJlbC5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKGxhbmd1YWdl
LmlzRW1wdHkoKSB8fCBsYWJlbC5jb250YWlucyhsYW5ndWFnZSkpCisgICAgICAgIGlmIChsYW5n
dWFnZS5pc0VtcHR5KCkgfHwgbGFiZWwuY29udGFpbnMobGFuZ3VhZ2UpIHx8IHByZWZlcnJlZExh
bmd1YWdlcy5jb250YWlucyh0cmFja0xhbmd1YWdlSWRlbnRpZmllcikpCiAgICAgICAgICAgICBk
aXNwbGF5TmFtZS5hcHBlbmQobGFiZWwpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIFJl
dGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGxvY2FsZURpY3QgPSBhZG9wdENGKENGTG9jYWxlQ3Jl
YXRlQ29tcG9uZW50c0Zyb21Mb2NhbGVJZGVudGlmaWVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGxv
Y2FsZUlkZW50aWZpZXIuZ2V0KCkpKTsKQEAgLTcwOSwxNSArNjk1LDE2IEBAIFN0cmluZyBDYXB0
aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6ZGlzcGxheU5hbWVGb3JUcmFjayhUZXh0VHJhY2sq
IHRyYWNrKSBjb25zCiAKIHN0YXRpYyBib29sIHRleHRUcmFja0NvbXBhcmUoY29uc3QgUmVmUHRy
PFRleHRUcmFjaz4mIGEsIGNvbnN0IFJlZlB0cjxUZXh0VHJhY2s+JiBiKQogewotICAgIFN0cmlu
ZyBwcmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lID0gZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxv
Y2FsZShsYW5ndWFnZUlkZW50aWZpZXIoZGVmYXVsdExhbmd1YWdlKCkpKTsKICAgICBTdHJpbmcg
YUxhbmd1YWdlRGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlKGxhbmd1
YWdlSWRlbnRpZmllcihhLT52YWxpZEJDUDQ3TGFuZ3VhZ2UoKSkpOwogICAgIFN0cmluZyBiTGFu
Z3VhZ2VEaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUobGFuZ3VhZ2VJ
ZGVudGlmaWVyKGItPnZhbGlkQkNQNDdMYW5ndWFnZSgpKSk7CiAKLSAgICAvLyBUcmFja3MgaW4g
dGhlIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2UgYXJlIGFsd2F5cyBhdCB0aGUgdG9wIG9mIHRo
ZSBtZW51LgotICAgIGJvb2wgYUlzUHJlZmVycmVkTGFuZ3VhZ2UgPSBhTGFuZ3VhZ2VEaXNwbGF5
TmFtZSA9PSBwcmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lOwotICAgIGJvb2wgYklzUHJlZmVy
cmVkTGFuZ3VhZ2UgPSBiTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9PSBwcmVmZXJyZWRMYW5ndWFnZURp
c3BsYXlOYW1lOwotICAgIGlmIChhSXNQcmVmZXJyZWRMYW5ndWFnZSAhPSBiSXNQcmVmZXJyZWRM
YW5ndWFnZSkKLSAgICAgICAgcmV0dXJuIGFJc1ByZWZlcnJlZExhbmd1YWdlOworICAgIGZvciAo
YXV0byYgcHJlZmVycmVkTGFuZ3VhZ2UgOiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzOjpObykpIHsKKyAgICAgICAgU3RyaW5nIHByZWZlcnJlZExhbmd1YWdl
RGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlKGxhbmd1YWdlSWRlbnRp
ZmllcihwcmVmZXJyZWRMYW5ndWFnZSkpOworICAgICAgICBib29sIGFJc1ByZWZlcnJlZExhbmd1
YWdlID0gYUxhbmd1YWdlRGlzcGxheU5hbWUgPT0gcHJlZmVycmVkTGFuZ3VhZ2VEaXNwbGF5TmFt
ZTsKKyAgICAgICAgYm9vbCBiSXNQcmVmZXJyZWRMYW5ndWFnZSA9IGJMYW5ndWFnZURpc3BsYXlO
YW1lID09IHByZWZlcnJlZExhbmd1YWdlRGlzcGxheU5hbWU7CisgICAgICAgIGlmIChhSXNQcmVm
ZXJyZWRMYW5ndWFnZSAhPSBiSXNQcmVmZXJyZWRMYW5ndWFnZSkKKyAgICAgICAgICAgIHJldHVy
biBhSXNQcmVmZXJyZWRMYW5ndWFnZTsKKyAgICB9CiAKICAgICBDb2xsYXRvciBjb2xsYXRvcjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCmlu
ZGV4IDliZDU2NDg0MGMyODJhZjU3YTEwZDRlNGRjYmU4NzU3MzRiYzgyNmEuLmI0MTliNjBkOThl
MzY2ZGI0N2RjNzA1N2ViZDI1NzY4ZGMzZDY5MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KQEAgLTEzNCw3ICsxMzQsNyBAQCB2b2lkIE1l
ZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDOjp1cGRhdGVPcHRpb25zKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBjaGFyYWN0ZXJpcwogICAgICAgICByZXR1cm47CiAKICAgICBOU0FycmF5KiBmaWx0ZXJl
ZE9wdGlvbnMgPSBbUEFMOjpnZXRBVk1lZGlhU2VsZWN0aW9uR3JvdXBDbGFzcygpIG1lZGlhU2Vs
ZWN0aW9uT3B0aW9uc0Zyb21BcnJheTpbbV9tZWRpYVNlbGVjdGlvbkdyb3VwIG9wdGlvbnNdCi0g
ICAgICAgIGZpbHRlcmVkQW5kU29ydGVkQWNjb3JkaW5nVG9QcmVmZXJyZWRMYW5ndWFnZXM6Y3Jl
YXRlTlNBcnJheSh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkpLmdldCgpXTsKKyAgICAgICAgZmls
dGVyZWRBbmRTb3J0ZWRBY2NvcmRpbmdUb1ByZWZlcnJlZExhbmd1YWdlczpjcmVhdGVOU0FycmF5
KHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKSkuZ2V0
KCldOwogCiAgICAgaWYgKCFbZmlsdGVyZWRPcHRpb25zIGNvdW50XSAmJiBjaGFyYWN0ZXJpc3Rp
Y3MuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjMwOTRiYWZkZWM3Mjc0N2UzYTgwZTYxMzg5MWVi
ZmVkMmNlZTQzOC4uYWExODFmNDY2ZmVkYmZmMzFhNTA0YjdkMzlkN2RhZTBkMDY1ODlkMyAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDIxLTA1LTIyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlh
IGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxsIGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9y
IG9yZGVyaW5nIHRyYWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9jZi9MYW5ndWFnZS5jcHA6IEFkZGVk
LgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVC5MYW5ndWFnZS5TaG91bGRNaW5pbWl6ZUxh
bmd1YWdlc1llcyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNULkxhbmd1YWdlLlNob3Vs
ZE1pbmltaXplTGFuZ3VhZ2VzTm8pOgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25maWd1
cmF0aW9ucy9UZXN0V1RGLnhjY29uZmlnOgorICAgICAgICBMaW5rIGBJbnRlcm5hdGlvbmFsU3Vw
cG9ydGAgYXMgdGhhdCdzIHdoZXJlIHRoZSBgTlNMb2NhbGVgIGV4dGVuc2lvbnMgYXJlIGltcGxl
bWVudGVkLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMDUtMjEgIEFha2FzaCBKYWluICA8YWFrYXNoX2ph
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJ1biBsYXlvdXQgdGVzdHMgaW4gc3RyZXNzIG1vZGUg
Zm9yIDEwIGl0ZXJhdGlvbnMgb24gcmVndWxhciBFV1MgbGF5b3V0LXRlc3QgcXVldWVzCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXVEYueGNjb25m
aWcgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXVEYueGNjb25maWcK
aW5kZXggZTZhMjk3N2ZiNDUyZDhhMjYyZjM3NDRiNDVjZmE1YTVmOTMzODJkMS4uZjhlYzgxYWE2
MmVkZDY0OTJjN2RkNjExMzk0YmZmOThmODcxMzcyMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V1RGLnhjY29uZmlnCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdURi54Y2NvbmZpZwpAQCAtMjksMTAgKzI5LDEz
IEBAIEdDQ19FTkFCTEVfT0JKQ19FWENFUFRJT05TID0gWUVTOwogCiBHQ0NfUFJFUFJPQ0VTU09S
X0RFRklOSVRJT05TID0gJChpbmhlcml0ZWQpIEJVSUxESU5HX1RFU1RfV1RGIEdURVNUX0FQSV89
CiAKKy8vIE5lZWRlZCBieSBgU291cmNlL1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbWAu
CitXS19JTlRFUk5BVElPTkFMX1NVUFBPUlRfTERGTEFHUyA9IC1mcmFtZXdvcmsgSW50ZXJuYXRp
b25hbFN1cHBvcnQ7CisKIFdLX1VJS0lUTUFDSEVMUEVSX0xERkxBR1MgPSAkKFdLX1VJS0lUTUFD
SEVMUEVSX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CiBXS19VSUtJVE1BQ0hFTFBFUl9M
REZMQUdTX21hY2NhdGFseXN0ID0gLWZyYW1ld29yayBVSUtpdE1hY0hlbHBlcjsKIAotT1RIRVJf
TERGTEFHUyA9ICQoaW5oZXJpdGVkKSAtbGd0ZXN0IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9saWJUZXN0V1RGLmEgJChXS19VSUtJVE1BQ0hFTFBFUl9MREZMQUdTKSAkKE9USEVS
X0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpOworT1RIRVJfTERGTEFHUyA9ICQo
aW5oZXJpdGVkKSAtbGd0ZXN0IC1pZnJhbWV3b3JrICQoU0RLX0RJUikkKFNZU1RFTV9MSUJSQVJZ
X0RJUikvUHJpdmF0ZUZyYW1ld29ya3MgLWZvcmNlX2xvYWQgJChCVUlMVF9QUk9EVUNUU19ESVIp
L2xpYlRlc3RXVEYuYSAkKFdLX0lOVEVSTkFUSU9OQUxfU1VQUE9SVF9MREZMQUdTKSAkKFdLX1VJ
S0lUTUFDSEVMUEVSX0xERkxBR1MpICQoT1RIRVJfTERGTEFHU19QTEFURk9STV8kKFdLX0NPQ09B
X1RPVUNIKSk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JNXyA9IC1mcmFtZXdvcmsgQ29jb2EgLWZy
YW1ld29yayBDYXJib247CiAKIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBub3QgYmUgYnVpbHQgb24g
aU9TLiBJbnN0ZWFkIHdlIHNob3VsZCBjcmVhdGUgYW5kIHVzZSBhIFRlc3RXVEYgYXBwbGljYXRp
b24uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNiYjhlYmI2MmI1ZjYzNTllNWMyODcxYjhm
NWVkNWZhMGZkMGNjNmQuLmYxNjYwYzdlNWMyYTM1MzhjZTFhMDQ4YzNlMjFkOTEwOGYzYjFlMGMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NzksNiArODc5LDcgQEAKIAkJOTUwOTVGMjAy
NjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdlVG9wQ29sb3IubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTA5NUYxRjI2MkZGRkE1MDAwMEQ5MjAg
LyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSAqLzsgfTsKIAkJOTUwRTRDQzEyNTJFNzUyNDAwNzE2
NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5NTBFNENDMDI1MkU3NTIzMDA3MTY1OUYgLyogaU9TU3R5bHVzU3Vw
cG9ydC5tbSAqLzsgfTsKIAkJOTUzQUJCMzUyNUMwRDY4MjAwNEM4QjczIC8qIFdLV2ViVmlld1Vu
ZGVyUGFnZUJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk1M0FCQjM0MjVDMEQ2ODEwMDRDOEI3MyAvKiBXS1dlYlZpZXdVbmRl
clBhZ2VCYWNrZ3JvdW5kQ29sb3IubW0gKi87IH07CisJCTk1NEU0MTMwMjY1NkUwNjgwMDQ1NUQ0
RiAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NTRFNDEyRTI2NTZFMDYzMDA0NTVENEYgLyogTGFuZ3VhZ2UuY3BwICovOyB9Owog
CQk5NUE1MjQ5NTI1ODFBMTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3VGhlbWVDb2xvci5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QTUyNDk0MjU4MUEx
MEQwMDQ2MUZFOSAvKiBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tICovOyB9OwogCQk5NUI2QjNCNzI1
MUVCRjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QjZCM0I2MjUxRUJGMkYwMEZDNDM4MiAvKiBNZWRp
YURvY3VtZW50Lm1tICovOyB9OwogCQk5OTg0RkFDQzFDRkZBRjYwMDA4RDE5OEMgLyogV0tXZWJW
aWV3VGV4dElucHV0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTk4NEZBQ0ExQ0ZGQUVFRTAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSAq
LzsgfTsKQEAgLTI1ODcsNiArMjU4OCw3IEBACiAJCTk1MDk1RjFGMjYyRkZGQTUwMDAwRDkyMCAv
KiBTYW1wbGVkUGFnZVRvcENvbG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gU2FtcGxlZFBhZ2VUb3BDb2xvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBpT1NTdHlsdXNTdXBwb3J0Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTNBQkIzNDI1QzBENjgxMDA0QzhCNzMg
LyogV0tXZWJWaWV3VW5kZXJQYWdlQmFja2dyb3VuZENvbG9yLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3VW5kZXJQYWdlQmFja2dyb3VuZENvbG9y
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTRFNDEyRTI2NTZFMDYzMDA0NTVE
NEYgLyogTGFuZ3VhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TGFuZ3VhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUE1MjQ5NDI1ODFB
MTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3VGhlbWVDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1RoZW1lQ29sb3IubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk1QjZCM0I2MjUxRUJGMkYwMEZDNDM4MiAvKiBNZWRpYURvY3Vt
ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFEb2N1
bWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk4NEZBQ0ExQ0ZGQUVFRTAw
OEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1RleHRJbnB1dC5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTQ4MTksNiArNDgyMSw3IEBACiAJCUMwOTkxQzRGMTQzQzdENjgwMDc5OThG
MiAvKiBjZiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
OTU0RTQxMkUyNjU2RTA2MzAwNDU1RDRGIC8qIExhbmd1YWdlLmNwcCAqLywKIAkJCQlCQzAyOUIx
NjE0ODZBRDY0MDA4MTdEQTkgLyogUmV0YWluUHRyLmNwcCAqLywKIAkJCQlDMDk5MUM1MDE0M0M3
RDY4MDA3OTk4RjIgLyogUmV0YWluUHRySGFzaGluZy5jcHAgKi8sCiAJCQkpOwpAQCAtNTIwMCw2
ICs1MjAzLDcgQEAKIAkJCQk1M0ZDREU2QjIyOUVGRkI5MDA1OThFQ0YgLyogSXNvSGVhcC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3Q0VCNjJBQjIyMzYwOURFMDA2OUNCQjAgLyogSXRlcmF0b3JS
YW5nZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTA1MDk0MTFGQjlGMDY0MDBCMzNGQjggLyog
SlNPTlZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk1NEU0MTMwMjY1NkUwNjgwMDQ1NUQ0
RiAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MzFDMUQ4RTFERjhFRjcyMDA2
RTk3OUYgLyogTEVCRGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdENTRGOTFGMzM5
N0I0MDBBOTdBQTcgLyogTGlmZWN5Y2xlTG9nZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkz
RTJDNTU1MUZEMzIwNDEwMEUxREY2QSAvKiBMaW5lRW5kaW5nLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvTGFuZ3VhZ2UuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvTGFuZ3VhZ2UuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFlYjQ2NWQwNmE5NmE1OTE4YjczZWNlZjhkNzhjYWViZTI2ZmM1ZTYKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9jZi9MYW5ndWFnZS5jcHAKQEAg
LTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1
ZGUgPHd0Zi9MYW5ndWFnZS5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVEVTVChMYW5ndWFnZSwgU2hvdWxkTWluaW1p
emVMYW5ndWFnZXNZZXMpCit7CisgICAgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHsg
fSk7CisgICAgV1RGOjpvdmVycmlkZUluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXNGb3JUZXN0aW5nKHsgImVuLVVTIl9zLCAiZXMtVVMiX3MsICJmci1VUyJfcyB9KTsKKworICAg
IGF1dG8gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxh
bmd1YWdlczo6WWVzKTsKKyAgICBBTFdBWVNfTE9HX1dJVEhfU1RSRUFNKHN0cmVhbSA8PCAiTGFu
Z3VhZ2UuU2hvdWxkTWluaW1pemVMYW5ndWFnZXNZZXMgLSBsYW5ndWFnZXMgPSAiIDw8IGxhbmd1
YWdlcyk7CisKKyAgICBhdXRvIGVuZ2xpc2hVU0luZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImVuLVVT
Il9zKTsKKyAgICBhdXRvIGVuZ2xpc2hJbmRleCA9IGxhbmd1YWdlcy5maW5kKCJlbiJfcyk7Cisg
ICAgYXV0byBzcGFuaXNoVVNJbmRleCA9IGxhbmd1YWdlcy5maW5kKCJlcy1VUyJfcyk7CisgICAg
YXV0byBzcGFuaXNoSW5kZXggPSBsYW5ndWFnZXMuZmluZCgiZXMiX3MpOworICAgIGF1dG8gZnJl
bmNoVVNJbmRleCA9IGxhbmd1YWdlcy5maW5kKCJmci1VUyJfcyk7CisgICAgYXV0byBmcmVuY2hJ
bmRleCA9IGxhbmd1YWdlcy5maW5kKCJmciJfcyk7CisKKyAgICBFWFBFQ1RfVFJVRShlbmdsaXNo
VVNJbmRleCAhPSBub3RGb3VuZCB8fCBlbmdsaXNoSW5kZXggIT0gbm90Rm91bmQpOworICAgIEVY
UEVDVF9FUShzcGFuaXNoVVNJbmRleCwgbm90Rm91bmQpOworICAgIEVYUEVDVF9FUShzcGFuaXNo
SW5kZXgsIG5vdEZvdW5kKTsKKyAgICBFWFBFQ1RfRVEoZnJlbmNoVVNJbmRleCwgbm90Rm91bmQp
OworICAgIEVYUEVDVF9FUShmcmVuY2hJbmRleCwgbm90Rm91bmQpOworCisgICAgV1RGOjpvdmVy
cmlkZUluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNGb3JUZXN0aW5nKHsgfSk7
IC8vIGNsZWFudXAKK30KKworVEVTVChMYW5ndWFnZSwgU2hvdWxkTWluaW1pemVMYW5ndWFnZXNO
bykKK3sKKyAgICBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoeyB9KTsKKyAgICBXVEY6
Om92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0ZvclRlc3Rpbmco
eyAiZW4tVVMiX3MsICJlcy1VUyJfcywgImZyLVVTIl9zIH0pOworCisgICAgYXV0byBsYW5ndWFn
ZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObyk7
CisgICAgQUxXQVlTX0xPR19XSVRIX1NUUkVBTShzdHJlYW0gPDwgIkxhbmd1YWdlLlNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzTm8gLSBsYW5ndWFnZXMgPSAiIDw8IGxhbmd1YWdlcyk7CisKKyAgICBh
dXRvIGVuZ2xpc2hVU0luZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImVuLVVTIl9zKTsKKyAgICBhdXRv
IGVuZ2xpc2hJbmRleCA9IGxhbmd1YWdlcy5maW5kKCJlbiJfcyk7CisgICAgYXV0byBzcGFuaXNo
VVNJbmRleCA9IGxhbmd1YWdlcy5maW5kKCJlcy1VUyJfcyk7CisgICAgYXV0byBzcGFuaXNoSW5k
ZXggPSBsYW5ndWFnZXMuZmluZCgiZXMiX3MpOworICAgIGF1dG8gZnJlbmNoVVNJbmRleCA9IGxh
bmd1YWdlcy5maW5kKCJmci1VUyJfcyk7CisgICAgYXV0byBmcmVuY2hJbmRleCA9IGxhbmd1YWdl
cy5maW5kKCJmciJfcyk7CisKKyAgICBFWFBFQ1RfTkUoZW5nbGlzaFVTSW5kZXgsIG5vdEZvdW5k
KTsKKyAgICBpZiAoZW5nbGlzaEluZGV4ICE9IG5vdEZvdW5kKSB7CisgICAgICAgIEVYUEVDVF9H
VChlbmdsaXNoSW5kZXgsIGVuZ2xpc2hVU0luZGV4KTsKKyAgICAgICAgRVhQRUNUX0xUKGVuZ2xp
c2hJbmRleCwgc3BhbmlzaFVTSW5kZXgpOworICAgIH0KKyAgICBFWFBFQ1RfTkUoc3BhbmlzaFVT
SW5kZXgsIG5vdEZvdW5kKTsKKyAgICBFWFBFQ1RfR1Qoc3BhbmlzaFVTSW5kZXgsIGVuZ2xpc2hV
U0luZGV4KTsKKyAgICBpZiAoc3BhbmlzaEluZGV4ICE9IG5vdEZvdW5kKSB7CisgICAgICAgIEVY
UEVDVF9HVChzcGFuaXNoSW5kZXgsIHNwYW5pc2hVU0luZGV4KTsKKyAgICAgICAgRVhQRUNUX0xU
KHNwYW5pc2hJbmRleCwgZnJlbmNoVVNJbmRleCk7CisgICAgfQorICAgIEVYUEVDVF9ORShmcmVu
Y2hVU0luZGV4LCBub3RGb3VuZCk7CisgICAgRVhQRUNUX0dUKGZyZW5jaFVTSW5kZXgsIHNwYW5p
c2hVU0luZGV4KTsKKyAgICBpZiAoZnJlbmNoSW5kZXggIT0gbm90Rm91bmQpCisgICAgICAgIEVY
UEVDVF9HVChmcmVuY2hJbmRleCwgZnJlbmNoVVNJbmRleCk7CisKKyAgICBXVEY6Om92ZXJyaWRl
SW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0ZvclRlc3RpbmcoeyB9KTsgLy8g
Y2xlYW51cAorfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9X
ZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwppbmRl
eCBkMmMyMGI5NTY2MjA5YzU1YzcxMDM0MmU3ZDg5YmQwMzJjOTBhMmFiLi5kZDMxZDIyZmI3ZjFj
MmZhZDVkZTQ4ZDRiYTkwZDYwYjM5MjhlZjAwIDEwMDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBA
QAorMjAyMS0wNS0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAg
ICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRpYSBjb250
cm9scyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZvciBvcmRl
cmluZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qgb2YgbGFuZ3Vh
Z2UgcHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29ydC9vcmRlciB0
aGUgbGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBsZSwgaWYgYSBg
PHZpZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3BhbmlzaCwgYW5k
IEZyZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQgRnJlbmNoIChh
bHRlcm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYgUmVnaW9uIHZp
ZXcgb2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxkIG9yZGVyCisg
ICAgICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0aGVuIFNwYW5p
c2guCisKKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzEwMTUwMC9J
bnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzEwMTYwMC9J
bnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzExMDAwMC9J
bnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE0
L0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQ6
IEFkZGVkLgorICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTQvSW50
ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZDogQWRk
ZWQuCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL3dhdGNob3MvNy9JbnRl
cm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkOiBBZGRl
ZC4KKyAgICAgICAgTGluayBgSW50ZXJuYXRpb25hbFN1cHBvcnRgIGFzIHRoYXQncyB3aGVyZSB0
aGUgYE5TTG9jYWxlYCBleHRlbnNpb25zIGFyZSBpbXBsZW1lbnRlZC4KKwogMjAyMS0wMS0wNCAg
SmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHVzZXItdmlz
aWJsZSBjb3B5cmlnaHQgc3RyaW5ncyB0byBpbmNsdWRlIDIwMjEKZGlmZiAtLWdpdCBhL1dlYktp
dExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzEwMTUwMC9JbnRlcm5h
dGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkIGIvV2ViS2l0
TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9NYWMvMTAxNTAwL0ludGVybmF0
aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmE4MDg4NTBjYmM2Yjg5MDQ4MWU3Y2FmY2Q4MDhkZjdjNTQ5MDZlMAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzEw
MTUwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQu
dGJkCkBAIC0wLDAgKzEsOSBAQAorLS0tICF0YXBpLXRiZC12MworYXJjaHM6ICAgICAgICAgICBb
IHg4Nl82NCBdCit1dWlkczogICAgICAgICAgIFsgJ3g4Nl82NDogOUJBQkM3MjYtNjIyRi0zRTM1
LUE4QzUtRTcyMjY3N0EzMDhDJywgJ3g4Nl82NDogOUJBQkM3MjYtNjIyRi0zRTM1LUE4QzUtRTcy
MjY3N0EzMDhDJyBdCitwbGF0Zm9ybTogICAgICAgIHppcHBlcmVkCitpbnN0YWxsLW5hbWU6ICAg
ICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvSW50ZXJuYXRpb25hbFN1cHBvcnQu
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvSW50ZXJuYXRpb25hbFN1cHBvcnQnCitjdXJyZW50LXZlcnNp
b246IDQ0CitleHBvcnRzOiAgICAgICAgIAorICAtIGFyY2hzOiAgICAgICAgICAgWyB4ODZfNjQg
XQorLi4uCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29y
a1N0dWJzL01hYy8xMDE2MDAvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0
aW9uYWxTdXBwb3J0LnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3Jr
U3R1YnMvTWFjLzEwMTYwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRp
b25hbFN1cHBvcnQudGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwYjUzNTM0Y2U5YjIxYWM1N2EzZWFhMjBlN2Q3
YjM5YWRhNjNlOTIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJp
dmF0ZUZyYW1ld29ya1N0dWJzL01hYy8xMDE2MDAvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3
b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZApAQCAtMCwwICsxLDIxIEBACistLS0gIXRhcGkt
dGJkCit0YmQtdmVyc2lvbjogICAgIDQKK3RhcmdldHM6ICAgICAgICAgWyB4ODZfNjQtbWFjb3Ms
IHg4Nl82NC1tYWNjYXRhbHlzdCwgYXJtNjQtbWFjb3MsIGFybTY0LW1hY2NhdGFseXN0LCBhcm02
NGUtbWFjb3MsIGFybTY0ZS1tYWNjYXRhbHlzdCBdCit1dWlkczoKKyAgLSB0YXJnZXQ6ICAgICAg
ICAgIHg4Nl82NC1tYWNvcworICAgIHZhbHVlOiAgICAgICAgICAgQUI1OEUxQjEtNjBFNS0zODNF
LUJDREUtRTNDNDhGNEJDNzg3CisgIC0gdGFyZ2V0OiAgICAgICAgICB4ODZfNjQtbWFjY2F0YWx5
c3QKKyAgICB2YWx1ZTogICAgICAgICAgIEFCNThFMUIxLTYwRTUtMzgzRS1CQ0RFLUUzQzQ4RjRC
Qzc4NworICAtIHRhcmdldDogICAgICAgICAgYXJtNjQtbWFjb3MKKyAgICB2YWx1ZTogICAgICAg
ICAgIDAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMAorICAtIHRhcmdldDogICAg
ICAgICAgYXJtNjQtbWFjY2F0YWx5c3QKKyAgICB2YWx1ZTogICAgICAgICAgIDAwMDAwMDAwLTAw
MDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMAorICAtIHRhcmdldDogICAgICAgICAgYXJtNjRlLW1h
Y29zCisgICAgdmFsdWU6ICAgICAgICAgICA5M0U3Mzc4Ni05RDZELTMyMjktQjJCNi1BNDdDOTBG
RkQzNDYKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybTY0ZS1tYWNjYXRhbHlzdAorICAgIHZhbHVl
OiAgICAgICAgICAgOTNFNzM3ODYtOUQ2RC0zMjI5LUIyQjYtQTQ3QzkwRkZEMzQ2CitpbnN0YWxs
LW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvSW50ZXJuYXRpb25h
bFN1cHBvcnQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSW50ZXJuYXRpb25hbFN1cHBvcnQnCitjdXJy
ZW50LXZlcnNpb246IDYwCitleHBvcnRzOgorICAtIHRhcmdldHM6ICAgICAgICAgWyBhcm02NGUt
bWFjb3MsIHg4Nl82NC1tYWNvcywgeDg2XzY0LW1hY2NhdGFseXN0LCBhcm02NGUtbWFjY2F0YWx5
c3QsIGFybTY0LW1hY29zLCBhcm02NC1tYWNjYXRhbHlzdCBdCisuLi4KZGlmZiAtLWdpdCBhL1dl
YktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzExMDAwMC9JbnRl
cm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkIGIvV2Vi
S2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9NYWMvMTEwMDAwL0ludGVy
bmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDBiNTM1MzRjZTliMjFhYzU3YTNlYWEyMGU3ZDdiMzlhZGE2M2U5MgotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFj
LzExMDAwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBv
cnQudGJkCkBAIC0wLDAgKzEsMjEgQEAKKy0tLSAhdGFwaS10YmQKK3RiZC12ZXJzaW9uOiAgICAg
NAordGFyZ2V0czogICAgICAgICBbIHg4Nl82NC1tYWNvcywgeDg2XzY0LW1hY2NhdGFseXN0LCBh
cm02NC1tYWNvcywgYXJtNjQtbWFjY2F0YWx5c3QsIGFybTY0ZS1tYWNvcywgYXJtNjRlLW1hY2Nh
dGFseXN0IF0KK3V1aWRzOgorICAtIHRhcmdldDogICAgICAgICAgeDg2XzY0LW1hY29zCisgICAg
dmFsdWU6ICAgICAgICAgICBBQjU4RTFCMS02MEU1LTM4M0UtQkNERS1FM0M0OEY0QkM3ODcKKyAg
LSB0YXJnZXQ6ICAgICAgICAgIHg4Nl82NC1tYWNjYXRhbHlzdAorICAgIHZhbHVlOiAgICAgICAg
ICAgQUI1OEUxQjEtNjBFNS0zODNFLUJDREUtRTNDNDhGNEJDNzg3CisgIC0gdGFyZ2V0OiAgICAg
ICAgICBhcm02NC1tYWNvcworICAgIHZhbHVlOiAgICAgICAgICAgMDAwMDAwMDAtMDAwMC0wMDAw
LTAwMDAtMDAwMDAwMDAwMDAwCisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NC1tYWNjYXRhbHlz
dAorICAgIHZhbHVlOiAgICAgICAgICAgMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAw
MDAwCisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NGUtbWFjb3MKKyAgICB2YWx1ZTogICAgICAg
ICAgIDkzRTczNzg2LTlENkQtMzIyOS1CMkI2LUE0N0M5MEZGRDM0NgorICAtIHRhcmdldDogICAg
ICAgICAgYXJtNjRlLW1hY2NhdGFseXN0CisgICAgdmFsdWU6ICAgICAgICAgICA5M0U3Mzc4Ni05
RDZELTMyMjktQjJCNi1BNDdDOTBGRkQzNDYKK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGli
cmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9JbnRlcm5hdGlvbmFsU3VwcG9ydCcKK2N1cnJlbnQtdmVyc2lvbjogNjAKK2V4cG9y
dHM6CisgIC0gdGFyZ2V0czogICAgICAgICBbIGFybTY0ZS1tYWNvcywgeDg2XzY0LW1hY29zLCB4
ODZfNjQtbWFjY2F0YWx5c3QsIGFybTY0ZS1tYWNjYXRhbHlzdCwgYXJtNjQtbWFjb3MsIGFybTY0
LW1hY2NhdGFseXN0IF0KKy4uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFBy
aXZhdGVGcmFtZXdvcmtTdHVicy9hcHBsZXR2b3MvMTQvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJh
bWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQ
cml2YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE0L0ludGVybmF0aW9uYWxTdXBwb3J0LmZy
YW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmQ3MDRiZjM5NjM0
NWNhNjRlMGQyMDhhYjM5YWZjNDQ3NWM4YzliZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExp
YnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE0L0ludGVybmF0
aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKQEAgLTAsMCAr
MSwxMyBAQAorLS0tICF0YXBpLXRiZAordGJkLXZlcnNpb246ICAgICA0Cit0YXJnZXRzOiAgICAg
ICAgIFsgYXJtNjQtdHZvcywgYXJtNjRlLXR2b3MgXQordXVpZHM6CisgIC0gdGFyZ2V0OiAgICAg
ICAgICBhcm02NC10dm9zCisgICAgdmFsdWU6ICAgICAgICAgICBGOUU5MDlCQy0xNzQwLTM0RkIt
QjQ5MC1GQTBCOEY4MDlGQkMKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybTY0ZS10dm9zCisgICAg
dmFsdWU6ICAgICAgICAgICA4RjVCMUMxNi03NzJBLTNDQTItQkEyQy1GQzVDOUIzNUQ5ODAKK2lu
c3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JbnRlcm5h
dGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQnCitjdXJyZW50LXZl
cnNpb246IDU5CitleHBvcnRzOgorICAtIHRhcmdldHM6ICAgICAgICAgWyBhcm02NC10dm9zLCBh
cm02NGUtdHZvcyBdCisuLi4KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2
YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9J
bnRlcm5hdGlvbmFsU3VwcG9ydC50YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZy
YW1ld29ya1N0dWJzL2lPUy8xNC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJu
YXRpb25hbFN1cHBvcnQudGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5ZWU2NDlmNDJlNDhiYTcyZDkxMzM0N2I1
Y2M1ZGVkNTM0MjA3MTEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0
UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdv
cmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCkBAIC0wLDAgKzEsMTcgQEAKKy0tLSAhdGFwaS10
YmQKK3RiZC12ZXJzaW9uOiAgICAgNAordGFyZ2V0czogICAgICAgICBbIGFybXY3LWlvcywgYXJt
djdzLWlvcywgYXJtNjQtaW9zLCBhcm02NGUtaW9zIF0KK3V1aWRzOgorICAtIHRhcmdldDogICAg
ICAgICAgYXJtdjctaW9zCisgICAgdmFsdWU6ICAgICAgICAgICAwMDAwMDAwMC0wMDAwLTAwMDAt
MDAwMC0wMDAwMDAwMDAwMDAKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybXY3cy1pb3MKKyAgICB2
YWx1ZTogICAgICAgICAgIDAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMAorICAt
IHRhcmdldDogICAgICAgICAgYXJtNjQtaW9zCisgICAgdmFsdWU6ICAgICAgICAgICAwODQ0MTlG
NS1CNzk0LTM3ODgtQjU1Ni0xRTMxMzc4Qjg4Q0YKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybTY0
ZS1pb3MKKyAgICB2YWx1ZTogICAgICAgICAgIEYzNUM3NUUxLTdFMzctM0UzQy04RjNGLURDMkI4
Q0FGQkU4QworaW5zdGFsbC1uYW1lOiAgICAnL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdv
cmtzL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydCcK
K2N1cnJlbnQtdmVyc2lvbjogNjEuMQorZXhwb3J0czoKKyAgLSB0YXJnZXRzOiAgICAgICAgIFsg
YXJtNjQtaW9zLCBhcm02NGUtaW9zLCBhcm12Ny1pb3MsIGFybXY3cy1pb3MgXQorLi4uCmRpZmYg
LS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL3dhdGNo
b3MvNy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQu
dGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy93YXRjaG9z
LzcvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRi
ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44YzQ3YTBkYTBiZjdmZDUyNDI4MzQ2ZmM5YTI0OTk1NDU0NDFiMTY4Ci0t
LSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtT
dHVicy93YXRjaG9zLzcvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9u
YWxTdXBwb3J0LnRiZApAQCAtMCwwICsxLDE1IEBACistLS0gIXRhcGktdGJkCit0YmQtdmVyc2lv
bjogICAgIDQKK3RhcmdldHM6ICAgICAgICAgWyBhcm12N2std2F0Y2hvcywgYXJtNjRlLXdhdGNo
b3MsIGFybTY0XzMyLXdhdGNob3MgXQordXVpZHM6CisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm12
N2std2F0Y2hvcworICAgIHZhbHVlOiAgICAgICAgICAgNzUxNjJDNDUtOTVGMy0zOTI3LTgyRUQt
QUIyODAzMkMxN0Y4CisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NGUtd2F0Y2hvcworICAgIHZh
bHVlOiAgICAgICAgICAgRjMzQjRGQUUtMzdEMy0zOTU5LUI2MzktNTIwQ0JGRjU5ODZECisgIC0g
dGFyZ2V0OiAgICAgICAgICBhcm02NF8zMi13YXRjaG9zCisgICAgdmFsdWU6ICAgICAgICAgICAz
NUQ5RUMwQS1FRUIwLTM0RjctQkQwMi03N0U5Q0EzODQwNTUKK2luc3RhbGwtbmFtZTogICAgJy9T
eXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFt
ZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQnCitjdXJyZW50LXZlcnNpb246IDU5CitleHBvcnRz
OgorICAtIHRhcmdldHM6ICAgICAgICAgWyBhcm02NF8zMi13YXRjaG9zLCBhcm02NGUtd2F0Y2hv
cywgYXJtdjdrLXdhdGNob3MgXQorLi4uCg==
</data>
<flag name="commit-queue"
          id="450671"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429476</attachid>
            <date>2021-05-23 13:19:47 -0700</date>
            <delta_ts>2021-05-23 16:14:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>226038.diff</filename>
            <type>text/plain</type>
            <size>55714</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDZjYTg2Njk0N2ZjZDg4YTAyZjQxY2JmMDQ5M2Uy
MTUzMzAzYTA3M2UuLmRhN2Q2ZTY0Y2M5M2IwYjQxYzM5ZWQ2NTAzNzQ5MmNlMTIzNTY1NWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA1LTIyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENv
bnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxs
IGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWEgY29udHJvbHMg
bmVlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBpbiBv
cmRlciB0byBwcm9wZXJseQorICAgICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNrcyBp
biB0aGUgY29udHJvbHMgVUkuIEZvciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3VidGl0
bGVzCisgICAgICAgIGZvciBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhlIHVz
ZXIgaGFzIEVuZ2xpc2ggKGRlZmF1bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAgICAg
Y29uZmlndXJlZCBpbiB0aGUgTGFuZ3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJlZmVy
ZW5jZXMgb24gbWFjT1MsIFdlYktpdCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRpdGxl
cyBsaXN0IEVuZ2xpc2gsIEZyZW5jaCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3Bw
OgorICAgICAgICAoSlNDOjpkZWZhdWx0TG9jYWxlKToKKyAgICAgICAgVXBkYXRlIHVzYWdlIG9m
IGBXVEY6OmRlZmF1bHRMYW5ndWFnZWAgdG8gYWxzbyBoYXZlIGBXVEY6OlNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzYC4KKworICAgICAgICAqIHNoZWxsL3BsYXlzdGF0aW9uL1Rlc3RTaGVsbC5jcHA6
CisgICAgICAgIChwcmVUZXN0KToKKyAgICAgICAgSW5zdGVhZCBvZiBwcm9wYWdhdGluZyB0aGUg
b3ZlcnJpZGUsIGp1c3QgY2xlYXIgaXQgb3V0LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
SmF2YVNjcmlwdENvcmUueGNjb25maWc6CisgICAgICAgIExpbmsgYEludGVybmF0aW9uYWxTdXBw
b3J0YCBhcyB0aGF0J3Mgd2hlcmUgdGhlIGBOU0xvY2FsZWAgZXh0ZW5zaW9ucyBhcmUgaW1wbGVt
ZW50ZWQuCisKIDIwMjEtMDUtMjEgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSB0aGUgdW5uZWNlc3NhcnkgdXNlIG9mIENvbXBpbGVPcFN0cmljdEVxVHlw
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggZDA1M2IzODRhMGNkZmMzY2E2YzAwMzYwNTgzZTczYWI5ZTRlYTc3Zi4uM2MxNTQ4
ZTRkMTAzNjhhYjQwNWYzNjRhMGVkN2I2YWZmOGI0MzdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAor
MjAyMS0wNS0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
W01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRpYSBjb250cm9s
cyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZvciBvcmRlcmlu
ZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qgb2YgbGFuZ3VhZ2Ug
cHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29ydC9vcmRlciB0aGUg
bGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBsZSwgaWYgYSBgPHZp
ZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3BhbmlzaCwgYW5kIEZy
ZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQgRnJlbmNoIChhbHRl
cm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYgUmVnaW9uIHZpZXcg
b2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxkIG9yZGVyCisgICAg
ICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0aGVuIFNwYW5pc2gu
CisKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuaDoKKyAgICAgICAgKiB3dGYvTGFuZ3VhZ2UuY3Bw
OgorICAgICAgICAoV1RGOjpjYWNoZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMpOiBB
ZGRlZC4KKyAgICAgICAgKFdURjo6Y2FjaGVkTWluaW1pemVkUGxhdGZvcm1QcmVmZXJyZWRMYW5n
dWFnZXMpOiBBZGRlZC4KKyAgICAgICAgKFdURjo6bGFuZ3VhZ2VEaWRDaGFuZ2UpOgorICAgICAg
ICAoV1RGOjpkZWZhdWx0TGFuZ3VhZ2UpOgorICAgICAgICAoV1RGOjp1c2VyUHJlZmVycmVkTGFu
Z3VhZ2VzKToKKyAgICAgICAgKFdURjo6aW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2Vz
T3ZlcnJpZGVGb3JUZXN0aW5nKTogQWRkZWQuCisgICAgICAgIChXVEY6OmluaXRpYWxQbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcpOiBBZGRlZC4KKyAgICAg
ICAgKFdURjo6b3ZlcnJpZGVJbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRm9y
VGVzdGluZyk6IEFkZGVkLgorICAgICAgICAoV1RGOjpwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdl
KTogRGVsZXRlZC4KKyAgICAgICAgTW92ZSB0aGUgY2FjaGluZyBpbiBgd3RmL2NmL0xhbmd1YWdl
Q0YuY3BwYCB0byBgd3RmL0xhbmd1YWdlLmNwcGAgc28gdGhhdCBhbGwgcGxhdGZvcm1zIGNhbgor
ICAgICAgICBiZW5lZml0IGZyb20gY2FjaGluZyB0aGUgcmVzdWx0IG9mIGBwbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNgLgorCisgICAgICAgICogd3RmL2NmL0xhbmd1YWdlQ0YuY3BwOgor
ICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICAo
V1RGOjpwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYv
Y29jb2EvTGFuZ3VhZ2VDb2NvYS5tbToKKyAgICAgICAgKFdURjo6YmFzZUxhbmd1YWdlRnJvbUxh
bmd1YWdlKTogQWRkZWQuCisgICAgICAgICogd3RmL3BsYXlzdGF0aW9uL0xhbmd1YWdlUGxheVN0
YXRpb24uY3BwOgorICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMp
OgorICAgICAgICAqIHd0Zi9zcGkvY29jb2EvTlNMb2NhbGVTUEkuaDoKKyAgICAgICAgKiB3dGYv
dW5peC9MYW5ndWFnZVVuaXguY3BwOgorICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMpOgorICAgICAgICAqIHd0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwOgorICAgICAg
ICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICBBZGQgYFdU
Rjo6U2hvdWxkTWluaW1pemVMYW5ndWFnZXNgIHRoYXQgY29udHJvbHMgd2hldGhlciBgV1RGOjpt
aW5pbWl6ZWRQcmVmZXJyZWRMYW5ndWFnZXNgCisgICAgICAgIGlzIGNhbGxlZC4gU2luY2UgdGhl
IHJlc3VsdCBpcyBjYWNoZWQsIGNyZWF0ZSBzZXBhcmF0ZSBgVmVjdG9yPFN0cmluZz5gIGZvciBl
YWNoIGVudW0gdmFsdWUuCisKIDIwMjEtMDUtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBVc2UgQ2hlY2tlZENvbmRpdGlvbiBpbiBtb3JlIHBsYWNlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGFkM2ExNGUxZThhM2JhMmU1NDI3OWEwM2NhMDI1MDM2MmExMzkyMmEuLjU0MzRi
M2JhNDUzZjM5NTMxZTQ4NWNiYmIzYTI4YTE4OGUxN2ZiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNSBAQAorMjAyMS0wNS0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRp
YSBjb250cm9scyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZv
ciBvcmRlcmluZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qgb2Yg
bGFuZ3VhZ2UgcHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29ydC9v
cmRlciB0aGUgbGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBsZSwg
aWYgYSBgPHZpZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3Bhbmlz
aCwgYW5kIEZyZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQgRnJl
bmNoIChhbHRlcm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYgUmVn
aW9uIHZpZXcgb2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxkIG9y
ZGVyCisgICAgICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0aGVu
IFNwYW5pc2guCisKKyAgICAgICAgVGVzdHM6IExhbmd1YWdlLlNob3VsZE1pbmltaXplTGFuZ3Vh
Z2VzWWVzCisgICAgICAgICAgICAgICBMYW5ndWFnZS5TaG91bGRNaW5pbWl6ZUxhbmd1YWdlc05v
CisKKyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnRleHRUcmFja1Nl
bGVjdGlvblNjb3JlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVy
ZW5jZXM6OnByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZSBjb25zdCk6CisgICAgICAg
ICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6cHJlZmVycmVkTGFuZ3VhZ2VzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkRGlzcGxheVN0cmluZ0ZvclRyYWNrQmFzZSk6
CisgICAgICAgIChXZWJDb3JlOjp0ZXh0VHJhY2tDb21wYXJlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQzo6dXBkYXRlT3B0aW9u
cyk6CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICBXcmFwIGBk
ZWZhdWx0TGFuZ3VhZ2VgIGluIGEgbGFtYmRhIHNpbmNlIGl0IG5vdyBoYXMgYSBwYXJhbWV0ZXIu
CisKIDIwMjEtMDUtMjEgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAg
IEFsbCBOZXRmbGl4IHBsYXliYWNrIGZhaWxzIGFmdGVyIHIyNzc3NDAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54Y2NvbmZp
ZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54
Y2NvbmZpZwppbmRleCA2ZGY4ZjAwYjQyYzMwM2Q0ZjI2ODBmYzY5ZDAyMTM1MTI2YWY0YzA0Li5j
N2FjMTcwYzExYjZjMTgzMjUzNmI0OGYyODMyZDhjYmUyMjA0ZjQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvSmF2YVNjcmlwdENvcmUueGNjb25maWcK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0phdmFTY3JpcHRDb3Jl
LnhjY29uZmlnCkBAIC0yOSw3ICsyOSwxMCBAQCBNT0RVTEVNQVBfRklMRSA9ICQoU1JDUk9PVCkv
SmF2YVNjcmlwdENvcmUubW9kdWxlbWFwOwogLy8gUHJldmVudCBDKysgc3RhbmRhcmQgbGlicmFy
eSBvcGVyYXRvciBuZXcsIGRlbGV0ZSBhbmQgdGhlaXIgcmVsYXRlZCBleGNlcHRpb24gdHlwZXMg
ZnJvbSBiZWluZyBleHBvcnRlZCBhcyB3ZWFrIHN5bWJvbHMuCiBPVEhFUl9MREZMQUdTX0hJREVf
U1lNQk9MUyA9IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pUSVN0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
LF9fWlRTU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVFNTdDlleGNlcHRp
b24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pkbFB2U18gLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCxfX1pud21QdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5LU3QzX18xOGZ1bmN0aW9uSUZ2
dkVFY2xFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVD
MUVPUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMThmdW5jdGlvbklGdnZFRUMy
RU9TMl8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOS1N0M19fMThmdW5jdGlvbklGdlJOM0pT
QzE3Qnl0ZWNvZGVHZW5lcmF0b3JFUE5TMV8xMFJlZ2lzdGVySURFRUVjbEVTM19TNV8gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdl
bmVyYXRvckVQTlMxXzEwUmVnaXN0ZXJJREVFRUQxRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxf
X1pOU3QzX18xOGZ1bmN0aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvckVQTlMxXzEwUmVn
aXN0ZXJJREVFRUQyRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xOGZ1bmN0aW9u
SUZ2dkVFRDFFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2
RUVEMkV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVFZOU3QzX18xMTdiYWRfZnVuY3Rpb25f
Y2FsbEUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0y
NF9faXNfcGF0aGFibGVfY2hhcl9hcnJheUlQS2NTNF9jTGIxRUUxMV9fcmFuZ2VfZW5kRVM0XyAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTI0X19pc19w
YXRoYWJsZV9jaGFyX2FycmF5SVBLY1M0X2NMYjFFRTEzX19yYW5nZV9iZWdpbkVTNF8gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW04X1BhdGhDVlRJY0Ux
NF9fYXBwZW5kX3JhbmdlSVBLY0VFTlNfOWVuYWJsZV9pZklYc3IyN19faXNfY3BwMTdfZm9yd2Fy
ZF9pdGVyYXRvcklUX0VFNXZhbHVlRXZFNHR5cGVFUk5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNo
YXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTOF9TOF8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW04X1BhdGhDVlRJY0UxNV9fYXBwZW5kX3Nv
dXJjZUlQS2NFRXZSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFs
bG9jYXRvckljRUVFRVJLVF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMx
MGZpbGVzeXN0ZW04X1BhdGhDVlRJY0UxNF9fYXBwZW5kX3JhbmdlSVBLY0VFTlNfOWVuYWJsZV9p
ZklYc3IyMV9faXNfZm9yd2FyZF9pdGVyYXRvcklUX0VFNXZhbHVlRXZFNHR5cGVFUk5TXzEyYmFz
aWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTOF9TOF8g
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOS1N0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJl
Y3RvcnlfaXRlcmF0b3JkZUV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2Zz
MTBmaWxlc3lzdGVtMThkaXJlY3RvcnlfaXRlcmF0b3JwcEV2IC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJ
QTEwX2NQY2NMYjFFRTExX19yYW5nZV9lbmRFUEtjIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19a
TlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJQTEwX2NQ
Y2NMYjFFRTEzX19yYW5nZV9iZWdpbkVQS2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3Qz
X18xNF9fZnMxMGZpbGVzeXN0ZW00cGF0aGRWRVJLUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2ws
X19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtOF9QYXRoQ1ZUSWNFMTVfX2FwcGVuZF9zb3VyY2VJ
QTEwX2NFRXZSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9j
YXRvckljRUVFRVJLVF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZp
bGVzeXN0ZW0yNF9fdGhyb3dfZmlsZXN5c3RlbV9lcnJvcklKUlBLY1JLTlMxXzRwYXRoRVJLTlNf
MTBlcnJvcl9jb2RlRUVFRXZEcE9UXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0
X19mczEwZmlsZXN5c3RlbTE0X19pc19zZXBhcmF0b3JJY0VFTlNfOWVuYWJsZV9pZklYc3IxOF9f
Y2FuX2NvbnZlcnRfY2hhcklUX0VFNXZhbHVlRWJFNHR5cGVFUzRfIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJy
YXlJUEtjUzRfY0xiMUVFMTVfX2ZpcnN0X29yX251bGxFUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtNHBhdGgyMF9fc291cmNlX2lzX2Fic29sdXRl
SWNFRWJUXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3Rl
bTRwYXRoNmFwcGVuZElQS2NFRU5TXzllbmFibGVfaWZJWHNyMTNfX2lzX3BhdGhhYmxlSVRfRUU1
dmFsdWVFUlMyX0U0dHlwZUVSS1M3XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0
X19mczEwZmlsZXN5c3RlbTZ1OHBhdGhJUEtjRUVOU185ZW5hYmxlX2lmSVhzcjEzX19pc19wYXRo
YWJsZUlUX0VFNXZhbHVlRU5TMV80cGF0aEVFNHR5cGVFUktTNl8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCxfX1pOS1N0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJlY3RvcnlfaXRlcmF0b3JwdEV2
IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJl
Y3RvcnlfaXRlcmF0b3I5aW5jcmVtZW50RVJOU18xMGVycm9yX2NvZGVFOwogCi1PVEhFUl9MREZM
QUdTX0JBU0UgPSAkKE9USEVSX0xERkxBR1NfSElERV9TWU1CT0xTKSAtZm9yY2VfbG9hZCAiJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL2xpYldURi5h
IjsKKy8vIE5lZWRlZCBieSBgU291cmNlL1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbWAu
CitXS19JTlRFUk5BVElPTkFMX1NVUFBPUlRfTERGTEFHUyA9IC1mcmFtZXdvcmsgSW50ZXJuYXRp
b25hbFN1cHBvcnQ7CisKK09USEVSX0xERkxBR1NfQkFTRSA9ICQoT1RIRVJfTERGTEFHU19ISURF
X1NZTUJPTFMpIC1pZnJhbWV3b3JrICQoU0RLX0RJUikkKFNZU1RFTV9MSUJSQVJZX0RJUikvUHJp
dmF0ZUZyYW1ld29ya3MgLWZvcmNlX2xvYWQgIiQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9KYXZhU2NyaXB0Q29yZS9saWJXVEYuYSIgJChXS19JTlRFUk5BVElPTkFMX1NVUFBP
UlRfTERGTEFHUyk7CiBPVEhFUl9MREZMQUdTW3Nkaz1lbWJlZGRlZCpdID0gJChpbmhlcml0ZWQp
ICQoT1RIRVJfTERGTEFHU19CQVNFKTsKIE9USEVSX0xERkxBR1Nbc2RrPW1hY29zeCpdID0gJChp
bmhlcml0ZWQpICQoT1RIRVJfTERGTEFHU19CQVNFKSAtZnJhbWV3b3JrIENvcmVTZXJ2aWNlczsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL3BsYXlzdGF0aW9uL1Rl
c3RTaGVsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvcGxheXN0YXRpb24vVGVz
dFNoZWxsLmNwcAppbmRleCAyNzgyZmRhMDg5ODY1ZGNmMGUyZjdjMWRiMjkzMzE1MTI4OTRkZTQ5
Li4zMWZlYWY3ZWM1OGY3OTVmOGMzZGJiNzdkOWY5NTdjMzNmNjJmYzMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcApA
QCAtNjIsNyArNjIsNyBAQCBleHRlcm4gIkMiIHZvaWQgcHJlVGVzdCgpCiAgICAgSlNDOjpPcHRp
b25zOjpuYW1lXygpID0gb3JpZyMjbmFtZV87CiAgICAgRk9SX0VBQ0hfSlNDX09QVElPTihJTklU
X09QVElPTikKICN1bmRlZiBJTklUX09QVElPTgotICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExh
bmd1YWdlcyhwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSk7CisgICAgb3ZlcnJpZGVV
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHsgfSk7CiB9CiAKIGV4dGVybiAiQyIgaW50IHJ1blRlc3Qo
aW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xhbmd1
YWdlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcAppbmRleCBiZTYyNThkODU3ZTU5
ODhmOTY5ODM5MDIwMmJjYzkzYzNjMTc4MjBmLi43MDE2OTYyMDUyZmJhOGFlM2Q5OTFlMmEwYWYw
N2MyYjUxN2EzYmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwCkBAIC0zNyw2ICszNywxOCBAQAogCiBuYW1l
c3BhY2UgV1RGIHsKIAorc3RhdGljIENoZWNrZWRMb2NrIGNhY2hlZFBsYXRmb3JtUHJlZmVycmVk
TGFuZ3VhZ2VzTG9jazsKK3N0YXRpYyBWZWN0b3I8U3RyaW5nPiYgY2FjaGVkRnVsbFBsYXRmb3Jt
UHJlZmVycmVkTGFuZ3VhZ2VzKCkgV1RGX1JFUVVJUkVTX0xPQ0soY2FjaGVkUGxhdGZvcm1QcmVm
ZXJyZWRMYW5ndWFnZXNMb2NrKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8
U3RyaW5nPj4gbGFuZ3VhZ2VzOworICAgIHJldHVybiBsYW5ndWFnZXM7Cit9CitzdGF0aWMgVmVj
dG9yPFN0cmluZz4mIGNhY2hlZE1pbmltaXplZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkg
V1RGX1JFUVVJUkVTX0xPQ0soY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrKQor
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4gbGFuZ3VhZ2VzOwor
ICAgIHJldHVybiBsYW5ndWFnZXM7Cit9CisKIHN0YXRpYyBDaGVja2VkTG9jayBwcmVmZXJyZWRM
YW5ndWFnZXNPdmVycmlkZUxvY2s7CiBzdGF0aWMgVmVjdG9yPFN0cmluZz4mIHByZWZlcnJlZExh
bmd1YWdlc092ZXJyaWRlKCkgV1RGX1JFUVVJUkVTX0xPQ0socHJlZmVycmVkTGFuZ3VhZ2VzT3Zl
cnJpZGVMb2NrKQogewpAQCAtNjgsMTYgKzgwLDIxIEBAIHZvaWQgcmVtb3ZlTGFuZ3VhZ2VDaGFu
Z2VPYnNlcnZlcih2b2lkKiBjb250ZXh0KQogCiB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCkKIHsK
LSAgICBwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdlKCk7CisgICAgeworICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrIH07CisgICAgICAg
IGNhY2hlZEZ1bGxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpLmNsZWFyKCk7CisgICAgICAg
IGNhY2hlZE1pbmltaXplZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkuY2xlYXIoKTsKKyAg
ICB9CisKICAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogY29weVRvVmVjdG9yKG9ic2VydmVyTWFw
KCkpKSB7CiAgICAgICAgIGlmIChvYnNlcnZlck1hcCgpLmNvbnRhaW5zKG9ic2VydmVyLmtleSkp
CiAgICAgICAgICAgICBvYnNlcnZlci52YWx1ZShvYnNlcnZlci5rZXkpOwogICAgIH0KIH0KIAot
U3RyaW5nIGRlZmF1bHRMYW5ndWFnZSgpCitTdHJpbmcgZGVmYXVsdExhbmd1YWdlKFNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzIHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewotICAgIFZlY3RvcjxT
dHJpbmc+IGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBWZWN0b3I8
U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzKTsKICAgICBpZiAobGFuZ3VhZ2VzLnNpemUoKSkKICAgICAgICAgcmV0dXJuIGxh
bmd1YWdlc1swXTsKIApAQCAtMTA4LDcgKzEyNSw3IEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBp
c29sYXRlZENvcHkoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmluZ3MpCiAgICAgcmV0dXJuIGNv
cHk7CiB9CiAKLVZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9y
PFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyBz
aG91bGRNaW5pbWl6ZUxhbmd1YWdlcykKIHsKICAgICB7CiAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUxvY2sgfTsKQEAgLTExNyw3ICsxMzQsMTEgQEAg
VmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpCiAgICAgICAgICAgICByZXR1
cm4gaXNvbGF0ZWRDb3B5KG92ZXJyaWRlKTsKICAgICB9CiAKLSAgICByZXR1cm4gcGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgTG9ja2VyIGxvY2tlciB7IGNhY2hlZFBsYXRm
b3JtUHJlZmVycmVkTGFuZ3VhZ2VzTG9jayB9OworICAgIGF1dG8mIGxhbmd1YWdlcyA9IHNob3Vs
ZE1pbmltaXplTGFuZ3VhZ2VzID09IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMgPyBjYWNo
ZWRNaW5pbWl6ZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpIDogY2FjaGVkRnVsbFBsYXRm
b3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgaWYgKGxhbmd1YWdlcy5pc0VtcHR5KCkpCisg
ICAgICAgIGxhbmd1YWdlcyA9IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhzaG91bGRN
aW5pbWl6ZUxhbmd1YWdlcyk7CisgICAgcmV0dXJuIGlzb2xhdGVkQ29weShsYW5ndWFnZXMpOwog
fQogCiBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmd1YWdlSWRlbnRpZmllcihjb25zdCBTdHJp
bmcmIGxhbmd1YWdlQ29kZSkKQEAgLTE4NCwxMCArMjA1LDI2IEBAIFN0cmluZyBkaXNwbGF5TmFt
ZUZvckxhbmd1YWdlTG9jYWxlKGNvbnN0IFN0cmluZyYgbG9jYWxlTmFtZSkKICAgICByZXR1cm4g
bG9jYWxlTmFtZTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkKLXZvaWQgcGxhdGZvcm1MYW5n
dWFnZURpZENoYW5nZSgpCitzdGF0aWMgQ2hlY2tlZExvY2sgaW5pdGlhbFBsYXRmb3JtUHJlZmVy
cmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nTG9jazsKK3N0YXRpYyBWZWN0b3I8U3RyaW5n
PiYgaW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nKCkg
V1RGX1JFUVVJUkVTX0xPQ0soaW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJp
ZGVGb3JUZXN0aW5nTG9jaykKIHsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0
cmluZz4+IG92ZXJyaWRlOworICAgIHJldHVybiBvdmVycmlkZTsKIH0KLSNlbmRpZgogCitWZWN0
b3I8U3RyaW5nPiBpbml0aWFsUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVG
b3JUZXN0aW5nKCkKK3sKKyAgICBMb2NrZXIgbG9ja2VyIHsgaW5pdGlhbFBsYXRmb3JtUHJlZmVy
cmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nTG9jayB9OworICAgIHJldHVybiBpbml0aWFs
UGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKTsKIH0KKwordm9p
ZCBvdmVycmlkZUluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNGb3JUZXN0aW5n
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvdmVycmlkZSkKK3sKKyAgICB7CisgICAgICAgIExvY2tl
ciBsb2NrZXIgeyBpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRl
c3RpbmdMb2NrIH07CisgICAgICAgIGluaXRpYWxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc092
ZXJyaWRlRm9yVGVzdGluZygpID0gb3ZlcnJpZGU7CisgICAgfQorICAgIGxhbmd1YWdlRGlkQ2hh
bmdlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvTGFuZ3VhZ2UuaCBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmgKaW5kZXggZjA3NGQ3NTY4
ZDAwMmU5MzJhNTMyNmJkYjUyZDdmYjhjMDY1ODE4My4uMjkwZTNlN2M4YjQ0N2UyNGYzZTE4OGVi
ZTBlNTNiYjYyZGZmYjA3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oCkBAIC0zNSwxMyArMzUsMTMgQEAKIAogbmFt
ZXNwYWNlIFdURiB7CiAKLVdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgZGVmYXVsdExhbmd1YWdl
KCk7IC8vIFRocmVhZC1zYWZlLgotV1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsgLy8gVGhyZWFkLXNhZmUsIHJldHVybnMgQkNQIDQ3IGxh
bmd1YWdlIHRhZ3MuCitlbnVtIGNsYXNzIFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzIHsgTm8sIFll
cyB9OworCitXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIGRlZmF1bHRMYW5ndWFnZShTaG91bGRN
aW5pbWl6ZUxhbmd1YWdlcyA9IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMpOyAvLyBUaHJl
YWQtc2FmZS4KK1dURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID0gU2hvdWxkTWluaW1pemVMYW5ndWFn
ZXM6Olllcyk7IC8vIFRocmVhZC1zYWZlLCByZXR1cm5zIEJDUCA0NyBsYW5ndWFnZSB0YWdzLgog
V1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNP
dmVycmlkZSgpOwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgb3ZlcnJpZGVVc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgc2l6
ZV90IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChjb25zdCBTdHJpbmcmIGxhbmd1
YWdlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VMaXN0LCBib29sJiBleGFjdE1hdGNo
KTsKLVdURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoKTsKLVdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHBsYXRmb3JtTGFuZ3VhZ2VE
aWRDaGFuZ2UoKTsKIAogLy8gQ2FsbGVkIGZyb20gcGxhdGZvcm0gc3BlY2lmaWMgY29kZSB3aGVu
IHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlKHMpIGNoYW5nZS4KIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIGxhbmd1YWdlRGlkQ2hhbmdlKCk7CkBAIC01MiwyMCArNTIsMjYgQEAgV1RGX0VY
UE9SVF9QUklWQVRFIHZvaWQgYWRkTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0
LCBMYW5ndWFnZUNoYW5nZU8KIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHJlbW92ZUxhbmd1YWdl
Q2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5n
IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJik7CiAKK1ZlY3RvcjxT
dHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1
YWdlcyA9IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMpOworCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiBib29sIGNhbk1pbmltaXplTGFuZ3VhZ2VzKCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBsaXN0ZW5Gb3JMYW5ndWFnZUNoYW5nZU5vdGlmaWNhdGlvbnMoKTsKIFJldGFpblB0cjxDRkFy
cmF5UmVmPiBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzKENGQXJyYXlSZWYpOwotI2Vu
ZGlmCitSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGJhc2VMYW5ndWFnZUZyb21MYW5ndWFnZShDRlN0
cmluZ1JlZik7CiAKLX0KK1ZlY3RvcjxTdHJpbmc+IGluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKTsKK1dURl9FWFBPUlRfUFJJVkFURSB2b2lk
IG92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0ZvclRlc3Rpbmco
Y29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAorfSAv
LyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6U2hvdWxkTWluaW1pemVMYW5ndWFnZXM7CiB1
c2luZyBXVEY6OmRlZmF1bHRMYW5ndWFnZTsKIHVzaW5nIFdURjo6dXNlclByZWZlcnJlZExhbmd1
YWdlczsKIHVzaW5nIFdURjo6dXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlOwogdXNpbmcg
V1RGOjpvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7CiB1c2luZyBXVEY6OmluZGV4T2ZC
ZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdDsKLXVzaW5nIFdURjo6cGxhdGZvcm1Vc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzOwogdXNpbmcgV1RGOjphZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyOwogdXNp
bmcgV1RGOjpyZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyOwogdXNpbmcgV1RGOjpkaXNwbGF5
TmFtZUZvckxhbmd1YWdlTG9jYWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY2YvTGFu
Z3VhZ2VDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcAppbmRleCBlMDcz
MTE1NDI5MWJmZDA3YzRjYzE2ZGEwNDJhYWFkYjU5YzllM2IxLi40YzdiNjAyZWRhZDRiNTNlMzMw
MjQzZTg5OGQ2Yjc1YjAwMjEzMzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5n
dWFnZUNGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcApAQCAtMzAs
MTYgKzMwLDEzIEBACiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8dW5pY29kZS91bG9jLmg+
CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2su
aD4KLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3NwaS9jZi9DRkJ1bmRsZVNQSS5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdURiB7CiAKLXN0YXRpYyBDaGVja2VkTG9jayBwcmVmZXJyZWRMYW5ndWFnZXNM
b2NrOwotCiAjaWYgUExBVEZPUk0oTUFDKQogc3RhdGljIHZvaWQgbGFuZ3VhZ2VQcmVmZXJlbmNl
c0RpZENoYW5nZShDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCosIENGU3RyaW5nUmVmLCBj
b25zdCB2b2lkKiwgQ0ZEaWN0aW9uYXJ5UmVmKQogewpAQCAtNDcsMTYgKzQzLDYgQEAgc3RhdGlj
IHZvaWQgbGFuZ3VhZ2VQcmVmZXJlbmNlc0RpZENoYW5nZShDRk5vdGlmaWNhdGlvbkNlbnRlclJl
Ziwgdm9pZCosIENGU3RyaW4KIH0KICNlbmRpZgogCi1zdGF0aWMgVmVjdG9yPFN0cmluZz4mIHBy
ZWZlcnJlZExhbmd1YWdlcygpIFdURl9SRVFVSVJFU19MT0NLKHByZWZlcnJlZExhbmd1YWdlc0xv
Y2spCi17Ci0gICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4gbGFu
Z3VhZ2VzOwotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlS2V5OwotICAgIHN0ZDo6Y2Fs
bF9vbmNlKG9uY2VLZXksIFsmXSB7Ci0gICAgICAgIGxhbmd1YWdlcy5jb25zdHJ1Y3QoKTsKLSAg
ICB9KTsKLSAgICByZXR1cm4gbGFuZ3VhZ2VzOwotfQotCiBzdGF0aWMgU3RyaW5nIGh0dHBTdHls
ZUxhbmd1YWdlQ29kZShDRlN0cmluZ1JlZiBsYW5ndWFnZSkKIHsKICAgICBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IHByZWZlcnJlZExhbmd1YWdlQ29kZTsKQEAgLTg4LDE0ICs3NCw2IEBAIHN0YXRp
YyBTdHJpbmcgaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKENGU3RyaW5nUmVmIGxhbmd1YWdlKQogICAg
IHJldHVybiBtdXRhYmxlTGFuZ3VhZ2VDb2RlLmdldCgpOwogfQogCi12b2lkIHBsYXRmb3JtTGFu
Z3VhZ2VEaWRDaGFuZ2UoKQotewotICAgIHsKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IHByZWZl
cnJlZExhbmd1YWdlc0xvY2sgfTsKLSAgICAgICAgcHJlZmVycmVkTGFuZ3VhZ2VzKCkuY2xlYXIo
KTsKLSAgICB9Ci19Ci0KIHZvaWQgbGlzdGVuRm9yTGFuZ3VhZ2VDaGFuZ2VOb3RpZmljYXRpb25z
KCkKIHsKICNpZiBQTEFURk9STShNQUMpCkBAIC0xMDYsMzIgKzg0LDM4IEBAIHZvaWQgbGlzdGVu
Rm9yTGFuZ3VhZ2VDaGFuZ2VOb3RpZmljYXRpb25zKCkKICNlbmRpZgogfQogCi1WZWN0b3I8U3Ry
aW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9yPFN0cmluZz4gcGxh
dGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzIHNob3Vs
ZE1pbmltaXplTGFuZ3VhZ2VzKQogewotICAgIExvY2tlciBsb2NrZXIgeyBwcmVmZXJyZWRMYW5n
dWFnZXNMb2NrIH07Ci0gICAgVmVjdG9yPFN0cmluZz4mIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMg
PSBwcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gcGxhdGZv
cm1MYW5ndWFnZXM7CisgICAgaWYgKGF1dG8gb3ZlcnJpZGUgPSBpbml0aWFsUGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5nKCk7ICFvdmVycmlkZS5pc0VtcHR5
KCkpIHsKKyAgICAgICAgYXV0byBhcnJheSA9IGFkb3B0Q0YoQ0ZBcnJheUNyZWF0ZU11dGFibGUo
MCwgb3ZlcnJpZGUuc2l6ZSgpLCAma0NGVHlwZUFycmF5Q2FsbEJhY2tzKSk7CisgICAgICAgIGZv
ciAoYXV0byYgaXRlbSA6IG92ZXJyaWRlKQorICAgICAgICAgICAgQ0ZBcnJheUFwcGVuZFZhbHVl
KGFycmF5LmdldCgpLCBpdGVtLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOworICAgICAgICBwbGF0
Zm9ybUxhbmd1YWdlcyA9IFdURk1vdmUoYXJyYXkpOworICAgIH0gZWxzZQorICAgICAgICBwbGF0
Zm9ybUxhbmd1YWdlcyA9IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5UHJlZmVycmVkTGFuZ3VhZ2VzKCkp
OwogCi0gICAgaWYgKHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAg
IFJldGFpblB0cjxDRkFycmF5UmVmPiBsYW5ndWFnZXMgPSBhZG9wdENGKENGTG9jYWxlQ29weVBy
ZWZlcnJlZExhbmd1YWdlcygpKTsKLSAgICAgICAgbGFuZ3VhZ2VzID0gbWluaW1pemVkTGFuZ3Vh
Z2VzRnJvbUxhbmd1YWdlcyhsYW5ndWFnZXMuZ2V0KCkpOwotICAgICAgICBDRkluZGV4IGxhbmd1
YWdlQ291bnQgPSBDRkFycmF5R2V0Q291bnQobGFuZ3VhZ2VzLmdldCgpKTsKLSAgICAgICAgaWYg
KCFsYW5ndWFnZUNvdW50KQotICAgICAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBl
bmQoImVuIik7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgZm9yIChDRkluZGV4IGkgPSAw
OyBpIDwgbGFuZ3VhZ2VDb3VudDsgaSsrKQotICAgICAgICAgICAgICAgIHVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMuYXBwZW5kKGh0dHBTdHlsZUxhbmd1YWdlQ29kZShzdGF0aWNfY2FzdDxDRlN0cmlu
Z1JlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChsYW5ndWFnZXMuZ2V0KCksIGkpKSkpOworICAg
IGlmIChzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9PSBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6
WWVzKQorICAgICAgICBwbGF0Zm9ybUxhbmd1YWdlcyA9IG1pbmltaXplZExhbmd1YWdlc0Zyb21M
YW5ndWFnZXMocGxhdGZvcm1MYW5ndWFnZXMuZ2V0KCkpOworCisgICAgQ0ZJbmRleCBwbGF0Zm9y
bUxhbmd1YWdlc0NvdW50ID0gQ0ZBcnJheUdldENvdW50KHBsYXRmb3JtTGFuZ3VhZ2VzLmdldCgp
KTsKKyAgICBpZiAoIXBsYXRmb3JtTGFuZ3VhZ2VzQ291bnQpCisgICAgICAgIHJldHVybiB7ICJl
biJfcyB9OworCisgICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzOworICAgIGZvciAoQ0ZJbmRl
eCBpID0gMDsgaSA8IHBsYXRmb3JtTGFuZ3VhZ2VzQ291bnQ7IGkrKykgeworICAgICAgICBhdXRv
IHBsYXRmb3JtTGFuZ3VhZ2UgPSBzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZBcnJheUdldFZh
bHVlQXRJbmRleChwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSwgaSkpOyBBTFdBWVNfTE9HX1dJVEhf
U1RSRUFNKHN0cmVhbSA8PCAiTGFuZ3VhZ2UuU2hvdWxkTWluaW1pemVMYW5ndWFnZXMiIDw8IChz
aG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9PSBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzID8g
IlllcyIgOiAiTm8iKSA8PCAiIC0gcGxhdGZvcm1MYW5ndWFnZXNbIiA8PCBpIDw8ICJdID0gIiA8
PCBTdHJpbmcocGxhdGZvcm1MYW5ndWFnZSkgPDwgIiB2cyAiIDw8IGh0dHBTdHlsZUxhbmd1YWdl
Q29kZShwbGF0Zm9ybUxhbmd1YWdlKSk7CisgICAgICAgIGxhbmd1YWdlcy5hcHBlbmQoaHR0cFN0
eWxlTGFuZ3VhZ2VDb2RlKHBsYXRmb3JtTGFuZ3VhZ2UpKTsKKworICAgICAgICBpZiAoc2hvdWxk
TWluaW1pemVMYW5ndWFnZXMgPT0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKSB7CisgICAg
ICAgICAgICAvLyBDb252ZXJ0IGxhbmd1YWdlcyB3aXRoIGNvdW50cnkgY29kZXMgdG8gZXF1aXZh
bGVudCBsYW5ndWFnZXMgd2l0aG91dCBjb3VudHJ5IGNvZGVzIChpZiBwb3NzaWJsZSkuCisgICAg
ICAgICAgICAvLyBlLmcuICJlbi1VUyIgYmVjb21lcyAiZW4iLCB3aGljaCBpcyB1c2VmdWwgd2hl
biB0cnlpbmcgdG8gbWF0Y2ggSFRNTCBgbGFuZz0iZW4iYC4KKyAgICAgICAgICAgIGF1dG8gYmFz
ZUxhbmd1YWdlID0gYmFzZUxhbmd1YWdlRnJvbUxhbmd1YWdlKHBsYXRmb3JtTGFuZ3VhZ2UpOyBB
TFdBWVNfTE9HX1dJVEhfU1RSRUFNKHN0cmVhbSA8PCAiTGFuZ3VhZ2UuU2hvdWxkTWluaW1pemVM
YW5ndWFnZXNObyAtIGJhc2VMYW5ndWFnZXNbIiA8PCBpIDw8ICJdID0gIiA8PCBTdHJpbmcoYmFz
ZUxhbmd1YWdlLmdldCgpKSA8PCAiIHZzICIgPDwgaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKGJhc2VM
YW5ndWFnZS5nZXQoKSkpOworICAgICAgICAgICAgaWYgKGJhc2VMYW5ndWFnZSAmJiBiYXNlTGFu
Z3VhZ2UgIT0gcGxhdGZvcm1MYW5ndWFnZSAmJiBDRlN0cmluZ0NvbXBhcmUoYmFzZUxhbmd1YWdl
LmdldCgpLCBwbGF0Zm9ybUxhbmd1YWdlLCAwKSAhPSBrQ0ZDb21wYXJlRXF1YWxUbykKKyAgICAg
ICAgICAgICAgICBsYW5ndWFnZXMuYXBwZW5kKGh0dHBTdHlsZUxhbmd1YWdlQ29kZShiYXNlTGFu
Z3VhZ2UuZ2V0KCkpKTsKICAgICAgICAgfQogICAgIH0KLQotICAgIFZlY3RvcjxTdHJpbmc+IHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5OwotICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodXNlclByZWZlcnJlZExhbmd1YWdlcy5zaXplKCkpOwot
Ci0gICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpCi0gICAg
ICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5LnVuY2hlY2tlZEFwcGVuZChsYW5ndWFnZS5p
c29sYXRlZENvcHkoKSk7Ci0KLSAgICByZXR1cm4gdXNlclByZWZlcnJlZExhbmd1YWdlc0NvcHk7
Ci0KLSAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKKyAgICByZXR1cm4gbGFuZ3VhZ2VzOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NvY29h
L0xhbmd1YWdlQ29jb2EubW0gYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1t
CmluZGV4IDViYWI3YzdiMjY3YzBhZGQyNTViMmZlNjc2MmVlNjQwZTA1ODg5OTMuLjQxZTAzMzI5
MWEzMjE3YWE4NDMxZDA2NmZjYjMwOTYyOTBhNTY2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0KKysrIGIvU291cmNlL1dURi93dGYvY29jb2EvTGFu
Z3VhZ2VDb2NvYS5tbQpAQCAtMzgsOCArMzgsNyBAQCBib29sIGNhbk1pbmltaXplTGFuZ3VhZ2Vz
KCkKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIGlmIChhcHBsaWNhdGlvblNES1ZlcnNpb24o
KSA8IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTVfNCkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKElPUykKKyNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgICAgIGlmIChhcHBsaWNhdGlvblNES1ZlcnNpb24oKSA8IERZTERfSU9TX1ZFUlNJT05f
MTNfNCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpAQCAtNTAsNiArNDksOCBA
QCBib29sIGNhbk1pbmltaXplTGFuZ3VhZ2VzKCkKIAogUmV0YWluUHRyPENGQXJyYXlSZWY+IG1p
bmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFnZXMoQ0ZBcnJheVJlZiBsYW5ndWFnZXMpCiB7Cisg
ICAgLy8gVGhpcyByZXF1aXJlcyBsaW5raW5nIGBJbnRlcm5hdGlvbmFsU3VwcG9ydGAuCisKICAg
ICBpZiAoIWNhbk1pbmltaXplTGFuZ3VhZ2VzKCkpCiAgICAgICAgIHJldHVybiBsYW5ndWFnZXM7
CiAKQEAgLTU4LDQgKzU5LDI5IEBAIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfQkVHSU4K
IEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECiB9CiAKK3N0YXRpYyBib29sIGNhbkdl
dEJhc2VMYW5ndWFnZSgpCit7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgcmVzdWx0ID0gW10oKSAt
PiBib29sIHsKKyNpZiBQTEFURk9STShNQUMpCisgICAgICAgIGlmIChhcHBsaWNhdGlvblNES1Zl
cnNpb24oKSA8IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBpZiAoYXBwbGljYXRp
b25TREtWZXJzaW9uKCkgPCBEWUxEX0lPU19WRVJTSU9OXzExXzApCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIFtOU0xvY2FsZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKGJhc2VMYW5ndWFnZUZyb21MYW5ndWFnZTopXTsKKyAgICB9KCk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KKworUmV0YWluUHRyPENGU3RyaW5nUmVmPiBiYXNlTGFuZ3Vh
Z2VGcm9tTGFuZ3VhZ2UoQ0ZTdHJpbmdSZWYgbGFuZ3VhZ2UpCit7CisgICAgLy8gVGhpcyByZXF1
aXJlcyBsaW5raW5nIGBJbnRlcm5hdGlvbmFsU3VwcG9ydGAuCisKKyAgICBpZiAoIWNhbkdldEJh
c2VMYW5ndWFnZSgpKQorICAgICAgICByZXR1cm4gbGFuZ3VhZ2U7CisKKyAgICByZXR1cm4gKF9f
YnJpZGdlIENGU3RyaW5nUmVmKVtOU0xvY2FsZSBiYXNlTGFuZ3VhZ2VGcm9tTGFuZ3VhZ2U6KF9f
YnJpZGdlIE5TU3RyaW5nICopbGFuZ3VhZ2VdOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0aW9uL0xhbmd1YWdlUGxheVN0YXRpb24u
Y3BwIGIvU291cmNlL1dURi93dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5jcHAK
aW5kZXggZDQ1MzdhNjk0MGI1ZTAyMmJmNWU1Y2RmNzFhODYzZDMzMDlkZjYxYy4uY2FmMTU0OWY4
MDAyYzEzN2UyZjFhMDYyMjgxODE1NGY1NjI1NGU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5jcHAKKysrIGIvU291cmNlL1dURi93
dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5jcHAKQEAgLTMwLDcgKzMwLDcgQEAK
IAogbmFtZXNwYWNlIFdURiB7CiAKLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJl
ZExhbmd1YWdlcygpCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMpCiB7CiAgICAgVmVjdG9yPFN0cmluZz4gbGFuZ3Vh
Z2VzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2EvTlNMb2NhbGVTUEku
aCBiL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9OU0xvY2FsZVNQSS5oCmluZGV4IDVjZWYxNjQw
MzE2YjQ3M2E3MWJlN2JiYTYxYTg4Mjc0ZjI4MTA2MjEuLmNhOTgyMDFjNjE2M2EzNzllZTFkOGYy
Y2E0ZjU1ZDM2ZmZhYmYwYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9O
U0xvY2FsZVNQSS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3NwaS9jb2NvYS9OU0xvY2FsZVNQSS5o
CkBAIC0zMiw2ICszMiw3IEBACiAjZW5kaWYKIAogQGludGVyZmFjZSBOU0xvY2FsZSAoKQorKyAo
bm9ubnVsbCBOU1N0cmluZyAqKWJhc2VMYW5ndWFnZUZyb21MYW5ndWFnZToobm9ubnVsbCBOU1N0
cmluZyAqKWxhbmd1YWdlSUQ7CiArIChub25udWxsIE5TQXJyYXk8TlNTdHJpbmcgKj4gKiltaW5p
bWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzOihub25udWxsIE5TQXJyYXk8TlNTdHJpbmcgKj4g
KilsYW5ndWFnZXM7CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcAppbmRl
eCAzMWM3NTc0NzJlZWFiNjQwNzI2ZTk0YzVjNTc1MDcxOGZhMzkzOGQxLi5hZjk0YmIwNmNjMzhk
ZDJhODU5NWJmYmI3NzE2OTBmOTJkYjQ4YWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVu
aXguY3BwCkBAIC00Miw3ICs0Miw3IEBAIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgp
CiAgICAgcmV0dXJuIG5vcm1hbGl6ZWREZWZhdWx0OwogfQogCi1WZWN0b3I8U3RyaW5nPiBwbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewogICAgIHJldHVy
biB7IHBsYXRmb3JtTGFuZ3VhZ2UoKSB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
d2luL0xhbmd1YWdlV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAK
aW5kZXggNmI1MmM5YzIwZDE1Y2JhN2UzOWQ1NDIwMTFiNDM4YTM4MzU4YzJiMi4uYmY5NmIwYTU1
Yzg4OTkzMWM0YzJkNTMzMTdlOGM1ZTAxN2UyYWExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvd2luL0xhbmd1YWdlV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VX
aW4uY3BwCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgp
CiAgICAgcmV0dXJuIGNvbXB1dGVkRGVmYXVsdExhbmd1YWdlOwogfQogCi1WZWN0b3I8U3RyaW5n
PiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9yPFN0cmluZz4gcGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewogICAg
IHJldHVybiB7IHBsYXRmb3JtTGFuZ3VhZ2UoKSB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggYWIwM2JkYjQzYzZmM2EzZjE1YmE5
NWU4ZDJiYjMxZTdiY2ExZTUzOS4uODExNDE5MGI0M2VjNTk2MmQxYmZlNzJjYjhiOTExMjBmY2Q3
MjVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
Y3BwCkBAIC04Myw3ICs4Myw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTRE9N
V2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsKICAgICAmcmVwb3J0VW5j
YXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKICAgICAmY3VycmVudFNjcmlwdEV4ZWN1dGlvbk93
bmVyLAogICAgICZzY3JpcHRFeGVjdXRpb25TdGF0dXMsCi0gICAgJmRlZmF1bHRMYW5ndWFnZSwK
KyAgICBbXSB7IHJldHVybiBkZWZhdWx0TGFuZ3VhZ2UoKTsgfSwKICNpZiBFTkFCTEUoV0VCQVNT
RU1CTFkpCiAgICAgJmNvbXBpbGVTdHJlYW1pbmcsCiAgICAgJmluc3RhbnRpYXRlU3RyZWFtaW5n
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxT
Y29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxT
Y29wZUJhc2UuY3BwCmluZGV4IDQ4Mzk5NzA4ZWUwMzRiYzU4YWMzODJmM2NhYzk3ZjkxNjc3ODJm
YjguLjkyMTI1ZTU2ZDY5OTVkNDYwMGRjZDhmY2I3YjQyM2JhNThiYjQ4M2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5j
cHAKQEAgLTYxLDcgKzYxLDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3Jr
ZXJHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUKICAgICAmcmVwb3J0
VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKICAgICAmY3VycmVudFNjcmlwdEV4ZWN1dGlv
bk93bmVyLAogICAgICZzY3JpcHRFeGVjdXRpb25TdGF0dXMsCi0gICAgJmRlZmF1bHRMYW5ndWFn
ZSwKKyAgICBbXSB7IHJldHVybiBkZWZhdWx0TGFuZ3VhZ2UoKTsgfSwKICNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCiAgICAgJmNvbXBpbGVTdHJlYW1pbmcsCiAgICAgJmluc3RhbnRpYXRlU3RyZWFt
aW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xv
YmFsU2NvcGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEds
b2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNDIxZTc0NGYzMzA3YWJkOTliMWU1YzJkNWQ3ZjEzZTMz
YjM4ZTkwMS4uNDIwMjcyYTFkMGI3NWNhNjk1YTY2ZjEyNDZlNDc0NTk2ZDVhNGU1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29w
ZUJhc2UuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxl
IEpTV29ya2xldEdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsCiAgICAg
JnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3AsCiAgICAgJmN1cnJlbnRTY3JpcHRF
eGVjdXRpb25Pd25lciwKICAgICAmc2NyaXB0RXhlY3V0aW9uU3RhdHVzLAotICAgICZkZWZhdWx0
TGFuZ3VhZ2UsCisgICAgW10geyByZXR1cm4gZGVmYXVsdExhbmd1YWdlKCk7IH0sCiAjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZKQogICAgICZjb21waWxlU3RyZWFtaW5nLAogICAgICZpbnN0YW50aWF0
ZVN0cmVhbWluZywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5j
ZXMuY3BwCmluZGV4IGQzZTQ1ZThiYjRjN2QyMDBjZDNhNGEyMTI4MjBkZTRlZGZjZDFiZjguLjU1
ZmEwOTY0YzdmZDk4ODYzNWVmMzMyNWNiZGFiZjBlMjEzNDQ4NGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcApAQCAtMTcwLDcgKzE3MCw3IEBA
IHZvaWQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Y2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgp
CiAKIFZlY3RvcjxTdHJpbmc+IENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByZWZlcnJlZExhbmd1
YWdlcygpIGNvbnN0CiB7Ci0gICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzID0gdXNlclByZWZl
cnJlZExhbmd1YWdlcygpOworICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlcyA9IHVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKTsKICAgICBpZiAobV90
ZXN0aW5nTW9kZSAmJiAhbV91c2VyUHJlZmVycmVkTGFuZ3VhZ2UuaXNFbXB0eSgpKQogICAgICAg
ICBsYW5ndWFnZXMuaW5zZXJ0KDAsIG1fdXNlclByZWZlcnJlZExhbmd1YWdlKTsKIApAQCAtMzQx
LDcgKzM0MSw3IEBAIGludCBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjp0ZXh0VHJhY2tTZWxlY3Rp
b25TY29yZShUZXh0VHJhY2sqIHRyYWNrLCBIVE1MTWVkaWFFCiAgICAgICAgICAgICBpZiAob2Zm
c2V0KQogICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgbGFuZ3VhZ2VMaXN0LmFwcGVuZChkZWZhdWx0TGFuZ3VhZ2UoKSk7CisgICAgICAgICAg
ICBsYW5ndWFnZUxpc3QuYXBwZW5kKGRlZmF1bHRMYW5ndWFnZShTaG91bGRNaW5pbWl6ZUxhbmd1
YWdlczo6Tm8pKTsKIAogICAgICAgICAgICAgLy8gT25seSBlbmFibGUgYSB0ZXh0IHRyYWNrIGlm
IHRoZSBjdXJyZW50IGF1ZGlvIHRyYWNrIGlzIE5PVCBpbiB0aGUgdXNlcidzIHByZWZlcnJlZCBs
YW5ndWFnZSAuLi4KICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQgPSBpbmRleE9mQmVzdE1hdGNo
aW5nTGFuZ3VhZ2VJbkxpc3QoYXVkaW9UcmFja0xhbmd1YWdlLCBsYW5ndWFnZUxpc3QsIGV4YWN0
TWF0Y2gpOwpAQCAtNDE4LDcgKzQxOCw3IEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2Vz
OjpwcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGUoKSBjb25zdAogewogICAgIGlmICgh
bV9wcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGUuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gbV9wcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGU7Ci0gICAgcmV0dXJuIGRl
ZmF1bHRMYW5ndWFnZSgpOworICAgIHJldHVybiBkZWZhdWx0TGFuZ3VhZ2UoU2hvdWxkTWluaW1p
emVMYW5ndWFnZXM6Ok5vKTsKIH0KICAgICAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKaW5kZXggY2YyZTFiZWEyNWIw
ZjA3OTk4NjM5MjA1OTQ1ZGYwZWVmOTJkM2M0Mi4uOWQ3MmVkNjVlMmYzYTc4NTgwN2EzZmYyNWJi
ZmRmM2MwNTI2MjA0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNl
clByZWZlcmVuY2VzTWVkaWFBRi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9u
VXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAKQEAgLTQ3MSwzNiArNDcxLDIwIEBAIHZvaWQgQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OnNldFByZWZlcnJlZExhbmd1YWdlKGNvbnN0IFN0
cmluZyYgbGFuZ3VhZ2UpCiAKIFZlY3RvcjxTdHJpbmc+IENhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
ZWRpYUFGOjpwcmVmZXJyZWRMYW5ndWFnZXMoKSBjb25zdAogewotICAgIGlmICh0ZXN0aW5nTW9k
ZSgpIHx8ICFNZWRpYUFjY2Vzc2liaWxpdHlMaWJyYXJ5KCkpCi0gICAgICAgIHJldHVybiBDYXB0
aW9uVXNlclByZWZlcmVuY2VzOjpwcmVmZXJyZWRMYW5ndWFnZXMoKTsKLQotICAgIFZlY3RvcjxT
dHJpbmc+IHBsYXRmb3JtTGFuZ3VhZ2VzID0gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
KCk7Ci0gICAgVmVjdG9yPFN0cmluZz4gb3ZlcnJpZGUgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
T3ZlcnJpZGUoKTsKLSAgICBpZiAoIW92ZXJyaWRlLmlzRW1wdHkoKSkgewotICAgICAgICBpZiAo
cGxhdGZvcm1MYW5ndWFnZXMuc2l6ZSgpICE9IG92ZXJyaWRlLnNpemUoKSkKLSAgICAgICAgICAg
IHJldHVybiBvdmVycmlkZTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvdmVycmlk
ZS5zaXplKCk7IGkrKykgewotICAgICAgICAgICAgaWYgKG92ZXJyaWRlW2ldICE9IHBsYXRmb3Jt
TGFuZ3VhZ2VzW2ldKQotICAgICAgICAgICAgICAgIHJldHVybiBvdmVycmlkZTsKKyAgICBhdXRv
IHByZWZlcnJlZExhbmd1YWdlcyA9IENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByZWZlcnJlZExh
bmd1YWdlcygpOworICAgIGlmICghdGVzdGluZ01vZGUoKSAmJiBNZWRpYUFjY2Vzc2liaWxpdHlM
aWJyYXJ5KCkpIHsKKyAgICAgICAgYXV0byBjYXB0aW9uTGFuZ3VhZ2VzID0gYWRvcHRDRihNQUNh
cHRpb25BcHBlYXJhbmNlQ29weVNlbGVjdGVkTGFuZ3VhZ2VzKGtNQUNhcHRpb25BcHBlYXJhbmNl
RG9tYWluVXNlcikpOworICAgICAgICBDRkluZGV4IGNhcHRpb25MYW5ndWFnZXNDb3VudCA9IGNh
cHRpb25MYW5ndWFnZXMgPyBDRkFycmF5R2V0Q291bnQoY2FwdGlvbkxhbmd1YWdlcy5nZXQoKSkg
OiAwOworICAgICAgICBpZiAoY2FwdGlvbkxhbmd1YWdlc0NvdW50KSB7CisgICAgICAgICAgICBW
ZWN0b3I8U3RyaW5nPiB0ZW1wOworICAgICAgICAgICAgdGVtcC5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KGNhcHRpb25MYW5ndWFnZXNDb3VudCArIHByZWZlcnJlZExhbmd1YWdlcy5zaXplKCkpOwor
ICAgICAgICAgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgY2FwdGlvbkxhbmd1YWdlc0NvdW50
OyBpKyspCisgICAgICAgICAgICAgICAgdGVtcC51bmNoZWNrZWRBcHBlbmQoc3RhdGljX2Nhc3Q8
Q0ZTdHJpbmdSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoY2FwdGlvbkxhbmd1YWdlcy5nZXQo
KSwgaSkpKTsKKyAgICAgICAgICAgIHRlbXAuYXBwZW5kVmVjdG9yKFdURk1vdmUocHJlZmVycmVk
TGFuZ3VhZ2VzKSk7CisgICAgICAgICAgICBwcmVmZXJyZWRMYW5ndWFnZXMgPSBXVEZNb3ZlKHRl
bXApOwogICAgICAgICB9CiAgICAgfQotCi0gICAgQ0ZJbmRleCBsYW5ndWFnZUNvdW50ID0gMDsK
LSAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gbGFuZ3VhZ2VzID0gYWRvcHRDRihNQUNhcHRpb25B
cHBlYXJhbmNlQ29weVNlbGVjdGVkTGFuZ3VhZ2VzKGtNQUNhcHRpb25BcHBlYXJhbmNlRG9tYWlu
VXNlcikpOwotICAgIGlmIChsYW5ndWFnZXMpCi0gICAgICAgIGxhbmd1YWdlQ291bnQgPSBDRkFy
cmF5R2V0Q291bnQobGFuZ3VhZ2VzLmdldCgpKTsKLQotICAgIGlmICghbGFuZ3VhZ2VDb3VudCkK
LSAgICAgICAgcmV0dXJuIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByZWZlcnJlZExhbmd1YWdl
cygpOwotCi0gICAgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlczsKLSAgICB1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLnJlc2VydmVDYXBhY2l0eShsYW5ndWFnZUNvdW50ICsgcGxh
dGZvcm1MYW5ndWFnZXMuc2l6ZSgpKTsKLSAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBsYW5n
dWFnZUNvdW50OyBpKyspCi0gICAgICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5kKHN0
YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGxhbmd1YWdlcy5n
ZXQoKSwgaSkpKTsKLQotICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5kVmVjdG9yKHBs
YXRmb3JtTGFuZ3VhZ2VzKTsKLQotICAgIHJldHVybiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwor
ICAgIHJldHVybiBwcmVmZXJyZWRMYW5ndWFnZXM7CiB9CiAKIHZvaWQgQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlc01lZGlhQUY6OnNldFByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWMoY29uc3QgU3Ry
aW5nJiBjaGFyYWN0ZXJpc3RpYykKQEAgLTU3OSwxMyArNTYzLDE1IEBAIHN0YXRpYyB2b2lkIGJ1
aWxkRGlzcGxheVN0cmluZ0ZvclRyYWNrQmFzZShTdHJpbmdCdWlsZGVyJiBkaXNwbGF5TmFtZSwg
Y29uc3QgVHJhCiAgICAgU3RyaW5nIGxhYmVsID0gdHJhY2subGFiZWwoKTsKICAgICBTdHJpbmcg
dHJhY2tMYW5ndWFnZUlkZW50aWZpZXIgPSB0cmFjay52YWxpZEJDUDQ3TGFuZ3VhZ2UoKTsKIAot
ICAgIFJldGFpblB0cjxDRkxvY2FsZVJlZj4gY3VycmVudExvY2FsZSA9IGFkb3B0Q0YoQ0ZMb2Nh
bGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGVmYXVsdExhbmd1YWdlKCkuY3JlYXRlQ0ZT
dHJpbmcoKS5nZXQoKSkpOworICAgIGF1dG8gcHJlZmVycmVkTGFuZ3VhZ2VzID0gdXNlclByZWZl
cnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6Tm8pOworICAgIGF1dG8gZGVm
YXVsdExhbmd1YWdlID0gIXByZWZlcnJlZExhbmd1YWdlcy5pc0VtcHR5KCkgPyBwcmVmZXJyZWRM
YW5ndWFnZXNbMF0gOiBlbXB0eVN0cmluZygpOyAvLyBUaGlzIG1hdGNoZXMgYFdURjo6ZGVmYXVs
dExhbmd1YWdlYC4KKyAgICBSZXRhaW5QdHI8Q0ZMb2NhbGVSZWY+IGN1cnJlbnRMb2NhbGUgPSBh
ZG9wdENGKENGTG9jYWxlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRlZmF1bHRMYW5ndWFn
ZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBs
b2NhbGVJZGVudGlmaWVyID0gYWRvcHRDRihDRkxvY2FsZUNyZWF0ZUNhbm9uaWNhbExvY2FsZUlk
ZW50aWZpZXJGcm9tU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIHRyYWNrTGFuZ3VhZ2VJZGVu
dGlmaWVyLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdS
ZWY+IGxhbmd1YWdlQ0YgPSBhZG9wdENGKENGTG9jYWxlQ29weURpc3BsYXlOYW1lRm9yUHJvcGVy
dHlWYWx1ZShjdXJyZW50TG9jYWxlLmdldCgpLCBrQ0ZMb2NhbGVMYW5ndWFnZUNvZGUsIGxvY2Fs
ZUlkZW50aWZpZXIuZ2V0KCkpKTsKICAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBsYW5ndWFnZUNGLmdl
dCgpOwogCiAgICAgaWYgKCFsYWJlbC5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKGxhbmd1YWdl
LmlzRW1wdHkoKSB8fCBsYWJlbC5jb250YWlucyhsYW5ndWFnZSkpCisgICAgICAgIGlmIChsYW5n
dWFnZS5pc0VtcHR5KCkgfHwgbGFiZWwuY29udGFpbnMobGFuZ3VhZ2UpIHx8IHByZWZlcnJlZExh
bmd1YWdlcy5jb250YWlucyh0cmFja0xhbmd1YWdlSWRlbnRpZmllcikpCiAgICAgICAgICAgICBk
aXNwbGF5TmFtZS5hcHBlbmQobGFiZWwpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIFJl
dGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGxvY2FsZURpY3QgPSBhZG9wdENGKENGTG9jYWxlQ3Jl
YXRlQ29tcG9uZW50c0Zyb21Mb2NhbGVJZGVudGlmaWVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIGxv
Y2FsZUlkZW50aWZpZXIuZ2V0KCkpKTsKQEAgLTcwOSwxNSArNjk1LDE2IEBAIFN0cmluZyBDYXB0
aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6ZGlzcGxheU5hbWVGb3JUcmFjayhUZXh0VHJhY2sq
IHRyYWNrKSBjb25zCiAKIHN0YXRpYyBib29sIHRleHRUcmFja0NvbXBhcmUoY29uc3QgUmVmUHRy
PFRleHRUcmFjaz4mIGEsIGNvbnN0IFJlZlB0cjxUZXh0VHJhY2s+JiBiKQogewotICAgIFN0cmlu
ZyBwcmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lID0gZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxv
Y2FsZShsYW5ndWFnZUlkZW50aWZpZXIoZGVmYXVsdExhbmd1YWdlKCkpKTsKICAgICBTdHJpbmcg
YUxhbmd1YWdlRGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlKGxhbmd1
YWdlSWRlbnRpZmllcihhLT52YWxpZEJDUDQ3TGFuZ3VhZ2UoKSkpOwogICAgIFN0cmluZyBiTGFu
Z3VhZ2VEaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUobGFuZ3VhZ2VJ
ZGVudGlmaWVyKGItPnZhbGlkQkNQNDdMYW5ndWFnZSgpKSk7CiAKLSAgICAvLyBUcmFja3MgaW4g
dGhlIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2UgYXJlIGFsd2F5cyBhdCB0aGUgdG9wIG9mIHRo
ZSBtZW51LgotICAgIGJvb2wgYUlzUHJlZmVycmVkTGFuZ3VhZ2UgPSBhTGFuZ3VhZ2VEaXNwbGF5
TmFtZSA9PSBwcmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lOwotICAgIGJvb2wgYklzUHJlZmVy
cmVkTGFuZ3VhZ2UgPSBiTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9PSBwcmVmZXJyZWRMYW5ndWFnZURp
c3BsYXlOYW1lOwotICAgIGlmIChhSXNQcmVmZXJyZWRMYW5ndWFnZSAhPSBiSXNQcmVmZXJyZWRM
YW5ndWFnZSkKLSAgICAgICAgcmV0dXJuIGFJc1ByZWZlcnJlZExhbmd1YWdlOworICAgIGZvciAo
YXV0byYgcHJlZmVycmVkTGFuZ3VhZ2UgOiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzOjpObykpIHsKKyAgICAgICAgU3RyaW5nIHByZWZlcnJlZExhbmd1YWdl
RGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlKGxhbmd1YWdlSWRlbnRp
ZmllcihwcmVmZXJyZWRMYW5ndWFnZSkpOworICAgICAgICBib29sIGFJc1ByZWZlcnJlZExhbmd1
YWdlID0gYUxhbmd1YWdlRGlzcGxheU5hbWUgPT0gcHJlZmVycmVkTGFuZ3VhZ2VEaXNwbGF5TmFt
ZTsKKyAgICAgICAgYm9vbCBiSXNQcmVmZXJyZWRMYW5ndWFnZSA9IGJMYW5ndWFnZURpc3BsYXlO
YW1lID09IHByZWZlcnJlZExhbmd1YWdlRGlzcGxheU5hbWU7CisgICAgICAgIGlmIChhSXNQcmVm
ZXJyZWRMYW5ndWFnZSAhPSBiSXNQcmVmZXJyZWRMYW5ndWFnZSkKKyAgICAgICAgICAgIHJldHVy
biBhSXNQcmVmZXJyZWRMYW5ndWFnZTsKKyAgICB9CiAKICAgICBDb2xsYXRvciBjb2xsYXRvcjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCmlu
ZGV4IDliZDU2NDg0MGMyODJhZjU3YTEwZDRlNGRjYmU4NzU3MzRiYzgyNmEuLmI0MTliNjBkOThl
MzY2ZGI0N2RjNzA1N2ViZDI1NzY4ZGMzZDY5MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KQEAgLTEzNCw3ICsxMzQsNyBAQCB2b2lkIE1l
ZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDOjp1cGRhdGVPcHRpb25zKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBjaGFyYWN0ZXJpcwogICAgICAgICByZXR1cm47CiAKICAgICBOU0FycmF5KiBmaWx0ZXJl
ZE9wdGlvbnMgPSBbUEFMOjpnZXRBVk1lZGlhU2VsZWN0aW9uR3JvdXBDbGFzcygpIG1lZGlhU2Vs
ZWN0aW9uT3B0aW9uc0Zyb21BcnJheTpbbV9tZWRpYVNlbGVjdGlvbkdyb3VwIG9wdGlvbnNdCi0g
ICAgICAgIGZpbHRlcmVkQW5kU29ydGVkQWNjb3JkaW5nVG9QcmVmZXJyZWRMYW5ndWFnZXM6Y3Jl
YXRlTlNBcnJheSh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkpLmdldCgpXTsKKyAgICAgICAgZmls
dGVyZWRBbmRTb3J0ZWRBY2NvcmRpbmdUb1ByZWZlcnJlZExhbmd1YWdlczpjcmVhdGVOU0FycmF5
KHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKSkuZ2V0
KCldOwogCiAgICAgaWYgKCFbZmlsdGVyZWRPcHRpb25zIGNvdW50XSAmJiBjaGFyYWN0ZXJpc3Rp
Y3MuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjMwOTRiYWZkZWM3Mjc0N2UzYTgwZTYxMzg5MWVi
ZmVkMmNlZTQzOC4uYWExODFmNDY2ZmVkYmZmMzFhNTA0YjdkMzlkN2RhZTBkMDY1ODlkMyAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDIxLTA1LTIyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlh
IGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxsIGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9y
IG9yZGVyaW5nIHRyYWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9jZi9MYW5ndWFnZS5jcHA6IEFkZGVk
LgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVC5MYW5ndWFnZS5TaG91bGRNaW5pbWl6ZUxh
bmd1YWdlc1llcyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNULkxhbmd1YWdlLlNob3Vs
ZE1pbmltaXplTGFuZ3VhZ2VzTm8pOgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25maWd1
cmF0aW9ucy9UZXN0V1RGLnhjY29uZmlnOgorICAgICAgICBMaW5rIGBJbnRlcm5hdGlvbmFsU3Vw
cG9ydGAgYXMgdGhhdCdzIHdoZXJlIHRoZSBgTlNMb2NhbGVgIGV4dGVuc2lvbnMgYXJlIGltcGxl
bWVudGVkLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMDUtMjEgIEFha2FzaCBKYWluICA8YWFrYXNoX2ph
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJ1biBsYXlvdXQgdGVzdHMgaW4gc3RyZXNzIG1vZGUg
Zm9yIDEwIGl0ZXJhdGlvbnMgb24gcmVndWxhciBFV1MgbGF5b3V0LXRlc3QgcXVldWVzCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXVEYueGNjb25m
aWcgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXVEYueGNjb25maWcK
aW5kZXggZTZhMjk3N2ZiNDUyZDhhMjYyZjM3NDRiNDVjZmE1YTVmOTMzODJkMS4uZjhlYzgxYWE2
MmVkZDY0OTJjN2RkNjExMzk0YmZmOThmODcxMzcyMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V1RGLnhjY29uZmlnCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdURi54Y2NvbmZpZwpAQCAtMjksMTAgKzI5LDEz
IEBAIEdDQ19FTkFCTEVfT0JKQ19FWENFUFRJT05TID0gWUVTOwogCiBHQ0NfUFJFUFJPQ0VTU09S
X0RFRklOSVRJT05TID0gJChpbmhlcml0ZWQpIEJVSUxESU5HX1RFU1RfV1RGIEdURVNUX0FQSV89
CiAKKy8vIE5lZWRlZCBieSBgU291cmNlL1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbWAu
CitXS19JTlRFUk5BVElPTkFMX1NVUFBPUlRfTERGTEFHUyA9IC1mcmFtZXdvcmsgSW50ZXJuYXRp
b25hbFN1cHBvcnQ7CisKIFdLX1VJS0lUTUFDSEVMUEVSX0xERkxBR1MgPSAkKFdLX1VJS0lUTUFD
SEVMUEVSX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CiBXS19VSUtJVE1BQ0hFTFBFUl9M
REZMQUdTX21hY2NhdGFseXN0ID0gLWZyYW1ld29yayBVSUtpdE1hY0hlbHBlcjsKIAotT1RIRVJf
TERGTEFHUyA9ICQoaW5oZXJpdGVkKSAtbGd0ZXN0IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9saWJUZXN0V1RGLmEgJChXS19VSUtJVE1BQ0hFTFBFUl9MREZMQUdTKSAkKE9USEVS
X0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpOworT1RIRVJfTERGTEFHUyA9ICQo
aW5oZXJpdGVkKSAtbGd0ZXN0IC1pZnJhbWV3b3JrICQoU0RLX0RJUikkKFNZU1RFTV9MSUJSQVJZ
X0RJUikvUHJpdmF0ZUZyYW1ld29ya3MgLWZvcmNlX2xvYWQgJChCVUlMVF9QUk9EVUNUU19ESVIp
L2xpYlRlc3RXVEYuYSAkKFdLX0lOVEVSTkFUSU9OQUxfU1VQUE9SVF9MREZMQUdTKSAkKFdLX1VJ
S0lUTUFDSEVMUEVSX0xERkxBR1MpICQoT1RIRVJfTERGTEFHU19QTEFURk9STV8kKFdLX0NPQ09B
X1RPVUNIKSk7CiBPVEhFUl9MREZMQUdTX1BMQVRGT1JNXyA9IC1mcmFtZXdvcmsgQ29jb2EgLWZy
YW1ld29yayBDYXJib247CiAKIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBub3QgYmUgYnVpbHQgb24g
aU9TLiBJbnN0ZWFkIHdlIHNob3VsZCBjcmVhdGUgYW5kIHVzZSBhIFRlc3RXVEYgYXBwbGljYXRp
b24uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNiYjhlYmI2MmI1ZjYzNTllNWMyODcxYjhm
NWVkNWZhMGZkMGNjNmQuLmYxNjYwYzdlNWMyYTM1MzhjZTFhMDQ4YzNlMjFkOTEwOGYzYjFlMGMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NzksNiArODc5LDcgQEAKIAkJOTUwOTVGMjAy
NjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdlVG9wQ29sb3IubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTA5NUYxRjI2MkZGRkE1MDAwMEQ5MjAg
LyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSAqLzsgfTsKIAkJOTUwRTRDQzEyNTJFNzUyNDAwNzE2
NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5NTBFNENDMDI1MkU3NTIzMDA3MTY1OUYgLyogaU9TU3R5bHVzU3Vw
cG9ydC5tbSAqLzsgfTsKIAkJOTUzQUJCMzUyNUMwRDY4MjAwNEM4QjczIC8qIFdLV2ViVmlld1Vu
ZGVyUGFnZUJhY2tncm91bmRDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk1M0FCQjM0MjVDMEQ2ODEwMDRDOEI3MyAvKiBXS1dlYlZpZXdVbmRl
clBhZ2VCYWNrZ3JvdW5kQ29sb3IubW0gKi87IH07CisJCTk1NEU0MTMwMjY1NkUwNjgwMDQ1NUQ0
RiAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NTRFNDEyRTI2NTZFMDYzMDA0NTVENEYgLyogTGFuZ3VhZ2UuY3BwICovOyB9Owog
CQk5NUE1MjQ5NTI1ODFBMTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3VGhlbWVDb2xvci5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QTUyNDk0MjU4MUEx
MEQwMDQ2MUZFOSAvKiBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tICovOyB9OwogCQk5NUI2QjNCNzI1
MUVCRjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QjZCM0I2MjUxRUJGMkYwMEZDNDM4MiAvKiBNZWRp
YURvY3VtZW50Lm1tICovOyB9OwogCQk5OTg0RkFDQzFDRkZBRjYwMDA4RDE5OEMgLyogV0tXZWJW
aWV3VGV4dElucHV0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTk4NEZBQ0ExQ0ZGQUVFRTAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSAq
LzsgfTsKQEAgLTI1ODcsNiArMjU4OCw3IEBACiAJCTk1MDk1RjFGMjYyRkZGQTUwMDAwRDkyMCAv
KiBTYW1wbGVkUGFnZVRvcENvbG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gU2FtcGxlZFBhZ2VUb3BDb2xvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBpT1NTdHlsdXNTdXBwb3J0Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTNBQkIzNDI1QzBENjgxMDA0QzhCNzMg
LyogV0tXZWJWaWV3VW5kZXJQYWdlQmFja2dyb3VuZENvbG9yLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3VW5kZXJQYWdlQmFja2dyb3VuZENvbG9y
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTRFNDEyRTI2NTZFMDYzMDA0NTVE
NEYgLyogTGFuZ3VhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TGFuZ3VhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUE1MjQ5NDI1ODFB
MTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3VGhlbWVDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1RoZW1lQ29sb3IubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk1QjZCM0I2MjUxRUJGMkYwMEZDNDM4MiAvKiBNZWRpYURvY3Vt
ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFEb2N1
bWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk4NEZBQ0ExQ0ZGQUVFRTAw
OEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1RleHRJbnB1dC5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTQ4MTksNiArNDgyMSw3IEBACiAJCUMwOTkxQzRGMTQzQzdENjgwMDc5OThG
MiAvKiBjZiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
OTU0RTQxMkUyNjU2RTA2MzAwNDU1RDRGIC8qIExhbmd1YWdlLmNwcCAqLywKIAkJCQlCQzAyOUIx
NjE0ODZBRDY0MDA4MTdEQTkgLyogUmV0YWluUHRyLmNwcCAqLywKIAkJCQlDMDk5MUM1MDE0M0M3
RDY4MDA3OTk4RjIgLyogUmV0YWluUHRySGFzaGluZy5jcHAgKi8sCiAJCQkpOwpAQCAtNTIwMCw2
ICs1MjAzLDcgQEAKIAkJCQk1M0ZDREU2QjIyOUVGRkI5MDA1OThFQ0YgLyogSXNvSGVhcC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3Q0VCNjJBQjIyMzYwOURFMDA2OUNCQjAgLyogSXRlcmF0b3JS
YW5nZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTA1MDk0MTFGQjlGMDY0MDBCMzNGQjggLyog
SlNPTlZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk1NEU0MTMwMjY1NkUwNjgwMDQ1NUQ0
RiAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MzFDMUQ4RTFERjhFRjcyMDA2
RTk3OUYgLyogTEVCRGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdENTRGOTFGMzM5
N0I0MDBBOTdBQTcgLyogTGlmZWN5Y2xlTG9nZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkz
RTJDNTU1MUZEMzIwNDEwMEUxREY2QSAvKiBMaW5lRW5kaW5nLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvTGFuZ3VhZ2UuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvTGFuZ3VhZ2UuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFlYjQ2NWQwNmE5NmE1OTE4YjczZWNlZjhkNzhjYWViZTI2ZmM1ZTYKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9jZi9MYW5ndWFnZS5jcHAKQEAg
LTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1
ZGUgPHd0Zi9MYW5ndWFnZS5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVEVTVChMYW5ndWFnZSwgU2hvdWxkTWluaW1p
emVMYW5ndWFnZXNZZXMpCit7CisgICAgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHsg
fSk7CisgICAgV1RGOjpvdmVycmlkZUluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXNGb3JUZXN0aW5nKHsgImVuLVVTIl9zLCAiZXMtVVMiX3MsICJmci1VUyJfcyB9KTsKKworICAg
IGF1dG8gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxh
bmd1YWdlczo6WWVzKTsKKyAgICBBTFdBWVNfTE9HX1dJVEhfU1RSRUFNKHN0cmVhbSA8PCAiTGFu
Z3VhZ2UuU2hvdWxkTWluaW1pemVMYW5ndWFnZXNZZXMgLSBsYW5ndWFnZXMgPSAiIDw8IGxhbmd1
YWdlcyk7CisKKyAgICBhdXRvIGVuZ2xpc2hVU0luZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImVuLVVT
Il9zKTsKKyAgICBhdXRvIGVuZ2xpc2hJbmRleCA9IGxhbmd1YWdlcy5maW5kKCJlbiJfcyk7Cisg
ICAgYXV0byBzcGFuaXNoVVNJbmRleCA9IGxhbmd1YWdlcy5maW5kKCJlcy1VUyJfcyk7CisgICAg
YXV0byBzcGFuaXNoSW5kZXggPSBsYW5ndWFnZXMuZmluZCgiZXMiX3MpOworICAgIGF1dG8gZnJl
bmNoVVNJbmRleCA9IGxhbmd1YWdlcy5maW5kKCJmci1VUyJfcyk7CisgICAgYXV0byBmcmVuY2hJ
bmRleCA9IGxhbmd1YWdlcy5maW5kKCJmciJfcyk7CisKKyAgICBFWFBFQ1RfVFJVRShlbmdsaXNo
VVNJbmRleCAhPSBub3RGb3VuZCB8fCBlbmdsaXNoSW5kZXggIT0gbm90Rm91bmQpOworICAgIEVY
UEVDVF9FUShzcGFuaXNoVVNJbmRleCwgbm90Rm91bmQpOworICAgIEVYUEVDVF9FUShzcGFuaXNo
SW5kZXgsIG5vdEZvdW5kKTsKKyAgICBFWFBFQ1RfRVEoZnJlbmNoVVNJbmRleCwgbm90Rm91bmQp
OworICAgIEVYUEVDVF9FUShmcmVuY2hJbmRleCwgbm90Rm91bmQpOworCisgICAgV1RGOjpvdmVy
cmlkZUluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNGb3JUZXN0aW5nKHsgfSk7
IC8vIGNsZWFudXAKK30KKworVEVTVChMYW5ndWFnZSwgU2hvdWxkTWluaW1pemVMYW5ndWFnZXNO
bykKK3sKKyAgICBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoeyB9KTsKKyAgICBXVEY6
Om92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0ZvclRlc3Rpbmco
eyAiZW4tVVMiX3MsICJlcy1VUyJfcywgImZyLVVTIl9zIH0pOworCisgICAgYXV0byBsYW5ndWFn
ZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObyk7
CisgICAgQUxXQVlTX0xPR19XSVRIX1NUUkVBTShzdHJlYW0gPDwgIkxhbmd1YWdlLlNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzTm8gLSBsYW5ndWFnZXMgPSAiIDw8IGxhbmd1YWdlcyk7CisKKyAgICBh
dXRvIGVuZ2xpc2hVU0luZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImVuLVVTIl9zKTsKKyAgICBhdXRv
IGVuZ2xpc2hJbmRleCA9IGxhbmd1YWdlcy5maW5kKCJlbiJfcyk7CisgICAgYXV0byBzcGFuaXNo
VVNJbmRleCA9IGxhbmd1YWdlcy5maW5kKCJlcy1VUyJfcyk7CisgICAgYXV0byBzcGFuaXNoSW5k
ZXggPSBsYW5ndWFnZXMuZmluZCgiZXMiX3MpOworICAgIGF1dG8gZnJlbmNoVVNJbmRleCA9IGxh
bmd1YWdlcy5maW5kKCJmci1VUyJfcyk7CisgICAgYXV0byBmcmVuY2hJbmRleCA9IGxhbmd1YWdl
cy5maW5kKCJmciJfcyk7CisKKyAgICBFWFBFQ1RfTkUoZW5nbGlzaFVTSW5kZXgsIG5vdEZvdW5k
KTsKKyAgICBpZiAoZW5nbGlzaEluZGV4ICE9IG5vdEZvdW5kKSB7CisgICAgICAgIEVYUEVDVF9H
VChlbmdsaXNoSW5kZXgsIGVuZ2xpc2hVU0luZGV4KTsKKyAgICAgICAgRVhQRUNUX0xUKGVuZ2xp
c2hJbmRleCwgc3BhbmlzaFVTSW5kZXgpOworICAgIH0KKyAgICBFWFBFQ1RfTkUoc3BhbmlzaFVT
SW5kZXgsIG5vdEZvdW5kKTsKKyAgICBFWFBFQ1RfR1Qoc3BhbmlzaFVTSW5kZXgsIGVuZ2xpc2hV
U0luZGV4KTsKKyAgICBpZiAoc3BhbmlzaEluZGV4ICE9IG5vdEZvdW5kKSB7CisgICAgICAgIEVY
UEVDVF9HVChzcGFuaXNoSW5kZXgsIHNwYW5pc2hVU0luZGV4KTsKKyAgICAgICAgRVhQRUNUX0xU
KHNwYW5pc2hJbmRleCwgZnJlbmNoVVNJbmRleCk7CisgICAgfQorICAgIEVYUEVDVF9ORShmcmVu
Y2hVU0luZGV4LCBub3RGb3VuZCk7CisgICAgRVhQRUNUX0dUKGZyZW5jaFVTSW5kZXgsIHNwYW5p
c2hVU0luZGV4KTsKKyAgICBpZiAoZnJlbmNoSW5kZXggIT0gbm90Rm91bmQpCisgICAgICAgIEVY
UEVDVF9HVChmcmVuY2hJbmRleCwgZnJlbmNoVVNJbmRleCk7CisKKyAgICBXVEY6Om92ZXJyaWRl
SW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0ZvclRlc3RpbmcoeyB9KTsgLy8g
Y2xlYW51cAorfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9X
ZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwppbmRl
eCBkMmMyMGI5NTY2MjA5YzU1YzcxMDM0MmU3ZDg5YmQwMzJjOTBhMmFiLi5kZDMxZDIyZmI3ZjFj
MmZhZDVkZTQ4ZDRiYTkwZDYwYjM5MjhlZjAwIDEwMDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBA
QAorMjAyMS0wNS0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAg
ICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRpYSBjb250
cm9scyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZvciBvcmRl
cmluZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qgb2YgbGFuZ3Vh
Z2UgcHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29ydC9vcmRlciB0
aGUgbGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBsZSwgaWYgYSBg
PHZpZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3BhbmlzaCwgYW5k
IEZyZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQgRnJlbmNoIChh
bHRlcm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYgUmVnaW9uIHZp
ZXcgb2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxkIG9yZGVyCisg
ICAgICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0aGVuIFNwYW5p
c2guCisKKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzEwMTUwMC9J
bnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzEwMTYwMC9J
bnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzExMDAwMC9J
bnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE0
L0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQ6
IEFkZGVkLgorICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTQvSW50
ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZDogQWRk
ZWQuCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL3dhdGNob3MvNy9JbnRl
cm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkOiBBZGRl
ZC4KKyAgICAgICAgTGluayBgSW50ZXJuYXRpb25hbFN1cHBvcnRgIGFzIHRoYXQncyB3aGVyZSB0
aGUgYE5TTG9jYWxlYCBleHRlbnNpb25zIGFyZSBpbXBsZW1lbnRlZC4KKwogMjAyMS0wMS0wNCAg
SmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHVzZXItdmlz
aWJsZSBjb3B5cmlnaHQgc3RyaW5ncyB0byBpbmNsdWRlIDIwMjEKZGlmZiAtLWdpdCBhL1dlYktp
dExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzEwMTUwMC9JbnRlcm5h
dGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkIGIvV2ViS2l0
TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9NYWMvMTAxNTAwL0ludGVybmF0
aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmE4MDg4NTBjYmM2Yjg5MDQ4MWU3Y2FmY2Q4MDhkZjdjNTQ5MDZlMAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzEw
MTUwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQu
dGJkCkBAIC0wLDAgKzEsOSBAQAorLS0tICF0YXBpLXRiZC12MworYXJjaHM6ICAgICAgICAgICBb
IHg4Nl82NCBdCit1dWlkczogICAgICAgICAgIFsgJ3g4Nl82NDogOUJBQkM3MjYtNjIyRi0zRTM1
LUE4QzUtRTcyMjY3N0EzMDhDJywgJ3g4Nl82NDogOUJBQkM3MjYtNjIyRi0zRTM1LUE4QzUtRTcy
MjY3N0EzMDhDJyBdCitwbGF0Zm9ybTogICAgICAgIHppcHBlcmVkCitpbnN0YWxsLW5hbWU6ICAg
ICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvSW50ZXJuYXRpb25hbFN1cHBvcnQu
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvSW50ZXJuYXRpb25hbFN1cHBvcnQnCitjdXJyZW50LXZlcnNp
b246IDQ0CitleHBvcnRzOiAgICAgICAgIAorICAtIGFyY2hzOiAgICAgICAgICAgWyB4ODZfNjQg
XQorLi4uCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29y
a1N0dWJzL01hYy8xMDE2MDAvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0
aW9uYWxTdXBwb3J0LnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3Jr
U3R1YnMvTWFjLzEwMTYwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRp
b25hbFN1cHBvcnQudGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwYjUzNTM0Y2U5YjIxYWM1N2EzZWFhMjBlN2Q3
YjM5YWRhNjNlOTIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJp
dmF0ZUZyYW1ld29ya1N0dWJzL01hYy8xMDE2MDAvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3
b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZApAQCAtMCwwICsxLDIxIEBACistLS0gIXRhcGkt
dGJkCit0YmQtdmVyc2lvbjogICAgIDQKK3RhcmdldHM6ICAgICAgICAgWyB4ODZfNjQtbWFjb3Ms
IHg4Nl82NC1tYWNjYXRhbHlzdCwgYXJtNjQtbWFjb3MsIGFybTY0LW1hY2NhdGFseXN0LCBhcm02
NGUtbWFjb3MsIGFybTY0ZS1tYWNjYXRhbHlzdCBdCit1dWlkczoKKyAgLSB0YXJnZXQ6ICAgICAg
ICAgIHg4Nl82NC1tYWNvcworICAgIHZhbHVlOiAgICAgICAgICAgQUI1OEUxQjEtNjBFNS0zODNF
LUJDREUtRTNDNDhGNEJDNzg3CisgIC0gdGFyZ2V0OiAgICAgICAgICB4ODZfNjQtbWFjY2F0YWx5
c3QKKyAgICB2YWx1ZTogICAgICAgICAgIEFCNThFMUIxLTYwRTUtMzgzRS1CQ0RFLUUzQzQ4RjRC
Qzc4NworICAtIHRhcmdldDogICAgICAgICAgYXJtNjQtbWFjb3MKKyAgICB2YWx1ZTogICAgICAg
ICAgIDAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMAorICAtIHRhcmdldDogICAg
ICAgICAgYXJtNjQtbWFjY2F0YWx5c3QKKyAgICB2YWx1ZTogICAgICAgICAgIDAwMDAwMDAwLTAw
MDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMAorICAtIHRhcmdldDogICAgICAgICAgYXJtNjRlLW1h
Y29zCisgICAgdmFsdWU6ICAgICAgICAgICA5M0U3Mzc4Ni05RDZELTMyMjktQjJCNi1BNDdDOTBG
RkQzNDYKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybTY0ZS1tYWNjYXRhbHlzdAorICAgIHZhbHVl
OiAgICAgICAgICAgOTNFNzM3ODYtOUQ2RC0zMjI5LUIyQjYtQTQ3QzkwRkZEMzQ2CitpbnN0YWxs
LW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvSW50ZXJuYXRpb25h
bFN1cHBvcnQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSW50ZXJuYXRpb25hbFN1cHBvcnQnCitjdXJy
ZW50LXZlcnNpb246IDYwCitleHBvcnRzOgorICAtIHRhcmdldHM6ICAgICAgICAgWyBhcm02NGUt
bWFjb3MsIHg4Nl82NC1tYWNvcywgeDg2XzY0LW1hY2NhdGFseXN0LCBhcm02NGUtbWFjY2F0YWx5
c3QsIGFybTY0LW1hY29zLCBhcm02NC1tYWNjYXRhbHlzdCBdCisuLi4KZGlmZiAtLWdpdCBhL1dl
YktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzExMDAwMC9JbnRl
cm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkIGIvV2Vi
S2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9NYWMvMTEwMDAwL0ludGVy
bmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDBiNTM1MzRjZTliMjFhYzU3YTNlYWEyMGU3ZDdiMzlhZGE2M2U5MgotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFj
LzExMDAwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBv
cnQudGJkCkBAIC0wLDAgKzEsMjEgQEAKKy0tLSAhdGFwaS10YmQKK3RiZC12ZXJzaW9uOiAgICAg
NAordGFyZ2V0czogICAgICAgICBbIHg4Nl82NC1tYWNvcywgeDg2XzY0LW1hY2NhdGFseXN0LCBh
cm02NC1tYWNvcywgYXJtNjQtbWFjY2F0YWx5c3QsIGFybTY0ZS1tYWNvcywgYXJtNjRlLW1hY2Nh
dGFseXN0IF0KK3V1aWRzOgorICAtIHRhcmdldDogICAgICAgICAgeDg2XzY0LW1hY29zCisgICAg
dmFsdWU6ICAgICAgICAgICBBQjU4RTFCMS02MEU1LTM4M0UtQkNERS1FM0M0OEY0QkM3ODcKKyAg
LSB0YXJnZXQ6ICAgICAgICAgIHg4Nl82NC1tYWNjYXRhbHlzdAorICAgIHZhbHVlOiAgICAgICAg
ICAgQUI1OEUxQjEtNjBFNS0zODNFLUJDREUtRTNDNDhGNEJDNzg3CisgIC0gdGFyZ2V0OiAgICAg
ICAgICBhcm02NC1tYWNvcworICAgIHZhbHVlOiAgICAgICAgICAgMDAwMDAwMDAtMDAwMC0wMDAw
LTAwMDAtMDAwMDAwMDAwMDAwCisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NC1tYWNjYXRhbHlz
dAorICAgIHZhbHVlOiAgICAgICAgICAgMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAw
MDAwCisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NGUtbWFjb3MKKyAgICB2YWx1ZTogICAgICAg
ICAgIDkzRTczNzg2LTlENkQtMzIyOS1CMkI2LUE0N0M5MEZGRDM0NgorICAtIHRhcmdldDogICAg
ICAgICAgYXJtNjRlLW1hY2NhdGFseXN0CisgICAgdmFsdWU6ICAgICAgICAgICA5M0U3Mzc4Ni05
RDZELTMyMjktQjJCNi1BNDdDOTBGRkQzNDYKK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGli
cmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9JbnRlcm5hdGlvbmFsU3VwcG9ydCcKK2N1cnJlbnQtdmVyc2lvbjogNjAKK2V4cG9y
dHM6CisgIC0gdGFyZ2V0czogICAgICAgICBbIGFybTY0ZS1tYWNvcywgeDg2XzY0LW1hY29zLCB4
ODZfNjQtbWFjY2F0YWx5c3QsIGFybTY0ZS1tYWNjYXRhbHlzdCwgYXJtNjQtbWFjb3MsIGFybTY0
LW1hY2NhdGFseXN0IF0KKy4uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFBy
aXZhdGVGcmFtZXdvcmtTdHVicy9hcHBsZXR2b3MvMTQvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJh
bWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQ
cml2YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE0L0ludGVybmF0aW9uYWxTdXBwb3J0LmZy
YW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmQ3MDRiZjM5NjM0
NWNhNjRlMGQyMDhhYjM5YWZjNDQ3NWM4YzliZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExp
YnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE0L0ludGVybmF0
aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKQEAgLTAsMCAr
MSwxMyBAQAorLS0tICF0YXBpLXRiZAordGJkLXZlcnNpb246ICAgICA0Cit0YXJnZXRzOiAgICAg
ICAgIFsgYXJtNjQtdHZvcywgYXJtNjRlLXR2b3MgXQordXVpZHM6CisgIC0gdGFyZ2V0OiAgICAg
ICAgICBhcm02NC10dm9zCisgICAgdmFsdWU6ICAgICAgICAgICBGOUU5MDlCQy0xNzQwLTM0RkIt
QjQ5MC1GQTBCOEY4MDlGQkMKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybTY0ZS10dm9zCisgICAg
dmFsdWU6ICAgICAgICAgICA4RjVCMUMxNi03NzJBLTNDQTItQkEyQy1GQzVDOUIzNUQ5ODAKK2lu
c3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JbnRlcm5h
dGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQnCitjdXJyZW50LXZl
cnNpb246IDU5CitleHBvcnRzOgorICAtIHRhcmdldHM6ICAgICAgICAgWyBhcm02NC10dm9zLCBh
cm02NGUtdHZvcyBdCisuLi4KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2
YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9J
bnRlcm5hdGlvbmFsU3VwcG9ydC50YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZy
YW1ld29ya1N0dWJzL2lPUy8xNC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJu
YXRpb25hbFN1cHBvcnQudGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5ZWU2NDlmNDJlNDhiYTcyZDkxMzM0N2I1
Y2M1ZGVkNTM0MjA3MTEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0
UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdv
cmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCkBAIC0wLDAgKzEsMTcgQEAKKy0tLSAhdGFwaS10
YmQKK3RiZC12ZXJzaW9uOiAgICAgNAordGFyZ2V0czogICAgICAgICBbIGFybXY3LWlvcywgYXJt
djdzLWlvcywgYXJtNjQtaW9zLCBhcm02NGUtaW9zIF0KK3V1aWRzOgorICAtIHRhcmdldDogICAg
ICAgICAgYXJtdjctaW9zCisgICAgdmFsdWU6ICAgICAgICAgICAwMDAwMDAwMC0wMDAwLTAwMDAt
MDAwMC0wMDAwMDAwMDAwMDAKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybXY3cy1pb3MKKyAgICB2
YWx1ZTogICAgICAgICAgIDAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMAorICAt
IHRhcmdldDogICAgICAgICAgYXJtNjQtaW9zCisgICAgdmFsdWU6ICAgICAgICAgICAwODQ0MTlG
NS1CNzk0LTM3ODgtQjU1Ni0xRTMxMzc4Qjg4Q0YKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybTY0
ZS1pb3MKKyAgICB2YWx1ZTogICAgICAgICAgIEYzNUM3NUUxLTdFMzctM0UzQy04RjNGLURDMkI4
Q0FGQkU4QworaW5zdGFsbC1uYW1lOiAgICAnL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdv
cmtzL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydCcK
K2N1cnJlbnQtdmVyc2lvbjogNjEuMQorZXhwb3J0czoKKyAgLSB0YXJnZXRzOiAgICAgICAgIFsg
YXJtNjQtaW9zLCBhcm02NGUtaW9zLCBhcm12Ny1pb3MsIGFybXY3cy1pb3MgXQorLi4uCmRpZmYg
LS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL3dhdGNo
b3MvNy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQu
dGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy93YXRjaG9z
LzcvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRi
ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44YzQ3YTBkYTBiZjdmZDUyNDI4MzQ2ZmM5YTI0OTk1NDU0NDFiMTY4Ci0t
LSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtT
dHVicy93YXRjaG9zLzcvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9u
YWxTdXBwb3J0LnRiZApAQCAtMCwwICsxLDE1IEBACistLS0gIXRhcGktdGJkCit0YmQtdmVyc2lv
bjogICAgIDQKK3RhcmdldHM6ICAgICAgICAgWyBhcm12N2std2F0Y2hvcywgYXJtNjRlLXdhdGNo
b3MsIGFybTY0XzMyLXdhdGNob3MgXQordXVpZHM6CisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm12
N2std2F0Y2hvcworICAgIHZhbHVlOiAgICAgICAgICAgNzUxNjJDNDUtOTVGMy0zOTI3LTgyRUQt
QUIyODAzMkMxN0Y4CisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NGUtd2F0Y2hvcworICAgIHZh
bHVlOiAgICAgICAgICAgRjMzQjRGQUUtMzdEMy0zOTU5LUI2MzktNTIwQ0JGRjU5ODZECisgIC0g
dGFyZ2V0OiAgICAgICAgICBhcm02NF8zMi13YXRjaG9zCisgICAgdmFsdWU6ICAgICAgICAgICAz
NUQ5RUMwQS1FRUIwLTM0RjctQkQwMi03N0U5Q0EzODQwNTUKK2luc3RhbGwtbmFtZTogICAgJy9T
eXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFt
ZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQnCitjdXJyZW50LXZlcnNpb246IDU5CitleHBvcnRz
OgorICAtIHRhcmdldHM6ICAgICAgICAgWyBhcm02NF8zMi13YXRjaG9zLCBhcm02NGUtd2F0Y2hv
cywgYXJtdjdrLXdhdGNob3MgXQorLi4uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429483</attachid>
            <date>2021-05-23 16:14:47 -0700</date>
            <delta_ts>2021-05-24 07:57:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226038-20210523171446.patch</filename>
            <type>text/plain</type>
            <size>57319</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGI0YjE0ZDM5NWUyNjA4NGY3NjYyZmVhMDdmODQ2
MWU5ZTk1NDEzMTAuLjNkN2VhMjBkMzUwNDJmNGQ2YjBkNjdiZDRkYzJjMTMzMmQ4Njc1M2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA1LTIyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENv
bnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxs
IGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWEgY29udHJvbHMg
bmVlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBpbiBv
cmRlciB0byBwcm9wZXJseQorICAgICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNrcyBp
biB0aGUgY29udHJvbHMgVUkuIEZvciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3VidGl0
bGVzCisgICAgICAgIGZvciBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhlIHVz
ZXIgaGFzIEVuZ2xpc2ggKGRlZmF1bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAgICAg
Y29uZmlndXJlZCBpbiB0aGUgTGFuZ3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJlZmVy
ZW5jZXMgb24gbWFjT1MsIFdlYktpdCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRpdGxl
cyBsaXN0IEVuZ2xpc2gsIEZyZW5jaCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3Bw
OgorICAgICAgICAoSlNDOjpkZWZhdWx0TG9jYWxlKToKKyAgICAgICAgVXBkYXRlIHVzYWdlIG9m
IGBXVEY6OmRlZmF1bHRMYW5ndWFnZWAgdG8gYWxzbyBoYXZlIGBXVEY6OlNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzYC4KKworICAgICAgICAqIHNoZWxsL3BsYXlzdGF0aW9uL1Rlc3RTaGVsbC5jcHA6
CisgICAgICAgIChwcmVUZXN0KToKKyAgICAgICAgSW5zdGVhZCBvZiBwcm9wYWdhdGluZyB0aGUg
b3ZlcnJpZGUsIGp1c3QgY2xlYXIgaXQgb3V0LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
SmF2YVNjcmlwdENvcmUueGNjb25maWc6CisgICAgICAgIExpbmsgYEludGVybmF0aW9uYWxTdXBw
b3J0YCBhcyB0aGF0J3Mgd2hlcmUgdGhlIGBOU0xvY2FsZWAgZXh0ZW5zaW9ucyBhcmUgaW1wbGVt
ZW50ZWQuCisKIDIwMjEtMDUtMjIgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFVzZSBzaW5nbGV0b24gdGh1bmtzIGZvciB2aXJ0dWFsIGNhbGxzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAzZGFk
NzA5YzMyYjQxYzE4NjAxNmM5ZWNkZTI5NmIzMTc5Yjg0NjMwLi4xYzk0YzJmNWUwODMxZmFkMGQx
ZDFkOThiZjdjZWI3MWY2ZTQ4ZWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTA1LTIyICBE
ZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlh
IENvbnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBm
dWxsIGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWEgY29udHJv
bHMgbmVlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBp
biBvcmRlciB0byBwcm9wZXJseQorICAgICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNr
cyBpbiB0aGUgY29udHJvbHMgVUkuIEZvciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3Vi
dGl0bGVzCisgICAgICAgIGZvciBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhl
IHVzZXIgaGFzIEVuZ2xpc2ggKGRlZmF1bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAg
ICAgY29uZmlndXJlZCBpbiB0aGUgTGFuZ3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJl
ZmVyZW5jZXMgb24gbWFjT1MsIFdlYktpdCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRp
dGxlcyBsaXN0IEVuZ2xpc2gsIEZyZW5jaCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAgICAgICAq
IHd0Zi9MYW5ndWFnZS5oOgorICAgICAgICAqIHd0Zi9MYW5ndWFnZS5jcHA6CisgICAgICAgIChX
VEY6OmNhY2hlZEZ1bGxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcyk6IEFkZGVkLgorICAgICAg
ICAoV1RGOjpjYWNoZWRNaW5pbWl6ZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcyk6IEFkZGVk
LgorICAgICAgICAoV1RGOjpsYW5ndWFnZURpZENoYW5nZSk6CisgICAgICAgIChXVEY6OmRlZmF1
bHRMYW5ndWFnZSk6CisgICAgICAgIChXVEY6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAg
ICAgICAoV1RGOjppbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRl
c3RpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdURjo6aW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJl
ZExhbmd1YWdlc092ZXJyaWRlRm9yVGVzdGluZyk6IEFkZGVkLgorICAgICAgICAoV1RGOjpvdmVy
cmlkZUluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNGb3JUZXN0aW5nKTogQWRk
ZWQuCisgICAgICAgIChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2VEaWRDaGFuZ2UpOiBEZWxldGVkLgor
ICAgICAgICBNb3ZlIHRoZSBjYWNoaW5nIGluIGB3dGYvY2YvTGFuZ3VhZ2VDRi5jcHBgIHRvIGB3
dGYvTGFuZ3VhZ2UuY3BwYCBzbyB0aGF0IGFsbCBwbGF0Zm9ybXMgY2FuCisgICAgICAgIGJlbmVm
aXQgZnJvbSBjYWNoaW5nIHRoZSByZXN1bHQgb2YgYHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlc2AuCisKKyAgICAgICAgKiB3dGYvY2YvTGFuZ3VhZ2VDRi5jcHA6CisgICAgICAgIChXVEY6
OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgIChXVEY6OnBsYXRmb3Jt
TGFuZ3VhZ2VEaWRDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9jb2NvYS9MYW5ndWFn
ZUNvY29hLm1tOgorICAgICAgICAoV1RGOjpiYXNlTGFuZ3VhZ2VGcm9tTGFuZ3VhZ2UpOiBBZGRl
ZC4KKyAgICAgICAgKiB3dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5jcHA6Cisg
ICAgICAgIChXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgICog
d3RmL3NwaS9jb2NvYS9OU0xvY2FsZVNQSS5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdl
VW5peC5jcHA6CisgICAgICAgIChXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6
CisgICAgICAgICogd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHA6CisgICAgICAgIChXVEY6OnBsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgIEFkZCBgV1RGOjpTaG91bGRNaW5p
bWl6ZUxhbmd1YWdlc2AgdGhhdCBjb250cm9scyB3aGV0aGVyIGBXVEY6Om1pbmltaXplZFByZWZl
cnJlZExhbmd1YWdlc2AKKyAgICAgICAgaXMgY2FsbGVkLiBTaW5jZSB0aGUgcmVzdWx0IGlzIGNh
Y2hlZCwgY3JlYXRlIHNlcGFyYXRlIGBWZWN0b3I8U3RyaW5nPmAgZm9yIGVhY2ggZW51bSB2YWx1
ZS4KKwogMjAyMS0wNS0yMyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAg
ICAgQnVpbGQgZml4IGZvciBKU0NPbmx5LUxpbnV4LUFBcmNoNjQgYm90LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGQwNTdkMjcxMjcwNGM4MTkwZGE0NDQyMjAxMzkxMjZlNWUyMWVhOWMuLjAzNTkwMjQwNmI3YmIy
M2RiMzQzMzg1ODY2ZDE5MDRlNzhjNzFjNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAor
MjAyMS0wNS0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
W01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRpYSBjb250cm9s
cyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZvciBvcmRlcmlu
ZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qgb2YgbGFuZ3VhZ2Ug
cHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29ydC9vcmRlciB0aGUg
bGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBsZSwgaWYgYSBgPHZp
ZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3BhbmlzaCwgYW5kIEZy
ZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQgRnJlbmNoIChhbHRl
cm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYgUmVnaW9uIHZpZXcg
b2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxkIG9yZGVyCisgICAg
ICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0aGVuIFNwYW5pc2gu
CisKKyAgICAgICAgVGVzdHM6IExhbmd1YWdlLlNob3VsZE1pbmltaXplTGFuZ3VhZ2VzWWVzCisg
ICAgICAgICAgICAgICBMYW5ndWFnZS5TaG91bGRNaW5pbWl6ZUxhbmd1YWdlc05vCisKKyAgICAg
ICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnRleHRUcmFja1NlbGVjdGlvblNj
b3JlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnBy
aW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZSBjb25zdCk6CisgICAgICAgICogcGFnZS9D
YXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYXB0
aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6cHJlZmVycmVkTGFuZ3VhZ2VzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OmJ1aWxkRGlzcGxheVN0cmluZ0ZvclRyYWNrQmFzZSk6CisgICAgICAg
IChXZWJDb3JlOjp0ZXh0VHJhY2tDb21wYXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW06CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQzo6dXBkYXRlT3B0aW9ucyk6CisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICBXcmFwIGBkZWZhdWx0TGFu
Z3VhZ2VgIGluIGEgbGFtYmRhIHNpbmNlIGl0IG5vdyBoYXMgYSBwYXJhbWV0ZXIuCisKIDIwMjEt
MDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBD
aGVja2VkTG9jayBpbiBtb3JlIHBsYWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NvbmZpZ3VyYXRpb25zL0phdmFTY3JpcHRDb3JlLnhjY29uZmlnIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0phdmFTY3JpcHRDb3JlLnhjY29uZmlnCmluZGV4IDZk
ZjhmMDBiNDJjMzAzZDRmMjY4MGZjNjlkMDIxMzUxMjZhZjRjMDQuLmM3YWMxNzBjMTFiNmMxODMy
NTM2YjQ4ZjI4MzJkOGNiZTIyMDRmNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvSmF2YVNjcmlwdENvcmUueGNjb25maWcKQEAgLTI5
LDcgKzI5LDEwIEBAIE1PRFVMRU1BUF9GSUxFID0gJChTUkNST09UKS9KYXZhU2NyaXB0Q29yZS5t
b2R1bGVtYXA7CiAvLyBQcmV2ZW50IEMrKyBzdGFuZGFyZCBsaWJyYXJ5IG9wZXJhdG9yIG5ldywg
ZGVsZXRlIGFuZCB0aGVpciByZWxhdGVkIGV4Y2VwdGlvbiB0eXBlcyBmcm9tIGJlaW5nIGV4cG9y
dGVkIGFzIHdlYWsgc3ltYm9scy4KIE9USEVSX0xERkxBR1NfSElERV9TWU1CT0xTID0gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pUSVN0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
LF9fWlRJU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVFNTdDliYWRfYWxs
b2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pUU1N0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0
ZWRfc3ltYm9sLF9fWmRsUHZTXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWm53bVB2IC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wsX19aTktTdDNfXzE4ZnVuY3Rpb25JRnZ2RUVjbEV2IC1XbCwtdW5l
eHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMThmdW5jdGlvbklGdnZFRUMxRU9TMl8gLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2dkVFQzJFT1MyXyAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sLF9fWk5LU3QzX18xOGZ1bmN0aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdlbmVy
YXRvckVQTlMxXzEwUmVnaXN0ZXJJREVFRWNsRVMzX1M1XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
LF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZSTjNKU0MxN0J5dGVjb2RlR2VuZXJhdG9yRVBOUzFfMTBS
ZWdpc3RlcklERUVFRDFFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rp
b25JRnZSTjNKU0MxN0J5dGVjb2RlR2VuZXJhdG9yRVBOUzFfMTBSZWdpc3RlcklERUVFRDJFdiAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVEMUV2IC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMThmdW5jdGlvbklGdnZFRUQyRXYgLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCxfX1pUVk5TdDNfXzExN2JhZF9mdW5jdGlvbl9jYWxsRSAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTI0X19pc19wYXRoYWJsZV9j
aGFyX2FycmF5SVBLY1M0X2NMYjFFRTExX19yYW5nZV9lbmRFUzRfIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJy
YXlJUEtjUzRfY0xiMUVFMTNfX3JhbmdlX2JlZ2luRVM0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
LF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbThfUGF0aENWVEljRTE0X19hcHBlbmRfcmFuZ2VJ
UEtjRUVOU185ZW5hYmxlX2lmSVhzcjI3X19pc19jcHAxN19mb3J3YXJkX2l0ZXJhdG9ySVRfRUU1
dmFsdWVFdkU0dHlwZUVSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNf
OWFsbG9jYXRvckljRUVFRVM4X1M4XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0
X19mczEwZmlsZXN5c3RlbThfUGF0aENWVEljRTE1X19hcHBlbmRfc291cmNlSVBLY0VFdlJOU18x
MmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFUktU
XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbThfUGF0
aENWVEljRTE0X19hcHBlbmRfcmFuZ2VJUEtjRUVOU185ZW5hYmxlX2lmSVhzcjIxX19pc19mb3J3
YXJkX2l0ZXJhdG9ySVRfRUU1dmFsdWVFdkU0dHlwZUVSTlNfMTJiYXNpY19zdHJpbmdJY05TXzEx
Y2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRVM4X1M4XyAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sLF9fWk5LU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0xOGRpcmVjdG9yeV9pdGVyYXRvcmRl
RXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0xOGRp
cmVjdG9yeV9pdGVyYXRvcnBwRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9f
ZnMxMGZpbGVzeXN0ZW0yNF9faXNfcGF0aGFibGVfY2hhcl9hcnJheUlBMTBfY1BjY0xiMUVFMTFf
X3JhbmdlX2VuZEVQS2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZp
bGVzeXN0ZW0yNF9faXNfcGF0aGFibGVfY2hhcl9hcnJheUlBMTBfY1BjY0xiMUVFMTNfX3Jhbmdl
X2JlZ2luRVBLYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5
c3RlbTRwYXRoZFZFUktTMl8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMx
MGZpbGVzeXN0ZW04X1BhdGhDVlRJY0UxNV9fYXBwZW5kX3NvdXJjZUlBMTBfY0VFdlJOU18xMmJh
c2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFUktUXyAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTI0X190aHJv
d19maWxlc3lzdGVtX2Vycm9ySUpSUEtjUktOUzFfNHBhdGhFUktOU18xMGVycm9yX2NvZGVFRUVF
dkRwT1RfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVt
MTRfX2lzX3NlcGFyYXRvckljRUVOU185ZW5hYmxlX2lmSVhzcjE4X19jYW5fY29udmVydF9jaGFy
SVRfRUU1dmFsdWVFYkU0dHlwZUVTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18x
NF9fZnMxMGZpbGVzeXN0ZW0yNF9faXNfcGF0aGFibGVfY2hhcl9hcnJheUlQS2NTNF9jTGIxRUUx
NV9fZmlyc3Rfb3JfbnVsbEVTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9f
ZnMxMGZpbGVzeXN0ZW00cGF0aDIwX19zb3VyY2VfaXNfYWJzb2x1dGVJY0VFYlRfIC1XbCwtdW5l
eHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtNHBhdGg2YXBwZW5kSVBL
Y0VFTlNfOWVuYWJsZV9pZklYc3IxM19faXNfcGF0aGFibGVJVF9FRTV2YWx1ZUVSUzJfRTR0eXBl
RVJLUzdfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVt
NnU4cGF0aElQS2NFRU5TXzllbmFibGVfaWZJWHNyMTNfX2lzX3BhdGhhYmxlSVRfRUU1dmFsdWVF
TlMxXzRwYXRoRUU0dHlwZUVSS1M2XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5LU3QzX18x
NF9fZnMxMGZpbGVzeXN0ZW0xOGRpcmVjdG9yeV9pdGVyYXRvcnB0RXYgLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0xOGRpcmVjdG9yeV9pdGVyYXRvcjlp
bmNyZW1lbnRFUk5TXzEwZXJyb3JfY29kZUU7CiAKLU9USEVSX0xERkxBR1NfQkFTRSA9ICQoT1RI
RVJfTERGTEFHU19ISURFX1NZTUJPTFMpIC1mb3JjZV9sb2FkICIkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvbGliV1RGLmEiOworLy8gTmVlZGVkIGJ5
IGBTb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1tYC4KK1dLX0lOVEVSTkFUSU9O
QUxfU1VQUE9SVF9MREZMQUdTID0gLWZyYW1ld29yayBJbnRlcm5hdGlvbmFsU3VwcG9ydDsKKwor
T1RIRVJfTERGTEFHU19CQVNFID0gJChPVEhFUl9MREZMQUdTX0hJREVfU1lNQk9MUykgLWlmcmFt
ZXdvcmsgJChTREtfRElSKSQoU1lTVEVNX0xJQlJBUllfRElSKS9Qcml2YXRlRnJhbWV3b3JrcyAt
Zm9yY2VfbG9hZCAiJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3Jp
cHRDb3JlL2xpYldURi5hIiAkKFdLX0lOVEVSTkFUSU9OQUxfU1VQUE9SVF9MREZMQUdTKTsKIE9U
SEVSX0xERkxBR1Nbc2RrPWVtYmVkZGVkKl0gPSAkKGluaGVyaXRlZCkgJChPVEhFUl9MREZMQUdT
X0JBU0UpOwogT1RIRVJfTERGTEFHU1tzZGs9bWFjb3N4Kl0gPSAkKGluaGVyaXRlZCkgJChPVEhF
Ul9MREZMQUdTX0JBU0UpIC1mcmFtZXdvcmsgQ29yZVNlcnZpY2VzOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9wbGF5c3RhdGlvbi9UZXN0U2hlbGwuY3BwCmluZGV4
IDI3ODJmZGEwODk4NjVkY2YwZTJmN2MxZGIyOTMzMTUxMjg5NGRlNDkuLjMxZmVhZjdlYzU4Zjc5
NWY4YzNkYmI3N2Q5Zjk1N2MzM2Y2MmZjMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9zaGVsbC9wbGF5c3RhdGlvbi9UZXN0U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9zaGVsbC9wbGF5c3RhdGlvbi9UZXN0U2hlbGwuY3BwCkBAIC02Miw3ICs2Miw3IEBA
IGV4dGVybiAiQyIgdm9pZCBwcmVUZXN0KCkKICAgICBKU0M6Ok9wdGlvbnM6Om5hbWVfKCkgPSBv
cmlnIyNuYW1lXzsKICAgICBGT1JfRUFDSF9KU0NfT1BUSU9OKElOSVRfT1BUSU9OKQogI3VuZGVm
IElOSVRfT1BUSU9OCi0gICAgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHBsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlcygpKTsKKyAgICBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMoeyB9KTsKIH0KIAogZXh0ZXJuICJDIiBpbnQgcnVuVGVzdChpbnQgYXJnYywgY2hhciog
YXJndltdKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwIGIvU291cmNl
L1dURi93dGYvTGFuZ3VhZ2UuY3BwCmluZGV4IGJlNjI1OGQ4NTdlNTk4OGY5Njk4MzkwMjAyYmNj
OTNjM2MxNzgyMGYuLjcwMTY5NjIwNTJmYmE4YWUzZDk5MWUyYTBhZjA3YzJiNTE3YTNiZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9MYW5ndWFnZS5jcHAKQEAgLTM3LDYgKzM3LDE4IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCitz
dGF0aWMgQ2hlY2tlZExvY2sgY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrOwor
c3RhdGljIFZlY3RvcjxTdHJpbmc+JiBjYWNoZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFn
ZXMoKSBXVEZfUkVRVUlSRVNfTE9DSyhjYWNoZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc0xv
Y2spCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBsYW5ndWFn
ZXM7CisgICAgcmV0dXJuIGxhbmd1YWdlczsKK30KK3N0YXRpYyBWZWN0b3I8U3RyaW5nPiYgY2Fj
aGVkTWluaW1pemVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKSBXVEZfUkVRVUlSRVNfTE9D
SyhjYWNoZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc0xvY2spCit7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBsYW5ndWFnZXM7CisgICAgcmV0dXJuIGxhbmd1
YWdlczsKK30KKwogc3RhdGljIENoZWNrZWRMb2NrIHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRl
TG9jazsKIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUo
KSBXVEZfUkVRVUlSRVNfTE9DSyhwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUxvY2spCiB7CkBA
IC02OCwxNiArODAsMjEgQEAgdm9pZCByZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQq
IGNvbnRleHQpCiAKIHZvaWQgbGFuZ3VhZ2VEaWRDaGFuZ2UoKQogewotICAgIHBsYXRmb3JtTGFu
Z3VhZ2VEaWRDaGFuZ2UoKTsKKyAgICB7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBjYWNoZWRQ
bGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc0xvY2sgfTsKKyAgICAgICAgY2FjaGVkRnVsbFBsYXRm
b3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkuY2xlYXIoKTsKKyAgICAgICAgY2FjaGVkTWluaW1pemVk
UGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKS5jbGVhcigpOworICAgIH0KKwogICAgIGZvciAo
YXV0byYgb2JzZXJ2ZXIgOiBjb3B5VG9WZWN0b3Iob2JzZXJ2ZXJNYXAoKSkpIHsKICAgICAgICAg
aWYgKG9ic2VydmVyTWFwKCkuY29udGFpbnMob2JzZXJ2ZXIua2V5KSkKICAgICAgICAgICAgIG9i
c2VydmVyLnZhbHVlKG9ic2VydmVyLmtleSk7CiAgICAgfQogfQogCi1TdHJpbmcgZGVmYXVsdExh
bmd1YWdlKCkKK1N0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMg
c2hvdWxkTWluaW1pemVMYW5ndWFnZXMpCiB7Ci0gICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2Vz
ID0gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOworICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdl
cyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoc2hvdWxkTWluaW1pemVMYW5ndWFnZXMpOwogICAg
IGlmIChsYW5ndWFnZXMuc2l6ZSgpKQogICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzWzBdOwogCkBA
IC0xMDgsNyArMTI1LDcgQEAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IGlzb2xhdGVkQ29weShjb25z
dCBWZWN0b3I8U3RyaW5nPiYgc3RyaW5ncykKICAgICByZXR1cm4gY29weTsKIH0KIAotVmVjdG9y
PFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpCitWZWN0b3I8U3RyaW5nPiB1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzIHNob3VsZE1pbmltaXplTGFu
Z3VhZ2VzKQogewogICAgIHsKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHByZWZlcnJlZExhbmd1
YWdlc092ZXJyaWRlTG9jayB9OwpAQCAtMTE3LDcgKzEzNCwxMSBAQCBWZWN0b3I8U3RyaW5nPiB1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKICAgICAgICAgICAgIHJldHVybiBpc29sYXRlZENvcHko
b3ZlcnJpZGUpOwogICAgIH0KIAotICAgIHJldHVybiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMoKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5n
dWFnZXNMb2NrIH07CisgICAgYXV0byYgbGFuZ3VhZ2VzID0gc2hvdWxkTWluaW1pemVMYW5ndWFn
ZXMgPT0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6OlllcyA/IGNhY2hlZE1pbmltaXplZFBsYXRm
b3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkgOiBjYWNoZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5n
dWFnZXMoKTsKKyAgICBpZiAobGFuZ3VhZ2VzLmlzRW1wdHkoKSkKKyAgICAgICAgbGFuZ3VhZ2Vz
ID0gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHNob3VsZE1pbmltaXplTGFuZ3VhZ2Vz
KTsKKyAgICByZXR1cm4gaXNvbGF0ZWRDb3B5KGxhbmd1YWdlcyk7CiB9CiAKIHN0YXRpYyBTdHJp
bmcgY2Fub25pY2FsTGFuZ3VhZ2VJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2VDb2Rl
KQpAQCAtMTg0LDEwICsyMDUsMjYgQEAgU3RyaW5nIGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2Nh
bGUoY29uc3QgU3RyaW5nJiBsb2NhbGVOYW1lKQogICAgIHJldHVybiBsb2NhbGVOYW1lOwogfQog
Ci0jaWYgIVBMQVRGT1JNKENPQ09BKQotdm9pZCBwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdlKCkK
K3N0YXRpYyBDaGVja2VkTG9jayBpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVy
cmlkZUZvclRlc3RpbmdMb2NrOworc3RhdGljIFZlY3RvcjxTdHJpbmc+JiBpbml0aWFsUGxhdGZv
cm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKSBXVEZfUkVRVUlSRVNfTE9D
Syhpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmdMb2Nr
KQogeworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4gb3ZlcnJpZGU7
CisgICAgcmV0dXJuIG92ZXJyaWRlOwogfQotI2VuZGlmCiAKK1ZlY3RvcjxTdHJpbmc+IGluaXRp
YWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKQorewor
ICAgIExvY2tlciBsb2NrZXIgeyBpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVy
cmlkZUZvclRlc3RpbmdMb2NrIH07CisgICAgcmV0dXJuIGluaXRpYWxQbGF0Zm9ybVByZWZlcnJl
ZExhbmd1YWdlc092ZXJyaWRlRm9yVGVzdGluZygpOwogfQorCit2b2lkIG92ZXJyaWRlSW5pdGlh
bFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0ZvclRlc3RpbmcoY29uc3QgVmVjdG9yPFN0
cmluZz4mIG92ZXJyaWRlKQoreworICAgIHsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IGluaXRp
YWxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlRm9yVGVzdGluZ0xvY2sgfTsKKyAg
ICAgICAgaW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5n
KCkgPSBvdmVycmlkZTsKKyAgICB9CisgICAgbGFuZ3VhZ2VEaWRDaGFuZ2UoKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oIGIv
U291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaAppbmRleCBmMDc0ZDc1NjhkMDAyZTkzMmE1MzI2YmRi
NTJkN2ZiOGMwNjU4MTgzLi4yOTBlM2U3YzhiNDQ3ZTI0ZjNlMTg4ZWJlMGU1M2JiNjJkZmZiMDc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0xhbmd1YWdlLmgKQEAgLTM1LDEzICszNSwxMyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAot
V1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoKTsgLy8gVGhyZWFkLXNh
ZmUuCi1XVEZfRVhQT1JUX1BSSVZBVEUgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1
YWdlcygpOyAvLyBUaHJlYWQtc2FmZSwgcmV0dXJucyBCQ1AgNDcgbGFuZ3VhZ2UgdGFncy4KK2Vu
dW0gY2xhc3MgU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgeyBObywgWWVzIH07CisKK1dURl9FWFBP
UlRfUFJJVkFURSBTdHJpbmcgZGVmYXVsdExhbmd1YWdlKFNob3VsZE1pbmltaXplTGFuZ3VhZ2Vz
ID0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Olllcyk7IC8vIFRocmVhZC1zYWZlLgorV1RGX0VY
UE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxk
TWluaW1pemVMYW5ndWFnZXMgPSBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzKTsgLy8gVGhy
ZWFkLXNhZmUsIHJldHVybnMgQkNQIDQ3IGxhbmd1YWdlIHRhZ3MuCiBXVEZfRVhQT1JUX1BSSVZB
VEUgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCk7CiBXVEZf
RVhQT1JUX1BSSVZBVEUgdm9pZCBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mKTsKIFdURl9FWFBPUlRfUFJJVkFURSBzaXplX3QgaW5kZXhPZkJlc3RN
YXRjaGluZ0xhbmd1YWdlSW5MaXN0KGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBsYW5ndWFnZUxpc3QsIGJvb2wmIGV4YWN0TWF0Y2gpOwotV1RGX0VYUE9SVF9Q
UklWQVRFIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpOwot
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcGxhdGZvcm1MYW5ndWFnZURpZENoYW5nZSgpOwogCiAv
LyBDYWxsZWQgZnJvbSBwbGF0Zm9ybSBzcGVjaWZpYyBjb2RlIHdoZW4gdGhlIHVzZXIncyBwcmVm
ZXJyZWQgbGFuZ3VhZ2UocykgY2hhbmdlLgogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgbGFuZ3Vh
Z2VEaWRDaGFuZ2UoKTsKQEAgLTUyLDIwICs1MiwyNiBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBhZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNvbnRleHQsIExhbmd1YWdlQ2hhbmdl
TwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2
b2lkKiBjb250ZXh0KTsKIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgZGlzcGxheU5hbWVGb3JM
YW5ndWFnZUxvY2FsZShjb25zdCBTdHJpbmcmKTsKIAorVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID0gU2hvdWxkTWlu
aW1pemVMYW5ndWFnZXM6Olllcyk7CisKICNpZiBQTEFURk9STShDT0NPQSkKIGJvb2wgY2FuTWlu
aW1pemVMYW5ndWFnZXMoKTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGxpc3RlbkZvckxhbmd1
YWdlQ2hhbmdlTm90aWZpY2F0aW9ucygpOwogUmV0YWluUHRyPENGQXJyYXlSZWY+IG1pbmltaXpl
ZExhbmd1YWdlc0Zyb21MYW5ndWFnZXMoQ0ZBcnJheVJlZik7Ci0jZW5kaWYKK1JldGFpblB0cjxD
RlN0cmluZ1JlZj4gYmFzZUxhbmd1YWdlRnJvbUxhbmd1YWdlKENGU3RyaW5nUmVmKTsKIAotfQor
VmVjdG9yPFN0cmluZz4gaW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJy
aWRlRm9yVGVzdGluZygpOworV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgb3ZlcnJpZGVJbml0aWFs
UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRm9yVGVzdGluZyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpOworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCit9IC8vIG5hbWVzcGFjZSBXVEYK
KwordXNpbmcgV1RGOjpTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczsKIHVzaW5nIFdURjo6ZGVmYXVs
dExhbmd1YWdlOwogdXNpbmcgV1RGOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwogdXNpbmcgV1RG
Ojp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGU7CiB1c2luZyBXVEY6Om92ZXJyaWRlVXNl
clByZWZlcnJlZExhbmd1YWdlczsKIHVzaW5nIFdURjo6aW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1
YWdlSW5MaXN0OwotdXNpbmcgV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7CiB1
c2luZyBXVEY6OmFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXI7CiB1c2luZyBXVEY6OnJlbW92ZUxh
bmd1YWdlQ2hhbmdlT2JzZXJ2ZXI7CiB1c2luZyBXVEY6OmRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VM
b2NhbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL2NmL0xhbmd1YWdlQ0YuY3BwCmluZGV4IGUwNzMxMTU0MjkxYmZkMDdjNGNj
MTZkYTA0MmFhYWRiNTljOWUzYjEuLmQ0NzkwMzcxYjhlMWQ1ZDEwZmZkMWM2N2FjZWQxOTBiNDAw
NDg2NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2NmL0xhbmd1YWdlQ0YuY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL2NmL0xhbmd1YWdlQ0YuY3BwCkBAIC0zMCwxNiArMzAsMTMgQEAKICNp
bmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx1bmljb2RlL3Vsb2MuaD4KICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgotI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRl
IDx3dGYvc3BpL2NmL0NGQnVuZGxlU1BJLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVh
bS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV1RGIHsK
IAotc3RhdGljIENoZWNrZWRMb2NrIHByZWZlcnJlZExhbmd1YWdlc0xvY2s7Ci0KICNpZiBQTEFU
Rk9STShNQUMpCiBzdGF0aWMgdm9pZCBsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdlKENGTm90
aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkKiwgQ0ZTdHJpbmdSZWYsIGNvbnN0IHZvaWQqLCBDRkRp
Y3Rpb25hcnlSZWYpCiB7CkBAIC00NywyMSArNDQsMTIgQEAgc3RhdGljIHZvaWQgbGFuZ3VhZ2VQ
cmVmZXJlbmNlc0RpZENoYW5nZShDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCosIENGU3Ry
aW4KIH0KICNlbmRpZgogCi1zdGF0aWMgVmVjdG9yPFN0cmluZz4mIHByZWZlcnJlZExhbmd1YWdl
cygpIFdURl9SRVFVSVJFU19MT0NLKHByZWZlcnJlZExhbmd1YWdlc0xvY2spCi17Ci0gICAgc3Rh
dGljIExhenlOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4gbGFuZ3VhZ2VzOwotICAgIHN0
YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlS2V5OwotICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VLZXks
IFsmXSB7Ci0gICAgICAgIGxhbmd1YWdlcy5jb25zdHJ1Y3QoKTsKLSAgICB9KTsKLSAgICByZXR1
cm4gbGFuZ3VhZ2VzOwotfQotCi1zdGF0aWMgU3RyaW5nIGh0dHBTdHlsZUxhbmd1YWdlQ29kZShD
RlN0cmluZ1JlZiBsYW5ndWFnZSkKK3N0YXRpYyBTdHJpbmcgaHR0cFN0eWxlTGFuZ3VhZ2VDb2Rl
KENGU3RyaW5nUmVmIGxhbmd1YWdlLCBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyBzaG91bGRNaW5p
bWl6ZUxhbmd1YWdlcykKIHsKKyAgICBBTFdBWVNfTE9HX1dJVEhfU1RSRUFNKHN0cmVhbSA8PCAi
TGFuZ3VhZ2UuU2hvdWxkTWluaW1pemVMYW5ndWFnZXMiIDw8IChzaG91bGRNaW5pbWl6ZUxhbmd1
YWdlcyA9PSBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzID8gIlllcyIgOiAiTm8iKSA8PCAi
IC0gaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlIC0gdXNlIG5ldyBwYXRoID0gIiA8PCAoY2FuTWluaW1p
emVMYW5ndWFnZXMoKSB8fCBzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9PSBTaG91bGRNaW5pbWl6
ZUxhbmd1YWdlczo6Tm8pKTsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHByZWZlcnJlZExh
bmd1YWdlQ29kZTsKICAgICAvLyBJZiB3ZSBjYW4gbWluaW1pemUgdGhlIGxhbmd1YWdlIGxpc3Qg
dG8gcmVkdWNlIGZpbmdlcnByaW50aW5nLCB3ZSBjYW4gYWZmb3JkIHRvIGJlIG1vcmUgbG9zc2xl
c3Mgd2hlbiBjYW5vbmljYWxpemluZyB0aGUgbG9jYWxlIGxpc3QuCi0gICAgaWYgKGNhbk1pbmlt
aXplTGFuZ3VhZ2VzKCkpCisgICAgaWYgKHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID09IFNob3Vs
ZE1pbmltaXplTGFuZ3VhZ2VzOjpObyB8fCBjYW5NaW5pbWl6ZUxhbmd1YWdlcygpKQogICAgICAg
ICBwcmVmZXJyZWRMYW5ndWFnZUNvZGUgPSBhZG9wdENGKENGTG9jYWxlQ3JlYXRlQ2Fub25pY2Fs
TGFuZ3VhZ2VJZGVudGlmaWVyRnJvbVN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBsYW5ndWFn
ZSkpOwogICAgIGVsc2UgewogICAgICAgICBTSW50MzIgbGFuZ3VhZ2VDb2RlOwpAQCAtODgsMTQg
Kzc2LDYgQEAgc3RhdGljIFN0cmluZyBodHRwU3R5bGVMYW5ndWFnZUNvZGUoQ0ZTdHJpbmdSZWYg
bGFuZ3VhZ2UpCiAgICAgcmV0dXJuIG11dGFibGVMYW5ndWFnZUNvZGUuZ2V0KCk7CiB9CiAKLXZv
aWQgcGxhdGZvcm1MYW5ndWFnZURpZENoYW5nZSgpCi17Ci0gICAgewotICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgcHJlZmVycmVkTGFuZ3VhZ2VzTG9jayB9OwotICAgICAgICBwcmVmZXJyZWRMYW5n
dWFnZXMoKS5jbGVhcigpOwotICAgIH0KLX0KLQogdm9pZCBsaXN0ZW5Gb3JMYW5ndWFnZUNoYW5n
ZU5vdGlmaWNhdGlvbnMoKQogewogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTEwNiwzMiArODYsNDAg
QEAgdm9pZCBsaXN0ZW5Gb3JMYW5ndWFnZUNoYW5nZU5vdGlmaWNhdGlvbnMoKQogI2VuZGlmCiB9
CiAKLVZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCitWZWN0
b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVM
YW5ndWFnZXMgc2hvdWxkTWluaW1pemVMYW5ndWFnZXMpCiB7Ci0gICAgTG9ja2VyIGxvY2tlciB7
IHByZWZlcnJlZExhbmd1YWdlc0xvY2sgfTsKLSAgICBWZWN0b3I8U3RyaW5nPiYgdXNlclByZWZl
cnJlZExhbmd1YWdlcyA9IHByZWZlcnJlZExhbmd1YWdlcygpOworICAgIFJldGFpblB0cjxDRkFy
cmF5UmVmPiBwbGF0Zm9ybUxhbmd1YWdlczsKKyAgICBpZiAoYXV0byBvdmVycmlkZSA9IGluaXRp
YWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKTsgIW92
ZXJyaWRlLmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvIGFycmF5ID0gYWRvcHRDRihDRkFycmF5
Q3JlYXRlTXV0YWJsZSgwLCBvdmVycmlkZS5zaXplKCksICZrQ0ZUeXBlQXJyYXlDYWxsQmFja3Mp
KTsKKyAgICAgICAgZm9yIChhdXRvJiBpdGVtIDogb3ZlcnJpZGUpCisgICAgICAgICAgICBDRkFy
cmF5QXBwZW5kVmFsdWUoYXJyYXkuZ2V0KCksIGl0ZW0uY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7
CisgICAgICAgIHBsYXRmb3JtTGFuZ3VhZ2VzID0gV1RGTW92ZShhcnJheSk7CisgICAgfSBlbHNl
CisgICAgICAgIHBsYXRmb3JtTGFuZ3VhZ2VzID0gYWRvcHRDRihDRkxvY2FsZUNvcHlQcmVmZXJy
ZWRMYW5ndWFnZXMoKSk7CiAKLSAgICBpZiAodXNlclByZWZlcnJlZExhbmd1YWdlcy5pc0VtcHR5
KCkpIHsKLSAgICAgICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IGxhbmd1YWdlcyA9IGFkb3B0Q0Yo
Q0ZMb2NhbGVDb3B5UHJlZmVycmVkTGFuZ3VhZ2VzKCkpOwotICAgICAgICBsYW5ndWFnZXMgPSBt
aW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzKGxhbmd1YWdlcy5nZXQoKSk7Ci0gICAgICAg
IENGSW5kZXggbGFuZ3VhZ2VDb3VudCA9IENGQXJyYXlHZXRDb3VudChsYW5ndWFnZXMuZ2V0KCkp
OwotICAgICAgICBpZiAoIWxhbmd1YWdlQ291bnQpCi0gICAgICAgICAgICB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzLmFwcGVuZCgiZW4iKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBmb3Ig
KENGSW5kZXggaSA9IDA7IGkgPCBsYW5ndWFnZUNvdW50OyBpKyspCi0gICAgICAgICAgICAgICAg
dXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKHN0YXRp
Y19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGxhbmd1YWdlcy5nZXQo
KSwgaSkpKSk7CisgICAgaWYgKHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID09IFNob3VsZE1pbmlt
aXplTGFuZ3VhZ2VzOjpZZXMpCisgICAgICAgIHBsYXRmb3JtTGFuZ3VhZ2VzID0gbWluaW1pemVk
TGFuZ3VhZ2VzRnJvbUxhbmd1YWdlcyhwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSk7CisKKyAgICBD
RkluZGV4IHBsYXRmb3JtTGFuZ3VhZ2VzQ291bnQgPSBDRkFycmF5R2V0Q291bnQocGxhdGZvcm1M
YW5ndWFnZXMuZ2V0KCkpOworICAgIGlmICghcGxhdGZvcm1MYW5ndWFnZXNDb3VudCkKKyAgICAg
ICAgcmV0dXJuIHsgImVuIl9zIH07CisKKyAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXM7Cisg
ICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgcGxhdGZvcm1MYW5ndWFnZXNDb3VudDsgaSsrKSB7
CisgICAgICAgIGF1dG8gcGxhdGZvcm1MYW5ndWFnZSA9IHN0YXRpY19jYXN0PENGU3RyaW5nUmVm
PihDRkFycmF5R2V0VmFsdWVBdEluZGV4KHBsYXRmb3JtTGFuZ3VhZ2VzLmdldCgpLCBpKSk7Cisg
ICAgICAgIEFMV0FZU19MT0dfV0lUSF9TVFJFQU0oc3RyZWFtIDw8ICJMYW5ndWFnZS5TaG91bGRN
aW5pbWl6ZUxhbmd1YWdlcyIgPDwgKHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID09IFNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzOjpZZXMgPyAiWWVzIiA6ICJObyIpIDw8ICIgLSBwbGF0Zm9ybUxhbmd1
YWdlc1siIDw8IGkgPDwgIl0gPSAiIDw8IFN0cmluZyhwbGF0Zm9ybUxhbmd1YWdlKSA8PCAiIHZz
ICIgPDwgaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKHBsYXRmb3JtTGFuZ3VhZ2UsIHNob3VsZE1pbmlt
aXplTGFuZ3VhZ2VzKSk7CisgICAgICAgIGxhbmd1YWdlcy5hcHBlbmQoaHR0cFN0eWxlTGFuZ3Vh
Z2VDb2RlKHBsYXRmb3JtTGFuZ3VhZ2UsIHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKSk7CisKKyAg
ICAgICAgaWYgKHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID09IFNob3VsZE1pbmltaXplTGFuZ3Vh
Z2VzOjpObykgeworICAgICAgICAgICAgLy8gQ29udmVydCBsYW5ndWFnZXMgd2l0aCBjb3VudHJ5
IGNvZGVzIHRvIGVxdWl2YWxlbnQgbGFuZ3VhZ2VzIHdpdGhvdXQgY291bnRyeSBjb2RlcyAoaWYg
cG9zc2libGUpLgorICAgICAgICAgICAgLy8gZS5nLiAiZW4tVVMiIGJlY29tZXMgImVuIiwgd2hp
Y2ggaXMgdXNlZnVsIHdoZW4gdHJ5aW5nIHRvIG1hdGNoIEhUTUwgYGxhbmc9ImVuImAuCisgICAg
ICAgICAgICBhdXRvIGJhc2VMYW5ndWFnZSA9IGJhc2VMYW5ndWFnZUZyb21MYW5ndWFnZShwbGF0
Zm9ybUxhbmd1YWdlKTsKKyAgICAgICAgICAgIEFMV0FZU19MT0dfV0lUSF9TVFJFQU0oc3RyZWFt
IDw8ICJMYW5ndWFnZS5TaG91bGRNaW5pbWl6ZUxhbmd1YWdlc05vIC0gYmFzZUxhbmd1YWdlc1si
IDw8IGkgPDwgIl0gPSAiIDw8IFN0cmluZyhiYXNlTGFuZ3VhZ2UuZ2V0KCkpIDw8ICIgdnMgIiA8
PCBodHRwU3R5bGVMYW5ndWFnZUNvZGUoYmFzZUxhbmd1YWdlLmdldCgpLCBzaG91bGRNaW5pbWl6
ZUxhbmd1YWdlcykpOworICAgICAgICAgICAgaWYgKGJhc2VMYW5ndWFnZSAmJiBiYXNlTGFuZ3Vh
Z2UgIT0gcGxhdGZvcm1MYW5ndWFnZSAmJiBDRlN0cmluZ0NvbXBhcmUoYmFzZUxhbmd1YWdlLmdl
dCgpLCBwbGF0Zm9ybUxhbmd1YWdlLCAwKSAhPSBrQ0ZDb21wYXJlRXF1YWxUbykKKyAgICAgICAg
ICAgICAgICBsYW5ndWFnZXMuYXBwZW5kKGh0dHBTdHlsZUxhbmd1YWdlQ29kZShiYXNlTGFuZ3Vh
Z2UuZ2V0KCksIHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKSk7CiAgICAgICAgIH0KICAgICB9Ci0K
LSAgICBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weTsKLSAgICB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzQ29weS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMuc2l6ZSgpKTsKLQotICAgIGZvciAoYXV0byYgbGFuZ3VhZ2UgOiB1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKQotICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weS51bmNo
ZWNrZWRBcHBlbmQobGFuZ3VhZ2UuaXNvbGF0ZWRDb3B5KCkpOwotCi0gICAgcmV0dXJuIHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNDb3B5OwotCi0gICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7Cisg
ICAgcmV0dXJuIGxhbmd1YWdlczsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1tIGIvU291cmNlL1dURi93dGYv
Y29jb2EvTGFuZ3VhZ2VDb2NvYS5tbQppbmRleCA1YmFiN2M3YjI2N2MwYWRkMjU1YjJmZTY3NjJl
ZTY0MGUwNTg4OTkzLi5mYWY3MDMwNzg2NjAwMDU5OTI1ZWVjYmMyMDgwMWU4YmZhYzVmZTNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNp
bXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrc0NvY29hLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2NvY29hL05TTG9jYWxl
U1BJLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBXVEYg
ewogCkBAIC0zOCwxOCArMzksMjAgQEAgYm9vbCBjYW5NaW5pbWl6ZUxhbmd1YWdlcygpCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgICAgICBpZiAoYXBwbGljYXRpb25TREtWZXJzaW9uKCkgPCBEWUxE
X01BQ09TWF9WRVJTSU9OXzEwXzE1XzQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5k
aWYKLSNpZiBQTEFURk9STShJT1MpCisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAg
ICBpZiAoYXBwbGljYXRpb25TREtWZXJzaW9uKCkgPCBEWUxEX0lPU19WRVJTSU9OXzEzXzQpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuIFtOU0xvY2Fs
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKG1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5n
dWFnZXM6KV07CiAgICAgfSgpOworICAgIEFMV0FZU19MT0dfV0lUSF9TVFJFQU0oc3RyZWFtIDw8
ICJjYW5NaW5pbWl6ZUxhbmd1YWdlcyA9ICIgPDwgcmVzdWx0KTsKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCiBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gbWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1
YWdlcyhDRkFycmF5UmVmIGxhbmd1YWdlcykKIHsKKyAgICAvLyBUaGlzIHJlcXVpcmVzIGxpbmtp
bmcgYEludGVybmF0aW9uYWxTdXBwb3J0YC4KKwogICAgIGlmICghY2FuTWluaW1pemVMYW5ndWFn
ZXMoKSkKICAgICAgICAgcmV0dXJuIGxhbmd1YWdlczsKIApAQCAtNTgsNCArNjEsMzAgQEAgQUxM
T1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19CRUdJTgogQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dV
QVJEU19FTkQKIH0KIAorc3RhdGljIGJvb2wgY2FuR2V0QmFzZUxhbmd1YWdlKCkKK3sKKyAgICBz
dGF0aWMgY29uc3QgYm9vbCByZXN1bHQgPSBbXSgpIC0+IGJvb2wgeworI2lmIFBMQVRGT1JNKE1B
QykKKyAgICAgICAgaWYgKGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpIDwgRFlMRF9NQUNPU1hfVkVS
U0lPTl8xMF8xMykKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbGlmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgICAgIGlmIChhcHBsaWNhdGlvblNES1ZlcnNpb24oKSA8IERZTERfSU9T
X1ZFUlNJT05fMTFfMCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgICAg
ICByZXR1cm4gW05TTG9jYWxlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYmFzZUxhbmd1
YWdlRnJvbUxhbmd1YWdlOildOworICAgIH0oKTsKKyAgICBBTFdBWVNfTE9HX1dJVEhfU1RSRUFN
KHN0cmVhbSA8PCAiY2FuR2V0QmFzZUxhbmd1YWdlID0gIiA8PCByZXN1bHQpOworICAgIHJldHVy
biByZXN1bHQ7CiB9CisKK1JldGFpblB0cjxDRlN0cmluZ1JlZj4gYmFzZUxhbmd1YWdlRnJvbUxh
bmd1YWdlKENGU3RyaW5nUmVmIGxhbmd1YWdlKQoreworICAgIC8vIFRoaXMgcmVxdWlyZXMgbGlu
a2luZyBgSW50ZXJuYXRpb25hbFN1cHBvcnRgLgorCisgICAgaWYgKCFjYW5HZXRCYXNlTGFuZ3Vh
Z2UoKSkKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlOworCisgICAgcmV0dXJuIChfX2JyaWRnZSBD
RlN0cmluZ1JlZilbTlNMb2NhbGUgYmFzZUxhbmd1YWdlRnJvbUxhbmd1YWdlOihfX2JyaWRnZSBO
U1N0cmluZyAqKWxhbmd1YWdlXTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9wbGF5c3RhdGlvbi9MYW5ndWFnZVBsYXlTdGF0aW9uLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL3BsYXlzdGF0aW9uL0xhbmd1YWdlUGxheVN0YXRpb24uY3BwCmluZGV4IGQ0
NTM3YTY5NDBiNWUwMjJiZjVlNWNkZjcxYTg2M2QzMzA5ZGY2MWMuLmNhZjE1NDlmODAwMmMxMzdl
MmYxYTA2MjI4MTgxNTRmNTYyNTRlNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3BsYXlz
dGF0aW9uL0xhbmd1YWdlUGxheVN0YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3BsYXlz
dGF0aW9uL0xhbmd1YWdlUGxheVN0YXRpb24uY3BwCkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVz
cGFjZSBXVEYgewogCi1WZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXMoKQorVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3Vs
ZE1pbmltaXplTGFuZ3VhZ2VzKQogewogICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlczsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvc3BpL2NvY29hL05TTG9jYWxlU1BJLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9zcGkvY29jb2EvTlNMb2NhbGVTUEkuaAppbmRleCA1Y2VmMTY0MDMxNmI0NzNh
NzFiZTdiYmE2MWE4ODI3NGYyODEwNjIxLi5jYTk4MjAxYzYxNjNhMzc5ZWUxZDhmMmNhNGY1NWQz
NmZmYWJmMGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2EvTlNMb2NhbGVT
UEkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2EvTlNMb2NhbGVTUEkuaApAQCAtMzIs
NiArMzIsNyBAQAogI2VuZGlmCiAKIEBpbnRlcmZhY2UgTlNMb2NhbGUgKCkKKysgKG5vbm51bGwg
TlNTdHJpbmcgKiliYXNlTGFuZ3VhZ2VGcm9tTGFuZ3VhZ2U6KG5vbm51bGwgTlNTdHJpbmcgKils
YW5ndWFnZUlEOwogKyAobm9ubnVsbCBOU0FycmF5PE5TU3RyaW5nICo+ICopbWluaW1pemVkTGFu
Z3VhZ2VzRnJvbUxhbmd1YWdlczoobm9ubnVsbCBOU0FycmF5PE5TU3RyaW5nICo+ICopbGFuZ3Vh
Z2VzOwogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5p
eC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKaW5kZXggMzFjNzU3
NDcyZWVhYjY0MDcyNmU5NGM1YzU3NTA3MThmYTM5MzhkMS4uYWY5NGJiMDZjYzM4ZGQyYTg1OTVi
ZmJiNzcxNjkwZjkyZGI0OGFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5peC9MYW5n
dWFnZVVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcApA
QCAtNDIsNyArNDIsNyBAQCBzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQogICAgIHJl
dHVybiBub3JtYWxpemVkRGVmYXVsdDsKIH0KIAotVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzKCkKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJl
ZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcykKIHsKICAgICByZXR1cm4geyBwbGF0
Zm9ybUxhbmd1YWdlKCkgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5n
dWFnZVdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwCmluZGV4IDZi
NTJjOWMyMGQxNWNiYTdlMzlkNTQyMDExYjQzOGEzODM1OGMyYjIuLmJmOTZiMGE1NWM4ODk5MzFj
NGMyZDUzMzE3ZThjNWUwMTdlMmFhMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9M
YW5ndWFnZVdpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvd2luL0xhbmd1YWdlV2luLmNwcApA
QCAtNzQsNyArNzQsNyBAQCBzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQogICAgIHJl
dHVybiBjb21wdXRlZERlZmF1bHRMYW5ndWFnZTsKIH0KIAotVmVjdG9yPFN0cmluZz4gcGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcykKIHsKICAgICByZXR1cm4g
eyBwbGF0Zm9ybUxhbmd1YWdlKCkgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IGFiMDNiZGI0M2M2ZjNhM2YxNWJhOTVlOGQyYmIz
MWU3YmNhMWU1MzkuLjgxMTQxOTBiNDNlYzU5NjJkMWJmZTcyY2I4YjkxMTIwZmNkNzI1ZGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAt
ODMsNyArODMsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0RPTVdpbmRvd0Jh
c2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiAgICAgJnJlcG9ydFVuY2F1Z2h0RXhj
ZXB0aW9uQXRFdmVudExvb3AsCiAgICAgJmN1cnJlbnRTY3JpcHRFeGVjdXRpb25Pd25lciwKICAg
ICAmc2NyaXB0RXhlY3V0aW9uU3RhdHVzLAotICAgICZkZWZhdWx0TGFuZ3VhZ2UsCisgICAgW10g
eyByZXR1cm4gZGVmYXVsdExhbmd1YWdlKCk7IH0sCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQog
ICAgICZjb21waWxlU3RyZWFtaW5nLAogICAgICZpbnN0YW50aWF0ZVN0cmVhbWluZywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNl
LmNwcAppbmRleCA0ODM5OTcwOGVlMDM0YmM1OGFjMzgyZjNjYWM5N2Y5MTY3NzgyZmI4Li45MjEy
NWU1NmQ2OTk1ZDQ2MDBkY2Q4ZmNiN2I0MjNiYTU4YmI0ODNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCkBAIC02
MSw3ICs2MSw3IEBAIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTV29ya2VyR2xvYmFs
U2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlCiAgICAgJnJlcG9ydFVuY2F1Z2h0
RXhjZXB0aW9uQXRFdmVudExvb3AsCiAgICAgJmN1cnJlbnRTY3JpcHRFeGVjdXRpb25Pd25lciwK
ICAgICAmc2NyaXB0RXhlY3V0aW9uU3RhdHVzLAotICAgICZkZWZhdWx0TGFuZ3VhZ2UsCisgICAg
W10geyByZXR1cm4gZGVmYXVsdExhbmd1YWdlKCk7IH0sCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KQogICAgICZjb21waWxlU3RyZWFtaW5nLAogICAgICZpbnN0YW50aWF0ZVN0cmVhbWluZywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3Bl
QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29w
ZUJhc2UuY3BwCmluZGV4IDQyMWU3NDRmMzMwN2FiZDk5YjFlNWMyZDVkN2YxM2UzM2IzOGU5MDEu
LjQyMDI3MmExZDBiNzVjYTY5NWE2NmYxMjQ2ZTQ3NDU5NmQ1YTRlNWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNw
cApAQCAtNTcsNyArNTcsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmts
ZXRHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibAogICAgICZyZXBvcnRV
bmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50U2NyaXB0RXhlY3V0aW9u
T3duZXIsCiAgICAgJnNjcmlwdEV4ZWN1dGlvblN0YXR1cywKLSAgICAmZGVmYXVsdExhbmd1YWdl
LAorICAgIFtdIHsgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZSgpOyB9LAogI2lmIEVOQUJMRShXRUJB
U1NFTUJMWSkKICAgICAmY29tcGlsZVN0cmVhbWluZywKICAgICAmaW5zdGFudGlhdGVTdHJlYW1p
bmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5j
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcApp
bmRleCBkM2U0NWU4YmI0YzdkMjAwY2QzYTRhMjEyODIwZGU0ZWRmY2QxYmY4Li41NWZhMDk2NGM3
ZmQ5ODg2MzVlZjMzMjVjYmRhYmYwZTIxMzQ0ODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKQEAgLTE3MCw3ICsxNzAsNyBAQCB2b2lkIENh
cHRpb25Vc2VyUHJlZmVyZW5jZXM6OmNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKQogCiBWZWN0
b3I8U3RyaW5nPiBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpwcmVmZXJyZWRMYW5ndWFnZXMoKSBj
b25zdAogewotICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMoKTsKKyAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFu
Z3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObyk7CiAgICAgaWYgKG1fdGVzdGluZ01v
ZGUgJiYgIW1fdXNlclByZWZlcnJlZExhbmd1YWdlLmlzRW1wdHkoKSkKICAgICAgICAgbGFuZ3Vh
Z2VzLmluc2VydCgwLCBtX3VzZXJQcmVmZXJyZWRMYW5ndWFnZSk7CiAKQEAgLTM0MSw3ICszNDEs
NyBAQCBpbnQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6dGV4dFRyYWNrU2VsZWN0aW9uU2NvcmUo
VGV4dFRyYWNrKiB0cmFjaywgSFRNTE1lZGlhRQogICAgICAgICAgICAgaWYgKG9mZnNldCkKICAg
ICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGxh
bmd1YWdlTGlzdC5hcHBlbmQoZGVmYXVsdExhbmd1YWdlKCkpOworICAgICAgICAgICAgbGFuZ3Vh
Z2VMaXN0LmFwcGVuZChkZWZhdWx0TGFuZ3VhZ2UoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5v
KSk7CiAKICAgICAgICAgICAgIC8vIE9ubHkgZW5hYmxlIGEgdGV4dCB0cmFjayBpZiB0aGUgY3Vy
cmVudCBhdWRpbyB0cmFjayBpcyBOT1QgaW4gdGhlIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2Ug
Li4uCiAgICAgICAgICAgICBzaXplX3Qgb2Zmc2V0ID0gaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1
YWdlSW5MaXN0KGF1ZGlvVHJhY2tMYW5ndWFnZSwgbGFuZ3VhZ2VMaXN0LCBleGFjdE1hdGNoKTsK
QEAgLTQxOCw3ICs0MTgsNyBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJpbWFy
eUF1ZGlvVHJhY2tMYW5ndWFnZU92ZXJyaWRlKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcHJpbWFy
eUF1ZGlvVHJhY2tMYW5ndWFnZU92ZXJyaWRlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG1f
cHJpbWFyeUF1ZGlvVHJhY2tMYW5ndWFnZU92ZXJyaWRlOwotICAgIHJldHVybiBkZWZhdWx0TGFu
Z3VhZ2UoKTsKKyAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlKFNob3VsZE1pbmltaXplTGFuZ3Vh
Z2VzOjpObyk7CiB9CiAgICAgCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCmluZGV4IGNmMmUxYmVhMjViMGYwNzk5ODYz
OTIwNTk0NWRmMGVlZjkyZDNjNDIuLjlkNzJlZDY1ZTJmM2E3ODU4MDdhM2ZmMjViYmZkZjNjMDUy
NjIwNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJl
bmNlc01lZGlhQUYuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVm
ZXJlbmNlc01lZGlhQUYuY3BwCkBAIC00NzEsMzYgKzQ3MSwyMCBAQCB2b2lkIENhcHRpb25Vc2Vy
UHJlZmVyZW5jZXNNZWRpYUFGOjpzZXRQcmVmZXJyZWRMYW5ndWFnZShjb25zdCBTdHJpbmcmIGxh
bmd1YWdlKQogCiBWZWN0b3I8U3RyaW5nPiBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6
cHJlZmVycmVkTGFuZ3VhZ2VzKCkgY29uc3QKIHsKLSAgICBpZiAodGVzdGluZ01vZGUoKSB8fCAh
TWVkaWFBY2Nlc3NpYmlsaXR5TGlicmFyeSgpKQotICAgICAgICByZXR1cm4gQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzKCk7Ci0KLSAgICBWZWN0b3I8U3RyaW5nPiBw
bGF0Zm9ybUxhbmd1YWdlcyA9IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpOwotICAg
IFZlY3RvcjxTdHJpbmc+IG92ZXJyaWRlID0gdXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRl
KCk7Ci0gICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKHBsYXRmb3Jt
TGFuZ3VhZ2VzLnNpemUoKSAhPSBvdmVycmlkZS5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4g
b3ZlcnJpZGU7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb3ZlcnJpZGUuc2l6ZSgp
OyBpKyspIHsKLSAgICAgICAgICAgIGlmIChvdmVycmlkZVtpXSAhPSBwbGF0Zm9ybUxhbmd1YWdl
c1tpXSkKLSAgICAgICAgICAgICAgICByZXR1cm4gb3ZlcnJpZGU7CisgICAgYXV0byBwcmVmZXJy
ZWRMYW5ndWFnZXMgPSBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpwcmVmZXJyZWRMYW5ndWFnZXMo
KTsKKyAgICBpZiAoIXRlc3RpbmdNb2RlKCkgJiYgTWVkaWFBY2Nlc3NpYmlsaXR5TGlicmFyeSgp
KSB7CisgICAgICAgIGF1dG8gY2FwdGlvbkxhbmd1YWdlcyA9IGFkb3B0Q0YoTUFDYXB0aW9uQXBw
ZWFyYW5jZUNvcHlTZWxlY3RlZExhbmd1YWdlcyhrTUFDYXB0aW9uQXBwZWFyYW5jZURvbWFpblVz
ZXIpKTsKKyAgICAgICAgQ0ZJbmRleCBjYXB0aW9uTGFuZ3VhZ2VzQ291bnQgPSBjYXB0aW9uTGFu
Z3VhZ2VzID8gQ0ZBcnJheUdldENvdW50KGNhcHRpb25MYW5ndWFnZXMuZ2V0KCkpIDogMDsKKyAg
ICAgICAgaWYgKGNhcHRpb25MYW5ndWFnZXNDb3VudCkgeworICAgICAgICAgICAgVmVjdG9yPFN0
cmluZz4gdGVtcDsKKyAgICAgICAgICAgIHRlbXAucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjYXB0
aW9uTGFuZ3VhZ2VzQ291bnQgKyBwcmVmZXJyZWRMYW5ndWFnZXMuc2l6ZSgpKTsKKyAgICAgICAg
ICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGNhcHRpb25MYW5ndWFnZXNDb3VudDsgaSsrKQor
ICAgICAgICAgICAgICAgIHRlbXAudW5jaGVja2VkQXBwZW5kKHN0YXRpY19jYXN0PENGU3RyaW5n
UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGNhcHRpb25MYW5ndWFnZXMuZ2V0KCksIGkpKSk7
CisgICAgICAgICAgICB0ZW1wLmFwcGVuZFZlY3RvcihXVEZNb3ZlKHByZWZlcnJlZExhbmd1YWdl
cykpOworICAgICAgICAgICAgcHJlZmVycmVkTGFuZ3VhZ2VzID0gV1RGTW92ZSh0ZW1wKTsKICAg
ICAgICAgfQogICAgIH0KLQotICAgIENGSW5kZXggbGFuZ3VhZ2VDb3VudCA9IDA7Ci0gICAgUmV0
YWluUHRyPENGQXJyYXlSZWY+IGxhbmd1YWdlcyA9IGFkb3B0Q0YoTUFDYXB0aW9uQXBwZWFyYW5j
ZUNvcHlTZWxlY3RlZExhbmd1YWdlcyhrTUFDYXB0aW9uQXBwZWFyYW5jZURvbWFpblVzZXIpKTsK
LSAgICBpZiAobGFuZ3VhZ2VzKQotICAgICAgICBsYW5ndWFnZUNvdW50ID0gQ0ZBcnJheUdldENv
dW50KGxhbmd1YWdlcy5nZXQoKSk7Ci0KLSAgICBpZiAoIWxhbmd1YWdlQ291bnQpCi0gICAgICAg
IHJldHVybiBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpwcmVmZXJyZWRMYW5ndWFnZXMoKTsKLQot
ICAgIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7Ci0gICAgdXNlclByZWZl
cnJlZExhbmd1YWdlcy5yZXNlcnZlQ2FwYWNpdHkobGFuZ3VhZ2VDb3VudCArIHBsYXRmb3JtTGFu
Z3VhZ2VzLnNpemUoKSk7Ci0gICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgbGFuZ3VhZ2VDb3Vu
dDsgaSsrKQotICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZChzdGF0aWNfY2Fz
dDxDRlN0cmluZ1JlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChsYW5ndWFnZXMuZ2V0KCksIGkp
KSk7Ci0KLSAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZFZlY3RvcihwbGF0Zm9ybUxh
bmd1YWdlcyk7Ci0KLSAgICByZXR1cm4gdXNlclByZWZlcnJlZExhbmd1YWdlczsKKyAgICByZXR1
cm4gcHJlZmVycmVkTGFuZ3VhZ2VzOwogfQogCiB2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
ZWRpYUFGOjpzZXRQcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljKGNvbnN0IFN0cmluZyYgY2hh
cmFjdGVyaXN0aWMpCkBAIC01NzksMTMgKzU2MywxNSBAQCBzdGF0aWMgdm9pZCBidWlsZERpc3Bs
YXlTdHJpbmdGb3JUcmFja0Jhc2UoU3RyaW5nQnVpbGRlciYgZGlzcGxheU5hbWUsIGNvbnN0IFRy
YQogICAgIFN0cmluZyBsYWJlbCA9IHRyYWNrLmxhYmVsKCk7CiAgICAgU3RyaW5nIHRyYWNrTGFu
Z3VhZ2VJZGVudGlmaWVyID0gdHJhY2sudmFsaWRCQ1A0N0xhbmd1YWdlKCk7CiAKLSAgICBSZXRh
aW5QdHI8Q0ZMb2NhbGVSZWY+IGN1cnJlbnRMb2NhbGUgPSBhZG9wdENGKENGTG9jYWxlQ3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIGRlZmF1bHRMYW5ndWFnZSgpLmNyZWF0ZUNGU3RyaW5nKCku
Z2V0KCkpKTsKKyAgICBhdXRvIHByZWZlcnJlZExhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKTsKKyAgICBhdXRvIGRlZmF1bHRMYW5n
dWFnZSA9ICFwcmVmZXJyZWRMYW5ndWFnZXMuaXNFbXB0eSgpID8gcHJlZmVycmVkTGFuZ3VhZ2Vz
WzBdIDogZW1wdHlTdHJpbmcoKTsgLy8gVGhpcyBtYXRjaGVzIGBXVEY6OmRlZmF1bHRMYW5ndWFn
ZWAuCisgICAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBjdXJyZW50TG9jYWxlID0gYWRvcHRDRihD
RkxvY2FsZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkZWZhdWx0TGFuZ3VhZ2UuY3JlYXRl
Q0ZTdHJpbmcoKS5nZXQoKSkpOwogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gbG9jYWxlSWRl
bnRpZmllciA9IGFkb3B0Q0YoQ0ZMb2NhbGVDcmVhdGVDYW5vbmljYWxMb2NhbGVJZGVudGlmaWVy
RnJvbVN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCB0cmFja0xhbmd1YWdlSWRlbnRpZmllci5j
cmVhdGVDRlN0cmluZygpLmdldCgpKSk7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBsYW5n
dWFnZUNGID0gYWRvcHRDRihDRkxvY2FsZUNvcHlEaXNwbGF5TmFtZUZvclByb3BlcnR5VmFsdWUo
Y3VycmVudExvY2FsZS5nZXQoKSwga0NGTG9jYWxlTGFuZ3VhZ2VDb2RlLCBsb2NhbGVJZGVudGlm
aWVyLmdldCgpKSk7CiAgICAgU3RyaW5nIGxhbmd1YWdlID0gbGFuZ3VhZ2VDRi5nZXQoKTsKIAog
ICAgIGlmICghbGFiZWwuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGlmIChsYW5ndWFnZS5pc0VtcHR5
KCkgfHwgbGFiZWwuY29udGFpbnMobGFuZ3VhZ2UpKQorICAgICAgICBpZiAobGFuZ3VhZ2UuaXNF
bXB0eSgpIHx8IGxhYmVsLmNvbnRhaW5zKGxhbmd1YWdlKSB8fCBwcmVmZXJyZWRMYW5ndWFnZXMu
Y29udGFpbnModHJhY2tMYW5ndWFnZUlkZW50aWZpZXIpKQogICAgICAgICAgICAgZGlzcGxheU5h
bWUuYXBwZW5kKGxhYmVsKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBSZXRhaW5QdHI8
Q0ZEaWN0aW9uYXJ5UmVmPiBsb2NhbGVEaWN0ID0gYWRvcHRDRihDRkxvY2FsZUNyZWF0ZUNvbXBv
bmVudHNGcm9tTG9jYWxlSWRlbnRpZmllcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBsb2NhbGVJZGVu
dGlmaWVyLmdldCgpKSk7CkBAIC03MDksMTUgKzY5NSwxNiBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlc01lZGlhQUY6OmRpc3BsYXlOYW1lRm9yVHJhY2soVGV4dFRyYWNrKiB0cmFjaykg
Y29ucwogCiBzdGF0aWMgYm9vbCB0ZXh0VHJhY2tDb21wYXJlKGNvbnN0IFJlZlB0cjxUZXh0VHJh
Y2s+JiBhLCBjb25zdCBSZWZQdHI8VGV4dFRyYWNrPiYgYikKIHsKLSAgICBTdHJpbmcgcHJlZmVy
cmVkTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUobGFu
Z3VhZ2VJZGVudGlmaWVyKGRlZmF1bHRMYW5ndWFnZSgpKSk7CiAgICAgU3RyaW5nIGFMYW5ndWFn
ZURpc3BsYXlOYW1lID0gZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShsYW5ndWFnZUlkZW50
aWZpZXIoYS0+dmFsaWRCQ1A0N0xhbmd1YWdlKCkpKTsKICAgICBTdHJpbmcgYkxhbmd1YWdlRGlz
cGxheU5hbWUgPSBkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlKGxhbmd1YWdlSWRlbnRpZmll
cihiLT52YWxpZEJDUDQ3TGFuZ3VhZ2UoKSkpOwogCi0gICAgLy8gVHJhY2tzIGluIHRoZSB1c2Vy
J3MgcHJlZmVycmVkIGxhbmd1YWdlIGFyZSBhbHdheXMgYXQgdGhlIHRvcCBvZiB0aGUgbWVudS4K
LSAgICBib29sIGFJc1ByZWZlcnJlZExhbmd1YWdlID0gYUxhbmd1YWdlRGlzcGxheU5hbWUgPT0g
cHJlZmVycmVkTGFuZ3VhZ2VEaXNwbGF5TmFtZTsKLSAgICBib29sIGJJc1ByZWZlcnJlZExhbmd1
YWdlID0gYkxhbmd1YWdlRGlzcGxheU5hbWUgPT0gcHJlZmVycmVkTGFuZ3VhZ2VEaXNwbGF5TmFt
ZTsKLSAgICBpZiAoYUlzUHJlZmVycmVkTGFuZ3VhZ2UgIT0gYklzUHJlZmVycmVkTGFuZ3VhZ2Up
Ci0gICAgICAgIHJldHVybiBhSXNQcmVmZXJyZWRMYW5ndWFnZTsKKyAgICBmb3IgKGF1dG8mIHBy
ZWZlcnJlZExhbmd1YWdlIDogdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxh
bmd1YWdlczo6Tm8pKSB7CisgICAgICAgIFN0cmluZyBwcmVmZXJyZWRMYW5ndWFnZURpc3BsYXlO
YW1lID0gZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShsYW5ndWFnZUlkZW50aWZpZXIocHJl
ZmVycmVkTGFuZ3VhZ2UpKTsKKyAgICAgICAgYm9vbCBhSXNQcmVmZXJyZWRMYW5ndWFnZSA9IGFM
YW5ndWFnZURpc3BsYXlOYW1lID09IHByZWZlcnJlZExhbmd1YWdlRGlzcGxheU5hbWU7CisgICAg
ICAgIGJvb2wgYklzUHJlZmVycmVkTGFuZ3VhZ2UgPSBiTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9PSBw
cmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lOworICAgICAgICBpZiAoYUlzUHJlZmVycmVkTGFu
Z3VhZ2UgIT0gYklzUHJlZmVycmVkTGFuZ3VhZ2UpCisgICAgICAgICAgICByZXR1cm4gYUlzUHJl
ZmVycmVkTGFuZ3VhZ2U7CisgICAgfQogCiAgICAgQ29sbGF0b3IgY29sbGF0b3I7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQppbmRleCA5YmQ1
NjQ4NDBjMjgyYWY1N2ExMGQ0ZTRkY2JlODc1NzM0YmM4MjZhLi5iNDE5YjYwZDk4ZTM2NmRiNDdk
YzcwNTdlYmQyNTc2OGRjM2Q2OTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2Vs
ZWN0aW9uR3JvdXBBVkZPYmpDLm1tCkBAIC0xMzQsNyArMTM0LDcgQEAgdm9pZCBNZWRpYVNlbGVj
dGlvbkdyb3VwQVZGT2JqQzo6dXBkYXRlT3B0aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgY2hh
cmFjdGVyaXMKICAgICAgICAgcmV0dXJuOwogCiAgICAgTlNBcnJheSogZmlsdGVyZWRPcHRpb25z
ID0gW1BBTDo6Z2V0QVZNZWRpYVNlbGVjdGlvbkdyb3VwQ2xhc3MoKSBtZWRpYVNlbGVjdGlvbk9w
dGlvbnNGcm9tQXJyYXk6W21fbWVkaWFTZWxlY3Rpb25Hcm91cCBvcHRpb25zXQotICAgICAgICBm
aWx0ZXJlZEFuZFNvcnRlZEFjY29yZGluZ1RvUHJlZmVycmVkTGFuZ3VhZ2VzOmNyZWF0ZU5TQXJy
YXkodXNlclByZWZlcnJlZExhbmd1YWdlcygpKS5nZXQoKV07CisgICAgICAgIGZpbHRlcmVkQW5k
U29ydGVkQWNjb3JkaW5nVG9QcmVmZXJyZWRMYW5ndWFnZXM6Y3JlYXRlTlNBcnJheSh1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObykpLmdldCgpXTsKIAog
ICAgIGlmICghW2ZpbHRlcmVkT3B0aW9ucyBjb3VudF0gJiYgY2hhcmFjdGVyaXN0aWNzLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGVhYjA4M2YxZTA3ZDQ1ZTg4YWRiMTQwMWRiYjRjMjE1YjUzNzg1
NGEuLmJjZjZkYTU0ZjdmN2JmNjhiMDFhMjhhYjBmN2I1ZGVkODExZDQwNTMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAyMS0wNS0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
W01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRpYSBjb250cm9s
cyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZvciBvcmRlcmlu
ZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvTGFuZ3VhZ2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QuTGFuZ3VhZ2UuU2hvdWxkTWluaW1pemVMYW5ndWFnZXNZ
ZXMpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVC5MYW5ndWFnZS5TaG91bGRNaW5pbWl6
ZUxhbmd1YWdlc05vKToKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMv
VGVzdFdURi54Y2NvbmZpZzoKKyAgICAgICAgTGluayBgSW50ZXJuYXRpb25hbFN1cHBvcnRgIGFz
IHRoYXQncyB3aGVyZSB0aGUgYE5TTG9jYWxlYCBleHRlbnNpb25zIGFyZSBpbXBsZW1lbnRlZC4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorCiAyMDIxLTA1LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVwbGFjZSBMb2NrSG9sZGVyIHdpdGggTG9ja2VyIGluIGxvY2FsIHZhcmlh
YmxlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0
V1RGLnhjY29uZmlnIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V1RG
LnhjY29uZmlnCmluZGV4IGU2YTI5NzdmYjQ1MmQ4YTI2MmYzNzQ0YjQ1Y2ZhNWE1ZjkzMzgyZDEu
LmY4ZWM4MWFhNjJlZGQ2NDkyYzdkZDYxMTM5NGJmZjk4Zjg3MTM3MjIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdURi54Y2NvbmZpZworKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL1Rlc3RXVEYueGNjb25maWcKQEAgLTI5
LDEwICsyOSwxMyBAQCBHQ0NfRU5BQkxFX09CSkNfRVhDRVBUSU9OUyA9IFlFUzsKIAogR0NDX1BS
RVBST0NFU1NPUl9ERUZJTklUSU9OUyA9ICQoaW5oZXJpdGVkKSBCVUlMRElOR19URVNUX1dURiBH
VEVTVF9BUElfPQogCisvLyBOZWVkZWQgYnkgYFNvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdl
Q29jb2EubW1gLgorV0tfSU5URVJOQVRJT05BTF9TVVBQT1JUX0xERkxBR1MgPSAtZnJhbWV3b3Jr
IEludGVybmF0aW9uYWxTdXBwb3J0OworCiBXS19VSUtJVE1BQ0hFTFBFUl9MREZMQUdTID0gJChX
S19VSUtJVE1BQ0hFTFBFUl9MREZMQUdTXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogV0tfVUlLSVRN
QUNIRUxQRVJfTERGTEFHU19tYWNjYXRhbHlzdCA9IC1mcmFtZXdvcmsgVUlLaXRNYWNIZWxwZXI7
CiAKLU9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgLWxndGVzdCAtZm9yY2VfbG9hZCAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvbGliVGVzdFdURi5hICQoV0tfVUlLSVRNQUNIRUxQRVJfTERGTEFH
UykgJChPVEhFUl9MREZMQUdTX1BMQVRGT1JNXyQoV0tfQ09DT0FfVE9VQ0gpKTsKK09USEVSX0xE
RkxBR1MgPSAkKGluaGVyaXRlZCkgLWxndGVzdCAtaWZyYW1ld29yayAkKFNES19ESVIpJChTWVNU
RU1fTElCUkFSWV9ESVIpL1ByaXZhdGVGcmFtZXdvcmtzIC1mb3JjZV9sb2FkICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9saWJUZXN0V1RGLmEgJChXS19JTlRFUk5BVElPTkFMX1NVUFBPUlRfTERGTEFH
UykgJChXS19VSUtJVE1BQ0hFTFBFUl9MREZMQUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1f
JChXS19DT0NPQV9UT1VDSCkpOwogT1RIRVJfTERGTEFHU19QTEFURk9STV8gPSAtZnJhbWV3b3Jr
IENvY29hIC1mcmFtZXdvcmsgQ2FyYm9uOwogCiAvLyBGSVhNRTogVGhpcyBzaG91bGQgbm90IGJl
IGJ1aWx0IG9uIGlPUy4gSW5zdGVhZCB3ZSBzaG91bGQgY3JlYXRlIGFuZCB1c2UgYSBUZXN0V1RG
IGFwcGxpY2F0aW9uLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzYmI4ZWJiNjJiNWY2MzU5
ZTVjMjg3MWI4ZjVlZDVmYTBmZDBjYzZkLi5mMTY2MGM3ZTVjMmEzNTM4Y2UxYTA0OGMzZTIxZDkx
MDhmM2IxZTBjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODc5LDYgKzg3OSw3IEBACiAJ
CTk1MDk1RjIwMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9yLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwOTVGMUYyNjJGRkZB
NTAwMDBEOTIwIC8qIFNhbXBsZWRQYWdlVG9wQ29sb3IubW0gKi87IH07CiAJCTk1MEU0Q0MxMjUy
RTc1MjQwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlP
U1N0eWx1c1N1cHBvcnQubW0gKi87IH07CiAJCTk1M0FCQjM1MjVDMEQ2ODIwMDRDOEI3MyAvKiBX
S1dlYlZpZXdVbmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTNBQkIzNDI1QzBENjgxMDA0QzhCNzMgLyogV0tX
ZWJWaWV3VW5kZXJQYWdlQmFja2dyb3VuZENvbG9yLm1tICovOyB9OworCQk5NTRFNDEzMDI2NTZF
MDY4MDA0NTVENEYgLyogTGFuZ3VhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTU0RTQxMkUyNjU2RTA2MzAwNDU1RDRGIC8qIExhbmd1YWdlLmNw
cCAqLzsgfTsKIAkJOTVBNTI0OTUyNTgxQTEwRDAwNDYxRkU5IC8qIFdLV2ViVmlld1RoZW1lQ29s
b3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUE1
MjQ5NDI1ODFBMTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3VGhlbWVDb2xvci5tbSAqLzsgfTsKIAkJ
OTVCNkIzQjcyNTFFQkYyRjAwRkM0MzgyIC8qIE1lZGlhRG9jdW1lbnQubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUI2QjNCNjI1MUVCRjJGMDBGQzQz
ODIgLyogTWVkaWFEb2N1bWVudC5tbSAqLzsgfTsKIAkJOTk4NEZBQ0MxQ0ZGQUY2MDAwOEQxOThD
IC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk5ODRGQUNBMUNGRkFFRUUwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0
SW5wdXQubW0gKi87IH07CkBAIC0yNTg3LDYgKzI1ODgsNyBAQAogCQk5NTA5NUYxRjI2MkZGRkE1
MDAwMEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFNhbXBsZWRQYWdlVG9wQ29sb3IubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk1MEU0Q0MwMjUyRTc1MjMwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBw
b3J0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gaU9TU3R5bHVz
U3VwcG9ydC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUzQUJCMzQyNUMwRDY4
MTAwNEM4QjczIC8qIFdLV2ViVmlld1VuZGVyUGFnZUJhY2tncm91bmRDb2xvci5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1VuZGVyUGFnZUJhY2tn
cm91bmRDb2xvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTU0RTQxMkUyNjU2
RTA2MzAwNDU1RDRGIC8qIExhbmd1YWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IExhbmd1YWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVB
NTI0OTQyNTgxQTEwRDAwNDYxRkU5IC8qIFdLV2ViVmlld1RoZW1lQ29sb3IubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUI2QjNCNjI1MUVCRjJGMDBGQzQzODIgLyog
TWVkaWFEb2N1bWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IE1lZGlhRG9jdW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5ODRGQUNB
MUNGRkFFRUUwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdUZXh0SW5wdXQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODE5LDYgKzQ4MjEsNyBAQAogCQlDMDk5MUM0RjE0M0M3
RDY4MDA3OTk4RjIgLyogY2YgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCTk1NEU0MTJFMjY1NkUwNjMwMDQ1NUQ0RiAvKiBMYW5ndWFnZS5jcHAgKi8sCiAJ
CQkJQkMwMjlCMTYxNDg2QUQ2NDAwODE3REE5IC8qIFJldGFpblB0ci5jcHAgKi8sCiAJCQkJQzA5
OTFDNTAxNDNDN0Q2ODAwNzk5OEYyIC8qIFJldGFpblB0ckhhc2hpbmcuY3BwICovLAogCQkJKTsK
QEAgLTUyMDAsNiArNTIwMyw3IEBACiAJCQkJNTNGQ0RFNkIyMjlFRkZCOTAwNTk4RUNGIC8qIElz
b0hlYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NFQjYyQUIyMjM2MDlERTAwNjlDQkIwIC8q
IEl0ZXJhdG9yUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0EwNTA5NDExRkI5RjA2NDAw
QjMzRkI4IC8qIEpTT05WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5NTRFNDEzMDI2NTZF
MDY4MDA0NTVENEYgLyogTGFuZ3VhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTMxQzFEOEUx
REY4RUY3MjAwNkU5NzlGIC8qIExFQkRlY29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU3
RDU0RjkxRjMzOTdCNDAwQTk3QUE3IC8qIExpZmVjeWNsZUxvZ2dlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk5M0UyQzU1NTFGRDMyMDQxMDBFMURGNkEgLyogTGluZUVuZGluZy5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NmL0xh
bmd1YWdlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NmL0xhbmd1YWdlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41YjdjYzEwYmFhZmFlNmM0MjlhOGU1OWQyNmU1YWI0YThkOTQ1NTAwCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvTGFuZ3Vh
Z2UuY3BwCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKExhbmd1YWdlLCBT
aG91bGRNaW5pbWl6ZUxhbmd1YWdlc1llcykKK3sKKyAgICBvdmVycmlkZVVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMoeyB9KTsKKyAgICBXVEY6Om92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclByZWZl
cnJlZExhbmd1YWdlc0ZvclRlc3RpbmcoeyAiZW4tVVMiX3MsICJlcy1VUyJfcywgImZyLVVTIl9z
IH0pOworCisgICAgYXV0byBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3Vs
ZE1pbmltaXplTGFuZ3VhZ2VzOjpZZXMpOworICAgIEFMV0FZU19MT0dfV0lUSF9TVFJFQU0oc3Ry
ZWFtIDw8ICJMYW5ndWFnZS5TaG91bGRNaW5pbWl6ZUxhbmd1YWdlc1llcyAtIGxhbmd1YWdlcyA9
ICIgPDwgbGFuZ3VhZ2VzKTsKKworICAgIGF1dG8gZW5nbGlzaEluZGV4ID0gbGFuZ3VhZ2VzLmZp
bmRNYXRjaGluZyhbXSAoY29uc3QgYXV0byYgbGFuZ3VhZ2UpIHsKKyAgICAgICAgcmV0dXJuIGxh
bmd1YWdlLnN0YXJ0c1dpdGgoImVuIl9zKTsKKyAgICB9KTsKKyAgICBhdXRvIHNwYW5pc2hJbmRl
eCA9IGxhbmd1YWdlcy5maW5kTWF0Y2hpbmcoW10gKGNvbnN0IGF1dG8mIGxhbmd1YWdlKSB7Cisg
ICAgICAgIHJldHVybiBsYW5ndWFnZS5zdGFydHNXaXRoKCJlcyJfcyk7CisgICAgfSk7CisgICAg
YXV0byBmcmVuY2hJbmRleCA9IGxhbmd1YWdlcy5maW5kTWF0Y2hpbmcoW10gKGNvbnN0IGF1dG8m
IGxhbmd1YWdlKSB7CisgICAgICAgIHJldHVybiBsYW5ndWFnZS5zdGFydHNXaXRoKCJmciJfcyk7
CisgICAgfSk7CisKKyAgICBFWFBFQ1RfTkUoZW5nbGlzaEluZGV4LCBub3RGb3VuZCk7CisgICAg
RVhQRUNUX0VRKHNwYW5pc2hJbmRleCwgbm90Rm91bmQpOworICAgIEVYUEVDVF9FUShmcmVuY2hJ
bmRleCwgbm90Rm91bmQpOworCisgICAgV1RGOjpvdmVycmlkZUluaXRpYWxQbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNGb3JUZXN0aW5nKHsgfSk7IC8vIGNsZWFudXAKK30KKworVEVTVChM
YW5ndWFnZSwgU2hvdWxkTWluaW1pemVMYW5ndWFnZXNObykKK3sKKyAgICBvdmVycmlkZVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMoeyB9KTsKKyAgICBXVEY6Om92ZXJyaWRlSW5pdGlhbFBsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlc0ZvclRlc3RpbmcoeyAiZW4tVVMiX3MsICJlcy1VUyJfcywg
ImZyLVVTIl9zIH0pOworCisgICAgYXV0byBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObyk7CisgICAgQUxXQVlTX0xPR19XSVRIX1NU
UkVBTShzdHJlYW0gPDwgIkxhbmd1YWdlLlNob3VsZE1pbmltaXplTGFuZ3VhZ2VzTm8gLSBsYW5n
dWFnZXMgPSAiIDw8IGxhbmd1YWdlcyk7CisKKyAgICBhdXRvIGVuZ2xpc2hVU0luZGV4ID0gbGFu
Z3VhZ2VzLmZpbmQoImVuLVVTIl9zKTsKKyAgICBhdXRvIGVuZ2xpc2hJbmRleCA9IGxhbmd1YWdl
cy5maW5kTWF0Y2hpbmcoW10gKGNvbnN0IGF1dG8mIGxhbmd1YWdlKSB7CisgICAgICAgIHJldHVy
biBsYW5ndWFnZS5zdGFydHNXaXRoKCJlbiJfcykgJiYgbGFuZ3VhZ2UgIT0gImVuLVVTIl9zOwor
ICAgIH0pOworICAgIGF1dG8gc3BhbmlzaFVTSW5kZXggPSBsYW5ndWFnZXMuZmluZCgiZXMtVVMi
X3MpOworICAgIGF1dG8gc3BhbmlzaEluZGV4ID0gbGFuZ3VhZ2VzLmZpbmRNYXRjaGluZyhbXSAo
Y29uc3QgYXV0byYgbGFuZ3VhZ2UpIHsKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlLnN0YXJ0c1dp
dGgoImVzIl9zKSAmJiBsYW5ndWFnZSAhPSAiZXMtVVMiX3M7CisgICAgfSk7CisgICAgYXV0byBm
cmVuY2hVU0luZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImZyLVVTIl9zKTsKKyAgICBhdXRvIGZyZW5j
aEluZGV4ID0gbGFuZ3VhZ2VzLmZpbmRNYXRjaGluZyhbXSAoY29uc3QgYXV0byYgbGFuZ3VhZ2Up
IHsKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlLnN0YXJ0c1dpdGgoImZyIl9zKSAmJiBsYW5ndWFn
ZSAhPSAiZnItVVMiX3M7CisgICAgfSk7CisKKyAgICBFWFBFQ1RfTkUoZW5nbGlzaFVTSW5kZXgs
IG5vdEZvdW5kKTsKKyAgICBpZiAoZW5nbGlzaEluZGV4ICE9IG5vdEZvdW5kKSB7CisgICAgICAg
IEVYUEVDVF9HVChlbmdsaXNoSW5kZXgsIGVuZ2xpc2hVU0luZGV4KTsKKyAgICAgICAgRVhQRUNU
X0xUKGVuZ2xpc2hJbmRleCwgc3BhbmlzaFVTSW5kZXgpOworICAgIH0KKyAgICBFWFBFQ1RfTkUo
c3BhbmlzaFVTSW5kZXgsIG5vdEZvdW5kKTsKKyAgICBFWFBFQ1RfR1Qoc3BhbmlzaFVTSW5kZXgs
IGVuZ2xpc2hVU0luZGV4KTsKKyAgICBpZiAoc3BhbmlzaEluZGV4ICE9IG5vdEZvdW5kKSB7Cisg
ICAgICAgIEVYUEVDVF9HVChzcGFuaXNoSW5kZXgsIHNwYW5pc2hVU0luZGV4KTsKKyAgICAgICAg
RVhQRUNUX0xUKHNwYW5pc2hJbmRleCwgZnJlbmNoVVNJbmRleCk7CisgICAgfQorICAgIEVYUEVD
VF9ORShmcmVuY2hVU0luZGV4LCBub3RGb3VuZCk7CisgICAgRVhQRUNUX0dUKGZyZW5jaFVTSW5k
ZXgsIHNwYW5pc2hVU0luZGV4KTsKKyAgICBpZiAoZnJlbmNoSW5kZXggIT0gbm90Rm91bmQpCisg
ICAgICAgIEVYUEVDVF9HVChmcmVuY2hJbmRleCwgZnJlbmNoVVNJbmRleCk7CisKKyAgICBXVEY6
Om92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0ZvclRlc3Rpbmco
eyB9KTsgLy8gY2xlYW51cAorfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYg
LS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5n
ZUxvZwppbmRleCBkMmMyMGI5NTY2MjA5YzU1YzcxMDM0MmU3ZDg5YmQwMzJjOTBhMmFiLi5kZDMx
ZDIyZmI3ZjFjMmZhZDVkZTQ4ZDRiYTkwZDYwYjM5MjhlZjAwIDEwMDY0NAotLS0gYS9XZWJLaXRM
aWJyYXJpZXMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAyMS0wNS0yMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+
CisKKyAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBt
ZWRpYSBjb250cm9scyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2Vz
IGZvciBvcmRlcmluZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qg
b2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29y
dC9vcmRlciB0aGUgbGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBs
ZSwgaWYgYSBgPHZpZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3Bh
bmlzaCwgYW5kIEZyZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQg
RnJlbmNoIChhbHRlcm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYg
UmVnaW9uIHZpZXcgb2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxk
IG9yZGVyCisgICAgICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0
aGVuIFNwYW5pc2guCisKKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFj
LzEwMTUwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBv
cnQudGJkOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFj
LzEwMTYwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBv
cnQudGJkOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFj
LzExMDAwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBv
cnQudGJkOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvYXBw
bGV0dm9zLzE0L0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3Vw
cG9ydC50YmQ6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9p
T1MvMTQvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0
LnRiZDogQWRkZWQuCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL3dhdGNo
b3MvNy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQu
dGJkOiBBZGRlZC4KKyAgICAgICAgTGluayBgSW50ZXJuYXRpb25hbFN1cHBvcnRgIGFzIHRoYXQn
cyB3aGVyZSB0aGUgYE5TTG9jYWxlYCBleHRlbnNpb25zIGFyZSBpbXBsZW1lbnRlZC4KKwogMjAy
MS0wMS0wNCAgSmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRl
IHVzZXItdmlzaWJsZSBjb3B5cmlnaHQgc3RyaW5ncyB0byBpbmNsdWRlIDIwMjEKZGlmZiAtLWdp
dCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzEwMTUw
MC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJk
IGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9NYWMvMTAxNTAw
L0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmE4MDg4NTBjYmM2Yjg5MDQ4MWU3Y2FmY2Q4MDhkZjdjNTQ5MDZlMAotLS0g
L2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1
YnMvTWFjLzEwMTUwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25h
bFN1cHBvcnQudGJkCkBAIC0wLDAgKzEsOSBAQAorLS0tICF0YXBpLXRiZC12MworYXJjaHM6ICAg
ICAgICAgICBbIHg4Nl82NCBdCit1dWlkczogICAgICAgICAgIFsgJ3g4Nl82NDogOUJBQkM3MjYt
NjIyRi0zRTM1LUE4QzUtRTcyMjY3N0EzMDhDJywgJ3g4Nl82NDogOUJBQkM3MjYtNjIyRi0zRTM1
LUE4QzUtRTcyMjY3N0EzMDhDJyBdCitwbGF0Zm9ybTogICAgICAgIHppcHBlcmVkCitpbnN0YWxs
LW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvSW50ZXJuYXRpb25h
bFN1cHBvcnQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSW50ZXJuYXRpb25hbFN1cHBvcnQnCitjdXJy
ZW50LXZlcnNpb246IDQ0CitleHBvcnRzOiAgICAgICAgIAorICAtIGFyY2hzOiAgICAgICAgICAg
WyB4ODZfNjQgXQorLi4uCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0
ZUZyYW1ld29ya1N0dWJzL01hYy8xMDE2MDAvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3Jr
L0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRl
RnJhbWV3b3JrU3R1YnMvTWFjLzEwMTYwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsv
SW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwYjUzNTM0Y2U5YjIxYWM1N2Ez
ZWFhMjBlN2Q3YjM5YWRhNjNlOTIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJyYXJpZXMv
V2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL01hYy8xMDE2MDAvSW50ZXJuYXRpb25hbFN1cHBv
cnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZApAQCAtMCwwICsxLDIxIEBACist
LS0gIXRhcGktdGJkCit0YmQtdmVyc2lvbjogICAgIDQKK3RhcmdldHM6ICAgICAgICAgWyB4ODZf
NjQtbWFjb3MsIHg4Nl82NC1tYWNjYXRhbHlzdCwgYXJtNjQtbWFjb3MsIGFybTY0LW1hY2NhdGFs
eXN0LCBhcm02NGUtbWFjb3MsIGFybTY0ZS1tYWNjYXRhbHlzdCBdCit1dWlkczoKKyAgLSB0YXJn
ZXQ6ICAgICAgICAgIHg4Nl82NC1tYWNvcworICAgIHZhbHVlOiAgICAgICAgICAgQUI1OEUxQjEt
NjBFNS0zODNFLUJDREUtRTNDNDhGNEJDNzg3CisgIC0gdGFyZ2V0OiAgICAgICAgICB4ODZfNjQt
bWFjY2F0YWx5c3QKKyAgICB2YWx1ZTogICAgICAgICAgIEFCNThFMUIxLTYwRTUtMzgzRS1CQ0RF
LUUzQzQ4RjRCQzc4NworICAtIHRhcmdldDogICAgICAgICAgYXJtNjQtbWFjb3MKKyAgICB2YWx1
ZTogICAgICAgICAgIDAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMAorICAtIHRh
cmdldDogICAgICAgICAgYXJtNjQtbWFjY2F0YWx5c3QKKyAgICB2YWx1ZTogICAgICAgICAgIDAw
MDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMAorICAtIHRhcmdldDogICAgICAgICAg
YXJtNjRlLW1hY29zCisgICAgdmFsdWU6ICAgICAgICAgICA5M0U3Mzc4Ni05RDZELTMyMjktQjJC
Ni1BNDdDOTBGRkQzNDYKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybTY0ZS1tYWNjYXRhbHlzdAor
ICAgIHZhbHVlOiAgICAgICAgICAgOTNFNzM3ODYtOUQ2RC0zMjI5LUIyQjYtQTQ3QzkwRkZEMzQ2
CitpbnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvSW50
ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSW50ZXJuYXRpb25hbFN1cHBv
cnQnCitjdXJyZW50LXZlcnNpb246IDYwCitleHBvcnRzOgorICAtIHRhcmdldHM6ICAgICAgICAg
WyBhcm02NGUtbWFjb3MsIHg4Nl82NC1tYWNvcywgeDg2XzY0LW1hY2NhdGFseXN0LCBhcm02NGUt
bWFjY2F0YWx5c3QsIGFybTY0LW1hY29zLCBhcm02NC1tYWNjYXRhbHlzdCBdCisuLi4KZGlmZiAt
LWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzEx
MDAwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQu
dGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9NYWMvMTEw
MDAwL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50
YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDBiNTM1MzRjZTliMjFhYzU3YTNlYWEyMGU3ZDdiMzlhZGE2M2U5Mgot
LS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3Jr
U3R1YnMvTWFjLzExMDAwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRp
b25hbFN1cHBvcnQudGJkCkBAIC0wLDAgKzEsMjEgQEAKKy0tLSAhdGFwaS10YmQKK3RiZC12ZXJz
aW9uOiAgICAgNAordGFyZ2V0czogICAgICAgICBbIHg4Nl82NC1tYWNvcywgeDg2XzY0LW1hY2Nh
dGFseXN0LCBhcm02NC1tYWNvcywgYXJtNjQtbWFjY2F0YWx5c3QsIGFybTY0ZS1tYWNvcywgYXJt
NjRlLW1hY2NhdGFseXN0IF0KK3V1aWRzOgorICAtIHRhcmdldDogICAgICAgICAgeDg2XzY0LW1h
Y29zCisgICAgdmFsdWU6ICAgICAgICAgICBBQjU4RTFCMS02MEU1LTM4M0UtQkNERS1FM0M0OEY0
QkM3ODcKKyAgLSB0YXJnZXQ6ICAgICAgICAgIHg4Nl82NC1tYWNjYXRhbHlzdAorICAgIHZhbHVl
OiAgICAgICAgICAgQUI1OEUxQjEtNjBFNS0zODNFLUJDREUtRTNDNDhGNEJDNzg3CisgIC0gdGFy
Z2V0OiAgICAgICAgICBhcm02NC1tYWNvcworICAgIHZhbHVlOiAgICAgICAgICAgMDAwMDAwMDAt
MDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwCisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NC1t
YWNjYXRhbHlzdAorICAgIHZhbHVlOiAgICAgICAgICAgMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAt
MDAwMDAwMDAwMDAwCisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NGUtbWFjb3MKKyAgICB2YWx1
ZTogICAgICAgICAgIDkzRTczNzg2LTlENkQtMzIyOS1CMkI2LUE0N0M5MEZGRDM0NgorICAtIHRh
cmdldDogICAgICAgICAgYXJtNjRlLW1hY2NhdGFseXN0CisgICAgdmFsdWU6ICAgICAgICAgICA5
M0U3Mzc4Ni05RDZELTMyMjktQjJCNi1BNDdDOTBGRkQzNDYKK2luc3RhbGwtbmFtZTogICAgJy9T
eXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9JbnRlcm5hdGlvbmFsU3VwcG9ydCcKK2N1cnJlbnQtdmVyc2lvbjog
NjAKK2V4cG9ydHM6CisgIC0gdGFyZ2V0czogICAgICAgICBbIGFybTY0ZS1tYWNvcywgeDg2XzY0
LW1hY29zLCB4ODZfNjQtbWFjY2F0YWx5c3QsIGFybTY0ZS1tYWNjYXRhbHlzdCwgYXJtNjQtbWFj
b3MsIGFybTY0LW1hY2NhdGFseXN0IF0KKy4uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVz
L1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9hcHBsZXR2b3MvMTQvSW50ZXJuYXRpb25hbFN1
cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZCBiL1dlYktpdExpYnJhcmll
cy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE0L0ludGVybmF0aW9uYWxT
dXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmQ3
MDRiZjM5NjM0NWNhNjRlMGQyMDhhYjM5YWZjNDQ3NWM4YzliZQotLS0gL2Rldi9udWxsCisrKyBi
L1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE0
L0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQK
QEAgLTAsMCArMSwxMyBAQAorLS0tICF0YXBpLXRiZAordGJkLXZlcnNpb246ICAgICA0Cit0YXJn
ZXRzOiAgICAgICAgIFsgYXJtNjQtdHZvcywgYXJtNjRlLXR2b3MgXQordXVpZHM6CisgIC0gdGFy
Z2V0OiAgICAgICAgICBhcm02NC10dm9zCisgICAgdmFsdWU6ICAgICAgICAgICBGOUU5MDlCQy0x
NzQwLTM0RkItQjQ5MC1GQTBCOEY4MDlGQkMKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybTY0ZS10
dm9zCisgICAgdmFsdWU6ICAgICAgICAgICA4RjVCMUMxNi03NzJBLTNDQTItQkEyQy1GQzVDOUIz
NUQ5ODAKK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jr
cy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQnCitj
dXJyZW50LXZlcnNpb246IDU5CitleHBvcnRzOgorICAtIHRhcmdldHM6ICAgICAgICAgWyBhcm02
NC10dm9zLCBhcm02NGUtdHZvcyBdCisuLi4KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9X
ZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L0ludGVybmF0aW9uYWxTdXBwb3J0LmZy
YW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0
UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdv
cmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5ZWU2NDlmNDJlNDhiYTcy
ZDkxMzM0N2I1Y2M1ZGVkNTM0MjA3MTEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJyYXJp
ZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9JbnRlcm5hdGlvbmFsU3VwcG9y
dC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCkBAIC0wLDAgKzEsMTcgQEAKKy0t
LSAhdGFwaS10YmQKK3RiZC12ZXJzaW9uOiAgICAgNAordGFyZ2V0czogICAgICAgICBbIGFybXY3
LWlvcywgYXJtdjdzLWlvcywgYXJtNjQtaW9zLCBhcm02NGUtaW9zIF0KK3V1aWRzOgorICAtIHRh
cmdldDogICAgICAgICAgYXJtdjctaW9zCisgICAgdmFsdWU6ICAgICAgICAgICAwMDAwMDAwMC0w
MDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybXY3cy1p
b3MKKyAgICB2YWx1ZTogICAgICAgICAgIDAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAw
MDAwMAorICAtIHRhcmdldDogICAgICAgICAgYXJtNjQtaW9zCisgICAgdmFsdWU6ICAgICAgICAg
ICAwODQ0MTlGNS1CNzk0LTM3ODgtQjU1Ni0xRTMxMzc4Qjg4Q0YKKyAgLSB0YXJnZXQ6ICAgICAg
ICAgIGFybTY0ZS1pb3MKKyAgICB2YWx1ZTogICAgICAgICAgIEYzNUM3NUUxLTdFMzctM0UzQy04
RjNGLURDMkI4Q0FGQkU4QworaW5zdGFsbC1uYW1lOiAgICAnL1N5c3RlbS9MaWJyYXJ5L1ByaXZh
dGVGcmFtZXdvcmtzL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFs
U3VwcG9ydCcKK2N1cnJlbnQtdmVyc2lvbjogNjEuMQorZXhwb3J0czoKKyAgLSB0YXJnZXRzOiAg
ICAgICAgIFsgYXJtNjQtaW9zLCBhcm02NGUtaW9zLCBhcm12Ny1pb3MsIGFybXY3cy1pb3MgXQor
Li4uCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0
dWJzL3dhdGNob3MvNy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25h
bFN1cHBvcnQudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVi
cy93YXRjaG9zLzcvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxT
dXBwb3J0LnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzQ3YTBkYTBiZjdmZDUyNDI4MzQ2ZmM5YTI0OTk1NDU0
NDFiMTY4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVG
cmFtZXdvcmtTdHVicy93YXRjaG9zLzcvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0lu
dGVybmF0aW9uYWxTdXBwb3J0LnRiZApAQCAtMCwwICsxLDE1IEBACistLS0gIXRhcGktdGJkCit0
YmQtdmVyc2lvbjogICAgIDQKK3RhcmdldHM6ICAgICAgICAgWyBhcm12N2std2F0Y2hvcywgYXJt
NjRlLXdhdGNob3MsIGFybTY0XzMyLXdhdGNob3MgXQordXVpZHM6CisgIC0gdGFyZ2V0OiAgICAg
ICAgICBhcm12N2std2F0Y2hvcworICAgIHZhbHVlOiAgICAgICAgICAgNzUxNjJDNDUtOTVGMy0z
OTI3LTgyRUQtQUIyODAzMkMxN0Y4CisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NGUtd2F0Y2hv
cworICAgIHZhbHVlOiAgICAgICAgICAgRjMzQjRGQUUtMzdEMy0zOTU5LUI2MzktNTIwQ0JGRjU5
ODZECisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NF8zMi13YXRjaG9zCisgICAgdmFsdWU6ICAg
ICAgICAgICAzNUQ5RUMwQS1FRUIwLTM0RjctQkQwMi03N0U5Q0EzODQwNTUKK2luc3RhbGwtbmFt
ZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JbnRlcm5hdGlvbmFsU3Vw
cG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQnCitjdXJyZW50LXZlcnNpb246IDU5
CitleHBvcnRzOgorICAtIHRhcmdldHM6ICAgICAgICAgWyBhcm02NF8zMi13YXRjaG9zLCBhcm02
NGUtd2F0Y2hvcywgYXJtdjdrLXdhdGNob3MgXQorLi4uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429530</attachid>
            <date>2021-05-24 07:57:55 -0700</date>
            <delta_ts>2021-05-24 19:56:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226038-20210524085754.patch</filename>
            <type>text/plain</type>
            <size>53152</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGI0YjE0ZDM5NWUyNjA4NGY3NjYyZmVhMDdmODQ2
MWU5ZTk1NDEzMTAuLjQyYzkzNTk0MGE3YjA0YjYwNTZlMjMxYTU1ZmFlYTg0Y2M1NGIxNjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA1LTI0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENv
bnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxs
IGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWEgY29udHJvbHMg
bmVlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBpbiBv
cmRlciB0byBwcm9wZXJseQorICAgICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNrcyBp
biB0aGUgY29udHJvbHMgVUkuIEZvciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3VidGl0
bGVzCisgICAgICAgIGZvciBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhlIHVz
ZXIgaGFzIEVuZ2xpc2ggKGRlZmF1bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAgICAg
Y29uZmlndXJlZCBpbiB0aGUgTGFuZ3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJlZmVy
ZW5jZXMgb24gbWFjT1MsIFdlYktpdCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRpdGxl
cyBsaXN0IEVuZ2xpc2gsIEZyZW5jaCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3Bw
OgorICAgICAgICAoSlNDOjpkZWZhdWx0TG9jYWxlKToKKyAgICAgICAgVXBkYXRlIHVzYWdlIG9m
IGBXVEY6OmRlZmF1bHRMYW5ndWFnZWAgdG8gYWxzbyBoYXZlIGBXVEY6OlNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzYC4KKworICAgICAgICAqIHNoZWxsL3BsYXlzdGF0aW9uL1Rlc3RTaGVsbC5jcHA6
CisgICAgICAgIChwcmVUZXN0KToKKyAgICAgICAgSW5zdGVhZCBvZiBwcm9wYWdhdGluZyB0aGUg
b3ZlcnJpZGUsIGp1c3QgY2xlYXIgaXQgb3V0LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
SmF2YVNjcmlwdENvcmUueGNjb25maWc6CisgICAgICAgIExpbmsgYEludGVybmF0aW9uYWxTdXBw
b3J0YCBhcyB0aGF0J3Mgd2hlcmUgdGhlIGBOU0xvY2FsZWAgZXh0ZW5zaW9ucyBhcmUgaW1wbGVt
ZW50ZWQuCisKIDIwMjEtMDUtMjIgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFVzZSBzaW5nbGV0b24gdGh1bmtzIGZvciB2aXJ0dWFsIGNhbGxzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAzZGFk
NzA5YzMyYjQxYzE4NjAxNmM5ZWNkZTI5NmIzMTc5Yjg0NjMwLi4xNzBiOTEyMTlkMTJiMzI2MTJk
ZTFhZTcxYmU3YjRmZDk4NzJjYTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTA1LTI0ICBE
ZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlh
IENvbnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBm
dWxsIGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWEgY29udHJv
bHMgbmVlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBp
biBvcmRlciB0byBwcm9wZXJseQorICAgICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNr
cyBpbiB0aGUgY29udHJvbHMgVUkuIEZvciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3Vi
dGl0bGVzCisgICAgICAgIGZvciBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhl
IHVzZXIgaGFzIEVuZ2xpc2ggKGRlZmF1bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAg
ICAgY29uZmlndXJlZCBpbiB0aGUgTGFuZ3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJl
ZmVyZW5jZXMgb24gbWFjT1MsIFdlYktpdCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRp
dGxlcyBsaXN0IEVuZ2xpc2gsIEZyZW5jaCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAgICAgICAq
IHd0Zi9MYW5ndWFnZS5oOgorICAgICAgICAqIHd0Zi9MYW5ndWFnZS5jcHA6CisgICAgICAgIChX
VEY6OmNhY2hlZEZ1bGxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcyk6IEFkZGVkLgorICAgICAg
ICAoV1RGOjpjYWNoZWRNaW5pbWl6ZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcyk6IEFkZGVk
LgorICAgICAgICAoV1RGOjpsYW5ndWFnZURpZENoYW5nZSk6CisgICAgICAgIChXVEY6OmRlZmF1
bHRMYW5ndWFnZSk6CisgICAgICAgIChXVEY6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAg
ICAgICAoV1RGOjppbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRl
c3RpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdURjo6aW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJl
ZExhbmd1YWdlc092ZXJyaWRlRm9yVGVzdGluZyk6IEFkZGVkLgorICAgICAgICAoV1RGOjpvdmVy
cmlkZUluaXRpYWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNGb3JUZXN0aW5nKTogQWRk
ZWQuCisgICAgICAgIChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2VEaWRDaGFuZ2UpOiBEZWxldGVkLgor
ICAgICAgICBNb3ZlIHRoZSBjYWNoaW5nIGluIGB3dGYvY2YvTGFuZ3VhZ2VDRi5jcHBgIHRvIGB3
dGYvTGFuZ3VhZ2UuY3BwYCBzbyB0aGF0IGFsbCBwbGF0Zm9ybXMgY2FuCisgICAgICAgIGJlbmVm
aXQgZnJvbSBjYWNoaW5nIHRoZSByZXN1bHQgb2YgYHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlc2AuCisKKyAgICAgICAgKiB3dGYvY2YvTGFuZ3VhZ2VDRi5jcHA6CisgICAgICAgIChXVEY6
OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgIChXVEY6OnBsYXRmb3Jt
TGFuZ3VhZ2VEaWRDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9jb2NvYS9MYW5ndWFn
ZUNvY29hLm1tOgorICAgICAgICAoV1RGOjpiYXNlTGFuZ3VhZ2VGcm9tTGFuZ3VhZ2UpOiBBZGRl
ZC4KKyAgICAgICAgKiB3dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5jcHA6Cisg
ICAgICAgIChXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgICog
d3RmL3NwaS9jb2NvYS9OU0xvY2FsZVNQSS5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdl
VW5peC5jcHA6CisgICAgICAgIChXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6
CisgICAgICAgICogd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHA6CisgICAgICAgIChXVEY6OnBsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgIEFkZCBgV1RGOjpTaG91bGRNaW5p
bWl6ZUxhbmd1YWdlc2AgdGhhdCBjb250cm9scyB3aGV0aGVyIGBXVEY6Om1pbmltaXplZFByZWZl
cnJlZExhbmd1YWdlc2AKKyAgICAgICAgaXMgY2FsbGVkLiBTaW5jZSB0aGUgcmVzdWx0IGlzIGNh
Y2hlZCwgY3JlYXRlIHNlcGFyYXRlIGBWZWN0b3I8U3RyaW5nPmAgZm9yIGVhY2ggZW51bSB2YWx1
ZS4KKwogMjAyMS0wNS0yMyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAg
ICAgQnVpbGQgZml4IGZvciBKU0NPbmx5LUxpbnV4LUFBcmNoNjQgYm90LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGQwNTdkMjcxMjcwNGM4MTkwZGE0NDQyMjAxMzkxMjZlNWUyMWVhOWMuLjczNGMwODBjNDEzMjI0
YTkxNmYzNWY0MDk3MzBkNWRhOTBmMjlmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAor
MjAyMS0wNS0yNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
W01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRpYSBjb250cm9s
cyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZvciBvcmRlcmlu
ZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qgb2YgbGFuZ3VhZ2Ug
cHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29ydC9vcmRlciB0aGUg
bGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBsZSwgaWYgYSBgPHZp
ZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3BhbmlzaCwgYW5kIEZy
ZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQgRnJlbmNoIChhbHRl
cm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYgUmVnaW9uIHZpZXcg
b2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxkIG9yZGVyCisgICAg
ICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0aGVuIFNwYW5pc2gu
CisKKyAgICAgICAgVGVzdHM6IExhbmd1YWdlLlNob3VsZE1pbmltaXplTGFuZ3VhZ2VzWWVzCisg
ICAgICAgICAgICAgICBMYW5ndWFnZS5TaG91bGRNaW5pbWl6ZUxhbmd1YWdlc05vCisKKyAgICAg
ICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnRleHRUcmFja1NlbGVjdGlvblNj
b3JlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnBy
aW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZSBjb25zdCk6CisgICAgICAgICogcGFnZS9D
YXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYXB0
aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6cHJlZmVycmVkTGFuZ3VhZ2VzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OmJ1aWxkRGlzcGxheVN0cmluZ0ZvclRyYWNrQmFzZSk6CisgICAgICAg
IChXZWJDb3JlOjp0ZXh0VHJhY2tDb21wYXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW06CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQzo6dXBkYXRlT3B0aW9ucyk6CisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwOgorICAgICAgICBXcmFwIGBkZWZhdWx0TGFu
Z3VhZ2VgIGluIGEgbGFtYmRhIHNpbmNlIGl0IG5vdyBoYXMgYSBwYXJhbWV0ZXIuCisKIDIwMjEt
MDUtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBD
aGVja2VkTG9jayBpbiBtb3JlIHBsYWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NvbmZpZ3VyYXRpb25zL0phdmFTY3JpcHRDb3JlLnhjY29uZmlnIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0phdmFTY3JpcHRDb3JlLnhjY29uZmlnCmluZGV4IDZk
ZjhmMDBiNDJjMzAzZDRmMjY4MGZjNjlkMDIxMzUxMjZhZjRjMDQuLmM3YWMxNzBjMTFiNmMxODMy
NTM2YjQ4ZjI4MzJkOGNiZTIyMDRmNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvSmF2YVNjcmlwdENvcmUueGNjb25maWcKQEAgLTI5
LDcgKzI5LDEwIEBAIE1PRFVMRU1BUF9GSUxFID0gJChTUkNST09UKS9KYXZhU2NyaXB0Q29yZS5t
b2R1bGVtYXA7CiAvLyBQcmV2ZW50IEMrKyBzdGFuZGFyZCBsaWJyYXJ5IG9wZXJhdG9yIG5ldywg
ZGVsZXRlIGFuZCB0aGVpciByZWxhdGVkIGV4Y2VwdGlvbiB0eXBlcyBmcm9tIGJlaW5nIGV4cG9y
dGVkIGFzIHdlYWsgc3ltYm9scy4KIE9USEVSX0xERkxBR1NfSElERV9TWU1CT0xTID0gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pUSVN0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
LF9fWlRJU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aVFNTdDliYWRfYWxs
b2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pUU1N0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0
ZWRfc3ltYm9sLF9fWmRsUHZTXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWm53bVB2IC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wsX19aTktTdDNfXzE4ZnVuY3Rpb25JRnZ2RUVjbEV2IC1XbCwtdW5l
eHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMThmdW5jdGlvbklGdnZFRUMxRU9TMl8gLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2dkVFQzJFT1MyXyAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sLF9fWk5LU3QzX18xOGZ1bmN0aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdlbmVy
YXRvckVQTlMxXzEwUmVnaXN0ZXJJREVFRWNsRVMzX1M1XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
LF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZSTjNKU0MxN0J5dGVjb2RlR2VuZXJhdG9yRVBOUzFfMTBS
ZWdpc3RlcklERUVFRDFFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rp
b25JRnZSTjNKU0MxN0J5dGVjb2RlR2VuZXJhdG9yRVBOUzFfMTBSZWdpc3RlcklERUVFRDJFdiAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVEMUV2IC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMThmdW5jdGlvbklGdnZFRUQyRXYgLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCxfX1pUVk5TdDNfXzExN2JhZF9mdW5jdGlvbl9jYWxsRSAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTI0X19pc19wYXRoYWJsZV9j
aGFyX2FycmF5SVBLY1M0X2NMYjFFRTExX19yYW5nZV9lbmRFUzRfIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJy
YXlJUEtjUzRfY0xiMUVFMTNfX3JhbmdlX2JlZ2luRVM0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
LF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbThfUGF0aENWVEljRTE0X19hcHBlbmRfcmFuZ2VJ
UEtjRUVOU185ZW5hYmxlX2lmSVhzcjI3X19pc19jcHAxN19mb3J3YXJkX2l0ZXJhdG9ySVRfRUU1
dmFsdWVFdkU0dHlwZUVSTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNf
OWFsbG9jYXRvckljRUVFRVM4X1M4XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0
X19mczEwZmlsZXN5c3RlbThfUGF0aENWVEljRTE1X19hcHBlbmRfc291cmNlSVBLY0VFdlJOU18x
MmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFUktU
XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbThfUGF0
aENWVEljRTE0X19hcHBlbmRfcmFuZ2VJUEtjRUVOU185ZW5hYmxlX2lmSVhzcjIxX19pc19mb3J3
YXJkX2l0ZXJhdG9ySVRfRUU1dmFsdWVFdkU0dHlwZUVSTlNfMTJiYXNpY19zdHJpbmdJY05TXzEx
Y2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRVM4X1M4XyAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sLF9fWk5LU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0xOGRpcmVjdG9yeV9pdGVyYXRvcmRl
RXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0xOGRp
cmVjdG9yeV9pdGVyYXRvcnBwRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9f
ZnMxMGZpbGVzeXN0ZW0yNF9faXNfcGF0aGFibGVfY2hhcl9hcnJheUlBMTBfY1BjY0xiMUVFMTFf
X3JhbmdlX2VuZEVQS2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZp
bGVzeXN0ZW0yNF9faXNfcGF0aGFibGVfY2hhcl9hcnJheUlBMTBfY1BjY0xiMUVFMTNfX3Jhbmdl
X2JlZ2luRVBLYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5
c3RlbTRwYXRoZFZFUktTMl8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMx
MGZpbGVzeXN0ZW04X1BhdGhDVlRJY0UxNV9fYXBwZW5kX3NvdXJjZUlBMTBfY0VFdlJOU18xMmJh
c2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFUktUXyAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTI0X190aHJv
d19maWxlc3lzdGVtX2Vycm9ySUpSUEtjUktOUzFfNHBhdGhFUktOU18xMGVycm9yX2NvZGVFRUVF
dkRwT1RfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVt
MTRfX2lzX3NlcGFyYXRvckljRUVOU185ZW5hYmxlX2lmSVhzcjE4X19jYW5fY29udmVydF9jaGFy
SVRfRUU1dmFsdWVFYkU0dHlwZUVTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18x
NF9fZnMxMGZpbGVzeXN0ZW0yNF9faXNfcGF0aGFibGVfY2hhcl9hcnJheUlQS2NTNF9jTGIxRUUx
NV9fZmlyc3Rfb3JfbnVsbEVTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9f
ZnMxMGZpbGVzeXN0ZW00cGF0aDIwX19zb3VyY2VfaXNfYWJzb2x1dGVJY0VFYlRfIC1XbCwtdW5l
eHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtNHBhdGg2YXBwZW5kSVBL
Y0VFTlNfOWVuYWJsZV9pZklYc3IxM19faXNfcGF0aGFibGVJVF9FRTV2YWx1ZUVSUzJfRTR0eXBl
RVJLUzdfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVt
NnU4cGF0aElQS2NFRU5TXzllbmFibGVfaWZJWHNyMTNfX2lzX3BhdGhhYmxlSVRfRUU1dmFsdWVF
TlMxXzRwYXRoRUU0dHlwZUVSS1M2XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5LU3QzX18x
NF9fZnMxMGZpbGVzeXN0ZW0xOGRpcmVjdG9yeV9pdGVyYXRvcnB0RXYgLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0xOGRpcmVjdG9yeV9pdGVyYXRvcjlp
bmNyZW1lbnRFUk5TXzEwZXJyb3JfY29kZUU7CiAKLU9USEVSX0xERkxBR1NfQkFTRSA9ICQoT1RI
RVJfTERGTEFHU19ISURFX1NZTUJPTFMpIC1mb3JjZV9sb2FkICIkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvbGliV1RGLmEiOworLy8gTmVlZGVkIGJ5
IGBTb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1tYC4KK1dLX0lOVEVSTkFUSU9O
QUxfU1VQUE9SVF9MREZMQUdTID0gLWZyYW1ld29yayBJbnRlcm5hdGlvbmFsU3VwcG9ydDsKKwor
T1RIRVJfTERGTEFHU19CQVNFID0gJChPVEhFUl9MREZMQUdTX0hJREVfU1lNQk9MUykgLWlmcmFt
ZXdvcmsgJChTREtfRElSKSQoU1lTVEVNX0xJQlJBUllfRElSKS9Qcml2YXRlRnJhbWV3b3JrcyAt
Zm9yY2VfbG9hZCAiJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3Jp
cHRDb3JlL2xpYldURi5hIiAkKFdLX0lOVEVSTkFUSU9OQUxfU1VQUE9SVF9MREZMQUdTKTsKIE9U
SEVSX0xERkxBR1Nbc2RrPWVtYmVkZGVkKl0gPSAkKGluaGVyaXRlZCkgJChPVEhFUl9MREZMQUdT
X0JBU0UpOwogT1RIRVJfTERGTEFHU1tzZGs9bWFjb3N4Kl0gPSAkKGluaGVyaXRlZCkgJChPVEhF
Ul9MREZMQUdTX0JBU0UpIC1mcmFtZXdvcmsgQ29yZVNlcnZpY2VzOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9wbGF5c3RhdGlvbi9UZXN0U2hlbGwuY3BwCmluZGV4
IDI3ODJmZGEwODk4NjVkY2YwZTJmN2MxZGIyOTMzMTUxMjg5NGRlNDkuLjMxZmVhZjdlYzU4Zjc5
NWY4YzNkYmI3N2Q5Zjk1N2MzM2Y2MmZjMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9zaGVsbC9wbGF5c3RhdGlvbi9UZXN0U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9zaGVsbC9wbGF5c3RhdGlvbi9UZXN0U2hlbGwuY3BwCkBAIC02Miw3ICs2Miw3IEBA
IGV4dGVybiAiQyIgdm9pZCBwcmVUZXN0KCkKICAgICBKU0M6Ok9wdGlvbnM6Om5hbWVfKCkgPSBv
cmlnIyNuYW1lXzsKICAgICBGT1JfRUFDSF9KU0NfT1BUSU9OKElOSVRfT1BUSU9OKQogI3VuZGVm
IElOSVRfT1BUSU9OCi0gICAgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHBsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlcygpKTsKKyAgICBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMoeyB9KTsKIH0KIAogZXh0ZXJuICJDIiBpbnQgcnVuVGVzdChpbnQgYXJnYywgY2hhciog
YXJndltdKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuY3BwIGIvU291cmNl
L1dURi93dGYvTGFuZ3VhZ2UuY3BwCmluZGV4IGJlNjI1OGQ4NTdlNTk4OGY5Njk4MzkwMjAyYmNj
OTNjM2MxNzgyMGYuLjcwMTY5NjIwNTJmYmE4YWUzZDk5MWUyYTBhZjA3YzJiNTE3YTNiZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9MYW5ndWFnZS5jcHAKQEAgLTM3LDYgKzM3LDE4IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCitz
dGF0aWMgQ2hlY2tlZExvY2sgY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrOwor
c3RhdGljIFZlY3RvcjxTdHJpbmc+JiBjYWNoZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFn
ZXMoKSBXVEZfUkVRVUlSRVNfTE9DSyhjYWNoZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc0xv
Y2spCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBsYW5ndWFn
ZXM7CisgICAgcmV0dXJuIGxhbmd1YWdlczsKK30KK3N0YXRpYyBWZWN0b3I8U3RyaW5nPiYgY2Fj
aGVkTWluaW1pemVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKSBXVEZfUkVRVUlSRVNfTE9D
SyhjYWNoZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc0xvY2spCit7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBsYW5ndWFnZXM7CisgICAgcmV0dXJuIGxhbmd1
YWdlczsKK30KKwogc3RhdGljIENoZWNrZWRMb2NrIHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRl
TG9jazsKIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUo
KSBXVEZfUkVRVUlSRVNfTE9DSyhwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUxvY2spCiB7CkBA
IC02OCwxNiArODAsMjEgQEAgdm9pZCByZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQq
IGNvbnRleHQpCiAKIHZvaWQgbGFuZ3VhZ2VEaWRDaGFuZ2UoKQogewotICAgIHBsYXRmb3JtTGFu
Z3VhZ2VEaWRDaGFuZ2UoKTsKKyAgICB7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBjYWNoZWRQ
bGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc0xvY2sgfTsKKyAgICAgICAgY2FjaGVkRnVsbFBsYXRm
b3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkuY2xlYXIoKTsKKyAgICAgICAgY2FjaGVkTWluaW1pemVk
UGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKS5jbGVhcigpOworICAgIH0KKwogICAgIGZvciAo
YXV0byYgb2JzZXJ2ZXIgOiBjb3B5VG9WZWN0b3Iob2JzZXJ2ZXJNYXAoKSkpIHsKICAgICAgICAg
aWYgKG9ic2VydmVyTWFwKCkuY29udGFpbnMob2JzZXJ2ZXIua2V5KSkKICAgICAgICAgICAgIG9i
c2VydmVyLnZhbHVlKG9ic2VydmVyLmtleSk7CiAgICAgfQogfQogCi1TdHJpbmcgZGVmYXVsdExh
bmd1YWdlKCkKK1N0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMg
c2hvdWxkTWluaW1pemVMYW5ndWFnZXMpCiB7Ci0gICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2Vz
ID0gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOworICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdl
cyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoc2hvdWxkTWluaW1pemVMYW5ndWFnZXMpOwogICAg
IGlmIChsYW5ndWFnZXMuc2l6ZSgpKQogICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzWzBdOwogCkBA
IC0xMDgsNyArMTI1LDcgQEAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IGlzb2xhdGVkQ29weShjb25z
dCBWZWN0b3I8U3RyaW5nPiYgc3RyaW5ncykKICAgICByZXR1cm4gY29weTsKIH0KIAotVmVjdG9y
PFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpCitWZWN0b3I8U3RyaW5nPiB1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzIHNob3VsZE1pbmltaXplTGFu
Z3VhZ2VzKQogewogICAgIHsKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IHByZWZlcnJlZExhbmd1
YWdlc092ZXJyaWRlTG9jayB9OwpAQCAtMTE3LDcgKzEzNCwxMSBAQCBWZWN0b3I8U3RyaW5nPiB1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkKICAgICAgICAgICAgIHJldHVybiBpc29sYXRlZENvcHko
b3ZlcnJpZGUpOwogICAgIH0KIAotICAgIHJldHVybiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMoKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5n
dWFnZXNMb2NrIH07CisgICAgYXV0byYgbGFuZ3VhZ2VzID0gc2hvdWxkTWluaW1pemVMYW5ndWFn
ZXMgPT0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6OlllcyA/IGNhY2hlZE1pbmltaXplZFBsYXRm
b3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCkgOiBjYWNoZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5n
dWFnZXMoKTsKKyAgICBpZiAobGFuZ3VhZ2VzLmlzRW1wdHkoKSkKKyAgICAgICAgbGFuZ3VhZ2Vz
ID0gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHNob3VsZE1pbmltaXplTGFuZ3VhZ2Vz
KTsKKyAgICByZXR1cm4gaXNvbGF0ZWRDb3B5KGxhbmd1YWdlcyk7CiB9CiAKIHN0YXRpYyBTdHJp
bmcgY2Fub25pY2FsTGFuZ3VhZ2VJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2VDb2Rl
KQpAQCAtMTg0LDEwICsyMDUsMjYgQEAgU3RyaW5nIGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2Nh
bGUoY29uc3QgU3RyaW5nJiBsb2NhbGVOYW1lKQogICAgIHJldHVybiBsb2NhbGVOYW1lOwogfQog
Ci0jaWYgIVBMQVRGT1JNKENPQ09BKQotdm9pZCBwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdlKCkK
K3N0YXRpYyBDaGVja2VkTG9jayBpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVy
cmlkZUZvclRlc3RpbmdMb2NrOworc3RhdGljIFZlY3RvcjxTdHJpbmc+JiBpbml0aWFsUGxhdGZv
cm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKSBXVEZfUkVRVUlSRVNfTE9D
Syhpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmdMb2Nr
KQogeworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4gb3ZlcnJpZGU7
CisgICAgcmV0dXJuIG92ZXJyaWRlOwogfQotI2VuZGlmCiAKK1ZlY3RvcjxTdHJpbmc+IGluaXRp
YWxQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUZvclRlc3RpbmcoKQorewor
ICAgIExvY2tlciBsb2NrZXIgeyBpbml0aWFsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNPdmVy
cmlkZUZvclRlc3RpbmdMb2NrIH07CisgICAgcmV0dXJuIGluaXRpYWxQbGF0Zm9ybVByZWZlcnJl
ZExhbmd1YWdlc092ZXJyaWRlRm9yVGVzdGluZygpOwogfQorCit2b2lkIG92ZXJyaWRlSW5pdGlh
bFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0ZvclRlc3RpbmcoY29uc3QgVmVjdG9yPFN0
cmluZz4mIG92ZXJyaWRlKQoreworICAgIHsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IGluaXRp
YWxQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlRm9yVGVzdGluZ0xvY2sgfTsKKyAg
ICAgICAgaW5pdGlhbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVGb3JUZXN0aW5n
KCkgPSBvdmVycmlkZTsKKyAgICB9CisgICAgbGFuZ3VhZ2VEaWRDaGFuZ2UoKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oIGIv
U291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaAppbmRleCBmMDc0ZDc1NjhkMDAyZTkzMmE1MzI2YmRi
NTJkN2ZiOGMwNjU4MTgzLi4yOTBlM2U3YzhiNDQ3ZTI0ZjNlMTg4ZWJlMGU1M2JiNjJkZmZiMDc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0xhbmd1YWdlLmgKQEAgLTM1LDEzICszNSwxMyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAot
V1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoKTsgLy8gVGhyZWFkLXNh
ZmUuCi1XVEZfRVhQT1JUX1BSSVZBVEUgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1
YWdlcygpOyAvLyBUaHJlYWQtc2FmZSwgcmV0dXJucyBCQ1AgNDcgbGFuZ3VhZ2UgdGFncy4KK2Vu
dW0gY2xhc3MgU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgeyBObywgWWVzIH07CisKK1dURl9FWFBP
UlRfUFJJVkFURSBTdHJpbmcgZGVmYXVsdExhbmd1YWdlKFNob3VsZE1pbmltaXplTGFuZ3VhZ2Vz
ID0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Olllcyk7IC8vIFRocmVhZC1zYWZlLgorV1RGX0VY
UE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxk
TWluaW1pemVMYW5ndWFnZXMgPSBTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzKTsgLy8gVGhy
ZWFkLXNhZmUsIHJldHVybnMgQkNQIDQ3IGxhbmd1YWdlIHRhZ3MuCiBXVEZfRVhQT1JUX1BSSVZB
VEUgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCk7CiBXVEZf
RVhQT1JUX1BSSVZBVEUgdm9pZCBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mKTsKIFdURl9FWFBPUlRfUFJJVkFURSBzaXplX3QgaW5kZXhPZkJlc3RN
YXRjaGluZ0xhbmd1YWdlSW5MaXN0KGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBsYW5ndWFnZUxpc3QsIGJvb2wmIGV4YWN0TWF0Y2gpOwotV1RGX0VYUE9SVF9Q
UklWQVRFIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpOwot
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcGxhdGZvcm1MYW5ndWFnZURpZENoYW5nZSgpOwogCiAv
LyBDYWxsZWQgZnJvbSBwbGF0Zm9ybSBzcGVjaWZpYyBjb2RlIHdoZW4gdGhlIHVzZXIncyBwcmVm
ZXJyZWQgbGFuZ3VhZ2UocykgY2hhbmdlLgogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgbGFuZ3Vh
Z2VEaWRDaGFuZ2UoKTsKQEAgLTUyLDIwICs1MiwyNiBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBhZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZvaWQqIGNvbnRleHQsIExhbmd1YWdlQ2hhbmdl
TwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2
b2lkKiBjb250ZXh0KTsKIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgZGlzcGxheU5hbWVGb3JM
YW5ndWFnZUxvY2FsZShjb25zdCBTdHJpbmcmKTsKIAorVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID0gU2hvdWxkTWlu
aW1pemVMYW5ndWFnZXM6Olllcyk7CisKICNpZiBQTEFURk9STShDT0NPQSkKIGJvb2wgY2FuTWlu
aW1pemVMYW5ndWFnZXMoKTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGxpc3RlbkZvckxhbmd1
YWdlQ2hhbmdlTm90aWZpY2F0aW9ucygpOwogUmV0YWluUHRyPENGQXJyYXlSZWY+IG1pbmltaXpl
ZExhbmd1YWdlc0Zyb21MYW5ndWFnZXMoQ0ZBcnJheVJlZik7Ci0jZW5kaWYKK1JldGFpblB0cjxD
RlN0cmluZ1JlZj4gYmFzZUxhbmd1YWdlRnJvbUxhbmd1YWdlKENGU3RyaW5nUmVmKTsKIAotfQor
VmVjdG9yPFN0cmluZz4gaW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJy
aWRlRm9yVGVzdGluZygpOworV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgb3ZlcnJpZGVJbml0aWFs
UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRm9yVGVzdGluZyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpOworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCit9IC8vIG5hbWVzcGFjZSBXVEYK
KwordXNpbmcgV1RGOjpTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczsKIHVzaW5nIFdURjo6ZGVmYXVs
dExhbmd1YWdlOwogdXNpbmcgV1RGOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwogdXNpbmcgV1RG
Ojp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGU7CiB1c2luZyBXVEY6Om92ZXJyaWRlVXNl
clByZWZlcnJlZExhbmd1YWdlczsKIHVzaW5nIFdURjo6aW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1
YWdlSW5MaXN0OwotdXNpbmcgV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7CiB1
c2luZyBXVEY6OmFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXI7CiB1c2luZyBXVEY6OnJlbW92ZUxh
bmd1YWdlQ2hhbmdlT2JzZXJ2ZXI7CiB1c2luZyBXVEY6OmRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VM
b2NhbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL2NmL0xhbmd1YWdlQ0YuY3BwCmluZGV4IGUwNzMxMTU0MjkxYmZkMDdjNGNj
MTZkYTA0MmFhYWRiNTljOWUzYjEuLjhiYzE2M2Q0YWZhOTUzM2I1ZTkxZTJkMTFiZmM1YWI2MzNm
YjcyMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2NmL0xhbmd1YWdlQ0YuY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL2NmL0xhbmd1YWdlQ0YuY3BwCkBAIC0zMCwxNiArMzAsMTIgQEAKICNp
bmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx1bmljb2RlL3Vsb2MuaD4KICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgotI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRl
IDx3dGYvc3BpL2NmL0NGQnVuZGxlU1BJLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCi1zdGF0aWMgQ2hlY2tlZExvY2sgcHJlZmVycmVkTGFu
Z3VhZ2VzTG9jazsKLQogI2lmIFBMQVRGT1JNKE1BQykKIHN0YXRpYyB2b2lkIGxhbmd1YWdlUHJl
ZmVyZW5jZXNEaWRDaGFuZ2UoQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQqLCBDRlN0cmlu
Z1JlZiwgY29uc3Qgdm9pZCosIENGRGljdGlvbmFyeVJlZikKIHsKQEAgLTQ3LDIxICs0MywxMSBA
QCBzdGF0aWMgdm9pZCBsYW5ndWFnZVByZWZlcmVuY2VzRGlkQ2hhbmdlKENGTm90aWZpY2F0aW9u
Q2VudGVyUmVmLCB2b2lkKiwgQ0ZTdHJpbgogfQogI2VuZGlmCiAKLXN0YXRpYyBWZWN0b3I8U3Ry
aW5nPiYgcHJlZmVycmVkTGFuZ3VhZ2VzKCkgV1RGX1JFUVVJUkVTX0xPQ0socHJlZmVycmVkTGFu
Z3VhZ2VzTG9jaykKLXsKLSAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJp
bmc+PiBsYW5ndWFnZXM7Ci0gICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VLZXk7Ci0gICAg
c3RkOjpjYWxsX29uY2Uob25jZUtleSwgWyZdIHsKLSAgICAgICAgbGFuZ3VhZ2VzLmNvbnN0cnVj
dCgpOwotICAgIH0pOwotICAgIHJldHVybiBsYW5ndWFnZXM7Ci19Ci0KLXN0YXRpYyBTdHJpbmcg
aHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKENGU3RyaW5nUmVmIGxhbmd1YWdlKQorc3RhdGljIFN0cmlu
ZyBodHRwU3R5bGVMYW5ndWFnZUNvZGUoQ0ZTdHJpbmdSZWYgbGFuZ3VhZ2UsIFNob3VsZE1pbmlt
aXplTGFuZ3VhZ2VzIHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewogICAgIFJldGFpblB0cjxD
RlN0cmluZ1JlZj4gcHJlZmVycmVkTGFuZ3VhZ2VDb2RlOwogICAgIC8vIElmIHdlIGNhbiBtaW5p
bWl6ZSB0aGUgbGFuZ3VhZ2UgbGlzdCB0byByZWR1Y2UgZmluZ2VycHJpbnRpbmcsIHdlIGNhbiBh
ZmZvcmQgdG8gYmUgbW9yZSBsb3NzbGVzcyB3aGVuIGNhbm9uaWNhbGl6aW5nIHRoZSBsb2NhbGUg
bGlzdC4KLSAgICBpZiAoY2FuTWluaW1pemVMYW5ndWFnZXMoKSkKKyAgICBpZiAoc2hvdWxkTWlu
aW1pemVMYW5ndWFnZXMgPT0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vIHx8IGNhbk1pbmlt
aXplTGFuZ3VhZ2VzKCkpCiAgICAgICAgIHByZWZlcnJlZExhbmd1YWdlQ29kZSA9IGFkb3B0Q0Yo
Q0ZMb2NhbGVDcmVhdGVDYW5vbmljYWxMYW5ndWFnZUlkZW50aWZpZXJGcm9tU3RyaW5nKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGxhbmd1YWdlKSk7CiAgICAgZWxzZSB7CiAgICAgICAgIFNJbnQzMiBs
YW5ndWFnZUNvZGU7CkBAIC04OCwxNCArNzQsNiBAQCBzdGF0aWMgU3RyaW5nIGh0dHBTdHlsZUxh
bmd1YWdlQ29kZShDRlN0cmluZ1JlZiBsYW5ndWFnZSkKICAgICByZXR1cm4gbXV0YWJsZUxhbmd1
YWdlQ29kZS5nZXQoKTsKIH0KIAotdm9pZCBwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdlKCkKLXsK
LSAgICB7Ci0gICAgICAgIExvY2tlciBsb2NrZXIgeyBwcmVmZXJyZWRMYW5ndWFnZXNMb2NrIH07
Ci0gICAgICAgIHByZWZlcnJlZExhbmd1YWdlcygpLmNsZWFyKCk7Ci0gICAgfQotfQotCiB2b2lk
IGxpc3RlbkZvckxhbmd1YWdlQ2hhbmdlTm90aWZpY2F0aW9ucygpCiB7CiAjaWYgUExBVEZPUk0o
TUFDKQpAQCAtMTA2LDMyICs4NCwzOCBAQCB2b2lkIGxpc3RlbkZvckxhbmd1YWdlQ2hhbmdlTm90
aWZpY2F0aW9ucygpCiAjZW5kaWYKIH0KIAotVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKCkKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyBzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcykK
IHsKLSAgICBMb2NrZXIgbG9ja2VyIHsgcHJlZmVycmVkTGFuZ3VhZ2VzTG9jayB9OwotICAgIFZl
Y3RvcjxTdHJpbmc+JiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzID0gcHJlZmVycmVkTGFuZ3VhZ2Vz
KCk7CisgICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IHBsYXRmb3JtTGFuZ3VhZ2VzOworICAgIGlm
IChhdXRvIG92ZXJyaWRlID0gaW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc092
ZXJyaWRlRm9yVGVzdGluZygpOyAhb3ZlcnJpZGUuaXNFbXB0eSgpKSB7CisgICAgICAgIGF1dG8g
YXJyYXkgPSBhZG9wdENGKENGQXJyYXlDcmVhdGVNdXRhYmxlKDAsIG92ZXJyaWRlLnNpemUoKSwg
JmtDRlR5cGVBcnJheUNhbGxCYWNrcykpOworICAgICAgICBmb3IgKGF1dG8mIGl0ZW0gOiBvdmVy
cmlkZSkKKyAgICAgICAgICAgIENGQXJyYXlBcHBlbmRWYWx1ZShhcnJheS5nZXQoKSwgaXRlbS5j
cmVhdGVDRlN0cmluZygpLmdldCgpKTsKKyAgICAgICAgcGxhdGZvcm1MYW5ndWFnZXMgPSBXVEZN
b3ZlKGFycmF5KTsKKyAgICB9IGVsc2UKKyAgICAgICAgcGxhdGZvcm1MYW5ndWFnZXMgPSBhZG9w
dENGKENGTG9jYWxlQ29weVByZWZlcnJlZExhbmd1YWdlcygpKTsKIAotICAgIGlmICh1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzLmlzRW1wdHkoKSkgewotICAgICAgICBSZXRhaW5QdHI8Q0ZBcnJheVJl
Zj4gbGFuZ3VhZ2VzID0gYWRvcHRDRihDRkxvY2FsZUNvcHlQcmVmZXJyZWRMYW5ndWFnZXMoKSk7
Ci0gICAgICAgIGxhbmd1YWdlcyA9IG1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFnZXMobGFu
Z3VhZ2VzLmdldCgpKTsKLSAgICAgICAgQ0ZJbmRleCBsYW5ndWFnZUNvdW50ID0gQ0ZBcnJheUdl
dENvdW50KGxhbmd1YWdlcy5nZXQoKSk7Ci0gICAgICAgIGlmICghbGFuZ3VhZ2VDb3VudCkKLSAg
ICAgICAgICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5kKCJlbiIpOwotICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGxhbmd1YWdlQ291bnQ7
IGkrKykKLSAgICAgICAgICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZChodHRw
U3R5bGVMYW5ndWFnZUNvZGUoc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGQXJyYXlHZXRWYWx1
ZUF0SW5kZXgobGFuZ3VhZ2VzLmdldCgpLCBpKSkpKTsKKyAgICBpZiAoc2hvdWxkTWluaW1pemVM
YW5ndWFnZXMgPT0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6OlllcykKKyAgICAgICAgcGxhdGZv
cm1MYW5ndWFnZXMgPSBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzKHBsYXRmb3JtTGFu
Z3VhZ2VzLmdldCgpKTsKKworICAgIENGSW5kZXggcGxhdGZvcm1MYW5ndWFnZXNDb3VudCA9IENG
QXJyYXlHZXRDb3VudChwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSk7CisgICAgaWYgKCFwbGF0Zm9y
bUxhbmd1YWdlc0NvdW50KQorICAgICAgICByZXR1cm4geyAiZW4iX3MgfTsKKworICAgIFZlY3Rv
cjxTdHJpbmc+IGxhbmd1YWdlczsKKyAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBwbGF0Zm9y
bUxhbmd1YWdlc0NvdW50OyBpKyspIHsKKyAgICAgICAgYXV0byBwbGF0Zm9ybUxhbmd1YWdlID0g
c3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgocGxhdGZvcm1M
YW5ndWFnZXMuZ2V0KCksIGkpKTsKKyAgICAgICAgbGFuZ3VhZ2VzLmFwcGVuZChodHRwU3R5bGVM
YW5ndWFnZUNvZGUocGxhdGZvcm1MYW5ndWFnZSwgc2hvdWxkTWluaW1pemVMYW5ndWFnZXMpKTsK
KworICAgICAgICBpZiAoc2hvdWxkTWluaW1pemVMYW5ndWFnZXMgPT0gU2hvdWxkTWluaW1pemVM
YW5ndWFnZXM6Ok5vKSB7CisgICAgICAgICAgICAvLyBDb252ZXJ0IGxhbmd1YWdlcyB3aXRoIGNv
dW50cnkgY29kZXMgdG8gZXF1aXZhbGVudCBsYW5ndWFnZXMgd2l0aG91dCBjb3VudHJ5IGNvZGVz
IChpZiBwb3NzaWJsZSkuCisgICAgICAgICAgICAvLyBlLmcuICJlbi1VUyIgYmVjb21lcyAiZW4i
LCB3aGljaCBpcyB1c2VmdWwgd2hlbiB0cnlpbmcgdG8gbWF0Y2ggSFRNTCBgbGFuZz0iZW4iYC4K
KyAgICAgICAgICAgIGF1dG8gYmFzZUxhbmd1YWdlID0gYmFzZUxhbmd1YWdlRnJvbUxhbmd1YWdl
KHBsYXRmb3JtTGFuZ3VhZ2UpOworICAgICAgICAgICAgaWYgKGJhc2VMYW5ndWFnZSAmJiBiYXNl
TGFuZ3VhZ2UgIT0gcGxhdGZvcm1MYW5ndWFnZSAmJiBDRlN0cmluZ0NvbXBhcmUoYmFzZUxhbmd1
YWdlLmdldCgpLCBwbGF0Zm9ybUxhbmd1YWdlLCAwKSAhPSBrQ0ZDb21wYXJlRXF1YWxUbykKKyAg
ICAgICAgICAgICAgICBsYW5ndWFnZXMuYXBwZW5kKGh0dHBTdHlsZUxhbmd1YWdlQ29kZShiYXNl
TGFuZ3VhZ2UuZ2V0KCksIHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKSk7CiAgICAgICAgIH0KICAg
ICB9Ci0KLSAgICBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weTsKLSAg
ICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weS5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMuc2l6ZSgpKTsKLQotICAgIGZvciAoYXV0byYgbGFuZ3VhZ2UgOiB1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKQotICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29w
eS51bmNoZWNrZWRBcHBlbmQobGFuZ3VhZ2UuaXNvbGF0ZWRDb3B5KCkpOwotCi0gICAgcmV0dXJu
IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5OwotCi0gICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+
KCk7CisgICAgcmV0dXJuIGxhbmd1YWdlczsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1tIGIvU291cmNlL1dU
Ri93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbQppbmRleCA1YmFiN2M3YjI2N2MwYWRkMjU1YjJm
ZTY3NjJlZTY0MGUwNTg4OTkzLi40MWUwMzMyOTFhMzIxN2FhODQzMWQwNjZmY2IzMDk2MjkwYTU2
NmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1tCisr
KyBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0KQEAgLTM4LDggKzM4LDcg
QEAgYm9vbCBjYW5NaW5pbWl6ZUxhbmd1YWdlcygpCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAg
ICBpZiAoYXBwbGljYXRpb25TREtWZXJzaW9uKCkgPCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1
XzQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLSNpZiBQTEFURk9STShJT1Mp
CisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICBpZiAoYXBwbGljYXRpb25TREtW
ZXJzaW9uKCkgPCBEWUxEX0lPU19WRVJTSU9OXzEzXzQpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAjZW5kaWYKQEAgLTUwLDYgKzQ5LDggQEAgYm9vbCBjYW5NaW5pbWl6ZUxhbmd1YWdlcygp
CiAKIFJldGFpblB0cjxDRkFycmF5UmVmPiBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2Vz
KENGQXJyYXlSZWYgbGFuZ3VhZ2VzKQogeworICAgIC8vIFRoaXMgcmVxdWlyZXMgbGlua2luZyBg
SW50ZXJuYXRpb25hbFN1cHBvcnRgLgorCiAgICAgaWYgKCFjYW5NaW5pbWl6ZUxhbmd1YWdlcygp
KQogICAgICAgICByZXR1cm4gbGFuZ3VhZ2VzOwogCkBAIC01OCw0ICs1OSwyOSBAQCBBTExPV19O
RVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRT
X0VORAogfQogCitzdGF0aWMgYm9vbCBjYW5HZXRCYXNlTGFuZ3VhZ2UoKQoreworICAgIHN0YXRp
YyBjb25zdCBib29sIHJlc3VsdCA9IFtdKCkgLT4gYm9vbCB7CisjaWYgUExBVEZPUk0oTUFDKQor
ICAgICAgICBpZiAoYXBwbGljYXRpb25TREtWZXJzaW9uKCkgPCBEWUxEX01BQ09TWF9WRVJTSU9O
XzEwXzEzKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworI2VsaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICAgICAgaWYgKGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpIDwgRFlMRF9JT1NfVkVS
U0lPTl8xMV8wKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgICAgIHJl
dHVybiBbTlNMb2NhbGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihiYXNlTGFuZ3VhZ2VG
cm9tTGFuZ3VhZ2U6KV07CisgICAgfSgpOworICAgIHJldHVybiByZXN1bHQ7CiB9CisKK1JldGFp
blB0cjxDRlN0cmluZ1JlZj4gYmFzZUxhbmd1YWdlRnJvbUxhbmd1YWdlKENGU3RyaW5nUmVmIGxh
bmd1YWdlKQoreworICAgIC8vIFRoaXMgcmVxdWlyZXMgbGlua2luZyBgSW50ZXJuYXRpb25hbFN1
cHBvcnRgLgorCisgICAgaWYgKCFjYW5HZXRCYXNlTGFuZ3VhZ2UoKSkKKyAgICAgICAgcmV0dXJu
IGxhbmd1YWdlOworCisgICAgcmV0dXJuIChfX2JyaWRnZSBDRlN0cmluZ1JlZilbTlNMb2NhbGUg
YmFzZUxhbmd1YWdlRnJvbUxhbmd1YWdlOihfX2JyaWRnZSBOU1N0cmluZyAqKWxhbmd1YWdlXTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9wbGF5
c3RhdGlvbi9MYW5ndWFnZVBsYXlTdGF0aW9uLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0
aW9uL0xhbmd1YWdlUGxheVN0YXRpb24uY3BwCmluZGV4IGQ0NTM3YTY5NDBiNWUwMjJiZjVlNWNk
ZjcxYTg2M2QzMzA5ZGY2MWMuLmNhZjE1NDlmODAwMmMxMzdlMmYxYTA2MjI4MTgxNTRmNTYyNTRl
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0aW9uL0xhbmd1YWdlUGxheVN0
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0aW9uL0xhbmd1YWdlUGxheVN0
YXRpb24uY3BwCkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1WZWN0b3I8
U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9yPFN0cmluZz4g
cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQog
ewogICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvc3BpL2NvY29hL05TTG9jYWxlU1BJLmggYi9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2Ev
TlNMb2NhbGVTUEkuaAppbmRleCA1Y2VmMTY0MDMxNmI0NzNhNzFiZTdiYmE2MWE4ODI3NGYyODEw
NjIxLi5jYTk4MjAxYzYxNjNhMzc5ZWUxZDhmMmNhNGY1NWQzNmZmYWJmMGIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9zcGkvY29jb2EvTlNMb2NhbGVTUEkuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9zcGkvY29jb2EvTlNMb2NhbGVTUEkuaApAQCAtMzIsNiArMzIsNyBAQAogI2VuZGlmCiAK
IEBpbnRlcmZhY2UgTlNMb2NhbGUgKCkKKysgKG5vbm51bGwgTlNTdHJpbmcgKiliYXNlTGFuZ3Vh
Z2VGcm9tTGFuZ3VhZ2U6KG5vbm51bGwgTlNTdHJpbmcgKilsYW5ndWFnZUlEOwogKyAobm9ubnVs
bCBOU0FycmF5PE5TU3RyaW5nICo+ICopbWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlczoo
bm9ubnVsbCBOU0FycmF5PE5TU3RyaW5nICo+ICopbGFuZ3VhZ2VzOwogQGVuZAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1YWdlVW5peC5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi91bml4L0xhbmd1YWdlVW5peC5jcHAKaW5kZXggMzFjNzU3NDcyZWVhYjY0MDcyNmU5NGM1YzU3
NTA3MThmYTM5MzhkMS4uYWY5NGJiMDZjYzM4ZGQyYTg1OTViZmJiNzcxNjkwZjkyZGI0OGFlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcApAQCAtNDIsNyArNDIsNyBAQCBzdGF0
aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQogICAgIHJldHVybiBub3JtYWxpemVkRGVmYXVs
dDsKIH0KIAotVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkK
K1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5p
bWl6ZUxhbmd1YWdlcykKIHsKICAgICByZXR1cm4geyBwbGF0Zm9ybUxhbmd1YWdlKCkgfTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwCmluZGV4IDZiNTJjOWMyMGQxNWNiYTdlMzlkNTQy
MDExYjQzOGEzODM1OGMyYjIuLmJmOTZiMGE1NWM4ODk5MzFjNGMyZDUzMzE3ZThjNWUwMTdlMmFh
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvd2luL0xhbmd1YWdlV2luLmNwcApAQCAtNzQsNyArNzQsNyBAQCBzdGF0
aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQogICAgIHJldHVybiBjb21wdXRlZERlZmF1bHRM
YW5ndWFnZTsKIH0KIAotVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzKCkKK1ZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91
bGRNaW5pbWl6ZUxhbmd1YWdlcykKIHsKICAgICByZXR1cm4geyBwbGF0Zm9ybUxhbmd1YWdlKCkg
fTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3Bw
CmluZGV4IGFiMDNiZGI0M2M2ZjNhM2YxNWJhOTVlOGQyYmIzMWU3YmNhMWU1MzkuLjgxMTQxOTBi
NDNlYzU5NjJkMWJmZTcyY2I4YjkxMTIwZmNkNzI1ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtODMsNyArODMsNyBAQCBjb25zdCBH
bG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0RPTVdpbmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0
aG9kVGFibGUgPSB7CiAgICAgJnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3AsCiAg
ICAgJmN1cnJlbnRTY3JpcHRFeGVjdXRpb25Pd25lciwKICAgICAmc2NyaXB0RXhlY3V0aW9uU3Rh
dHVzLAotICAgICZkZWZhdWx0TGFuZ3VhZ2UsCisgICAgW10geyByZXR1cm4gZGVmYXVsdExhbmd1
YWdlKCk7IH0sCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICZjb21waWxlU3RyZWFtaW5n
LAogICAgICZpbnN0YW50aWF0ZVN0cmVhbWluZywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAppbmRleCA0ODM5OTcwOGVl
MDM0YmM1OGFjMzgyZjNjYWM5N2Y5MTY3NzgyZmI4Li45MjEyNWU1NmQ2OTk1ZDQ2MDBkY2Q4ZmNi
N2I0MjNiYTU4YmI0ODNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCkBAIC02MSw3ICs2MSw3IEBAIGNvbnN0IEds
b2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9i
amVjdE1ldGhvZFRhYmxlCiAgICAgJnJlcG9ydFVuY2F1Z2h0RXhjZXB0aW9uQXRFdmVudExvb3As
CiAgICAgJmN1cnJlbnRTY3JpcHRFeGVjdXRpb25Pd25lciwKICAgICAmc2NyaXB0RXhlY3V0aW9u
U3RhdHVzLAotICAgICZkZWZhdWx0TGFuZ3VhZ2UsCisgICAgW10geyByZXR1cm4gZGVmYXVsdExh
bmd1YWdlKCk7IH0sCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgICZjb21waWxlU3RyZWFt
aW5nLAogICAgICZpbnN0YW50aWF0ZVN0cmVhbWluZywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IDQyMWU3
NDRmMzMwN2FiZDk5YjFlNWMyZDVkN2YxM2UzM2IzOGU5MDEuLjQyMDI3MmExZDBiNzVjYTY5NWE2
NmYxMjQ2ZTQ3NDU5NmQ1YTRlNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtNTcsNyArNTcsNyBAQCBj
b25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1dvcmtsZXRHbG9iYWxTY29wZUJhc2U6OnNf
Z2xvYmFsT2JqZWN0TWV0aG9kVGFibAogICAgICZyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZl
bnRMb29wLAogICAgICZjdXJyZW50U2NyaXB0RXhlY3V0aW9uT3duZXIsCiAgICAgJnNjcmlwdEV4
ZWN1dGlvblN0YXR1cywKLSAgICAmZGVmYXVsdExhbmd1YWdlLAorICAgIFtdIHsgcmV0dXJuIGRl
ZmF1bHRMYW5ndWFnZSgpOyB9LAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAmY29tcGls
ZVN0cmVhbWluZywKICAgICAmaW5zdGFudGlhdGVTdHJlYW1pbmcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcAppbmRleCBkM2U0NWU4YmI0YzdkMjAw
Y2QzYTRhMjEyODIwZGU0ZWRmY2QxYmY4Li41NWZhMDk2NGM3ZmQ5ODg2MzVlZjMzMjVjYmRhYmYw
ZTIxMzQ0ODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJl
ZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJl
bmNlcy5jcHAKQEAgLTE3MCw3ICsxNzAsNyBAQCB2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6
OmNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKQogCiBWZWN0b3I8U3RyaW5nPiBDYXB0aW9uVXNl
clByZWZlcmVuY2VzOjpwcmVmZXJyZWRMYW5ndWFnZXMoKSBjb25zdAogewotICAgIFZlY3RvcjxT
dHJpbmc+IGxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBWZWN0b3I8
U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXpl
TGFuZ3VhZ2VzOjpObyk7CiAgICAgaWYgKG1fdGVzdGluZ01vZGUgJiYgIW1fdXNlclByZWZlcnJl
ZExhbmd1YWdlLmlzRW1wdHkoKSkKICAgICAgICAgbGFuZ3VhZ2VzLmluc2VydCgwLCBtX3VzZXJQ
cmVmZXJyZWRMYW5ndWFnZSk7CiAKQEAgLTM0MSw3ICszNDEsNyBAQCBpbnQgQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlczo6dGV4dFRyYWNrU2VsZWN0aW9uU2NvcmUoVGV4dFRyYWNrKiB0cmFjaywgSFRN
TE1lZGlhRQogICAgICAgICAgICAgaWYgKG9mZnNldCkKICAgICAgICAgICAgICAgICByZXR1cm4g
MDsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGxhbmd1YWdlTGlzdC5hcHBlbmQoZGVm
YXVsdExhbmd1YWdlKCkpOworICAgICAgICAgICAgbGFuZ3VhZ2VMaXN0LmFwcGVuZChkZWZhdWx0
TGFuZ3VhZ2UoU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Ok5vKSk7CiAKICAgICAgICAgICAgIC8v
IE9ubHkgZW5hYmxlIGEgdGV4dCB0cmFjayBpZiB0aGUgY3VycmVudCBhdWRpbyB0cmFjayBpcyBO
T1QgaW4gdGhlIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2UgLi4uCiAgICAgICAgICAgICBzaXpl
X3Qgb2Zmc2V0ID0gaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdlSW5MaXN0KGF1ZGlvVHJhY2tM
YW5ndWFnZSwgbGFuZ3VhZ2VMaXN0LCBleGFjdE1hdGNoKTsKQEAgLTQxOCw3ICs0MTgsNyBAQCBT
dHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJpbWFyeUF1ZGlvVHJhY2tMYW5ndWFnZU92
ZXJyaWRlKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcHJpbWFyeUF1ZGlvVHJhY2tMYW5ndWFnZU92
ZXJyaWRlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG1fcHJpbWFyeUF1ZGlvVHJhY2tMYW5n
dWFnZU92ZXJyaWRlOwotICAgIHJldHVybiBkZWZhdWx0TGFuZ3VhZ2UoKTsKKyAgICByZXR1cm4g
ZGVmYXVsdExhbmd1YWdlKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObyk7CiB9CiAgICAgCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
ZWRpYUFGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01l
ZGlhQUYuY3BwCmluZGV4IGNmMmUxYmVhMjViMGYwNzk5ODYzOTIwNTk0NWRmMGVlZjkyZDNjNDIu
LjlkNzJlZDY1ZTJmM2E3ODU4MDdhM2ZmMjViYmZkZjNjMDUyNjIwNDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwCkBA
IC00NzEsMzYgKzQ3MSwyMCBAQCB2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpz
ZXRQcmVmZXJyZWRMYW5ndWFnZShjb25zdCBTdHJpbmcmIGxhbmd1YWdlKQogCiBWZWN0b3I8U3Ry
aW5nPiBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6cHJlZmVycmVkTGFuZ3VhZ2VzKCkg
Y29uc3QKIHsKLSAgICBpZiAodGVzdGluZ01vZGUoKSB8fCAhTWVkaWFBY2Nlc3NpYmlsaXR5TGli
cmFyeSgpKQotICAgICAgICByZXR1cm4gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVycmVk
TGFuZ3VhZ2VzKCk7Ci0KLSAgICBWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybUxhbmd1YWdlcyA9IHBs
YXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpOwotICAgIFZlY3RvcjxTdHJpbmc+IG92ZXJy
aWRlID0gdXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCk7Ci0gICAgaWYgKCFvdmVycmlk
ZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKHBsYXRmb3JtTGFuZ3VhZ2VzLnNpemUoKSAhPSBv
dmVycmlkZS5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4gb3ZlcnJpZGU7Ci0gICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgb3ZlcnJpZGUuc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgICAg
IGlmIChvdmVycmlkZVtpXSAhPSBwbGF0Zm9ybUxhbmd1YWdlc1tpXSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gb3ZlcnJpZGU7CisgICAgYXV0byBwcmVmZXJyZWRMYW5ndWFnZXMgPSBDYXB0aW9u
VXNlclByZWZlcmVuY2VzOjpwcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBpZiAoIXRlc3RpbmdN
b2RlKCkgJiYgTWVkaWFBY2Nlc3NpYmlsaXR5TGlicmFyeSgpKSB7CisgICAgICAgIGF1dG8gY2Fw
dGlvbkxhbmd1YWdlcyA9IGFkb3B0Q0YoTUFDYXB0aW9uQXBwZWFyYW5jZUNvcHlTZWxlY3RlZExh
bmd1YWdlcyhrTUFDYXB0aW9uQXBwZWFyYW5jZURvbWFpblVzZXIpKTsKKyAgICAgICAgQ0ZJbmRl
eCBjYXB0aW9uTGFuZ3VhZ2VzQ291bnQgPSBjYXB0aW9uTGFuZ3VhZ2VzID8gQ0ZBcnJheUdldENv
dW50KGNhcHRpb25MYW5ndWFnZXMuZ2V0KCkpIDogMDsKKyAgICAgICAgaWYgKGNhcHRpb25MYW5n
dWFnZXNDb3VudCkgeworICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4gdGVtcDsKKyAgICAgICAg
ICAgIHRlbXAucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjYXB0aW9uTGFuZ3VhZ2VzQ291bnQgKyBw
cmVmZXJyZWRMYW5ndWFnZXMuc2l6ZSgpKTsKKyAgICAgICAgICAgIGZvciAoQ0ZJbmRleCBpID0g
MDsgaSA8IGNhcHRpb25MYW5ndWFnZXNDb3VudDsgaSsrKQorICAgICAgICAgICAgICAgIHRlbXAu
dW5jaGVja2VkQXBwZW5kKHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVB
dEluZGV4KGNhcHRpb25MYW5ndWFnZXMuZ2V0KCksIGkpKSk7CisgICAgICAgICAgICB0ZW1wLmFw
cGVuZFZlY3RvcihXVEZNb3ZlKHByZWZlcnJlZExhbmd1YWdlcykpOworICAgICAgICAgICAgcHJl
ZmVycmVkTGFuZ3VhZ2VzID0gV1RGTW92ZSh0ZW1wKTsKICAgICAgICAgfQogICAgIH0KLQotICAg
IENGSW5kZXggbGFuZ3VhZ2VDb3VudCA9IDA7Ci0gICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IGxh
bmd1YWdlcyA9IGFkb3B0Q0YoTUFDYXB0aW9uQXBwZWFyYW5jZUNvcHlTZWxlY3RlZExhbmd1YWdl
cyhrTUFDYXB0aW9uQXBwZWFyYW5jZURvbWFpblVzZXIpKTsKLSAgICBpZiAobGFuZ3VhZ2VzKQot
ICAgICAgICBsYW5ndWFnZUNvdW50ID0gQ0ZBcnJheUdldENvdW50KGxhbmd1YWdlcy5nZXQoKSk7
Ci0KLSAgICBpZiAoIWxhbmd1YWdlQ291bnQpCi0gICAgICAgIHJldHVybiBDYXB0aW9uVXNlclBy
ZWZlcmVuY2VzOjpwcmVmZXJyZWRMYW5ndWFnZXMoKTsKLQotICAgIFZlY3RvcjxTdHJpbmc+IHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXM7Ci0gICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5yZXNlcnZl
Q2FwYWNpdHkobGFuZ3VhZ2VDb3VudCArIHBsYXRmb3JtTGFuZ3VhZ2VzLnNpemUoKSk7Ci0gICAg
Zm9yIChDRkluZGV4IGkgPSAwOyBpIDwgbGFuZ3VhZ2VDb3VudDsgaSsrKQotICAgICAgICB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZChzdGF0aWNfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZBcnJh
eUdldFZhbHVlQXRJbmRleChsYW5ndWFnZXMuZ2V0KCksIGkpKSk7Ci0KLSAgICB1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzLmFwcGVuZFZlY3RvcihwbGF0Zm9ybUxhbmd1YWdlcyk7Ci0KLSAgICByZXR1
cm4gdXNlclByZWZlcnJlZExhbmd1YWdlczsKKyAgICByZXR1cm4gcHJlZmVycmVkTGFuZ3VhZ2Vz
OwogfQogCiB2b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGOjpzZXRQcmVmZXJyZWRB
dWRpb0NoYXJhY3RlcmlzdGljKGNvbnN0IFN0cmluZyYgY2hhcmFjdGVyaXN0aWMpCkBAIC01Nzks
MTMgKzU2MywxNSBAQCBzdGF0aWMgdm9pZCBidWlsZERpc3BsYXlTdHJpbmdGb3JUcmFja0Jhc2Uo
U3RyaW5nQnVpbGRlciYgZGlzcGxheU5hbWUsIGNvbnN0IFRyYQogICAgIFN0cmluZyBsYWJlbCA9
IHRyYWNrLmxhYmVsKCk7CiAgICAgU3RyaW5nIHRyYWNrTGFuZ3VhZ2VJZGVudGlmaWVyID0gdHJh
Y2sudmFsaWRCQ1A0N0xhbmd1YWdlKCk7CiAKLSAgICBSZXRhaW5QdHI8Q0ZMb2NhbGVSZWY+IGN1
cnJlbnRMb2NhbGUgPSBhZG9wdENGKENGTG9jYWxlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IGRlZmF1bHRMYW5ndWFnZSgpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKKyAgICBhdXRvIHBy
ZWZlcnJlZExhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVM
YW5ndWFnZXM6Ok5vKTsKKyAgICBhdXRvIGRlZmF1bHRMYW5ndWFnZSA9ICFwcmVmZXJyZWRMYW5n
dWFnZXMuaXNFbXB0eSgpID8gcHJlZmVycmVkTGFuZ3VhZ2VzWzBdIDogZW1wdHlTdHJpbmcoKTsg
Ly8gVGhpcyBtYXRjaGVzIGBXVEY6OmRlZmF1bHRMYW5ndWFnZWAuCisgICAgUmV0YWluUHRyPENG
TG9jYWxlUmVmPiBjdXJyZW50TG9jYWxlID0gYWRvcHRDRihDRkxvY2FsZUNyZWF0ZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBkZWZhdWx0TGFuZ3VhZ2UuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOwog
ICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gbG9jYWxlSWRlbnRpZmllciA9IGFkb3B0Q0YoQ0ZM
b2NhbGVDcmVhdGVDYW5vbmljYWxMb2NhbGVJZGVudGlmaWVyRnJvbVN0cmluZyhrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCB0cmFja0xhbmd1YWdlSWRlbnRpZmllci5jcmVhdGVDRlN0cmluZygpLmdldCgp
KSk7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBsYW5ndWFnZUNGID0gYWRvcHRDRihDRkxv
Y2FsZUNvcHlEaXNwbGF5TmFtZUZvclByb3BlcnR5VmFsdWUoY3VycmVudExvY2FsZS5nZXQoKSwg
a0NGTG9jYWxlTGFuZ3VhZ2VDb2RlLCBsb2NhbGVJZGVudGlmaWVyLmdldCgpKSk7CiAgICAgU3Ry
aW5nIGxhbmd1YWdlID0gbGFuZ3VhZ2VDRi5nZXQoKTsKIAogICAgIGlmICghbGFiZWwuaXNFbXB0
eSgpKSB7Ci0gICAgICAgIGlmIChsYW5ndWFnZS5pc0VtcHR5KCkgfHwgbGFiZWwuY29udGFpbnMo
bGFuZ3VhZ2UpKQorICAgICAgICBpZiAobGFuZ3VhZ2UuaXNFbXB0eSgpIHx8IGxhYmVsLmNvbnRh
aW5zKGxhbmd1YWdlKSB8fCBwcmVmZXJyZWRMYW5ndWFnZXMuY29udGFpbnModHJhY2tMYW5ndWFn
ZUlkZW50aWZpZXIpKQogICAgICAgICAgICAgZGlzcGxheU5hbWUuYXBwZW5kKGxhYmVsKTsKICAg
ICAgICAgZWxzZSB7CiAgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBsb2Nh
bGVEaWN0ID0gYWRvcHRDRihDRkxvY2FsZUNyZWF0ZUNvbXBvbmVudHNGcm9tTG9jYWxlSWRlbnRp
ZmllcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBsb2NhbGVJZGVudGlmaWVyLmdldCgpKSk7CkBAIC03
MDksMTUgKzY5NSwxNiBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmRp
c3BsYXlOYW1lRm9yVHJhY2soVGV4dFRyYWNrKiB0cmFjaykgY29ucwogCiBzdGF0aWMgYm9vbCB0
ZXh0VHJhY2tDb21wYXJlKGNvbnN0IFJlZlB0cjxUZXh0VHJhY2s+JiBhLCBjb25zdCBSZWZQdHI8
VGV4dFRyYWNrPiYgYikKIHsKLSAgICBTdHJpbmcgcHJlZmVycmVkTGFuZ3VhZ2VEaXNwbGF5TmFt
ZSA9IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUobGFuZ3VhZ2VJZGVudGlmaWVyKGRlZmF1
bHRMYW5ndWFnZSgpKSk7CiAgICAgU3RyaW5nIGFMYW5ndWFnZURpc3BsYXlOYW1lID0gZGlzcGxh
eU5hbWVGb3JMYW5ndWFnZUxvY2FsZShsYW5ndWFnZUlkZW50aWZpZXIoYS0+dmFsaWRCQ1A0N0xh
bmd1YWdlKCkpKTsKICAgICBTdHJpbmcgYkxhbmd1YWdlRGlzcGxheU5hbWUgPSBkaXNwbGF5TmFt
ZUZvckxhbmd1YWdlTG9jYWxlKGxhbmd1YWdlSWRlbnRpZmllcihiLT52YWxpZEJDUDQ3TGFuZ3Vh
Z2UoKSkpOwogCi0gICAgLy8gVHJhY2tzIGluIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdl
IGFyZSBhbHdheXMgYXQgdGhlIHRvcCBvZiB0aGUgbWVudS4KLSAgICBib29sIGFJc1ByZWZlcnJl
ZExhbmd1YWdlID0gYUxhbmd1YWdlRGlzcGxheU5hbWUgPT0gcHJlZmVycmVkTGFuZ3VhZ2VEaXNw
bGF5TmFtZTsKLSAgICBib29sIGJJc1ByZWZlcnJlZExhbmd1YWdlID0gYkxhbmd1YWdlRGlzcGxh
eU5hbWUgPT0gcHJlZmVycmVkTGFuZ3VhZ2VEaXNwbGF5TmFtZTsKLSAgICBpZiAoYUlzUHJlZmVy
cmVkTGFuZ3VhZ2UgIT0gYklzUHJlZmVycmVkTGFuZ3VhZ2UpCi0gICAgICAgIHJldHVybiBhSXNQ
cmVmZXJyZWRMYW5ndWFnZTsKKyAgICBmb3IgKGF1dG8mIHByZWZlcnJlZExhbmd1YWdlIDogdXNl
clByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6Tm8pKSB7CisgICAg
ICAgIFN0cmluZyBwcmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lID0gZGlzcGxheU5hbWVGb3JM
YW5ndWFnZUxvY2FsZShsYW5ndWFnZUlkZW50aWZpZXIocHJlZmVycmVkTGFuZ3VhZ2UpKTsKKyAg
ICAgICAgYm9vbCBhSXNQcmVmZXJyZWRMYW5ndWFnZSA9IGFMYW5ndWFnZURpc3BsYXlOYW1lID09
IHByZWZlcnJlZExhbmd1YWdlRGlzcGxheU5hbWU7CisgICAgICAgIGJvb2wgYklzUHJlZmVycmVk
TGFuZ3VhZ2UgPSBiTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9PSBwcmVmZXJyZWRMYW5ndWFnZURpc3Bs
YXlOYW1lOworICAgICAgICBpZiAoYUlzUHJlZmVycmVkTGFuZ3VhZ2UgIT0gYklzUHJlZmVycmVk
TGFuZ3VhZ2UpCisgICAgICAgICAgICByZXR1cm4gYUlzUHJlZmVycmVkTGFuZ3VhZ2U7CisgICAg
fQogCiAgICAgQ29sbGF0b3IgY29sbGF0b3I7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2Jq
Qy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQppbmRleCA5YmQ1NjQ4NDBjMjgyYWY1N2ExMGQ0ZTRk
Y2JlODc1NzM0YmM4MjZhLi5iNDE5YjYwZDk4ZTM2NmRiNDdkYzcwNTdlYmQyNTc2OGRjM2Q2OTM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1t
CkBAIC0xMzQsNyArMTM0LDcgQEAgdm9pZCBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQzo6dXBk
YXRlT3B0aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgY2hhcmFjdGVyaXMKICAgICAgICAgcmV0
dXJuOwogCiAgICAgTlNBcnJheSogZmlsdGVyZWRPcHRpb25zID0gW1BBTDo6Z2V0QVZNZWRpYVNl
bGVjdGlvbkdyb3VwQ2xhc3MoKSBtZWRpYVNlbGVjdGlvbk9wdGlvbnNGcm9tQXJyYXk6W21fbWVk
aWFTZWxlY3Rpb25Hcm91cCBvcHRpb25zXQotICAgICAgICBmaWx0ZXJlZEFuZFNvcnRlZEFjY29y
ZGluZ1RvUHJlZmVycmVkTGFuZ3VhZ2VzOmNyZWF0ZU5TQXJyYXkodXNlclByZWZlcnJlZExhbmd1
YWdlcygpKS5nZXQoKV07CisgICAgICAgIGZpbHRlcmVkQW5kU29ydGVkQWNjb3JkaW5nVG9QcmVm
ZXJyZWRMYW5ndWFnZXM6Y3JlYXRlTlNBcnJheSh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3Vs
ZE1pbmltaXplTGFuZ3VhZ2VzOjpObykpLmdldCgpXTsKIAogICAgIGlmICghW2ZpbHRlcmVkT3B0
aW9ucyBjb3VudF0gJiYgY2hhcmFjdGVyaXN0aWNzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGVh
YjA4M2YxZTA3ZDQ1ZTg4YWRiMTQwMWRiYjRjMjE1YjUzNzg1NGEuLjg2ZTdhOWQyNDk2MDMwZjAy
Y2E2NWVjOGQ4YzMzYTA3OTk0NWI5NjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wNS0yNCAgRGV2aW4gUm91
c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9s
c10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRpYSBjb250cm9scyBuZWVkcyB0aGUgZnVsbCBsaXN0
IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZvciBvcmRlcmluZyB0cmFja3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjAzOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvY2YvTGFuZ3VhZ2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QuTGFuZ3VhZ2UuU2hvdWxkTWluaW1pemVMYW5ndWFnZXNZZXMpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVC5MYW5ndWFnZS5TaG91bGRNaW5pbWl6ZUxhbmd1YWdlc05vKToKKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvVGVzdFdURi54Y2NvbmZpZzoKKyAg
ICAgICAgTGluayBgSW50ZXJuYXRpb25hbFN1cHBvcnRgIGFzIHRoYXQncyB3aGVyZSB0aGUgYE5T
TG9jYWxlYCBleHRlbnNpb25zIGFyZSBpbXBsZW1lbnRlZC4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA1
LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBM
b2NrSG9sZGVyIHdpdGggTG9ja2VyIGluIGxvY2FsIHZhcmlhYmxlcwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V1RGLnhjY29uZmlnIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V1RGLnhjY29uZmlnCmluZGV4IGU2YTI5
NzdmYjQ1MmQ4YTI2MmYzNzQ0YjQ1Y2ZhNWE1ZjkzMzgyZDEuLmY4ZWM4MWFhNjJlZGQ2NDkyYzdk
ZDYxMTM5NGJmZjk4Zjg3MTM3MjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29u
ZmlndXJhdGlvbnMvVGVzdFdURi54Y2NvbmZpZworKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0Nv
bmZpZ3VyYXRpb25zL1Rlc3RXVEYueGNjb25maWcKQEAgLTI5LDEwICsyOSwxMyBAQCBHQ0NfRU5B
QkxFX09CSkNfRVhDRVBUSU9OUyA9IFlFUzsKIAogR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9O
UyA9ICQoaW5oZXJpdGVkKSBCVUlMRElOR19URVNUX1dURiBHVEVTVF9BUElfPQogCisvLyBOZWVk
ZWQgYnkgYFNvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW1gLgorV0tfSU5URVJO
QVRJT05BTF9TVVBQT1JUX0xERkxBR1MgPSAtZnJhbWV3b3JrIEludGVybmF0aW9uYWxTdXBwb3J0
OworCiBXS19VSUtJVE1BQ0hFTFBFUl9MREZMQUdTID0gJChXS19VSUtJVE1BQ0hFTFBFUl9MREZM
QUdTXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogV0tfVUlLSVRNQUNIRUxQRVJfTERGTEFHU19tYWNj
YXRhbHlzdCA9IC1mcmFtZXdvcmsgVUlLaXRNYWNIZWxwZXI7CiAKLU9USEVSX0xERkxBR1MgPSAk
KGluaGVyaXRlZCkgLWxndGVzdCAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvbGli
VGVzdFdURi5hICQoV0tfVUlLSVRNQUNIRUxQRVJfTERGTEFHUykgJChPVEhFUl9MREZMQUdTX1BM
QVRGT1JNXyQoV0tfQ09DT0FfVE9VQ0gpKTsKK09USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkg
LWxndGVzdCAtaWZyYW1ld29yayAkKFNES19ESVIpJChTWVNURU1fTElCUkFSWV9ESVIpL1ByaXZh
dGVGcmFtZXdvcmtzIC1mb3JjZV9sb2FkICQoQlVJTFRfUFJPRFVDVFNfRElSKS9saWJUZXN0V1RG
LmEgJChXS19JTlRFUk5BVElPTkFMX1NVUFBPUlRfTERGTEFHUykgJChXS19VSUtJVE1BQ0hFTFBF
Ul9MREZMQUdTKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpOwog
T1RIRVJfTERGTEFHU19QTEFURk9STV8gPSAtZnJhbWV3b3JrIENvY29hIC1mcmFtZXdvcmsgQ2Fy
Ym9uOwogCiAvLyBGSVhNRTogVGhpcyBzaG91bGQgbm90IGJlIGJ1aWx0IG9uIGlPUy4gSW5zdGVh
ZCB3ZSBzaG91bGQgY3JlYXRlIGFuZCB1c2UgYSBUZXN0V1RGIGFwcGxpY2F0aW9uLgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAzYmI4ZWJiNjJiNWY2MzU5ZTVjMjg3MWI4ZjVlZDVmYTBmZDBj
YzZkLi5mMTY2MGM3ZTVjMmEzNTM4Y2UxYTA0OGMzZTIxZDkxMDhmM2IxZTBjIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtODc5LDYgKzg3OSw3IEBACiAJCTk1MDk1RjIwMjYyRkZGQTUwMDAw
RDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwOTVGMUYyNjJGRkZBNTAwMDBEOTIwIC8qIFNhbXBsZWRQ
YWdlVG9wQ29sb3IubW0gKi87IH07CiAJCTk1MEU0Q0MxMjUyRTc1MjQwMDcxNjU5RiAvKiBpT1NT
dHlsdXNTdXBwb3J0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTUwRTRDQzAyNTJFNzUyMzAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi87
IH07CiAJCTk1M0FCQjM1MjVDMEQ2ODIwMDRDOEI3MyAvKiBXS1dlYlZpZXdVbmRlclBhZ2VCYWNr
Z3JvdW5kQ29sb3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NTNBQkIzNDI1QzBENjgxMDA0QzhCNzMgLyogV0tXZWJWaWV3VW5kZXJQYWdlQmFja2dy
b3VuZENvbG9yLm1tICovOyB9OworCQk5NTRFNDEzMDI2NTZFMDY4MDA0NTVENEYgLyogTGFuZ3Vh
Z2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU0
RTQxMkUyNjU2RTA2MzAwNDU1RDRGIC8qIExhbmd1YWdlLmNwcCAqLzsgfTsKIAkJOTVBNTI0OTUy
NTgxQTEwRDAwNDYxRkU5IC8qIFdLV2ViVmlld1RoZW1lQ29sb3IubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUE1MjQ5NDI1ODFBMTBEMDA0NjFGRTkg
LyogV0tXZWJWaWV3VGhlbWVDb2xvci5tbSAqLzsgfTsKIAkJOTVCNkIzQjcyNTFFQkYyRjAwRkM0
MzgyIC8qIE1lZGlhRG9jdW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NUI2QjNCNjI1MUVCRjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5t
bSAqLzsgfTsKIAkJOTk4NEZBQ0MxQ0ZGQUY2MDAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1
dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5ODRG
QUNBMUNGRkFFRUUwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi87IH07CkBAIC0y
NTg3LDYgKzI1ODgsNyBAQAogCQk5NTA5NUYxRjI2MkZGRkE1MDAwMEQ5MjAgLyogU2FtcGxlZFBh
Z2VUb3BDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNh
bXBsZWRQYWdlVG9wQ29sb3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEU0
Q0MwMjUyRTc1MjMwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gaU9TU3R5bHVzU3VwcG9ydC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUzQUJCMzQyNUMwRDY4MTAwNEM4QjczIC8qIFdLV2ViVmll
d1VuZGVyUGFnZUJhY2tncm91bmRDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdLV2ViVmlld1VuZGVyUGFnZUJhY2tncm91bmRDb2xvci5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTU0RTQxMkUyNjU2RTA2MzAwNDU1RDRGIC8qIExhbmd1
YWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExhbmd1YWdlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVBNTI0OTQyNTgxQTEwRDAwNDYxRkU5
IC8qIFdLV2ViVmlld1RoZW1lQ29sb3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5NUI2QjNCNjI1MUVCRjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhRG9jdW1lbnQubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5ODRGQUNBMUNGRkFFRUUwMDhEMTk4QyAvKiBX
S1dlYlZpZXdUZXh0SW5wdXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXS1dlYlZpZXdUZXh0SW5wdXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC00ODE5LDYgKzQ4MjEsNyBAQAogCQlDMDk5MUM0RjE0M0M3RDY4MDA3OTk4RjIgLyogY2YgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTk1NEU0MTJFMjY1
NkUwNjMwMDQ1NUQ0RiAvKiBMYW5ndWFnZS5jcHAgKi8sCiAJCQkJQkMwMjlCMTYxNDg2QUQ2NDAw
ODE3REE5IC8qIFJldGFpblB0ci5jcHAgKi8sCiAJCQkJQzA5OTFDNTAxNDNDN0Q2ODAwNzk5OEYy
IC8qIFJldGFpblB0ckhhc2hpbmcuY3BwICovLAogCQkJKTsKQEAgLTUyMDAsNiArNTIwMyw3IEBA
CiAJCQkJNTNGQ0RFNkIyMjlFRkZCOTAwNTk4RUNGIC8qIElzb0hlYXAuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0NFQjYyQUIyMjM2MDlERTAwNjlDQkIwIC8qIEl0ZXJhdG9yUmFuZ2UuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0EwNTA5NDExRkI5RjA2NDAwQjMzRkI4IC8qIEpTT05WYWx1ZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk5NTRFNDEzMDI2NTZFMDY4MDA0NTVENEYgLyogTGFuZ3Vh
Z2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTMxQzFEOEUxREY4RUY3MjAwNkU5NzlGIC8qIExF
QkRlY29kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU3RDU0RjkxRjMzOTdCNDAwQTk3QUE3
IC8qIExpZmVjeWNsZUxvZ2dlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0UyQzU1NTFGRDMy
MDQxMDBFMURGNkEgLyogTGluZUVuZGluZy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NmL0xhbmd1YWdlLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL2NmL0xhbmd1YWdlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjQzYmZl
MmVkYTI4MjdlMjdlOTE5NTUwNWI3YWU5OTdjNjMxYWU5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvY2YvTGFuZ3VhZ2UuY3BwCkBAIC0wLDAgKzEsOTcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDx3dGYvTGFu
Z3VhZ2UuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVEVTVChMYW5ndWFnZSwg
U2hvdWxkTWluaW1pemVMYW5ndWFnZXNZZXMpCit7CisgICAgb3ZlcnJpZGVVc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKHsgfSk7CisgICAgV1RGOjpvdmVycmlkZUluaXRpYWxQbGF0Zm9ybVVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXNGb3JUZXN0aW5nKHsgImVuLVVTIl9zLCAiZXMtVVMiX3MsICJmci1VUyJf
cyB9KTsKKworICAgIGF1dG8gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91
bGRNaW5pbWl6ZUxhbmd1YWdlczo6WWVzKTsKKworICAgIGF1dG8gZW5nbGlzaEluZGV4ID0gbGFu
Z3VhZ2VzLmZpbmRNYXRjaGluZyhbXSAoY29uc3QgYXV0byYgbGFuZ3VhZ2UpIHsKKyAgICAgICAg
cmV0dXJuIGxhbmd1YWdlLnN0YXJ0c1dpdGgoImVuIl9zKTsKKyAgICB9KTsKKyAgICBhdXRvIHNw
YW5pc2hJbmRleCA9IGxhbmd1YWdlcy5maW5kTWF0Y2hpbmcoW10gKGNvbnN0IGF1dG8mIGxhbmd1
YWdlKSB7CisgICAgICAgIHJldHVybiBsYW5ndWFnZS5zdGFydHNXaXRoKCJlcyJfcyk7CisgICAg
fSk7CisgICAgYXV0byBmcmVuY2hJbmRleCA9IGxhbmd1YWdlcy5maW5kTWF0Y2hpbmcoW10gKGNv
bnN0IGF1dG8mIGxhbmd1YWdlKSB7CisgICAgICAgIHJldHVybiBsYW5ndWFnZS5zdGFydHNXaXRo
KCJmciJfcyk7CisgICAgfSk7CisKKyAgICBFWFBFQ1RfTkUoZW5nbGlzaEluZGV4LCBub3RGb3Vu
ZCk7CisgICAgRVhQRUNUX0VRKHNwYW5pc2hJbmRleCwgbm90Rm91bmQpOworICAgIEVYUEVDVF9F
UShmcmVuY2hJbmRleCwgbm90Rm91bmQpOworCisgICAgV1RGOjpvdmVycmlkZUluaXRpYWxQbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNGb3JUZXN0aW5nKHsgfSk7IC8vIGNsZWFudXAKK30K
KworVEVTVChMYW5ndWFnZSwgU2hvdWxkTWluaW1pemVMYW5ndWFnZXNObykKK3sKKyAgICBvdmVy
cmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoeyB9KTsKKyAgICBXVEY6Om92ZXJyaWRlSW5pdGlh
bFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc0ZvclRlc3RpbmcoeyAiZW4tVVMiX3MsICJl
cy1VUyJfcywgImZyLVVTIl9zIH0pOworCisgICAgYXV0byBsYW5ndWFnZXMgPSB1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObyk7CisKKyAgICBhdXRvIGVu
Z2xpc2hVU0luZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImVuLVVTIl9zKTsKKyAgICBhdXRvIGVuZ2xp
c2hJbmRleCA9IGxhbmd1YWdlcy5maW5kTWF0Y2hpbmcoW10gKGNvbnN0IGF1dG8mIGxhbmd1YWdl
KSB7CisgICAgICAgIHJldHVybiBsYW5ndWFnZS5zdGFydHNXaXRoKCJlbiJfcykgJiYgbGFuZ3Vh
Z2UgIT0gImVuLVVTIl9zOworICAgIH0pOworICAgIGF1dG8gc3BhbmlzaFVTSW5kZXggPSBsYW5n
dWFnZXMuZmluZCgiZXMtVVMiX3MpOworICAgIGF1dG8gc3BhbmlzaEluZGV4ID0gbGFuZ3VhZ2Vz
LmZpbmRNYXRjaGluZyhbXSAoY29uc3QgYXV0byYgbGFuZ3VhZ2UpIHsKKyAgICAgICAgcmV0dXJu
IGxhbmd1YWdlLnN0YXJ0c1dpdGgoImVzIl9zKSAmJiBsYW5ndWFnZSAhPSAiZXMtVVMiX3M7Cisg
ICAgfSk7CisgICAgYXV0byBmcmVuY2hVU0luZGV4ID0gbGFuZ3VhZ2VzLmZpbmQoImZyLVVTIl9z
KTsKKyAgICBhdXRvIGZyZW5jaEluZGV4ID0gbGFuZ3VhZ2VzLmZpbmRNYXRjaGluZyhbXSAoY29u
c3QgYXV0byYgbGFuZ3VhZ2UpIHsKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlLnN0YXJ0c1dpdGgo
ImZyIl9zKSAmJiBsYW5ndWFnZSAhPSAiZnItVVMiX3M7CisgICAgfSk7CisKKyAgICBFWFBFQ1Rf
TkUoZW5nbGlzaFVTSW5kZXgsIG5vdEZvdW5kKTsKKyAgICBpZiAoZW5nbGlzaEluZGV4ICE9IG5v
dEZvdW5kKSB7CisgICAgICAgIEVYUEVDVF9HVChlbmdsaXNoSW5kZXgsIGVuZ2xpc2hVU0luZGV4
KTsKKyAgICAgICAgRVhQRUNUX0xUKGVuZ2xpc2hJbmRleCwgc3BhbmlzaFVTSW5kZXgpOworICAg
IH0KKyAgICBFWFBFQ1RfTkUoc3BhbmlzaFVTSW5kZXgsIG5vdEZvdW5kKTsKKyAgICBFWFBFQ1Rf
R1Qoc3BhbmlzaFVTSW5kZXgsIGVuZ2xpc2hVU0luZGV4KTsKKyAgICBpZiAoc3BhbmlzaEluZGV4
ICE9IG5vdEZvdW5kKSB7CisgICAgICAgIEVYUEVDVF9HVChzcGFuaXNoSW5kZXgsIHNwYW5pc2hV
U0luZGV4KTsKKyAgICAgICAgRVhQRUNUX0xUKHNwYW5pc2hJbmRleCwgZnJlbmNoVVNJbmRleCk7
CisgICAgfQorICAgIEVYUEVDVF9ORShmcmVuY2hVU0luZGV4LCBub3RGb3VuZCk7CisgICAgRVhQ
RUNUX0dUKGZyZW5jaFVTSW5kZXgsIHNwYW5pc2hVU0luZGV4KTsKKyAgICBpZiAoZnJlbmNoSW5k
ZXggIT0gbm90Rm91bmQpCisgICAgICAgIEVYUEVDVF9HVChmcmVuY2hJbmRleCwgZnJlbmNoVVNJ
bmRleCk7CisKKyAgICBXVEY6Om92ZXJyaWRlSW5pdGlhbFBsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlc0ZvclRlc3RpbmcoeyB9KTsgLy8gY2xlYW51cAorfQorCit9IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nIGIvV2Vi
S2l0TGlicmFyaWVzL0NoYW5nZUxvZwppbmRleCBkMmMyMGI5NTY2MjA5YzU1YzcxMDM0MmU3ZDg5
YmQwMzJjOTBhMmFiLi5mM2NjODU2NWU4ZWUyODViMzcxOTdlMWZhNTcwZDA1OTc0NTI4MDg1IDEw
MDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdExpYnJhcmll
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMS0wNS0yNCAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gUkVH
UkVTU0lPTihyMjU0Mzg5KSBtZWRpYSBjb250cm9scyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxh
bmd1YWdlIHByZWZlcmVuY2VzIGZvciBvcmRlcmluZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjAzOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNz
IHRvIHRoZSBmdWxsIGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJv
cGVybHkKKyAgICAgICAgc29ydC9vcmRlciB0aGUgbGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRy
b2xzIFVJLiBGb3IgZXhhbXBsZSwgaWYgYSBgPHZpZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAg
ICBmb3IgRW5nbGlzaCwgU3BhbmlzaCwgYW5kIEZyZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmds
aXNoIChkZWZhdWx0KSBhbmQgRnJlbmNoIChhbHRlcm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQg
aW4gdGhlIExhbmd1YWdlICYgUmVnaW9uIHZpZXcgb2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1h
Y09TLCBXZWJLaXQgc2hvdWxkIG9yZGVyCisgICAgICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmds
aXNoLCBGcmVuY2gsIGFuZCB0aGVuIFNwYW5pc2guCisKKyAgICAgICAgKiBXZWJLaXRQcml2YXRl
RnJhbWV3b3JrU3R1YnMvTWFjLzEwMTUwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsv
SW50ZXJuYXRpb25hbFN1cHBvcnQudGJkOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRl
RnJhbWV3b3JrU3R1YnMvTWFjLzEwMTYwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsv
SW50ZXJuYXRpb25hbFN1cHBvcnQudGJkOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRl
RnJhbWV3b3JrU3R1YnMvTWFjLzExMDAwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsv
SW50ZXJuYXRpb25hbFN1cHBvcnQudGJkOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRl
RnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE0L0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29y
ay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQ6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFByaXZh
dGVGcmFtZXdvcmtTdHVicy9pT1MvMTQvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0lu
dGVybmF0aW9uYWxTdXBwb3J0LnRiZDogQWRkZWQuCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZy
YW1ld29ya1N0dWJzL3dhdGNob3MvNy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50
ZXJuYXRpb25hbFN1cHBvcnQudGJkOiBBZGRlZC4KKyAgICAgICAgTGluayBgSW50ZXJuYXRpb25h
bFN1cHBvcnRgIGFzIHRoYXQncyB3aGVyZSB0aGUgYE5TTG9jYWxlYCBleHRlbnNpb25zIGFyZSBp
bXBsZW1lbnRlZC4KKwogMjAyMS0wMS0wNCAgSmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+
CiAKICAgICAgICAgVXBkYXRlIHVzZXItdmlzaWJsZSBjb3B5cmlnaHQgc3RyaW5ncyB0byBpbmNs
dWRlIDIwMjEKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3
b3JrU3R1YnMvTWFjLzEwMTUwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJu
YXRpb25hbFN1cHBvcnQudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdv
cmtTdHVicy9NYWMvMTAxNTAwL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5h
dGlvbmFsU3VwcG9ydC50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTk0N2EzOWQxMjNmNTcyN2YwZjU5ZTBiY2Mz
MTAzYTFiOTg2ZjFiYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQ
cml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzEwMTUwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFt
ZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCkBAIC0wLDAgKzEsNyBAQAorLS0tICF0YXBp
LXRiZC12MworYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCBdCitpbnN0YWxsLW5hbWU6ICAgICcv
U3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJh
bWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0JworcGxhdGZvcm06IHppcHBlcmVkCitleHBvcnRz
OgorICAtIGFyY2hzOiAgICAgICAgICAgWyB4ODZfNjQgXQorLi4uCmRpZmYgLS1naXQgYS9XZWJL
aXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL01hYy8xMDE2MDAvSW50ZXJu
YXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZCBiL1dlYktp
dExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzEwMTYwMC9JbnRlcm5h
dGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmI2MDUzZGZlYTU0MGViMmY4YWFjYmU5MjU2MDBkZTg3MzY0MTNmZTAKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL01hYy8x
MDE2MDAvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0
LnRiZApAQCAtMCwwICsxLDcgQEAKKy0tLSAhdGFwaS10YmQtdjMKK2FyY2hzOiAgICAgICAgICAg
WyB4ODZfNjQsIGFybTY0LCBhcm02NGUgXQoraW5zdGFsbC1uYW1lOiAgICAnL1N5c3RlbS9MaWJy
YXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRl
cm5hdGlvbmFsU3VwcG9ydCcKK3BsYXRmb3JtOiB6aXBwZXJlZAorZXhwb3J0czoKKyAgLSBhcmNo
czogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCwgYXJtNjRlIF0KKy4uLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9NYWMvMTEwMDAwL0lu
dGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQgYi9X
ZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL01hYy8xMTAwMDAvSW50
ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iNjA1M2RmZWE1NDBlYjJmOGFhY2JlOTI1NjAwZGU4NzM2NDEzZmUwCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9N
YWMvMTEwMDAwL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3Vw
cG9ydC50YmQKQEAgLTAsMCArMSw3IEBACistLS0gIXRhcGktdGJkLXYzCithcmNoczogICAgICAg
ICAgIFsgeDg2XzY0LCBhcm02NCwgYXJtNjRlIF0KK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0v
TGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsv
SW50ZXJuYXRpb25hbFN1cHBvcnQnCitwbGF0Zm9ybTogemlwcGVyZWQKK2V4cG9ydHM6CisgIC0g
YXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCwgYXJtNjQsIGFybTY0ZSBdCisuLi4KZGlmZiAtLWdp
dCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9z
LzE0L0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50
YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2FwcGxldHZv
cy8xNC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQu
dGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjMzMTA5MTdjNjBkYTc1MDI0NzkxYTY4YmNlOWYwOTFhNmJlZGY0ZjQK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29y
a1N0dWJzL2FwcGxldHZvcy8xNC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJu
YXRpb25hbFN1cHBvcnQudGJkCkBAIC0wLDAgKzEsOCBAQAorLS0tICF0YXBpLXRiZC12MworYXJj
aHM6ICAgICAgICAgICBbIHg4Nl82NCwgYXJtNjQgXQoraW5zdGFsbC1uYW1lOiAgICAnL1N5c3Rl
bS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29y
ay9JbnRlcm5hdGlvbmFsU3VwcG9ydCcKK29iamMtY29uc3RyYWludDogbm9uZQorcGxhdGZvcm06
IHR2b3MKK2V4cG9ydHM6CisgIC0gYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCwgYXJtNjQgXQor
Li4uCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0
dWJzL2lPUy8xNC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1
cHBvcnQudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9p
T1MvMTQvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0
LnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lZjdhNzAyM2U0YWJlZjY3Yzk0NWIzY2M2YjI4Y2NiNzQ0OTFkZDIz
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdv
cmtTdHVicy9pT1MvMTQvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9u
YWxTdXBwb3J0LnRiZApAQCAtMCwwICsxLDggQEAKKy0tLSAhdGFwaS10YmQtdjMKK2FyY2hzOiAg
ICAgICAgICAgWyB4ODZfNjQsIGFybTY0LCBhcm02NGUgXQoraW5zdGFsbC1uYW1lOiAgICAnL1N5
c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1l
d29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydCcKK29iamMtY29uc3RyYWludDogbm9uZQorcGxhdGZv
cm06IGlvcworZXhwb3J0czoKKyAgLSBhcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCwg
YXJtNjRlIF0KKy4uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVG
cmFtZXdvcmtTdHVicy93YXRjaG9zLzcvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0lu
dGVybmF0aW9uYWxTdXBwb3J0LnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJh
bWV3b3JrU3R1YnMvd2F0Y2hvcy83L0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRl
cm5hdGlvbmFsU3VwcG9ydC50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQzOWVmNjQ5NGI5MzhhNjMwNjY0ZDkx
MzM1NzEwNmRhMmI5NzdkOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJL
aXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvd2F0Y2hvcy83L0ludGVybmF0aW9uYWxTdXBwb3J0LmZy
YW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKQEAgLTAsMCArMSw4IEBACistLS0gIXRh
cGktdGJkLXYzCithcmNoczogICAgICAgICAgIFsgaTM4NiwgeDg2XzY0LCBhcm02NCwgYXJtNjRl
LCBhcm02NF8zMiwgYXJtdjdrIF0KK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Q
cml2YXRlRnJhbWV3b3Jrcy9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRp
b25hbFN1cHBvcnQnCitvYmpjLWNvbnN0cmFpbnQ6IG5vbmUKK3BsYXRmb3JtOiB3YXRjaG9zCitl
eHBvcnRzOgorICAtIGFyY2hzOiAgICAgICAgICAgWyBpMzg2LCB4ODZfNjQsIGFybTY0LCBhcm02
NGUsIGFybTY0XzMyLCBhcm12N2sgXQorLi4uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429616</attachid>
            <date>2021-05-24 19:56:42 -0700</date>
            <delta_ts>2021-05-25 14:50:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226038-20210524205641.patch</filename>
            <type>text/plain</type>
            <size>59270</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDJlOTRlODJiN2ViZTY4MTUzMDBhYmI1ODkwMWU4
ZGUwMzIwMzI0YjEuLmZlYTFjYmRlMzc0NWY2Y2Y0M2ZiOTM0NmYyZjNlN2ZkOTQ4YmJmODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTA1LTI0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENv
bnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxs
IGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVkaWEgY29udHJvbHMg
bmVlZCBhY2Nlc3MgdG8gdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBpbiBv
cmRlciB0byBwcm9wZXJseQorICAgICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNrcyBp
biB0aGUgY29udHJvbHMgVUkuIEZvciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3VidGl0
bGVzCisgICAgICAgIGZvciBFbmdsaXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhlIHVz
ZXIgaGFzIEVuZ2xpc2ggKGRlZmF1bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAgICAg
Y29uZmlndXJlZCBpbiB0aGUgTGFuZ3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJlZmVy
ZW5jZXMgb24gbWFjT1MsIFdlYktpdCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRpdGxl
cyBsaXN0IEVuZ2xpc2gsIEZyZW5jaCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAgICAgICAqIHNo
ZWxsL3BsYXlzdGF0aW9uL1Rlc3RTaGVsbC5jcHA6CisgICAgICAgIChwcmVUZXN0KToKKyAgICAg
ICAgSW5zdGVhZCBvZiBwcm9wYWdhdGluZyB0aGUgb3ZlcnJpZGUsIGp1c3QgY2xlYXIgaXQgb3V0
LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvSmF2YVNjcmlwdENvcmUueGNjb25maWc6Cisg
ICAgICAgIExpbmsgYEludGVybmF0aW9uYWxTdXBwb3J0YCBhcyB0aGF0J3Mgd2hlcmUgdGhlIGBO
U0xvY2FsZWAgZXh0ZW5zaW9ucyBhcmUgaW1wbGVtZW50ZWQuCisKIDIwMjEtMDUtMjQgIFNhYW0g
QmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb3cgQ1RJIHN0dWJzIHRv
IGJlIGdlbmVyYXRlZCBvZmYgdGhlIG1haW4gdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkwNDYxMTUwMDk0NGRlZTc4
MjUxOTVlY2YwMGZkMTBjZTY2ZDQwYTEuLjM2OWJkZjM2YmIxYmMzNjRjNmY3ZDc1ZmZiNGU0Mzlh
YzVhMGQzYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjEtMDUtMjQgIERldmluIFJvdXNzbyAg
PGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtNb2Rlcm4gTWVkaWEgQ29udHJvbHNdIFJF
R1JFU1NJT04ocjI1NDM4OSkgbWVkaWEgY29udHJvbHMgbmVlZHMgdGhlIGZ1bGwgbGlzdCBvZiBs
YW5ndWFnZSBwcmVmZXJlbmNlcyBmb3Igb3JkZXJpbmcgdHJhY2tzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYwMzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNZWRpYSBjb250cm9scyBuZWVkIGFjY2Vz
cyB0byB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGluIG9yZGVyIHRvIHBy
b3Blcmx5CisgICAgICAgIHNvcnQvb3JkZXIgdGhlIGxpc3Qgb2YgdHJhY2tzIGluIHRoZSBjb250
cm9scyBVSS4gRm9yIGV4YW1wbGUsIGlmIGEgYDx2aWRlbz5gIGhhcyBzdWJ0aXRsZXMKKyAgICAg
ICAgZm9yIEVuZ2xpc2gsIFNwYW5pc2gsIGFuZCBGcmVuY2gsIGFuZCB0aGUgdXNlciBoYXMgRW5n
bGlzaCAoZGVmYXVsdCkgYW5kIEZyZW5jaCAoYWx0ZXJuYXRlKQorICAgICAgICBjb25maWd1cmVk
IGluIHRoZSBMYW5ndWFnZSAmIFJlZ2lvbiB2aWV3IG9mIFN5c3RlbSBQcmVmZXJlbmNlcyBvbiBt
YWNPUywgV2ViS2l0IHNob3VsZCBvcmRlcgorICAgICAgICB0aGUgc3VidGl0bGVzIGxpc3QgRW5n
bGlzaCwgRnJlbmNoLCBhbmQgdGhlbiBTcGFuaXNoLgorCisgICAgICAgICogd3RmL0xhbmd1YWdl
Lmg6CisgICAgICAgICogd3RmL0xhbmd1YWdlLmNwcDoKKyAgICAgICAgKFdURjo6Y2FjaGVkRnVs
bFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKTogQWRkZWQuCisgICAgICAgIChXVEY6OmNhY2hl
ZE1pbmltaXplZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKTogQWRkZWQuCisgICAgICAgIChX
VEY6Omxhbmd1YWdlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdURjo6ZGVmYXVsdExhbmd1YWdlKToK
KyAgICAgICAgKFdURjo6dXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgIChXVEY6OnBs
YXRmb3JtTGFuZ3VhZ2VEaWRDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICBNb3ZlIHRoZSBjYWNo
aW5nIGluIGB3dGYvY2YvTGFuZ3VhZ2VDRi5jcHBgIHRvIGB3dGYvTGFuZ3VhZ2UuY3BwYCBzbyB0
aGF0IGFsbCBwbGF0Zm9ybXMgY2FuCisgICAgICAgIGJlbmVmaXQgZnJvbSBjYWNoaW5nIHRoZSBy
ZXN1bHQgb2YgYHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc2AuCisKKyAgICAgICAgKiB3
dGYvY2YvTGFuZ3VhZ2VDRi5jcHA6CisgICAgICAgIChXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJl
ZExhbmd1YWdlcyk6CisgICAgICAgIChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2VEaWRDaGFuZ2UpOiBE
ZWxldGVkLgorICAgICAgICAqIHd0Zi9wbGF5c3RhdGlvbi9MYW5ndWFnZVBsYXlTdGF0aW9uLmNw
cDoKKyAgICAgICAgKFdURjo6cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKToKKyAgICAg
ICAgKiB3dGYvc3BpL2NvY29hL05TTG9jYWxlU1BJLmg6CisgICAgICAgICogd3RmL3VuaXgvTGFu
Z3VhZ2VVbml4LmNwcDoKKyAgICAgICAgKFdURjo6cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzKToKKyAgICAgICAgKiB3dGYvd2luL0xhbmd1YWdlV2luLmNwcDoKKyAgICAgICAgKFdURjo6
cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKToKKyAgICAgICAgQWRkIGBXVEY6OlNob3Vs
ZE1pbmltaXplTGFuZ3VhZ2VzYCB0aGF0IGNvbnRyb2xzIHdoZXRoZXIgYFdURjo6bWluaW1pemVk
UHJlZmVycmVkTGFuZ3VhZ2VzYAorICAgICAgICBpcyBjYWxsZWQuIFNpbmNlIHRoZSByZXN1bHQg
aXMgY2FjaGVkLCBjcmVhdGUgc2VwYXJhdGUgYFZlY3RvcjxTdHJpbmc+YCBmb3IgZWFjaCBlbnVt
IHZhbHVlLgorCiAyMDIxLTA1LTI0ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW1vdmUgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTGl0ZXJhbApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDBlYzgwNTAxMzdjYWFiYjdlMWJjN2E2ZmRkYjFjMjU4MGQ0ODQzY2MuLjAyOWY5NjE3Yjg4ZjJj
ZDRkMGM5ZGRmYWFiNTZlZGJlNDlhOTU4ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MCBAQAor
MjAyMS0wNS0yNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
W01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRpYSBjb250cm9s
cyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZvciBvcmRlcmlu
ZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qgb2YgbGFuZ3VhZ2Ug
cHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29ydC9vcmRlciB0aGUg
bGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBsZSwgaWYgYSBgPHZp
ZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3BhbmlzaCwgYW5kIEZy
ZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQgRnJlbmNoIChhbHRl
cm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYgUmVnaW9uIHZpZXcg
b2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxkIG9yZGVyCisgICAg
ICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0aGVuIFNwYW5pc2gu
CisKKyAgICAgICAgVGVzdDogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBw
b3J0L3NvcnRlZC1ieS11c2VyLXByZWZlcnJlZC1sYW5ndWFnZXMuaHRtbAorCisgICAgICAgICog
cGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRp
b25Vc2VyUHJlZmVyZW5jZXM6OnByZWZlcnJlZExhbmd1YWdlcyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzOjp0ZXh0VHJhY2tTZWxlY3Rpb25TY29yZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpwcmltYXJ5
QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAqIHBhZ2UvQ2FwdGlv
blVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVz
ZXJQcmVmZXJlbmNlc01lZGlhQUY6OnByZWZlcnJlZExhbmd1YWdlcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpidWlsZERpc3BsYXlTdHJpbmdGb3JUcmFja0Jhc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6dHJhY2tEaXNwbGF5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0VHJhY2tDb21w
YXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxl
Y3Rpb25Hcm91cEFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlbGVjdGlvbkdy
b3VwQVZGT2JqQzo6dXBkYXRlT3B0aW9ucyk6CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2Nv
cGVCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJh
c2UuY3BwOgorICAgICAgICBXcmFwIGBkZWZhdWx0TGFuZ3VhZ2VgIGluIGEgbGFtYmRhIHNpbmNl
IGl0IG5vdyBoYXMgYSBwYXJhbWV0ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmg6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjYXB0aW9uc1RleHRUcmFja0tpbmREaXNwbGF5TmFtZSk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6ZGVzY3JpcHRpb25zVGV4dFRyYWNrS2luZERpc3BsYXlOYW1lKTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjaGFwdGVyc1RleHRUcmFja0tpbmREaXNwbGF5TmFt
ZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6bWV0YWRhdGFUZXh0VHJhY2tLaW5kRGlzcGxh
eU5hbWUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNsb3NlZENhcHRpb25LaW5kVHJhY2tE
aXNwbGF5TmFtZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6c2RoVHJhY2tLaW5kRGlzcGxh
eU5hbWUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmVhc3lSZWFkZXJLaW5kRGlzcGxheU5h
bWUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmZvcmNlZFRyYWNrS2luZERpc3BsYXlOYW1l
KTogQWRkZWQuCisgICAgICAgIE1vdmUgdGhlIGxvZ2ljIGFkZGVkIGluIHIyNzc3OTcgZnJvbSBg
YnVpbGREaXNwbGF5U3RyaW5nRm9yVHJhY2tCYXNlYCB0byBgdHJhY2tEaXNwbGF5TmFtZWAKKyAg
ICAgICAgYW5kIG9ubHkgcGVyZm9ybSBpdCBpZiB0aGUgdGV4dCB0cmFjayBkaXNwbGF5IG5hbWUg
ZG9lc24ndCBhbHJlYWR5IGNvbnRhaW4gdGhlIGRpc3BsYXkgbmFtZQorICAgICAgICBmb3IgdGhl
IHRleHQgdHJhY2sga2luZCAoZS5nLiBpZiB0aGUgYGxhYmVsYCBpcyAiRW5nbGlzaCBDYXB0aW9u
cyIgZG9uJ3QgYWRkICJDYXB0aW9ucyIsIGJ1dAorICAgICAgICBkbyBpZiB0aGUgYGxhYmVsYCBp
cyBvbmx5ICJFbmdsaXNoIikuCisKIDIwMjEtMDUtMjQgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtMRkNdIEFkZCBzdXBwb3J0IGZvciBnZW9tZXRyeS9xdWlya3Mg
dmlydHVhbCBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25m
aWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54Y2NvbmZpZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54Y2NvbmZpZwppbmRleCA2ZGY4ZjAwYjQy
YzMwM2Q0ZjI2ODBmYzY5ZDAyMTM1MTI2YWY0YzA0Li5jN2FjMTcwYzExYjZjMTgzMjUzNmI0OGYy
ODMyZDhjYmUyMjA0ZjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmln
dXJhdGlvbnMvSmF2YVNjcmlwdENvcmUueGNjb25maWcKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NvbmZpZ3VyYXRpb25zL0phdmFTY3JpcHRDb3JlLnhjY29uZmlnCkBAIC0yOSw3ICsyOSwx
MCBAQCBNT0RVTEVNQVBfRklMRSA9ICQoU1JDUk9PVCkvSmF2YVNjcmlwdENvcmUubW9kdWxlbWFw
OwogLy8gUHJldmVudCBDKysgc3RhbmRhcmQgbGlicmFyeSBvcGVyYXRvciBuZXcsIGRlbGV0ZSBh
bmQgdGhlaXIgcmVsYXRlZCBleGNlcHRpb24gdHlwZXMgZnJvbSBiZWluZyBleHBvcnRlZCBhcyB3
ZWFrIHN5bWJvbHMuCiBPVEhFUl9MREZMQUdTX0hJREVfU1lNQk9MUyA9IC1XbCwtdW5leHBvcnRl
ZF9zeW1ib2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pUSVN0
OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWlRTU3Q5YmFkX2FsbG9jIC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wsX19aVFNTdDlleGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCxfX1pkbFB2U18gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pud21QdiAtV2wsLXVuZXhwb3J0
ZWRfc3ltYm9sLF9fWk5LU3QzX18xOGZ1bmN0aW9uSUZ2dkVFY2xFdiAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVDMUVPUzJfIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wsX19aTlN0M19fMThmdW5jdGlvbklGdnZFRUMyRU9TMl8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCxfX1pOS1N0M19fMThmdW5jdGlvbklGdlJOM0pTQzE3Qnl0ZWNvZGVHZW5lcmF0b3JFUE5T
MV8xMFJlZ2lzdGVySURFRUVjbEVTM19TNV8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3Qz
X18xOGZ1bmN0aW9uSUZ2Uk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvckVQTlMxXzEwUmVnaXN0ZXJJ
REVFRUQxRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2Uk4z
SlNDMTdCeXRlY29kZUdlbmVyYXRvckVQTlMxXzEwUmVnaXN0ZXJJREVFRUQyRXYgLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2dkVFRDFFdiAtV2wsLXVuZXhwb3J0
ZWRfc3ltYm9sLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVEMkV2IC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wsX19aVFZOU3QzX18xMTdiYWRfZnVuY3Rpb25fY2FsbEUgLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0yNF9faXNfcGF0aGFibGVfY2hhcl9hcnJh
eUlQS2NTNF9jTGIxRUUxMV9fcmFuZ2VfZW5kRVM0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9f
Wk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTI0X19pc19wYXRoYWJsZV9jaGFyX2FycmF5SVBLY1M0
X2NMYjFFRTEzX19yYW5nZV9iZWdpbkVTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3Qz
X18xNF9fZnMxMGZpbGVzeXN0ZW04X1BhdGhDVlRJY0UxNF9fYXBwZW5kX3JhbmdlSVBLY0VFTlNf
OWVuYWJsZV9pZklYc3IyN19faXNfY3BwMTdfZm9yd2FyZF9pdGVyYXRvcklUX0VFNXZhbHVlRXZF
NHR5cGVFUk5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0
b3JJY0VFRUVTOF9TOF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZp
bGVzeXN0ZW04X1BhdGhDVlRJY0UxNV9fYXBwZW5kX3NvdXJjZUlQS2NFRXZSTlNfMTJiYXNpY19z
dHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRVJLVF8gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW04X1BhdGhDVlRJY0Ux
NF9fYXBwZW5kX3JhbmdlSVBLY0VFTlNfOWVuYWJsZV9pZklYc3IyMV9faXNfZm9yd2FyZF9pdGVy
YXRvcklUX0VFNXZhbHVlRXZFNHR5cGVFUk5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJh
aXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVTOF9TOF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxf
X1pOS1N0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJlY3RvcnlfaXRlcmF0b3JkZUV2IC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJlY3Rvcnlf
aXRlcmF0b3JwcEV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxl
c3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJQTEwX2NQY2NMYjFFRTExX19yYW5nZV9l
bmRFUEtjIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVt
MjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJQTEwX2NQY2NMYjFFRTEzX19yYW5nZV9iZWdpbkVQ
S2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW00cGF0
aGRWRVJLUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxlc3lz
dGVtOF9QYXRoQ1ZUSWNFMTVfX2FwcGVuZF9zb3VyY2VJQTEwX2NFRXZSTlNfMTJiYXNpY19zdHJp
bmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRVJLVF8gLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCxfX1pOU3QzX18xNF9fZnMxMGZpbGVzeXN0ZW0yNF9fdGhyb3dfZmlsZXN5
c3RlbV9lcnJvcklKUlBLY1JLTlMxXzRwYXRoRVJLTlNfMTBlcnJvcl9jb2RlRUVFRXZEcE9UXyAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTE0X19pc19z
ZXBhcmF0b3JJY0VFTlNfOWVuYWJsZV9pZklYc3IxOF9fY2FuX2NvbnZlcnRfY2hhcklUX0VFNXZh
bHVlRWJFNHR5cGVFUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBm
aWxlc3lzdGVtMjRfX2lzX3BhdGhhYmxlX2NoYXJfYXJyYXlJUEtjUzRfY0xiMUVFMTVfX2ZpcnN0
X29yX251bGxFUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsX19aTlN0M19fMTRfX2ZzMTBmaWxl
c3lzdGVtNHBhdGgyMF9fc291cmNlX2lzX2Fic29sdXRlSWNFRWJUXyAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTRwYXRoNmFwcGVuZElQS2NFRU5TXzll
bmFibGVfaWZJWHNyMTNfX2lzX3BhdGhhYmxlSVRfRUU1dmFsdWVFUlMyX0U0dHlwZUVSS1M3XyAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sLF9fWk5TdDNfXzE0X19mczEwZmlsZXN5c3RlbTZ1OHBhdGhJ
UEtjRUVOU185ZW5hYmxlX2lmSVhzcjEzX19pc19wYXRoYWJsZUlUX0VFNXZhbHVlRU5TMV80cGF0
aEVFNHR5cGVFUktTNl8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCxfX1pOS1N0M19fMTRfX2ZzMTBm
aWxlc3lzdGVtMThkaXJlY3RvcnlfaXRlcmF0b3JwdEV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2ws
X19aTlN0M19fMTRfX2ZzMTBmaWxlc3lzdGVtMThkaXJlY3RvcnlfaXRlcmF0b3I5aW5jcmVtZW50
RVJOU18xMGVycm9yX2NvZGVFOwogCi1PVEhFUl9MREZMQUdTX0JBU0UgPSAkKE9USEVSX0xERkxB
R1NfSElERV9TWU1CT0xTKSAtZm9yY2VfbG9hZCAiJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL2xpYldURi5hIjsKKy8vIE5lZWRlZCBieSBgU291cmNl
L1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbWAuCitXS19JTlRFUk5BVElPTkFMX1NVUFBP
UlRfTERGTEFHUyA9IC1mcmFtZXdvcmsgSW50ZXJuYXRpb25hbFN1cHBvcnQ7CisKK09USEVSX0xE
RkxBR1NfQkFTRSA9ICQoT1RIRVJfTERGTEFHU19ISURFX1NZTUJPTFMpIC1pZnJhbWV3b3JrICQo
U0RLX0RJUikkKFNZU1RFTV9MSUJSQVJZX0RJUikvUHJpdmF0ZUZyYW1ld29ya3MgLWZvcmNlX2xv
YWQgIiQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9s
aWJXVEYuYSIgJChXS19JTlRFUk5BVElPTkFMX1NVUFBPUlRfTERGTEFHUyk7CiBPVEhFUl9MREZM
QUdTW3Nkaz1lbWJlZGRlZCpdID0gJChpbmhlcml0ZWQpICQoT1RIRVJfTERGTEFHU19CQVNFKTsK
IE9USEVSX0xERkxBR1Nbc2RrPW1hY29zeCpdID0gJChpbmhlcml0ZWQpICQoT1RIRVJfTERGTEFH
U19CQVNFKSAtZnJhbWV3b3JrIENvcmVTZXJ2aWNlczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3NoZWxsL3BsYXlzdGF0aW9uL1Rlc3RTaGVsbC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvc2hlbGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcAppbmRleCAyNzgyZmRh
MDg5ODY1ZGNmMGUyZjdjMWRiMjkzMzE1MTI4OTRkZTQ5Li4zMWZlYWY3ZWM1OGY3OTVmOGMzZGJi
NzdkOWY5NTdjMzNmNjJmYzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hl
bGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
c2hlbGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcApAQCAtNjIsNyArNjIsNyBAQCBleHRlcm4g
IkMiIHZvaWQgcHJlVGVzdCgpCiAgICAgSlNDOjpPcHRpb25zOjpuYW1lXygpID0gb3JpZyMjbmFt
ZV87CiAgICAgRk9SX0VBQ0hfSlNDX09QVElPTihJTklUX09QVElPTikKICN1bmRlZiBJTklUX09Q
VElPTgotICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhwbGF0Zm9ybVVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMoKSk7CisgICAgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHsg
fSk7CiB9CiAKIGV4dGVybiAiQyIgaW50IHJ1blRlc3QoaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L0xhbmd1YWdlLmNwcAppbmRleCBlNzgxNGQ3NGU5NmI2NDRjOWZlM2Y3ZTExN2YxYjVjZmMxZWU2
ZGE1Li5kNzUxMTg4ZGUyOTA0Y2I2YTQ0YTY3OTBhMmMyNWRhYzBlNDg3NTQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTGFuZ3Vh
Z2UuY3BwCkBAIC0zNyw2ICszNywxOCBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAorc3RhdGljIExv
Y2sgY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrOworc3RhdGljIFZlY3RvcjxT
dHJpbmc+JiBjYWNoZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKSBXVEZfUkVRVUlS
RVNfTE9DSyhjYWNoZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc0xvY2spCit7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBsYW5ndWFnZXM7CisgICAgcmV0dXJu
IGxhbmd1YWdlczsKK30KK3N0YXRpYyBWZWN0b3I8U3RyaW5nPiYgY2FjaGVkTWluaW1pemVkUGxh
dGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKSBXVEZfUkVRVUlSRVNfTE9DSyhjYWNoZWRQbGF0Zm9y
bVByZWZlcnJlZExhbmd1YWdlc0xvY2spCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZl
Y3RvcjxTdHJpbmc+PiBsYW5ndWFnZXM7CisgICAgcmV0dXJuIGxhbmd1YWdlczsKK30KKwogc3Rh
dGljIExvY2sgcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVMb2NrOwogc3RhdGljIFZlY3RvcjxT
dHJpbmc+JiBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpIFdURl9SRVFVSVJFU19MT0NLKHBy
ZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlTG9jaykKIHsKQEAgLTY4LDE2ICs4MCwyMSBAQCB2b2lk
IHJlbW92ZUxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCkKIAogdm9pZCBsYW5n
dWFnZURpZENoYW5nZSgpCiB7Ci0gICAgcGxhdGZvcm1MYW5ndWFnZURpZENoYW5nZSgpOworICAg
IHsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IGNhY2hlZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3Vh
Z2VzTG9jayB9OworICAgICAgICBjYWNoZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMo
KS5jbGVhcigpOworICAgICAgICBjYWNoZWRNaW5pbWl6ZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1
YWdlcygpLmNsZWFyKCk7CisgICAgfQorCiAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IGNvcHlU
b1ZlY3RvcihvYnNlcnZlck1hcCgpKSkgewogICAgICAgICBpZiAob2JzZXJ2ZXJNYXAoKS5jb250
YWlucyhvYnNlcnZlci5rZXkpKQogICAgICAgICAgICAgb2JzZXJ2ZXIudmFsdWUob2JzZXJ2ZXIu
a2V5KTsKICAgICB9CiB9CiAKLVN0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoKQorU3RyaW5nIGRlZmF1
bHRMYW5ndWFnZShTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyBzaG91bGRNaW5pbWl6ZUxhbmd1YWdl
cykKIHsKLSAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzKCk7CisgICAgYXV0byBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHNob3Vs
ZE1pbmltaXplTGFuZ3VhZ2VzKTsKICAgICBpZiAobGFuZ3VhZ2VzLnNpemUoKSkKICAgICAgICAg
cmV0dXJuIGxhbmd1YWdlc1swXTsKIApAQCAtMTA4LDcgKzEyNSw3IEBAIHN0YXRpYyBWZWN0b3I8
U3RyaW5nPiBpc29sYXRlZENvcHkoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmluZ3MpCiAgICAg
cmV0dXJuIGNvcHk7CiB9CiAKLVZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMo
KQorVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxh
bmd1YWdlcyBzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcykKIHsKICAgICB7CiAgICAgICAgIExvY2tl
ciBsb2NrZXIgeyBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUxvY2sgfTsKQEAgLTExNyw3ICsx
MzQsMTEgQEAgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpCiAgICAgICAg
ICAgICByZXR1cm4gaXNvbGF0ZWRDb3B5KG92ZXJyaWRlKTsKICAgICB9CiAKLSAgICByZXR1cm4g
cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgTG9ja2VyIGxvY2tlciB7IGNh
Y2hlZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzTG9jayB9OworICAgIGF1dG8mIGxhbmd1YWdl
cyA9IHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID09IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZ
ZXMgPyBjYWNoZWRNaW5pbWl6ZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpIDogY2FjaGVk
RnVsbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgaWYgKGxhbmd1YWdlcy5pc0Vt
cHR5KCkpCisgICAgICAgIGxhbmd1YWdlcyA9IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cyhzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyk7CisgICAgcmV0dXJuIGlzb2xhdGVkQ29weShsYW5n
dWFnZXMpOwogfQogCiBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmd1YWdlSWRlbnRpZmllcihj
b25zdCBTdHJpbmcmIGxhbmd1YWdlQ29kZSkKQEAgLTE4NCwxMCArMjA1LDQgQEAgU3RyaW5nIGRp
c3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJiBsb2NhbGVOYW1lKQogICAg
IHJldHVybiBsb2NhbGVOYW1lOwogfQogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQotdm9pZCBwbGF0
Zm9ybUxhbmd1YWdlRGlkQ2hhbmdlKCkKLXsKLX0KLSNlbmRpZgotCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oIGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaAppbmRl
eCBmMDc0ZDc1NjhkMDAyZTkzMmE1MzI2YmRiNTJkN2ZiOGMwNjU4MTgzLi4yYjUwMTIzMTdkZWVk
ZjA1YzM4Y2M0OWYxYWMxZDVjOTRkOWZhYWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9M
YW5ndWFnZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmgKQEAgLTM1LDEzICszNSwx
MyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyBkZWZh
dWx0TGFuZ3VhZ2UoKTsgLy8gVGhyZWFkLXNhZmUuCi1XVEZfRVhQT1JUX1BSSVZBVEUgVmVjdG9y
PFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOyAvLyBUaHJlYWQtc2FmZSwgcmV0dXJu
cyBCQ1AgNDcgbGFuZ3VhZ2UgdGFncy4KK2VudW0gY2xhc3MgU2hvdWxkTWluaW1pemVMYW5ndWFn
ZXMgeyBObywgWWVzIH07CisKK1dURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgZGVmYXVsdExhbmd1
YWdlKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Olll
cyk7IC8vIFRocmVhZC1zYWZlLgorV1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgPSBTaG91bGRNaW5p
bWl6ZUxhbmd1YWdlczo6WWVzKTsgLy8gVGhyZWFkLXNhZmUsIHJldHVybnMgQkNQIDQ3IGxhbmd1
YWdlIHRhZ3MuCiBXVEZfRVhQT1JUX1BSSVZBVEUgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJl
ZExhbmd1YWdlc092ZXJyaWRlKCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBvdmVycmlkZVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKIFdURl9FWFBPUlRf
UFJJVkFURSBzaXplX3QgaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdlSW5MaXN0KGNvbnN0IFN0
cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZUxpc3QsIGJvb2wm
IGV4YWN0TWF0Y2gpOwotV1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlcygpOwotV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcGxhdGZv
cm1MYW5ndWFnZURpZENoYW5nZSgpOwogCiAvLyBDYWxsZWQgZnJvbSBwbGF0Zm9ybSBzcGVjaWZp
YyBjb2RlIHdoZW4gdGhlIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2UocykgY2hhbmdlLgogV1RG
X0VYUE9SVF9QUklWQVRFIHZvaWQgbGFuZ3VhZ2VEaWRDaGFuZ2UoKTsKQEAgLTUyLDIwICs1Miwy
MiBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZv
aWQqIGNvbnRleHQsIExhbmd1YWdlQ2hhbmdlTwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVt
b3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0KTsKIFdURl9FWFBPUlRfUFJJ
VkFURSBTdHJpbmcgZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShjb25zdCBTdHJpbmcmKTsK
IAorVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzID0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Olllcyk7CisKICNpZiBQ
TEFURk9STShDT0NPQSkKIGJvb2wgY2FuTWluaW1pemVMYW5ndWFnZXMoKTsKIFdURl9FWFBPUlRf
UFJJVkFURSB2b2lkIGxpc3RlbkZvckxhbmd1YWdlQ2hhbmdlTm90aWZpY2F0aW9ucygpOwogUmV0
YWluUHRyPENGQXJyYXlSZWY+IG1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFnZXMoQ0ZBcnJh
eVJlZik7CiAjZW5kaWYKIAotfQorfSAvLyBuYW1lc3BhY2UgV1RGCiAKK3VzaW5nIFdURjo6U2hv
dWxkTWluaW1pemVMYW5ndWFnZXM7CiB1c2luZyBXVEY6OmRlZmF1bHRMYW5ndWFnZTsKIHVzaW5n
IFdURjo6dXNlclByZWZlcnJlZExhbmd1YWdlczsKIHVzaW5nIFdURjo6dXNlclByZWZlcnJlZExh
bmd1YWdlc092ZXJyaWRlOwogdXNpbmcgV1RGOjpvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXM7CiB1c2luZyBXVEY6OmluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdDsKLXVzaW5n
IFdURjo6cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwogdXNpbmcgV1RGOjphZGRMYW5n
dWFnZUNoYW5nZU9ic2VydmVyOwogdXNpbmcgV1RGOjpyZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2Vy
dmVyOwogdXNpbmcgV1RGOjpkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9M
YW5ndWFnZUNGLmNwcAppbmRleCA5MWNkOTFhMmYwYzExNGY2NjcxYmI4MjQxOTQyYmI3MDNiYWU3
NDc4Li4zOWVhYzQyMTgwYWY5ZGEzOWFkYmViNmQ2MzI4YzRmYTA3YzcxZDkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9j
Zi9MYW5ndWFnZUNGLmNwcApAQCAtMzAsMTYgKzMwLDEyIEBACiAjaW5jbHVkZSA8bXV0ZXg+CiAj
aW5jbHVkZSA8dW5pY29kZS91bG9jLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNp
bmNsdWRlIDx3dGYvTG9jay5oPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvc3BpL2NmL0NGQnVuZGxlU1BJ
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXVEYgewog
Ci1zdGF0aWMgTG9jayBwcmVmZXJyZWRMYW5ndWFnZXNMb2NrOwotCiAjaWYgUExBVEZPUk0oTUFD
KQogc3RhdGljIHZvaWQgbGFuZ3VhZ2VQcmVmZXJlbmNlc0RpZENoYW5nZShDRk5vdGlmaWNhdGlv
bkNlbnRlclJlZiwgdm9pZCosIENGU3RyaW5nUmVmLCBjb25zdCB2b2lkKiwgQ0ZEaWN0aW9uYXJ5
UmVmKQogewpAQCAtNDcsMjEgKzQzLDExIEBAIHN0YXRpYyB2b2lkIGxhbmd1YWdlUHJlZmVyZW5j
ZXNEaWRDaGFuZ2UoQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQqLCBDRlN0cmluCiB9CiAj
ZW5kaWYKIAotc3RhdGljIFZlY3RvcjxTdHJpbmc+JiBwcmVmZXJyZWRMYW5ndWFnZXMoKSBXVEZf
UkVRVUlSRVNfTE9DSyhwcmVmZXJyZWRMYW5ndWFnZXNMb2NrKQotewotICAgIHN0YXRpYyBMYXp5
TmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+IGxhbmd1YWdlczsKLSAgICBzdGF0aWMgc3Rk
OjpvbmNlX2ZsYWcgb25jZUtleTsKLSAgICBzdGQ6OmNhbGxfb25jZShvbmNlS2V5LCBbJl0gewot
ICAgICAgICBsYW5ndWFnZXMuY29uc3RydWN0KCk7Ci0gICAgfSk7Ci0gICAgcmV0dXJuIGxhbmd1
YWdlczsKLX0KLQotc3RhdGljIFN0cmluZyBodHRwU3R5bGVMYW5ndWFnZUNvZGUoQ0ZTdHJpbmdS
ZWYgbGFuZ3VhZ2UpCitzdGF0aWMgU3RyaW5nIGh0dHBTdHlsZUxhbmd1YWdlQ29kZShDRlN0cmlu
Z1JlZiBsYW5ndWFnZSwgU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgc2hvdWxkTWluaW1pemVMYW5n
dWFnZXMpCiB7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBwcmVmZXJyZWRMYW5ndWFnZUNv
ZGU7CiAgICAgLy8gSWYgd2UgY2FuIG1pbmltaXplIHRoZSBsYW5ndWFnZSBsaXN0IHRvIHJlZHVj
ZSBmaW5nZXJwcmludGluZywgd2UgY2FuIGFmZm9yZCB0byBiZSBtb3JlIGxvc3NsZXNzIHdoZW4g
Y2Fub25pY2FsaXppbmcgdGhlIGxvY2FsZSBsaXN0LgotICAgIGlmIChjYW5NaW5pbWl6ZUxhbmd1
YWdlcygpKQorICAgIGlmIChzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9PSBTaG91bGRNaW5pbWl6
ZUxhbmd1YWdlczo6Tm8gfHwgY2FuTWluaW1pemVMYW5ndWFnZXMoKSkKICAgICAgICAgcHJlZmVy
cmVkTGFuZ3VhZ2VDb2RlID0gYWRvcHRDRihDRkxvY2FsZUNyZWF0ZUNhbm9uaWNhbExhbmd1YWdl
SWRlbnRpZmllckZyb21TdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbGFuZ3VhZ2UpKTsKICAg
ICBlbHNlIHsKICAgICAgICAgU0ludDMyIGxhbmd1YWdlQ29kZTsKQEAgLTg4LDE0ICs3NCw2IEBA
IHN0YXRpYyBTdHJpbmcgaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKENGU3RyaW5nUmVmIGxhbmd1YWdl
KQogICAgIHJldHVybiBtdXRhYmxlTGFuZ3VhZ2VDb2RlLmdldCgpOwogfQogCi12b2lkIHBsYXRm
b3JtTGFuZ3VhZ2VEaWRDaGFuZ2UoKQotewotICAgIHsKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7
IHByZWZlcnJlZExhbmd1YWdlc0xvY2sgfTsKLSAgICAgICAgcHJlZmVycmVkTGFuZ3VhZ2VzKCku
Y2xlYXIoKTsKLSAgICB9Ci19Ci0KIHZvaWQgbGlzdGVuRm9yTGFuZ3VhZ2VDaGFuZ2VOb3RpZmlj
YXRpb25zKCkKIHsKICNpZiBQTEFURk9STShNQUMpCkBAIC0xMDYsMzIgKzg0LDIzIEBAIHZvaWQg
bGlzdGVuRm9yTGFuZ3VhZ2VDaGFuZ2VOb3RpZmljYXRpb25zKCkKICNlbmRpZgogfQogCi1WZWN0
b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9yPFN0cmlu
Zz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2Vz
IHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewotICAgIExvY2tlciBsb2NrZXIgeyBwcmVmZXJy
ZWRMYW5ndWFnZXNMb2NrIH07Ci0gICAgVmVjdG9yPFN0cmluZz4mIHVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMgPSBwcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBhdXRvIHBsYXRmb3JtTGFuZ3VhZ2Vz
ID0gYWRvcHRDRihDRkxvY2FsZUNvcHlQcmVmZXJyZWRMYW5ndWFnZXMoKSk7CiAKLSAgICBpZiAo
dXNlclByZWZlcnJlZExhbmd1YWdlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmV0YWluUHRyPENG
QXJyYXlSZWY+IGxhbmd1YWdlcyA9IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5UHJlZmVycmVkTGFuZ3Vh
Z2VzKCkpOwotICAgICAgICBsYW5ndWFnZXMgPSBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3Vh
Z2VzKGxhbmd1YWdlcy5nZXQoKSk7Ci0gICAgICAgIENGSW5kZXggbGFuZ3VhZ2VDb3VudCA9IENG
QXJyYXlHZXRDb3VudChsYW5ndWFnZXMuZ2V0KCkpOwotICAgICAgICBpZiAoIWxhbmd1YWdlQ291
bnQpCi0gICAgICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZCgiZW4iKTsKLSAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBsYW5ndWFn
ZUNvdW50OyBpKyspCi0gICAgICAgICAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBl
bmQoaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5
R2V0VmFsdWVBdEluZGV4KGxhbmd1YWdlcy5nZXQoKSwgaSkpKSk7Ci0gICAgICAgIH0KKyAgICBp
ZiAoc2hvdWxkTWluaW1pemVMYW5ndWFnZXMgPT0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Olll
cykKKyAgICAgICAgcGxhdGZvcm1MYW5ndWFnZXMgPSBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFu
Z3VhZ2VzKHBsYXRmb3JtTGFuZ3VhZ2VzLmdldCgpKTsKKworICAgIENGSW5kZXggcGxhdGZvcm1M
YW5ndWFnZXNDb3VudCA9IENGQXJyYXlHZXRDb3VudChwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSk7
CisgICAgaWYgKCFwbGF0Zm9ybUxhbmd1YWdlc0NvdW50KQorICAgICAgICByZXR1cm4geyAiZW4i
X3MgfTsKKworICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlczsKKyAgICBmb3IgKENGSW5kZXgg
aSA9IDA7IGkgPCBwbGF0Zm9ybUxhbmd1YWdlc0NvdW50OyBpKyspIHsKKyAgICAgICAgYXV0byBw
bGF0Zm9ybUxhbmd1YWdlID0gc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGQXJyYXlHZXRWYWx1
ZUF0SW5kZXgocGxhdGZvcm1MYW5ndWFnZXMuZ2V0KCksIGkpKTsKKyAgICAgICAgbGFuZ3VhZ2Vz
LmFwcGVuZChodHRwU3R5bGVMYW5ndWFnZUNvZGUocGxhdGZvcm1MYW5ndWFnZSwgc2hvdWxkTWlu
aW1pemVMYW5ndWFnZXMpKTsKICAgICB9Ci0KLSAgICBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzQ29weTsKLSAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weS5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuc2l6ZSgpKTsKLQotICAgIGZv
ciAoYXV0byYgbGFuZ3VhZ2UgOiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKQotICAgICAgICB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzQ29weS51bmNoZWNrZWRBcHBlbmQobGFuZ3VhZ2UuaXNvbGF0ZWRD
b3B5KCkpOwotCi0gICAgcmV0dXJuIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5OwotCi0gICAg
cmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7CisgICAgcmV0dXJuIGxhbmd1YWdlczsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFn
ZUNvY29hLm1tIGIvU291cmNlL1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbQppbmRleCA1
YmFiN2M3YjI2N2MwYWRkMjU1YjJmZTY3NjJlZTY0MGUwNTg4OTkzLi5jZGYwYTgxYWZiOWFmZDAw
NjZmNDhhMTgxMTIzMjUyY2JlMDAwNjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2Nv
YS9MYW5ndWFnZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29j
b2EubW0KQEAgLTUwLDYgKzUwLDggQEAgYm9vbCBjYW5NaW5pbWl6ZUxhbmd1YWdlcygpCiAKIFJl
dGFpblB0cjxDRkFycmF5UmVmPiBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzKENGQXJy
YXlSZWYgbGFuZ3VhZ2VzKQogeworICAgIC8vIFRoaXMgcmVxdWlyZXMgbGlua2luZyBgSW50ZXJu
YXRpb25hbFN1cHBvcnRgLgorCiAgICAgaWYgKCFjYW5NaW5pbWl6ZUxhbmd1YWdlcygpKQogICAg
ICAgICByZXR1cm4gbGFuZ3VhZ2VzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9wbGF5
c3RhdGlvbi9MYW5ndWFnZVBsYXlTdGF0aW9uLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0
aW9uL0xhbmd1YWdlUGxheVN0YXRpb24uY3BwCmluZGV4IGQ0NTM3YTY5NDBiNWUwMjJiZjVlNWNk
ZjcxYTg2M2QzMzA5ZGY2MWMuLmNhZjE1NDlmODAwMmMxMzdlMmYxYTA2MjI4MTgxNTRmNTYyNTRl
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0aW9uL0xhbmd1YWdlUGxheVN0
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0aW9uL0xhbmd1YWdlUGxheVN0
YXRpb24uY3BwCkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1WZWN0b3I8
U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9yPFN0cmluZz4g
cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQog
ewogICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdW5peC9MYW5ndWFnZVVuaXguY3BwIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFn
ZVVuaXguY3BwCmluZGV4IDMxYzc1NzQ3MmVlYWI2NDA3MjZlOTRjNWM1NzUwNzE4ZmEzOTM4ZDEu
LmFmOTRiYjA2Y2MzOGRkMmE4NTk1YmZiYjc3MTY5MGY5MmRiNDhhZTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91
bml4L0xhbmd1YWdlVW5peC5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgc3RhdGljIFN0cmluZyBwbGF0
Zm9ybUxhbmd1YWdlKCkKICAgICByZXR1cm4gbm9ybWFsaXplZERlZmF1bHQ7CiB9CiAKLVZlY3Rv
cjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCitWZWN0b3I8U3RyaW5n
PiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMp
CiB7CiAgICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgpIH07CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL0xh
bmd1YWdlV2luLmNwcAppbmRleCA2YjUyYzljMjBkMTVjYmE3ZTM5ZDU0MjAxMWI0MzhhMzgzNThj
MmIyLi5iZjk2YjBhNTVjODg5OTMxYzRjMmQ1MzMxN2U4YzVlMDE3ZTJhYTEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3dpbi9MYW5ndWFnZVdpbi5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIFN0cmluZyBwbGF0
Zm9ybUxhbmd1YWdlKCkKICAgICByZXR1cm4gY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2U7CiB9CiAK
LVZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCitWZWN0b3I8
U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5n
dWFnZXMpCiB7CiAgICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgpIH07CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCBhYjAzYmRi
NDNjNmYzYTNmMTViYTk1ZThkMmJiMzFlN2JjYTFlNTM5Li44MTE0MTkwYjQzZWM1OTYyZDFiZmU3
MmNiOGI5MTEyMGZjZDcyNWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0
aG9kVGFibGUgSlNET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewog
ICAgICZyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50U2Ny
aXB0RXhlY3V0aW9uT3duZXIsCiAgICAgJnNjcmlwdEV4ZWN1dGlvblN0YXR1cywKLSAgICAmZGVm
YXVsdExhbmd1YWdlLAorICAgIFtdIHsgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZSgpOyB9LAogI2lm
IEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAmY29tcGlsZVN0cmVhbWluZywKICAgICAmaW5zdGFu
dGlhdGVTdHJlYW1pbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNDgzOTk3MDhlZTAzNGJjNThhYzM4MmYz
Y2FjOTdmOTE2Nzc4MmZiOC4uOTIxMjVlNTZkNjk5NWQ0NjAwZGNkOGZjYjdiNDIzYmE1OGJiNDgz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxT
Y29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xv
YmFsU2NvcGVCYXNlLmNwcApAQCAtNjEsNyArNjEsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRo
b2RUYWJsZSBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJs
ZQogICAgICZyZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50
U2NyaXB0RXhlY3V0aW9uT3duZXIsCiAgICAgJnNjcmlwdEV4ZWN1dGlvblN0YXR1cywKLSAgICAm
ZGVmYXVsdExhbmd1YWdlLAorICAgIFtdIHsgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZSgpOyB9LAog
I2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAmY29tcGlsZVN0cmVhbWluZywKICAgICAmaW5z
dGFudGlhdGVTdHJlYW1pbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcAppbmRleCA0MjFlNzQ0ZjMzMDdhYmQ5OWIx
ZTVjMmQ1ZDdmMTNlMzNiMzhlOTAxLi40MjAyNzJhMWQwYjc1Y2E2OTVhNjZmMTI0NmU0NzQ1OTZk
NWE0ZTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRH
bG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29y
a2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgY29uc3QgR2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUgSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1l
dGhvZFRhYmwKICAgICAmcmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKICAgICAm
Y3VycmVudFNjcmlwdEV4ZWN1dGlvbk93bmVyLAogICAgICZzY3JpcHRFeGVjdXRpb25TdGF0dXMs
Ci0gICAgJmRlZmF1bHRMYW5ndWFnZSwKKyAgICBbXSB7IHJldHVybiBkZWZhdWx0TGFuZ3VhZ2Uo
KTsgfSwKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgJmNvbXBpbGVTdHJlYW1pbmcsCiAg
ICAgJmluc3RhbnRpYXRlU3RyZWFtaW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZW4u
bHByb2ovTG9jYWxpemFibGUuc3RyaW5ncyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2Fs
aXphYmxlLnN0cmluZ3MKaW5kZXggNWQwODliMmYyZjVjODIxOTdjMTdkNGQyZDIxNTE0OWYzNGFj
ZTNmZC4uM2Q1YWE2MjY1MTlmOTYxNDI2NWVhMjliYzU4ZjliYmZlNjBkMzNhNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCkBAIC0yMDgsNiArMjA4LDkg
QEAKIC8qIExhYmVsIGZvciB0aGUgYnV5IHdpdGggQXBwbGUgUGF5IGJ1dHRvbi4gKi8KICJCdXkg
d2l0aCBBcHBsZSBQYXkiID0gIkJ1eSB3aXRoIEFwcGxlIFBheSI7CiAKKy8qIERpc3BsYXkgbmFt
ZSBmb3IgY2xvc2VkIGNhcHRpb25zIHRleHQgdHJhY2tzIHRoYXQgaXMgdXNlZCB0byBzZWUgaWYg
dGhlIEhUTUwgJ2xhYmVsJyBhbHJlYWR5IGNvbnRhaW5zICdDQycuICovCisiQ0MiID0gIkNDIjsK
KwogLyogQ2FuY2VsICovCiAiQ2FuY2VsIiA9ICJDYW5jZWwiOwogCkBAIC0yMjAsMTIgKzIyMywx
OCBAQAogLyogQ2FwaXRhbGl6ZSBjb250ZXh0IG1lbnUgaXRlbSAqLwogIkNhcGl0YWxpemUiID0g
IkNhcGl0YWxpemUiOwogCisvKiBEaXNwbGF5IG5hbWUgZm9yIHRleHQgdHJhY2sga2luZCAnY2Fw
dGlvbnMnIHRoYXQgaXMgdXNlZCB0byBzZWUgaWYgdGhlIEhUTUwgJ2xhYmVsJyBhbHJlYWR5IGNv
bnRhaW5zICdDYXB0aW9ucycuICovCisiQ2FwdGlvbnMiID0gIkNhcHRpb25zIjsKKwogLyogVW5k
byBhY3Rpb24gbmFtZSAqLwogIkNlbnRlciAoVW5kbyBhY3Rpb24gbmFtZSkiID0gIkNlbnRlciI7
CiAKIC8qIFVuZG8gYWN0aW9uIG5hbWUgKi8KICJDaGFuZ2UgQXR0cmlidXRlcyAoVW5kbyBhY3Rp
b24gbmFtZSkiID0gIkNoYW5nZSBBdHRyaWJ1dGVzIjsKIAorLyogRGlzcGxheSBuYW1lIGZvciB0
ZXh0IHRyYWNrIGtpbmQgJ2NoYXB0ZXJzJyB0aGF0IGlzIHVzZWQgdG8gc2VlIGlmIHRoZSBIVE1M
ICdsYWJlbCcgYWxyZWFkeSBjb250YWlucyAnQ2hhcHRlcnMnLiAqLworIkNoYXB0ZXJzIiA9ICJD
aGFwdGVycyI7CisKIC8qIENoZWNrIHNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtICovCiAiQ2hl
Y2sgRG9jdW1lbnQgTm93IiA9ICJDaGVjayBEb2N1bWVudCBOb3ciOwogCkBAIC0zMjUsNiArMzM0
LDkgQEAKIC8qIFVuZG8gYWN0aW9uIG5hbWUgKi8KICJEZWxldGUgKFVuZG8gYWN0aW9uIG5hbWUp
IiA9ICJEZWxldGUiOwogCisvKiBEaXNwbGF5IG5hbWUgZm9yIHRleHQgdHJhY2sga2luZCAnZGVz
Y3JpcHRpb25zJyB0aGF0IGlzIHVzZWQgdG8gc2VlIGlmIHRoZSBIVE1MICdsYWJlbCcgYWxyZWFk
eSBjb250YWlucyAnRGVzY3JpcHRpb25zJy4gKi8KKyJEZXNjcmlwdGlvbnMiID0gIkRlc2NyaXB0
aW9ucyI7CisKIC8qIHRleHQgdG8gZGlzcGxheSBpbiA8ZGV0YWlscz4gdGFnIHdoZW4gaXQgaGFz
IG5vIDxzdW1tYXJ5PiBjaGlsZCAqLwogIkRldGFpbHMiID0gIkRldGFpbHMiOwogCkBAIC0zNzAs
NiArMzgyLDkgQEAKIC8qIFVuZG8gYWN0aW9uIG5hbWUgKi8KICJEcmFnIChVbmRvIGFjdGlvbiBu
YW1lKSIgPSAiRHJhZyI7CiAKKy8qIERpc3BsYXkgbmFtZSBmb3IgZWFzeSByZWFkZXIgdGV4dCB0
cmFja3MgdGhhdCBpcyB1c2VkIHRvIHNlZSBpZiB0aGUgSFRNTCAnbGFiZWwnIGFscmVhZHkgY29u
dGFpbnMgJ0Vhc3kgUmVhZGVyJy4gKi8KKyJFYXN5IFJlYWRlciIgPSAiRWFzeSBSZWFkZXIiOwor
CiAvKiBWaWRlbyBFbnRlciBGdWxsIFNjcmVlbiBjb250ZXh0IG1lbnUgaXRlbSAqLwogIkVudGVy
IEZ1bGwgU2NyZWVuIiA9ICJFbnRlciBGdWxsIFNjcmVlbiI7CiAKQEAgLTQxNSw2ICs0MzAsOSBA
QAogLyogRm9udCBjb250ZXh0IHN1Yi1tZW51IGl0ZW0gKi8KICJGb250IiA9ICJGb250IjsKIAor
LyogRGlzcGxheSBuYW1lIGZvciB0ZXh0IHRyYWNrIGtpbmQgJ2ZvcmNlZCcgdGhhdCBpcyB1c2Vk
IHRvIHNlZSBpZiB0aGUgSFRNTCAnbGFiZWwnIGFscmVhZHkgY29udGFpbnMgJ0ZvcmNlZCcuICov
CisiRm9yY2VkIiA9ICJGb3JjZWQiOworCiAvKiBVbmRvIGFjdGlvbiBuYW1lICovCiAiRm9ybWF0
IEJsb2NrIChVbmRvIGFjdGlvbiBuYW1lKSIgPSAiRm9ybWF0dGluZyI7CiAKQEAgLTU3NCw2ICs1
OTIsOSBAQAogLyogTWFsd2FyZSBjb25maXJtYXRpb24gZGlhbG9nICovCiAiTWVyZWx5IHZpc2l0
aW5nIGEgc2l0ZSBpcyBzdWZmaWNpZW50IGZvciBtYWx3YXJlIHRvIGluc3RhbGwgaXRzZWxmIGFu
ZCBoYXJtIHlvdXIgY29tcHV0ZXIuIiA9ICJNZXJlbHkgdmlzaXRpbmcgYSBzaXRlIGlzIHN1ZmZp
Y2llbnQgZm9yIG1hbHdhcmUgdG8gaW5zdGFsbCBpdHNlbGYgYW5kIGhhcm0geW91ciBjb21wdXRl
ci4iOwogCisvKiBEaXNwbGF5IG5hbWUgZm9yIHRleHQgdHJhY2sga2luZCAnbWV0YWRhdGEnIHRo
YXQgaXMgdXNlZCB0byBzZWUgaWYgdGhlIEhUTUwgJ2xhYmVsJyBhbHJlYWR5IGNvbnRhaW5zICdN
ZXRhZGF0YScuICovCisiTWV0YWRhdGEiID0gIk1ldGFkYXRhIjsKKwogLyogTGFiZWwgdGV4dCB0
byBiZSB1c2VkIHdoZW4gYSBwbHVnaW4gaXMgbWlzc2luZyAqLwogIk1pc3NpbmcgUGx1Zy1pbiIg
PSAiTWlzc2luZyBQbHVnLWluIjsKIApAQCAtNzI0LDYgKzc0NSw5IEBACiAvKiBSaWdodCB0byBM
ZWZ0IGNvbnRleHQgbWVudSBpdGVtICovCiAiUmlnaHQgdG8gTGVmdCIgPSAiUmlnaHQgdG8gTGVm
dCI7CiAKKy8qIERpc3BsYXkgbmFtZSBmb3IgZGVhZiBhbmQgaGFyZCBvZiBoZWFyaW5nIHN1YnRp
dGxlIHRleHQgdHJhY2tzIHRoYXQgaXMgdXNlZCB0byBzZWUgaWYgdGhlIEhUTUwgJ2xhYmVsJyBh
bHJlYWR5IGNvbnRhaW5zICdTREgnLiAqLworIlNESCIgPSAiU0RIIjsKKwogLyogVGl0bGUgb2Yg
dGhlIFNlYXJjaCBidXR0b24gZm9yIHpvb21lZCBmb3JtIGNvbnRyb2xzLiAqLwogIlNlYXJjaCIg
PSAiU2VhcmNoIjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNl
clByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJl
bmNlcy5jcHAKaW5kZXggZDNlNDVlOGJiNGM3ZDIwMGNkM2E0YTIxMjgyMGRlNGVkZmNkMWJmOC4u
NTVmYTA5NjRjN2ZkOTg4NjM1ZWYzMzI1Y2JkYWJmMGUyMTM0NDg0YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCkBAIC0xNzAsNyArMTcwLDcg
QEAgdm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2Vk
KCkKIAogVmVjdG9yPFN0cmluZz4gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVycmVkTGFu
Z3VhZ2VzKCkgY29uc3QKIHsKLSAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzID0gdXNlclBy
ZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6Tm8pOwogICAgIGlmICht
X3Rlc3RpbmdNb2RlICYmICFtX3VzZXJQcmVmZXJyZWRMYW5ndWFnZS5pc0VtcHR5KCkpCiAgICAg
ICAgIGxhbmd1YWdlcy5pbnNlcnQoMCwgbV91c2VyUHJlZmVycmVkTGFuZ3VhZ2UpOwogCkBAIC0z
NDEsNyArMzQxLDcgQEAgaW50IENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnRleHRUcmFja1NlbGVj
dGlvblNjb3JlKFRleHRUcmFjayogdHJhY2ssIEhUTUxNZWRpYUUKICAgICAgICAgICAgIGlmIChv
ZmZzZXQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBsYW5ndWFnZUxpc3QuYXBwZW5kKGRlZmF1bHRMYW5ndWFnZSgpKTsKKyAgICAgICAg
ICAgIGxhbmd1YWdlTGlzdC5hcHBlbmQoZGVmYXVsdExhbmd1YWdlKFNob3VsZE1pbmltaXplTGFu
Z3VhZ2VzOjpObykpOwogCiAgICAgICAgICAgICAvLyBPbmx5IGVuYWJsZSBhIHRleHQgdHJhY2sg
aWYgdGhlIGN1cnJlbnQgYXVkaW8gdHJhY2sgaXMgTk9UIGluIHRoZSB1c2VyJ3MgcHJlZmVycmVk
IGxhbmd1YWdlIC4uLgogICAgICAgICAgICAgc2l6ZV90IG9mZnNldCA9IGluZGV4T2ZCZXN0TWF0
Y2hpbmdMYW5ndWFnZUluTGlzdChhdWRpb1RyYWNrTGFuZ3VhZ2UsIGxhbmd1YWdlTGlzdCwgZXhh
Y3RNYXRjaCk7CkBAIC00MTgsNyArNDE4LDcgQEAgU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5j
ZXM6OnByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZSgpIGNvbnN0CiB7CiAgICAgaWYg
KCFtX3ByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZS5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybiBtX3ByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZTsKLSAgICByZXR1cm4g
ZGVmYXVsdExhbmd1YWdlKCk7CisgICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZShTaG91bGRNaW5p
bWl6ZUxhbmd1YWdlczo6Tm8pOwogfQogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAppbmRleCBjZjJlMWJlYTI1
YjBmMDc5OTg2MzkyMDU5NDVkZjBlZWY5MmQzYzQyLi44OTI2MTY4OGI3ZTM4MjNlYjY1NmQxMzUx
MTdiYWFlOWMwNDMxMGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25V
c2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRp
b25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcApAQCAtNDcxLDM2ICs0NzEsMjAgQEAgdm9pZCBD
YXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6c2V0UHJlZmVycmVkTGFuZ3VhZ2UoY29uc3Qg
U3RyaW5nJiBsYW5ndWFnZSkKIAogVmVjdG9yPFN0cmluZz4gQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01lZGlhQUY6OnByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0CiB7Ci0gICAgaWYgKHRlc3RpbmdN
b2RlKCkgfHwgIU1lZGlhQWNjZXNzaWJpbGl0eUxpYnJhcnkoKSkKLSAgICAgICAgcmV0dXJuIENh
cHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByZWZlcnJlZExhbmd1YWdlcygpOwotCi0gICAgVmVjdG9y
PFN0cmluZz4gcGxhdGZvcm1MYW5ndWFnZXMgPSBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXMoKTsKLSAgICBWZWN0b3I8U3RyaW5nPiBvdmVycmlkZSA9IHVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXNPdmVycmlkZSgpOwotICAgIGlmICghb3ZlcnJpZGUuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGlm
IChwbGF0Zm9ybUxhbmd1YWdlcy5zaXplKCkgIT0gb3ZlcnJpZGUuc2l6ZSgpKQotICAgICAgICAg
ICAgcmV0dXJuIG92ZXJyaWRlOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG92ZXJy
aWRlLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgICAgICBpZiAob3ZlcnJpZGVbaV0gIT0gcGxhdGZv
cm1MYW5ndWFnZXNbaV0pCi0gICAgICAgICAgICAgICAgcmV0dXJuIG92ZXJyaWRlOworICAgIGF1
dG8gcHJlZmVycmVkTGFuZ3VhZ2VzID0gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVycmVk
TGFuZ3VhZ2VzKCk7CisgICAgaWYgKCF0ZXN0aW5nTW9kZSgpICYmIE1lZGlhQWNjZXNzaWJpbGl0
eUxpYnJhcnkoKSkgeworICAgICAgICBhdXRvIGNhcHRpb25MYW5ndWFnZXMgPSBhZG9wdENGKE1B
Q2FwdGlvbkFwcGVhcmFuY2VDb3B5U2VsZWN0ZWRMYW5ndWFnZXMoa01BQ2FwdGlvbkFwcGVhcmFu
Y2VEb21haW5Vc2VyKSk7CisgICAgICAgIENGSW5kZXggY2FwdGlvbkxhbmd1YWdlc0NvdW50ID0g
Y2FwdGlvbkxhbmd1YWdlcyA/IENGQXJyYXlHZXRDb3VudChjYXB0aW9uTGFuZ3VhZ2VzLmdldCgp
KSA6IDA7CisgICAgICAgIGlmIChjYXB0aW9uTGFuZ3VhZ2VzQ291bnQpIHsKKyAgICAgICAgICAg
IFZlY3RvcjxTdHJpbmc+IHRlbXA7CisgICAgICAgICAgICB0ZW1wLnJlc2VydmVJbml0aWFsQ2Fw
YWNpdHkoY2FwdGlvbkxhbmd1YWdlc0NvdW50ICsgcHJlZmVycmVkTGFuZ3VhZ2VzLnNpemUoKSk7
CisgICAgICAgICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBjYXB0aW9uTGFuZ3VhZ2VzQ291
bnQ7IGkrKykKKyAgICAgICAgICAgICAgICB0ZW1wLnVuY2hlY2tlZEFwcGVuZChzdGF0aWNfY2Fz
dDxDRlN0cmluZ1JlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChjYXB0aW9uTGFuZ3VhZ2VzLmdl
dCgpLCBpKSkpOworICAgICAgICAgICAgdGVtcC5hcHBlbmRWZWN0b3IoV1RGTW92ZShwcmVmZXJy
ZWRMYW5ndWFnZXMpKTsKKyAgICAgICAgICAgIHByZWZlcnJlZExhbmd1YWdlcyA9IFdURk1vdmUo
dGVtcCk7CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICBDRkluZGV4IGxhbmd1YWdlQ291bnQgPSAw
OwotICAgIFJldGFpblB0cjxDRkFycmF5UmVmPiBsYW5ndWFnZXMgPSBhZG9wdENGKE1BQ2FwdGlv
bkFwcGVhcmFuY2VDb3B5U2VsZWN0ZWRMYW5ndWFnZXMoa01BQ2FwdGlvbkFwcGVhcmFuY2VEb21h
aW5Vc2VyKSk7Ci0gICAgaWYgKGxhbmd1YWdlcykKLSAgICAgICAgbGFuZ3VhZ2VDb3VudCA9IENG
QXJyYXlHZXRDb3VudChsYW5ndWFnZXMuZ2V0KCkpOwotCi0gICAgaWYgKCFsYW5ndWFnZUNvdW50
KQotICAgICAgICByZXR1cm4gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVycmVkTGFuZ3Vh
Z2VzKCk7Ci0KLSAgICBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwotICAg
IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMucmVzZXJ2ZUNhcGFjaXR5KGxhbmd1YWdlQ291bnQgKyBw
bGF0Zm9ybUxhbmd1YWdlcy5zaXplKCkpOwotICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGxh
bmd1YWdlQ291bnQ7IGkrKykKLSAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBlbmQo
c3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgobGFuZ3VhZ2Vz
LmdldCgpLCBpKSkpOwotCi0gICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBlbmRWZWN0b3Io
cGxhdGZvcm1MYW5ndWFnZXMpOwotCi0gICAgcmV0dXJuIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7
CisgICAgcmV0dXJuIHByZWZlcnJlZExhbmd1YWdlczsKIH0KIAogdm9pZCBDYXB0aW9uVXNlclBy
ZWZlcmVuY2VzTWVkaWFBRjo6c2V0UHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpYyhjb25zdCBT
dHJpbmcmIGNoYXJhY3RlcmlzdGljKQpAQCAtNTc5LDEzICs1NjMsMTggQEAgc3RhdGljIHZvaWQg
YnVpbGREaXNwbGF5U3RyaW5nRm9yVHJhY2tCYXNlKFN0cmluZ0J1aWxkZXImIGRpc3BsYXlOYW1l
LCBjb25zdCBUcmEKICAgICBTdHJpbmcgbGFiZWwgPSB0cmFjay5sYWJlbCgpOwogICAgIFN0cmlu
ZyB0cmFja0xhbmd1YWdlSWRlbnRpZmllciA9IHRyYWNrLnZhbGlkQkNQNDdMYW5ndWFnZSgpOwog
Ci0gICAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBjdXJyZW50TG9jYWxlID0gYWRvcHRDRihDRkxv
Y2FsZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkZWZhdWx0TGFuZ3VhZ2UoKS5jcmVhdGVD
RlN0cmluZygpLmdldCgpKSk7CisgICAgYXV0byBwcmVmZXJyZWRMYW5ndWFnZXMgPSB1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObyk7CisgICAgYXV0byBk
ZWZhdWx0TGFuZ3VhZ2UgPSAhcHJlZmVycmVkTGFuZ3VhZ2VzLmlzRW1wdHkoKSA/IHByZWZlcnJl
ZExhbmd1YWdlc1swXSA6IGVtcHR5U3RyaW5nKCk7IC8vIFRoaXMgbWF0Y2hlcyBgV1RGOjpkZWZh
dWx0TGFuZ3VhZ2VgLgorICAgIFJldGFpblB0cjxDRkxvY2FsZVJlZj4gY3VycmVudExvY2FsZSA9
IGFkb3B0Q0YoQ0ZMb2NhbGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGVmYXVsdExhbmd1
YWdlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+
IGxvY2FsZUlkZW50aWZpZXIgPSBhZG9wdENGKENGTG9jYWxlQ3JlYXRlQ2Fub25pY2FsTG9jYWxl
SWRlbnRpZmllckZyb21TdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgdHJhY2tMYW5ndWFnZUlk
ZW50aWZpZXIuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOwogICAgIFJldGFpblB0cjxDRlN0cmlu
Z1JlZj4gbGFuZ3VhZ2VDRiA9IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5RGlzcGxheU5hbWVGb3JQcm9w
ZXJ0eVZhbHVlKGN1cnJlbnRMb2NhbGUuZ2V0KCksIGtDRkxvY2FsZUxhbmd1YWdlQ29kZSwgbG9j
YWxlSWRlbnRpZmllci5nZXQoKSkpOwogICAgIFN0cmluZyBsYW5ndWFnZSA9IGxhbmd1YWdlQ0Yu
Z2V0KCk7CiAKICAgICBpZiAoIWxhYmVsLmlzRW1wdHkoKSkgewotICAgICAgICBpZiAobGFuZ3Vh
Z2UuaXNFbXB0eSgpIHx8IGxhYmVsLmNvbnRhaW5zKGxhbmd1YWdlKSkKKyAgICAgICAgLy8gQWRk
IHRoZSBsYW5ndWFnZSBuYW1lIGFuZC9vciBjb3VudHJ5IG5hbWUgaWYgdGhlIHRoZSB0cmFjayBp
c24ndCBpbiB0aGUgZGVmYXVsdCBsYW5ndWFnZSBvciB0aGUgZXhpc3RpbmcgbGFiZWwgZG9lc24n
dCBhbHJlYWR5IGNvbnRhaW4gdGhlIGxhbmd1YWdlIG5hbWUuCisgICAgICAgIGJvb2wgZXhhY3RN
YXRjaDsKKyAgICAgICAgYm9vbCBtYXRjaGVzRGVmYXVsdExhbmd1YWdlID0gIWluZGV4T2ZCZXN0
TWF0Y2hpbmdMYW5ndWFnZUluTGlzdCh0cmFja0xhbmd1YWdlSWRlbnRpZmllciwgeyBkZWZhdWx0
TGFuZ3VhZ2UgfSwgZXhhY3RNYXRjaCk7CisgICAgICAgIGlmIChtYXRjaGVzRGVmYXVsdExhbmd1
YWdlIHx8IGxhbmd1YWdlLmlzRW1wdHkoKSB8fCBsYWJlbC5jb250YWlucyhsYW5ndWFnZSkpCiAg
ICAgICAgICAgICBkaXNwbGF5TmFtZS5hcHBlbmQobGFiZWwpOwogICAgICAgICBlbHNlIHsKICAg
ICAgICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGxvY2FsZURpY3QgPSBhZG9wdENG
KENGTG9jYWxlQ3JlYXRlQ29tcG9uZW50c0Zyb21Mb2NhbGVJZGVudGlmaWVyKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIGxvY2FsZUlkZW50aWZpZXIuZ2V0KCkpKTsKQEAgLTYwOCw0MyArNTk3LDExIEBA
IHN0YXRpYyB2b2lkIGJ1aWxkRGlzcGxheVN0cmluZ0ZvclRyYWNrQmFzZShTdHJpbmdCdWlsZGVy
JiBkaXNwbGF5TmFtZSwgY29uc3QgVHJhCiAgICAgfSBlbHNlIHsKICAgICAgICAgU3RyaW5nIGxh
bmd1YWdlQW5kTG9jYWxlID0gYWRvcHRDRihDRkxvY2FsZUNvcHlEaXNwbGF5TmFtZUZvclByb3Bl
cnR5VmFsdWUoY3VycmVudExvY2FsZS5nZXQoKSwga0NGTG9jYWxlSWRlbnRpZmllciwgdHJhY2tM
YW5ndWFnZUlkZW50aWZpZXIuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpLmdldCgpOwogICAgICAg
ICBpZiAoIWxhbmd1YWdlQW5kTG9jYWxlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGxhYmVsID0g
bGFuZ3VhZ2VBbmRMb2NhbGU7CisgICAgICAgICAgICBkaXNwbGF5TmFtZS5hcHBlbmQobGFuZ3Vh
Z2VBbmRMb2NhbGUpOwogICAgICAgICBlbHNlIGlmICghbGFuZ3VhZ2UuaXNFbXB0eSgpKQotICAg
ICAgICAgICAgbGFiZWwgPSBsYW5ndWFnZTsKKyAgICAgICAgICAgIGRpc3BsYXlOYW1lLmFwcGVu
ZChsYW5ndWFnZSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGxhYmVsID0gbG9jYWxlSWRl
bnRpZmllci5nZXQoKTsKLQotICAgICAgICBpZiAodHJhY2sudHlwZSgpID09IFRyYWNrQmFzZTo6
VGV4dFRyYWNrKSB7Ci0gICAgICAgICAgICBhdXRvJiB0ZXh0VHJhY2sgPSBkb3duY2FzdDxUZXh0
VHJhY2s+KHRyYWNrKTsKLSAgICAgICAgICAgIHN3aXRjaCAodGV4dFRyYWNrLmtpbmQoKSkgewot
ICAgICAgICAgICAgY2FzZSBUZXh0VHJhY2s6OktpbmQ6OlN1YnRpdGxlczoKLSAgICAgICAgICAg
ICAgICAvLyBTdWJ0aXRsZSB0ZXh0IHRyYWNrcyBhcmUgb25seSBzaG93biBpbiBhIGRlZGljYXRl
ZCAiU3VidGl0bGUiIGdyb3VwaW5nLCBtZWFuaW5nCi0gICAgICAgICAgICAgICAgLy8gaXQgd291
bGQgbG9vayBvZGQgdG8gYWRkIHRoZSBzYW1lIHRpdGxlIGFzIGEgc3VmZml4IChlLmcuICJFbmds
aXNoIFN1YnRpdGxlcyIpLgotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBj
YXNlIFRleHRUcmFjazo6S2luZDo6Q2FwdGlvbnM6Ci0gICAgICAgICAgICAgICAgbGFiZWwgPSBj
YXB0aW9uc1RleHRUcmFja1dpdGhvdXRMYWJlbE1lbnVJdGVtVGV4dChsYWJlbCk7Ci0gICAgICAg
ICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGNhc2UgVGV4dFRyYWNrOjpLaW5kOjpEZXNj
cmlwdGlvbnM6Ci0gICAgICAgICAgICAgICAgbGFiZWwgPSBkZXNjcmlwdGlvbnNUZXh0VHJhY2tX
aXRob3V0TGFiZWxNZW51SXRlbVRleHQobGFiZWwpOwotICAgICAgICAgICAgICAgIGJyZWFrOwot
Ci0gICAgICAgICAgICBjYXNlIFRleHRUcmFjazo6S2luZDo6Q2hhcHRlcnM6Ci0gICAgICAgICAg
ICAgICAgbGFiZWwgPSBjaGFwdGVyc1RleHRUcmFja1dpdGhvdXRMYWJlbE1lbnVJdGVtVGV4dChs
YWJlbCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGNhc2UgVGV4dFRy
YWNrOjpLaW5kOjpNZXRhZGF0YToKLSAgICAgICAgICAgICAgICBsYWJlbCA9IG1ldGFkYXRhVGV4
dFRyYWNrV2l0aG91dExhYmVsTWVudUl0ZW1UZXh0KGxhYmVsKTsKLSAgICAgICAgICAgICAgICBi
cmVhazsKLQotICAgICAgICAgICAgY2FzZSBUZXh0VHJhY2s6OktpbmQ6OkZvcmNlZDoKLSAgICAg
ICAgICAgICAgICBsYWJlbCA9IGZvcmNlZFRyYWNrTWVudUl0ZW1UZXh0KGxhYmVsKTsKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGRp
c3BsYXlOYW1lLmFwcGVuZChsYWJlbCk7CisgICAgICAgICAgICBkaXNwbGF5TmFtZS5hcHBlbmQo
bG9jYWxlSWRlbnRpZmllci5nZXQoKSk7CiAgICAgfQogfQogCkBAIC02ODMsMjIgKzY0MCw1NCBA
QCBzdGF0aWMgU3RyaW5nIHRyYWNrRGlzcGxheU5hbWUoVGV4dFRyYWNrKiB0cmFjaykKICAgICBT
dHJpbmcgZGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUJ1aWxkZXIudG9TdHJpbmcoKTsKIAogICAg
IGlmICh0cmFjay0+aXNDbG9zZWRDYXB0aW9ucygpKSB7Ci0gICAgICAgIGRpc3BsYXlOYW1lID0g
Y2xvc2VkQ2FwdGlvblRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKLSAgICAgICAgaWYg
KHRyYWNrLT5pc0Vhc3lUb1JlYWQoKSkKKyAgICAgICAgaWYgKCFkaXNwbGF5TmFtZS5jb250YWlu
cyhjbG9zZWRDYXB0aW9uS2luZFRyYWNrRGlzcGxheU5hbWUoKSkpCisgICAgICAgICAgICBkaXNw
bGF5TmFtZSA9IGNsb3NlZENhcHRpb25UcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7Cisg
ICAgICAgIGlmICh0cmFjay0+aXNFYXN5VG9SZWFkKCkgJiYgIWRpc3BsYXlOYW1lLmNvbnRhaW5z
KGVhc3lSZWFkZXJLaW5kRGlzcGxheU5hbWUoKSkpCiAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9
IGVhc3lSZWFkZXJUcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7CiAKICAgICAgICAgcmV0
dXJuIGRpc3BsYXlOYW1lOwogICAgIH0KIAotICAgIGlmICh0cmFjay0+aXNTREgoKSkKKyAgICBz
d2l0Y2ggKHRyYWNrLT5raW5kKCkpIHsKKyAgICBjYXNlIFRleHRUcmFjazo6S2luZDo6U3VidGl0
bGVzOgorICAgICAgICAvLyBTdWJ0aXRsZSB0ZXh0IHRyYWNrcyBhcmUgb25seSBzaG93biBpbiBh
IGRlZGljYXRlZCAiU3VidGl0bGUiIGdyb3VwaW5nLCBtZWFuaW5nCisgICAgICAgIC8vIGl0IHdv
dWxkIGxvb2sgb2RkIHRvIGFkZCB0aGUgc2FtZSB0aXRsZSBhcyBhIHN1ZmZpeCAoZS5nLiAiRW5n
bGlzaCBTdWJ0aXRsZXMiKS4KKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFRleHRUcmFjazo6
S2luZDo6Q2FwdGlvbnM6CisgICAgICAgIGlmICghZGlzcGxheU5hbWUuY29udGFpbnMoY2FwdGlv
bnNUZXh0VHJhY2tLaW5kRGlzcGxheU5hbWUoKSkpCisgICAgICAgICAgICBkaXNwbGF5TmFtZSA9
IGNhcHRpb25zVGV4dFRyYWNrV2l0aG91dExhYmVsTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsK
KyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFRleHRUcmFjazo6S2luZDo6RGVzY3JpcHRpb25z
OgorICAgICAgICBpZiAoIWRpc3BsYXlOYW1lLmNvbnRhaW5zKGRlc2NyaXB0aW9uc1RleHRUcmFj
a0tpbmREaXNwbGF5TmFtZSgpKSkKKyAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gZGVzY3JpcHRp
b25zVGV4dFRyYWNrV2l0aG91dExhYmVsTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKKyAgICAg
ICAgYnJlYWs7CisKKyAgICBjYXNlIFRleHRUcmFjazo6S2luZDo6Q2hhcHRlcnM6CisgICAgICAg
IGlmICghZGlzcGxheU5hbWUuY29udGFpbnMoY2hhcHRlcnNUZXh0VHJhY2tLaW5kRGlzcGxheU5h
bWUoKSkpCisgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IGNoYXB0ZXJzVGV4dFRyYWNrV2l0aG91
dExhYmVsTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBj
YXNlIFRleHRUcmFjazo6S2luZDo6TWV0YWRhdGE6CisgICAgICAgIGlmICghZGlzcGxheU5hbWUu
Y29udGFpbnMobWV0YWRhdGFUZXh0VHJhY2tLaW5kRGlzcGxheU5hbWUoKSkpCisgICAgICAgICAg
ICBkaXNwbGF5TmFtZSA9IG1ldGFkYXRhVGV4dFRyYWNrV2l0aG91dExhYmVsTWVudUl0ZW1UZXh0
KGRpc3BsYXlOYW1lKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFRleHRUcmFjazo6S2lu
ZDo6Rm9yY2VkOgorICAgICAgICAvLyBIYW5kbGVkIGJlbG93LgorICAgICAgICBicmVhazsKKyAg
ICB9CisKKyAgICBpZiAodHJhY2stPmlzU0RIKCkgJiYgIWRpc3BsYXlOYW1lLmNvbnRhaW5zKHNk
aFRyYWNrS2luZERpc3BsYXlOYW1lKCkpKQogICAgICAgICBkaXNwbGF5TmFtZSA9IHNkaFRyYWNr
TWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKIAotICAgIGlmICh0cmFjay0+Y29udGFpbnNPbmx5
Rm9yY2VkU3VidGl0bGVzKCkpCi0gICAgICAgIGRpc3BsYXlOYW1lID0gZm9yY2VkVHJhY2tNZW51
SXRlbVRleHQoZGlzcGxheU5hbWUpOwotCi0gICAgaWYgKHRyYWNrLT5pc0Vhc3lUb1JlYWQoKSkK
KyAgICBpZiAodHJhY2stPmlzRWFzeVRvUmVhZCgpICYmICFkaXNwbGF5TmFtZS5jb250YWlucyhl
YXN5UmVhZGVyS2luZERpc3BsYXlOYW1lKCkpKQogICAgICAgICBkaXNwbGF5TmFtZSA9IGVhc3lS
ZWFkZXJUcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7CiAKKyAgICBpZiAoKHRyYWNrLT5j
b250YWluc09ubHlGb3JjZWRTdWJ0aXRsZXMoKSB8fCB0cmFjay0+a2luZCgpID09IFRleHRUcmFj
azo6S2luZDo6Rm9yY2VkKSAmJiAhZGlzcGxheU5hbWUuY29udGFpbnMoZm9yY2VkVHJhY2tLaW5k
RGlzcGxheU5hbWUoKSkpCisgICAgICAgIGRpc3BsYXlOYW1lID0gZm9yY2VkVHJhY2tNZW51SXRl
bVRleHQoZGlzcGxheU5hbWUpOworCiAgICAgcmV0dXJuIGRpc3BsYXlOYW1lOwogfQogCkBAIC03
MDksMTYgKzY5OCwyMiBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OmRp
c3BsYXlOYW1lRm9yVHJhY2soVGV4dFRyYWNrKiB0cmFjaykgY29ucwogCiBzdGF0aWMgYm9vbCB0
ZXh0VHJhY2tDb21wYXJlKGNvbnN0IFJlZlB0cjxUZXh0VHJhY2s+JiBhLCBjb25zdCBSZWZQdHI8
VGV4dFRyYWNrPiYgYikKIHsKLSAgICBTdHJpbmcgcHJlZmVycmVkTGFuZ3VhZ2VEaXNwbGF5TmFt
ZSA9IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUobGFuZ3VhZ2VJZGVudGlmaWVyKGRlZmF1
bHRMYW5ndWFnZSgpKSk7CisgICAgYXV0byBwcmVmZXJyZWRMYW5ndWFnZXMgPSB1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObyk7CisKKyAgICBib29sIGFF
eGFjdE1hdGNoOworICAgIGF1dG8gYVVzZXJMYW5ndWFnZUluZGV4ID0gaW5kZXhPZkJlc3RNYXRj
aGluZ0xhbmd1YWdlSW5MaXN0KGEtPnZhbGlkQkNQNDdMYW5ndWFnZSgpLCBwcmVmZXJyZWRMYW5n
dWFnZXMsIGFFeGFjdE1hdGNoKTsKKworICAgIGJvb2wgYkV4YWN0TWF0Y2g7CisgICAgYXV0byBi
VXNlckxhbmd1YWdlSW5kZXggPSBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QoYi0+
dmFsaWRCQ1A0N0xhbmd1YWdlKCksIHByZWZlcnJlZExhbmd1YWdlcywgYkV4YWN0TWF0Y2gpOwor
CisgICAgaWYgKGFVc2VyTGFuZ3VhZ2VJbmRleCAhPSBiVXNlckxhbmd1YWdlSW5kZXgpCisgICAg
ICAgIHJldHVybiBhVXNlckxhbmd1YWdlSW5kZXggPCBiVXNlckxhbmd1YWdlSW5kZXg7CisgICAg
aWYgKGFFeGFjdE1hdGNoICE9IGJFeGFjdE1hdGNoKQorICAgICAgICByZXR1cm4gYUV4YWN0TWF0
Y2g7CisKICAgICBTdHJpbmcgYUxhbmd1YWdlRGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUZvckxh
bmd1YWdlTG9jYWxlKGxhbmd1YWdlSWRlbnRpZmllcihhLT52YWxpZEJDUDQ3TGFuZ3VhZ2UoKSkp
OwogICAgIFN0cmluZyBiTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lRm9yTGFuZ3Vh
Z2VMb2NhbGUobGFuZ3VhZ2VJZGVudGlmaWVyKGItPnZhbGlkQkNQNDdMYW5ndWFnZSgpKSk7CiAK
LSAgICAvLyBUcmFja3MgaW4gdGhlIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2UgYXJlIGFsd2F5
cyBhdCB0aGUgdG9wIG9mIHRoZSBtZW51LgotICAgIGJvb2wgYUlzUHJlZmVycmVkTGFuZ3VhZ2Ug
PSBhTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9PSBwcmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lOwot
ICAgIGJvb2wgYklzUHJlZmVycmVkTGFuZ3VhZ2UgPSBiTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9PSBw
cmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lOwotICAgIGlmIChhSXNQcmVmZXJyZWRMYW5ndWFn
ZSAhPSBiSXNQcmVmZXJyZWRMYW5ndWFnZSkKLSAgICAgICAgcmV0dXJuIGFJc1ByZWZlcnJlZExh
bmd1YWdlOwotCiAgICAgQ29sbGF0b3IgY29sbGF0b3I7CiAKICAgICAvLyBUcmFja3Mgbm90IGlu
IHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlIHNvcnQgZmlyc3QgYnkgbGFuZ3VhZ2UgLi4u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IGIw
YTkzZjI2MjM3ZWIxNGFhYmU1MWJmZGM4ZmZkMDQ3N2M1MzQ2YjkuLmU5YTUyMDE0MGUxNDU5YTc4
MTllZDA1MjljYWM0MDZlZmYxZjNhMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Y2FsaXplZFN0cmluZ3MuY3BwCkBAIC0xMTEwLDIxICsxMTEwLDQxIEBAIFN0cmluZyBhdWRpb1Ry
YWNrTm9MYWJlbFRleHQoKQogCiAjaWYgVVNFKENGKQogCitTdHJpbmcgY2FwdGlvbnNUZXh0VHJh
Y2tLaW5kRGlzcGxheU5hbWUoKQoreworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmco
V0VCX1VJX0NGU1RSSU5HKCJDYXB0aW9ucyIsICJEaXNwbGF5IG5hbWUgZm9yIHRleHQgdHJhY2sg
a2luZCAnY2FwdGlvbnMnIHRoYXQgaXMgdXNlZCB0byBzZWUgaWYgdGhlIEhUTUwgJ2xhYmVsJyBh
bHJlYWR5IGNvbnRhaW5zICdDYXB0aW9ucycuIikpOworfQorCiBTdHJpbmcgY2FwdGlvbnNUZXh0
VHJhY2tXaXRob3V0TGFiZWxNZW51SXRlbVRleHQoY29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKICAg
ICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9DRlNUUklORygiJUAgQ2FwdGlv
bnMiLCAiQ2FwdGlvbnMgdGV4dCB0cmFjayBkaXNwbGF5IG5hbWUgZm9ybWF0IHRoYXQgaW5jbHVk
ZXMgdGhlIGxhbmd1YWdlIGFuZC9vciBsb2NhbGUgKGUuZy4gJ0VuZ2xpc2ggQ2FwdGlvbnMnKS4i
KSwgdGl0bGUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CiB9CiAKK1N0cmluZyBkZXNjcmlwdGlv
bnNUZXh0VHJhY2tLaW5kRGlzcGxheU5hbWUoKQoreworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6
ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCJEZXNjcmlwdGlvbnMiLCAiRGlzcGxheSBuYW1lIGZv
ciB0ZXh0IHRyYWNrIGtpbmQgJ2Rlc2NyaXB0aW9ucycgdGhhdCBpcyB1c2VkIHRvIHNlZSBpZiB0
aGUgSFRNTCAnbGFiZWwnIGFscmVhZHkgY29udGFpbnMgJ0Rlc2NyaXB0aW9ucycuIikpOworfQor
CiBTdHJpbmcgZGVzY3JpcHRpb25zVGV4dFRyYWNrV2l0aG91dExhYmVsTWVudUl0ZW1UZXh0KGNv
bnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhX
RUJfVUlfQ0ZTVFJJTkcoIiVAIERlc2NyaXB0aW9ucyIsICJEZXNjcmlwdGlvbnMgdGV4dCB0cmFj
ayBkaXNwbGF5IG5hbWUgZm9ybWF0IHRoYXQgaW5jbHVkZXMgdGhlIGxhbmd1YWdlIGFuZC9vciBs
b2NhbGUgKGUuZy4gJ0VuZ2xpc2ggRGVzY3JpcHRpb25zJykuIiksIHRpdGxlLmNyZWF0ZUNGU3Ry
aW5nKCkuZ2V0KCkpOwogfQogCitTdHJpbmcgY2hhcHRlcnNUZXh0VHJhY2tLaW5kRGlzcGxheU5h
bWUoKQoreworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5H
KCJDaGFwdGVycyIsICJEaXNwbGF5IG5hbWUgZm9yIHRleHQgdHJhY2sga2luZCAnY2hhcHRlcnMn
IHRoYXQgaXMgdXNlZCB0byBzZWUgaWYgdGhlIEhUTUwgJ2xhYmVsJyBhbHJlYWR5IGNvbnRhaW5z
ICdDaGFwdGVycycuIikpOworfQorCiBTdHJpbmcgY2hhcHRlcnNUZXh0VHJhY2tXaXRob3V0TGFi
ZWxNZW51SXRlbVRleHQoY29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKICAgICByZXR1cm4gZm9ybWF0
TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9DRlNUUklORygiJUAgQ2hhcHRlcnMiLCAiQ2hhcHRlcnMg
dGV4dCB0cmFjayBkaXNwbGF5IG5hbWUgZm9ybWF0IHRoYXQgaW5jbHVkZXMgdGhlIGxhbmd1YWdl
IGFuZC9vciBsb2NhbGUgKGUuZy4gJ0VuZ2xpc2ggQ2hhcHRlcnMnKS4iKSwgdGl0bGUuY3JlYXRl
Q0ZTdHJpbmcoKS5nZXQoKSk7CiB9CiAKK1N0cmluZyBtZXRhZGF0YVRleHRUcmFja0tpbmREaXNw
bGF5TmFtZSgpCit7CisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfQ0ZT
VFJJTkcoIk1ldGFkYXRhIiwgIkRpc3BsYXkgbmFtZSBmb3IgdGV4dCB0cmFjayBraW5kICdtZXRh
ZGF0YScgdGhhdCBpcyB1c2VkIHRvIHNlZSBpZiB0aGUgSFRNTCAnbGFiZWwnIGFscmVhZHkgY29u
dGFpbnMgJ01ldGFkYXRhJy4iKSk7Cit9CisKIFN0cmluZyBtZXRhZGF0YVRleHRUcmFja1dpdGhv
dXRMYWJlbE1lbnVJdGVtVGV4dChjb25zdCBTdHJpbmcmIHRpdGxlKQogewogICAgIHJldHVybiBm
b3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCIlQCBNZXRhZGF0YSIsICJNZXRh
ZGF0YSB0ZXh0IHRyYWNrIGRpc3BsYXkgbmFtZSBmb3JtYXQgdGhhdCBpbmNsdWRlcyB0aGUgbGFu
Z3VhZ2UgYW5kL29yIGxvY2FsZSAoZS5nLiAnRW5nbGlzaCBNZXRhZGF0cycpLiIpLCB0aXRsZS5j
cmVhdGVDRlN0cmluZygpLmdldCgpKTsKQEAgLTExNDAsMjEgKzExNjAsNDEgQEAgU3RyaW5nIHRl
eHRUcmFja0xhbmd1YWdlTWVudUl0ZW1UZXh0KGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0
cmluZyYgbGFuZ3VhZ2UKICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9D
RlNUUklORygiJUAgKCVAKSIsICJUZXh0IHRyYWNrIGRpc3BsYXkgbmFtZSBmb3JtYXQgdGhhdCBp
bmNsdWRlcyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHN1YnRpdGxlLCBpbiB0aGUgZm9ybSBvZiAnVGl0
bGUgKExhbmd1YWdlKSciKSwgdGl0bGUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgbGFuZ3VhZ2Uu
Y3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CiB9CiAKK1N0cmluZyBjbG9zZWRDYXB0aW9uS2luZFRy
YWNrRGlzcGxheU5hbWUoKQoreworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VC
X1VJX0NGU1RSSU5HKCJDQyIsICJEaXNwbGF5IG5hbWUgZm9yIGNsb3NlZCBjYXB0aW9ucyB0ZXh0
IHRyYWNrcyB0aGF0IGlzIHVzZWQgdG8gc2VlIGlmIHRoZSBIVE1MICdsYWJlbCcgYWxyZWFkeSBj
b250YWlucyAnQ0MnLiIpKTsKK30KKwogU3RyaW5nIGNsb3NlZENhcHRpb25UcmFja01lbnVJdGVt
VGV4dChjb25zdCBTdHJpbmcmIHRpdGxlKQogewogICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRT
dHJpbmcoV0VCX1VJX0NGU1RSSU5HKCIlQCBDQyIsICJUZXh0IHRyYWNrIGNvbnRhaW5zIGNsb3Nl
ZCBjYXB0aW9ucyIpLCB0aXRsZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKIH0KIAorU3RyaW5n
IHNkaFRyYWNrS2luZERpc3BsYXlOYW1lKCkKK3sKKyAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVk
U3RyaW5nKFdFQl9VSV9DRlNUUklORygiU0RIIiwgIkRpc3BsYXkgbmFtZSBmb3IgZGVhZiBhbmQg
aGFyZCBvZiBoZWFyaW5nIHN1YnRpdGxlIHRleHQgdHJhY2tzIHRoYXQgaXMgdXNlZCB0byBzZWUg
aWYgdGhlIEhUTUwgJ2xhYmVsJyBhbHJlYWR5IGNvbnRhaW5zICdTREgnLiIpKTsKK30KKwogU3Ry
aW5nIHNkaFRyYWNrTWVudUl0ZW1UZXh0KGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgcmV0
dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfQ0ZTVFJJTkcoIiVAIFNESCIsICJUZXh0
IHRyYWNrIGNvbnRhaW5zIHN1YnRpdGxlcyBmb3IgdGhlIGRlYWYgYW5kIGhhcmQgb2YgaGVhcmlu
ZyIpLCB0aXRsZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKIH0KIAorU3RyaW5nIGVhc3lSZWFk
ZXJLaW5kRGlzcGxheU5hbWUoKQoreworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmco
V0VCX1VJX0NGU1RSSU5HKCJFYXN5IFJlYWRlciIsICJEaXNwbGF5IG5hbWUgZm9yIGVhc3kgcmVh
ZGVyIHRleHQgdHJhY2tzIHRoYXQgaXMgdXNlZCB0byBzZWUgaWYgdGhlIEhUTUwgJ2xhYmVsJyBh
bHJlYWR5IGNvbnRhaW5zICdFYXN5IFJlYWRlcicuIikpOworfQorCiBTdHJpbmcgZWFzeVJlYWRl
clRyYWNrTWVudUl0ZW1UZXh0KGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgcmV0dXJuIGZv
cm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfQ0ZTVFJJTkcoIiVAIEVhc3kgUmVhZGVyIiwgIlRl
eHQgdHJhY2sgY29udGFpbnMgc2ltcGxpZmllZCAoM3JkIGdyYWRlIGxldmVsKSBzdWJ0aXRsZXMi
KSwgdGl0bGUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CiB9CiAKK1N0cmluZyBmb3JjZWRUcmFj
a0tpbmREaXNwbGF5TmFtZSgpCit7CisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhX
RUJfVUlfQ0ZTVFJJTkcoIkZvcmNlZCIsICJEaXNwbGF5IG5hbWUgZm9yIHRleHQgdHJhY2sga2lu
ZCAnZm9yY2VkJyB0aGF0IGlzIHVzZWQgdG8gc2VlIGlmIHRoZSBIVE1MICdsYWJlbCcgYWxyZWFk
eSBjb250YWlucyAnRm9yY2VkJy4iKSk7Cit9CisKIFN0cmluZyBmb3JjZWRUcmFja01lbnVJdGVt
VGV4dChjb25zdCBTdHJpbmcmIHRpdGxlKQogewogICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRT
dHJpbmcoV0VCX1VJX0NGU1RSSU5HKCIlQCBGb3JjZWQiLCAiVGV4dCB0cmFjayBjb250YWlucyBm
b3JjZWQgc3VidGl0bGVzIiksIHRpdGxlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCmluZGV4IGI4YTJjZTg4M2RlY2E5
NjNlZTYxM2I4N2M5OTgzNTQ4YmFlNzgwZTkuLmM3Yjg2ZWE1NzM2NmJiZDM4OWU4ZWZkYmQwY2My
OTQwNDkwYjBkMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdz
LmgKQEAgLTMwNSwxNSArMzA1LDIzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBTdHJpbmcg
dGV4dFRyYWNrTm9MYWJlbFRleHQoKTsKICAgICBTdHJpbmcgYXVkaW9UcmFja05vTGFiZWxUZXh0
KCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikKKyAgICBTdHJpbmcgY2Fw
dGlvbnNUZXh0VHJhY2tLaW5kRGlzcGxheU5hbWUoKTsKICAgICBTdHJpbmcgY2FwdGlvbnNUZXh0
VHJhY2tXaXRob3V0TGFiZWxNZW51SXRlbVRleHQoY29uc3QgU3RyaW5nJik7CisgICAgU3RyaW5n
IGRlc2NyaXB0aW9uc1RleHRUcmFja0tpbmREaXNwbGF5TmFtZSgpOwogICAgIFN0cmluZyBkZXNj
cmlwdGlvbnNUZXh0VHJhY2tXaXRob3V0TGFiZWxNZW51SXRlbVRleHQoY29uc3QgU3RyaW5nJik7
CisgICAgU3RyaW5nIGNoYXB0ZXJzVGV4dFRyYWNrS2luZERpc3BsYXlOYW1lKCk7CiAgICAgU3Ry
aW5nIGNoYXB0ZXJzVGV4dFRyYWNrV2l0aG91dExhYmVsTWVudUl0ZW1UZXh0KGNvbnN0IFN0cmlu
ZyYpOworICAgIFN0cmluZyBtZXRhZGF0YVRleHRUcmFja0tpbmREaXNwbGF5TmFtZSgpOwogICAg
IFN0cmluZyBtZXRhZGF0YVRleHRUcmFja1dpdGhvdXRMYWJlbE1lbnVJdGVtVGV4dChjb25zdCBT
dHJpbmcmKTsKICAgICBTdHJpbmcgdGV4dFRyYWNrQ291bnRyeUFuZExhbmd1YWdlTWVudUl0ZW1U
ZXh0KGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgY291bnRyeSwgY29uc3QgU3Ry
aW5nJiBsYW5ndWFnZSk7CiAgICAgU3RyaW5nIHRleHRUcmFja0xhbmd1YWdlTWVudUl0ZW1UZXh0
KGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpOworICAgIFN0cmlu
ZyBjbG9zZWRDYXB0aW9uS2luZFRyYWNrRGlzcGxheU5hbWUoKTsKICAgICBTdHJpbmcgY2xvc2Vk
Q2FwdGlvblRyYWNrTWVudUl0ZW1UZXh0KGNvbnN0IFN0cmluZyYpOworICAgIFN0cmluZyBzZGhU
cmFja0tpbmREaXNwbGF5TmFtZSgpOwogICAgIFN0cmluZyBzZGhUcmFja01lbnVJdGVtVGV4dChj
b25zdCBTdHJpbmcmKTsKKyAgICBTdHJpbmcgZWFzeVJlYWRlcktpbmREaXNwbGF5TmFtZSgpOwog
ICAgIFN0cmluZyBlYXN5UmVhZGVyVHJhY2tNZW51SXRlbVRleHQoY29uc3QgU3RyaW5nJik7Cisg
ICAgU3RyaW5nIGZvcmNlZFRyYWNrS2luZERpc3BsYXlOYW1lKCk7CiAgICAgU3RyaW5nIGZvcmNl
ZFRyYWNrTWVudUl0ZW1UZXh0KGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBhdWRpb0Rlc2Ny
aXB0aW9uVHJhY2tTdWZmaXhUZXh0KGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxl
Y3Rpb25Hcm91cEFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KaW5kZXggOWJkNTY0ODQw
YzI4MmFmNTdhMTBkNGU0ZGNiZTg3NTczNGJjODI2YS4uYjQxOWI2MGQ5OGUzNjZkYjQ3ZGM3MDU3
ZWJkMjU3NjhkYzNkNjkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlv
bkdyb3VwQVZGT2JqQy5tbQpAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgTWVkaWFTZWxlY3Rpb25H
cm91cEFWRk9iakM6OnVwZGF0ZU9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGNoYXJhY3Rl
cmlzCiAgICAgICAgIHJldHVybjsKIAogICAgIE5TQXJyYXkqIGZpbHRlcmVkT3B0aW9ucyA9IFtQ
QUw6OmdldEFWTWVkaWFTZWxlY3Rpb25Hcm91cENsYXNzKCkgbWVkaWFTZWxlY3Rpb25PcHRpb25z
RnJvbUFycmF5OlttX21lZGlhU2VsZWN0aW9uR3JvdXAgb3B0aW9uc10KLSAgICAgICAgZmlsdGVy
ZWRBbmRTb3J0ZWRBY2NvcmRpbmdUb1ByZWZlcnJlZExhbmd1YWdlczpjcmVhdGVOU0FycmF5KHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSkuZ2V0KCldOworICAgICAgICBmaWx0ZXJlZEFuZFNvcnRl
ZEFjY29yZGluZ1RvUHJlZmVycmVkTGFuZ3VhZ2VzOmNyZWF0ZU5TQXJyYXkodXNlclByZWZlcnJl
ZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6Tm8pKS5nZXQoKV07CiAKICAgICBp
ZiAoIVtmaWx0ZXJlZE9wdGlvbnMgY291bnRdICYmIGNoYXJhY3RlcmlzdGljcy5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjNDZmYzk5ZmVkYTRlZjE4YzBkODBlYTdjNzgzODYx
ZTM1YjVhYjkwLi5kMzVkNDZjZWNkOTEyNzY3MDdiMjcwNTAwMmJlYmE4ZmEyMjk1MjA2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDUtMjQgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBw
bGUuY29tPgorCisgICAgICAgIFtNb2Rlcm4gTWVkaWEgQ29udHJvbHNdIFJFR1JFU1NJT04ocjI1
NDM4OSkgbWVkaWEgY29udHJvbHMgbmVlZHMgdGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVm
ZXJlbmNlcyBmb3Igb3JkZXJpbmcgdHJhY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYwMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mt
c3VwcG9ydC9zb3J0ZWQtYnktdXNlci1wcmVmZXJyZWQtbGFuZ3VhZ2VzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9zb3J0
ZWQtYnktdXNlci1wcmVmZXJyZWQtbGFuZ3VhZ2VzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKKyAg
ICAgICAgKiBtZWRpYS9jb250ZW50L2xvcmVtLWlwc3VtLnZ0dDogQWRkZWQuCisKIDIwMjEtMDUt
MjQgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDog
U2V0dGluZ3M6IEluY3JlYXNlIGNvbnRyYXN0IGlzbid0IGRldGVjdGVkIGluIGJyb3dzZXIgdW50
aWwgYW4gYWRkaXRpb25hbCBzZXR0aW5nIGlzIGFwcGxpZWQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL2NvbnRlbnQvbG9yZW0taXBzdW0udnR0IGIvTGF5b3V0VGVzdHMvbWVkaWEvY29u
dGVudC9sb3JlbS1pcHN1bS52dHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjJhZDkyMWJlNjUzOGJlM2QxOWNhYzQ1
NTI3MTQ5NGQzZjBkN2VhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL2Nv
bnRlbnQvbG9yZW0taXBzdW0udnR0CkBAIC0wLDAgKzEsOSBAQAorV0VCVlRUCisKKzEKKzAwOjAw
OjAwLjAwMCAtLT4gMDA6MDA6MDUuMDAwCitsb3JlbQorCisyCiswMDowMDowNS4wMDAgLS0+IDAw
OjAwOjEwLjAwMAoraXBzdW0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
c29ydGVkLWJ5LXVzZXItcHJlZmVycmVkLWxhbmd1YWdlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvc29ydGVkLWJ5
LXVzZXItcHJlZmVycmVkLWxhbmd1YWdlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjEzZDU5
MzBhYWRkNzRmNmE2ODhmNjU3OTFjMDBjYmY4MDg2ZTNlYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9zb3J0
ZWQtYnktdXNlci1wcmVmZXJyZWQtbGFuZ3VhZ2VzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4
IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdHJhY2tzIGFyZSBzb3J0ZWQgYmFzZWQgb24gdGhl
IHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2VzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSBiZWNh
bWUgZGlmZmVyZW50IGZyb20gbnVsbAorUEFTUyBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1
dHRvbi50cmFja3MnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCBiZWNhbWUgZGlmZmVy
ZW50IGZyb20gMAorVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uCitTdWJ0aXRsZXM6IFsKKyAgIk9m
ZiIsCisgICJBdXRvIChSZWNvbW1lbmRlZCkiLAorICAiZW4gQ2FwdGlvbnMiLAorICAiRGVzY3Jp
cHRpb25zIiwKKyAgImVuIiwKKyAgIlNwYW5pc2ggQ2FwdGlvbnMiLAorICAiRGVzY3JpcHRpb25z
IChTcGFuaXNoKSIsCisgICJTcGFuaXNoIiwKKyAgImZyIChGcmVuY2gpIENhcHRpb25zIiwKKyAg
IkRlc2NyaXB0aW9ucyAoRnJlbmNoKSIsCisgICJmciAoRnJlbmNoKSIsCisgICJHZXJtYW4gQ2Fw
dGlvbnMiLAorICAiRGVzY3JpcHRpb25zIChHZXJtYW4pIiwKKyAgIkdlcm1hbiIKK10KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQv
c29ydGVkLWJ5LXVzZXItcHJlZmVycmVkLWxhbmd1YWdlcy5odG1sIGIvTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3NvcnRlZC1ieS11c2VyLXBy
ZWZlcnJlZC1sYW5ndWFnZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZGZhYTE0OWFmM2VlODYxMGE5ZDcw
NGIzYTZjY2U1OGQyYmZiZjg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3NvcnRlZC1ieS11c2VyLXByZWZl
cnJlZC1sYW5ndWFnZXMuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4gPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBsYW5ndWFnZT1lbi1VUyxlcy1VUyB1c2VGbGV4aWJsZVZp
ZXdwb3J0PXRydWUgXSAtLT4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1k
ZXZpY2Utd2lkdGgiPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tZWRpYS1jb250cm9scy11
dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHZpZGVvIHNyYz0iLi4vLi4vY29udGVudC9j
b3VudGluZy5tcDQiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsg
d2lkdGg6IDYwMHB4OyIgYXV0b3BsYXkgY29udHJvbHMgbXV0ZWQgcGxheXNpbmxpbmU+CisgICAg
PHRyYWNrIHNyYz0iLi4vLi4vbG9yZW0taXBzdW0udnR0IiBraW5kPSJkZXNjcmlwdGlvbnMiIHNy
Y2xhbmc9ImVuIiBsYWJlbD0iRGVzY3JpcHRpb25zIj4KKyAgICA8dHJhY2sgc3JjPSIuLi8uLi9s
b3JlbS1pcHN1bS52dHQiIGtpbmQ9ImNhcHRpb25zIiAgICAgc3JjbGFuZz0iZW4iIGxhYmVsPSJl
biI+CisgICAgPHRyYWNrIHNyYz0iLi4vLi4vbG9yZW0taXBzdW0udnR0IiBraW5kPSJzdWJ0aXRs
ZXMiICAgIHNyY2xhbmc9ImVuIiBsYWJlbD0iZW4iPgorICAgIDx0cmFjayBzcmM9Ii4uLy4uL2xv
cmVtLWlwc3VtLnZ0dCIga2luZD0iZGVzY3JpcHRpb25zIiBzcmNsYW5nPSJkZSIgbGFiZWw9IkRl
c2NyaXB0aW9ucyI+CisgICAgPHRyYWNrIHNyYz0iLi4vLi4vbG9yZW0taXBzdW0udnR0IiBraW5k
PSJjYXB0aW9ucyIgICAgIHNyY2xhbmc9ImRlIj4KKyAgICA8dHJhY2sgc3JjPSIuLi8uLi9sb3Jl
bS1pcHN1bS52dHQiIGtpbmQ9InN1YnRpdGxlcyIgICAgc3JjbGFuZz0iZGUiPgorICAgIDx0cmFj
ayBzcmM9Ii4uLy4uL2xvcmVtLWlwc3VtLnZ0dCIga2luZD0iZGVzY3JpcHRpb25zIiBzcmNsYW5n
PSJmciIgbGFiZWw9IkRlc2NyaXB0aW9ucyI+CisgICAgPHRyYWNrIHNyYz0iLi4vLi4vbG9yZW0t
aXBzdW0udnR0IiBraW5kPSJjYXB0aW9ucyIgICAgIHNyY2xhbmc9ImZyIiBsYWJlbD0iZnIiPgor
ICAgIDx0cmFjayBzcmM9Ii4uLy4uL2xvcmVtLWlwc3VtLnZ0dCIga2luZD0ic3VidGl0bGVzIiAg
ICBzcmNsYW5nPSJmciIgbGFiZWw9ImZyIj4KKyAgICA8dHJhY2sgc3JjPSIuLi8uLi9sb3JlbS1p
cHN1bS52dHQiIGtpbmQ9ImRlc2NyaXB0aW9ucyIgc3JjbGFuZz0iZXMiIGxhYmVsPSJEZXNjcmlw
dGlvbnMiPgorICAgIDx0cmFjayBzcmM9Ii4uLy4uL2xvcmVtLWlwc3VtLnZ0dCIga2luZD0iY2Fw
dGlvbnMiICAgICBzcmNsYW5nPSJlcyI+CisgICAgPHRyYWNrIHNyYz0iLi4vLi4vbG9yZW0taXBz
dW0udnR0IiBraW5kPSJzdWJ0aXRsZXMiICAgIHNyY2xhbmc9ImVzIj4KKzwvdmlkZW8+Cis8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworZGVzY3JpcHRpb24oYFRoaXMgdGVzdCBjaGVja3MgdGhhdCB0cmFja3MgYXJlIHNvcnRl
ZCBiYXNlZCBvbiB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZXMuYCk7CisKK2NvbnN0IG1l
ZGlhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKK2NvbnN0IHNoYWRvd1Jvb3Qg
PSB3aW5kb3cuaW50ZXJuYWxzLnNoYWRvd1Jvb3QobWVkaWEpOworCit3aW5kb3cuaW50ZXJuYWxz
LnNldE1lZGlhQ29udHJvbHNNYXhpbXVtUmlnaHRDb250YWluZXJCdXR0b25Db3VudE92ZXJyaWRl
KG1lZGlhLCAxMDApOyAvLyBBIGZpbml0ZSB2YWx1ZSBsYXJnZXIgdGhhbiBhbnl0aGluZyBsaWtl
bHkuCit3aW5kb3cuaW50ZXJuYWxzLnNldENhcHRpb25EaXNwbGF5TW9kZSgibWFudWFsIik7IC8v
IFNob3cgYWxsIHRyYWNrcy4KKworbWVkaWEuYWRkRXZlbnRMaXN0ZW5lcigicGxheSIsICgpID0+
IHsKKyAgICBtZWRpYS5wYXVzZSgpOworCisgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCJzaGFk
b3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi50cmFja3MnKSIsICJudWxsIiwgKCkgPT4gewor
ICAgICAgICBzaG91bGRCZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
YnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIiwgIjAiLCBhc3lu
YyAoKSA9PiB7CisgICAgICAgICAgICBkZWJ1ZygiVGFwcGluZyB0cmFja3MgYnV0dG9uLi4uIik7
CisgICAgICAgICAgICBhd2FpdCBwcmVzc09uRWxlbWVudChzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoImJ1dHRvbi50cmFja3MiKSk7CisKKyAgICAgICAgICAgIGxldCBjb250ZXh0bWVudSA9IGF3
YWl0IGdldFRyYWNrc0NvbnRleHRNZW51KCk7CisgICAgICAgICAgICBsZXQgaXRlbXMgPSBjb250
ZXh0bWVudVswXS5jaGlsZHJlbjsKKyAgICAgICAgICAgIGlmIChpdGVtc1swXS50aXRsZSA9PT0g
IlN1YnRpdGxlcyIpCisgICAgICAgICAgICAgICAgaXRlbXMgPSBpdGVtcy5zbGljZSgxKTsKKyAg
ICAgICAgICAgIGRlYnVnKCJTdWJ0aXRsZXM6ICIgKyBKU09OLnN0cmluZ2lmeShpdGVtcy5tYXAo
KGl0ZW0pID0+IGl0ZW0udGl0bGUpLCBudWxsLCAyKSk7CisKKyAgICAgICAgICAgIG1lZGlhLnJl
bW92ZSgpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0p
OworfSk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFy
aWVzL0NoYW5nZUxvZyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKaW5kZXggZDJjMjBiOTU2
NjIwOWM1NWM3MTAzNDJlN2Q4OWJkMDMyYzkwYTJhYi4uZjNjYzg1NjVlOGVlMjg1YjM3MTk3ZTFm
YTU3MGQwNTk3NDUyODA4NSAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwor
KysgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMDUt
MjQgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtNb2Rlcm4g
TWVkaWEgQ29udHJvbHNdIFJFR1JFU1NJT04ocjI1NDM4OSkgbWVkaWEgY29udHJvbHMgbmVlZHMg
dGhlIGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBmb3Igb3JkZXJpbmcgdHJhY2tz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYwMzgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNZWRpYSBj
b250cm9scyBuZWVkIGFjY2VzcyB0byB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVu
Y2VzIGluIG9yZGVyIHRvIHByb3Blcmx5CisgICAgICAgIHNvcnQvb3JkZXIgdGhlIGxpc3Qgb2Yg
dHJhY2tzIGluIHRoZSBjb250cm9scyBVSS4gRm9yIGV4YW1wbGUsIGlmIGEgYDx2aWRlbz5gIGhh
cyBzdWJ0aXRsZXMKKyAgICAgICAgZm9yIEVuZ2xpc2gsIFNwYW5pc2gsIGFuZCBGcmVuY2gsIGFu
ZCB0aGUgdXNlciBoYXMgRW5nbGlzaCAoZGVmYXVsdCkgYW5kIEZyZW5jaCAoYWx0ZXJuYXRlKQor
ICAgICAgICBjb25maWd1cmVkIGluIHRoZSBMYW5ndWFnZSAmIFJlZ2lvbiB2aWV3IG9mIFN5c3Rl
bSBQcmVmZXJlbmNlcyBvbiBtYWNPUywgV2ViS2l0IHNob3VsZCBvcmRlcgorICAgICAgICB0aGUg
c3VidGl0bGVzIGxpc3QgRW5nbGlzaCwgRnJlbmNoLCBhbmQgdGhlbiBTcGFuaXNoLgorCisgICAg
ICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL01hYy8xMDE1MDAvSW50ZXJuYXRpb25h
bFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZDogQWRkZWQuCisgICAg
ICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL01hYy8xMDE2MDAvSW50ZXJuYXRpb25h
bFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZDogQWRkZWQuCisgICAg
ICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL01hYy8xMTAwMDAvSW50ZXJuYXRpb25h
bFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZDogQWRkZWQuCisgICAg
ICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2FwcGxldHZvcy8xNC9JbnRlcm5hdGlv
bmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L0ludGVybmF0aW9uYWxT
dXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQ6IEFkZGVkLgorICAgICAg
ICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy93YXRjaG9zLzcvSW50ZXJuYXRpb25hbFN1
cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZDogQWRkZWQuCisgICAgICAg
IExpbmsgYEludGVybmF0aW9uYWxTdXBwb3J0YCBhcyB0aGF0J3Mgd2hlcmUgdGhlIGBOU0xvY2Fs
ZWAgZXh0ZW5zaW9ucyBhcmUgaW1wbGVtZW50ZWQuCisKIDIwMjEtMDEtMDQgIEplZmYgTWlsbGVy
ICA8amVmZm1AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSB1c2VyLXZpc2libGUgY29weXJp
Z2h0IHN0cmluZ3MgdG8gaW5jbHVkZSAyMDIxCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMv
V2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL01hYy8xMDE1MDAvSW50ZXJuYXRpb25hbFN1cHBv
cnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZCBiL1dlYktpdExpYnJhcmllcy9X
ZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzEwMTUwMC9JbnRlcm5hdGlvbmFsU3VwcG9y
dC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5NDdhMzlk
MTIzZjU3MjdmMGY1OWUwYmNjMzEwM2ExYjk4NmYxYmMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL01hYy8xMDE1MDAvSW50ZXJu
YXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZApAQCAtMCww
ICsxLDcgQEAKKy0tLSAhdGFwaS10YmQtdjMKK2FyY2hzOiAgICAgICAgICAgWyB4ODZfNjQgXQor
aW5zdGFsbC1uYW1lOiAgICAnL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0ludGVy
bmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydCcKK3BsYXRmb3Jt
OiB6aXBwZXJlZAorZXhwb3J0czoKKyAgLSBhcmNoczogICAgICAgICAgIFsgeDg2XzY0IF0KKy4u
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVi
cy9NYWMvMTAxNjAwL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFs
U3VwcG9ydC50YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJz
L01hYy8xMDE2MDAvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxT
dXBwb3J0LnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjA1M2RmZWE1NDBlYjJmOGFhY2JlOTI1NjAwZGU4NzM2
NDEzZmUwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVG
cmFtZXdvcmtTdHVicy9NYWMvMTAxNjAwL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9J
bnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKQEAgLTAsMCArMSw3IEBACistLS0gIXRhcGktdGJkLXYz
CithcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCwgYXJtNjRlIF0KK2luc3RhbGwtbmFt
ZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JbnRlcm5hdGlvbmFsU3Vw
cG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQnCitwbGF0Zm9ybTogemlwcGVyZWQK
K2V4cG9ydHM6CisgIC0gYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCwgYXJtNjQsIGFybTY0ZSBd
CisuLi4KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3Jr
U3R1YnMvTWFjLzExMDAwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRp
b25hbFN1cHBvcnQudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtT
dHVicy9NYWMvMTEwMDAwL0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlv
bmFsU3VwcG9ydC50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjYwNTNkZmVhNTQwZWIyZjhhYWNiZTkyNTYwMGRl
ODczNjQxM2ZlMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2
YXRlRnJhbWV3b3JrU3R1YnMvTWFjLzExMDAwMC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdv
cmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCkBAIC0wLDAgKzEsNyBAQAorLS0tICF0YXBpLXRi
ZC12MworYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCwgYXJtNjQsIGFybTY0ZSBdCitpbnN0YWxs
LW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvSW50ZXJuYXRpb25h
bFN1cHBvcnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0JworcGxhdGZvcm06IHppcHBl
cmVkCitleHBvcnRzOgorICAtIGFyY2hzOiAgICAgICAgICAgWyB4ODZfNjQsIGFybTY0LCBhcm02
NGUgXQorLi4uCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1l
d29ya1N0dWJzL2FwcGxldHZvcy8xNC9JbnRlcm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50
ZXJuYXRpb25hbFN1cHBvcnQudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFt
ZXdvcmtTdHVicy9hcHBsZXR2b3MvMTQvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3b3JrL0lu
dGVybmF0aW9uYWxTdXBwb3J0LnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzEwOTE3YzYwZGE3NTAyNDc5MWE2
OGJjZTlmMDkxYTZiZWRmNGY0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dl
YktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9hcHBsZXR2b3MvMTQvSW50ZXJuYXRpb25hbFN1cHBv
cnQuZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZApAQCAtMCwwICsxLDggQEAKKy0t
LSAhdGFwaS10YmQtdjMKK2FyY2hzOiAgICAgICAgICAgWyB4ODZfNjQsIGFybTY0IF0KK2luc3Rh
bGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JbnRlcm5hdGlv
bmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQnCitvYmpjLWNvbnN0cmFp
bnQ6IG5vbmUKK3BsYXRmb3JtOiB0dm9zCitleHBvcnRzOgorICAtIGFyY2hzOiAgICAgICAgICAg
WyB4ODZfNjQsIGFybTY0IF0KKy4uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktp
dFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTQvSW50ZXJuYXRpb25hbFN1cHBvcnQuZnJhbWV3
b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0LnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2
YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9J
bnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWY3YTcwMjNlNGFiZWY2N2M5NDVi
M2NjNmIyOGNjYjc0NDkxZGQyMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9X
ZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L0ludGVybmF0aW9uYWxTdXBwb3J0LmZy
YW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQKQEAgLTAsMCArMSw4IEBACistLS0gIXRh
cGktdGJkLXYzCithcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCwgYXJtNjRlIF0KK2lu
c3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JbnRlcm5h
dGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQnCitvYmpjLWNvbnN0
cmFpbnQ6IG5vbmUKK3BsYXRmb3JtOiBpb3MKK2V4cG9ydHM6CisgIC0gYXJjaHM6ICAgICAgICAg
ICBbIHg4Nl82NCwgYXJtNjQsIGFybTY0ZSBdCisuLi4KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJh
cmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvd2F0Y2hvcy83L0ludGVybmF0aW9uYWxT
dXBwb3J0LmZyYW1ld29yay9JbnRlcm5hdGlvbmFsU3VwcG9ydC50YmQgYi9XZWJLaXRMaWJyYXJp
ZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL3dhdGNob3MvNy9JbnRlcm5hdGlvbmFsU3Vw
cG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0Mzll
ZjY0OTRiOTM4YTYzMDY2NGQ5MTMzNTcxMDZkYTJiOTc3ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL3dhdGNob3MvNy9JbnRl
cm5hdGlvbmFsU3VwcG9ydC5mcmFtZXdvcmsvSW50ZXJuYXRpb25hbFN1cHBvcnQudGJkCkBAIC0w
LDAgKzEsOCBAQAorLS0tICF0YXBpLXRiZC12MworYXJjaHM6ICAgICAgICAgICBbIGkzODYsIHg4
Nl82NCwgYXJtNjQsIGFybTY0ZSwgYXJtNjRfMzIsIGFybXY3ayBdCitpbnN0YWxsLW5hbWU6ICAg
ICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvSW50ZXJuYXRpb25hbFN1cHBvcnQu
ZnJhbWV3b3JrL0ludGVybmF0aW9uYWxTdXBwb3J0Jworb2JqYy1jb25zdHJhaW50OiBub25lCitw
bGF0Zm9ybTogd2F0Y2hvcworZXhwb3J0czoKKyAgLSBhcmNoczogICAgICAgICAgIFsgaTM4Niwg
eDg2XzY0LCBhcm02NCwgYXJtNjRlLCBhcm02NF8zMiwgYXJtdjdrIF0KKy4uLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429694</attachid>
            <date>2021-05-25 14:50:15 -0700</date>
            <delta_ts>2021-05-25 17:15:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226038-20210525155014.patch</filename>
            <type>text/plain</type>
            <size>48103</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDU0ZGJlZTkwY2UwNzRjMWFhMGRjZWVhNzc0MjM2
MjNjY2UxODRjMDYuLmYwY2Q1N2FkNzdhNjUwZDRhYWEzOWQ2YzdmZmVmZjFjYzU0ODVjMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA1LTI1ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENv
bnRyb2xzXSBSRUdSRVNTSU9OKHIyNTQzODkpIG1lZGlhIGNvbnRyb2xzIG5lZWRzIHRoZSBmdWxs
IGxpc3Qgb2YgbGFuZ3VhZ2UgcHJlZmVyZW5jZXMgZm9yIG9yZGVyaW5nIHRyYWNrcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDM4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTXlsZXMgQy4gTWF4ZmllbGQgYW5kIEVyaWMgQ2FybHNvbi4KKworICAg
ICAgICBNZWRpYSBjb250cm9scyBuZWVkIGFjY2VzcyB0byB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1
YWdlIHByZWZlcmVuY2VzIGluIG9yZGVyIHRvIHByb3Blcmx5CisgICAgICAgIHNvcnQvb3JkZXIg
dGhlIGxpc3Qgb2YgdHJhY2tzIGluIHRoZSBjb250cm9scyBVSS4gRm9yIGV4YW1wbGUsIGlmIGEg
YDx2aWRlbz5gIGhhcyBzdWJ0aXRsZXMKKyAgICAgICAgZm9yIEVuZ2xpc2gsIFNwYW5pc2gsIGFu
ZCBGcmVuY2gsIGFuZCB0aGUgdXNlciBoYXMgRW5nbGlzaCAoZGVmYXVsdCkgYW5kIEZyZW5jaCAo
YWx0ZXJuYXRlKQorICAgICAgICBjb25maWd1cmVkIGluIHRoZSBMYW5ndWFnZSAmIFJlZ2lvbiB2
aWV3IG9mIFN5c3RlbSBQcmVmZXJlbmNlcyBvbiBtYWNPUywgV2ViS2l0IHNob3VsZCBvcmRlcgor
ICAgICAgICB0aGUgc3VidGl0bGVzIGxpc3QgRW5nbGlzaCwgRnJlbmNoLCBhbmQgdGhlbiBTcGFu
aXNoLgorCisgICAgICAgICogc2hlbGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcDoKKyAgICAg
ICAgKHByZVRlc3QpOgorICAgICAgICBJbnN0ZWFkIG9mIHByb3BhZ2F0aW5nIHRoZSBvdmVycmlk
ZSwganVzdCBjbGVhciBpdCBvdXQuCisKIDIwMjEtMDUtMjQgIFJvYmluIE1vcmlzc2V0ICA8cm1v
cmlzc2V0QGFwcGxlLmNvbT4KIAogICAgICAgICBXaGVuIHJ1bm5pbmcgd2l0aCAtLXJlcG9ydFRv
dGFsUGhhc2VUaW1lcz0xLCB3ZSBzaG91bGQgYWxzbyBsb2cgdGhlIG1heCB0aW1lIGluIGEgcGhh
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggOTA0NjExNTAwOTQ0ZGVlNzgyNTE5NWVjZjAwZmQxMGNlNjZkNDBhMS4uYzhlMWQ5
MzA2ZmFlYjBmYTc0MmFlNzc1NDY4YWVmN2E3YTQ2YTgzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAor
MjAyMS0wNS0yNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
W01vZGVybiBNZWRpYSBDb250cm9sc10gUkVHUkVTU0lPTihyMjU0Mzg5KSBtZWRpYSBjb250cm9s
cyBuZWVkcyB0aGUgZnVsbCBsaXN0IG9mIGxhbmd1YWdlIHByZWZlcmVuY2VzIGZvciBvcmRlcmlu
ZyB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNjAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE15bGVzIEMuIE1heGZpZWxkIGFuZCBFcmlj
IENhcmxzb24uCisKKyAgICAgICAgTWVkaWEgY29udHJvbHMgbmVlZCBhY2Nlc3MgdG8gdGhlIGZ1
bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBpbiBvcmRlciB0byBwcm9wZXJseQorICAg
ICAgICBzb3J0L29yZGVyIHRoZSBsaXN0IG9mIHRyYWNrcyBpbiB0aGUgY29udHJvbHMgVUkuIEZv
ciBleGFtcGxlLCBpZiBhIGA8dmlkZW8+YCBoYXMgc3VidGl0bGVzCisgICAgICAgIGZvciBFbmds
aXNoLCBTcGFuaXNoLCBhbmQgRnJlbmNoLCBhbmQgdGhlIHVzZXIgaGFzIEVuZ2xpc2ggKGRlZmF1
bHQpIGFuZCBGcmVuY2ggKGFsdGVybmF0ZSkKKyAgICAgICAgY29uZmlndXJlZCBpbiB0aGUgTGFu
Z3VhZ2UgJiBSZWdpb24gdmlldyBvZiBTeXN0ZW0gUHJlZmVyZW5jZXMgb24gbWFjT1MsIFdlYktp
dCBzaG91bGQgb3JkZXIKKyAgICAgICAgdGhlIHN1YnRpdGxlcyBsaXN0IEVuZ2xpc2gsIEZyZW5j
aCwgYW5kIHRoZW4gU3BhbmlzaC4KKworICAgICAgICAqIHd0Zi9MYW5ndWFnZS5oOgorICAgICAg
ICAqIHd0Zi9MYW5ndWFnZS5jcHA6CisgICAgICAgIChXVEY6OmNhY2hlZEZ1bGxQbGF0Zm9ybVBy
ZWZlcnJlZExhbmd1YWdlcyk6IEFkZGVkLgorICAgICAgICAoV1RGOjpjYWNoZWRNaW5pbWl6ZWRQ
bGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcyk6IEFkZGVkLgorICAgICAgICAoV1RGOjpsYW5ndWFn
ZURpZENoYW5nZSk6CisgICAgICAgIChXVEY6OmRlZmF1bHRMYW5ndWFnZSk6CisgICAgICAgIChX
VEY6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorICAgICAgICAoV1RGOjpwbGF0Zm9ybUxhbmd1
YWdlRGlkQ2hhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgTW92ZSB0aGUgY2FjaGluZyBpbiBgd3Rm
L2NmL0xhbmd1YWdlQ0YuY3BwYCB0byBgd3RmL0xhbmd1YWdlLmNwcGAgc28gdGhhdCBhbGwgcGxh
dGZvcm1zIGNhbgorICAgICAgICBiZW5lZml0IGZyb20gY2FjaGluZyB0aGUgcmVzdWx0IG9mIGBw
bGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNgLgorCisgICAgICAgICogd3RmL2NmL0xhbmd1
YWdlQ0YuY3BwOgorICAgICAgICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMp
OgorICAgICAgICAoV1RGOjpwbGF0Zm9ybUxhbmd1YWdlRGlkQ2hhbmdlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiB3dGYvcGxheXN0YXRpb24vTGFuZ3VhZ2VQbGF5U3RhdGlvbi5jcHA6CisgICAgICAg
IChXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgICogd3RmL3Nw
aS9jb2NvYS9OU0xvY2FsZVNQSS5oOgorICAgICAgICAqIHd0Zi91bml4L0xhbmd1YWdlVW5peC5j
cHA6CisgICAgICAgIChXVEY6OnBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAg
ICAgICogd3RmL3dpbi9MYW5ndWFnZVdpbi5jcHA6CisgICAgICAgIChXVEY6OnBsYXRmb3JtVXNl
clByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgIEFkZCBgV1RGOjpTaG91bGRNaW5pbWl6ZUxh
bmd1YWdlc2AgdGhhdCBjb250cm9scyB3aGV0aGVyIGBXVEY6Om1pbmltaXplZFByZWZlcnJlZExh
bmd1YWdlc2AKKyAgICAgICAgaXMgY2FsbGVkLiBTaW5jZSB0aGUgcmVzdWx0IGlzIGNhY2hlZCwg
Y3JlYXRlIHNlcGFyYXRlIGBWZWN0b3I8U3RyaW5nPmAgZm9yIGVhY2ggZW51bSB2YWx1ZS4KKwog
MjAyMS0wNS0yNCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVt
b3ZlIFN0cmluZ0J1aWxkZXI6OmFwcGVuZExpdGVyYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ODlmZmUwZjBi
MDllM2RjYTI4YzM2ZDFlNzBiMGJiZDA4NzIwMzAzLi42YTUyMDhhNGQ5YjQ0OWNiMWFiOTc4YTE3
YmYyZDFjODQxYjFhZDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjEtMDUtMjUg
IERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtNb2Rlcm4gTWVk
aWEgQ29udHJvbHNdIFJFR1JFU1NJT04ocjI1NDM4OSkgbWVkaWEgY29udHJvbHMgbmVlZHMgdGhl
IGZ1bGwgbGlzdCBvZiBsYW5ndWFnZSBwcmVmZXJlbmNlcyBmb3Igb3JkZXJpbmcgdHJhY2tzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYwMzgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVsZCBhbmQgRXJpYyBDYXJsc29uLgor
CisgICAgICAgIE1lZGlhIGNvbnRyb2xzIG5lZWQgYWNjZXNzIHRvIHRoZSBmdWxsIGxpc3Qgb2Yg
bGFuZ3VhZ2UgcHJlZmVyZW5jZXMgaW4gb3JkZXIgdG8gcHJvcGVybHkKKyAgICAgICAgc29ydC9v
cmRlciB0aGUgbGlzdCBvZiB0cmFja3MgaW4gdGhlIGNvbnRyb2xzIFVJLiBGb3IgZXhhbXBsZSwg
aWYgYSBgPHZpZGVvPmAgaGFzIHN1YnRpdGxlcworICAgICAgICBmb3IgRW5nbGlzaCwgU3Bhbmlz
aCwgYW5kIEZyZW5jaCwgYW5kIHRoZSB1c2VyIGhhcyBFbmdsaXNoIChkZWZhdWx0KSBhbmQgRnJl
bmNoIChhbHRlcm5hdGUpCisgICAgICAgIGNvbmZpZ3VyZWQgaW4gdGhlIExhbmd1YWdlICYgUmVn
aW9uIHZpZXcgb2YgU3lzdGVtIFByZWZlcmVuY2VzIG9uIG1hY09TLCBXZWJLaXQgc2hvdWxkIG9y
ZGVyCisgICAgICAgIHRoZSBzdWJ0aXRsZXMgbGlzdCBFbmdsaXNoLCBGcmVuY2gsIGFuZCB0aGVu
IFNwYW5pc2guCisKKyAgICAgICAgVGVzdDogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Ry
YWNrcy1zdXBwb3J0L3NvcnRlZC1ieS11c2VyLXByZWZlcnJlZC1sYW5ndWFnZXMuaHRtbAorCisg
ICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByZWZlcnJlZExhbmd1YWdlcyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzOjp0ZXh0VHJhY2tTZWxlY3Rp
b25TY29yZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2Vz
OjpwcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlT3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAqIHBh
Z2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6OnByZWZlcnJlZExhbmd1YWdlcyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpidWlsZERpc3BsYXlTdHJpbmdGb3JUcmFja0Jhc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6dHJhY2tEaXNwbGF5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0
VHJhY2tDb21wYXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNl
bGVjdGlvbkdyb3VwQVZGT2JqQzo6dXBkYXRlT3B0aW9ucyk6CisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2Vy
R2xvYmFsU2NvcGVCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9i
YWxTY29wZUJhc2UuY3BwOgorICAgICAgICBXcmFwIGBkZWZhdWx0TGFuZ3VhZ2VgIGluIGEgbGFt
YmRhIHNpbmNlIGl0IG5vdyBoYXMgYSBwYXJhbWV0ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9M
b2NhbGl6ZWRTdHJpbmdzLmg6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjYXB0aW9uc1RleHRUcmFja0tpbmREaXNwbGF5TmFtZSk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6ZGVzY3JpcHRpb25zVGV4dFRyYWNrS2luZERpc3Bs
YXlOYW1lKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjaGFwdGVyc1RleHRUcmFja0tpbmRE
aXNwbGF5TmFtZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6bWV0YWRhdGFUZXh0VHJhY2tL
aW5kRGlzcGxheU5hbWUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNsb3NlZENhcHRpb25L
aW5kVHJhY2tEaXNwbGF5TmFtZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6c2RoVHJhY2tL
aW5kRGlzcGxheU5hbWUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmVhc3lSZWFkZXJLaW5k
RGlzcGxheU5hbWUpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmZvcmNlZFRyYWNrS2luZERp
c3BsYXlOYW1lKTogQWRkZWQuCisgICAgICAgIE1vdmUgdGhlIGxvZ2ljIGFkZGVkIGluIHIyNzc3
OTcgZnJvbSBgYnVpbGREaXNwbGF5U3RyaW5nRm9yVHJhY2tCYXNlYCB0byBgdHJhY2tEaXNwbGF5
TmFtZWAKKyAgICAgICAgYW5kIG9ubHkgcGVyZm9ybSBpdCBpZiB0aGUgdGV4dCB0cmFjayBkaXNw
bGF5IG5hbWUgZG9lc24ndCBhbHJlYWR5IGNvbnRhaW4gdGhlIGRpc3BsYXkgbmFtZQorICAgICAg
ICBmb3IgdGhlIHRleHQgdHJhY2sga2luZCAoZS5nLiBpZiB0aGUgYGxhYmVsYCBpcyAiRW5nbGlz
aCBDYXB0aW9ucyIgZG9uJ3QgYWRkICJDYXB0aW9ucyIsIGJ1dAorICAgICAgICBkbyBpZiB0aGUg
YGxhYmVsYCBpcyBvbmx5ICJFbmdsaXNoIikuCisKIDIwMjEtMDUtMjQgIFNhbSBXZWluaWcgIDx3
ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIENvbnZlcnQgRGVzdGluYXRpb25Db2xvclNwYWNl
IGZyb20gYW4gZW51bSB0byBjbGFzcyB3cmFwcGluZyBhIHBsYXRmb3JtIGNvbG9yIHNwYWNlIChD
R0NvbG9yU3BhY2VSZWYgZm9yIENHIHBvcnRzLCBldGMuKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3NoZWxsL3BsYXlzdGF0aW9uL1Rlc3RTaGVsbC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvc2hlbGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcAppbmRleCAyNzgyZmRh
MDg5ODY1ZGNmMGUyZjdjMWRiMjkzMzE1MTI4OTRkZTQ5Li4zMWZlYWY3ZWM1OGY3OTVmOGMzZGJi
NzdkOWY5NTdjMzNmNjJmYzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hl
bGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
c2hlbGwvcGxheXN0YXRpb24vVGVzdFNoZWxsLmNwcApAQCAtNjIsNyArNjIsNyBAQCBleHRlcm4g
IkMiIHZvaWQgcHJlVGVzdCgpCiAgICAgSlNDOjpPcHRpb25zOjpuYW1lXygpID0gb3JpZyMjbmFt
ZV87CiAgICAgRk9SX0VBQ0hfSlNDX09QVElPTihJTklUX09QVElPTikKICN1bmRlZiBJTklUX09Q
VElPTgotICAgIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhwbGF0Zm9ybVVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMoKSk7CisgICAgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHsg
fSk7CiB9CiAKIGV4dGVybiAiQyIgaW50IHJ1blRlc3QoaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L0xhbmd1YWdlLmNwcAppbmRleCBlNzgxNGQ3NGU5NmI2NDRjOWZlM2Y3ZTExN2YxYjVjZmMxZWU2
ZGE1Li5kNzUxMTg4ZGUyOTA0Y2I2YTQ0YTY3OTBhMmMyNWRhYzBlNDg3NTQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTGFuZ3Vh
Z2UuY3BwCkBAIC0zNyw2ICszNywxOCBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAorc3RhdGljIExv
Y2sgY2FjaGVkUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXNMb2NrOworc3RhdGljIFZlY3RvcjxT
dHJpbmc+JiBjYWNoZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKSBXVEZfUkVRVUlS
RVNfTE9DSyhjYWNoZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlc0xvY2spCit7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxTdHJpbmc+PiBsYW5ndWFnZXM7CisgICAgcmV0dXJu
IGxhbmd1YWdlczsKK30KK3N0YXRpYyBWZWN0b3I8U3RyaW5nPiYgY2FjaGVkTWluaW1pemVkUGxh
dGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMoKSBXVEZfUkVRVUlSRVNfTE9DSyhjYWNoZWRQbGF0Zm9y
bVByZWZlcnJlZExhbmd1YWdlc0xvY2spCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZl
Y3RvcjxTdHJpbmc+PiBsYW5ndWFnZXM7CisgICAgcmV0dXJuIGxhbmd1YWdlczsKK30KKwogc3Rh
dGljIExvY2sgcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGVMb2NrOwogc3RhdGljIFZlY3RvcjxT
dHJpbmc+JiBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpIFdURl9SRVFVSVJFU19MT0NLKHBy
ZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlTG9jaykKIHsKQEAgLTY4LDE2ICs4MCwyMSBAQCB2b2lk
IHJlbW92ZUxhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodm9pZCogY29udGV4dCkKIAogdm9pZCBsYW5n
dWFnZURpZENoYW5nZSgpCiB7Ci0gICAgcGxhdGZvcm1MYW5ndWFnZURpZENoYW5nZSgpOworICAg
IHsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IGNhY2hlZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3Vh
Z2VzTG9jayB9OworICAgICAgICBjYWNoZWRGdWxsUGxhdGZvcm1QcmVmZXJyZWRMYW5ndWFnZXMo
KS5jbGVhcigpOworICAgICAgICBjYWNoZWRNaW5pbWl6ZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1
YWdlcygpLmNsZWFyKCk7CisgICAgfQorCiAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IGNvcHlU
b1ZlY3RvcihvYnNlcnZlck1hcCgpKSkgewogICAgICAgICBpZiAob2JzZXJ2ZXJNYXAoKS5jb250
YWlucyhvYnNlcnZlci5rZXkpKQogICAgICAgICAgICAgb2JzZXJ2ZXIudmFsdWUob2JzZXJ2ZXIu
a2V5KTsKICAgICB9CiB9CiAKLVN0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoKQorU3RyaW5nIGRlZmF1
bHRMYW5ndWFnZShTaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyBzaG91bGRNaW5pbWl6ZUxhbmd1YWdl
cykKIHsKLSAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzKCk7CisgICAgYXV0byBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKHNob3Vs
ZE1pbmltaXplTGFuZ3VhZ2VzKTsKICAgICBpZiAobGFuZ3VhZ2VzLnNpemUoKSkKICAgICAgICAg
cmV0dXJuIGxhbmd1YWdlc1swXTsKIApAQCAtMTA4LDcgKzEyNSw3IEBAIHN0YXRpYyBWZWN0b3I8
U3RyaW5nPiBpc29sYXRlZENvcHkoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmluZ3MpCiAgICAg
cmV0dXJuIGNvcHk7CiB9CiAKLVZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMo
KQorVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxh
bmd1YWdlcyBzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcykKIHsKICAgICB7CiAgICAgICAgIExvY2tl
ciBsb2NrZXIgeyBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZUxvY2sgfTsKQEAgLTExNyw3ICsx
MzQsMTEgQEAgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpCiAgICAgICAg
ICAgICByZXR1cm4gaXNvbGF0ZWRDb3B5KG92ZXJyaWRlKTsKICAgICB9CiAKLSAgICByZXR1cm4g
cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgTG9ja2VyIGxvY2tlciB7IGNh
Y2hlZFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzTG9jayB9OworICAgIGF1dG8mIGxhbmd1YWdl
cyA9IHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID09IFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpZ
ZXMgPyBjYWNoZWRNaW5pbWl6ZWRQbGF0Zm9ybVByZWZlcnJlZExhbmd1YWdlcygpIDogY2FjaGVk
RnVsbFBsYXRmb3JtUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CisgICAgaWYgKGxhbmd1YWdlcy5pc0Vt
cHR5KCkpCisgICAgICAgIGxhbmd1YWdlcyA9IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
cyhzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyk7CisgICAgcmV0dXJuIGlzb2xhdGVkQ29weShsYW5n
dWFnZXMpOwogfQogCiBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExhbmd1YWdlSWRlbnRpZmllcihj
b25zdCBTdHJpbmcmIGxhbmd1YWdlQ29kZSkKQEAgLTE4NCwxMCArMjA1LDQgQEAgU3RyaW5nIGRp
c3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUoY29uc3QgU3RyaW5nJiBsb2NhbGVOYW1lKQogICAg
IHJldHVybiBsb2NhbGVOYW1lOwogfQogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQotdm9pZCBwbGF0
Zm9ybUxhbmd1YWdlRGlkQ2hhbmdlKCkKLXsKLX0KLSNlbmRpZgotCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9MYW5ndWFnZS5oIGIvU291cmNlL1dURi93dGYvTGFuZ3VhZ2UuaAppbmRl
eCBmMDc0ZDc1NjhkMDAyZTkzMmE1MzI2YmRiNTJkN2ZiOGMwNjU4MTgzLi4yYjUwMTIzMTdkZWVk
ZjA1YzM4Y2M0OWYxYWMxZDVjOTRkOWZhYWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9M
YW5ndWFnZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xhbmd1YWdlLmgKQEAgLTM1LDEzICszNSwx
MyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyBkZWZh
dWx0TGFuZ3VhZ2UoKTsgLy8gVGhyZWFkLXNhZmUuCi1XVEZfRVhQT1JUX1BSSVZBVEUgVmVjdG9y
PFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpOyAvLyBUaHJlYWQtc2FmZSwgcmV0dXJu
cyBCQ1AgNDcgbGFuZ3VhZ2UgdGFncy4KK2VudW0gY2xhc3MgU2hvdWxkTWluaW1pemVMYW5ndWFn
ZXMgeyBObywgWWVzIH07CisKK1dURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgZGVmYXVsdExhbmd1
YWdlKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzID0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Olll
cyk7IC8vIFRocmVhZC1zYWZlLgorV1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgPSBTaG91bGRNaW5p
bWl6ZUxhbmd1YWdlczo6WWVzKTsgLy8gVGhyZWFkLXNhZmUsIHJldHVybnMgQkNQIDQ3IGxhbmd1
YWdlIHRhZ3MuCiBXVEZfRVhQT1JUX1BSSVZBVEUgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJl
ZExhbmd1YWdlc092ZXJyaWRlKCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBvdmVycmlkZVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKIFdURl9FWFBPUlRf
UFJJVkFURSBzaXplX3QgaW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdlSW5MaXN0KGNvbnN0IFN0
cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZUxpc3QsIGJvb2wm
IGV4YWN0TWF0Y2gpOwotV1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3Jt
VXNlclByZWZlcnJlZExhbmd1YWdlcygpOwotV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcGxhdGZv
cm1MYW5ndWFnZURpZENoYW5nZSgpOwogCiAvLyBDYWxsZWQgZnJvbSBwbGF0Zm9ybSBzcGVjaWZp
YyBjb2RlIHdoZW4gdGhlIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2UocykgY2hhbmdlLgogV1RG
X0VYUE9SVF9QUklWQVRFIHZvaWQgbGFuZ3VhZ2VEaWRDaGFuZ2UoKTsKQEAgLTUyLDIwICs1Miwy
MiBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHZv
aWQqIGNvbnRleHQsIExhbmd1YWdlQ2hhbmdlTwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVt
b3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih2b2lkKiBjb250ZXh0KTsKIFdURl9FWFBPUlRfUFJJ
VkFURSBTdHJpbmcgZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShjb25zdCBTdHJpbmcmKTsK
IAorVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1p
bmltaXplTGFuZ3VhZ2VzID0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Olllcyk7CisKICNpZiBQ
TEFURk9STShDT0NPQSkKIGJvb2wgY2FuTWluaW1pemVMYW5ndWFnZXMoKTsKIFdURl9FWFBPUlRf
UFJJVkFURSB2b2lkIGxpc3RlbkZvckxhbmd1YWdlQ2hhbmdlTm90aWZpY2F0aW9ucygpOwogUmV0
YWluUHRyPENGQXJyYXlSZWY+IG1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFnZXMoQ0ZBcnJh
eVJlZik7CiAjZW5kaWYKIAotfQorfSAvLyBuYW1lc3BhY2UgV1RGCiAKK3VzaW5nIFdURjo6U2hv
dWxkTWluaW1pemVMYW5ndWFnZXM7CiB1c2luZyBXVEY6OmRlZmF1bHRMYW5ndWFnZTsKIHVzaW5n
IFdURjo6dXNlclByZWZlcnJlZExhbmd1YWdlczsKIHVzaW5nIFdURjo6dXNlclByZWZlcnJlZExh
bmd1YWdlc092ZXJyaWRlOwogdXNpbmcgV1RGOjpvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXM7CiB1c2luZyBXVEY6OmluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdDsKLXVzaW5n
IFdURjo6cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwogdXNpbmcgV1RGOjphZGRMYW5n
dWFnZUNoYW5nZU9ic2VydmVyOwogdXNpbmcgV1RGOjpyZW1vdmVMYW5ndWFnZUNoYW5nZU9ic2Vy
dmVyOwogdXNpbmcgV1RGOjpkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvY2YvTGFuZ3VhZ2VDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9M
YW5ndWFnZUNGLmNwcAppbmRleCA5MWNkOTFhMmYwYzExNGY2NjcxYmI4MjQxOTQyYmI3MDNiYWU3
NDc4Li4zOWVhYzQyMTgwYWY5ZGEzOWFkYmViNmQ2MzI4YzRmYTA3YzcxZDkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9jZi9MYW5ndWFnZUNGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9j
Zi9MYW5ndWFnZUNGLmNwcApAQCAtMzAsMTYgKzMwLDEyIEBACiAjaW5jbHVkZSA8bXV0ZXg+CiAj
aW5jbHVkZSA8dW5pY29kZS91bG9jLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNp
bmNsdWRlIDx3dGYvTG9jay5oPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvc3BpL2NmL0NGQnVuZGxlU1BJ
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXVEYgewog
Ci1zdGF0aWMgTG9jayBwcmVmZXJyZWRMYW5ndWFnZXNMb2NrOwotCiAjaWYgUExBVEZPUk0oTUFD
KQogc3RhdGljIHZvaWQgbGFuZ3VhZ2VQcmVmZXJlbmNlc0RpZENoYW5nZShDRk5vdGlmaWNhdGlv
bkNlbnRlclJlZiwgdm9pZCosIENGU3RyaW5nUmVmLCBjb25zdCB2b2lkKiwgQ0ZEaWN0aW9uYXJ5
UmVmKQogewpAQCAtNDcsMjEgKzQzLDExIEBAIHN0YXRpYyB2b2lkIGxhbmd1YWdlUHJlZmVyZW5j
ZXNEaWRDaGFuZ2UoQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQqLCBDRlN0cmluCiB9CiAj
ZW5kaWYKIAotc3RhdGljIFZlY3RvcjxTdHJpbmc+JiBwcmVmZXJyZWRMYW5ndWFnZXMoKSBXVEZf
UkVRVUlSRVNfTE9DSyhwcmVmZXJyZWRMYW5ndWFnZXNMb2NrKQotewotICAgIHN0YXRpYyBMYXp5
TmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFN0cmluZz4+IGxhbmd1YWdlczsKLSAgICBzdGF0aWMgc3Rk
OjpvbmNlX2ZsYWcgb25jZUtleTsKLSAgICBzdGQ6OmNhbGxfb25jZShvbmNlS2V5LCBbJl0gewot
ICAgICAgICBsYW5ndWFnZXMuY29uc3RydWN0KCk7Ci0gICAgfSk7Ci0gICAgcmV0dXJuIGxhbmd1
YWdlczsKLX0KLQotc3RhdGljIFN0cmluZyBodHRwU3R5bGVMYW5ndWFnZUNvZGUoQ0ZTdHJpbmdS
ZWYgbGFuZ3VhZ2UpCitzdGF0aWMgU3RyaW5nIGh0dHBTdHlsZUxhbmd1YWdlQ29kZShDRlN0cmlu
Z1JlZiBsYW5ndWFnZSwgU2hvdWxkTWluaW1pemVMYW5ndWFnZXMgc2hvdWxkTWluaW1pemVMYW5n
dWFnZXMpCiB7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBwcmVmZXJyZWRMYW5ndWFnZUNv
ZGU7CiAgICAgLy8gSWYgd2UgY2FuIG1pbmltaXplIHRoZSBsYW5ndWFnZSBsaXN0IHRvIHJlZHVj
ZSBmaW5nZXJwcmludGluZywgd2UgY2FuIGFmZm9yZCB0byBiZSBtb3JlIGxvc3NsZXNzIHdoZW4g
Y2Fub25pY2FsaXppbmcgdGhlIGxvY2FsZSBsaXN0LgotICAgIGlmIChjYW5NaW5pbWl6ZUxhbmd1
YWdlcygpKQorICAgIGlmIChzaG91bGRNaW5pbWl6ZUxhbmd1YWdlcyA9PSBTaG91bGRNaW5pbWl6
ZUxhbmd1YWdlczo6Tm8gfHwgY2FuTWluaW1pemVMYW5ndWFnZXMoKSkKICAgICAgICAgcHJlZmVy
cmVkTGFuZ3VhZ2VDb2RlID0gYWRvcHRDRihDRkxvY2FsZUNyZWF0ZUNhbm9uaWNhbExhbmd1YWdl
SWRlbnRpZmllckZyb21TdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbGFuZ3VhZ2UpKTsKICAg
ICBlbHNlIHsKICAgICAgICAgU0ludDMyIGxhbmd1YWdlQ29kZTsKQEAgLTg4LDE0ICs3NCw2IEBA
IHN0YXRpYyBTdHJpbmcgaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKENGU3RyaW5nUmVmIGxhbmd1YWdl
KQogICAgIHJldHVybiBtdXRhYmxlTGFuZ3VhZ2VDb2RlLmdldCgpOwogfQogCi12b2lkIHBsYXRm
b3JtTGFuZ3VhZ2VEaWRDaGFuZ2UoKQotewotICAgIHsKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7
IHByZWZlcnJlZExhbmd1YWdlc0xvY2sgfTsKLSAgICAgICAgcHJlZmVycmVkTGFuZ3VhZ2VzKCku
Y2xlYXIoKTsKLSAgICB9Ci19Ci0KIHZvaWQgbGlzdGVuRm9yTGFuZ3VhZ2VDaGFuZ2VOb3RpZmlj
YXRpb25zKCkKIHsKICNpZiBQTEFURk9STShNQUMpCkBAIC0xMDYsMzIgKzg0LDIzIEBAIHZvaWQg
bGlzdGVuRm9yTGFuZ3VhZ2VDaGFuZ2VOb3RpZmljYXRpb25zKCkKICNlbmRpZgogfQogCi1WZWN0
b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9yPFN0cmlu
Zz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2Vz
IHNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewotICAgIExvY2tlciBsb2NrZXIgeyBwcmVmZXJy
ZWRMYW5ndWFnZXNMb2NrIH07Ci0gICAgVmVjdG9yPFN0cmluZz4mIHVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMgPSBwcmVmZXJyZWRMYW5ndWFnZXMoKTsKKyAgICBhdXRvIHBsYXRmb3JtTGFuZ3VhZ2Vz
ID0gYWRvcHRDRihDRkxvY2FsZUNvcHlQcmVmZXJyZWRMYW5ndWFnZXMoKSk7CiAKLSAgICBpZiAo
dXNlclByZWZlcnJlZExhbmd1YWdlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgUmV0YWluUHRyPENG
QXJyYXlSZWY+IGxhbmd1YWdlcyA9IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5UHJlZmVycmVkTGFuZ3Vh
Z2VzKCkpOwotICAgICAgICBsYW5ndWFnZXMgPSBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3Vh
Z2VzKGxhbmd1YWdlcy5nZXQoKSk7Ci0gICAgICAgIENGSW5kZXggbGFuZ3VhZ2VDb3VudCA9IENG
QXJyYXlHZXRDb3VudChsYW5ndWFnZXMuZ2V0KCkpOwotICAgICAgICBpZiAoIWxhbmd1YWdlQ291
bnQpCi0gICAgICAgICAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmFwcGVuZCgiZW4iKTsKLSAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBmb3IgKENGSW5kZXggaSA9IDA7IGkgPCBsYW5ndWFn
ZUNvdW50OyBpKyspCi0gICAgICAgICAgICAgICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBl
bmQoaHR0cFN0eWxlTGFuZ3VhZ2VDb2RlKHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5
R2V0VmFsdWVBdEluZGV4KGxhbmd1YWdlcy5nZXQoKSwgaSkpKSk7Ci0gICAgICAgIH0KKyAgICBp
ZiAoc2hvdWxkTWluaW1pemVMYW5ndWFnZXMgPT0gU2hvdWxkTWluaW1pemVMYW5ndWFnZXM6Olll
cykKKyAgICAgICAgcGxhdGZvcm1MYW5ndWFnZXMgPSBtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFu
Z3VhZ2VzKHBsYXRmb3JtTGFuZ3VhZ2VzLmdldCgpKTsKKworICAgIENGSW5kZXggcGxhdGZvcm1M
YW5ndWFnZXNDb3VudCA9IENGQXJyYXlHZXRDb3VudChwbGF0Zm9ybUxhbmd1YWdlcy5nZXQoKSk7
CisgICAgaWYgKCFwbGF0Zm9ybUxhbmd1YWdlc0NvdW50KQorICAgICAgICByZXR1cm4geyAiZW4i
X3MgfTsKKworICAgIFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlczsKKyAgICBmb3IgKENGSW5kZXgg
aSA9IDA7IGkgPCBwbGF0Zm9ybUxhbmd1YWdlc0NvdW50OyBpKyspIHsKKyAgICAgICAgYXV0byBw
bGF0Zm9ybUxhbmd1YWdlID0gc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGQXJyYXlHZXRWYWx1
ZUF0SW5kZXgocGxhdGZvcm1MYW5ndWFnZXMuZ2V0KCksIGkpKTsKKyAgICAgICAgbGFuZ3VhZ2Vz
LmFwcGVuZChodHRwU3R5bGVMYW5ndWFnZUNvZGUocGxhdGZvcm1MYW5ndWFnZSwgc2hvdWxkTWlu
aW1pemVMYW5ndWFnZXMpKTsKICAgICB9Ci0KLSAgICBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzQ29weTsKLSAgICB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ29weS5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuc2l6ZSgpKTsKLQotICAgIGZv
ciAoYXV0byYgbGFuZ3VhZ2UgOiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKQotICAgICAgICB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzQ29weS51bmNoZWNrZWRBcHBlbmQobGFuZ3VhZ2UuaXNvbGF0ZWRD
b3B5KCkpOwotCi0gICAgcmV0dXJuIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDb3B5OwotCi0gICAg
cmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7CisgICAgcmV0dXJuIGxhbmd1YWdlczsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9wbGF5c3RhdGlvbi9M
YW5ndWFnZVBsYXlTdGF0aW9uLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0aW9uL0xhbmd1
YWdlUGxheVN0YXRpb24uY3BwCmluZGV4IGQ0NTM3YTY5NDBiNWUwMjJiZjVlNWNkZjcxYTg2M2Qz
MzA5ZGY2MWMuLmNhZjE1NDlmODAwMmMxMzdlMmYxYTA2MjI4MTgxNTRmNTYyNTRlNWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0aW9uL0xhbmd1YWdlUGxheVN0YXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3BsYXlzdGF0aW9uL0xhbmd1YWdlUGxheVN0YXRpb24uY3Bw
CkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1WZWN0b3I8U3RyaW5nPiBw
bGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQorVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzKQogewogICAgIFZl
Y3RvcjxTdHJpbmc+IGxhbmd1YWdlczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdW5p
eC9MYW5ndWFnZVVuaXguY3BwIGIvU291cmNlL1dURi93dGYvdW5peC9MYW5ndWFnZVVuaXguY3Bw
CmluZGV4IDMxYzc1NzQ3MmVlYWI2NDA3MjZlOTRjNWM1NzUwNzE4ZmEzOTM4ZDEuLmFmOTRiYjA2
Y2MzOGRkMmE4NTk1YmZiYjc3MTY5MGY5MmRiNDhhZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL3VuaXgvTGFuZ3VhZ2VVbml4LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi91bml4L0xhbmd1
YWdlVW5peC5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1
YWdlKCkKICAgICByZXR1cm4gbm9ybWFsaXplZERlZmF1bHQ7CiB9CiAKLVZlY3RvcjxTdHJpbmc+
IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCitWZWN0b3I8U3RyaW5nPiBwbGF0Zm9y
bVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMpCiB7CiAgICAg
cmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgpIH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL0xhbmd1YWdlV2lu
LmNwcAppbmRleCA2YjUyYzljMjBkMTVjYmE3ZTM5ZDU0MjAxMWI0MzhhMzgzNThjMmIyLi5iZjk2
YjBhNTVjODg5OTMxYzRjMmQ1MzMxN2U4YzVlMDE3ZTJhYTEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi93aW4vTGFuZ3VhZ2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9MYW5n
dWFnZVdpbi5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1
YWdlKCkKICAgICByZXR1cm4gY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2U7CiB9CiAKLVZlY3RvcjxT
dHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpCitWZWN0b3I8U3RyaW5nPiBw
bGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoU2hvdWxkTWluaW1pemVMYW5ndWFnZXMpCiB7
CiAgICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgpIH07CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCBhYjAzYmRiNDNjNmYzYTNm
MTViYTk1ZThkMmJiMzFlN2JjYTFlNTM5Li44MTE0MTkwYjQzZWM1OTYyZDFiZmU3MmNiOGI5MTEy
MGZjZDcyNWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
QmFzZS5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUg
SlNET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewogICAgICZyZXBv
cnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50U2NyaXB0RXhlY3V0
aW9uT3duZXIsCiAgICAgJnNjcmlwdEV4ZWN1dGlvblN0YXR1cywKLSAgICAmZGVmYXVsdExhbmd1
YWdlLAorICAgIFtdIHsgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZSgpOyB9LAogI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKICAgICAmY29tcGlsZVN0cmVhbWluZywKICAgICAmaW5zdGFudGlhdGVTdHJl
YW1pbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckds
b2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckds
b2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggNDgzOTk3MDhlZTAzNGJjNThhYzM4MmYzY2FjOTdmOTE2
Nzc4MmZiOC4uOTIxMjVlNTZkNjk5NWQ0NjAwZGNkOGZjYjdiNDIzYmE1OGJiNDgzZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVC
YXNlLmNwcApAQCAtNjEsNyArNjEsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBK
U1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZQogICAgICZy
ZXBvcnRVbmNhdWdodEV4Y2VwdGlvbkF0RXZlbnRMb29wLAogICAgICZjdXJyZW50U2NyaXB0RXhl
Y3V0aW9uT3duZXIsCiAgICAgJnNjcmlwdEV4ZWN1dGlvblN0YXR1cywKLSAgICAmZGVmYXVsdExh
bmd1YWdlLAorICAgIFtdIHsgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZSgpOyB9LAogI2lmIEVOQUJM
RShXRUJBU1NFTUJMWSkKICAgICAmY29tcGlsZVN0cmVhbWluZywKICAgICAmaW5zdGFudGlhdGVT
dHJlYW1pbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmts
ZXRHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
bGV0R2xvYmFsU2NvcGVCYXNlLmNwcAppbmRleCA0MjFlNzQ0ZjMzMDdhYmQ5OWIxZTVjMmQ1ZDdm
MTNlMzNiMzhlOTAxLi40MjAyNzJhMWQwYjc1Y2E2OTVhNjZmMTI0NmU0NzQ1OTZkNWE0ZTVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29w
ZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2xldEdsb2Jh
bFNjb3BlQmFzZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9k
VGFibGUgSlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmwK
ICAgICAmcmVwb3J0VW5jYXVnaHRFeGNlcHRpb25BdEV2ZW50TG9vcCwKICAgICAmY3VycmVudFNj
cmlwdEV4ZWN1dGlvbk93bmVyLAogICAgICZzY3JpcHRFeGVjdXRpb25TdGF0dXMsCi0gICAgJmRl
ZmF1bHRMYW5ndWFnZSwKKyAgICBbXSB7IHJldHVybiBkZWZhdWx0TGFuZ3VhZ2UoKTsgfSwKICNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgJmNvbXBpbGVTdHJlYW1pbmcsCiAgICAgJmluc3Rh
bnRpYXRlU3RyZWFtaW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9j
YWxpemFibGUuc3RyaW5ncyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0
cmluZ3MKaW5kZXggNWQwODliMmYyZjVjODIxOTdjMTdkNGQyZDIxNTE0OWYzNGFjZTNmZC4uM2Q1
YWE2MjY1MTlmOTYxNDI2NWVhMjliYzU4ZjliYmZlNjBkMzNhNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCkBAIC0yMDgsNiArMjA4LDkgQEAKIC8qIExh
YmVsIGZvciB0aGUgYnV5IHdpdGggQXBwbGUgUGF5IGJ1dHRvbi4gKi8KICJCdXkgd2l0aCBBcHBs
ZSBQYXkiID0gIkJ1eSB3aXRoIEFwcGxlIFBheSI7CiAKKy8qIERpc3BsYXkgbmFtZSBmb3IgY2xv
c2VkIGNhcHRpb25zIHRleHQgdHJhY2tzIHRoYXQgaXMgdXNlZCB0byBzZWUgaWYgdGhlIEhUTUwg
J2xhYmVsJyBhbHJlYWR5IGNvbnRhaW5zICdDQycuICovCisiQ0MiID0gIkNDIjsKKwogLyogQ2Fu
Y2VsICovCiAiQ2FuY2VsIiA9ICJDYW5jZWwiOwogCkBAIC0yMjAsMTIgKzIyMywxOCBAQAogLyog
Q2FwaXRhbGl6ZSBjb250ZXh0IG1lbnUgaXRlbSAqLwogIkNhcGl0YWxpemUiID0gIkNhcGl0YWxp
emUiOwogCisvKiBEaXNwbGF5IG5hbWUgZm9yIHRleHQgdHJhY2sga2luZCAnY2FwdGlvbnMnIHRo
YXQgaXMgdXNlZCB0byBzZWUgaWYgdGhlIEhUTUwgJ2xhYmVsJyBhbHJlYWR5IGNvbnRhaW5zICdD
YXB0aW9ucycuICovCisiQ2FwdGlvbnMiID0gIkNhcHRpb25zIjsKKwogLyogVW5kbyBhY3Rpb24g
bmFtZSAqLwogIkNlbnRlciAoVW5kbyBhY3Rpb24gbmFtZSkiID0gIkNlbnRlciI7CiAKIC8qIFVu
ZG8gYWN0aW9uIG5hbWUgKi8KICJDaGFuZ2UgQXR0cmlidXRlcyAoVW5kbyBhY3Rpb24gbmFtZSki
ID0gIkNoYW5nZSBBdHRyaWJ1dGVzIjsKIAorLyogRGlzcGxheSBuYW1lIGZvciB0ZXh0IHRyYWNr
IGtpbmQgJ2NoYXB0ZXJzJyB0aGF0IGlzIHVzZWQgdG8gc2VlIGlmIHRoZSBIVE1MICdsYWJlbCcg
YWxyZWFkeSBjb250YWlucyAnQ2hhcHRlcnMnLiAqLworIkNoYXB0ZXJzIiA9ICJDaGFwdGVycyI7
CisKIC8qIENoZWNrIHNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtICovCiAiQ2hlY2sgRG9jdW1l
bnQgTm93IiA9ICJDaGVjayBEb2N1bWVudCBOb3ciOwogCkBAIC0zMjUsNiArMzM0LDkgQEAKIC8q
IFVuZG8gYWN0aW9uIG5hbWUgKi8KICJEZWxldGUgKFVuZG8gYWN0aW9uIG5hbWUpIiA9ICJEZWxl
dGUiOwogCisvKiBEaXNwbGF5IG5hbWUgZm9yIHRleHQgdHJhY2sga2luZCAnZGVzY3JpcHRpb25z
JyB0aGF0IGlzIHVzZWQgdG8gc2VlIGlmIHRoZSBIVE1MICdsYWJlbCcgYWxyZWFkeSBjb250YWlu
cyAnRGVzY3JpcHRpb25zJy4gKi8KKyJEZXNjcmlwdGlvbnMiID0gIkRlc2NyaXB0aW9ucyI7CisK
IC8qIHRleHQgdG8gZGlzcGxheSBpbiA8ZGV0YWlscz4gdGFnIHdoZW4gaXQgaGFzIG5vIDxzdW1t
YXJ5PiBjaGlsZCAqLwogIkRldGFpbHMiID0gIkRldGFpbHMiOwogCkBAIC0zNzAsNiArMzgyLDkg
QEAKIC8qIFVuZG8gYWN0aW9uIG5hbWUgKi8KICJEcmFnIChVbmRvIGFjdGlvbiBuYW1lKSIgPSAi
RHJhZyI7CiAKKy8qIERpc3BsYXkgbmFtZSBmb3IgZWFzeSByZWFkZXIgdGV4dCB0cmFja3MgdGhh
dCBpcyB1c2VkIHRvIHNlZSBpZiB0aGUgSFRNTCAnbGFiZWwnIGFscmVhZHkgY29udGFpbnMgJ0Vh
c3kgUmVhZGVyJy4gKi8KKyJFYXN5IFJlYWRlciIgPSAiRWFzeSBSZWFkZXIiOworCiAvKiBWaWRl
byBFbnRlciBGdWxsIFNjcmVlbiBjb250ZXh0IG1lbnUgaXRlbSAqLwogIkVudGVyIEZ1bGwgU2Ny
ZWVuIiA9ICJFbnRlciBGdWxsIFNjcmVlbiI7CiAKQEAgLTQxNSw2ICs0MzAsOSBAQAogLyogRm9u
dCBjb250ZXh0IHN1Yi1tZW51IGl0ZW0gKi8KICJGb250IiA9ICJGb250IjsKIAorLyogRGlzcGxh
eSBuYW1lIGZvciB0ZXh0IHRyYWNrIGtpbmQgJ2ZvcmNlZCcgdGhhdCBpcyB1c2VkIHRvIHNlZSBp
ZiB0aGUgSFRNTCAnbGFiZWwnIGFscmVhZHkgY29udGFpbnMgJ0ZvcmNlZCcuICovCisiRm9yY2Vk
IiA9ICJGb3JjZWQiOworCiAvKiBVbmRvIGFjdGlvbiBuYW1lICovCiAiRm9ybWF0IEJsb2NrIChV
bmRvIGFjdGlvbiBuYW1lKSIgPSAiRm9ybWF0dGluZyI7CiAKQEAgLTU3NCw2ICs1OTIsOSBAQAog
LyogTWFsd2FyZSBjb25maXJtYXRpb24gZGlhbG9nICovCiAiTWVyZWx5IHZpc2l0aW5nIGEgc2l0
ZSBpcyBzdWZmaWNpZW50IGZvciBtYWx3YXJlIHRvIGluc3RhbGwgaXRzZWxmIGFuZCBoYXJtIHlv
dXIgY29tcHV0ZXIuIiA9ICJNZXJlbHkgdmlzaXRpbmcgYSBzaXRlIGlzIHN1ZmZpY2llbnQgZm9y
IG1hbHdhcmUgdG8gaW5zdGFsbCBpdHNlbGYgYW5kIGhhcm0geW91ciBjb21wdXRlci4iOwogCisv
KiBEaXNwbGF5IG5hbWUgZm9yIHRleHQgdHJhY2sga2luZCAnbWV0YWRhdGEnIHRoYXQgaXMgdXNl
ZCB0byBzZWUgaWYgdGhlIEhUTUwgJ2xhYmVsJyBhbHJlYWR5IGNvbnRhaW5zICdNZXRhZGF0YScu
ICovCisiTWV0YWRhdGEiID0gIk1ldGFkYXRhIjsKKwogLyogTGFiZWwgdGV4dCB0byBiZSB1c2Vk
IHdoZW4gYSBwbHVnaW4gaXMgbWlzc2luZyAqLwogIk1pc3NpbmcgUGx1Zy1pbiIgPSAiTWlzc2lu
ZyBQbHVnLWluIjsKIApAQCAtNzI0LDYgKzc0NSw5IEBACiAvKiBSaWdodCB0byBMZWZ0IGNvbnRl
eHQgbWVudSBpdGVtICovCiAiUmlnaHQgdG8gTGVmdCIgPSAiUmlnaHQgdG8gTGVmdCI7CiAKKy8q
IERpc3BsYXkgbmFtZSBmb3IgZGVhZiBhbmQgaGFyZCBvZiBoZWFyaW5nIHN1YnRpdGxlIHRleHQg
dHJhY2tzIHRoYXQgaXMgdXNlZCB0byBzZWUgaWYgdGhlIEhUTUwgJ2xhYmVsJyBhbHJlYWR5IGNv
bnRhaW5zICdTREgnLiAqLworIlNESCIgPSAiU0RIIjsKKwogLyogVGl0bGUgb2YgdGhlIFNlYXJj
aCBidXR0b24gZm9yIHpvb21lZCBmb3JtIGNvbnRyb2xzLiAqLwogIlNlYXJjaCIgPSAiU2VhcmNo
IjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVu
Y2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAK
aW5kZXggZDNlNDVlOGJiNGM3ZDIwMGNkM2E0YTIxMjgyMGRlNGVkZmNkMWJmOC4uNTVmYTA5NjRj
N2ZkOTg4NjM1ZWYzMzI1Y2JkYWJmMGUyMTM0NDg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCkBAIC0xNzAsNyArMTcwLDcgQEAgdm9pZCBD
YXB0aW9uVXNlclByZWZlcmVuY2VzOjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCkKIAogVmVj
dG9yPFN0cmluZz4gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzKCkg
Y29uc3QKIHsKLSAgICBWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFu
Z3VhZ2VzKCk7CisgICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExh
bmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6Tm8pOwogICAgIGlmIChtX3Rlc3RpbmdN
b2RlICYmICFtX3VzZXJQcmVmZXJyZWRMYW5ndWFnZS5pc0VtcHR5KCkpCiAgICAgICAgIGxhbmd1
YWdlcy5pbnNlcnQoMCwgbV91c2VyUHJlZmVycmVkTGFuZ3VhZ2UpOwogCkBAIC0zNDEsNyArMzQx
LDcgQEAgaW50IENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnRleHRUcmFja1NlbGVjdGlvblNjb3Jl
KFRleHRUcmFjayogdHJhY2ssIEhUTUxNZWRpYUUKICAgICAgICAgICAgIGlmIChvZmZzZXQpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBs
YW5ndWFnZUxpc3QuYXBwZW5kKGRlZmF1bHRMYW5ndWFnZSgpKTsKKyAgICAgICAgICAgIGxhbmd1
YWdlTGlzdC5hcHBlbmQoZGVmYXVsdExhbmd1YWdlKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpO
bykpOwogCiAgICAgICAgICAgICAvLyBPbmx5IGVuYWJsZSBhIHRleHQgdHJhY2sgaWYgdGhlIGN1
cnJlbnQgYXVkaW8gdHJhY2sgaXMgTk9UIGluIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdl
IC4uLgogICAgICAgICAgICAgc2l6ZV90IG9mZnNldCA9IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5n
dWFnZUluTGlzdChhdWRpb1RyYWNrTGFuZ3VhZ2UsIGxhbmd1YWdlTGlzdCwgZXhhY3RNYXRjaCk7
CkBAIC00MTgsNyArNDE4LDcgQEAgU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OnByaW1h
cnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3ByaW1h
cnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBt
X3ByaW1hcnlBdWRpb1RyYWNrTGFuZ3VhZ2VPdmVycmlkZTsKLSAgICByZXR1cm4gZGVmYXVsdExh
bmd1YWdlKCk7CisgICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZShTaG91bGRNaW5pbWl6ZUxhbmd1
YWdlczo6Tm8pOwogfQogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
YXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAppbmRleCBjZjJlMWJlYTI1YjBmMDc5OTg2
MzkyMDU5NDVkZjBlZWY5MmQzYzQyLi5mY2E2YWNjODI3ODUzYjQ1NmE5YmEwYzQwMDY4NzIyOTcw
MzMwYjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVy
ZW5jZXNNZWRpYUFGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJl
ZmVyZW5jZXNNZWRpYUFGLmNwcApAQCAtNDcxLDM2ICs0NzEsMjEgQEAgdm9pZCBDYXB0aW9uVXNl
clByZWZlcmVuY2VzTWVkaWFBRjo6c2V0UHJlZmVycmVkTGFuZ3VhZ2UoY29uc3QgU3RyaW5nJiBs
YW5ndWFnZSkKIAogVmVjdG9yPFN0cmluZz4gQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUY6
OnByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0CiB7CisgICAgYXV0byBwcmVmZXJyZWRMYW5ndWFn
ZXMgPSBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpwcmVmZXJyZWRMYW5ndWFnZXMoKTsKICAgICBp
ZiAodGVzdGluZ01vZGUoKSB8fCAhTWVkaWFBY2Nlc3NpYmlsaXR5TGlicmFyeSgpKQotICAgICAg
ICByZXR1cm4gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzKCk7Cisg
ICAgICAgIHJldHVybiBwcmVmZXJyZWRMYW5ndWFnZXM7CiAKLSAgICBWZWN0b3I8U3RyaW5nPiBw
bGF0Zm9ybUxhbmd1YWdlcyA9IHBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcygpOwotICAg
IFZlY3RvcjxTdHJpbmc+IG92ZXJyaWRlID0gdXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRl
KCk7Ci0gICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKHBsYXRmb3Jt
TGFuZ3VhZ2VzLnNpemUoKSAhPSBvdmVycmlkZS5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4g
b3ZlcnJpZGU7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb3ZlcnJpZGUuc2l6ZSgp
OyBpKyspIHsKLSAgICAgICAgICAgIGlmIChvdmVycmlkZVtpXSAhPSBwbGF0Zm9ybUxhbmd1YWdl
c1tpXSkKLSAgICAgICAgICAgICAgICByZXR1cm4gb3ZlcnJpZGU7Ci0gICAgICAgIH0KLSAgICB9
CisgICAgYXV0byBjYXB0aW9uTGFuZ3VhZ2VzID0gYWRvcHRDRihNQUNhcHRpb25BcHBlYXJhbmNl
Q29weVNlbGVjdGVkTGFuZ3VhZ2VzKGtNQUNhcHRpb25BcHBlYXJhbmNlRG9tYWluVXNlcikpOwor
ICAgIENGSW5kZXggY2FwdGlvbkxhbmd1YWdlc0NvdW50ID0gY2FwdGlvbkxhbmd1YWdlcyA/IENG
QXJyYXlHZXRDb3VudChjYXB0aW9uTGFuZ3VhZ2VzLmdldCgpKSA6IDA7CisgICAgaWYgKCFjYXB0
aW9uTGFuZ3VhZ2VzQ291bnQpCisgICAgICAgIHJldHVybiBwcmVmZXJyZWRMYW5ndWFnZXM7CiAK
LSAgICBDRkluZGV4IGxhbmd1YWdlQ291bnQgPSAwOwotICAgIFJldGFpblB0cjxDRkFycmF5UmVm
PiBsYW5ndWFnZXMgPSBhZG9wdENGKE1BQ2FwdGlvbkFwcGVhcmFuY2VDb3B5U2VsZWN0ZWRMYW5n
dWFnZXMoa01BQ2FwdGlvbkFwcGVhcmFuY2VEb21haW5Vc2VyKSk7Ci0gICAgaWYgKGxhbmd1YWdl
cykKLSAgICAgICAgbGFuZ3VhZ2VDb3VudCA9IENGQXJyYXlHZXRDb3VudChsYW5ndWFnZXMuZ2V0
KCkpOwotCi0gICAgaWYgKCFsYW5ndWFnZUNvdW50KQotICAgICAgICByZXR1cm4gQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzKCk7Ci0KLSAgICBWZWN0b3I8U3RyaW5n
PiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwotICAgIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMucmVz
ZXJ2ZUNhcGFjaXR5KGxhbmd1YWdlQ291bnQgKyBwbGF0Zm9ybUxhbmd1YWdlcy5zaXplKCkpOwot
ICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGxhbmd1YWdlQ291bnQ7IGkrKykKLSAgICAgICAg
dXNlclByZWZlcnJlZExhbmd1YWdlcy5hcHBlbmQoc3RhdGljX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENG
QXJyYXlHZXRWYWx1ZUF0SW5kZXgobGFuZ3VhZ2VzLmdldCgpLCBpKSkpOwotCi0gICAgdXNlclBy
ZWZlcnJlZExhbmd1YWdlcy5hcHBlbmRWZWN0b3IocGxhdGZvcm1MYW5ndWFnZXMpOwotCi0gICAg
cmV0dXJuIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7CisgICAgVmVjdG9yPFN0cmluZz4gY2FwdGlv
bkFuZFByZWZlcnJlZExhbmd1YWdlczsKKyAgICBjYXB0aW9uQW5kUHJlZmVycmVkTGFuZ3VhZ2Vz
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY2FwdGlvbkxhbmd1YWdlc0NvdW50ICsgcHJlZmVycmVk
TGFuZ3VhZ2VzLnNpemUoKSk7CisgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgY2FwdGlvbkxh
bmd1YWdlc0NvdW50OyBpKyspCisgICAgICAgIGNhcHRpb25BbmRQcmVmZXJyZWRMYW5ndWFnZXMu
dW5jaGVja2VkQXBwZW5kKHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkFycmF5R2V0VmFsdWVB
dEluZGV4KGNhcHRpb25MYW5ndWFnZXMuZ2V0KCksIGkpKSk7CisgICAgY2FwdGlvbkFuZFByZWZl
cnJlZExhbmd1YWdlcy5hcHBlbmRWZWN0b3IoV1RGTW92ZShwcmVmZXJyZWRMYW5ndWFnZXMpKTsK
KyAgICByZXR1cm4gY2FwdGlvbkFuZFByZWZlcnJlZExhbmd1YWdlczsKIH0KIAogdm9pZCBDYXB0
aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRjo6c2V0UHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3Rp
Yyhjb25zdCBTdHJpbmcmIGNoYXJhY3RlcmlzdGljKQpAQCAtNTc5LDEzICs1NjQsMTggQEAgc3Rh
dGljIHZvaWQgYnVpbGREaXNwbGF5U3RyaW5nRm9yVHJhY2tCYXNlKFN0cmluZ0J1aWxkZXImIGRp
c3BsYXlOYW1lLCBjb25zdCBUcmEKICAgICBTdHJpbmcgbGFiZWwgPSB0cmFjay5sYWJlbCgpOwog
ICAgIFN0cmluZyB0cmFja0xhbmd1YWdlSWRlbnRpZmllciA9IHRyYWNrLnZhbGlkQkNQNDdMYW5n
dWFnZSgpOwogCi0gICAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBjdXJyZW50TG9jYWxlID0gYWRv
cHRDRihDRkxvY2FsZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkZWZhdWx0TGFuZ3VhZ2Uo
KS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CisgICAgYXV0byBwcmVmZXJyZWRMYW5ndWFnZXMg
PSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObyk7Cisg
ICAgYXV0byBkZWZhdWx0TGFuZ3VhZ2UgPSAhcHJlZmVycmVkTGFuZ3VhZ2VzLmlzRW1wdHkoKSA/
IHByZWZlcnJlZExhbmd1YWdlc1swXSA6IGVtcHR5U3RyaW5nKCk7IC8vIFRoaXMgbWF0Y2hlcyBg
V1RGOjpkZWZhdWx0TGFuZ3VhZ2VgLgorICAgIFJldGFpblB0cjxDRkxvY2FsZVJlZj4gY3VycmVu
dExvY2FsZSA9IGFkb3B0Q0YoQ0ZMb2NhbGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGVm
YXVsdExhbmd1YWdlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKICAgICBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IGxvY2FsZUlkZW50aWZpZXIgPSBhZG9wdENGKENGTG9jYWxlQ3JlYXRlQ2Fub25p
Y2FsTG9jYWxlSWRlbnRpZmllckZyb21TdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgdHJhY2tM
YW5ndWFnZUlkZW50aWZpZXIuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOwogICAgIFJldGFpblB0
cjxDRlN0cmluZ1JlZj4gbGFuZ3VhZ2VDRiA9IGFkb3B0Q0YoQ0ZMb2NhbGVDb3B5RGlzcGxheU5h
bWVGb3JQcm9wZXJ0eVZhbHVlKGN1cnJlbnRMb2NhbGUuZ2V0KCksIGtDRkxvY2FsZUxhbmd1YWdl
Q29kZSwgbG9jYWxlSWRlbnRpZmllci5nZXQoKSkpOwogICAgIFN0cmluZyBsYW5ndWFnZSA9IGxh
bmd1YWdlQ0YuZ2V0KCk7CiAKICAgICBpZiAoIWxhYmVsLmlzRW1wdHkoKSkgewotICAgICAgICBp
ZiAobGFuZ3VhZ2UuaXNFbXB0eSgpIHx8IGxhYmVsLmNvbnRhaW5zKGxhbmd1YWdlKSkKKyAgICAg
ICAgLy8gQWRkIHRoZSBsYW5ndWFnZSBuYW1lIGFuZC9vciBjb3VudHJ5IG5hbWUgaWYgdGhlIHRo
ZSB0cmFjayBpc24ndCBpbiB0aGUgZGVmYXVsdCBsYW5ndWFnZSBvciB0aGUgZXhpc3RpbmcgbGFi
ZWwgZG9lc24ndCBhbHJlYWR5IGNvbnRhaW4gdGhlIGxhbmd1YWdlIG5hbWUuCisgICAgICAgIGJv
b2wgZXhhY3RNYXRjaDsKKyAgICAgICAgYm9vbCBtYXRjaGVzRGVmYXVsdExhbmd1YWdlID0gIWlu
ZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdCh0cmFja0xhbmd1YWdlSWRlbnRpZmllciwg
eyBkZWZhdWx0TGFuZ3VhZ2UgfSwgZXhhY3RNYXRjaCk7CisgICAgICAgIGlmIChtYXRjaGVzRGVm
YXVsdExhbmd1YWdlIHx8IGxhbmd1YWdlLmlzRW1wdHkoKSB8fCBsYWJlbC5jb250YWlucyhsYW5n
dWFnZSkpCiAgICAgICAgICAgICBkaXNwbGF5TmFtZS5hcHBlbmQobGFiZWwpOwogICAgICAgICBl
bHNlIHsKICAgICAgICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGxvY2FsZURpY3Qg
PSBhZG9wdENGKENGTG9jYWxlQ3JlYXRlQ29tcG9uZW50c0Zyb21Mb2NhbGVJZGVudGlmaWVyKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGxvY2FsZUlkZW50aWZpZXIuZ2V0KCkpKTsKQEAgLTYwOCw0MyAr
NTk4LDExIEBAIHN0YXRpYyB2b2lkIGJ1aWxkRGlzcGxheVN0cmluZ0ZvclRyYWNrQmFzZShTdHJp
bmdCdWlsZGVyJiBkaXNwbGF5TmFtZSwgY29uc3QgVHJhCiAgICAgfSBlbHNlIHsKICAgICAgICAg
U3RyaW5nIGxhbmd1YWdlQW5kTG9jYWxlID0gYWRvcHRDRihDRkxvY2FsZUNvcHlEaXNwbGF5TmFt
ZUZvclByb3BlcnR5VmFsdWUoY3VycmVudExvY2FsZS5nZXQoKSwga0NGTG9jYWxlSWRlbnRpZmll
ciwgdHJhY2tMYW5ndWFnZUlkZW50aWZpZXIuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpLmdldCgp
OwogICAgICAgICBpZiAoIWxhbmd1YWdlQW5kTG9jYWxlLmlzRW1wdHkoKSkKLSAgICAgICAgICAg
IGxhYmVsID0gbGFuZ3VhZ2VBbmRMb2NhbGU7CisgICAgICAgICAgICBkaXNwbGF5TmFtZS5hcHBl
bmQobGFuZ3VhZ2VBbmRMb2NhbGUpOwogICAgICAgICBlbHNlIGlmICghbGFuZ3VhZ2UuaXNFbXB0
eSgpKQotICAgICAgICAgICAgbGFiZWwgPSBsYW5ndWFnZTsKKyAgICAgICAgICAgIGRpc3BsYXlO
YW1lLmFwcGVuZChsYW5ndWFnZSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGxhYmVsID0g
bG9jYWxlSWRlbnRpZmllci5nZXQoKTsKLQotICAgICAgICBpZiAodHJhY2sudHlwZSgpID09IFRy
YWNrQmFzZTo6VGV4dFRyYWNrKSB7Ci0gICAgICAgICAgICBhdXRvJiB0ZXh0VHJhY2sgPSBkb3du
Y2FzdDxUZXh0VHJhY2s+KHRyYWNrKTsKLSAgICAgICAgICAgIHN3aXRjaCAodGV4dFRyYWNrLmtp
bmQoKSkgewotICAgICAgICAgICAgY2FzZSBUZXh0VHJhY2s6OktpbmQ6OlN1YnRpdGxlczoKLSAg
ICAgICAgICAgICAgICAvLyBTdWJ0aXRsZSB0ZXh0IHRyYWNrcyBhcmUgb25seSBzaG93biBpbiBh
IGRlZGljYXRlZCAiU3VidGl0bGUiIGdyb3VwaW5nLCBtZWFuaW5nCi0gICAgICAgICAgICAgICAg
Ly8gaXQgd291bGQgbG9vayBvZGQgdG8gYWRkIHRoZSBzYW1lIHRpdGxlIGFzIGEgc3VmZml4IChl
LmcuICJFbmdsaXNoIFN1YnRpdGxlcyIpLgotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAg
ICAgICAgICBjYXNlIFRleHRUcmFjazo6S2luZDo6Q2FwdGlvbnM6Ci0gICAgICAgICAgICAgICAg
bGFiZWwgPSBjYXB0aW9uc1RleHRUcmFja1dpdGhvdXRMYWJlbE1lbnVJdGVtVGV4dChsYWJlbCk7
Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGNhc2UgVGV4dFRyYWNrOjpL
aW5kOjpEZXNjcmlwdGlvbnM6Ci0gICAgICAgICAgICAgICAgbGFiZWwgPSBkZXNjcmlwdGlvbnNU
ZXh0VHJhY2tXaXRob3V0TGFiZWxNZW51SXRlbVRleHQobGFiZWwpOwotICAgICAgICAgICAgICAg
IGJyZWFrOwotCi0gICAgICAgICAgICBjYXNlIFRleHRUcmFjazo6S2luZDo6Q2hhcHRlcnM6Ci0g
ICAgICAgICAgICAgICAgbGFiZWwgPSBjaGFwdGVyc1RleHRUcmFja1dpdGhvdXRMYWJlbE1lbnVJ
dGVtVGV4dChsYWJlbCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGNh
c2UgVGV4dFRyYWNrOjpLaW5kOjpNZXRhZGF0YToKLSAgICAgICAgICAgICAgICBsYWJlbCA9IG1l
dGFkYXRhVGV4dFRyYWNrV2l0aG91dExhYmVsTWVudUl0ZW1UZXh0KGxhYmVsKTsKLSAgICAgICAg
ICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgY2FzZSBUZXh0VHJhY2s6OktpbmQ6OkZvcmNl
ZDoKLSAgICAgICAgICAgICAgICBsYWJlbCA9IGZvcmNlZFRyYWNrTWVudUl0ZW1UZXh0KGxhYmVs
KTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0g
ICAgICAgIGRpc3BsYXlOYW1lLmFwcGVuZChsYWJlbCk7CisgICAgICAgICAgICBkaXNwbGF5TmFt
ZS5hcHBlbmQobG9jYWxlSWRlbnRpZmllci5nZXQoKSk7CiAgICAgfQogfQogCkBAIC02ODMsMjIg
KzY0MSw1NCBAQCBzdGF0aWMgU3RyaW5nIHRyYWNrRGlzcGxheU5hbWUoVGV4dFRyYWNrKiB0cmFj
aykKICAgICBTdHJpbmcgZGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZUJ1aWxkZXIudG9TdHJpbmco
KTsKIAogICAgIGlmICh0cmFjay0+aXNDbG9zZWRDYXB0aW9ucygpKSB7Ci0gICAgICAgIGRpc3Bs
YXlOYW1lID0gY2xvc2VkQ2FwdGlvblRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKLSAg
ICAgICAgaWYgKHRyYWNrLT5pc0Vhc3lUb1JlYWQoKSkKKyAgICAgICAgaWYgKCFkaXNwbGF5TmFt
ZS5jb250YWlucyhjbG9zZWRDYXB0aW9uS2luZFRyYWNrRGlzcGxheU5hbWUoKSkpCisgICAgICAg
ICAgICBkaXNwbGF5TmFtZSA9IGNsb3NlZENhcHRpb25UcmFja01lbnVJdGVtVGV4dChkaXNwbGF5
TmFtZSk7CisgICAgICAgIGlmICh0cmFjay0+aXNFYXN5VG9SZWFkKCkgJiYgIWRpc3BsYXlOYW1l
LmNvbnRhaW5zKGVhc3lSZWFkZXJLaW5kRGlzcGxheU5hbWUoKSkpCiAgICAgICAgICAgICBkaXNw
bGF5TmFtZSA9IGVhc3lSZWFkZXJUcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7CiAKICAg
ICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lOwogICAgIH0KIAotICAgIGlmICh0cmFjay0+aXNTREgo
KSkKKyAgICBzd2l0Y2ggKHRyYWNrLT5raW5kKCkpIHsKKyAgICBjYXNlIFRleHRUcmFjazo6S2lu
ZDo6U3VidGl0bGVzOgorICAgICAgICAvLyBTdWJ0aXRsZSB0ZXh0IHRyYWNrcyBhcmUgb25seSBz
aG93biBpbiBhIGRlZGljYXRlZCAiU3VidGl0bGUiIGdyb3VwaW5nLCBtZWFuaW5nCisgICAgICAg
IC8vIGl0IHdvdWxkIGxvb2sgb2RkIHRvIGFkZCB0aGUgc2FtZSB0aXRsZSBhcyBhIHN1ZmZpeCAo
ZS5nLiAiRW5nbGlzaCBTdWJ0aXRsZXMiKS4KKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFRl
eHRUcmFjazo6S2luZDo6Q2FwdGlvbnM6CisgICAgICAgIGlmICghZGlzcGxheU5hbWUuY29udGFp
bnMoY2FwdGlvbnNUZXh0VHJhY2tLaW5kRGlzcGxheU5hbWUoKSkpCisgICAgICAgICAgICBkaXNw
bGF5TmFtZSA9IGNhcHRpb25zVGV4dFRyYWNrV2l0aG91dExhYmVsTWVudUl0ZW1UZXh0KGRpc3Bs
YXlOYW1lKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFRleHRUcmFjazo6S2luZDo6RGVz
Y3JpcHRpb25zOgorICAgICAgICBpZiAoIWRpc3BsYXlOYW1lLmNvbnRhaW5zKGRlc2NyaXB0aW9u
c1RleHRUcmFja0tpbmREaXNwbGF5TmFtZSgpKSkKKyAgICAgICAgICAgIGRpc3BsYXlOYW1lID0g
ZGVzY3JpcHRpb25zVGV4dFRyYWNrV2l0aG91dExhYmVsTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1l
KTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFRleHRUcmFjazo6S2luZDo6Q2hhcHRlcnM6
CisgICAgICAgIGlmICghZGlzcGxheU5hbWUuY29udGFpbnMoY2hhcHRlcnNUZXh0VHJhY2tLaW5k
RGlzcGxheU5hbWUoKSkpCisgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IGNoYXB0ZXJzVGV4dFRy
YWNrV2l0aG91dExhYmVsTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKKyAgICAgICAgYnJlYWs7
CisKKyAgICBjYXNlIFRleHRUcmFjazo6S2luZDo6TWV0YWRhdGE6CisgICAgICAgIGlmICghZGlz
cGxheU5hbWUuY29udGFpbnMobWV0YWRhdGFUZXh0VHJhY2tLaW5kRGlzcGxheU5hbWUoKSkpCisg
ICAgICAgICAgICBkaXNwbGF5TmFtZSA9IG1ldGFkYXRhVGV4dFRyYWNrV2l0aG91dExhYmVsTWVu
dUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFRleHRU
cmFjazo6S2luZDo6Rm9yY2VkOgorICAgICAgICAvLyBIYW5kbGVkIGJlbG93LgorICAgICAgICBi
cmVhazsKKyAgICB9CisKKyAgICBpZiAodHJhY2stPmlzU0RIKCkgJiYgIWRpc3BsYXlOYW1lLmNv
bnRhaW5zKHNkaFRyYWNrS2luZERpc3BsYXlOYW1lKCkpKQogICAgICAgICBkaXNwbGF5TmFtZSA9
IHNkaFRyYWNrTWVudUl0ZW1UZXh0KGRpc3BsYXlOYW1lKTsKIAotICAgIGlmICh0cmFjay0+Y29u
dGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCkpCi0gICAgICAgIGRpc3BsYXlOYW1lID0gZm9yY2Vk
VHJhY2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOwotCi0gICAgaWYgKHRyYWNrLT5pc0Vhc3lU
b1JlYWQoKSkKKyAgICBpZiAodHJhY2stPmlzRWFzeVRvUmVhZCgpICYmICFkaXNwbGF5TmFtZS5j
b250YWlucyhlYXN5UmVhZGVyS2luZERpc3BsYXlOYW1lKCkpKQogICAgICAgICBkaXNwbGF5TmFt
ZSA9IGVhc3lSZWFkZXJUcmFja01lbnVJdGVtVGV4dChkaXNwbGF5TmFtZSk7CiAKKyAgICBpZiAo
KHRyYWNrLT5jb250YWluc09ubHlGb3JjZWRTdWJ0aXRsZXMoKSB8fCB0cmFjay0+a2luZCgpID09
IFRleHRUcmFjazo6S2luZDo6Rm9yY2VkKSAmJiAhZGlzcGxheU5hbWUuY29udGFpbnMoZm9yY2Vk
VHJhY2tLaW5kRGlzcGxheU5hbWUoKSkpCisgICAgICAgIGRpc3BsYXlOYW1lID0gZm9yY2VkVHJh
Y2tNZW51SXRlbVRleHQoZGlzcGxheU5hbWUpOworCiAgICAgcmV0dXJuIGRpc3BsYXlOYW1lOwog
fQogCkBAIC03MDksMTYgKzY5OSwyMiBAQCBTdHJpbmcgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01l
ZGlhQUY6OmRpc3BsYXlOYW1lRm9yVHJhY2soVGV4dFRyYWNrKiB0cmFjaykgY29ucwogCiBzdGF0
aWMgYm9vbCB0ZXh0VHJhY2tDb21wYXJlKGNvbnN0IFJlZlB0cjxUZXh0VHJhY2s+JiBhLCBjb25z
dCBSZWZQdHI8VGV4dFRyYWNrPiYgYikKIHsKLSAgICBTdHJpbmcgcHJlZmVycmVkTGFuZ3VhZ2VE
aXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lRm9yTGFuZ3VhZ2VMb2NhbGUobGFuZ3VhZ2VJZGVudGlm
aWVyKGRlZmF1bHRMYW5ndWFnZSgpKSk7CisgICAgYXV0byBwcmVmZXJyZWRMYW5ndWFnZXMgPSB1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFNob3VsZE1pbmltaXplTGFuZ3VhZ2VzOjpObyk7CisKKyAg
ICBib29sIGFFeGFjdE1hdGNoOworICAgIGF1dG8gYVVzZXJMYW5ndWFnZUluZGV4ID0gaW5kZXhP
ZkJlc3RNYXRjaGluZ0xhbmd1YWdlSW5MaXN0KGEtPnZhbGlkQkNQNDdMYW5ndWFnZSgpLCBwcmVm
ZXJyZWRMYW5ndWFnZXMsIGFFeGFjdE1hdGNoKTsKKworICAgIGJvb2wgYkV4YWN0TWF0Y2g7Cisg
ICAgYXV0byBiVXNlckxhbmd1YWdlSW5kZXggPSBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJ
bkxpc3QoYi0+dmFsaWRCQ1A0N0xhbmd1YWdlKCksIHByZWZlcnJlZExhbmd1YWdlcywgYkV4YWN0
TWF0Y2gpOworCisgICAgaWYgKGFVc2VyTGFuZ3VhZ2VJbmRleCAhPSBiVXNlckxhbmd1YWdlSW5k
ZXgpCisgICAgICAgIHJldHVybiBhVXNlckxhbmd1YWdlSW5kZXggPCBiVXNlckxhbmd1YWdlSW5k
ZXg7CisgICAgaWYgKGFFeGFjdE1hdGNoICE9IGJFeGFjdE1hdGNoKQorICAgICAgICByZXR1cm4g
YUV4YWN0TWF0Y2g7CisKICAgICBTdHJpbmcgYUxhbmd1YWdlRGlzcGxheU5hbWUgPSBkaXNwbGF5
TmFtZUZvckxhbmd1YWdlTG9jYWxlKGxhbmd1YWdlSWRlbnRpZmllcihhLT52YWxpZEJDUDQ3TGFu
Z3VhZ2UoKSkpOwogICAgIFN0cmluZyBiTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1l
Rm9yTGFuZ3VhZ2VMb2NhbGUobGFuZ3VhZ2VJZGVudGlmaWVyKGItPnZhbGlkQkNQNDdMYW5ndWFn
ZSgpKSk7CiAKLSAgICAvLyBUcmFja3MgaW4gdGhlIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2Ug
YXJlIGFsd2F5cyBhdCB0aGUgdG9wIG9mIHRoZSBtZW51LgotICAgIGJvb2wgYUlzUHJlZmVycmVk
TGFuZ3VhZ2UgPSBhTGFuZ3VhZ2VEaXNwbGF5TmFtZSA9PSBwcmVmZXJyZWRMYW5ndWFnZURpc3Bs
YXlOYW1lOwotICAgIGJvb2wgYklzUHJlZmVycmVkTGFuZ3VhZ2UgPSBiTGFuZ3VhZ2VEaXNwbGF5
TmFtZSA9PSBwcmVmZXJyZWRMYW5ndWFnZURpc3BsYXlOYW1lOwotICAgIGlmIChhSXNQcmVmZXJy
ZWRMYW5ndWFnZSAhPSBiSXNQcmVmZXJyZWRMYW5ndWFnZSkKLSAgICAgICAgcmV0dXJuIGFJc1By
ZWZlcnJlZExhbmd1YWdlOwotCiAgICAgQ29sbGF0b3IgY29sbGF0b3I7CiAKICAgICAvLyBUcmFj
a3Mgbm90IGluIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlIHNvcnQgZmlyc3QgYnkgbGFu
Z3VhZ2UgLi4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3Bw
CmluZGV4IGIwYTkzZjI2MjM3ZWIxNGFhYmU1MWJmZGM4ZmZkMDQ3N2M1MzQ2YjkuLmU5YTUyMDE0
MGUxNDU5YTc4MTllZDA1MjljYWM0MDZlZmYxZjNhMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC0xMTEwLDIxICsxMTEwLDQxIEBAIFN0cmlu
ZyBhdWRpb1RyYWNrTm9MYWJlbFRleHQoKQogCiAjaWYgVVNFKENGKQogCitTdHJpbmcgY2FwdGlv
bnNUZXh0VHJhY2tLaW5kRGlzcGxheU5hbWUoKQoreworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6
ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCJDYXB0aW9ucyIsICJEaXNwbGF5IG5hbWUgZm9yIHRl
eHQgdHJhY2sga2luZCAnY2FwdGlvbnMnIHRoYXQgaXMgdXNlZCB0byBzZWUgaWYgdGhlIEhUTUwg
J2xhYmVsJyBhbHJlYWR5IGNvbnRhaW5zICdDYXB0aW9ucycuIikpOworfQorCiBTdHJpbmcgY2Fw
dGlvbnNUZXh0VHJhY2tXaXRob3V0TGFiZWxNZW51SXRlbVRleHQoY29uc3QgU3RyaW5nJiB0aXRs
ZSkKIHsKICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9DRlNUUklORygi
JUAgQ2FwdGlvbnMiLCAiQ2FwdGlvbnMgdGV4dCB0cmFjayBkaXNwbGF5IG5hbWUgZm9ybWF0IHRo
YXQgaW5jbHVkZXMgdGhlIGxhbmd1YWdlIGFuZC9vciBsb2NhbGUgKGUuZy4gJ0VuZ2xpc2ggQ2Fw
dGlvbnMnKS4iKSwgdGl0bGUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CiB9CiAKK1N0cmluZyBk
ZXNjcmlwdGlvbnNUZXh0VHJhY2tLaW5kRGlzcGxheU5hbWUoKQoreworICAgIHJldHVybiBmb3Jt
YXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCJEZXNjcmlwdGlvbnMiLCAiRGlzcGxh
eSBuYW1lIGZvciB0ZXh0IHRyYWNrIGtpbmQgJ2Rlc2NyaXB0aW9ucycgdGhhdCBpcyB1c2VkIHRv
IHNlZSBpZiB0aGUgSFRNTCAnbGFiZWwnIGFscmVhZHkgY29udGFpbnMgJ0Rlc2NyaXB0aW9ucycu
IikpOworfQorCiBTdHJpbmcgZGVzY3JpcHRpb25zVGV4dFRyYWNrV2l0aG91dExhYmVsTWVudUl0
ZW1UZXh0KGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgcmV0dXJuIGZvcm1hdExvY2FsaXpl
ZFN0cmluZyhXRUJfVUlfQ0ZTVFJJTkcoIiVAIERlc2NyaXB0aW9ucyIsICJEZXNjcmlwdGlvbnMg
dGV4dCB0cmFjayBkaXNwbGF5IG5hbWUgZm9ybWF0IHRoYXQgaW5jbHVkZXMgdGhlIGxhbmd1YWdl
IGFuZC9vciBsb2NhbGUgKGUuZy4gJ0VuZ2xpc2ggRGVzY3JpcHRpb25zJykuIiksIHRpdGxlLmNy
ZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOwogfQogCitTdHJpbmcgY2hhcHRlcnNUZXh0VHJhY2tLaW5k
RGlzcGxheU5hbWUoKQoreworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJ
X0NGU1RSSU5HKCJDaGFwdGVycyIsICJEaXNwbGF5IG5hbWUgZm9yIHRleHQgdHJhY2sga2luZCAn
Y2hhcHRlcnMnIHRoYXQgaXMgdXNlZCB0byBzZWUgaWYgdGhlIEhUTUwgJ2xhYmVsJyBhbHJlYWR5
IGNvbnRhaW5zICdDaGFwdGVycycuIikpOworfQorCiBTdHJpbmcgY2hhcHRlcnNUZXh0VHJhY2tX
aXRob3V0TGFiZWxNZW51SXRlbVRleHQoY29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKICAgICByZXR1
cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9DRlNUUklORygiJUAgQ2hhcHRlcnMiLCAi
Q2hhcHRlcnMgdGV4dCB0cmFjayBkaXNwbGF5IG5hbWUgZm9ybWF0IHRoYXQgaW5jbHVkZXMgdGhl
IGxhbmd1YWdlIGFuZC9vciBsb2NhbGUgKGUuZy4gJ0VuZ2xpc2ggQ2hhcHRlcnMnKS4iKSwgdGl0
bGUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CiB9CiAKK1N0cmluZyBtZXRhZGF0YVRleHRUcmFj
a0tpbmREaXNwbGF5TmFtZSgpCit7CisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhX
RUJfVUlfQ0ZTVFJJTkcoIk1ldGFkYXRhIiwgIkRpc3BsYXkgbmFtZSBmb3IgdGV4dCB0cmFjayBr
aW5kICdtZXRhZGF0YScgdGhhdCBpcyB1c2VkIHRvIHNlZSBpZiB0aGUgSFRNTCAnbGFiZWwnIGFs
cmVhZHkgY29udGFpbnMgJ01ldGFkYXRhJy4iKSk7Cit9CisKIFN0cmluZyBtZXRhZGF0YVRleHRU
cmFja1dpdGhvdXRMYWJlbE1lbnVJdGVtVGV4dChjb25zdCBTdHJpbmcmIHRpdGxlKQogewogICAg
IHJldHVybiBmb3JtYXRMb2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCIlQCBNZXRhZGF0
YSIsICJNZXRhZGF0YSB0ZXh0IHRyYWNrIGRpc3BsYXkgbmFtZSBmb3JtYXQgdGhhdCBpbmNsdWRl
cyB0aGUgbGFuZ3VhZ2UgYW5kL29yIGxvY2FsZSAoZS5nLiAnRW5nbGlzaCBNZXRhZGF0cycpLiIp
LCB0aXRsZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKQEAgLTExNDAsMjEgKzExNjAsNDEgQEAg
U3RyaW5nIHRleHRUcmFja0xhbmd1YWdlTWVudUl0ZW1UZXh0KGNvbnN0IFN0cmluZyYgdGl0bGUs
IGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UKICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5n
KFdFQl9VSV9DRlNUUklORygiJUAgKCVAKSIsICJUZXh0IHRyYWNrIGRpc3BsYXkgbmFtZSBmb3Jt
YXQgdGhhdCBpbmNsdWRlcyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHN1YnRpdGxlLCBpbiB0aGUgZm9y
bSBvZiAnVGl0bGUgKExhbmd1YWdlKSciKSwgdGl0bGUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwg
bGFuZ3VhZ2UuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CiB9CiAKK1N0cmluZyBjbG9zZWRDYXB0
aW9uS2luZFRyYWNrRGlzcGxheU5hbWUoKQoreworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6ZWRT
dHJpbmcoV0VCX1VJX0NGU1RSSU5HKCJDQyIsICJEaXNwbGF5IG5hbWUgZm9yIGNsb3NlZCBjYXB0
aW9ucyB0ZXh0IHRyYWNrcyB0aGF0IGlzIHVzZWQgdG8gc2VlIGlmIHRoZSBIVE1MICdsYWJlbCcg
YWxyZWFkeSBjb250YWlucyAnQ0MnLiIpKTsKK30KKwogU3RyaW5nIGNsb3NlZENhcHRpb25UcmFj
a01lbnVJdGVtVGV4dChjb25zdCBTdHJpbmcmIHRpdGxlKQogewogICAgIHJldHVybiBmb3JtYXRM
b2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCIlQCBDQyIsICJUZXh0IHRyYWNrIGNvbnRh
aW5zIGNsb3NlZCBjYXB0aW9ucyIpLCB0aXRsZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKIH0K
IAorU3RyaW5nIHNkaFRyYWNrS2luZERpc3BsYXlOYW1lKCkKK3sKKyAgICByZXR1cm4gZm9ybWF0
TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9DRlNUUklORygiU0RIIiwgIkRpc3BsYXkgbmFtZSBmb3Ig
ZGVhZiBhbmQgaGFyZCBvZiBoZWFyaW5nIHN1YnRpdGxlIHRleHQgdHJhY2tzIHRoYXQgaXMgdXNl
ZCB0byBzZWUgaWYgdGhlIEhUTUwgJ2xhYmVsJyBhbHJlYWR5IGNvbnRhaW5zICdTREgnLiIpKTsK
K30KKwogU3RyaW5nIHNkaFRyYWNrTWVudUl0ZW1UZXh0KGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7
CiAgICAgcmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfQ0ZTVFJJTkcoIiVAIFNE
SCIsICJUZXh0IHRyYWNrIGNvbnRhaW5zIHN1YnRpdGxlcyBmb3IgdGhlIGRlYWYgYW5kIGhhcmQg
b2YgaGVhcmluZyIpLCB0aXRsZS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKIH0KIAorU3RyaW5n
IGVhc3lSZWFkZXJLaW5kRGlzcGxheU5hbWUoKQoreworICAgIHJldHVybiBmb3JtYXRMb2NhbGl6
ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCJFYXN5IFJlYWRlciIsICJEaXNwbGF5IG5hbWUgZm9y
IGVhc3kgcmVhZGVyIHRleHQgdHJhY2tzIHRoYXQgaXMgdXNlZCB0byBzZWUgaWYgdGhlIEhUTUwg
J2xhYmVsJyBhbHJlYWR5IGNvbnRhaW5zICdFYXN5IFJlYWRlcicuIikpOworfQorCiBTdHJpbmcg
ZWFzeVJlYWRlclRyYWNrTWVudUl0ZW1UZXh0KGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAg
cmV0dXJuIGZvcm1hdExvY2FsaXplZFN0cmluZyhXRUJfVUlfQ0ZTVFJJTkcoIiVAIEVhc3kgUmVh
ZGVyIiwgIlRleHQgdHJhY2sgY29udGFpbnMgc2ltcGxpZmllZCAoM3JkIGdyYWRlIGxldmVsKSBz
dWJ0aXRsZXMiKSwgdGl0bGUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CiB9CiAKK1N0cmluZyBm
b3JjZWRUcmFja0tpbmREaXNwbGF5TmFtZSgpCit7CisgICAgcmV0dXJuIGZvcm1hdExvY2FsaXpl
ZFN0cmluZyhXRUJfVUlfQ0ZTVFJJTkcoIkZvcmNlZCIsICJEaXNwbGF5IG5hbWUgZm9yIHRleHQg
dHJhY2sga2luZCAnZm9yY2VkJyB0aGF0IGlzIHVzZWQgdG8gc2VlIGlmIHRoZSBIVE1MICdsYWJl
bCcgYWxyZWFkeSBjb250YWlucyAnRm9yY2VkJy4iKSk7Cit9CisKIFN0cmluZyBmb3JjZWRUcmFj
a01lbnVJdGVtVGV4dChjb25zdCBTdHJpbmcmIHRpdGxlKQogewogICAgIHJldHVybiBmb3JtYXRM
b2NhbGl6ZWRTdHJpbmcoV0VCX1VJX0NGU1RSSU5HKCIlQCBGb3JjZWQiLCAiVGV4dCB0cmFjayBj
b250YWlucyBmb3JjZWQgc3VidGl0bGVzIiksIHRpdGxlLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCmluZGV4IGI4YTJj
ZTg4M2RlY2E5NjNlZTYxM2I4N2M5OTgzNTQ4YmFlNzgwZTkuLmM3Yjg2ZWE1NzM2NmJiZDM4OWU4
ZWZkYmQwY2MyOTQwNDkwYjBkMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6
ZWRTdHJpbmdzLmgKQEAgLTMwNSwxNSArMzA1LDIzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBTdHJpbmcgdGV4dFRyYWNrTm9MYWJlbFRleHQoKTsKICAgICBTdHJpbmcgYXVkaW9UcmFja05v
TGFiZWxUZXh0KCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikKKyAgICBT
dHJpbmcgY2FwdGlvbnNUZXh0VHJhY2tLaW5kRGlzcGxheU5hbWUoKTsKICAgICBTdHJpbmcgY2Fw
dGlvbnNUZXh0VHJhY2tXaXRob3V0TGFiZWxNZW51SXRlbVRleHQoY29uc3QgU3RyaW5nJik7Cisg
ICAgU3RyaW5nIGRlc2NyaXB0aW9uc1RleHRUcmFja0tpbmREaXNwbGF5TmFtZSgpOwogICAgIFN0
cmluZyBkZXNjcmlwdGlvbnNUZXh0VHJhY2tXaXRob3V0TGFiZWxNZW51SXRlbVRleHQoY29uc3Qg
U3RyaW5nJik7CisgICAgU3RyaW5nIGNoYXB0ZXJzVGV4dFRyYWNrS2luZERpc3BsYXlOYW1lKCk7
CiAgICAgU3RyaW5nIGNoYXB0ZXJzVGV4dFRyYWNrV2l0aG91dExhYmVsTWVudUl0ZW1UZXh0KGNv
bnN0IFN0cmluZyYpOworICAgIFN0cmluZyBtZXRhZGF0YVRleHRUcmFja0tpbmREaXNwbGF5TmFt
ZSgpOwogICAgIFN0cmluZyBtZXRhZGF0YVRleHRUcmFja1dpdGhvdXRMYWJlbE1lbnVJdGVtVGV4
dChjb25zdCBTdHJpbmcmKTsKICAgICBTdHJpbmcgdGV4dFRyYWNrQ291bnRyeUFuZExhbmd1YWdl
TWVudUl0ZW1UZXh0KGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgY291bnRyeSwg
Y29uc3QgU3RyaW5nJiBsYW5ndWFnZSk7CiAgICAgU3RyaW5nIHRleHRUcmFja0xhbmd1YWdlTWVu
dUl0ZW1UZXh0KGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpOwor
ICAgIFN0cmluZyBjbG9zZWRDYXB0aW9uS2luZFRyYWNrRGlzcGxheU5hbWUoKTsKICAgICBTdHJp
bmcgY2xvc2VkQ2FwdGlvblRyYWNrTWVudUl0ZW1UZXh0KGNvbnN0IFN0cmluZyYpOworICAgIFN0
cmluZyBzZGhUcmFja0tpbmREaXNwbGF5TmFtZSgpOwogICAgIFN0cmluZyBzZGhUcmFja01lbnVJ
dGVtVGV4dChjb25zdCBTdHJpbmcmKTsKKyAgICBTdHJpbmcgZWFzeVJlYWRlcktpbmREaXNwbGF5
TmFtZSgpOwogICAgIFN0cmluZyBlYXN5UmVhZGVyVHJhY2tNZW51SXRlbVRleHQoY29uc3QgU3Ry
aW5nJik7CisgICAgU3RyaW5nIGZvcmNlZFRyYWNrS2luZERpc3BsYXlOYW1lKCk7CiAgICAgU3Ry
aW5nIGZvcmNlZFRyYWNrTWVudUl0ZW1UZXh0KGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBh
dWRpb0Rlc2NyaXB0aW9uVHJhY2tTdWZmaXhUZXh0KGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KaW5kZXgg
OWJkNTY0ODQwYzI4MmFmNTdhMTBkNGU0ZGNiZTg3NTczNGJjODI2YS4uYjQxOWI2MGQ5OGUzNjZk
YjQ3ZGM3MDU3ZWJkMjU3NjhkYzNkNjkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQpAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgTWVkaWFT
ZWxlY3Rpb25Hcm91cEFWRk9iakM6OnVwZGF0ZU9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4m
IGNoYXJhY3RlcmlzCiAgICAgICAgIHJldHVybjsKIAogICAgIE5TQXJyYXkqIGZpbHRlcmVkT3B0
aW9ucyA9IFtQQUw6OmdldEFWTWVkaWFTZWxlY3Rpb25Hcm91cENsYXNzKCkgbWVkaWFTZWxlY3Rp
b25PcHRpb25zRnJvbUFycmF5OlttX21lZGlhU2VsZWN0aW9uR3JvdXAgb3B0aW9uc10KLSAgICAg
ICAgZmlsdGVyZWRBbmRTb3J0ZWRBY2NvcmRpbmdUb1ByZWZlcnJlZExhbmd1YWdlczpjcmVhdGVO
U0FycmF5KHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSkuZ2V0KCldOworICAgICAgICBmaWx0ZXJl
ZEFuZFNvcnRlZEFjY29yZGluZ1RvUHJlZmVycmVkTGFuZ3VhZ2VzOmNyZWF0ZU5TQXJyYXkodXNl
clByZWZlcnJlZExhbmd1YWdlcyhTaG91bGRNaW5pbWl6ZUxhbmd1YWdlczo6Tm8pKS5nZXQoKV07
CiAKICAgICBpZiAoIVtmaWx0ZXJlZE9wdGlvbnMgY291bnRdICYmIGNoYXJhY3RlcmlzdGljcy5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjNDZmYzk5ZmVkYTRlZjE4YzBkODBl
YTdjNzgzODYxZTM1YjVhYjkwLi5hODgyMGY1ODEyYjBjYjE5MzFjYTVlZTUyYzU2NjQ5N2I0YzY2
ZTNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDUtMjUgIERldmluIFJvdXNzbyAgPGRy
b3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtNb2Rlcm4gTWVkaWEgQ29udHJvbHNdIFJFR1JF
U1NJT04ocjI1NDM4OSkgbWVkaWEgY29udHJvbHMgbmVlZHMgdGhlIGZ1bGwgbGlzdCBvZiBsYW5n
dWFnZSBwcmVmZXJlbmNlcyBmb3Igb3JkZXJpbmcgdHJhY2tzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYwMzgKKworICAgICAgICBSZXZpZXdlZCBi
eSBNeWxlcyBDLiBNYXhmaWVsZCBhbmQgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3NvcnRlZC1ieS11c2VyLXByZWZl
cnJlZC1sYW5ndWFnZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3NvcnRlZC1ieS11c2VyLXByZWZlcnJlZC1sYW5ndWFn
ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKworICAgICAgICAqIG1lZGlhL2NvbnRlbnQvbG9yZW0t
aXBzdW0udnR0OiBBZGRlZC4KKwogMjAyMS0wNS0yNCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXph
Y2hAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBTZXR0aW5nczogSW5jcmVhc2UgY29udHJhc3Qg
aXNuJ3QgZGV0ZWN0ZWQgaW4gYnJvd3NlciB1bnRpbCBhbiBhZGRpdGlvbmFsIHNldHRpbmcgaXMg
YXBwbGllZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvY29udGVudC9sb3JlbS1pcHN1
bS52dHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9jb250ZW50L2xvcmVtLWlwc3VtLnZ0dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMmFkOTIxYmU2NTM4YmUzZDE5Y2FjNDU1MjcxNDk0ZDNmMGQ3ZWFhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvY29udGVudC9sb3JlbS1pcHN1bS52dHQKQEAgLTAs
MCArMSw5IEBACitXRUJWVFQKKworMQorMDA6MDA6MDAuMDAwIC0tPiAwMDowMDowNS4wMDAKK2xv
cmVtCisKKzIKKzAwOjAwOjA1LjAwMCAtLT4gMDA6MDA6MTAuMDAwCitpcHN1bQpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9zb3J0ZWQtYnktdXNlci1wcmVmZXJyZWQtbGFu
Z3VhZ2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy90cmFja3Mtc3VwcG9ydC9zb3J0ZWQtYnktdXNlci1wcmVmZXJyZWQtbGFuZ3VhZ2VzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzU2ZmU0NTRiN2VhMzRmZGY5NTk1MzQ5YTAxODc3OTI4
ZWFhYTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3RyYWNrcy1zdXBwb3J0L3NvcnRlZC1ieS11c2VyLXByZWZlcnJlZC1sYW5ndWFn
ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjggQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCB0
cmFja3MgYXJlIHNvcnRlZCBiYXNlZCBvbiB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZXMu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignYnV0dG9uLnRyYWNrcycpIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNT
IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpLndpZHRoIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSAwCitUYXBwaW5nIHRyYWNrcyBi
dXR0b24uLi4KK1N1YnRpdGxlczogWworICAiT2ZmIiwKKyAgIkF1dG8gKFJlY29tbWVuZGVkKSIs
CisgICJsYWJlbC1lbiBDYXB0aW9ucyIsCisgICJEZXNjcmlwdGlvbnMiLAorICAibGFiZWwtZW4i
LAorICAiU3BhbmlzaCBDYXB0aW9ucyIsCisgICJEZXNjcmlwdGlvbnMgKFNwYW5pc2gpIiwKKyAg
IlNwYW5pc2giLAorICAibGFiZWwtZnIgKEZyZW5jaCkgQ2FwdGlvbnMiLAorICAiRGVzY3JpcHRp
b25zIChGcmVuY2gpIiwKKyAgImxhYmVsLWZyIChGcmVuY2gpIiwKKyAgIkdlcm1hbiBDYXB0aW9u
cyIsCisgICJEZXNjcmlwdGlvbnMgKEdlcm1hbikiLAorICAiR2VybWFuIgorXQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90cmFja3Mtc3VwcG9ydC9zb3J0
ZWQtYnktdXNlci1wcmVmZXJyZWQtbGFuZ3VhZ2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvc29ydGVkLWJ5LXVzZXItcHJlZmVy
cmVkLWxhbmd1YWdlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0MjAwODM5MGM1NmFlMmIzY2RmNjBmMzlm
OTBiOGEzYTE0NDcyZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLXN1cHBvcnQvc29ydGVkLWJ5LXVzZXItcHJlZmVycmVk
LWxhbmd1YWdlcy5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGxhbmd1YWdlPWVuLVVTLGVzLVVTIHVzZUZsZXhpYmxlVmlld3Bv
cnQ9dHJ1ZSBdIC0tPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCI+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLXV0aWxz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8dmlkZW8gc3JjPSIuLi8uLi9jb250ZW50L2NvdW50
aW5nLm1wNCIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB3aWR0
aDogNjAwcHg7IiBhdXRvcGxheSBjb250cm9scyBtdXRlZCBwbGF5c2lubGluZT4KKyAgICA8dHJh
Y2sgc3JjPSIuLi8uLi9sb3JlbS1pcHN1bS52dHQiIGtpbmQ9ImRlc2NyaXB0aW9ucyIgc3JjbGFu
Zz0iZW4iIGxhYmVsPSJEZXNjcmlwdGlvbnMiPgorICAgIDx0cmFjayBzcmM9Ii4uLy4uL2xvcmVt
LWlwc3VtLnZ0dCIga2luZD0iY2FwdGlvbnMiICAgICBzcmNsYW5nPSJlbiIgbGFiZWw9ImxhYmVs
LWVuIj4KKyAgICA8dHJhY2sgc3JjPSIuLi8uLi9sb3JlbS1pcHN1bS52dHQiIGtpbmQ9InN1YnRp
dGxlcyIgICAgc3JjbGFuZz0iZW4iIGxhYmVsPSJsYWJlbC1lbiI+CisgICAgPHRyYWNrIHNyYz0i
Li4vLi4vbG9yZW0taXBzdW0udnR0IiBraW5kPSJkZXNjcmlwdGlvbnMiIHNyY2xhbmc9ImRlIiBs
YWJlbD0iRGVzY3JpcHRpb25zIj4KKyAgICA8dHJhY2sgc3JjPSIuLi8uLi9sb3JlbS1pcHN1bS52
dHQiIGtpbmQ9ImNhcHRpb25zIiAgICAgc3JjbGFuZz0iZGUiPgorICAgIDx0cmFjayBzcmM9Ii4u
Ly4uL2xvcmVtLWlwc3VtLnZ0dCIga2luZD0ic3VidGl0bGVzIiAgICBzcmNsYW5nPSJkZSI+Cisg
ICAgPHRyYWNrIHNyYz0iLi4vLi4vbG9yZW0taXBzdW0udnR0IiBraW5kPSJkZXNjcmlwdGlvbnMi
IHNyY2xhbmc9ImZyIiBsYWJlbD0iRGVzY3JpcHRpb25zIj4KKyAgICA8dHJhY2sgc3JjPSIuLi8u
Li9sb3JlbS1pcHN1bS52dHQiIGtpbmQ9ImNhcHRpb25zIiAgICAgc3JjbGFuZz0iZnIiIGxhYmVs
PSJsYWJlbC1mciI+CisgICAgPHRyYWNrIHNyYz0iLi4vLi4vbG9yZW0taXBzdW0udnR0IiBraW5k
PSJzdWJ0aXRsZXMiICAgIHNyY2xhbmc9ImZyIiBsYWJlbD0ibGFiZWwtZnIiPgorICAgIDx0cmFj
ayBzcmM9Ii4uLy4uL2xvcmVtLWlwc3VtLnZ0dCIga2luZD0iZGVzY3JpcHRpb25zIiBzcmNsYW5n
PSJlcyIgbGFiZWw9IkRlc2NyaXB0aW9ucyI+CisgICAgPHRyYWNrIHNyYz0iLi4vLi4vbG9yZW0t
aXBzdW0udnR0IiBraW5kPSJjYXB0aW9ucyIgICAgIHNyY2xhbmc9ImVzIj4KKyAgICA8dHJhY2sg
c3JjPSIuLi8uLi9sb3JlbS1pcHN1bS52dHQiIGtpbmQ9InN1YnRpdGxlcyIgICAgc3JjbGFuZz0i
ZXMiPgorPC92aWRlbz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKword2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlwdGlvbihgVGhpcyB0ZXN0IGNoZWNrcyB0
aGF0IHRyYWNrcyBhcmUgc29ydGVkIGJhc2VkIG9uIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1
YWdlcy5gKTsKKworY29uc3QgbWVkaWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIp
OworY29uc3Qgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuc2hhZG93Um9vdChtZWRpYSk7
CisKK3dpbmRvdy5pbnRlcm5hbHMuc2V0TWVkaWFDb250cm9sc01heGltdW1SaWdodENvbnRhaW5l
ckJ1dHRvbkNvdW50T3ZlcnJpZGUobWVkaWEsIDEwMCk7IC8vIEEgZmluaXRlIHZhbHVlIGxhcmdl
ciB0aGFuIGFueXRoaW5nIGxpa2VseS4KK3dpbmRvdy5pbnRlcm5hbHMuc2V0Q2FwdGlvbkRpc3Bs
YXlNb2RlKCJtYW51YWwiKTsgLy8gU2hvdyBhbGwgdHJhY2tzLgorCittZWRpYS5hZGRFdmVudExp
c3RlbmVyKCJwbGF5IiwgKCkgPT4geworICAgIG1lZGlhLnBhdXNlKCk7CisKKyAgICBzaG91bGRC
ZWNvbWVEaWZmZXJlbnQoInNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignYnV0dG9uLnRyYWNrcycp
IiwgIm51bGwiLCAoKSA9PiB7CisgICAgICAgIHNob3VsZEJlY29tZURpZmZlcmVudCgic2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCdidXR0b24udHJhY2tzJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkud2lkdGgiLCAiMCIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGRlYnVnKCJUYXBwaW5n
IHRyYWNrcyBidXR0b24uLi4iKTsKKyAgICAgICAgICAgIGF3YWl0IHByZXNzT25FbGVtZW50KHNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcigiYnV0dG9uLnRyYWNrcyIpKTsKKworICAgICAgICAgICAg
bGV0IGNvbnRleHRtZW51ID0gYXdhaXQgZ2V0VHJhY2tzQ29udGV4dE1lbnUoKTsKKyAgICAgICAg
ICAgIGxldCBpdGVtcyA9IGNvbnRleHRtZW51WzBdLmNoaWxkcmVuOworICAgICAgICAgICAgaWYg
KGl0ZW1zWzBdLnRpdGxlID09PSAiU3VidGl0bGVzIikKKyAgICAgICAgICAgICAgICBpdGVtcyA9
IGl0ZW1zLnNsaWNlKDEpOworICAgICAgICAgICAgZGVidWcoIlN1YnRpdGxlczogIiArIEpTT04u
c3RyaW5naWZ5KGl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS50aXRsZSksIG51bGwsIDIpKTsKKwor
ICAgICAgICAgICAgbWVkaWEucmVtb3ZlKCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgfSk7CisgICAgfSk7Cit9KTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>