<?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>227423</bug_id>
          
          <creation_ts>2021-06-26 12:57:21 -0700</creation_ts>
          <short_desc>[Modern Media Controls] Modern media controls should not need to know about specific platforms in shared code</short_desc>
          <delta_ts>2021-06-29 09:51:20 -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>New Bugs</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=227489</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>annulen</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1772888</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-06-26 12:57:21 -0700</bug_when>
    <thetext>[Modern Media Controls] Modern media controls should not need to know about specific platforms in shared code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772889</commentid>
    <comment_count>1</comment_count>
      <attachid>432334</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-06-26 13:05:25 -0700</bug_when>
    <thetext>Created attachment 432334
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772894</commentid>
    <comment_count>2</comment_count>
      <attachid>432337</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-06-26 14:01:00 -0700</bug_when>
    <thetext>Created attachment 432337
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772904</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-26 18:08:01 -0700</bug_when>
    <thetext>Committed r279309 (239185@main): &lt;https://commits.webkit.org/239185@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432337.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772905</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-26 18:09:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/79823034&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773143</commentid>
    <comment_count>5</comment_count>
      <attachid>432337</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-06-28 11:22:42 -0700</bug_when>
    <thetext>Comment on attachment 432337
Patch

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

r=me (I realize it&apos;s after the fact, but still).  Nice work!

&gt; Source/WebCore/Modules/modern-media-controls/controls/icon-service.js:106
&gt; +        let resourceDirectory = layoutTraits.resourceDirectory();

NIT: you could move this below or inline it since the variable isn&apos;t used

&gt; Source/WebCore/Modules/modern-media-controls/controls/ios-inline-media-controls.js:31
&gt; -        options.layoutTraits = LayoutTraits.iOS;
&gt; +        options.layoutTraits = new IOSLayoutTraits(LayoutTraits.Mode.Inline);

I wonder if this is actually still needed?  Or ideally there&apos;d be a way for the `LayoutTraits` object to be provided when this is constructed instead, so that there&apos;s only ever one `LayoutTraits` object.

&gt; Source/WebCore/Modules/modern-media-controls/controls/layout-traits.js:31
&gt; +        this.mode = mode

missing `;`

&gt; Source/WebCore/Modules/modern-media-controls/controls/layout-traits.js:36
&gt; +        return this.mode == LayoutTraits.Mode.Fullscreen;

`===`

&gt; Source/WebCore/Modules/modern-media-controls/controls/layout-traits.js:46
&gt; +        throw &quot;Derived class must implement this function.&quot;;

Instead of having every subclass override everything, I feel like some of these could have a default implementation and only have some subclasses override.  Not a big deal tho.

&gt; Source/WebCore/Modules/modern-media-controls/controls/layout-traits.js:97
&gt; +    Fullscreen : 1

Style: missing trailing comma

&gt; Source/WebCore/Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js:33
&gt; -        options.layoutTraits = LayoutTraits.macOS | LayoutTraits.Fullscreen;
&gt; +        options.layoutTraits = new MacOSLayoutTraits(LayoutTraits.Mode.Fullscreen);

ditto (ios-inline-media-controls.js:31)

&gt; Source/WebCore/Modules/modern-media-controls/controls/macos-inline-media-controls.js:33
&gt; -        options.layoutTraits = LayoutTraits.macOS;
&gt; +        options.layoutTraits = new MacOSLayoutTraits(LayoutTraits.Mode.Inline);

ditto (ios-inline-media-controls.js:31)

&gt; Source/WebCore/Modules/modern-media-controls/controls/macos-layout-traits.js:47
&gt; +        return this.isFullscreen;

I think this should be `return false;`.

&gt; Source/WebCore/Modules/modern-media-controls/controls/time-control.js:43
&gt; +        this.scrubber = new Slider(&quot;scrubber&quot;, this.layoutTraits.knobStyleForScrubber());

NIT: I think this should have a more specific name like `knobStyleForTimeControlScrubber` so that it&apos;s not mistakenly thought to also be used for the volume scrubber

&gt; Source/WebCore/Modules/modern-media-controls/controls/watchos-layout-traits.js:50
&gt; +        return false;

I think this should be `return this.isFullscreen;`.

&gt; Source/WebCore/Modules/modern-media-controls/media/media-controller.js:102
&gt; +            let LayoutTraitsClass = eval(this.host.layoutTraitsClassName);

Is it absolutely necessary to use `eval`?  I don&apos;t know if this will cause issues (e.g. having a `&lt;video&gt;` inside an `&lt;iframe&gt;` that has CSP preventing any `eval` (i.e. without `unsafe-eval`).  I think the previous approach of returning a string and using a `switch` was fine.

&gt; Source/WebCore/Modules/modern-media-controls/media/media-controller.js:212
&gt; +        let overridenSupportingObjectClasses = this.layoutTraits.overridenSupportingObjectClasses();

NIT: instead of having `overridenSupportingObjectClasses` you could just have each `LayoutTraits` return their own list of `supportingObjectClasses`

&gt; Source/WebCore/Modules/modern-media-controls/media/media-controller.js:333
&gt; +        if (this.layoutTraits.controlsNeverAvailable())

NIT: I&apos;d have restructured this as `if (this.isFullscreen &amp;&amp; !this.layoutTraits.controlsAllowedInFullscreen)` so that it&apos;s more understandable what this means inside the `LayoutTraits` subclasses (and isn&apos;t so completely opposite of `controlsAlwaysAvailable`).

&gt; Source/WebCore/Modules/modern-media-controls/media/tracks-support.js:49
&gt; +            promoteSubMenus: this.mediaController.layoutTraits.promoteSubMenusWhenShowingMediaControlsContextMenu(),

NIT: I feel like this should have a name more specific to `TracksSupport` (e.g. `promoteSubMenusWhenShowingTracksContextMenu`) as right now it reads as a very general thing, which is not how it&apos;s used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773156</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-06-28 12:22:09 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #5)
&gt; Comment on attachment 432337 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=432337&amp;action=review
&gt; 
&gt; r=me (I realize it&apos;s after the fact, but still).  Nice work!
&gt; 
&gt; &gt; Source/WebCore/Modules/modern-media-controls/controls/icon-service.js:106
&gt; &gt; +        let resourceDirectory = layoutTraits.resourceDirectory();
&gt; 
&gt; NIT: you could move this below or inline it since the variable isn&apos;t used

Ok. Will fix.

&gt; 
&gt; &gt; Source/WebCore/Modules/modern-media-controls/controls/ios-inline-media-controls.js:31
&gt; &gt; -        options.layoutTraits = LayoutTraits.iOS;
&gt; &gt; +        options.layoutTraits = new IOSLayoutTraits(LayoutTraits.Mode.Inline);
&gt; 
&gt; I wonder if this is actually still needed?  Or ideally there&apos;d be a way for
&gt; the `LayoutTraits` object to be provided when this is constructed instead,
&gt; so that there&apos;s only ever one `LayoutTraits` object.

That would preclude LayoutTraits from having state, which doesn&apos;t seem ideal.

&gt; 
&gt; &gt; Source/WebCore/Modules/modern-media-controls/controls/layout-traits.js:31
&gt; &gt; +        this.mode = mode
&gt; 
&gt; missing `;`

Ok. Will fix.

&gt; 
&gt; &gt; Source/WebCore/Modules/modern-media-controls/controls/layout-traits.js:36
&gt; &gt; +        return this.mode == LayoutTraits.Mode.Fullscreen;
&gt; 
&gt; `===`

Ok. Will fix.

&gt; 
&gt; &gt; Source/WebCore/Modules/modern-media-controls/controls/layout-traits.js:46
&gt; &gt; +        throw &quot;Derived class must implement this function.&quot;;
&gt; 
&gt; Instead of having every subclass override everything, I feel like some of
&gt; these could have a default implementation and only have some subclasses
&gt; override.  Not a big deal tho.

I much more prefer making all clients be explicit. 

&gt; 
&gt; &gt; Source/WebCore/Modules/modern-media-controls/controls/layout-traits.js:97
&gt; &gt; +    Fullscreen : 1
&gt; 
&gt; Style: missing trailing comma

Ok. Will fix.

&gt; 
&gt; &gt; Source/WebCore/Modules/modern-media-controls/controls/macos-layout-traits.js:47
&gt; &gt; +        return this.isFullscreen;
&gt; 
&gt; I think this should be `return false;`.

Why is that?

&gt; 
&gt; &gt; Source/WebCore/Modules/modern-media-controls/controls/time-control.js:43
&gt; &gt; +        this.scrubber = new Slider(&quot;scrubber&quot;, this.layoutTraits.knobStyleForScrubber());
&gt; 
&gt; NIT: I think this should have a more specific name like
&gt; `knobStyleForTimeControlScrubber` so that it&apos;s not mistakenly thought to
&gt; also be used for the volume scrubber

Ok. Will fix.

&gt; 
&gt; &gt; Source/WebCore/Modules/modern-media-controls/controls/watchos-layout-traits.js:50
&gt; &gt; +        return false;
&gt; 
&gt; I think this should be `return this.isFullscreen;`.

Why is that? (I don&apos;t think this code will ever run actually, so it probably doesn&apos;t matter).

&gt; 
&gt; &gt; Source/WebCore/Modules/modern-media-controls/media/media-controller.js:102
&gt; &gt; +            let LayoutTraitsClass = eval(this.host.layoutTraitsClassName);
&gt; 
&gt; Is it absolutely necessary to use `eval`?  I don&apos;t know if this will cause
&gt; issues (e.g. having a `&lt;video&gt;` inside an `&lt;iframe&gt;` that has CSP preventing
&gt; any `eval` (i.e. without `unsafe-eval`).  I think the previous approach of
&gt; returning a string and using a `switch` was fine.

I can&apos;t use a switch statement here as the whole point of this exercise was removing it! I don&apos;t want this code to know anything about the platforms that exist. 

&gt; 
&gt; &gt; Source/WebCore/Modules/modern-media-controls/media/media-controller.js:212
&gt; &gt; +        let overridenSupportingObjectClasses = this.layoutTraits.overridenSupportingObjectClasses();
&gt; 
&gt; NIT: instead of having `overridenSupportingObjectClasses` you could just
&gt; have each `LayoutTraits` return their own list of `supportingObjectClasses`.

What would be the goal in that?

&gt; 
&gt; &gt; Source/WebCore/Modules/modern-media-controls/media/media-controller.js:333
&gt; &gt; +        if (this.layoutTraits.controlsNeverAvailable())
&gt; 
&gt; NIT: I&apos;d have restructured this as `if (this.isFullscreen &amp;&amp;
&gt; !this.layoutTraits.controlsAllowedInFullscreen)` so that it&apos;s more
&gt; understandable what this means inside the `LayoutTraits` subclasses (and
&gt; isn&apos;t so completely opposite of `controlsAlwaysAvailable`).

Perhaps I don&apos;t understand the intent of the code, but it seems like the predicates I added match the existing comments, so seem quite appropriate.

    // Controls are always available on watchOS.

    ....


    // Controls are always available while in fullscreen on macOS, and they are never available when in fullscreen on iOS.


Is MediaController&apos;s fullscreen bit a better choice than the internal bit in LayoutTraits?

&gt; 
&gt; &gt; Source/WebCore/Modules/modern-media-controls/media/tracks-support.js:49
&gt; &gt; +            promoteSubMenus: this.mediaController.layoutTraits.promoteSubMenusWhenShowingMediaControlsContextMenu(),
&gt; 
&gt; NIT: I feel like this should have a name more specific to `TracksSupport`
&gt; (e.g. `promoteSubMenusWhenShowingTracksContextMenu`) as right now it reads
&gt; as a very general thing, which is not how it&apos;s used.

Ok. Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773159</commentid>
    <comment_count>7</comment_count>
      <attachid>432337</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-06-28 12:42:27 -0700</bug_when>
    <thetext>Comment on attachment 432337
Patch

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

&gt;&gt;&gt; Source/WebCore/Modules/modern-media-controls/media/media-controller.js:102
&gt;&gt;&gt; +            let LayoutTraitsClass = eval(this.host.layoutTraitsClassName);
&gt;&gt; 
&gt;&gt; Is it absolutely necessary to use `eval`?  I don&apos;t know if this will cause issues (e.g. having a `&lt;video&gt;` inside an `&lt;iframe&gt;` that has CSP preventing any `eval` (i.e. without `unsafe-eval`).  I think the previous approach of returning a string and using a `switch` was fine.
&gt; 
&gt; I can&apos;t use a switch statement here as the whole point of this exercise was removing it! I don&apos;t want this code to know anything about the platforms that exist.

Ah, hmm, good point.  Perhaps instead of using `eval` then you could just `window[this.host.layoutTraitsClassName]` (or maybe have each `LayoutTraits` subclass add itself to some `window.layoutTraitsClasses = {}` object that you then use here)?  I&apos;m really only concerned with using `eval`.

&gt;&gt;&gt; Source/WebCore/Modules/modern-media-controls/media/media-controller.js:212
&gt;&gt;&gt; +        let overridenSupportingObjectClasses = this.layoutTraits.overridenSupportingObjectClasses();
&gt;&gt; 
&gt;&gt; NIT: instead of having `overridenSupportingObjectClasses` you could just have each `LayoutTraits` return their own list of `supportingObjectClasses`
&gt; 
&gt; What would be the goal in that?

Instead of having the `LayoutTraits` subclass override the default list, each `LayoutTraits` subclass would just provide its own list entirely.  I personally think it would read a little nicer as instead of having a list of overrides, you&apos;d just have THE list.

Tho I think as you&apos;ve mentioned above this may have issues in testing code.

&gt;&gt;&gt; Source/WebCore/Modules/modern-media-controls/media/media-controller.js:333
&gt;&gt;&gt; +        if (this.layoutTraits.controlsNeverAvailable())
&gt;&gt; 
&gt;&gt; NIT: I&apos;d have restructured this as `if (this.isFullscreen &amp;&amp; !this.layoutTraits.controlsAllowedInFullscreen)` so that it&apos;s more understandable what this means inside the `LayoutTraits` subclasses (and isn&apos;t so completely opposite of `controlsAlwaysAvailable`).
&gt; 
&gt; Perhaps I don&apos;t understand the intent of the code, but it seems like the predicates I added match the existing comments, so seem quite appropriate.
&gt; 
&gt;     // Controls are always available on watchOS.
&gt; 
&gt;     ....
&gt; 
&gt; 
&gt;     // Controls are always available while in fullscreen on macOS, and they are never available when in fullscreen on iOS.
&gt; 
&gt; 
&gt; Is MediaController&apos;s fullscreen bit a better choice than the internal bit in LayoutTraits?

My comment mainly concerned the fact that you have two functions `controlsAlwaysAvailable` and `controlsNeverAvailable` that seem to be the opposite of each other and wouldn&apos;t be clear inside the `LayoutTraits` subclass as to what they do and when they would used.  When I initially read this I thought `controlsAlwaysAvailable` would always be the opposite of `controlsNeverAvailable` based on the naming.  I realize now that your goal was something along the lines of having a function each for &quot;conditions when controls are always available&quot; and &quot;conditions when controls are never available&quot;, but it didn&apos;t (and still doesn&apos;t) read that way to me in code.  My suggestion of using `this.isFullscreen` here was only to make the naming of the two functions slightly different.  I&apos;m not sure what else to name these that better gets the point across tho, so I suppose it&apos;s fine to leave as-is (unless you have a better idea).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773164</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-06-28 13:05:03 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #7)
&gt; Comment on attachment 432337 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=432337&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/Modules/modern-media-controls/media/media-controller.js:102
&gt; &gt;&gt;&gt; +            let LayoutTraitsClass = eval(this.host.layoutTraitsClassName);
&gt; &gt;&gt; 
&gt; &gt;&gt; Is it absolutely necessary to use `eval`?  I don&apos;t know if this will cause issues (e.g. having a `&lt;video&gt;` inside an `&lt;iframe&gt;` that has CSP preventing any `eval` (i.e. without `unsafe-eval`).  I think the previous approach of returning a string and using a `switch` was fine.
&gt; &gt; 
&gt; &gt; I can&apos;t use a switch statement here as the whole point of this exercise was removing it! I don&apos;t want this code to know anything about the platforms that exist.
&gt; 
&gt; Ah, hmm, good point.  Perhaps instead of using `eval` then you could just
&gt; `window[this.host.layoutTraitsClassName]` (or maybe have each `LayoutTraits`
&gt; subclass add itself to some `window.layoutTraitsClasses = {}` object that
&gt; you then use here)?  I&apos;m really only concerned with using `eval`.

The window access was the way I did it first, but I don&apos;t believe you can lookup constructors that way. If we want to do this, we can, we just need to add code to the various layout-trait subclasses at the end like, 

`const MacOSLayoutTraits = MacOSLayoutTraits`

or something like that, to shadow the lexical declaration onto the window.

I can make this change to remove the eval.

&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/Modules/modern-media-controls/media/media-controller.js:212
&gt; &gt;&gt;&gt; +        let overridenSupportingObjectClasses = this.layoutTraits.overridenSupportingObjectClasses();
&gt; &gt;&gt; 
&gt; &gt;&gt; NIT: instead of having `overridenSupportingObjectClasses` you could just have each `LayoutTraits` return their own list of `supportingObjectClasses`
&gt; &gt; 
&gt; &gt; What would be the goal in that?
&gt; 
&gt; Instead of having the `LayoutTraits` subclass override the default list,
&gt; each `LayoutTraits` subclass would just provide its own list entirely.  I
&gt; personally think it would read a little nicer as instead of having a list of
&gt; overrides, you&apos;d just have THE list.
&gt; 
&gt; Tho I think as you&apos;ve mentioned above this may have issues in testing code.

Ok. I&apos;ll try it. 

&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/Modules/modern-media-controls/media/media-controller.js:333
&gt; &gt;&gt;&gt; +        if (this.layoutTraits.controlsNeverAvailable())
&gt; &gt;&gt; 
&gt; &gt;&gt; NIT: I&apos;d have restructured this as `if (this.isFullscreen &amp;&amp; !this.layoutTraits.controlsAllowedInFullscreen)` so that it&apos;s more understandable what this means inside the `LayoutTraits` subclasses (and isn&apos;t so completely opposite of `controlsAlwaysAvailable`).
&gt; &gt; 
&gt; &gt; Perhaps I don&apos;t understand the intent of the code, but it seems like the predicates I added match the existing comments, so seem quite appropriate.
&gt; &gt; 
&gt; &gt;     // Controls are always available on watchOS.
&gt; &gt; 
&gt; &gt;     ....
&gt; &gt; 
&gt; &gt; 
&gt; &gt;     // Controls are always available while in fullscreen on macOS, and they are never available when in fullscreen on iOS.
&gt; &gt; 
&gt; &gt; 
&gt; &gt; Is MediaController&apos;s fullscreen bit a better choice than the internal bit in LayoutTraits?
&gt; 
&gt; My comment mainly concerned the fact that you have two functions
&gt; `controlsAlwaysAvailable` and `controlsNeverAvailable` that seem to be the
&gt; opposite of each other and wouldn&apos;t be clear inside the `LayoutTraits`
&gt; subclass as to what they do and when they would used.  When I initially read
&gt; this I thought `controlsAlwaysAvailable` would always be the opposite of
&gt; `controlsNeverAvailable` based on the naming.  I realize now that your goal
&gt; was something along the lines of having a function each for &quot;conditions when
&gt; controls are always available&quot; and &quot;conditions when controls are never
&gt; available&quot;, but it didn&apos;t (and still doesn&apos;t) read that way to me in code. 
&gt; My suggestion of using `this.isFullscreen` here was only to make the naming
&gt; of the two functions slightly different.  I&apos;m not sure what else to name
&gt; these that better gets the point across tho, so I suppose it&apos;s fine to leave
&gt; as-is (unless you have a better idea).

I think maybe combining them into a single function that returns a tri-state enumeration (show, don&apos;t show, fallthrough) would actually be the cleanest here. I&apos;ll have to think about the names a bit.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432334</attachid>
            <date>2021-06-26 13:05:25 -0700</date>
            <delta_ts>2021-06-26 14:00:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227423-20210626130525.patch</filename>
            <type>text/plain</type>
            <size>109090</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3OTMwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBACisyMDIxLTA2LTI2ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xz
XSBNb2Rlcm4gbWVkaWEgY29udHJvbHMgc2hvdWxkIG5vdCBuZWVkIHRvIGtub3cgYWJvdXQgc3Bl
Y2lmaWMgcGxhdGZvcm1zIGluIHNoYXJlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc0MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSYXRoZXIgdGhhbiByZXF1aXJpbmcgdGhlIHNoYXJlZCBt
ZWRpYSBjb250cm9sIGNsYXNzZXMgdG8ga25vdyBzcGVjaWZpY3MgYWJvdXQKKyAgICAgICAgdGhl
IHZhcmlvdXMgcGxhdGZvcm1zIHZpYSB0aGUgTGF5b3V0VHJhaXRzIGZsYWdzLCB3ZSBub3cgYWJz
dHJhY3QgdGhvc2UgZGVjaXNpb25zCisgICAgICAgIHZpYSBhIG5ldyBwb2x5bW9ycGhpYyBMYXlv
dXRUcmFpdHMgY2xhc3MsIHdoaWNoIGVhY2ggcGxhdGZvcm0gc3ViY2xhc3NlcyBhbmQKKyAgICAg
ICAgaW1wbGVtZW50cy4KKworICAgICAgICBUaGlzIHdpbGwgZ2l2ZXMgYmV0dGVyIHNlcGFyYXRp
b24gYW5kIHdpbGwgYWxsb3cgZWFzaWVyIGV4cGVyaW1lbnRhdGlvbiB3aXRoIG5ldworICAgICAg
ICBjb250cm9sIHBhdHRlcm5zLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFBsYXRm
b3JtTWFjLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9qcy1maWxlczoKKyAg
ICAgICAgQWRkcyBuZXcgZmlsZXMgZm9yIGxheW91dCB0cmFpdHMgYW5kIGl0cyBzdWJjbGFzc2Vz
LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNIb3N0OjpsYXlvdXRUcmFpdHNDbGFz
c05hbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OnBsYXRm
b3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVk
aWFDb250cm9sc0hvc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFD
b250cm9sc0hvc3QuaWRsOgorICAgICAgICBSZXBsYWNlIHBsYXRmb3JtIGFjY2Vzc29yIHdpdGgg
YSBuZXcgbGF5b3V0VHJhaXRzQ2xhc3NOYW1lLCB3aGljaCBhbGxvd3MKKyAgICAgICAgdGhlIHBs
YXRmb3JtIHRvIHNwY2VjaWZ5IHdoaWNoIG9mIHRoZSB0cmFpdCBzdWJjbGFzc2VzIHRvIHVzZS4K
KworICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2xheW91
dC10cmFpdHMuanM6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL2NvbnRyb2xzL2lvcy1sYXlvdXQtdHJhaXRzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tYWNvcy1sYXlvdXQtdHJhaXRzLmpz
OiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9s
cy93YXRjaG9zLWxheW91dC10cmFpdHMuanM6IEFkZGVkLgorICAgICAgICBBZGQgbmV3IGxheW91
dCB0cmFpdCBmaWxlcy4KKworICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L2NvbnRyb2xzL2Z1bGxzY3JlZW4tYnV0dG9uLmpzOgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2ljb24tc2VydmljZS5qczoKKyAgICAgICAgKiBNb2R1
bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9pb3MtaW5saW5lLW1lZGlhLWNvbnRy
b2xzLmpzOgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xz
L2xheW91dC1pdGVtLmpzOgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L2NvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMuanM6CisgICAgICAgICog
TW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlh
LWNvbnRyb2xzLmpzOgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Nv
bnRyb2xzL21lZGlhLWNvbnRyb2xzLmpzOgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL2NvbnRyb2xzL3BsYXktcGF1c2UtYnV0dG9uLmpzOgorICAgICAgICAqIE1vZHVs
ZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3RpbWUtY29udHJvbC5qczoKKyAgICAg
ICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy93YXRjaG9zLW1lZGlh
LWNvbnRyb2xzLmpzOgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21l
ZGlhL21lZGlhLWNvbnRyb2xsZXIuanM6CisgICAgICAgICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvbWVkaWEvdHJhY2tzLXN1cHBvcnQuanM6CisgICAgICAgIFJlcGxhY2UgZXhwbGlj
aXQgY2hlY2tzIGZvciBwbGF0Zm9ybSB3aXRoIHF1ZXJpZXMgdG8gdGhlIGxheW91dCB0cmFpdHMg
aW50ZXJmYWNlLgorCiAyMDIxLTA2LTI1ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTEZDXVtURkNdIFJlbW92ZSByZWR1bmRhbnQgc3RydWN0IFJlc29sdmVkSXRl
bQpJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CShyZXZpc2lvbiAyNzkzMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0yOTQsMTIgKzI5NCwxNSBAQCAkKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250CiAkKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9pbmxpbmUtbWVkaWEtY29udHJvbHMu
anMKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xz
L2ludmFsaWQtcGxhY2FyZC5qcwogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvY29udHJvbHMvaW9zLWlubGluZS1tZWRpYS1jb250cm9scy5qcworJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvaW9zLWxheW91dC10
cmFpdHMuanMKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Nv
bnRyb2xzL2xheW91dC1pdGVtLmpzCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21vZGVybi1tZWRp
YS1jb250cm9scy9jb250cm9scy9sYXlvdXQtbm9kZS5qcworJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbGF5b3V0LXRyYWl0cy5qcwogJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVs
bHNjcmVlbi1tZWRpYS1jb250cm9scy5jc3MKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMu
anMKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xz
L21hY29zLWlubGluZS1tZWRpYS1jb250cm9scy5jc3MKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9s
cy5qcworJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJv
bHMvbWFjb3MtbGF5b3V0LXRyYWl0cy5qcwogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvY29udHJvbHMvbWVkaWEtY29udHJvbHMuY3NzCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tZWRpYS1jb250cm9scy5q
cwogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMv
bWVkaWEtZG9jdW1lbnQuY3NzCkBAIC0zMjYsNiArMzI5LDcgQEAgJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9tb2Rlcm4tbWVkaWEtY29udAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvY29udHJvbHMvdHJhY2tzLWJ1dHRvbi5qcwogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvd2F0Y2hvcy1hY3Rpdml0eS1pbmRp
Y2F0b3IuY3NzCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9j
b250cm9scy93YXRjaG9zLWFjdGl2aXR5LWluZGljYXRvci5qcworJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvd2F0Y2hvcy1sYXlvdXQtdHJhaXRz
LmpzCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9s
cy93YXRjaG9zLW1lZGlhLWNvbnRyb2xzLmNzcwogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvd2F0Y2hvcy1tZWRpYS1jb250cm9scy5qcwogJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvZ2VzdHVyZS1yZWNvZ25p
emVycy9nZXN0dXJlLXJlY29nbml6ZXIuanMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQkocmV2aXNpb24gMjc5MzA1KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTU4OSw2ICsxNTg5LDcgQEAgTU9ERVJOX01FRElBX0NP
TlRST0xTX1NDUklQVFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21vZGVybi1tZWRpYS1j
b250cm9scy9nZXN0dXJlLXJlY29nbml6ZXJzL3RhcC5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9nZXN0dXJlLXJlY29nbml6ZXJzL3BpbmNoLmpzIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3Nj
aGVkdWxlci5qcyBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9s
cy9jb250cm9scy9sYXlvdXQtdHJhaXRzLmpzIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2xheW91dC1ub2RlLmpzIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2xheW91dC1pdGVtLmpz
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xz
L2ljb24tc2VydmljZS5qcyBcCkBAIC0xNjE3LDE0ICsxNjE4LDE3IEBAIE1PREVSTl9NRURJQV9D
T05UUk9MU19TQ1JJUFRTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvY29udHJvbHMvYmFja2dyb3VuZC1jbGljay1kZWxlZ2F0ZS1ub3RpZmllci5qcyBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9p
bmxpbmUtbWVkaWEtY29udHJvbHMuanMgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvY29udHJvbHMvaW9zLWlubGluZS1tZWRpYS1jb250cm9scy5qcyBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9pb3Mt
bGF5b3V0LXRyYWl0cy5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21vZGVybi1tZWRpYS1j
b250cm9scy9jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMuanMgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVs
bHNjcmVlbi1tZWRpYS1jb250cm9scy5qcyBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21vZGVy
bi1tZWRpYS1jb250cm9scy9jb250cm9scy9tYWNvcy1sYXlvdXQtdHJhaXRzLmpzIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3BsYWNhcmQu
anMgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJv
bHMvYWlycGxheS1wbGFjYXJkLmpzIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2ludmFsaWQtcGxhY2FyZC5qcyBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9waXAtcGxhY2FyZC5qcyBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy93
YXRjaG9zLWFjdGl2aXR5LWluZGljYXRvci5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21v
ZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy93YXRjaG9zLW1lZGlhLWNvbnRyb2xzLmpzIFwK
KyAgICAkKFdlYkNvcmUpL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3dh
dGNob3MtbGF5b3V0LXRyYWl0cy5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21vZGVybi1t
ZWRpYS1jb250cm9scy9tZWRpYS9tZWRpYS1jb250cm9sbGVyLXN1cHBvcnQuanMgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEvYWlycGxheS1zdXBw
b3J0LmpzIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21l
ZGlhL2F1ZGlvLXN1cHBvcnQuanMgXApJbmRleDogU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMu
Y21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UJKHJl
dmlzaW9uIDI3OTMwNSkKKysrIFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCSh3b3Jr
aW5nIGNvcHkpCkBAIC04MjcsNiArODI3LDcgQEAgc2V0KE1PREVSTl9NRURJQV9DT05UUk9MU19T
Q1JJUFRTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L2dlc3R1cmUtcmVjb2duaXplcnMvdGFwLmpzIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVz
L21vZGVybi1tZWRpYS1jb250cm9scy9nZXN0dXJlLXJlY29nbml6ZXJzL3BpbmNoLmpzIgogICAg
ICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9z
Y2hlZHVsZXIuanMiCisgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL2NvbnRyb2xzL2xheW91dC10cmFpdHMuanMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01v
ZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2xheW91dC1ub2RlLmpzIgogICAg
ICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9s
YXlvdXQtaXRlbS5qcyIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvY29udHJvbHMvaWNvbi1zZXJ2aWNlLmpzIgpAQCAtODU1LDE0ICs4NTYsMTcgQEAg
c2V0KE1PREVSTl9NRURJQV9DT05UUk9MU19TQ1JJUFRTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01v
ZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2JhY2tncm91bmQtY2xpY2stZGVs
ZWdhdGUtbm90aWZpZXIuanMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2lubGluZS1tZWRpYS1jb250cm9scy5qcyIKICAgICAiJHtX
RUJDT1JFX0RJUn0vTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvaW9zLWlu
bGluZS1tZWRpYS1jb250cm9scy5qcyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvaW9zLWxheW91dC10cmFpdHMuanMiCiAgICAgIiR7
V0VCQ09SRV9ESVJ9L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21hY29z
LWlubGluZS1tZWRpYS1jb250cm9scy5qcyIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250
cm9scy5qcyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvY29udHJvbHMvbWFjb3MtbGF5b3V0LXRyYWl0cy5qcyIKICAgICAiJHtXRUJDT1JFX0RJUn0v
TW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvcGxhY2FyZC5qcyIKICAgICAi
JHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvYWly
cGxheS1wbGFjYXJkLmpzIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21vZGVybi1tZWRp
YS1jb250cm9scy9jb250cm9scy9pbnZhbGlkLXBsYWNhcmQuanMiCiAgICAgIiR7V0VCQ09SRV9E
SVJ9L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3BpcC1wbGFjYXJkLmpz
IgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250
cm9scy93YXRjaG9zLWFjdGl2aXR5LWluZGljYXRvci5qcyIKICAgICAiJHtXRUJDT1JFX0RJUn0v
TW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvd2F0Y2hvcy1tZWRpYS1jb250
cm9scy5qcyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvY29udHJvbHMvd2F0Y2hvcy1sYXlvdXQtdHJhaXRzLmpzIgogICAgICIke1dFQkNPUkVfRElS
fS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS9tZWRpYS1jb250cm9sbGVyLXN1
cHBvcnQuanMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL21lZGlhL2FpcnBsYXktc3VwcG9ydC5qcyIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxl
cy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEvYXVkaW8tc3VwcG9ydC5qcyIKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlh
Q29udHJvbHNIb3N0LmNwcAkocmV2aXNpb24gMjc5MzA1KQorKysgU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTExLDE2ICsxMTEsMTQgQEAgTWVkaWFDb250cm9sc0hvc3Q6On5NZWRpYUNvbnRyb2xzSG9z
dCgpCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCiB9CiAK
LVN0cmluZyBNZWRpYUNvbnRyb2xzSG9zdDo6cGxhdGZvcm0oKSBjb25zdAorU3RyaW5nIE1lZGlh
Q29udHJvbHNIb3N0OjpsYXlvdXRUcmFpdHNDbGFzc05hbWUoKSBjb25zdAogewotI2lmIFBMQVRG
T1JNKE1BQykKLSAgICByZXR1cm4gIm1hY29zIjsKLSNlbGlmIFBMQVRGT1JNKE1BQ0NBVEFMWVNU
KQotICAgIHJldHVybiAibWFjY2F0YWx5c3QiX3M7CisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFU
Rk9STShNQUNDQVRBTFlTVCkKKyAgICByZXR1cm4gIk1hY09TTGF5b3V0VHJhaXRzIjsKICNlbGlm
IFBMQVRGT1JNKElPUykKLSAgICByZXR1cm4gImlvcyJfczsKKyAgICByZXR1cm4gIklPU0xheW91
dFRyYWl0cyI7CiAjZWxpZiBQTEFURk9STShXQVRDSE9TKQotICAgIHJldHVybiAid2F0Y2hvcyJf
czsKKyAgICByZXR1cm4gIldhdGNoT1NMYXlvdXRUcmFpdHMiOwogI2Vsc2UKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gbnVsbFN0cmluZygpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0LmgJKHJldmlzaW9uIDI3OTMwNSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFj
b250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgYXV0b21hdGljS2V5d29y
ZCgpOwogICAgIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBmb3JjZWRPbmx5S2V5d29yZCgpOwog
Ci0gICAgU3RyaW5nIHBsYXRmb3JtKCkgY29uc3Q7CisgICAgU3RyaW5nIGxheW91dFRyYWl0c0Ns
YXNzTmFtZSgpIGNvbnN0OwogCiAgICAgVmVjdG9yPFJlZlB0cjxUZXh0VHJhY2s+PiBzb3J0ZWRU
cmFja0xpc3RGb3JNZW51KFRleHRUcmFja0xpc3QmKTsKICAgICBWZWN0b3I8UmVmUHRyPEF1ZGlv
VHJhY2s+PiBzb3J0ZWRUcmFja0xpc3RGb3JNZW51KEF1ZGlvVHJhY2tMaXN0Jik7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRp
YUNvbnRyb2xzSG9zdC5pZGwJKHJldmlzaW9uIDI3OTMwNSkKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTM0LDcgKzM0LDcgQEAgZW51bSBEZXZpY2VUeXBlIHsKICAgICBJbXBsZW1lbnRhdGlvbkxh
Y2tzVlRhYmxlLAogICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogXSBpbnRlcmZhY2UgTWVk
aWFDb250cm9sc0hvc3QgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcGxhdGZv
cm07CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsYXlvdXRUcmFpdHNDbGFzc05h
bWU7CiAKICAgICBzZXF1ZW5jZTxUZXh0VHJhY2s+IHNvcnRlZFRyYWNrTGlzdEZvck1lbnUoVGV4
dFRyYWNrTGlzdCB0cmFja0xpc3QpOwogICAgIHNlcXVlbmNlPEF1ZGlvVHJhY2s+IHNvcnRlZFRy
YWNrTGlzdEZvck1lbnUoQXVkaW9UcmFja0xpc3QgdHJhY2tMaXN0KTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2pzLWZpbGVzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2pzLWZpbGVz
CShyZXZpc2lvbiAyNzkzMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRp
YS1jb250cm9scy9qcy1maWxlcwkod29ya2luZyBjb3B5KQpAQCAtMyw2ICszLDcgQEAgZ2VzdHVy
ZS1yZWNvZ25pemVycy9nZXN0dXJlLXJlY29nbml6ZXIuagogZ2VzdHVyZS1yZWNvZ25pemVycy90
YXAuanMKIGdlc3R1cmUtcmVjb2duaXplcnMvcGluY2guanMKIGNvbnRyb2xzL3NjaGVkdWxlci5q
cworY29udHJvbHMvbGF5b3V0LXRyYWl0cy5qcwogY29udHJvbHMvbGF5b3V0LW5vZGUuanMKIGNv
bnRyb2xzL2xheW91dC1pdGVtLmpzCiBjb250cm9scy9pY29uLXNlcnZpY2UuanMKQEAgLTMxLDE0
ICszMiwxNyBAQCBjb250cm9scy9tZWRpYS1jb250cm9scy5qcwogY29udHJvbHMvYmFja2dyb3Vu
ZC1jbGljay1kZWxlZ2F0ZS1ub3RpZmllci5qcwogY29udHJvbHMvaW5saW5lLW1lZGlhLWNvbnRy
b2xzLmpzCiBjb250cm9scy9pb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzLmpzCitjb250cm9scy9p
b3MtbGF5b3V0LXRyYWl0cy5qcwogY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xz
LmpzCiBjb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLmpzCitjb250cm9s
cy9tYWNvcy1sYXlvdXQtdHJhaXRzLmpzCiBjb250cm9scy9wbGFjYXJkLmpzCiBjb250cm9scy9h
aXJwbGF5LXBsYWNhcmQuanMKIGNvbnRyb2xzL2ludmFsaWQtcGxhY2FyZC5qcwogY29udHJvbHMv
cGlwLXBsYWNhcmQuanMKIGNvbnRyb2xzL3dhdGNob3MtYWN0aXZpdHktaW5kaWNhdG9yLmpzCiBj
b250cm9scy93YXRjaG9zLW1lZGlhLWNvbnRyb2xzLmpzCitjb250cm9scy93YXRjaG9zLWxheW91
dC10cmFpdHMuanMKIG1lZGlhL21lZGlhLWNvbnRyb2xsZXItc3VwcG9ydC5qcwogbWVkaWEvYWly
cGxheS1zdXBwb3J0LmpzCiBtZWRpYS9hdWRpby1zdXBwb3J0LmpzCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9mdWxsc2NyZWVuLWJ1
dHRvbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRp
YS1jb250cm9scy9jb250cm9scy9mdWxsc2NyZWVuLWJ1dHRvbi5qcwkocmV2aXNpb24gMjc5MzA1
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJv
bHMvZnVsbHNjcmVlbi1idXR0b24uanMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIxIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNyArMzMsNyBAQCBjbGFz
cyBGdWxsc2NyZWVuQnV0dG9uIGV4dGVuZHMgQnV0dG9uCiAgICAgICAgICAgICBsYXlvdXREZWxl
Z2F0ZQogICAgICAgICB9KTsKIAotICAgICAgICB0aGlzLmljb25OYW1lID0gdGhpcy5sYXlvdXRU
cmFpdHMgJiBMYXlvdXRUcmFpdHMuRnVsbHNjcmVlbiA/IEljb25zLkV4aXRGdWxsc2NyZWVuIDog
SWNvbnMuRW50ZXJGdWxsc2NyZWVuOworICAgICAgICB0aGlzLmljb25OYW1lID0gdGhpcy5sYXlv
dXRUcmFpdHMuaXNGdWxsc2NyZWVuID8gSWNvbnMuRXhpdEZ1bGxzY3JlZW4gOiBJY29ucy5FbnRl
ckZ1bGxzY3JlZW47CiAgICAgfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9pY29uLXNlcnZpY2UuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMv
aWNvbi1zZXJ2aWNlLmpzCShyZXZpc2lvbiAyNzkzMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9pY29uLXNlcnZpY2UuanMJKHdvcmtp
bmcgY29weSkKQEAgLTczLDggKzczLDggQEAgY29uc3QgaWNvblNlcnZpY2UgPSBuZXcgY2xhc3Mg
SWNvblNlcnZpYwogCiAgICAgaW1hZ2VGb3JJY29uQW5kTGF5b3V0VHJhaXRzKGljb24sIGxheW91
dFRyYWl0cykKICAgICB7Ci0gICAgICAgIGNvbnN0IFtmaWxlTmFtZSwgcGxhdGZvcm1dID0gdGhp
cy5fZmlsZU5hbWVBbmRQbGF0Zm9ybUZvckljb25BbmRMYXlvdXRUcmFpdHMoaWNvbiwgbGF5b3V0
VHJhaXRzKTsKLSAgICAgICAgY29uc3QgcGF0aCA9IGAke3BsYXRmb3JtfS8ke2ZpbGVOYW1lfS4k
e2ljb24udHlwZX1gOworICAgICAgICBjb25zdCBbZmlsZU5hbWUsIHJlc291cmNlRGlyZWN0b3J5
XSA9IHRoaXMuX2ZpbGVOYW1lQW5kUmVzb3VyY2VEaXJlY3RvcnlGb3JJY29uQW5kTGF5b3V0VHJh
aXRzKGljb24sIGxheW91dFRyYWl0cyk7CisgICAgICAgIGNvbnN0IHBhdGggPSBgJHtyZXNvdXJj
ZURpcmVjdG9yeX0vJHtmaWxlTmFtZX0uJHtpY29uLnR5cGV9YDsKIAogICAgICAgICBsZXQgaW1h
Z2UgPSB0aGlzLmltYWdlc1twYXRoXTsKICAgICAgICAgaWYgKGltYWdlKQpAQCAtMTAxLDI3ICsx
MDEsMTkgQEAgY29uc3QgaWNvblNlcnZpY2UgPSBuZXcgY2xhc3MgSWNvblNlcnZpYwogCiAgICAg
Ly8gUHJpdmF0ZQogCi0gICAgX2ZpbGVOYW1lQW5kUGxhdGZvcm1Gb3JJY29uQW5kTGF5b3V0VHJh
aXRzKGljb24sIGxheW91dFRyYWl0cykKKyAgICBfZmlsZU5hbWVBbmRSZXNvdXJjZURpcmVjdG9y
eUZvckljb25BbmRMYXlvdXRUcmFpdHMoaWNvbiwgbGF5b3V0VHJhaXRzKQogICAgIHsKLSAgICAg
ICAgbGV0IHBsYXRmb3JtOwotICAgICAgICBpZiAobGF5b3V0VHJhaXRzICYgTGF5b3V0VHJhaXRz
Lm1hY09TKQotICAgICAgICAgICAgcGxhdGZvcm0gPSAibWFjT1MiOwotICAgICAgICBlbHNlIGlm
IChsYXlvdXRUcmFpdHMgJiBMYXlvdXRUcmFpdHMuaU9TKQotICAgICAgICAgICAgcGxhdGZvcm0g
PSAiaU9TIjsKLSAgICAgICAgZWxzZSBpZiAobGF5b3V0VHJhaXRzICYgTGF5b3V0VHJhaXRzLndh
dGNoT1MpCi0gICAgICAgICAgICBwbGF0Zm9ybSA9ICJ3YXRjaE9TIjsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgdGhyb3cgIkNvdWxkIG5vdCBpZGVudGlmeSBpY29uJ3MgcGxhdGZvcm0gZnJv
bSBsYXlvdXQgdHJhaXRzLiI7CisgICAgICAgIGxldCByZXNvdXJjZURpcmVjdG9yeSA9IGxheW91
dFRyYWl0cy5yZXNvdXJjZURpcmVjdG9yeSgpOwogCiAgICAgICAgIGxldCBpY29uTmFtZSA9IGlj
b24ubmFtZTsKLSAgICAgICAgaWYgKGxheW91dFRyYWl0cyAmIExheW91dFRyYWl0cy5tYWNPUyAm
JiBsYXlvdXRUcmFpdHMgJiBMYXlvdXRUcmFpdHMuRnVsbHNjcmVlbiAmJiBJY29uc1dpdGhGdWxs
c2NyZWVuVmFyaWFudHMuaW5jbHVkZXMoaWNvbikpCisgICAgICAgIGlmIChsYXlvdXRUcmFpdHMu
c3VwcG9ydHNJY29uV2l0aEZ1bGxzY3JlZW5WYXJpYW50KCkgJiYgSWNvbnNXaXRoRnVsbHNjcmVl
blZhcmlhbnRzLmluY2x1ZGVzKGljb24pKQogICAgICAgICAgICAgaWNvbk5hbWUgKz0gIi1mdWxs
c2NyZWVuIjsKIAogICAgICAgICBsZXQgZmlsZU5hbWUgPSBpY29uTmFtZTsKICAgICAgICAgaWYg
KGljb24udHlwZSA9PT0gInBuZyIpCiAgICAgICAgICAgICBmaWxlTmFtZSA9IGAke2ljb25OYW1l
fUAke3dpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfXhgOwogCi0gICAgICAgIHJldHVybiBbZmlsZU5h
bWUsIHBsYXRmb3JtXTsKKyAgICAgICAgcmV0dXJuIFtmaWxlTmFtZSwgcmVzb3VyY2VEaXJlY3Rv
cnldOwogICAgIH0KIAogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2lvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29u
dHJvbHMvaW9zLWlubGluZS1tZWRpYS1jb250cm9scy5qcwkocmV2aXNpb24gMjc5MzA1KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvaW9z
LWlubGluZS1tZWRpYS1jb250cm9scy5qcwkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBA
QCBjbGFzcyBJT1NJbmxpbmVNZWRpYUNvbnRyb2xzIGV4dGVuZHMgSW5sCiAKICAgICBjb25zdHJ1
Y3RvcihvcHRpb25zID0ge30pCiAgICAgewotICAgICAgICBvcHRpb25zLmxheW91dFRyYWl0cyA9
IExheW91dFRyYWl0cy5pT1M7CisgICAgICAgIG9wdGlvbnMubGF5b3V0VHJhaXRzID0gbmV3IElP
U0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpOwogCiAgICAgICAgIHN1cGVy
KG9wdGlvbnMpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1j
b250cm9scy9jb250cm9scy9pb3MtbGF5b3V0LXRyYWl0cy5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9pb3MtbGF5
b3V0LXRyYWl0cy5qcwkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9pb3MtbGF5b3V0LXRyYWl0cy5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworY2xhc3MgSU9TTGF5b3V0VHJhaXRzIGV4dGVuZHMgTGF5b3V0VHJhaXRz
Cit7CisgICAgbWVkaWFDb250cm9sc0NsYXNzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBJT1NJ
bmxpbmVNZWRpYUNvbnRyb2xzOworICAgIH0KKworICAgIG92ZXJyaWRlblN1cHBvcnRpbmdPYmpl
Y3RDbGFzc2VzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHJl
c291cmNlRGlyZWN0b3J5KCkKKyAgICB7CisgICAgICAgIHJldHVybiAiaU9TIjsKKyAgICB9CisK
KyAgICBjb250cm9sc0Fsd2F5c0F2YWlsYWJsZSgpCisgICAgeworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCisgICAgY29udHJvbHNOZXZlckF2YWlsYWJsZSgpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5pc0Z1bGxzY3JlZW47CisgICAgfQorCisgICAgc3VwcG9ydHNJY29uV2l0
aEZ1bGxzY3JlZW5WYXJpYW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKKyAgICBrbm9iU3R5bGVGb3JTY3J1YmJlcigpCisgICAgeworICAgICAgICByZXR1cm4gU2xp
ZGVyLktub2JTdHlsZS5DaXJjbGU7CisgICAgfQorCisgICAgc3VwcG9ydHNEdXJhdGlvblRpbWVM
YWJlbCgpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcGxheVBh
dXNlQnV0dG9uU2NhbGVGYWN0b3IoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQor
CisgICAgY29udHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvcigpCisgICAgeworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcm9tb3RlU3ViTWVudXNXaGVuU2hvd2luZ01lZGlh
Q29udHJvbHNDb250ZXh0TWVudSgpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorCisgICAgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGBbSU9TTGF5b3V0VHJh
aXRzXWA7CisgICAgfQorfQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvY29udHJvbHMvbGF5b3V0LWl0ZW0uanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbGF5b3V0LWl0
ZW0uanMJKHJldmlzaW9uIDI3OTMwNSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2xheW91dC1pdGVtLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0yMywxNCArMjMsNiBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1jb25zdCBMYXlvdXRUcmFp
dHMgPSB7Ci0gICAgVW5rbm93biAgICAgICAgOiAwLAotICAgIG1hY09TICAgICAgICAgIDogMSA8
PCAwLAotICAgIGlPUyAgICAgICAgICAgIDogMSA8PCAxLAotICAgIHdhdGNoT1MgICAgICAgIDog
MSA8PCAyLAotICAgIEZ1bGxzY3JlZW4gICAgIDogMSA8PCAzLAotfTsKLQogY2xhc3MgTGF5b3V0
SXRlbSBleHRlbmRzIExheW91dE5vZGUKIHsKIApAQCAtNDUsNyArMzcsOCBAQCBjbGFzcyBMYXlv
dXRJdGVtIGV4dGVuZHMgTGF5b3V0Tm9kZQogCiAgICAgZ2V0IGxheW91dFRyYWl0cygpCiAgICAg
ewotICAgICAgICByZXR1cm4gKHRoaXMubGF5b3V0RGVsZWdhdGUgJiYgdGhpcy5sYXlvdXREZWxl
Z2F0ZS5sYXlvdXRUcmFpdHMpIHx8IExheW91dFRyYWl0cy5Vbmtub3duOworICAgICAgICBpZiAo
IXRoaXMubGF5b3V0RGVsZWdhdGU/LmxheW91dFRyYWl0cykKKyAgICAgICAgICAgIHRocm93ICJO
byBsYXlvdXQgdHJhaXRzIHNwZWNpZmllZCB2aWEgbGF5b3V0RGVsZWdhdGUgb3Igb3ZlcnJpZGVu
IGxheW91VHJhaXRzKCkgZ2V0dGVyIjsKKyAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0RGVsZWdh
dGUubGF5b3V0VHJhaXRzOwogICAgIH0KLQogfQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbGF5b3V0LXRyYWl0cy5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250
cm9scy9sYXlvdXQtdHJhaXRzLmpzCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2xheW91dC10cmFpdHMuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK2NsYXNzIExheW91dFRyYWl0cworeworCisgICAgY29uc3RydWN0
b3IobW9kZSkKKyAgICB7CisgICAgICAgIHRoaXMubW9kZSA9IG1vZGUKKyAgICB9CisKKyAgICBn
ZXQgaXNGdWxsc2NyZWVuKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLm1vZGUgPT0gTGF5
b3V0VHJhaXRzLk1vZGUuRnVsbHNjcmVlbjsKKyAgICB9CisKKyAgICBtZWRpYUNvbnRyb2xzQ2xh
c3MoKQorICAgIHsKKyAgICAgICAgdGhyb3cgIkRlcml2ZWQgY2xhc3MgbXVzdCBpbXBsZW1lbnQg
dGhpcyBmdW5jdGlvbi4iOworICAgIH0KKworICAgIG92ZXJyaWRlblN1cHBvcnRpbmdPYmplY3RD
bGFzc2VzKCkKKyAgICB7CisgICAgICAgIHRocm93ICJEZXJpdmVkIGNsYXNzIG11c3QgaW1wbGVt
ZW50IHRoaXMgZnVuY3Rpb24uIjsKKyAgICB9CisKKyAgICByZXNvdXJjZURpcmVjdG9yeSgpCisg
ICAgeworICAgICAgICB0aHJvdyAiRGVyaXZlZCBjbGFzcyBtdXN0IGltcGxlbWVudCB0aGlzIGZ1
bmN0aW9uLiI7CisgICAgfQorCisgICAgY29udHJvbHNBbHdheXNBdmFpbGFibGUoKQorICAgIHsK
KyAgICAgICAgdGhyb3cgIkRlcml2ZWQgY2xhc3MgbXVzdCBpbXBsZW1lbnQgdGhpcyBmdW5jdGlv
bi4iOworICAgIH0KKworICAgIGNvbnRyb2xzTmV2ZXJBdmFpbGFibGUoKQorICAgIHsKKyAgICAg
ICAgdGhyb3cgIkRlcml2ZWQgY2xhc3MgbXVzdCBpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbi4iOwor
ICAgIH0KKworICAgIHN1cHBvcnRzSWNvbldpdGhGdWxsc2NyZWVuVmFyaWFudCgpCisgICAgewor
ICAgICAgICB0aHJvdyAiRGVyaXZlZCBjbGFzcyBtdXN0IGltcGxlbWVudCB0aGlzIGZ1bmN0aW9u
LiI7CisgICAgfQorCisgICAga25vYlN0eWxlRm9yU2NydWJiZXIoKQorICAgIHsKKyAgICAgICAg
dGhyb3cgIkRlcml2ZWQgY2xhc3MgbXVzdCBpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbi4iOworICAg
IH0KKworICAgIHN1cHBvcnRzRHVyYXRpb25UaW1lTGFiZWwoKQorICAgIHsKKyAgICAgICAgdGhy
b3cgIkRlcml2ZWQgY2xhc3MgbXVzdCBpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbi4iOworICAgIH0K
KyAgICAKKyAgICBwbGF5UGF1c2VCdXR0b25TY2FsZUZhY3RvcigpCisgICAgeworICAgICAgICB0
aHJvdyAiRGVyaXZlZCBjbGFzcyBtdXN0IGltcGxlbWVudCB0aGlzIGZ1bmN0aW9uLiI7CisgICAg
fQorICAgIAorICAgIGNvbnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3IoKQorICAgIHsKKyAg
ICAgICAgdGhyb3cgIkRlcml2ZWQgY2xhc3MgbXVzdCBpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbi4i
OworICAgIH0KKyAgICAKKyAgICBwcm9tb3RlU3ViTWVudXNXaGVuU2hvd2luZ01lZGlhQ29udHJv
bHNDb250ZXh0TWVudSgpCisgICAgeworICAgICAgICB0aHJvdyAiRGVyaXZlZCBjbGFzcyBtdXN0
IGltcGxlbWVudCB0aGlzIGZ1bmN0aW9uLiI7CisgICAgfQorfQorCitMYXlvdXRUcmFpdHMuTW9k
ZSA9IHsKKyAgICBJbmxpbmUgICAgIDogMCwKKyAgICBGdWxsc2NyZWVuIDogMQorfTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21h
Y29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVsbHNj
cmVlbi1tZWRpYS1jb250cm9scy5qcwkocmV2aXNpb24gMjc5MzA1KQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVsbHNjcmVl
bi1tZWRpYS1jb250cm9scy5qcwkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCBjbGFz
cyBNYWNPU0Z1bGxzY3JlZW5NZWRpYUNvbnRyb2xzIGV4dGVuCiAKICAgICBjb25zdHJ1Y3Rvcihv
cHRpb25zID0ge30pCiAgICAgewotICAgICAgICBvcHRpb25zLmxheW91dFRyYWl0cyA9IExheW91
dFRyYWl0cy5tYWNPUyB8IExheW91dFRyYWl0cy5GdWxsc2NyZWVuOworICAgICAgICBvcHRpb25z
LmxheW91dFRyYWl0cyA9IG5ldyBNYWNPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5G
dWxsc2NyZWVuKTsKIAogICAgICAgICBzdXBlcihvcHRpb25zKTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtaW5saW5l
LW1lZGlhLWNvbnRyb2xzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9s
cy5qcwkocmV2aXNpb24gMjc5MzA1KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBAIGNsYXNzIE1hY09TSW5saW5lTWVkaWFDb250
cm9scyBleHRlbmRzIEkKIAogICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSB7fSkKICAgICB7Ci0g
ICAgICAgIG9wdGlvbnMubGF5b3V0VHJhaXRzID0gTGF5b3V0VHJhaXRzLm1hY09TOworICAgICAg
ICBvcHRpb25zLmxheW91dFRyYWl0cyA9IG5ldyBNYWNPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFp
dHMuTW9kZS5JbmxpbmUpOwogCiAgICAgICAgIHN1cGVyKG9wdGlvbnMpOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tYWNvcy1s
YXlvdXQtdHJhaXRzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21hY29zLWxheW91dC10cmFpdHMuanMJKG5vbmV4
aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
Y29udHJvbHMvbWFjb3MtbGF5b3V0LXRyYWl0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworY2xh
c3MgTWFjT1NMYXlvdXRUcmFpdHMgZXh0ZW5kcyBMYXlvdXRUcmFpdHMKK3sKKyAgICBtZWRpYUNv
bnRyb2xzQ2xhc3MoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuaXNGdWxsc2NyZWVuKQorICAg
ICAgICAgICAgcmV0dXJuIE1hY09TRnVsbHNjcmVlbk1lZGlhQ29udHJvbHM7CisgICAgICAgIHJl
dHVybiBNYWNPU0lubGluZU1lZGlhQ29udHJvbHM7CisgICAgfQorCisgICAgb3ZlcnJpZGVuU3Vw
cG9ydGluZ09iamVjdENsYXNzZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAg
fQorCisgICAgcmVzb3VyY2VEaXJlY3RvcnkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJtYWNP
UyI7CisgICAgfQorCisgICAgY29udHJvbHNBbHdheXNBdmFpbGFibGUoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuaXNGdWxsc2NyZWVuOworICAgIH0KKworICAgIGNvbnRyb2xzTmV2ZXJB
dmFpbGFibGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHN1
cHBvcnRzSWNvbldpdGhGdWxsc2NyZWVuVmFyaWFudCgpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5pc0Z1bGxzY3JlZW47CisgICAgfQorCisgICAga25vYlN0eWxlRm9yU2NydWJiZXIoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIFNsaWRlci5Lbm9iU3R5bGUuQmFyOworICAgIH0KKworICAg
IHN1cHBvcnRzRHVyYXRpb25UaW1lTGFiZWwoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorCisgICAgcGxheVBhdXNlQnV0dG9uU2NhbGVGYWN0b3IoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuaXNGdWxsc2NyZWVuID8gMiA6IDE7CisgICAgfQorCisgICAgY29udHJv
bHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvcigpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgcHJvbW90ZVN1Yk1lbnVzV2hlblNob3dpbmdNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAg
IHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIGNvbnN0IG1vZGUgPSB0aGlzLmlzRnVsbHNjcmVl
biA/ICJGdWxsc2NyZWVuIiA6ICJJbmxpbmUiOworICAgICAgICByZXR1cm4gYFtNYWNPU0xheW91
dFRyYWl0cyAke21vZGV9XWA7CisgICAgfQorfQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWVkaWEtY29udHJvbHMuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29u
dHJvbHMvbWVkaWEtY29udHJvbHMuanMJKHJldmlzaW9uIDI3OTMwNSkKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlhLWNvbnRyb2xz
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiBjbGFzcyBNZWRpYUNvbnRyb2xz
IGV4dGVuZHMgTGF5b3V0Tm9kZQogewogCi0gICAgY29uc3RydWN0b3IoeyB3aWR0aCA9IDMwMCwg
aGVpZ2h0ID0gMTUwLCBsYXlvdXRUcmFpdHMgPSBMYXlvdXRUcmFpdHMuVW5rbm93biB9ID0ge30p
CisgICAgY29uc3RydWN0b3IoeyB3aWR0aCA9IDMwMCwgaGVpZ2h0ID0gMTUwLCBsYXlvdXRUcmFp
dHMgPSBudWxsIH0gPSB7fSkKICAgICB7CiAgICAgICAgIHN1cGVyKGA8ZGl2IGNsYXNzPSJtZWRp
YS1jb250cm9scyI+PC9kaXY+YCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3BsYXktcGF1c2UtYnV0dG9uLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRy
b2xzL3BsYXktcGF1c2UtYnV0dG9uLmpzCShyZXZpc2lvbiAyNzkzMDUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9wbGF5LXBhdXNlLWJ1
dHRvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMzQsOCArMzQsNyBAQCBjbGFzcyBQbGF5UGF1c2VC
dXR0b24gZXh0ZW5kcyBCdXR0b24KICAgICAgICAgICAgIGxheW91dERlbGVnYXRlCiAgICAgICAg
IH0pOwogCi0gICAgICAgIGlmICh0aGlzLmxheW91dFRyYWl0cyAmIExheW91dFRyYWl0cy5tYWNP
UyAmJiB0aGlzLmxheW91dFRyYWl0cyAmIExheW91dFRyYWl0cy5GdWxsc2NyZWVuKQotICAgICAg
ICAgICAgdGhpcy5zY2FsZUZhY3RvciA9IDI7CisgICAgICAgIHRoaXMuc2NhbGVGYWN0b3IgPSB0
aGlzLmxheW91dFRyYWl0cy5wbGF5UGF1c2VCdXR0b25TY2FsZUZhY3RvcigpOwogICAgIH0KIAog
ICAgIC8vIFB1YmxpYwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvY29udHJvbHMvdGltZS1jb250cm9sLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3RpbWUtY29udHJv
bC5qcwkocmV2aXNpb24gMjc5MzA1KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvY29udHJvbHMvdGltZS1jb250cm9sLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC00MCw4ICs0MCw4IEBAIGNsYXNzIFRpbWVDb250cm9sIGV4dGVuZHMgTGF5b3V0SXRlbQogICAg
ICAgICB9KTsKIAogICAgICAgICB0aGlzLmVsYXBzZWRUaW1lTGFiZWwgPSBuZXcgVGltZUxhYmVs
KFRpbWVMYWJlbC5UeXBlLkVsYXBzZWQpOwotICAgICAgICB0aGlzLnNjcnViYmVyID0gbmV3IFNs
aWRlcigic2NydWJiZXIiLCB0aGlzLmxheW91dFRyYWl0cyAmIExheW91dFRyYWl0cy5tYWNPUyA/
IFNsaWRlci5Lbm9iU3R5bGUuQmFyIDogU2xpZGVyLktub2JTdHlsZS5DaXJjbGUpOwotICAgICAg
ICBpZiAodGhpcy5sYXlvdXRUcmFpdHMgJiBMYXlvdXRUcmFpdHMubWFjT1MpCisgICAgICAgIHRo
aXMuc2NydWJiZXIgPSBuZXcgU2xpZGVyKCJzY3J1YmJlciIsIHRoaXMubGF5b3V0VHJhaXRzLmtu
b2JTdHlsZUZvclNjcnViYmVyKCkpOworICAgICAgICBpZiAodGhpcy5sYXlvdXRUcmFpdHMuc3Vw
cG9ydHNEdXJhdGlvblRpbWVMYWJlbCgpKQogICAgICAgICAgICAgdGhpcy5kdXJhdGlvblRpbWVM
YWJlbCA9IG5ldyBUaW1lTGFiZWwoVGltZUxhYmVsLlR5cGUuRHVyYXRpb24pOwogICAgICAgICB0
aGlzLnJlbWFpbmluZ1RpbWVMYWJlbCA9IG5ldyBUaW1lTGFiZWwoVGltZUxhYmVsLlR5cGUuUmVt
YWluaW5nKTsKIApAQCAtNTUsNyArNTUsNyBAQCBjbGFzcyBUaW1lQ29udHJvbCBleHRlbmRzIExh
eW91dEl0ZW0KICAgICAgICAgdGhpcy5fY3VycmVudFRpbWUgPSAwOwogICAgICAgICB0aGlzLl9s
b2FkaW5nID0gZmFsc2U7CiAKLSAgICAgICAgdGhpcy5fc2hvd0R1cmF0aW9uVGltZUxhYmVsID0g
dGhpcy5sYXlvdXRUcmFpdHMgJiBMYXlvdXRUcmFpdHMubWFjT1M7CisgICAgICAgIHRoaXMuX3No
b3dEdXJhdGlvblRpbWVMYWJlbCA9IHRoaXMubGF5b3V0VHJhaXRzLnN1cHBvcnRzRHVyYXRpb25U
aW1lTGFiZWwoKTsKICAgICAgICAgaWYgKHRoaXMuX3Nob3dEdXJhdGlvblRpbWVMYWJlbCkgewog
ICAgICAgICAgICAgdGhpcy5kdXJhdGlvblRpbWVMYWJlbC5lbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoImNsaWNrIiwgdGhpcyk7CiAgICAgICAgICAgICB0aGlzLnJlbWFpbmluZ1RpbWVMYWJlbC5l
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcyk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy93YXRjaG9zLWxheW91
dC10cmFpdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvY29udHJvbHMvd2F0Y2hvcy1sYXlvdXQtdHJhaXRzLmpzCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Nv
bnRyb2xzL3dhdGNob3MtbGF5b3V0LXRyYWl0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworY2xh
c3MgV2F0Y2hPU0xheW91dFRyYWl0cyBleHRlbmRzIExheW91dFRyYWl0cworeworICAgIG1lZGlh
Q29udHJvbHNDbGFzcygpCisgICAgeworICAgICAgICByZXR1cm4gV2F0Y2hPU01lZGlhQ29udHJv
bHM7CisgICAgfQorCisgICAgb3ZlcnJpZGVuU3VwcG9ydGluZ09iamVjdENsYXNzZXMoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIFtXYXRjaE9TTWVkaWFDb250cm9sc1N1cHBvcnRdOworICAgIH0K
KworICAgIHJlc291cmNlRGlyZWN0b3J5KCkKKyAgICB7CisgICAgICAgIHJldHVybiAid2F0Y2hP
UyI7CisgICAgfQorCisgICAgY29udHJvbHNBbHdheXNBdmFpbGFibGUoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgY29udHJvbHNOZXZlckF2YWlsYWJsZSgpCisg
ICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3VwcG9ydHNJY29uV2l0
aEZ1bGxzY3JlZW5WYXJpYW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKKyAgICBrbm9iU3R5bGVGb3JTY3J1YmJlcigpCisgICAgeworICAgICAgICByZXR1cm4gU2xp
ZGVyLktub2JTdHlsZS5DaXJjbGU7CisgICAgfQorCisgICAgc3VwcG9ydHNEdXJhdGlvblRpbWVM
YWJlbCgpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcGxheVBh
dXNlQnV0dG9uU2NhbGVGYWN0b3IoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQor
CisgICAgY29udHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvcigpCisgICAgeworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJvbW90ZVN1Yk1lbnVzV2hlblNob3dpbmdNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKworICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiBgW1dhdGNoT1NMYXlv
dXRUcmFpdHNdYDsKKyAgICB9Cit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVy
bi1tZWRpYS1jb250cm9scy9jb250cm9scy93YXRjaG9zLW1lZGlhLWNvbnRyb2xzLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Nv
bnRyb2xzL3dhdGNob3MtbWVkaWEtY29udHJvbHMuanMJKHJldmlzaW9uIDI3OTMwNSkKKysrIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3dhdGNo
b3MtbWVkaWEtY29udHJvbHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAgY2xh
c3MgV2F0Y2hPU01lZGlhQ29udHJvbHMgZXh0ZW5kcyBMYXlvdQogICAgICAgICB0aGlzLl9zY2Fs
ZUZhY3RvciA9IDE7CiAgICAgICAgIHRoaXMuX3Nob3VsZENlbnRlckNvbnRyb2xzVmVydGljYWxs
eSA9IGZhbHNlOwogCi0gICAgICAgIHRoaXMubGF5b3V0VHJhaXRzID0gTGF5b3V0VHJhaXRzLndh
dGNoT1M7CisgICAgICAgIHRoaXMubGF5b3V0VHJhaXRzID0gbmV3IFdhdGNoT1NMYXlvdXRUcmFp
dHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKTsKIAogICAgICAgICB0aGlzLnBsYXlCdXR0b24g
PSBuZXcgQnV0dG9uKHsKICAgICAgICAgICAgIGNzc0NsYXNzTmFtZTogInBsYXkiLApJbmRleDog
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEvbWVkaWEt
Y29udHJvbGxlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVy
bi1tZWRpYS1jb250cm9scy9tZWRpYS9tZWRpYS1jb250cm9sbGVyLmpzCShyZXZpc2lvbiAyNzkz
MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRp
YS9tZWRpYS1jb250cm9sbGVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIGNs
YXNzIE1lZGlhQ29udHJvbGxlcgogICAgICAgICB0aGlzLl91c2VzTFRSVXNlckludGVyZmFjZUxh
eW91dERpcmVjdGlvbiA9IGZhbHNlOwogCiAgICAgICAgIGlmIChob3N0KSB7Ci0gICAgICAgICAg
ICBob3N0LmNvbnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3IgPSB0aGlzLmxheW91dFRyYWl0
cyAmIExheW91dFRyYWl0cy5pT1M7CisgICAgICAgICAgICBob3N0LmNvbnRyb2xzRGVwZW5kT25Q
YWdlU2NhbGVGYWN0b3IgPSB0aGlzLmxheW91dFRyYWl0cy5jb250cm9sc0RlcGVuZE9uUGFnZVNj
YWxlRmFjdG9yKCk7CiAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5pbnNlcnRCZWZvcmUoaG9z
dC50ZXh0VHJhY2tDb250YWluZXIsIHRoaXMuY29udHJvbHMuZWxlbWVudCk7CiAgICAgICAgICAg
ICBpZiAoaG9zdC5pc0luTWVkaWFEb2N1bWVudCkKICAgICAgICAgICAgICAgICB0aGlzLm1lZGlh
RG9jdW1lbnRDb250cm9sbGVyID0gbmV3IE1lZGlhRG9jdW1lbnRDb250cm9sbGVyKHRoaXMpOwpA
QCAtOTYsMjcgKzk2LDE2IEBAIGNsYXNzIE1lZGlhQ29udHJvbGxlcgogCiAgICAgZ2V0IGxheW91
dFRyYWl0cygpCiAgICAgewotICAgICAgICBsZXQgdHJhaXRzID0gTGF5b3V0VHJhaXRzLlVua25v
d247Ci0KLSAgICAgICAgc3dpdGNoICh0aGlzLmhvc3Q/LnBsYXRmb3JtKSB7Ci0gICAgICAgIGNh
c2UgIm1hY29zIjoKLSAgICAgICAgY2FzZSAibWFjY2F0YWx5c3QiOgotICAgICAgICBkZWZhdWx0
OiAvLyBGb3Igd2hlbiBgdGhpcy5ob3N0YCBpcyBub3QgZGVmaW5lZC4KLSAgICAgICAgICAgIHRy
YWl0cyA9IExheW91dFRyYWl0cy5tYWNPUzsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAg
IGNhc2UgImlvcyI6Ci0gICAgICAgICAgICB0cmFpdHMgPSBMYXlvdXRUcmFpdHMuaU9TOwotICAg
ICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2FzZSAid2F0Y2hvcyI6Ci0gICAgICAgICAgICB0
cmFpdHMgPSBMYXlvdXRUcmFpdHMud2F0Y2hPUzsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBsZXQgbW9kZSA9IHRoaXMuaXNGdWxsc2NyZWVuID8gTGF5b3V0VHJhaXRzLk1vZGUuRnVsbHNj
cmVlbiA6IExheW91dFRyYWl0cy5Nb2RlLklubGluZTsKKyAgICAKKyAgICAgICAgaWYgKHRoaXMu
aG9zdCkgeworICAgICAgICAgICAgbGV0IExheW91dFRyYWl0c0NsYXNzID0gZXZhbCh0aGlzLmhv
c3QubGF5b3V0VHJhaXRzQ2xhc3NOYW1lKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTGF5b3V0
VHJhaXRzQ2xhc3MobW9kZSk7CiAgICAgICAgIH0KLQotICAgICAgICBpZiAodGhpcy5pc0Z1bGxz
Y3JlZW4pCi0gICAgICAgICAgICByZXR1cm4gdHJhaXRzIHwgTGF5b3V0VHJhaXRzLkZ1bGxzY3Jl
ZW47Ci0gICAgICAgIHJldHVybiB0cmFpdHM7CisgICAgICAgIAorICAgICAgICAvLyBEZWZhdWx0
IGZvciB3aGVuIGhvc3QgaXMgbm90IGRlZmluZWQuCisgICAgICAgIC8vIEZJWE1FOiBBbHdheXMg
cmVxdWlyZSBhIGhvc3QgYW5kIHV0aWxpemUgVGVzdE1lZGlhQ29udHJvbHNIb3N0IChmcm9tIG1l
ZGlhLWNvbnRyb2xzLXV0aWxzLmpzKSBmb3IgYWxsIHVuaXQgdGVzdHMuCisgICAgICAgIHJldHVy
biBuZXcgTWFjT1NMYXlvdXRUcmFpdHMobW9kZSk7CiAgICAgfQogCiAgICAgdG9nZ2xlUGxheWJh
Y2soKQpAQCAtMjIwLDggKzIwOSw5IEBAIGNsYXNzIE1lZGlhQ29udHJvbGxlcgogCiAgICAgX3N1
cHBvcnRpbmdPYmplY3RDbGFzc2VzKCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLmxheW91dFRy
YWl0cyAmIExheW91dFRyYWl0cy53YXRjaE9TKQotICAgICAgICAgICAgcmV0dXJuIFtXYXRjaE9T
TWVkaWFDb250cm9sc1N1cHBvcnRdOworICAgICAgICBsZXQgb3ZlcnJpZGVuU3VwcG9ydGluZ09i
amVjdENsYXNzZXMgPSB0aGlzLmxheW91dFRyYWl0cy5vdmVycmlkZW5TdXBwb3J0aW5nT2JqZWN0
Q2xhc3NlcygpOworICAgICAgICBpZiAob3ZlcnJpZGVuU3VwcG9ydGluZ09iamVjdENsYXNzZXMp
CisgICAgICAgICAgICByZXR1cm4gb3ZlcnJpZGVuU3VwcG9ydGluZ09iamVjdENsYXNzZXM7CiAK
ICAgICAgICAgcmV0dXJuIFtBaXJwbGF5U3VwcG9ydCwgQXVkaW9TdXBwb3J0LCBDb250cm9sc1Zp
c2liaWxpdHlTdXBwb3J0LCBGdWxsc2NyZWVuU3VwcG9ydCwgTXV0ZVN1cHBvcnQsIE92ZXJmbG93
U3VwcG9ydCwgUGlQU3VwcG9ydCwgUGxhY2FyZFN1cHBvcnQsIFBsYXliYWNrU3VwcG9ydCwgU2Ny
dWJiaW5nU3VwcG9ydCwgU2Vla0JhY2t3YXJkU3VwcG9ydCwgU2Vla0ZvcndhcmRTdXBwb3J0LCBT
a2lwQmFja1N1cHBvcnQsIFNraXBGb3J3YXJkU3VwcG9ydCwgU3RhcnRTdXBwb3J0LCBTdGF0dXNT
dXBwb3J0LCBUaW1lQ29udHJvbFN1cHBvcnQsIFRyYWNrc1N1cHBvcnQsIFZvbHVtZVN1cHBvcnRd
OwogICAgIH0KQEAgLTIzMCw3ICsyMjAsNyBAQCBjbGFzcyBNZWRpYUNvbnRyb2xsZXIKICAgICB7
CiAgICAgICAgIGNvbnN0IGxheW91dFRyYWl0cyA9IHRoaXMubGF5b3V0VHJhaXRzOwogICAgICAg
ICBjb25zdCBwcmV2aW91c0NvbnRyb2xzID0gdGhpcy5jb250cm9sczsKLSAgICAgICAgY29uc3Qg
Q29udHJvbHNDbGFzcyA9IHRoaXMuX2NvbnRyb2xzQ2xhc3NGb3JMYXlvdXRUcmFpdHMobGF5b3V0
VHJhaXRzKTsKKyAgICAgICAgY29uc3QgQ29udHJvbHNDbGFzcyA9IGxheW91dFRyYWl0cy5tZWRp
YUNvbnRyb2xzQ2xhc3MoKTsKICAgICAgICAgaWYgKHByZXZpb3VzQ29udHJvbHMgJiYgcHJldmlv
dXNDb250cm9scy5jb25zdHJ1Y3RvciA9PT0gQ29udHJvbHNDbGFzcykgewogICAgICAgICAgICAg
dGhpcy5fdXBkYXRlVGV4dFRyYWNrc0NsYXNzTGlzdCgpOwogICAgICAgICAgICAgdGhpcy5fdXBk
YXRlQ29udHJvbHNTaXplKCk7CkBAIC0zMTYsMjQgKzMwNiwxMiBAQCBjbGFzcyBNZWRpYUNvbnRy
b2xsZXIKICAgICAgICAgdGhpcy5jb250cm9scy5zaG91bGRDZW50ZXJDb250cm9sc1ZlcnRpY2Fs
bHkgPSB0aGlzLmlzQXVkaW87CiAgICAgfQogCi0gICAgX2NvbnRyb2xzQ2xhc3NGb3JMYXlvdXRU
cmFpdHMobGF5b3V0VHJhaXRzKQotICAgIHsKLSAgICAgICAgaWYgKGxheW91dFRyYWl0cyAmIExh
eW91dFRyYWl0cy53YXRjaE9TKQotICAgICAgICAgICAgcmV0dXJuIFdhdGNoT1NNZWRpYUNvbnRy
b2xzOwotICAgICAgICBpZiAobGF5b3V0VHJhaXRzICYgTGF5b3V0VHJhaXRzLmlPUykKLSAgICAg
ICAgICAgIHJldHVybiBJT1NJbmxpbmVNZWRpYUNvbnRyb2xzOwotICAgICAgICBpZiAobGF5b3V0
VHJhaXRzICYgTGF5b3V0VHJhaXRzLkZ1bGxzY3JlZW4pCi0gICAgICAgICAgICByZXR1cm4gTWFj
T1NGdWxsc2NyZWVuTWVkaWFDb250cm9sczsKLSAgICAgICAgcmV0dXJuIE1hY09TSW5saW5lTWVk
aWFDb250cm9sczsKLSAgICB9Ci0KICAgICBfdXBkYXRlVGV4dFRyYWNrc0NsYXNzTGlzdCgpCiAg
ICAgewogICAgICAgICBpZiAoIXRoaXMuaG9zdCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAg
ICAgICBjb25zdCBsYXlvdXRUcmFpdHMgPSB0aGlzLmxheW91dFRyYWl0czsKLSAgICAgICAgaWYg
KGxheW91dFRyYWl0cyAmIExheW91dFRyYWl0cy5GdWxsc2NyZWVuKQorICAgICAgICBpZiAodGhp
cy5sYXlvdXRUcmFpdHMuaXNGdWxsc2NyZWVuKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgIHRoaXMuaG9zdC50ZXh0VHJhY2tDb250YWluZXIuY2xhc3NMaXN0LnRvZ2dsZSgidmlzaWJs
ZS1jb250cm9scy1iYXIiLCAhdGhpcy5jb250cm9scy5mYWRlZCk7CkBAIC0zNDksMTMgKzMyNywx
MSBAQCBjbGFzcyBNZWRpYUNvbnRyb2xsZXIKIAogICAgIF9zaG91bGRDb250cm9sc0JlQXZhaWxh
YmxlKCkKICAgICB7Ci0gICAgICAgIC8vIENvbnRyb2xzIGFyZSBhbHdheXMgYXZhaWxhYmxlIG9u
IHdhdGNoT1MuCi0gICAgICAgIGlmICh0aGlzLmxheW91dFRyYWl0cyAmIExheW91dFRyYWl0cy53
YXRjaE9TKQorICAgICAgICBpZiAodGhpcy5sYXlvdXRUcmFpdHMuY29udHJvbHNBbHdheXNBdmFp
bGFibGUoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgICAgIC8vIENvbnRyb2xz
IGFyZSBhbHdheXMgYXZhaWxhYmxlIHdoaWxlIGluIGZ1bGxzY3JlZW4gb24gbWFjT1MsIGFuZCB0
aGV5IGFyZSBuZXZlciBhdmFpbGFibGUgd2hlbiBpbiBmdWxsc2NyZWVuIG9uIGlPUy4KLSAgICAg
ICAgaWYgKHRoaXMuaXNGdWxsc2NyZWVuKQotICAgICAgICAgICAgcmV0dXJuICEhKHRoaXMubGF5
b3V0VHJhaXRzICYgTGF5b3V0VHJhaXRzLm1hY09TKTsKKyAgICAgICAgaWYgKHRoaXMubGF5b3V0
VHJhaXRzLmNvbnRyb2xzTmV2ZXJBdmFpbGFibGUoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgICAgICAvLyBPdGhlcndpc2UsIGZvciBjb250cm9scyB0byBiZSBhdmFpbGFibGUs
IHRoZSBjb250cm9scyBhdHRyaWJ1dGUgbXVzdCBiZSBwcmVzZW50IG9uIHRoZSBtZWRpYSBlbGVt
ZW50CiAgICAgICAgIC8vIG9yIHRoZSBNZWRpYUNvbnRyb2xzSG9zdCBtdXN0IGluZGljYXRlIHRo
YXQgY29udHJvbHMgYXJlIGZvcmNlZC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhL3RyYWNrcy1zdXBwb3J0LmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhL3RyYWNr
cy1zdXBwb3J0LmpzCShyZXZpc2lvbiAyNzkzMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS90cmFja3Mtc3VwcG9ydC5qcwkod29ya2luZyBj
b3B5KQpAQCAtNDYsNyArNDYsNyBAQCBjbGFzcyBUcmFja3NTdXBwb3J0IGV4dGVuZHMgTWVkaWFD
b250cm9sCiAgICAgYnV0dG9uV2FzUHJlc3NlZChjb250cm9sKQogICAgIHsKICAgICAgICAgdGhp
cy5tZWRpYUNvbnRyb2xsZXIuc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudShjb250cm9sLCB7
Ci0gICAgICAgICAgICBwcm9tb3RlU3ViTWVudXM6ICEhKHRoaXMubWVkaWFDb250cm9sbGVyLmxh
eW91dFRyYWl0cyAmIExheW91dFRyYWl0cy5tYWNPUyksCisgICAgICAgICAgICBwcm9tb3RlU3Vi
TWVudXM6IHRoaXMubWVkaWFDb250cm9sbGVyLmxheW91dFRyYWl0cy5wcm9tb3RlU3ViTWVudXNX
aGVuU2hvd2luZ01lZGlhQ29udHJvbHNDb250ZXh0TWVudSgpLAogICAgICAgICB9KTsKICAgICB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDI3OTMwNSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTQ0NjEsNiArMTQ0NjEs
MTAgQEAKIAkJQkNEMEUwRjcwRTk3MkMzNTAwMjY1REVBIC8qIFNlY3VyaXR5T3JpZ2luLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlY3VyaXR5T3JpZ2luLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNEMEUwRjgwRTk3MkMzNTAwMjY1REVBIC8q
IFNlY3VyaXR5T3JpZ2luLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlY3Vy
aXR5T3JpZ2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRDBFMEY5MEU5NzJD
MzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbkhhc2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU2VjdXJpdHlPcmlnaW5IYXNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUJDRDM3MzZDMjY4NjM1QkUwMDM2NDRFNCAvKiBsYXlvdXQtdHJhaXRzLmpzICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5q
YXZhc2NyaXB0OyBwYXRoID0gImxheW91dC10cmFpdHMuanMiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlCQ0QzNzM2RTI2ODYzNzBBMDAzNjQ0RTQgLyogbWFjb3MtbGF5b3V0LXRyYWl0
cy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJtYWNvcy1sYXlvdXQtdHJhaXRzLmpzIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNEMzczNkYyNjg2NDIwMzAwMzY0NEU0IC8qIHdh
dGNob3MtbGF5b3V0LXRyYWl0cy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJ3YXRjaG9zLWxh
eW91dC10cmFpdHMuanMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0QzNzM3MDI2
ODY0MjNDMDAzNjQ0RTQgLyogaW9zLWxheW91dC10cmFpdHMuanMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBh
dGggPSAiaW9zLWxheW91dC10cmFpdHMuanMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQ0Q1MzM2MzBFRDY4NDg5MDA4ODc0NjggLyogQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkU2NyaXB0U291cmNlUHJv
dmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNEOUMyNUUwQzE3QUE2NzAw
NUM5MEEyIC8qIEpTRE9NV2luZG93Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0RPTVdpbmRvd0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDRDlDMjYwMEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVDdXN0b20uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm9kZUN1c3RvbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjk3MywxMiArMjI5NzcsMTUgQEAKIAkJCQk5
NTUxOTU5QjI1RkE5RUNDMDBGNThDRjAgLyogaW5saW5lLW1lZGlhLWNvbnRyb2xzLmpzICovLAog
CQkJCTcxNEY1QjA1MURFRTVGNzQwMDc1QkQxNyAvKiBpbnZhbGlkLXBsYWNhcmQuanMgKi8sCiAJ
CQkJNzE1MkNFQzIxREQyMjM1MzAwRkQ1OTYyIC8qIGlvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMu
anMgKi8sCisJCQkJQkNEMzczNzAyNjg2NDIzQzAwMzY0NEU0IC8qIGlvcy1sYXlvdXQtdHJhaXRz
LmpzICovLAogCQkJCTcxNkZBMEU1MURCMjY1OTEwMDczMjNDQyAvKiBsYXlvdXQtaXRlbS5qcyAq
LywKIAkJCQk3MTZGQTBFNjFEQjI2NTkxMDA3MzIzQ0MgLyogbGF5b3V0LW5vZGUuanMgKi8sCisJ
CQkJQkNEMzczNkMyNjg2MzVCRTAwMzY0NEU0IC8qIGxheW91dC10cmFpdHMuanMgKi8sCiAJCQkJ
NzEyMTU3QzAxRENDQ0EwNzAwQUE3QTkyIC8qIG1hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJv
bHMuY3NzICovLAogCQkJCTcxMjE1N0MxMURDQ0NBMDcwMEFBN0E5MiAvKiBtYWNvcy1mdWxsc2Ny
ZWVuLW1lZGlhLWNvbnRyb2xzLmpzICovLAogCQkJCTcxNkZBMEU3MURCMjY1OTEwMDczMjNDQyAv
KiBtYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMuY3NzICovLAogCQkJCTcxNkZBMEU4MURCMjY1
OTEwMDczMjNDQyAvKiBtYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMuanMgKi8sCisJCQkJQkNE
MzczNkUyNjg2MzcwQTAwMzY0NEU0IC8qIG1hY29zLWxheW91dC10cmFpdHMuanMgKi8sCiAJCQkJ
NzE2RkEwRUExREIyNjU5MTAwNzMyM0NDIC8qIG1lZGlhLWNvbnRyb2xzLmNzcyAqLywKIAkJCQk3
MTZGQTBFQjFEQjI2NTkxMDA3MzIzQ0MgLyogbWVkaWEtY29udHJvbHMuanMgKi8sCiAJCQkJOTU1
MTk1OUMyNUZBOUVFMzAwRjU4Q0YwIC8qIG1lZGlhLWRvY3VtZW50LmNzcyAqLywKQEAgLTIzMDA1
LDYgKzIzMDEyLDcgQEAKIAkJCQk3MTZGQTBGRTFEQjI2NTkxMDA3MzIzQ0MgLyogdHJhY2tzLWJ1
dHRvbi5qcyAqLywKIAkJCQk5NTUxOTU4RTI1RkE5RTMwMDBGNThDRjAgLyogd2F0Y2hvcy1hY3Rp
dml0eS1pbmRpY2F0b3IuY3NzICovLAogCQkJCTk1NTE5NThGMjVGQTlFMzEwMEY1OENGMCAvKiB3
YXRjaG9zLWFjdGl2aXR5LWluZGljYXRvci5qcyAqLywKKwkJCQlCQ0QzNzM2RjI2ODY0MjAzMDAz
NjQ0RTQgLyogd2F0Y2hvcy1sYXlvdXQtdHJhaXRzLmpzICovLAogCQkJCTk1NTE5NThEMjVGQTlF
MzAwMEY1OENGMCAvKiB3YXRjaG9zLW1lZGlhLWNvbnRyb2xzLmNzcyAqLywKIAkJCQk3MURFMjc5
NDIwM0E5QzFDMDA1OENCNTEgLyogd2F0Y2hvcy1tZWRpYS1jb250cm9scy5qcyAqLywKIAkJCSk7
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyNzkzMDcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSw1NyBAQAorMjAyMS0wNi0yNiAgU2FtIFdlaW5pZyAgPHdl
aW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gTW9kZXJu
IG1lZGlhIGNvbnRyb2xzIHNob3VsZCBub3QgbmVlZCB0byBrbm93IGFib3V0IHNwZWNpZmljIHBs
YXRmb3JtcyBpbiBzaGFyZWQgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI3NDIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXBkYXRlIHRlc3RzIGFuZCByZXN1bHRzIHRvIHVzZSBMYXlvdXRUcmFp
dHMgY2xhc3MuCisKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYWlycGxh
eS1idXR0b24vYWlycGxheS1idXR0b24tb24uaHRtbDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvYWlycGxheS1idXR0b24vYWlycGxheS1idXR0b24uaHRtbDoKKyAgICAg
ICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYWlycGxheS1wbGFjYXJkL2FpcnBsYXkt
cGxhY2FyZC5odG1sOgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9idXR0
b24vYnV0dG9uLWFjdGl2ZS1zdGF0ZS5odG1sOgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9idXR0b24vYnV0dG9uLWNsaWNrLW9uLWVkZ2VzLmh0bWw6CisgICAgICAgICog
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9idXR0b24tZm9jdXMtc3RhdGUuaHRt
bDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYnV0dG9uL2J1dHRvbi1p
Y29uLW5hbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9idXR0b24vYnV0dG9uLWljb24tbmFtZS5odG1sOgorICAgICAgICAqIG1lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy9idXR0b24vYnV0dG9uLW9uLmh0bWw6CisgICAgICAgICogbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2ZvcndhcmQtYnV0dG9uL2ZvcndhcmQtYnV0dG9uLmh0bWw6
CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Z1bGxzY3JlZW4tYnV0dG9u
L2Z1bGxzY3JlZW4tYnV0dG9uLmh0bWw6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL2ljb24tc2VydmljZS9pY29uLXNlcnZpY2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9pY29uLXNlcnZpY2UvaWNvbi1zZXJ2aWNlLmh0
bWw6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2ludmFsaWQtcGxhY2Fy
ZC9pbnZhbGlkLXBsYWNhcmQtY29uc3RyYWluZWQtbWV0cmljcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2ludmFsaWQtcGxhY2FyZC9pbnZhbGlk
LXBsYWNhcmQtY29uc3RyYWluZWQtbWV0cmljcy5odG1sOgorICAgICAgICAqIG1lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy9pbnZhbGlkLXBsYWNhcmQvaW52YWxpZC1wbGFjYXJkLmh0bWw6Cisg
ICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2lvcy1pbmxpbmUtbWVkaWEtY29u
dHJvbHMvaW9zLWlubGluZS1tZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci5odG1sOgorICAgICAg
ICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9sYXlvdXQtaXRlbS9sYXlvdXQtaXRlbS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2xheW91
dC1pdGVtL2xheW91dC1pdGVtLmh0bWw6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1t
ZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFj
b3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci5odG1sOgorICAgICAgICAq
IG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMv
bWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNv
bnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci5odG1sOgorICAg
ICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlh
LWNvbnRyb2xsZXItZnVsbHNjcmVlbi1jaGFuZ2UuaHRtbDoKKyAgICAgICAgKiBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbHMtYXBwZWFyLXdo
ZW4tZm9jdXMuaHRtbDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVk
aWEtY29udHJvbHMvbWVkaWEtY29udHJvbHMtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9scy9tZWRpYS1j
b250cm9scy1jb25zdHJ1Y3Rvci5odG1sOgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy9tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9scy1wbGFjYXJkLWNvbXByZXNzZWQt
bWV0cmljcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL21lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xzLXBsYWNhcmQtY29tcHJlc3NlZC1tZXRy
aWNzLmh0bWw6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL211dGUtYnV0
dG9uL211dGUtYnV0dG9uLmh0bWw6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL292ZXJmbG93LWJ1dHRvbi9vdmVyZmxvdy1idXR0b24uaHRtbDoKKyAgICAgICAgKiBtZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcGlwLWJ1dHRvbi9waXAtYnV0dG9uLmh0bWw6CisgICAg
ICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3BpcC1wbGFjYXJkL3BpcC1wbGFjYXJk
Lmh0bWw6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3BsYWNhcmQvcGxh
Y2FyZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3BsYWNhcmQvcGxhY2FyZC5odG1sOgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9wbGF5LXBhdXNlLWJ1dHRvbi9wbGF5LXBhdXNlLWJ1dHRvbi5odG1sOgorICAgICAgICAq
IG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9yZXdpbmQtYnV0dG9uL3Jld2luZC1idXR0b24u
aHRtbDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvc2tpcC1iYWNrLWJ1
dHRvbi9za2lwLWJhY2stYnV0dG9uLmh0bWw6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3NraXAtZm9yd2FyZC1idXR0b24vc2tpcC1mb3J3YXJkLWJ1dHRvbi5odG1sOgor
ICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90aW1lLWNvbnRyb2wvdGltZS1j
b250cm9sLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvdGltZS1jb250cm9sL3RpbWUtY29udHJvbC5odG1sOgorICAgICAgICAqIG1lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy90cmFja3MtYnV0dG9uL3RyYWNrcy1idXR0b24uaHRtbDoKKyAgICAg
ICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvd2F0Y2hvcy1tZWRpYS1jb250cm9scy93
YXRjaG9zLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvd2F0Y2hvcy1tZWRpYS1jb250cm9scy93YXRj
aG9zLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLmh0bWw6CisKIDIwMjEtMDYtMjUgIEFyY2Fk
eSBHb2xkbWludHMtT3Jsb3YgIDxhZ29sZG1pbnRzQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dM
SUJdIFVwZGF0ZSB0ZXN0IGV4cGVjdGF0aW9ucyBhZnRlciByMjc5MjE3CkluZGV4OiBMYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYWlycGxheS1idXR0b24vYWlycGxheS1i
dXR0b24tb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvYWlycGxheS1idXR0b24vYWlycGxheS1idXR0b24tb24uaHRtbAkocmV2aXNp
b24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Fp
cnBsYXktYnV0dG9uL2FpcnBsYXktYnV0dG9uLW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgs
NyArOCw3IEBAIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogZGVzY3JpcHRpb24oIlRl
c3RpbmcgdGhlIDxjb2RlPkFpcnBsYXlCdXR0b248L2NvZGU+IGNsYXNzLiIpOwogCi1jb25zdCBh
aXJwbGF5QnV0dG9uID0gbmV3IEFpcnBsYXlCdXR0b24oeyBsYXlvdXRUcmFpdHM6IExheW91dFRy
YWl0cy5tYWNPUyB9KTsKK2NvbnN0IGFpcnBsYXlCdXR0b24gPSBuZXcgQWlycGxheUJ1dHRvbih7
IGxheW91dFRyYWl0czogbmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLklu
bGluZSkgfSk7CiBhaXJwbGF5QnV0dG9uLm9uID0gdHJ1ZTsKIAogZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChhaXJwbGF5QnV0dG9uLmVsZW1lbnQpOwpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2FpcnBsYXktYnV0dG9uL2FpcnBsYXktYnV0dG9uLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Fp
cnBsYXktYnV0dG9uL2FpcnBsYXktYnV0dG9uLmh0bWwJKHJldmlzaW9uIDI3OTMwNSkKKysrIExh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9haXJwbGF5LWJ1dHRvbi9haXJw
bGF5LWJ1dHRvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05LDE0ICs5LDE0IEBAIHdpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhlIDxjb2RlPkFp
cnBsYXlCdXR0b248L2NvZGU+IGNsYXNzLiIpOwogCi1jb25zdCBhaXJwbGF5QnV0dG9uID0gbmV3
IEFpcnBsYXlCdXR0b24oeyBsYXlvdXRUcmFpdHM6IExheW91dFRyYWl0cy5tYWNPUyB9KTsKK2Nv
bnN0IGFpcnBsYXlCdXR0b24gPSBuZXcgQWlycGxheUJ1dHRvbih7IGxheW91dFRyYWl0czogbmV3
IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLklubGluZSkgfSk7CiAKIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiYWlycGxheUJ1dHRvbi5lbGVtZW50LmxvY2FsTmFtZSIsICJidXR0
b24iKTsKIHNob3VsZEJlVHJ1ZSgnYWlycGxheUJ1dHRvbi5lbGVtZW50LmNsYXNzTGlzdC5jb250
YWlucygiYWlycGxheSIpJyk7CiBzaG91bGRCZSgiYWlycGxheUJ1dHRvbi5pY29uTmFtZSIsICJJ
Y29ucy5BaXJwbGF5Iik7CiAKLWNvbnN0IG1hY09TRnVsbHNjcmVlbkFpcnBsYXlCdXR0b24gPSBu
ZXcgQWlycGxheUJ1dHRvbih7IGxheW91dFRyYWl0czogTGF5b3V0VHJhaXRzLm1hY09TIHwgTGF5
b3V0VHJhaXRzLkZ1bGxzY3JlZW4gfSk7Ci1jb25zdCBpT1NBaXJwbGF5QnV0dG9uID0gbmV3IEFp
cnBsYXlCdXR0b24oeyBsYXlvdXRUcmFpdHM6IExheW91dFRyYWl0cy5pT1MgfSk7Citjb25zdCBt
YWNPU0Z1bGxzY3JlZW5BaXJwbGF5QnV0dG9uID0gbmV3IEFpcnBsYXlCdXR0b24oeyBsYXlvdXRU
cmFpdHM6IG5ldyBNYWNPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5GdWxsc2NyZWVu
KSB9KTsKK2NvbnN0IGlPU0FpcnBsYXlCdXR0b24gPSBuZXcgQWlycGxheUJ1dHRvbih7IGxheW91
dFRyYWl0czogbmV3IElPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpIH0p
OwogCiBzaG91bGRCZWNvbWVFcXVhbCgnYWlycGxheUJ1dHRvbi5pbWFnZS5lbGVtZW50LnN0eWxl
LndlYmtpdE1hc2tJbWFnZS5pbmNsdWRlcygibWFjT1MvQWlycGxheS5zdmciKScsICJ0cnVlIiwg
KCkgPT4gewogICAgIHNob3VsZEJlY29tZUVxdWFsKCdtYWNPU0Z1bGxzY3JlZW5BaXJwbGF5QnV0
dG9uLmltYWdlLmVsZW1lbnQuc3R5bGUud2Via2l0TWFza0ltYWdlLmluY2x1ZGVzKCJtYWNPUy9B
aXJwbGF5LWZ1bGxzY3JlZW4uc3ZnIiknLCAidHJ1ZSIsICgpID0+IHsKSW5kZXg6IExheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9haXJwbGF5LXBsYWNhcmQvYWlycGxheS1w
bGFjYXJkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL2FpcnBsYXktcGxhY2FyZC9haXJwbGF5LXBsYWNhcmQuaHRtbAkocmV2aXNpb24g
Mjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2FpcnBs
YXktcGxhY2FyZC9haXJwbGF5LXBsYWNhcmQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2
LDcgQEAKIGRlc2NyaXB0aW9uKCJUZXN0aW5nIHRoZSA8Y29kZT5BaXJwbGF5UGxhY2FyZDwvY29k
ZT4gY2xhc3MuIik7CiAKIGRlYnVnKCJQbGFjYXJkIHdpdGggYWxsIHBhcmFtZXRlcnMiKTsKLWNv
bnN0IHBsYWNhcmQgPSBuZXcgQWlycGxheVBsYWNhcmQoeyBsYXlvdXRUcmFpdHM6IExheW91dFRy
YWl0cy5tYWNPUyB9KTsKK2NvbnN0IHBsYWNhcmQgPSBuZXcgQWlycGxheVBsYWNhcmQoeyBsYXlv
dXRUcmFpdHM6IG5ldyBNYWNPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUp
IH0pOwogCiBzaG91bGRCZSgicGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblswXS5pY29uTmFt
ZSIsICJJY29ucy5BaXJwbGF5UGxhY2FyZCIpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJwbGFj
YXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFdLmVsZW1lbnQuaW5uZXJUZXh0IiwgIkFpclBsYXki
KTsKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9idXR0b24v
YnV0dG9uLWFjdGl2ZS1zdGF0ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9idXR0b24vYnV0dG9uLWFjdGl2ZS1zdGF0ZS5odG1sCShy
ZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvYnV0dG9uL2J1dHRvbi1hY3RpdmUtc3RhdGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw3
ICs3LDcgQEAgZGVzY3JpcHRpb24oIlRlc3RpbmcgYW4gPGNvZGU+QnV0dG9uPC9jbwogCiB3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWNvbnN0IGJ1dHRvbiA9IG5ldyBCdXR0b24oeyBs
YXlvdXREZWxlZ2F0ZTogeyBsYXlvdXRUcmFpdHM6IExheW91dFRyYWl0cy5tYWNPUyB9IH0pOwor
Y29uc3QgYnV0dG9uID0gbmV3IEJ1dHRvbih7IGxheW91dERlbGVnYXRlOiB7IGxheW91dFRyYWl0
czogbmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLklubGluZSkgfSB9KTsK
IGJ1dHRvbi5pY29uTmFtZSA9IEljb25zLlBhdXNlOwogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChidXR0b24uZWxlbWVudCk7CiAKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9idXR0b24vYnV0dG9uLWNsaWNrLW9uLWVkZ2VzLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9idXR0b24t
Y2xpY2stb24tZWRnZXMuaHRtbAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9idXR0b24tY2xpY2stb24tZWRnZXMuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNyBAQCBkZXNjcmlwdGlvbigiVGVzdGluZyB0
aGUgPGNvZGU+QnV0dG9uPC9jCiAKIGNvbnN0IGJ1dHRvbiA9IG5ldyBCdXR0b24oewogICAgIGxh
eW91dERlbGVnYXRlOiB7Ci0gICAgICAgIGxheW91dFRyYWl0czogTGF5b3V0VHJhaXRzLm1hY09T
CisgICAgICAgIGxheW91dFRyYWl0czogbmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0
cy5Nb2RlLklubGluZSkKICAgICB9IAogfSk7CiBidXR0b24uaWNvbk5hbWUgPSBJY29ucy5QYXVz
ZTsKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9idXR0b24v
YnV0dG9uLWZvY3VzLXN0YXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9idXR0b24tZm9jdXMtc3RhdGUuaHRtbAkocmV2
aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L2J1dHRvbi9idXR0b24tZm9jdXMtc3RhdGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3
LDcgQEAgZGVzY3JpcHRpb24oIlRlc3RpbmcgYW4gPGNvZGU+SWNvbkJ1dHRvbgogCiB3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWNvbnN0IGJ1dHRvbiA9IG5ldyBCdXR0b24oeyBsYXlv
dXREZWxlZ2F0ZTogeyBsYXlvdXRUcmFpdHM6IExheW91dFRyYWl0cy5tYWNPUyB9LCBpY29uTmFt
ZTogSWNvbnMuUGF1c2UgfSk7Citjb25zdCBidXR0b24gPSBuZXcgQnV0dG9uKHsgbGF5b3V0RGVs
ZWdhdGU6IHsgbGF5b3V0VHJhaXRzOiBuZXcgTWFjT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRz
Lk1vZGUuSW5saW5lKSB9LCBpY29uTmFtZTogSWNvbnMuUGF1c2UgfSk7CiBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGJ1dHRvbi5lbGVtZW50KTsKIAogCkluZGV4OiBMYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYnV0dG9uL2J1dHRvbi1pY29uLW5hbWUtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy9idXR0b24vYnV0dG9uLWljb24tbmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3OTMwNSkK
KysrIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9idXR0b24vYnV0dG9u
LWljb24tbmFtZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBAIFRo
ZXJlIHNob3VsZCBiZSBubyBpY29uTmFtZSBieSBkZWZhdWx0CiBQQVNTIGJ1dHRvbi5pY29uTmFt
ZSBpcyAiIgogCiBTZXR0aW5nIGFuIGljb25OYW1lIHdpdGggaW52YWxpZCBsYXlvdXQgdHJhaXRz
IHNob3VsZCB0aHJvdwotUEFTUyBmdW5jdGlvbiAoKSB7IGJ1dHRvbi5pY29uTmFtZSA9IEljb25z
LlBhdXNlIH0gdGhyZXcgZXhjZXB0aW9uIENvdWxkIG5vdCBpZGVudGlmeSBpY29uJ3MgcGxhdGZv
cm0gZnJvbSBsYXlvdXQgdHJhaXRzLi4KK1BBU1MgZnVuY3Rpb24gKCkgeyBidXR0b24uaWNvbk5h
bWUgPSBJY29ucy5QYXVzZSB9IHRocmV3IGV4Y2VwdGlvbiBObyBsYXlvdXQgdHJhaXRzIHNwZWNp
ZmllZCB2aWEgbGF5b3V0RGVsZWdhdGUgb3Igb3ZlcnJpZGVuIGxheW91VHJhaXRzKCkgZ2V0dGVy
LgogUEFTUyBidXR0b24uaWNvbk5hbWUgaXMgIiIKIAogU2V0dGluZyBtYWNPUyBpbmxpbmUgbGF5
b3V0IHRyYWl0cyBhbmQgc2V0dGluZyBwbGF5IGljb24KSW5kZXg6IExheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9idXR0b24vYnV0dG9uLWljb24tbmFtZS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9idXR0b24v
YnV0dG9uLWljb24tbmFtZS5odG1sCShyZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYnV0dG9uL2J1dHRvbi1pY29uLW5hbWUuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNyBAQCBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImJ1
dHRvbi5pY29uTmFtZSIsCiAKIGRlYnVnKCIiKTsKIGRlYnVnKCJTZXR0aW5nIG1hY09TIGlubGlu
ZSBsYXlvdXQgdHJhaXRzIGFuZCBzZXR0aW5nIHBsYXkgaWNvbiIpOwotbGF5b3V0RGVsZWdhdGUu
bGF5b3V0VHJhaXRzID0gTGF5b3V0VHJhaXRzLm1hY09TOworbGF5b3V0RGVsZWdhdGUubGF5b3V0
VHJhaXRzID0gbmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLklubGluZSk7
CiBidXR0b24uaWNvbk5hbWUgPSBJY29ucy5QYXVzZTsKIAogc2hvdWxkQmVjb21lRXF1YWwoJ2J1
dHRvbi5pbWFnZS5lbGVtZW50LnN0eWxlLndlYmtpdE1hc2tJbWFnZS5pbmNsdWRlcygibWFjT1Mv
UGF1c2Uuc3ZnIiknLCAidHJ1ZSIsICgpID0+IHsKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy9idXR0b24vYnV0dG9uLW9uLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9idXR0b24tb24u
aHRtbAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL2J1dHRvbi9idXR0b24tb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4
LDcgQEAgZGVzY3JpcHRpb24oIlRlc3RpbmcgYW4gPGNvZGU+QnV0dG9uPC9jbwogCiB3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWNvbnN0IGJ1dHRvbiA9IG5ldyBCdXR0b24oeyBsYXlv
dXREZWxlZ2F0ZTogeyBsYXlvdXRUcmFpdHM6IExheW91dFRyYWl0cy5tYWNPUyB9IH0pOworY29u
c3QgYnV0dG9uID0gbmV3IEJ1dHRvbih7IGxheW91dERlbGVnYXRlOiB7IGxheW91dFRyYWl0czog
bmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLklubGluZSkgfSB9KTsKIGJ1
dHRvbi5pY29uTmFtZSA9IEljb25zLlBhdXNlOwogYnV0dG9uLm9uID0gdHJ1ZTsKIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoYnV0dG9uLmVsZW1lbnQpOwpJbmRleDogTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2ZvcndhcmQtYnV0dG9uL2ZvcndhcmQtYnV0dG9uLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L2ZvcndhcmQtYnV0dG9uL2ZvcndhcmQtYnV0dG9uLmh0bWwJKHJldmlzaW9uIDI3OTMwNSkKKysr
IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9mb3J3YXJkLWJ1dHRvbi9m
b3J3YXJkLWJ1dHRvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQCB3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CiAKIGRlc2NyaXB0aW9uKCJUZXN0aW5nIHRoZSA8Y29kZT5G
b3J3YXJkQnV0dG9uPC9jb2RlPiBjbGFzcy4iKTsKIAotY29uc3QgZm9yd2FyZEJ1dHRvbiA9IG5l
dyBGb3J3YXJkQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBMYXlvdXRUcmFpdHMubWFjT1MgfSk7Citj
b25zdCBmb3J3YXJkQnV0dG9uID0gbmV3IEZvcndhcmRCdXR0b24oeyBsYXlvdXRUcmFpdHM6IG5l
dyBNYWNPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpIH0pOwogCiBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImZvcndhcmRCdXR0b24uZWxlbWVudC5sb2NhbE5hbWUiLCAiYnV0
dG9uIik7CiBzaG91bGRCZVRydWUoJ2ZvcndhcmRCdXR0b24uZWxlbWVudC5jbGFzc0xpc3QuY29u
dGFpbnMoImZvcndhcmQiKScpOwpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL2Z1bGxzY3JlZW4tYnV0dG9uL2Z1bGxzY3JlZW4tYnV0dG9uLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Z1bGxzY3Jl
ZW4tYnV0dG9uL2Z1bGxzY3JlZW4tYnV0dG9uLmh0bWwJKHJldmlzaW9uIDI3OTMwNSkKKysrIExh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9mdWxsc2NyZWVuLWJ1dHRvbi9m
dWxsc2NyZWVuLWJ1dHRvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDE1ICs4LDE1IEBAIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhlIDxj
b2RlPkZ1bGxzY3JlZW5CdXR0b248L2NvZGU+IGNsYXNzLiIpOwogCi1jb25zdCBlbnRlckZ1bGxz
Y3JlZW5CdXR0b24gPSBuZXcgRnVsbHNjcmVlbkJ1dHRvbih7IGxheW91dFRyYWl0czogTGF5b3V0
VHJhaXRzLm1hY09TIH0pOworY29uc3QgZW50ZXJGdWxsc2NyZWVuQnV0dG9uID0gbmV3IEZ1bGxz
Y3JlZW5CdXR0b24oeyBsYXlvdXRUcmFpdHM6IG5ldyBNYWNPU0xheW91dFRyYWl0cyhMYXlvdXRU
cmFpdHMuTW9kZS5JbmxpbmUpIH0pOwogCiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImVudGVyRnVs
bHNjcmVlbkJ1dHRvbi5lbGVtZW50LmxvY2FsTmFtZSIsICJidXR0b24iKTsKIHNob3VsZEJlVHJ1
ZSgnZW50ZXJGdWxsc2NyZWVuQnV0dG9uLmVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJmdWxs
c2NyZWVuIiknKTsKIHNob3VsZEJlKCJlbnRlckZ1bGxzY3JlZW5CdXR0b24uaWNvbk5hbWUiLCAi
SWNvbnMuRW50ZXJGdWxsc2NyZWVuIik7CiAKLWNvbnN0IGlPU0VudGVyRnVsbHNjcmVlbkJ1dHRv
biA9IG5ldyBGdWxsc2NyZWVuQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBMYXlvdXRUcmFpdHMuaU9T
IH0pOworY29uc3QgaU9TRW50ZXJGdWxsc2NyZWVuQnV0dG9uID0gbmV3IEZ1bGxzY3JlZW5CdXR0
b24oeyBsYXlvdXRUcmFpdHM6IG5ldyBJT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUu
SW5saW5lKSB9KTsKIAotY29uc3QgZXhpdEZ1bGxzY3JlZW5CdXR0b24gPSBuZXcgRnVsbHNjcmVl
bkJ1dHRvbih7IGxheW91dFRyYWl0czogTGF5b3V0VHJhaXRzLm1hY09TIHwgTGF5b3V0VHJhaXRz
LkZ1bGxzY3JlZW4gfSk7Citjb25zdCBleGl0RnVsbHNjcmVlbkJ1dHRvbiA9IG5ldyBGdWxsc2Ny
ZWVuQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBuZXcgTWFjT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJh
aXRzLk1vZGUuRnVsbHNjcmVlbikgfSk7CiBzaG91bGRCZSgiZXhpdEZ1bGxzY3JlZW5CdXR0b24u
aWNvbk5hbWUiLCAiSWNvbnMuRXhpdEZ1bGxzY3JlZW4iKTsKIAogc2NoZWR1bGVyLmZyYW1lRGlk
RmlyZSA9IGZ1bmN0aW9uKCkKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy9pY29uLXNlcnZpY2UvaWNvbi1zZXJ2aWNlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvaWNvbi1zZXJ2aWNl
L2ljb24tc2VydmljZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3OTMwNSkKKysrIExheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9pY29uLXNlcnZpY2UvaWNvbi1zZXJ2aWNl
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCwxNSArNCwxNSBAQCBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIAogQ2hlY2tpbmcgcGF0aCB0byBpbWFn
ZXMgaXMgY29tcHV0ZWQgYWNjb3JkaW5nIHRvIHRyYWl0cwotUEFTUyBpY29uU2VydmljZS5pbWFn
ZUZvckljb25BbmRMYXlvdXRUcmFpdHMoSWNvbnMuQWlycGxheSwgTGF5b3V0VHJhaXRzLm1hY09T
KS5zcmMuaW5jbHVkZXMoIm1hY09TL0FpcnBsYXkuc3ZnIikgaXMgdHJ1ZQotUEFTUyBpY29uU2Vy
dmljZS5pbWFnZUZvckljb25BbmRMYXlvdXRUcmFpdHMoSWNvbnMuQWlycGxheSwgTGF5b3V0VHJh
aXRzLmlPUykuc3JjLmluY2x1ZGVzKCJpT1MvQWlycGxheS5zdmciKSBpcyB0cnVlCi1QQVNTIGlj
b25TZXJ2aWNlLmltYWdlRm9ySWNvbkFuZExheW91dFRyYWl0cyhJY29ucy5BaXJwbGF5LCBMYXlv
dXRUcmFpdHMubWFjT1MgfCBMYXlvdXRUcmFpdHMuRnVsbHNjcmVlbikuc3JjLmluY2x1ZGVzKCJt
YWNPUy9BaXJwbGF5LWZ1bGxzY3JlZW4uc3ZnIikgaXMgdHJ1ZQorUEFTUyBpY29uU2VydmljZS5p
bWFnZUZvckljb25BbmRMYXlvdXRUcmFpdHMoSWNvbnMuQWlycGxheSwgbmV3IE1hY09TTGF5b3V0
VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLklubGluZSkpLnNyYy5pbmNsdWRlcygibWFjT1MvQWly
cGxheS5zdmciKSBpcyB0cnVlCitQQVNTIGljb25TZXJ2aWNlLmltYWdlRm9ySWNvbkFuZExheW91
dFRyYWl0cyhJY29ucy5BaXJwbGF5LCBuZXcgSU9TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5N
b2RlLklubGluZSkpLnNyYy5pbmNsdWRlcygiaU9TL0FpcnBsYXkuc3ZnIikgaXMgdHJ1ZQorUEFT
UyBpY29uU2VydmljZS5pbWFnZUZvckljb25BbmRMYXlvdXRUcmFpdHMoSWNvbnMuQWlycGxheSwg
bmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLkZ1bGxzY3JlZW4pKS5zcmMu
aW5jbHVkZXMoIm1hY09TL0FpcnBsYXktZnVsbHNjcmVlbi5zdmciKSBpcyB0cnVlCiAKIENoZWNr
aW5nIGZ1bGxzY3JlZW4gbGF5b3V0IHRyYWl0cyBhcmUgaWdub3JlZCBvbiBpT1MKLVBBU1MgaWNv
blNlcnZpY2UuaW1hZ2VGb3JJY29uQW5kTGF5b3V0VHJhaXRzKEljb25zLkFpcnBsYXksIExheW91
dFRyYWl0cy5pT1MgfCBMYXlvdXRUcmFpdHMuRnVsbHNjcmVlbikgPT09IGljb25TZXJ2aWNlLmlt
YWdlRm9ySWNvbkFuZExheW91dFRyYWl0cyhJY29ucy5BaXJwbGF5LCBMYXlvdXRUcmFpdHMuaU9T
KSBpcyB0cnVlCitQQVNTIGljb25TZXJ2aWNlLmltYWdlRm9ySWNvbkFuZExheW91dFRyYWl0cyhJ
Y29ucy5BaXJwbGF5LCBuZXcgSU9TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLkZ1bGxz
Y3JlZW4pKSA9PT0gaWNvblNlcnZpY2UuaW1hZ2VGb3JJY29uQW5kTGF5b3V0VHJhaXRzKEljb25z
LkFpcnBsYXksIG5ldyBJT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSkg
aXMgdHJ1ZQogCiBDaGVja2luZyByZXF1ZXN0ZWQgaW1hZ2VzIGFyZSBjYWNoZWQKLVBBU1MgaWNv
blNlcnZpY2UuaW1hZ2VGb3JJY29uQW5kTGF5b3V0VHJhaXRzKEljb25zLkFpcnBsYXksIExheW91
dFRyYWl0cy5tYWNPUykgPT09IGljb25TZXJ2aWNlLmltYWdlRm9ySWNvbkFuZExheW91dFRyYWl0
cyhJY29ucy5BaXJwbGF5LCBMYXlvdXRUcmFpdHMubWFjT1MpIGlzIHRydWUKK1BBU1MgaWNvblNl
cnZpY2UuaW1hZ2VGb3JJY29uQW5kTGF5b3V0VHJhaXRzKEljb25zLkFpcnBsYXksIG5ldyBNYWNP
U0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpKSA9PT0gaWNvblNlcnZpY2Uu
aW1hZ2VGb3JJY29uQW5kTGF5b3V0VHJhaXRzKEljb25zLkFpcnBsYXksIG5ldyBNYWNPU0xheW91
dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpKSBpcyB0cnVlCiBQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9pY29uLXNlcnZpY2UvaWNvbi1zZXJ2aWNlLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2lj
b24tc2VydmljZS9pY29uLXNlcnZpY2UuaHRtbAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2ljb24tc2VydmljZS9pY29uLXNlcnZp
Y2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCwxNyArOCwxNyBAQCBkZXNjcmlwdGlvbigiVGVz
dGluZyB0aGUgPGNvZGU+aWNvblNlcnZpCiBpY29uU2VydmljZS5kaXJlY3RvcnlQYXRoID0gIi4u
Ly4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2lt
YWdlcyI7CiAKIGRlYnVnKCJDaGVja2luZyBwYXRoIHRvIGltYWdlcyBpcyBjb21wdXRlZCBhY2Nv
cmRpbmcgdG8gdHJhaXRzIik7Ci1zaG91bGRCZVRydWUoJ2ljb25TZXJ2aWNlLmltYWdlRm9ySWNv
bkFuZExheW91dFRyYWl0cyhJY29ucy5BaXJwbGF5LCBMYXlvdXRUcmFpdHMubWFjT1MpLnNyYy5p
bmNsdWRlcygibWFjT1MvQWlycGxheS5zdmciKScpOwotc2hvdWxkQmVUcnVlKCdpY29uU2Vydmlj
ZS5pbWFnZUZvckljb25BbmRMYXlvdXRUcmFpdHMoSWNvbnMuQWlycGxheSwgTGF5b3V0VHJhaXRz
LmlPUykuc3JjLmluY2x1ZGVzKCJpT1MvQWlycGxheS5zdmciKScpOwotc2hvdWxkQmVUcnVlKCdp
Y29uU2VydmljZS5pbWFnZUZvckljb25BbmRMYXlvdXRUcmFpdHMoSWNvbnMuQWlycGxheSwgTGF5
b3V0VHJhaXRzLm1hY09TIHwgTGF5b3V0VHJhaXRzLkZ1bGxzY3JlZW4pLnNyYy5pbmNsdWRlcygi
bWFjT1MvQWlycGxheS1mdWxsc2NyZWVuLnN2ZyIpJyk7CitzaG91bGRCZVRydWUoJ2ljb25TZXJ2
aWNlLmltYWdlRm9ySWNvbkFuZExheW91dFRyYWl0cyhJY29ucy5BaXJwbGF5LCBuZXcgTWFjT1NM
YXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSkuc3JjLmluY2x1ZGVzKCJtYWNP
Uy9BaXJwbGF5LnN2ZyIpJyk7CitzaG91bGRCZVRydWUoJ2ljb25TZXJ2aWNlLmltYWdlRm9ySWNv
bkFuZExheW91dFRyYWl0cyhJY29ucy5BaXJwbGF5LCBuZXcgSU9TTGF5b3V0VHJhaXRzKExheW91
dFRyYWl0cy5Nb2RlLklubGluZSkpLnNyYy5pbmNsdWRlcygiaU9TL0FpcnBsYXkuc3ZnIiknKTsK
K3Nob3VsZEJlVHJ1ZSgnaWNvblNlcnZpY2UuaW1hZ2VGb3JJY29uQW5kTGF5b3V0VHJhaXRzKElj
b25zLkFpcnBsYXksIG5ldyBNYWNPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5GdWxs
c2NyZWVuKSkuc3JjLmluY2x1ZGVzKCJtYWNPUy9BaXJwbGF5LWZ1bGxzY3JlZW4uc3ZnIiknKTsK
IAogZGVidWcoIiIpOwogZGVidWcoIkNoZWNraW5nIGZ1bGxzY3JlZW4gbGF5b3V0IHRyYWl0cyBh
cmUgaWdub3JlZCBvbiBpT1MiKTsKLXNob3VsZEJlVHJ1ZSgnaWNvblNlcnZpY2UuaW1hZ2VGb3JJ
Y29uQW5kTGF5b3V0VHJhaXRzKEljb25zLkFpcnBsYXksIExheW91dFRyYWl0cy5pT1MgfCBMYXlv
dXRUcmFpdHMuRnVsbHNjcmVlbikgPT09IGljb25TZXJ2aWNlLmltYWdlRm9ySWNvbkFuZExheW91
dFRyYWl0cyhJY29ucy5BaXJwbGF5LCBMYXlvdXRUcmFpdHMuaU9TKScpOworc2hvdWxkQmVUcnVl
KCdpY29uU2VydmljZS5pbWFnZUZvckljb25BbmRMYXlvdXRUcmFpdHMoSWNvbnMuQWlycGxheSwg
bmV3IElPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5GdWxsc2NyZWVuKSkgPT09IGlj
b25TZXJ2aWNlLmltYWdlRm9ySWNvbkFuZExheW91dFRyYWl0cyhJY29ucy5BaXJwbGF5LCBuZXcg
SU9TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLklubGluZSkpJyk7CiAKIGRlYnVnKCIi
KTsKIGRlYnVnKCJDaGVja2luZyByZXF1ZXN0ZWQgaW1hZ2VzIGFyZSBjYWNoZWQiKTsKLXNob3Vs
ZEJlVHJ1ZSgnaWNvblNlcnZpY2UuaW1hZ2VGb3JJY29uQW5kTGF5b3V0VHJhaXRzKEljb25zLkFp
cnBsYXksIExheW91dFRyYWl0cy5tYWNPUykgPT09IGljb25TZXJ2aWNlLmltYWdlRm9ySWNvbkFu
ZExheW91dFRyYWl0cyhJY29ucy5BaXJwbGF5LCBMYXlvdXRUcmFpdHMubWFjT1MpJyk7CitzaG91
bGRCZVRydWUoJ2ljb25TZXJ2aWNlLmltYWdlRm9ySWNvbkFuZExheW91dFRyYWl0cyhJY29ucy5B
aXJwbGF5LCBuZXcgTWFjT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSkg
PT09IGljb25TZXJ2aWNlLmltYWdlRm9ySWNvbkFuZExheW91dFRyYWl0cyhJY29ucy5BaXJwbGF5
LCBuZXcgTWFjT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSknKTsKIAog
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvaW52YWxpZC1wbGFjYXJkL2ludmFsaWQtcGxhY2FyZC1jb25zdHJhaW5lZC1tZXRyaWNzLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvaW52YWxpZC1wbGFjYXJkL2ludmFsaWQtcGxhY2FyZC1jb25zdHJhaW5lZC1tZXRy
aWNzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2ludmFsaWQtcGxhY2FyZC9pbnZhbGlkLXBsYWNhcmQtY29u
c3RyYWluZWQtbWV0cmljcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEEKIFNldHRpbmcgd2lk
dGggYW5kIGhlaWdodCB0byA1MAogUEFTUyBwbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuLmxl
bmd0aCBpcyAxCiBQQVNTIHBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW4ubGVuZ3RoIGlzIDEK
LVBBU1MgcGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblswXSBpbnN0YW5jZW9mIEJ1dHRvbiBp
cyB0cnVlCitQQVNTIHBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0gaXMgYW4gaW5zdGFu
Y2Ugb2YgQnV0dG9uCiAKIFNldHRpbmcgd2lkdGggYW5kIGhlaWdodCB0byA0OQogUEFTUyBwbGFj
YXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuLmxlbmd0aCBpcyAwCkluZGV4OiBMYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvaW52YWxpZC1wbGFjYXJkL2ludmFsaWQtcGxhY2Fy
ZC1jb25zdHJhaW5lZC1tZXRyaWNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2ludmFsaWQtcGxhY2FyZC9pbnZhbGlkLXBsYWNhcmQt
Y29uc3RyYWluZWQtbWV0cmljcy5odG1sCShyZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvaW52YWxpZC1wbGFjYXJkL2ludmFsaWQtcGxh
Y2FyZC1jb25zdHJhaW5lZC1tZXRyaWNzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUsMTQgKzUs
MTQgQEAKIAogZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhlIGludmFsaWQgcGxhY2FyZCB3aXRoIGNv
bnN0cmFpbmVkIG1ldHJpY3MuIik7CiAKLWNvbnN0IHBsYWNhcmQgPSBuZXcgSW52YWxpZFBsYWNh
cmQoeyBsYXlvdXRUcmFpdHM6IExheW91dFRyYWl0cy5tYWNPUyB9KTsKK2NvbnN0IHBsYWNhcmQg
PSBuZXcgSW52YWxpZFBsYWNhcmQoeyBsYXlvdXRUcmFpdHM6IG5ldyBNYWNPU0xheW91dFRyYWl0
cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpIH0pOwogCiBkZWJ1ZygiU2V0dGluZyB3aWR0aCBh
bmQgaGVpZ2h0IHRvIDUwIik7CiBwbGFjYXJkLndpZHRoID0gNTA7CiBwbGFjYXJkLmhlaWdodCA9
IDUwOwogc2hvdWxkQmUoInBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW4ubGVuZ3RoIiwgIjEi
KTsKIHNob3VsZEJlKCJwbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuLmxlbmd0aCIsICIxIik7
Ci1zaG91bGRCZVRydWUoInBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0gaW5zdGFuY2Vv
ZiBCdXR0b24iKTsKK3Nob3VsZEJlVHlwZSgicGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblsw
XSIsICJCdXR0b24iKTsKIAogZGVidWcoIiIpOwogZGVidWcoIlNldHRpbmcgd2lkdGggYW5kIGhl
aWdodCB0byA0OSIpOwpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL2ludmFsaWQtcGxhY2FyZC9pbnZhbGlkLXBsYWNhcmQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvaW52YWxpZC1wbGFjYXJkL2lu
dmFsaWQtcGxhY2FyZC5odG1sCShyZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvaW52YWxpZC1wbGFjYXJkL2ludmFsaWQtcGxhY2FyZC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC01LDcgKzUsNyBAQAogCiBkZXNjcmlwdGlvbigiVGVzdGlu
ZyB0aGUgPGNvZGU+SW52YWxpZFBsYWNhcmQ8L2NvZGU+IGNsYXNzLiIpOwogCi1jb25zdCBwbGFj
YXJkID0gbmV3IEludmFsaWRQbGFjYXJkKHsgbGF5b3V0VHJhaXRzOiBMYXlvdXRUcmFpdHMubWFj
T1MgfSk7Citjb25zdCBwbGFjYXJkID0gbmV3IEludmFsaWRQbGFjYXJkKHsgbGF5b3V0VHJhaXRz
OiBuZXcgTWFjT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSB9KTsKIHNo
b3VsZEJlKCJwbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmljb25OYW1lIiwgIkljb25z
LkludmFsaWRQbGFjYXJkIik7CiBzaG91bGRCZSgicGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJl
bi5sZW5ndGgiLCAiMSIpOwogZGVidWcoIiIpOwpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2lvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMvaW9zLWlubGluZS1t
ZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9pb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzL2lv
cy1pbmxpbmUtbWVkaWEtY29udHJvbHMtY29uc3RydWN0b3IuaHRtbAkocmV2aXNpb24gMjc5MzA1
KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2lvcy1pbmxpbmUt
bWVkaWEtY29udHJvbHMvaW9zLWlubGluZS1tZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xMSwxNiArMTEsMTYgQEAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJtZWRpYUNvbnRyb2xzLmVsZQogc2hvdWxkQmVUcnVlKCJtZWRpYUNvbnRyb2xzLmVsZW1lbnQu
Y2xhc3NMaXN0LmNvbnRhaW5zKCdtZWRpYS1jb250cm9scycpIik7CiBzaG91bGRCZVRydWUoIm1l
ZGlhQ29udHJvbHMuZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2lubGluZScpIik7CiBzaG91
bGRCZVRydWUoIm1lZGlhQ29udHJvbHMuZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2lvcycp
Iik7Ci1zaG91bGRCZSgibWVkaWFDb250cm9scy5sYXlvdXRUcmFpdHMiLCAiTGF5b3V0VHJhaXRz
LmlPUyIpOworc2hvdWxkQmVUeXBlKCJtZWRpYUNvbnRyb2xzLmxheW91dFRyYWl0cyIsICJJT1NM
YXlvdXRUcmFpdHMiKTsKIAogbWVkaWFDb250cm9scy5ib3R0b21Db250cm9sc0Jhci5lbGVtZW50
LmlkID0gImdyb3VwcGluZy1sYWJlbCI7CiBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG1lZGlh
Q29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIuZWxlbWVudCk7CiAKIG1lZGlhQ29udHJvbHMuc2hv
dWxkVXNlQXVkaW9MYXlvdXQgPSBmYWxzZTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdncm91cHBpbmctbGFiZWwn
KS5kZXNjcmlwdGlvbiIsIkFYTGFiZWw6IFZpZGVvIENvbnRyb2xzIik7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgn
Z3JvdXBwaW5nLWxhYmVsJykuZGVzY3JpcHRpb24iLCAiQVhMYWJlbDogVmlkZW8gQ29udHJvbHMi
KTsKIAogbWVkaWFDb250cm9scy5zaG91bGRVc2VBdWRpb0xheW91dCA9IHRydWU7Ci1zaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50
QnlJZCgnZ3JvdXBwaW5nLWxhYmVsJykuZGVzY3JpcHRpb24iLCJBWExhYmVsOiBBdWRpbyBDb250
cm9scyIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2dyb3VwcGluZy1sYWJlbCcpLmRlc2NyaXB0aW9uIiwgIkFY
TGFiZWw6IEF1ZGlvIENvbnRyb2xzIik7CiAKIGRlYnVnKCIiKTsKIApJbmRleDogTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2xheW91dC1pdGVtL2xheW91dC1pdGVtLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvbGF5b3V0LWl0ZW0vbGF5b3V0LWl0ZW0tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAy
NzkzMDUpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbGF5b3V0
LWl0ZW0vbGF5b3V0LWl0ZW0tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00LDEzICs0
LDEzIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEEKIAogCiBDcmVh
dGluZyBhIExheW91dEl0ZW0gYW5kIHNldHRpbmcgYSBsYXlvdXQgZGVsZWdhdGUgYWZ0ZXIgY29u
c3RydWN0aW9uLgotUEFTUyBpdGVtV2l0aE5vUGFyYW1ldGVyLmxheW91dFRyYWl0cyA9PT0gTGF5
b3V0VHJhaXRzLlVua25vd24gaXMgdHJ1ZQotUEFTUyAhIShpdGVtV2l0aE5vUGFyYW1ldGVyLmxh
eW91dFRyYWl0cyB8IExheW91dFRyYWl0cy5tYWNPUykgaXMgdHJ1ZQotUEFTUyAhIShpdGVtV2l0
aE5vUGFyYW1ldGVyLmxheW91dFRyYWl0cyB8IExheW91dFRyYWl0cy5GdWxsc2NyZWVuKSBpcyB0
cnVlCitQQVNTIGl0ZW1XaXRoTm9QYXJhbWV0ZXIubGF5b3V0VHJhaXRzIHRocmV3IGV4Y2VwdGlv
biBObyBsYXlvdXQgdHJhaXRzIHNwZWNpZmllZCB2aWEgbGF5b3V0RGVsZWdhdGUgb3Igb3ZlcnJp
ZGVuIGxheW91VHJhaXRzKCkgZ2V0dGVyLgorUEFTUyBpdGVtV2l0aE5vUGFyYW1ldGVyLmxheW91
dFRyYWl0cyBpcyBhbiBpbnN0YW5jZSBvZiBNYWNPU0xheW91dFRyYWl0cworUEFTUyBpdGVtV2l0
aE5vUGFyYW1ldGVyLmxheW91dFRyYWl0cy5pc0Z1bGxzY3JlZW4gaXMgdHJ1ZQogCiBDcmVhdGlu
ZyBhIExheW91dEl0ZW0gd2l0aCBhIGxheW91dCBkZWxlZ2F0ZSBzZXQgYXQgY29uc3RydWN0aW9u
LgotUEFTUyAhIShpdGVtV2l0aExheW91dERlbGVnYXRlLmxheW91dFRyYWl0cyB8IExheW91dFRy
YWl0cy5tYWNPUykgaXMgdHJ1ZQotUEFTUyAhIShpdGVtV2l0aExheW91dERlbGVnYXRlLmxheW91
dFRyYWl0cyB8IExheW91dFRyYWl0cy5GdWxsc2NyZWVuKSBpcyB0cnVlCitQQVNTIGl0ZW1XaXRo
Tm9QYXJhbWV0ZXIubGF5b3V0VHJhaXRzIGlzIGFuIGluc3RhbmNlIG9mIE1hY09TTGF5b3V0VHJh
aXRzCitQQVNTIGl0ZW1XaXRoTm9QYXJhbWV0ZXIubGF5b3V0VHJhaXRzLmlzRnVsbHNjcmVlbiBp
cyB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
SW5kZXg6IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9sYXlvdXQtaXRl
bS9sYXlvdXQtaXRlbS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy9sYXlvdXQtaXRlbS9sYXlvdXQtaXRlbS5odG1sCShyZXZpc2lvbiAy
NzkzMDUpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbGF5b3V0
LWl0ZW0vbGF5b3V0LWl0ZW0uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDUgQEAKIDxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3NjaGVkdWxlci5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9sYXlvdXQtbm9kZS5qcyIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9sYXlvdXQt
aXRlbS5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvbWVkaWEtY29udHJvbHMtbG9hZGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPjwvc2NyaXB0PgogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogCiBkZXNjcmlw
dGlvbigiVGVzdGluZyB0aGUgPGNvZGU+TGF5b3V0SXRlbTwvY29kZT4gY2xhc3MuIik7CkBAIC0x
MCwyMyArOCwyMyBAQCBjb25zdCBsYXlvdXREZWxlZ2F0ZSA9IG5ldyBjbGFzcwogewogICAgIGdl
dCBsYXlvdXRUcmFpdHMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIExheW91dFRyYWl0cy5tYWNP
UyB8IExheW91dFRyYWl0cy5GdWxsc2NyZWVuOworICAgICAgICByZXR1cm4gbmV3IE1hY09TTGF5
b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLkZ1bGxzY3JlZW4pOwogICAgIH0KIH07CiAKIGRl
YnVnKCJDcmVhdGluZyBhIExheW91dEl0ZW0gYW5kIHNldHRpbmcgYSBsYXlvdXQgZGVsZWdhdGUg
YWZ0ZXIgY29uc3RydWN0aW9uLiIpOwogY29uc3QgaXRlbVdpdGhOb1BhcmFtZXRlciA9IG5ldyBM
YXlvdXRJdGVtOwotc2hvdWxkQmVUcnVlKCJpdGVtV2l0aE5vUGFyYW1ldGVyLmxheW91dFRyYWl0
cyA9PT0gTGF5b3V0VHJhaXRzLlVua25vd24iKTsKK3Nob3VsZFRocm93KCJpdGVtV2l0aE5vUGFy
YW1ldGVyLmxheW91dFRyYWl0cyIpOwogCiBpdGVtV2l0aE5vUGFyYW1ldGVyLmxheW91dERlbGVn
YXRlID0gbGF5b3V0RGVsZWdhdGU7Ci1zaG91bGRCZVRydWUoIiEhKGl0ZW1XaXRoTm9QYXJhbWV0
ZXIubGF5b3V0VHJhaXRzIHwgTGF5b3V0VHJhaXRzLm1hY09TKSIpOwotc2hvdWxkQmVUcnVlKCIh
IShpdGVtV2l0aE5vUGFyYW1ldGVyLmxheW91dFRyYWl0cyB8IExheW91dFRyYWl0cy5GdWxsc2Ny
ZWVuKSIpOworc2hvdWxkQmVUeXBlKCJpdGVtV2l0aE5vUGFyYW1ldGVyLmxheW91dFRyYWl0cyIs
ICJNYWNPU0xheW91dFRyYWl0cyIpOworc2hvdWxkQmVUcnVlKCJpdGVtV2l0aE5vUGFyYW1ldGVy
LmxheW91dFRyYWl0cy5pc0Z1bGxzY3JlZW4iKTsKIAogZGVidWcoIiIpOwogZGVidWcoIkNyZWF0
aW5nIGEgTGF5b3V0SXRlbSB3aXRoIGEgbGF5b3V0IGRlbGVnYXRlIHNldCBhdCBjb25zdHJ1Y3Rp
b24uIik7CiBjb25zdCBpdGVtV2l0aExheW91dERlbGVnYXRlID0gbmV3IExheW91dEl0ZW0oeyBs
YXlvdXREZWxlZ2F0ZSB9KTsKLXNob3VsZEJlVHJ1ZSgiISEoaXRlbVdpdGhMYXlvdXREZWxlZ2F0
ZS5sYXlvdXRUcmFpdHMgfCBMYXlvdXRUcmFpdHMubWFjT1MpIik7Ci1zaG91bGRCZVRydWUoIiEh
KGl0ZW1XaXRoTGF5b3V0RGVsZWdhdGUubGF5b3V0VHJhaXRzIHwgTGF5b3V0VHJhaXRzLkZ1bGxz
Y3JlZW4pIik7CitzaG91bGRCZVR5cGUoIml0ZW1XaXRoTm9QYXJhbWV0ZXIubGF5b3V0VHJhaXRz
IiwgIk1hY09TTGF5b3V0VHJhaXRzIik7CitzaG91bGRCZVRydWUoIml0ZW1XaXRoTm9QYXJhbWV0
ZXIubGF5b3V0VHJhaXRzLmlzRnVsbHNjcmVlbiIpOwogCiA8L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KSW5kZXg6IExh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1l
ZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtY29uc3RydWN0b3It
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3Jl
ZW4tbWVkaWEtY29udHJvbHMtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNzkz
MDUpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVs
bHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWNv
bnN0cnVjdG9yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNSwxMyArNSwxNCBAQCBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIFBBU1MgbWVkaWFDb250
cm9scy5lbGVtZW50LmxvY2FsTmFtZSBpcyAiZGl2IgogUEFTUyBtZWRpYUNvbnRyb2xzLmVsZW1l
bnQuY2xhc3NOYW1lIGlzICJtZWRpYS1jb250cm9scyBtYWMgZnVsbHNjcmVlbiIKLVBBU1MgbWVk
aWFDb250cm9scy5sYXlvdXRUcmFpdHMgaXMgTGF5b3V0VHJhaXRzLm1hY09TIHwgTGF5b3V0VHJh
aXRzLkZ1bGxzY3JlZW4KK1BBU1MgbWVkaWFDb250cm9scy5sYXlvdXRUcmFpdHMgaXMgYW4gaW5z
dGFuY2Ugb2YgTWFjT1NMYXlvdXRUcmFpdHMKK1BBU1MgbWVkaWFDb250cm9scy5sYXlvdXRUcmFp
dHMuaXNGdWxsc2NyZWVuIGlzIHRydWUKIAogQ29udHJvbHMgYmFyCiBQQVNTIG1lZGlhQ29udHJv
bHMuYm90dG9tQ29udHJvbHNCYXIuY2hpbGRyZW4ubGVuZ3RoIGlzIDQKLVBBU1MgbWVkaWFDb250
cm9scy5ib3R0b21Db250cm9sc0Jhci5jaGlsZHJlblsxXSBpbnN0YW5jZW9mIEJ1dHRvbnNDb250
YWluZXIgaXMgdHJ1ZQotUEFTUyBtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxk
cmVuWzJdIGluc3RhbmNlb2YgQnV0dG9uc0NvbnRhaW5lciBpcyB0cnVlCi1QQVNTIG1lZGlhQ29u
dHJvbHMuYm90dG9tQ29udHJvbHNCYXIuY2hpbGRyZW5bM10gaW5zdGFuY2VvZiBCdXR0b25zQ29u
dGFpbmVyIGlzIHRydWUKK1BBU1MgbWVkaWFDb250cm9scy5ib3R0b21Db250cm9sc0Jhci5jaGls
ZHJlblsxXSBpcyBhbiBpbnN0YW5jZSBvZiBCdXR0b25zQ29udGFpbmVyCitQQVNTIG1lZGlhQ29u
dHJvbHMuYm90dG9tQ29udHJvbHNCYXIuY2hpbGRyZW5bMl0gaXMgYW4gaW5zdGFuY2Ugb2YgQnV0
dG9uc0NvbnRhaW5lcgorUEFTUyBtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxk
cmVuWzNdIGlzIGFuIGluc3RhbmNlIG9mIEJ1dHRvbnNDb250YWluZXIKIAogTGVmdCBjb250YWlu
ZXIKIFBBU1MgbWVkaWFDb250cm9scy5ib3R0b21Db250cm9sc0Jhci5jaGlsZHJlblsxXS5jaGls
ZHJlbiBpcyBbbWVkaWFDb250cm9scy52b2x1bWVTbGlkZXIsIG1lZGlhQ29udHJvbHMubXV0ZUJ1
dHRvbl0KSW5kZXg6IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNv
cy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJv
bHMtY29uc3RydWN0b3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1m
dWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLmh0bWwJKHJldmlzaW9uIDI3OTMw
NSkKKysrIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxs
c2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtY29u
c3RydWN0b3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSwxNCArOSwxNSBAQCBjb25zdCBtZWRp
YUNvbnRyb2xzID0gbmV3IE1hY09TRnVsbHNjcmVlCiAKIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
bWVkaWFDb250cm9scy5lbGVtZW50LmxvY2FsTmFtZSIsICJkaXYiKTsKIHNob3VsZEJlRXF1YWxU
b1N0cmluZygibWVkaWFDb250cm9scy5lbGVtZW50LmNsYXNzTmFtZSIsICJtZWRpYS1jb250cm9s
cyBtYWMgZnVsbHNjcmVlbiIpOwotc2hvdWxkQmUoIm1lZGlhQ29udHJvbHMubGF5b3V0VHJhaXRz
IiwgIkxheW91dFRyYWl0cy5tYWNPUyB8IExheW91dFRyYWl0cy5GdWxsc2NyZWVuIik7CitzaG91
bGRCZVR5cGUoIm1lZGlhQ29udHJvbHMubGF5b3V0VHJhaXRzIiwgIk1hY09TTGF5b3V0VHJhaXRz
Iik7CitzaG91bGRCZVRydWUoIm1lZGlhQ29udHJvbHMubGF5b3V0VHJhaXRzLmlzRnVsbHNjcmVl
biIpCiAKIGRlYnVnKCIiKTsKIGRlYnVnKCJDb250cm9scyBiYXIiKTsKIHNob3VsZEJlKCJtZWRp
YUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxkcmVuLmxlbmd0aCIsICI0Iik7Ci1zaG91
bGRCZVRydWUoIm1lZGlhQ29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIuY2hpbGRyZW5bMV0gaW5z
dGFuY2VvZiBCdXR0b25zQ29udGFpbmVyIik7Ci1zaG91bGRCZVRydWUoIm1lZGlhQ29udHJvbHMu
Ym90dG9tQ29udHJvbHNCYXIuY2hpbGRyZW5bMl0gaW5zdGFuY2VvZiBCdXR0b25zQ29udGFpbmVy
Iik7Ci1zaG91bGRCZVRydWUoIm1lZGlhQ29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIuY2hpbGRy
ZW5bM10gaW5zdGFuY2VvZiBCdXR0b25zQ29udGFpbmVyIik7CitzaG91bGRCZVR5cGUoIm1lZGlh
Q29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIuY2hpbGRyZW5bMV0iLCAiQnV0dG9uc0NvbnRhaW5l
ciIpOworc2hvdWxkQmVUeXBlKCJtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxk
cmVuWzJdIiwgIkJ1dHRvbnNDb250YWluZXIiKTsKK3Nob3VsZEJlVHlwZSgibWVkaWFDb250cm9s
cy5ib3R0b21Db250cm9sc0Jhci5jaGlsZHJlblszXSIsICJCdXR0b25zQ29udGFpbmVyIik7CiAK
IGRlYnVnKCIiKTsKIGRlYnVnKCJMZWZ0IGNvbnRhaW5lciIpOwpJbmRleDogTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9scy9t
YWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1p
bmxpbmUtbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVj
dG9yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9scy9tYWNvcy1p
bmxpbmUtbWVkaWEtY29udHJvbHMtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC01LDEzICs1LDE0IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEEKIAogUEFTUyBtZWRpYUNvbnRyb2xzLmVsZW1lbnQubG9jYWxOYW1lIGlzICJkaXYiCiBG
QUlMIG1lZGlhQ29udHJvbHMuZWxlbWVudC5jbGFzc05hbWUgc2hvdWxkIGJlIG1lZGlhLWNvbnRy
b2xzIG1hYyBpbmxpbmUuIFdhcyBtZWRpYS1jb250cm9scyBpbmxpbmUgbWFjLgotUEFTUyBtZWRp
YUNvbnRyb2xzLmxheW91dFRyYWl0cyBpcyBMYXlvdXRUcmFpdHMubWFjT1MKK1BBU1MgbWVkaWFD
b250cm9scy5sYXlvdXRUcmFpdHMgaXMgYW4gaW5zdGFuY2Ugb2YgTWFjT1NMYXlvdXRUcmFpdHMK
K1BBU1MgbWVkaWFDb250cm9scy5sYXlvdXRUcmFpdHMuaXNGdWxsc2NyZWVuIGlzIGZhbHNlCiAK
IENvbnRyb2xzIGJhcgogRkFJTCBtZWRpYUNvbnRyb2xzLmNvbnRyb2xzQmFyLmNoaWxkcmVuLmxl
bmd0aCBzaG91bGQgYmUgNC4gVGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogdW5kZWZpbmVkIGlz
IG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lZGlhQ29udHJvbHMuY29udHJvbHNCYXIuY2hp
bGRyZW4nKQotRkFJTCBtZWRpYUNvbnRyb2xzLmNvbnRyb2xzQmFyLmNoaWxkcmVuWzFdIGluc3Rh
bmNlb2YgQnV0dG9uc0NvbnRhaW5lciBzaG91bGQgYmUgdHJ1ZS4gVGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lZGlhQ29u
dHJvbHMuY29udHJvbHNCYXIuY2hpbGRyZW4nKQotRkFJTCBtZWRpYUNvbnRyb2xzLmNvbnRyb2xz
QmFyLmNoaWxkcmVuWzJdIGluc3RhbmNlb2YgQnV0dG9uc0NvbnRhaW5lciBzaG91bGQgYmUgdHJ1
ZS4gVGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3Qg
KGV2YWx1YXRpbmcgJ21lZGlhQ29udHJvbHMuY29udHJvbHNCYXIuY2hpbGRyZW4nKQotRkFJTCBt
ZWRpYUNvbnRyb2xzLmNvbnRyb2xzQmFyLmNoaWxkcmVuWzNdIGluc3RhbmNlb2YgTGF5b3V0Tm9k
ZSBzaG91bGQgYmUgdHJ1ZS4gVGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogdW5kZWZpbmVkIGlz
IG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ21lZGlhQ29udHJvbHMuY29udHJvbHNCYXIuY2hp
bGRyZW4nKQorRkFJTCBtZWRpYUNvbnRyb2xzLmNvbnRyb2xzQmFyLmNoaWxkcmVuWzFdIGlzIG5v
dCBhbiBpbnN0YW5jZSBvZiBCdXR0b25zQ29udGFpbmVyCitGQUlMIG1lZGlhQ29udHJvbHMuY29u
dHJvbHNCYXIuY2hpbGRyZW5bMl0gaXMgbm90IGFuIGluc3RhbmNlIG9mIEJ1dHRvbnNDb250YWlu
ZXIKK0ZBSUwgbWVkaWFDb250cm9scy5jb250cm9sc0Jhci5jaGlsZHJlblszXSBpcyBub3QgYW4g
aW5zdGFuY2Ugb2YgTGF5b3V0Tm9kZQogCiBMZWZ0IGNvbnRhaW5lcgogRkFJTCBtZWRpYUNvbnRy
b2xzLmNvbnRyb2xzQmFyLmNoaWxkcmVuWzFdLmJ1dHRvbnMgc2hvdWxkIGJlIFtvYmplY3QgT2Jq
ZWN0XSxbb2JqZWN0IE9iamVjdF0uIFRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVmaW5l
ZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZWRpYUNvbnRyb2xzLmNvbnRyb2xzQmFy
LmNoaWxkcmVuJykKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy9tYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xz
LWNvbnN0cnVjdG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUt
bWVkaWEtY29udHJvbHMtY29uc3RydWN0b3IuaHRtbAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1j
b250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMtY29uc3RydWN0b3IuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtOSwxNCArOSwxNSBAQCBjb25zdCBtZWRpYUNvbnRyb2xzID0gbmV3IE1h
Y09TSW5saW5lTWVkCiAKIHNob3VsZEJlRXF1YWxUb1N0cmluZygibWVkaWFDb250cm9scy5lbGVt
ZW50LmxvY2FsTmFtZSIsICJkaXYiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygibWVkaWFDb250
cm9scy5lbGVtZW50LmNsYXNzTmFtZSIsICJtZWRpYS1jb250cm9scyBtYWMgaW5saW5lIik7Ci1z
aG91bGRCZSgibWVkaWFDb250cm9scy5sYXlvdXRUcmFpdHMiLCAiTGF5b3V0VHJhaXRzLm1hY09T
Iik7CitzaG91bGRCZVR5cGUoIm1lZGlhQ29udHJvbHMubGF5b3V0VHJhaXRzIiwgIk1hY09TTGF5
b3V0VHJhaXRzIik7CitzaG91bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xzLmxheW91dFRyYWl0cy5p
c0Z1bGxzY3JlZW4iKTsKIAogZGVidWcoIiIpOwogZGVidWcoIkNvbnRyb2xzIGJhciIpOwogc2hv
dWxkQmUoIm1lZGlhQ29udHJvbHMuY29udHJvbHNCYXIuY2hpbGRyZW4ubGVuZ3RoIiwgIjQiKTsK
LXNob3VsZEJlVHJ1ZSgibWVkaWFDb250cm9scy5jb250cm9sc0Jhci5jaGlsZHJlblsxXSBpbnN0
YW5jZW9mIEJ1dHRvbnNDb250YWluZXIiKTsKLXNob3VsZEJlVHJ1ZSgibWVkaWFDb250cm9scy5j
b250cm9sc0Jhci5jaGlsZHJlblsyXSBpbnN0YW5jZW9mIEJ1dHRvbnNDb250YWluZXIiKTsKLXNo
b3VsZEJlVHJ1ZSgibWVkaWFDb250cm9scy5jb250cm9sc0Jhci5jaGlsZHJlblszXSBpbnN0YW5j
ZW9mIExheW91dE5vZGUiKTsKK3Nob3VsZEJlVHlwZSgibWVkaWFDb250cm9scy5jb250cm9sc0Jh
ci5jaGlsZHJlblsxXSIsICJCdXR0b25zQ29udGFpbmVyIik7CitzaG91bGRCZVR5cGUoIm1lZGlh
Q29udHJvbHMuY29udHJvbHNCYXIuY2hpbGRyZW5bMl0iLCAiQnV0dG9uc0NvbnRhaW5lciIpOwor
c2hvdWxkQmVUeXBlKCJtZWRpYUNvbnRyb2xzLmNvbnRyb2xzQmFyLmNoaWxkcmVuWzNdIiwgIkxh
eW91dE5vZGUiKTsKIAogZGVidWcoIiIpOwogZGVidWcoIkxlZnQgY29udGFpbmVyIik7CkBAIC00
NSwxMCArNDYsMTAgQEAgbWVkaWFDb250cm9scy5ib3R0b21Db250cm9sc0Jhci5lbGVtZW50Lgog
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFy
LmVsZW1lbnQpOwogCiBtZWRpYUNvbnRyb2xzLnNob3VsZFVzZUF1ZGlvTGF5b3V0ID0gZmFsc2U7
Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2li
bGVFbGVtZW50QnlJZCgnZ3JvdXBwaW5nLWxhYmVsJykuZGVzY3JpcHRpb24iLCJBWERlc2NyaXB0
aW9uOiBWaWRlbyBDb250cm9scyIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2dyb3VwcGluZy1sYWJlbCcpLmRl
c2NyaXB0aW9uIiwgIkFYRGVzY3JpcHRpb246IFZpZGVvIENvbnRyb2xzIik7CiAKIG1lZGlhQ29u
dHJvbHMuc2hvdWxkVXNlQXVkaW9MYXlvdXQgPSB0cnVlOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2dyb3VwcGlu
Zy1sYWJlbCcpLmRlc2NyaXB0aW9uIiwiQVhEZXNjcmlwdGlvbjogQXVkaW8gQ29udHJvbHMiKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJs
ZUVsZW1lbnRCeUlkKCdncm91cHBpbmctbGFiZWwnKS5kZXNjcmlwdGlvbiIsICJBWERlc2NyaXB0
aW9uOiBBdWRpbyBDb250cm9scyIpOwogCiBkZWJ1ZygiIik7CiAKSW5kZXg6IExheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNvbnRy
b2xsZXItZnVsbHNjcmVlbi1jaGFuZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9s
bGVyLWZ1bGxzY3JlZW4tY2hhbmdlLmh0bWwJKHJldmlzaW9uIDI3OTMwNSkKKysrIExheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9sbGVyL21lZGlhLWNv
bnRyb2xsZXItZnVsbHNjcmVlbi1jaGFuZ2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDUsMTQg
KzQ1LDE2IEBAIGZ1bmN0aW9uIHRvZ2dsZUZ1bGxzY3JlZW4oKQogewogICAgIGlmIChtZWRpYS53
ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbikgewogICAgICAgICBkZWJ1ZygiTWVkaWEgZW50ZXJl
ZCBmdWxsc2NyZWVuIik7Ci0gICAgICAgIHNob3VsZEJlKCJtZWRpYUNvbnRyb2xsZXIubGF5b3V0
VHJhaXRzIiwgIkxheW91dFRyYWl0cy5tYWNPUyB8IExheW91dFRyYWl0cy5GdWxsc2NyZWVuIik7
Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgibWVkaWFDb250cm9sbGVyLmNvbnRyb2xzIGluc3RhbmNl
b2YgTWFjT1NGdWxsc2NyZWVuTWVkaWFDb250cm9scyIpOworICAgICAgICBzaG91bGRCZVR5cGUo
Im1lZGlhQ29udHJvbGxlci5sYXlvdXRUcmFpdHMiLCAiTWFjT1NMYXlvdXRUcmFpdHMiKTsKKyAg
ICAgICAgc2hvdWxkQmVUcnVlKCJtZWRpYUNvbnRyb2xsZXIubGF5b3V0VHJhaXRzLmlzRnVsbHNj
cmVlbiIpOworICAgICAgICBzaG91bGRCZVR5cGUoIm1lZGlhQ29udHJvbGxlci5jb250cm9scyIs
ICJNYWNPU0Z1bGxzY3JlZW5NZWRpYUNvbnRyb2xzIik7CiAgICAgICAgIGRlYnVnKCIiKTsKICAg
ICAgICAgbWVkaWEud2Via2l0RXhpdEZ1bGxzY3JlZW4oKQogICAgIH0gZWxzZSB7CiAgICAgICAg
IGRlYnVnKCJNZWRpYSBleGl0ZWQgZnVsbHNjcmVlbiIpOwotICAgICAgICBzaG91bGRCZSgibWVk
aWFDb250cm9sbGVyLmxheW91dFRyYWl0cyIsICJMYXlvdXRUcmFpdHMubWFjT1MgfCBMYXlvdXRU
cmFpdHMuSW5saW5lIik7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgibWVkaWFDb250cm9sbGVyLmNv
bnRyb2xzIGluc3RhbmNlb2YgTWFjT1NJbmxpbmVNZWRpYUNvbnRyb2xzIik7CisgICAgICAgIHNo
b3VsZEJlVHlwZSgibWVkaWFDb250cm9sbGVyLmxheW91dFRyYWl0cyIsICJNYWNPU0xheW91dFRy
YWl0cyIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xsZXIubGF5b3V0VHJh
aXRzLmlzRnVsbHNjcmVlbiIpOworICAgICAgICBzaG91bGRCZVR5cGUoIm1lZGlhQ29udHJvbGxl
ci5jb250cm9scyIsICJNYWNPU0lubGluZU1lZGlhQ29udHJvbHMiKTsKIAogICAgICAgICBkZWJ1
ZygiIik7CiAgICAgICAgIHNoYWRvd1Jvb3QuaG9zdC5yZW1vdmUoKTsKSW5kZXg6IExheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9scy9tZWRpYS1jb250
cm9scy1hcHBlYXItd2hlbi1mb2N1cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9scy1h
cHBlYXItd2hlbi1mb2N1cy5odG1sCShyZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbHMt
YXBwZWFyLXdoZW4tZm9jdXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNSw3ICs1LDcgQEAKIAog
ZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhlIHZpc2liaWxpdHkgb2YgPGNvZGU+TWVkaWFDb250cm9s
czwvY29kZT4gd2hlbiBvbmUgb2YgaXRzIGJ1dHRvbnMgZmlyZXMgYSBmb2N1cyBldmVudC4iKTsK
IAotY29uc3QgbWVkaWFDb250cm9scyA9IG5ldyBNZWRpYUNvbnRyb2xzKHsgbGF5b3V0VHJhaXRz
OiBMYXlvdXRUcmFpdHMubWFjT1MgfSk7Citjb25zdCBtZWRpYUNvbnRyb2xzID0gbmV3IE1lZGlh
Q29udHJvbHMoeyBsYXlvdXRUcmFpdHM6IG5ldyBNYWNPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFp
dHMuTW9kZS5JbmxpbmUpIH0pOwogCiBzaG91bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xzLmZhZGVk
Iik7CiBtZWRpYUNvbnRyb2xzLmZhZGVkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9scy1jb25z
dHJ1Y3Rvci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xzLWNvbnN0cnVj
dG9yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xzLWNvbnN0
cnVjdG9yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtOCwxOSArOCwyMCBAQCBQQVNT
IG1lZGlhQ29udHJvbHMuZWxlbWVudC5jbGFzc05hbWUgaXMgCiAKIFBBU1MgbWVkaWFDb250cm9s
cy53aWR0aCBpcyAzMDAKIFBBU1MgbWVkaWFDb250cm9scy5oZWlnaHQgaXMgMTUwCi1QQVNTIG1l
ZGlhQ29udHJvbHMubGF5b3V0VHJhaXRzIGlzIExheW91dFRyYWl0cy5tYWNPUworUEFTUyBtZWRp
YUNvbnRyb2xzLmxheW91dFRyYWl0cyBpcyBhbiBpbnN0YW5jZSBvZiBNYWNPU0xheW91dFRyYWl0
cworUEFTUyBtZWRpYUNvbnRyb2xzLmxheW91dFRyYWl0cy5pc0Z1bGxzY3JlZW4gaXMgZmFsc2UK
IAotUEFTUyBtZWRpYUNvbnRyb2xzLnBsYXlQYXVzZUJ1dHRvbiBpbnN0YW5jZW9mIFBsYXlQYXVz
ZUJ1dHRvbiBpcyB0cnVlCi1QQVNTIG1lZGlhQ29udHJvbHMuYWlycGxheUJ1dHRvbiBpbnN0YW5j
ZW9mIEFpcnBsYXlCdXR0b24gaXMgdHJ1ZQotUEFTUyBtZWRpYUNvbnRyb2xzLnBpcEJ1dHRvbiBp
bnN0YW5jZW9mIFBpUEJ1dHRvbiBpcyB0cnVlCi1QQVNTIG1lZGlhQ29udHJvbHMuZnVsbHNjcmVl
bkJ1dHRvbiBpbnN0YW5jZW9mIEZ1bGxzY3JlZW5CdXR0b24gaXMgdHJ1ZQotUEFTUyBtZWRpYUNv
bnRyb2xzLnN0YXR1c0xhYmVsIGluc3RhbmNlb2YgU3RhdHVzTGFiZWwgaXMgdHJ1ZQotUEFTUyBt
ZWRpYUNvbnRyb2xzLnRpbWVDb250cm9sIGluc3RhbmNlb2YgVGltZUNvbnRyb2wgaXMgdHJ1ZQot
UEFTUyBtZWRpYUNvbnRyb2xzLmFpcnBsYXlQbGFjYXJkIGluc3RhbmNlb2YgQWlycGxheVBsYWNh
cmQgaXMgdHJ1ZQotUEFTUyBtZWRpYUNvbnRyb2xzLmludmFsaWRQbGFjYXJkIGluc3RhbmNlb2Yg
SW52YWxpZFBsYWNhcmQgaXMgdHJ1ZQotUEFTUyBtZWRpYUNvbnRyb2xzLnBpcFBsYWNhcmQgaW5z
dGFuY2VvZiBQaVBQbGFjYXJkIGlzIHRydWUKK1BBU1MgbWVkaWFDb250cm9scy5wbGF5UGF1c2VC
dXR0b24gaXMgYW4gaW5zdGFuY2Ugb2YgUGxheVBhdXNlQnV0dG9uCitQQVNTIG1lZGlhQ29udHJv
bHMuYWlycGxheUJ1dHRvbiBpcyBhbiBpbnN0YW5jZSBvZiBBaXJwbGF5QnV0dG9uCitQQVNTIG1l
ZGlhQ29udHJvbHMucGlwQnV0dG9uIGlzIGFuIGluc3RhbmNlIG9mIFBpUEJ1dHRvbgorUEFTUyBt
ZWRpYUNvbnRyb2xzLmZ1bGxzY3JlZW5CdXR0b24gaXMgYW4gaW5zdGFuY2Ugb2YgRnVsbHNjcmVl
bkJ1dHRvbgorUEFTUyBtZWRpYUNvbnRyb2xzLnN0YXR1c0xhYmVsIGlzIGFuIGluc3RhbmNlIG9m
IFN0YXR1c0xhYmVsCitQQVNTIG1lZGlhQ29udHJvbHMudGltZUNvbnRyb2wgaXMgYW4gaW5zdGFu
Y2Ugb2YgVGltZUNvbnRyb2wKK1BBU1MgbWVkaWFDb250cm9scy5haXJwbGF5UGxhY2FyZCBpcyBh
biBpbnN0YW5jZSBvZiBBaXJwbGF5UGxhY2FyZAorUEFTUyBtZWRpYUNvbnRyb2xzLmludmFsaWRQ
bGFjYXJkIGlzIGFuIGluc3RhbmNlIG9mIEludmFsaWRQbGFjYXJkCitQQVNTIG1lZGlhQ29udHJv
bHMucGlwUGxhY2FyZCBpcyBhbiBpbnN0YW5jZSBvZiBQaVBQbGFjYXJkCiAKLVBBU1MgbWVkaWFD
b250cm9scy5ib3R0b21Db250cm9sc0JhciBpbnN0YW5jZW9mIENvbnRyb2xzQmFyIGlzIHRydWUK
K1BBU1MgbWVkaWFDb250cm9scy5ib3R0b21Db250cm9sc0JhciBpcyBhbiBpbnN0YW5jZSBvZiBD
b250cm9sc0JhcgogUEFTUyBtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmVsZW1lbnQu
bG9jYWxOYW1lIGlzICJkaXYiCiBQQVNTIG1lZGlhQ29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIu
ZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2NvbnRyb2xzLWJhcicpIGlzIHRydWUKIFBBU1Mg
bWVkaWFDb250cm9scy5ib3R0b21Db250cm9sc0Jhci5lbGVtZW50LmNsYXNzTGlzdC5jb250YWlu
cygnYm90dG9tJykgaXMgdHJ1ZQpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL21lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21l
ZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLmh0bWwJKHJldmlzaW9uIDI3
OTMwNSkKKysrIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1j
b250cm9scy9tZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC01LDcgKzUsNyBAQAogCiBkZXNjcmlwdGlvbigiVGVzdGluZyB0aGUgPGNvZGU+TWVkaWFDb250
cm9sczwvY29kZT4gY29uc3RydWN0b3IuIik7CiAKLWNvbnN0IG1lZGlhQ29udHJvbHMgPSBuZXcg
TWVkaWFDb250cm9scyh7IGxheW91dFRyYWl0czogTGF5b3V0VHJhaXRzLm1hY09TIH0pOworY29u
c3QgbWVkaWFDb250cm9scyA9IG5ldyBNZWRpYUNvbnRyb2xzKHsgbGF5b3V0VHJhaXRzOiBuZXcg
TWFjT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSB9KTsKIAogc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJtZWRpYUNvbnRyb2xzLmVsZW1lbnQubG9jYWxOYW1lIiwgImRpdiIp
Owogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJtZWRpYUNvbnRyb2xzLmVsZW1lbnQuY2xhc3NOYW1l
IiwgIm1lZGlhLWNvbnRyb2xzIik7CkBAIC0xMywyNyArMTMsMjggQEAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJtZWRpYUNvbnRyb2xzLmVsZQogZGVidWcoIiIpOwogc2hvdWxkQmUoIm1lZGlhQ29u
dHJvbHMud2lkdGgiLCAiMzAwIik7CiBzaG91bGRCZSgibWVkaWFDb250cm9scy5oZWlnaHQiLCAi
MTUwIik7Ci1zaG91bGRCZSgibWVkaWFDb250cm9scy5sYXlvdXRUcmFpdHMiLCAiTGF5b3V0VHJh
aXRzLm1hY09TIik7CitzaG91bGRCZVR5cGUoIm1lZGlhQ29udHJvbHMubGF5b3V0VHJhaXRzIiwg
Ik1hY09TTGF5b3V0VHJhaXRzIik7CitzaG91bGRCZUZhbHNlKCJtZWRpYUNvbnRyb2xzLmxheW91
dFRyYWl0cy5pc0Z1bGxzY3JlZW4iKTsKIAogZGVidWcoIiIpOwotc2hvdWxkQmVUcnVlKCJtZWRp
YUNvbnRyb2xzLnBsYXlQYXVzZUJ1dHRvbiBpbnN0YW5jZW9mIFBsYXlQYXVzZUJ1dHRvbiIpOwot
c2hvdWxkQmVUcnVlKCJtZWRpYUNvbnRyb2xzLmFpcnBsYXlCdXR0b24gaW5zdGFuY2VvZiBBaXJw
bGF5QnV0dG9uIik7Ci1zaG91bGRCZVRydWUoIm1lZGlhQ29udHJvbHMucGlwQnV0dG9uIGluc3Rh
bmNlb2YgUGlQQnV0dG9uIik7Ci1zaG91bGRCZVRydWUoIm1lZGlhQ29udHJvbHMuZnVsbHNjcmVl
bkJ1dHRvbiBpbnN0YW5jZW9mIEZ1bGxzY3JlZW5CdXR0b24iKTsKLXNob3VsZEJlVHJ1ZSgibWVk
aWFDb250cm9scy5zdGF0dXNMYWJlbCBpbnN0YW5jZW9mIFN0YXR1c0xhYmVsIik7Ci1zaG91bGRC
ZVRydWUoIm1lZGlhQ29udHJvbHMudGltZUNvbnRyb2wgaW5zdGFuY2VvZiBUaW1lQ29udHJvbCIp
Owotc2hvdWxkQmVUcnVlKCJtZWRpYUNvbnRyb2xzLmFpcnBsYXlQbGFjYXJkIGluc3RhbmNlb2Yg
QWlycGxheVBsYWNhcmQiKTsKLXNob3VsZEJlVHJ1ZSgibWVkaWFDb250cm9scy5pbnZhbGlkUGxh
Y2FyZCBpbnN0YW5jZW9mIEludmFsaWRQbGFjYXJkIik7Ci1zaG91bGRCZVRydWUoIm1lZGlhQ29u
dHJvbHMucGlwUGxhY2FyZCBpbnN0YW5jZW9mIFBpUFBsYWNhcmQiKTsKK3Nob3VsZEJlVHlwZSgi
bWVkaWFDb250cm9scy5wbGF5UGF1c2VCdXR0b24iLCAiUGxheVBhdXNlQnV0dG9uIik7CitzaG91
bGRCZVR5cGUoIm1lZGlhQ29udHJvbHMuYWlycGxheUJ1dHRvbiIsICJBaXJwbGF5QnV0dG9uIik7
CitzaG91bGRCZVR5cGUoIm1lZGlhQ29udHJvbHMucGlwQnV0dG9uIiwgIlBpUEJ1dHRvbiIpOwor
c2hvdWxkQmVUeXBlKCJtZWRpYUNvbnRyb2xzLmZ1bGxzY3JlZW5CdXR0b24iLCAiRnVsbHNjcmVl
bkJ1dHRvbiIpOworc2hvdWxkQmVUeXBlKCJtZWRpYUNvbnRyb2xzLnN0YXR1c0xhYmVsIiwgIlN0
YXR1c0xhYmVsIik7CitzaG91bGRCZVR5cGUoIm1lZGlhQ29udHJvbHMudGltZUNvbnRyb2wiLCAi
VGltZUNvbnRyb2wiKTsKK3Nob3VsZEJlVHlwZSgibWVkaWFDb250cm9scy5haXJwbGF5UGxhY2Fy
ZCIsICJBaXJwbGF5UGxhY2FyZCIpOworc2hvdWxkQmVUeXBlKCJtZWRpYUNvbnRyb2xzLmludmFs
aWRQbGFjYXJkIiwgIkludmFsaWRQbGFjYXJkIik7CitzaG91bGRCZVR5cGUoIm1lZGlhQ29udHJv
bHMucGlwUGxhY2FyZCIsICJQaVBQbGFjYXJkIik7CiAKIGRlYnVnKCIiKTsKLXNob3VsZEJlVHJ1
ZSgibWVkaWFDb250cm9scy5ib3R0b21Db250cm9sc0JhciBpbnN0YW5jZW9mIENvbnRyb2xzQmFy
Iik7CitzaG91bGRCZVR5cGUoIm1lZGlhQ29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIiLCAiQ29u
dHJvbHNCYXIiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygibWVkaWFDb250cm9scy5ib3R0b21D
b250cm9sc0Jhci5lbGVtZW50LmxvY2FsTmFtZSIsICJkaXYiKTsKIHNob3VsZEJlVHJ1ZSgibWVk
aWFDb250cm9scy5ib3R0b21Db250cm9sc0Jhci5lbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygn
Y29udHJvbHMtYmFyJykiKTsKIHNob3VsZEJlVHJ1ZSgibWVkaWFDb250cm9scy5ib3R0b21Db250
cm9sc0Jhci5lbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnYm90dG9tJykiKTsKIAogZGVidWco
IiIpOwotY29uc3QgbWVkaWFDb250cm9sc1dpdGhBcmd1bWVudHMgPSBuZXcgTWVkaWFDb250cm9s
cyh7IHdpZHRoOiA2MDAsIGhlaWdodDogMzAwLCBsYXlvdXRUcmFpdHM6IExheW91dFRyYWl0cy5t
YWNPUyB9KTsKK2NvbnN0IG1lZGlhQ29udHJvbHNXaXRoQXJndW1lbnRzID0gbmV3IE1lZGlhQ29u
dHJvbHMoeyB3aWR0aDogNjAwLCBoZWlnaHQ6IDMwMCwgbGF5b3V0VHJhaXRzOiBuZXcgTWFjT1NM
YXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSB9KTsKIHNob3VsZEJlKCJtZWRp
YUNvbnRyb2xzV2l0aEFyZ3VtZW50cy53aWR0aCIsICI2MDAiKTsKIHNob3VsZEJlKCJtZWRpYUNv
bnRyb2xzV2l0aEFyZ3VtZW50cy5oZWlnaHQiLCAiMzAwIik7CiAKSW5kZXg6IExheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9s
cy1wbGFjYXJkLWNvbXByZXNzZWQtbWV0cmljcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xzL21l
ZGlhLWNvbnRyb2xzLXBsYWNhcmQtY29tcHJlc3NlZC1tZXRyaWNzLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L21lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xzLXBsYWNhcmQtY29tcHJlc3NlZC1tZXRyaWNz
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNSw3ICs1LDcgQEAgT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogCiBtZWRpYUNvbnRyb2xzLnBsYWNhcmQgPSBt
ZWRpYUNvbnRyb2xzLmFpcnBsYXlQbGFjYXJkCiBQQVNTIHBsYWNhcmRDb250YWluZXIuY2hpbGRy
ZW4ubGVuZ3RoIGlzIDMKLVBBU1MgcGxhY2FyZENvbnRhaW5lci5jaGlsZHJlblswXSBpbnN0YW5j
ZW9mIEJ1dHRvbiBpcyB0cnVlCitQQVNTIHBsYWNhcmRDb250YWluZXIuY2hpbGRyZW5bMF0gaXMg
YW4gaW5zdGFuY2Ugb2YgQnV0dG9uCiBQQVNTIHBsYWNhcmRDb250YWluZXIuY2hpbGRyZW5bMV0u
ZWxlbWVudC5jbGFzc05hbWUgaXMgInRpdGxlIgogUEFTUyBwbGFjYXJkQ29udGFpbmVyLmNoaWxk
cmVuWzJdLmVsZW1lbnQuY2xhc3NOYW1lIGlzICJkZXNjcmlwdGlvbiIKIApAQCAtMzMsNyArMzMs
NyBAQCBQQVNTIHBsYWNhcmRDb250YWluZXIuY2hpbGRyZW4ubGVuZ3RoIGlzCiBtZWRpYUNvbnRy
b2xzLndpZHRoID0gMTcwCiBtZWRpYUNvbnRyb2xzLmhlaWdodCA9IDE3MAogUEFTUyBwbGFjYXJk
Q29udGFpbmVyLmNoaWxkcmVuLmxlbmd0aCBpcyAzCi1QQVNTIHBsYWNhcmRDb250YWluZXIuY2hp
bGRyZW5bMF0gaW5zdGFuY2VvZiBCdXR0b24gaXMgdHJ1ZQorUEFTUyBwbGFjYXJkQ29udGFpbmVy
LmNoaWxkcmVuWzBdIGlzIGFuIGluc3RhbmNlIG9mIEJ1dHRvbgogUEFTUyBwbGFjYXJkQ29udGFp
bmVyLmNoaWxkcmVuWzFdLmVsZW1lbnQuY2xhc3NOYW1lIGlzICJ0aXRsZSIKIFBBU1MgcGxhY2Fy
ZENvbnRhaW5lci5jaGlsZHJlblsyXS5lbGVtZW50LmNsYXNzTmFtZSBpcyAiZGVzY3JpcHRpb24i
CiAKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1j
b250cm9scy9tZWRpYS1jb250cm9scy1wbGFjYXJkLWNvbXByZXNzZWQtbWV0cmljcy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRp
YS1jb250cm9scy9tZWRpYS1jb250cm9scy1wbGFjYXJkLWNvbXByZXNzZWQtbWV0cmljcy5odG1s
CShyZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbHMtcGxhY2FyZC1jb21wcmVzc2VkLW1l
dHJpY3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNSwxMyArNSwxMyBAQAogCiBkZXNjcmlwdGlv
bigiVGVzdGluZyBwbGFjYXJkIG1ldHJpY3MgY29uc3RyYWludHMuIik7CiAKLWNvbnN0IG1lZGlh
Q29udHJvbHMgPSBuZXcgTWVkaWFDb250cm9scyh7IGxheW91dFRyYWl0czogTGF5b3V0VHJhaXRz
Lm1hY09TLCB3aWR0aDogNDAwLCBoZWlnaHQ6IDMwMCB9KTsKK2NvbnN0IG1lZGlhQ29udHJvbHMg
PSBuZXcgTWVkaWFDb250cm9scyh7IGxheW91dFRyYWl0czogbmV3IE1hY09TTGF5b3V0VHJhaXRz
KExheW91dFRyYWl0cy5Nb2RlLklubGluZSksIHdpZHRoOiA0MDAsIGhlaWdodDogMzAwIH0pOwog
CiBtZWRpYUNvbnRyb2xzLnBsYWNhcmQgPSBtZWRpYUNvbnRyb2xzLmFpcnBsYXlQbGFjYXJkOwog
Y29uc3QgcGxhY2FyZENvbnRhaW5lciA9IG1lZGlhQ29udHJvbHMucGxhY2FyZC5jaGlsZHJlblsw
XTsKIGRlYnVnKCJtZWRpYUNvbnRyb2xzLnBsYWNhcmQgPSBtZWRpYUNvbnRyb2xzLmFpcnBsYXlQ
bGFjYXJkIik7CiBzaG91bGRCZSgicGxhY2FyZENvbnRhaW5lci5jaGlsZHJlbi5sZW5ndGgiLCAi
MyIpOwotc2hvdWxkQmVUcnVlKCJwbGFjYXJkQ29udGFpbmVyLmNoaWxkcmVuWzBdIGluc3RhbmNl
b2YgQnV0dG9uIik7CitzaG91bGRCZVR5cGUoInBsYWNhcmRDb250YWluZXIuY2hpbGRyZW5bMF0i
LCAiQnV0dG9uIik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInBsYWNhcmRDb250YWluZXIuY2hp
bGRyZW5bMV0uZWxlbWVudC5jbGFzc05hbWUiLCAidGl0bGUiKTsKIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicGxhY2FyZENvbnRhaW5lci5jaGlsZHJlblsyXS5lbGVtZW50LmNsYXNzTmFtZSIsICJk
ZXNjcmlwdGlvbiIpOwogCkBAIC01Miw3ICs1Miw3IEBAIGRlYnVnKCJtZWRpYUNvbnRyb2xzLmhl
aWdodCA9IDE3MCIpOwogbWVkaWFDb250cm9scy53aWR0aCA9IDE3MDsKIG1lZGlhQ29udHJvbHMu
aGVpZ2h0ID0gMTcwOwogc2hvdWxkQmUoInBsYWNhcmRDb250YWluZXIuY2hpbGRyZW4ubGVuZ3Ro
IiwgIjMiKTsKLXNob3VsZEJlVHJ1ZSgicGxhY2FyZENvbnRhaW5lci5jaGlsZHJlblswXSBpbnN0
YW5jZW9mIEJ1dHRvbiIpOworc2hvdWxkQmVUeXBlKCJwbGFjYXJkQ29udGFpbmVyLmNoaWxkcmVu
WzBdIiwgIkJ1dHRvbiIpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJwbGFjYXJkQ29udGFpbmVy
LmNoaWxkcmVuWzFdLmVsZW1lbnQuY2xhc3NOYW1lIiwgInRpdGxlIik7CiBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInBsYWNhcmRDb250YWluZXIuY2hpbGRyZW5bMl0uZWxlbWVudC5jbGFzc05hbWUi
LCAiZGVzY3JpcHRpb24iKTsKIApJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL211dGUtYnV0dG9uL211dGUtYnV0dG9uLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL211dGUtYnV0dG9uL211dGUtYnV0
dG9uLmh0bWwJKHJldmlzaW9uIDI3OTMwNSkKKysrIExheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy9tdXRlLWJ1dHRvbi9tdXRlLWJ1dHRvbi5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC04LDcgKzgsNyBAQCB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKIGRlc2NyaXB0
aW9uKCJUZXN0aW5nIHRoZSA8Y29kZT5NdXRlQnV0dG9uPC9jb2RlPiBjbGFzcy4iKTsKIAotY29u
c3QgbXV0ZUJ1dHRvbiA9IG5ldyBNdXRlQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBMYXlvdXRUcmFp
dHMubWFjT1MgfSk7Citjb25zdCBtdXRlQnV0dG9uID0gbmV3IE11dGVCdXR0b24oeyBsYXlvdXRU
cmFpdHM6IG5ldyBNYWNPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpIH0p
OwogCiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm11dGVCdXR0b24uZWxlbWVudC5sb2NhbE5hbWUi
LCAiYnV0dG9uIik7CiBzaG91bGRCZVRydWUoJ211dGVCdXR0b24uZWxlbWVudC5jbGFzc0xpc3Qu
Y29udGFpbnMoIm11dGUiKScpOwpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL292ZXJmbG93LWJ1dHRvbi9vdmVyZmxvdy1idXR0b24uaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvb3ZlcmZsb3ctYnV0
dG9uL292ZXJmbG93LWJ1dHRvbi5odG1sCShyZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvb3ZlcmZsb3ctYnV0dG9uL292ZXJmbG93LWJ1
dHRvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDEzICs4LDEzIEBAIHdpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKIAogZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhlIDxjb2RlPk92ZXJmbG93
QnV0dG9uPC9jb2RlPiBjbGFzcy4iKTsKIAotY29uc3Qgb3ZlcmZsb3dCdXR0b24gPSBuZXcgT3Zl
cmZsb3dCdXR0b24oeyBsYXlvdXRUcmFpdHM6IExheW91dFRyYWl0cy5tYWNPUyB9KTsKK2NvbnN0
IG92ZXJmbG93QnV0dG9uID0gbmV3IE92ZXJmbG93QnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBuZXcg
TWFjT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSB9KTsKIAogc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJvdmVyZmxvd0J1dHRvbi5lbGVtZW50LmxvY2FsTmFtZSIsICJidXR0
b24iKTsKIHNob3VsZEJlVHJ1ZSgnb3ZlcmZsb3dCdXR0b24uZWxlbWVudC5jbGFzc0xpc3QuY29u
dGFpbnMoIm92ZXJmbG93IiknKTsKIHNob3VsZEJlKCJvdmVyZmxvd0J1dHRvbi5pY29uTmFtZSIs
ICJJY29ucy5PdmVyZmxvdyIpOwogCi1jb25zdCBpT1NPdmVyZmxvd0J1dHRvbiA9IG5ldyBPdmVy
Zmxvd0J1dHRvbih7IGxheW91dFRyYWl0czogTGF5b3V0VHJhaXRzLmlPUyB9KTsKK2NvbnN0IGlP
U092ZXJmbG93QnV0dG9uID0gbmV3IE92ZXJmbG93QnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBuZXcg
SU9TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLklubGluZSkgfSk7CiAKIHNob3VsZEJl
Y29tZUVxdWFsKCdvdmVyZmxvd0J1dHRvbi5pbWFnZS5lbGVtZW50LnN0eWxlLndlYmtpdE1hc2tJ
bWFnZS5pbmNsdWRlcygibWFjT1MvT3ZlcmZsb3cuc3ZnIiknLCAidHJ1ZSIsICgpID0+IHsKICAg
ICBzaG91bGRCZWNvbWVFcXVhbCgnaU9TT3ZlcmZsb3dCdXR0b24uaW1hZ2UuZWxlbWVudC5zdHls
ZS53ZWJraXRNYXNrSW1hZ2UuaW5jbHVkZXMoImlPUy9PdmVyZmxvdy5zdmciKScsICJ0cnVlIiwg
ZmluaXNoSlNUZXN0KTsKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9waXAtYnV0dG9uL3BpcC1idXR0b24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcGlwLWJ1dHRvbi9waXAtYnV0dG9uLmh0bWwJ
KHJldmlzaW9uIDI3OTMwNSkKKysrIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9waXAtYnV0dG9uL3BpcC1idXR0b24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCwxMyAr
OCwxMyBAQCB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKIGRlc2NyaXB0aW9uKCJUZXN0
aW5nIHRoZSA8Y29kZT5QaVBCdXR0b248L2NvZGU+IGNsYXNzLiIpOwogCi1jb25zdCBwaXBCdXR0
b24gPSBuZXcgUGlQQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBMYXlvdXRUcmFpdHMubWFjT1MgfSk7
Citjb25zdCBwaXBCdXR0b24gPSBuZXcgUGlQQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBuZXcgTWFj
T1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSB9KTsKIAogc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJwaXBCdXR0b24uZWxlbWVudC5sb2NhbE5hbWUiLCAiYnV0dG9uIik7CiBz
aG91bGRCZVRydWUoJ3BpcEJ1dHRvbi5lbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygicGlwIikn
KTsKIHNob3VsZEJlKCJwaXBCdXR0b24uaWNvbk5hbWUiLCAiSWNvbnMuRW50ZXJQaVAiKTsKIAot
Y29uc3QgaU9TUGlQQnV0dG9uID0gbmV3IFBpUEJ1dHRvbih7IGxheW91dFRyYWl0czogTGF5b3V0
VHJhaXRzLmlPUyB9KTsKK2NvbnN0IGlPU1BpUEJ1dHRvbiA9IG5ldyBQaVBCdXR0b24oeyBsYXlv
dXRUcmFpdHM6IG5ldyBJT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSB9
KTsKIAogc2hvdWxkQmVjb21lRXF1YWwoJ3BpcEJ1dHRvbi5pbWFnZS5lbGVtZW50LnN0eWxlLndl
YmtpdE1hc2tJbWFnZS5pbmNsdWRlcygibWFjT1MvUGlwSW4uc3ZnIiknLCAidHJ1ZSIsICgpID0+
IHsKICAgICBzaG91bGRCZWNvbWVFcXVhbCgnaU9TUGlQQnV0dG9uLmltYWdlLmVsZW1lbnQuc3R5
bGUud2Via2l0TWFza0ltYWdlLmluY2x1ZGVzKCJpT1MvUGlwSW4uc3ZnIiknLCAidHJ1ZSIsICgp
ID0+IHsKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9waXAt
cGxhY2FyZC9waXAtcGxhY2FyZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9waXAtcGxhY2FyZC9waXAtcGxhY2FyZC5odG1sCShyZXZp
c2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
cGlwLXBsYWNhcmQvcGlwLXBsYWNhcmQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcg
QEAKIGRlc2NyaXB0aW9uKCJUZXN0aW5nIHRoZSA8Y29kZT5QaVBQbGFjYXJkPC9jb2RlPiBjbGFz
cy4iKTsKIAogZGVidWcoIlBsYWNhcmQgd2l0aCBhbGwgcGFyYW1ldGVycyIpOwotY29uc3QgcGxh
Y2FyZCA9IG5ldyBQaVBQbGFjYXJkKHsgbGF5b3V0VHJhaXRzOiBMYXlvdXRUcmFpdHMubWFjT1Mg
fSk7Citjb25zdCBwbGFjYXJkID0gbmV3IFBpUFBsYWNhcmQoeyBsYXlvdXRUcmFpdHM6IG5ldyBN
YWNPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpIH0pOwogCiBzaG91bGRC
ZSgicGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblswXS5pY29uTmFtZSIsICJJY29ucy5QaVBQ
bGFjYXJkIik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInBsYWNhcmQuY2hpbGRyZW5bMF0uY2hp
bGRyZW5bMV0uZWxlbWVudC5pbm5lclRleHQiLCAiVGhpcyB2aWRlbyBpcyBwbGF5aW5nIGluIHBp
Y3R1cmUgaW4gcGljdHVyZS4iKTsKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9wbGFjYXJkL3BsYWNhcmQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9wbGFjYXJkL3BsYWNhcmQtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvcGxhY2FyZC9wbGFjYXJkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMTAsMTQgKzEwLDE0IEBAIFBBU1MgcGxhY2FyZC5jaGlsZHJlbi5sZW5ndGggaXMgMQog
UEFTUyBwbGFjYXJkLmNoaWxkcmVuWzBdLmVsZW1lbnQubG9jYWxOYW1lIGlzICJkaXYiCiBQQVNT
IHBsYWNhcmQuY2hpbGRyZW5bMF0uZWxlbWVudC5jbGFzc05hbWUgaXMgImNvbnRhaW5lciIKIFBB
U1MgcGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlbi5sZW5ndGggaXMgMwotUEFTUyBwbGFjYXJk
LmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdIGluc3RhbmNlb2YgQnV0dG9uIGlzIHRydWUKK1BBU1Mg
cGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblswXSBpcyBhbiBpbnN0YW5jZSBvZiBCdXR0b24K
IFBBU1MgcGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblswXS5pY29uTmFtZSBpcyBJY29ucy5B
aXJwbGF5UGxhY2FyZAogUEFTUyBwbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmVsZW1l
bnQuZGlzYWJsZWQgaXMgdHJ1ZQotUEFTUyBwbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFd
IGluc3RhbmNlb2YgTGF5b3V0Tm9kZSBpcyB0cnVlCitQQVNTIHBsYWNhcmQuY2hpbGRyZW5bMF0u
Y2hpbGRyZW5bMV0gaXMgYW4gaW5zdGFuY2Ugb2YgTGF5b3V0Tm9kZQogUEFTUyBwbGFjYXJkLmNo
aWxkcmVuWzBdLmNoaWxkcmVuWzFdLmVsZW1lbnQubG9jYWxOYW1lIGlzICJkaXYiCiBQQVNTIHBs
YWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0uZWxlbWVudC5jbGFzc05hbWUgaXMgInRpdGxl
IgogUEFTUyBwbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFdLmVsZW1lbnQuaW5uZXJUZXh0
IGlzICJNeSB0aXRsZSIKLVBBU1MgcGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblsyXSBpbnN0
YW5jZW9mIExheW91dE5vZGUgaXMgdHJ1ZQorUEFTUyBwbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxk
cmVuWzJdIGlzIGFuIGluc3RhbmNlIG9mIExheW91dE5vZGUKIFBBU1MgcGxhY2FyZC5jaGlsZHJl
blswXS5jaGlsZHJlblsyXS5lbGVtZW50LmxvY2FsTmFtZSBpcyAiZGl2IgogUEFTUyBwbGFjYXJk
LmNoaWxkcmVuWzBdLmNoaWxkcmVuWzJdLmVsZW1lbnQuY2xhc3NOYW1lIGlzICJkZXNjcmlwdGlv
biIKIFBBU1MgcGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblsyXS5lbGVtZW50LmlubmVyVGV4
dCBpcyAiTXkgZGVzY3JpcHRpb24iCkBAIC0yNywxNyArMjcsMTcgQEAgUEFTUyBkZWZhdWx0UGxh
Y2FyZC5jaGlsZHJlblswXS5jaGlsZHJlbgogCiBQbGFjYXJkIHdpdGggb25seSBhIGRlc2NyaXB0
aW9uCiBQQVNTIG9ubHlEZXNjcmlwdGlvblBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW4ubGVu
Z3RoIGlzIDEKLVBBU1Mgb25seURlc2NyaXB0aW9uUGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJl
blswXSBpbnN0YW5jZW9mIExheW91dE5vZGUgaXMgdHJ1ZQorUEFTUyBvbmx5RGVzY3JpcHRpb25Q
bGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdIGlzIGFuIGluc3RhbmNlIG9mIExheW91dE5v
ZGUKIFBBU1Mgb25seURlc2NyaXB0aW9uUGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblswXS5l
bGVtZW50LmNsYXNzTmFtZSBpcyAiZGVzY3JpcHRpb24iCiAKIFBsYWNhcmQgd2l0aCBvbmx5IGEg
dGl0bGUKIFBBU1Mgb25seVRpdGxlUGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlbi5sZW5ndGgg
aXMgMQotUEFTUyBvbmx5VGl0bGVQbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdIGluc3Rh
bmNlb2YgTGF5b3V0Tm9kZSBpcyB0cnVlCitQQVNTIG9ubHlUaXRsZVBsYWNhcmQuY2hpbGRyZW5b
MF0uY2hpbGRyZW5bMF0gaXMgYW4gaW5zdGFuY2Ugb2YgTGF5b3V0Tm9kZQogUEFTUyBvbmx5VGl0
bGVQbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmVsZW1lbnQuY2xhc3NOYW1lIGlzICJ0
aXRsZSIKIAogUGxhY2FyZCB3aXRoIG9ubHkgYW4gaWNvbgogUEFTUyBvbmx5SWNvblBsYWNhcmQu
Y2hpbGRyZW5bMF0uY2hpbGRyZW4ubGVuZ3RoIGlzIDEKLVBBU1Mgb25seUljb25QbGFjYXJkLmNo
aWxkcmVuWzBdLmNoaWxkcmVuWzBdIGluc3RhbmNlb2YgQnV0dG9uIGlzIHRydWUKK1BBU1Mgb25s
eUljb25QbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdIGlzIGFuIGluc3RhbmNlIG9mIEJ1
dHRvbgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCklu
ZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcGxhY2FyZC9wbGFj
YXJkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3BsYWNhcmQvcGxhY2FyZC5odG1sCShyZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcGxhY2FyZC9wbGFjYXJkLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgY29uc3QgcGxhY2FyZCA9IG5ldyBQbGFjYXJk
KHsKICAgICBpY29uTmFtZTogSWNvbnMuQWlycGxheVBsYWNhcmQsCiAgICAgdGl0bGU6ICJNeSB0
aXRsZSIsCiAgICAgZGVzY3JpcHRpb246ICJNeSBkZXNjcmlwdGlvbiIsCi0gICAgbGF5b3V0RGVs
ZWdhdGU6IHsgbGF5b3V0VHJhaXRzOiBMYXlvdXRUcmFpdHMubWFjT1MgfQorICAgIGxheW91dERl
bGVnYXRlOiB7IGxheW91dFRyYWl0czogbmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0
cy5Nb2RlLklubGluZSkgfQogfSk7CiAKIHNob3VsZEJlRXF1YWxUb1N0cmluZygicGxhY2FyZC5l
bGVtZW50LmxvY2FsTmFtZSIsICJkaXYiKTsKQEAgLTE5LDE0ICsxOSwxNCBAQCBzaG91bGRCZSgi
cGxhY2FyZC5jaGlsZHJlbi5sZW5ndGgiLCAiMSIpCiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInBs
YWNhcmQuY2hpbGRyZW5bMF0uZWxlbWVudC5sb2NhbE5hbWUiLCAiZGl2Iik7CiBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInBsYWNhcmQuY2hpbGRyZW5bMF0uZWxlbWVudC5jbGFzc05hbWUiLCAiY29u
dGFpbmVyIik7CiBzaG91bGRCZSgicGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlbi5sZW5ndGgi
LCAiMyIpOwotc2hvdWxkQmVUcnVlKCJwbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdIGlu
c3RhbmNlb2YgQnV0dG9uIik7CitzaG91bGRCZVR5cGUoInBsYWNhcmQuY2hpbGRyZW5bMF0uY2hp
bGRyZW5bMF0iLCAiQnV0dG9uIik7CiBzaG91bGRCZSgicGxhY2FyZC5jaGlsZHJlblswXS5jaGls
ZHJlblswXS5pY29uTmFtZSIsICJJY29ucy5BaXJwbGF5UGxhY2FyZCIpOwogc2hvdWxkQmVUcnVl
KCJwbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmVsZW1lbnQuZGlzYWJsZWQiKTsKLXNo
b3VsZEJlVHJ1ZSgicGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblsxXSBpbnN0YW5jZW9mIExh
eW91dE5vZGUiKTsKK3Nob3VsZEJlVHlwZSgicGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblsx
XSIsICJMYXlvdXROb2RlIik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInBsYWNhcmQuY2hpbGRy
ZW5bMF0uY2hpbGRyZW5bMV0uZWxlbWVudC5sb2NhbE5hbWUiLCAiZGl2Iik7CiBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0uZWxlbWVudC5jbGFz
c05hbWUiLCAidGl0bGUiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygicGxhY2FyZC5jaGlsZHJl
blswXS5jaGlsZHJlblsxXS5lbGVtZW50LmlubmVyVGV4dCIsICJNeSB0aXRsZSIpOwotc2hvdWxk
QmVUcnVlKCJwbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzJdIGluc3RhbmNlb2YgTGF5b3V0
Tm9kZSIpOworc2hvdWxkQmVUeXBlKCJwbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzJdIiwg
IkxheW91dE5vZGUiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygicGxhY2FyZC5jaGlsZHJlblsw
XS5jaGlsZHJlblsyXS5lbGVtZW50LmxvY2FsTmFtZSIsICJkaXYiKTsKIHNob3VsZEJlRXF1YWxU
b1N0cmluZygicGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblsyXS5lbGVtZW50LmNsYXNzTmFt
ZSIsICJkZXNjcmlwdGlvbiIpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJwbGFjYXJkLmNoaWxk
cmVuWzBdLmNoaWxkcmVuWzJdLmVsZW1lbnQuaW5uZXJUZXh0IiwgIk15IGRlc2NyaXB0aW9uIik7
CkBAIC00MCwyMSArNDAsMjEgQEAgZGVidWcoIiIpOwogZGVidWcoIlBsYWNhcmQgd2l0aCBvbmx5
IGEgZGVzY3JpcHRpb24iKTsKIGNvbnN0IG9ubHlEZXNjcmlwdGlvblBsYWNhcmQgPSBuZXcgUGxh
Y2FyZCh7IGRlc2NyaXB0aW9uOiAiTXkgZGVzY3JpcHRpb24iIH0pOwogc2hvdWxkQmUoIm9ubHlE
ZXNjcmlwdGlvblBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW4ubGVuZ3RoIiwgIjEiKTsKLXNo
b3VsZEJlVHJ1ZSgib25seURlc2NyaXB0aW9uUGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblsw
XSBpbnN0YW5jZW9mIExheW91dE5vZGUiKTsKK3Nob3VsZEJlVHlwZSgib25seURlc2NyaXB0aW9u
UGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblswXSIsICJMYXlvdXROb2RlIik7CiBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoIm9ubHlEZXNjcmlwdGlvblBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRy
ZW5bMF0uZWxlbWVudC5jbGFzc05hbWUiLCAiZGVzY3JpcHRpb24iKTsKIAogZGVidWcoIiIpOwog
ZGVidWcoIlBsYWNhcmQgd2l0aCBvbmx5IGEgdGl0bGUiKTsKIGNvbnN0IG9ubHlUaXRsZVBsYWNh
cmQgPSBuZXcgUGxhY2FyZCh7IHRpdGxlOiAiTXkgdGl0bGUiIH0pOwogc2hvdWxkQmUoIm9ubHlU
aXRsZVBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW4ubGVuZ3RoIiwgIjEiKTsKLXNob3VsZEJl
VHJ1ZSgib25seVRpdGxlUGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblswXSBpbnN0YW5jZW9m
IExheW91dE5vZGUiKTsKK3Nob3VsZEJlVHlwZSgib25seVRpdGxlUGxhY2FyZC5jaGlsZHJlblsw
XS5jaGlsZHJlblswXSIsICJMYXlvdXROb2RlIik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm9u
bHlUaXRsZVBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0uZWxlbWVudC5jbGFzc05hbWUi
LCAidGl0bGUiKTsKIAogZGVidWcoIiIpOwogZGVidWcoIlBsYWNhcmQgd2l0aCBvbmx5IGFuIGlj
b24iKTsKLWNvbnN0IG9ubHlJY29uUGxhY2FyZCA9IG5ldyBQbGFjYXJkKHsgaWNvbk5hbWU6IElj
b25zLkFpcnBsYXlQbGFjYXJkLCBsYXlvdXREZWxlZ2F0ZTogeyBsYXlvdXRUcmFpdHM6IExheW91
dFRyYWl0cy5tYWNPUyB9IH0pOworY29uc3Qgb25seUljb25QbGFjYXJkID0gbmV3IFBsYWNhcmQo
eyBpY29uTmFtZTogSWNvbnMuQWlycGxheVBsYWNhcmQsIGxheW91dERlbGVnYXRlOiB7IGxheW91
dFRyYWl0czogbmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLklubGluZSkg
fSB9KTsKIHNob3VsZEJlKCJvbmx5SWNvblBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW4ubGVu
Z3RoIiwgIjEiKTsKLXNob3VsZEJlVHJ1ZSgib25seUljb25QbGFjYXJkLmNoaWxkcmVuWzBdLmNo
aWxkcmVuWzBdIGluc3RhbmNlb2YgQnV0dG9uIik7CitzaG91bGRCZVR5cGUoIm9ubHlJY29uUGxh
Y2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblswXSIsICJCdXR0b24iKTsKIAogPC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcGxheS1wYXVz
ZS1idXR0b24vcGxheS1wYXVzZS1idXR0b24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcGxheS1wYXVzZS1idXR0b24vcGxheS1wYXVz
ZS1idXR0b24uaHRtbAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3BsYXktcGF1c2UtYnV0dG9uL3BsYXktcGF1c2UtYnV0dG9uLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsMjUgKzgsMjUgQEAgd2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOwogCiBkZXNjcmlwdGlvbigiVGVzdGluZyB0aGUgPGNvZGU+UGxheVBhdXNlQnV0dG9u
PC9jb2RlPiBjbGFzcy4iKTsKIAotY29uc3QgcGxheUJ1dHRvbiA9IG5ldyBQbGF5UGF1c2VCdXR0
b24oeyBsYXlvdXRUcmFpdHM6IExheW91dFRyYWl0cy5tYWNPUyB9KTsKK2NvbnN0IHBsYXlCdXR0
b24gPSBuZXcgUGxheVBhdXNlQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBuZXcgTWFjT1NMYXlvdXRU
cmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSB9KTsKIAogc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJwbGF5QnV0dG9uLmVsZW1lbnQubG9jYWxOYW1lIiwgImJ1dHRvbiIpOwogc2hvdWxkQmVU
cnVlKCdwbGF5QnV0dG9uLmVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJwbGF5LXBhdXNlIikn
KTsKIHNob3VsZEJlKCJwbGF5QnV0dG9uLmljb25OYW1lIiwgIkljb25zLlBsYXkiKTsKIHNob3Vs
ZEJlRmFsc2UoInBsYXlCdXR0b24ucGxheWluZyIpOwogCi1jb25zdCBmdWxsc2NyZWVuUGxheUJ1
dHRvbiA9IG5ldyBQbGF5UGF1c2VCdXR0b24oeyBsYXlvdXRUcmFpdHM6IExheW91dFRyYWl0cy5t
YWNPUyB8IExheW91dFRyYWl0cy5GdWxsc2NyZWVuIH0pOwotY29uc3QgaU9TUGxheUJ1dHRvbiA9
IG5ldyBQbGF5UGF1c2VCdXR0b24oeyBsYXlvdXRUcmFpdHM6IExheW91dFRyYWl0cy5pT1MgfSk7
Citjb25zdCBmdWxsc2NyZWVuUGxheUJ1dHRvbiA9IG5ldyBQbGF5UGF1c2VCdXR0b24oeyBsYXlv
dXRUcmFpdHM6IG5ldyBNYWNPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5GdWxsc2Ny
ZWVuKSB9KTsKK2NvbnN0IGlPU1BsYXlCdXR0b24gPSBuZXcgUGxheVBhdXNlQnV0dG9uKHsgbGF5
b3V0VHJhaXRzOiBuZXcgSU9TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLklubGluZSkg
fSk7CiAKLWNvbnN0IHBhdXNlQnV0dG9uID0gbmV3IFBsYXlQYXVzZUJ1dHRvbih7IGxheW91dFRy
YWl0czogTGF5b3V0VHJhaXRzLm1hY09TIH0pOworY29uc3QgcGF1c2VCdXR0b24gPSBuZXcgUGxh
eVBhdXNlQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBuZXcgTWFjT1NMYXlvdXRUcmFpdHMoTGF5b3V0
VHJhaXRzLk1vZGUuSW5saW5lKSB9KTsKIHBhdXNlQnV0dG9uLnBsYXlpbmcgPSB0cnVlOwogc2hv
dWxkQmVUcnVlKCJwYXVzZUJ1dHRvbi5wbGF5aW5nIik7CiBzaG91bGRCZSgicGF1c2VCdXR0b24u
aWNvbk5hbWUiLCAiSWNvbnMuUGF1c2UiKTsKIAotY29uc3QgZnVsbHNjcmVlblBhdXNlQnV0dG9u
ID0gbmV3IFBsYXlQYXVzZUJ1dHRvbih7IGxheW91dFRyYWl0czogTGF5b3V0VHJhaXRzLm1hY09T
IHwgTGF5b3V0VHJhaXRzLkZ1bGxzY3JlZW4gfSk7Citjb25zdCBmdWxsc2NyZWVuUGF1c2VCdXR0
b24gPSBuZXcgUGxheVBhdXNlQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBuZXcgTWFjT1NMYXlvdXRU
cmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuRnVsbHNjcmVlbikgfSk7CiBmdWxsc2NyZWVuUGF1c2VC
dXR0b24ucGxheWluZyA9IHRydWU7CiAKLWNvbnN0IGlPU1BhdXNlQnV0dG9uID0gbmV3IFBsYXlQ
YXVzZUJ1dHRvbih7IGxheW91dFRyYWl0czogTGF5b3V0VHJhaXRzLmlPUyB9KTsKK2NvbnN0IGlP
U1BhdXNlQnV0dG9uID0gbmV3IFBsYXlQYXVzZUJ1dHRvbih7IGxheW91dFRyYWl0czogbmV3IElP
U0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpIH0pOwogaU9TUGF1c2VCdXR0
b24ucGxheWluZyA9IHRydWU7CiAKIHNob3VsZEJlY29tZUVxdWFsKCdwbGF5QnV0dG9uLmltYWdl
LmVsZW1lbnQuc3R5bGUud2Via2l0TWFza0ltYWdlLmluY2x1ZGVzKCJtYWNPUy9QbGF5LnN2ZyIp
JywgInRydWUiLCAoKSA9PiB7CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvcmV3aW5kLWJ1dHRvbi9yZXdpbmQtYnV0dG9uLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Jld2luZC1idXR0b24vcmV3
aW5kLWJ1dHRvbi5odG1sCShyZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvcmV3aW5kLWJ1dHRvbi9yZXdpbmQtYnV0dG9uLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBAIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
IAogZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhlIDxjb2RlPlJld2luZEJ1dHRvbjwvY29kZT4gY2xh
c3MuIik7CiAKLWNvbnN0IHJld2luZEJ1dHRvbiA9IG5ldyBSZXdpbmRCdXR0b24oeyBsYXlvdXRU
cmFpdHM6IExheW91dFRyYWl0cy5tYWNPUyB9KTsKK2NvbnN0IHJld2luZEJ1dHRvbiA9IG5ldyBS
ZXdpbmRCdXR0b24oeyBsYXlvdXRUcmFpdHM6IG5ldyBNYWNPU0xheW91dFRyYWl0cyhMYXlvdXRU
cmFpdHMuTW9kZS5JbmxpbmUpIH0pOwogCiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJld2luZEJ1
dHRvbi5lbGVtZW50LmxvY2FsTmFtZSIsICJidXR0b24iKTsKIHNob3VsZEJlVHJ1ZSgncmV3aW5k
QnV0dG9uLmVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJyZXdpbmQiKScpOwpJbmRleDogTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3NraXAtYmFjay1idXR0b24vc2tp
cC1iYWNrLWJ1dHRvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy9za2lwLWJhY2stYnV0dG9uL3NraXAtYmFjay1idXR0b24uaHRtbAko
cmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3NraXAtYmFjay1idXR0b24vc2tpcC1iYWNrLWJ1dHRvbi5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC04LDEzICs4LDEzIEBAIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogZGVzY3Jp
cHRpb24oIlRlc3RpbmcgdGhlIDxjb2RlPlNraXBCYWNrQnV0dG9uPC9jb2RlPiBjbGFzcy4iKTsK
IAotY29uc3Qgc2tpcEJhY2tCdXR0b24gPSBuZXcgU2tpcEJhY2tCdXR0b24oeyBsYXlvdXRUcmFp
dHM6IExheW91dFRyYWl0cy5tYWNPUyB9KTsKK2NvbnN0IHNraXBCYWNrQnV0dG9uID0gbmV3IFNr
aXBCYWNrQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBuZXcgTWFjT1NMYXlvdXRUcmFpdHMoTGF5b3V0
VHJhaXRzLk1vZGUuSW5saW5lKSB9KTsKIAogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJza2lwQmFj
a0J1dHRvbi5lbGVtZW50LmxvY2FsTmFtZSIsICJidXR0b24iKTsKIHNob3VsZEJlVHJ1ZSgnc2tp
cEJhY2tCdXR0b24uZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoInNraXAtYmFjayIpJyk7CiBz
aG91bGRCZSgic2tpcEJhY2tCdXR0b24uaWNvbk5hbWUiLCAiSWNvbnMuU2tpcEJhY2siKTsKIAot
Y29uc3QgaU9TU2tpcEJhY2tCdXR0b24gPSBuZXcgU2tpcEJhY2tCdXR0b24oeyBsYXlvdXRUcmFp
dHM6IExheW91dFRyYWl0cy5pT1MgfSk7Citjb25zdCBpT1NTa2lwQmFja0J1dHRvbiA9IG5ldyBT
a2lwQmFja0J1dHRvbih7IGxheW91dFRyYWl0czogbmV3IElPU0xheW91dFRyYWl0cyhMYXlvdXRU
cmFpdHMuTW9kZS5JbmxpbmUpIH0pOwogCiBzaG91bGRCZWNvbWVFcXVhbCgnc2tpcEJhY2tCdXR0
b24uaW1hZ2UuZWxlbWVudC5zdHlsZS53ZWJraXRNYXNrSW1hZ2UuaW5jbHVkZXMoIm1hY09TL1Nr
aXBCYWNrMTUuc3ZnIiknLCAidHJ1ZSIsICgpID0+IHsKICAgICBzaG91bGRCZWNvbWVFcXVhbCgn
aU9TU2tpcEJhY2tCdXR0b24uaW1hZ2UuZWxlbWVudC5zdHlsZS53ZWJraXRNYXNrSW1hZ2UuaW5j
bHVkZXMoImlPUy9Ta2lwQmFjazE1LnN2ZyIpJywgInRydWUiLCBmaW5pc2hKU1Rlc3QpOwpJbmRl
eDogTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3NraXAtZm9yd2FyZC1i
dXR0b24vc2tpcC1mb3J3YXJkLWJ1dHRvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9za2lwLWZvcndhcmQtYnV0dG9uL3NraXAtZm9y
d2FyZC1idXR0b24uaHRtbAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL3NraXAtZm9yd2FyZC1idXR0b24vc2tpcC1mb3J3YXJkLWJ1
dHRvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDEzICs4LDEzIEBAIHdpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKIAogZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhlIDxjb2RlPlNraXBGb3J3
YXJkQnV0dG9uPC9jb2RlPiBjbGFzcy4iKTsKIAotY29uc3Qgc2tpcEZvcndhcmRCdXR0b24gPSBu
ZXcgU2tpcEZvcndhcmRCdXR0b24oeyBsYXlvdXRUcmFpdHM6IExheW91dFRyYWl0cy5tYWNPUyB9
KTsKK2NvbnN0IHNraXBGb3J3YXJkQnV0dG9uID0gbmV3IFNraXBGb3J3YXJkQnV0dG9uKHsgbGF5
b3V0VHJhaXRzOiBuZXcgTWFjT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5l
KSB9KTsKIAogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJza2lwRm9yd2FyZEJ1dHRvbi5lbGVtZW50
LmxvY2FsTmFtZSIsICJidXR0b24iKTsKIHNob3VsZEJlVHJ1ZSgnc2tpcEZvcndhcmRCdXR0b24u
ZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoInNraXAtZm9yd2FyZCIpJyk7CiBzaG91bGRCZSgi
c2tpcEZvcndhcmRCdXR0b24uaWNvbk5hbWUiLCAiSWNvbnMuU2tpcEZvcndhcmQiKTsKIAotY29u
c3QgaU9TU2tpcEZvcndhcmRCdXR0b24gPSBuZXcgU2tpcEZvcndhcmRCdXR0b24oeyBsYXlvdXRU
cmFpdHM6IExheW91dFRyYWl0cy5pT1MgfSk7Citjb25zdCBpT1NTa2lwRm9yd2FyZEJ1dHRvbiA9
IG5ldyBTa2lwRm9yd2FyZEJ1dHRvbih7IGxheW91dFRyYWl0czogbmV3IElPU0xheW91dFRyYWl0
cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpIH0pOwogCiBzaG91bGRCZWNvbWVFcXVhbCgnc2tp
cEZvcndhcmRCdXR0b24uaW1hZ2UuZWxlbWVudC5zdHlsZS53ZWJraXRNYXNrSW1hZ2UuaW5jbHVk
ZXMoIm1hY09TL1NraXBGb3J3YXJkMTUuc3ZnIiknLCAidHJ1ZSIsICgpID0+IHsKICAgICBzaG91
bGRCZWNvbWVFcXVhbCgnaU9TU2tpcEZvcndhcmRCdXR0b24uaW1hZ2UuZWxlbWVudC5zdHlsZS53
ZWJraXRNYXNrSW1hZ2UuaW5jbHVkZXMoImlPUy9Ta2lwRm9yd2FyZDE1LnN2ZyIpJywgInRydWUi
LCBmaW5pc2hKU1Rlc3QpOwpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RpbWUtY29udHJvbC90aW1lLWNvbnRyb2wtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90aW1lLWNvbnRyb2wv
dGltZS1jb250cm9sLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RpbWUtY29udHJvbC90aW1lLWNvbnRyb2wt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02LDkgKzYsOSBAQCBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiBQQVNTIHRpbWVDb250cm9sLmVsZW1lbnQubG9j
YWxOYW1lIGlzICJkaXYiCiBQQVNTIHRpbWVDb250cm9sLmVsZW1lbnQuY2xhc3NOYW1lIGlzICJ0
aW1lLWNvbnRyb2wiCiAKLVBBU1MgdGltZUNvbnRyb2wuZWxhcHNlZFRpbWVMYWJlbCBpbnN0YW5j
ZW9mIFRpbWVMYWJlbCBpcyB0cnVlCi1QQVNTIHRpbWVDb250cm9sLnNjcnViYmVyIGluc3RhbmNl
b2YgU2xpZGVyIGlzIHRydWUKLVBBU1MgdGltZUNvbnRyb2wucmVtYWluaW5nVGltZUxhYmVsIGlu
c3RhbmNlb2YgVGltZUxhYmVsIGlzIHRydWUKK1BBU1MgdGltZUNvbnRyb2wuZWxhcHNlZFRpbWVM
YWJlbCBpcyBhbiBpbnN0YW5jZSBvZiBUaW1lTGFiZWwKK1BBU1MgdGltZUNvbnRyb2wuc2NydWJi
ZXIgaXMgYW4gaW5zdGFuY2Ugb2YgU2xpZGVyCitQQVNTIHRpbWVDb250cm9sLnJlbWFpbmluZ1Rp
bWVMYWJlbCBpcyBhbiBpbnN0YW5jZSBvZiBUaW1lTGFiZWwKIAogdGltZUNvbnRyb2wud2lkdGgg
PSA1MDA7CiBQQVNTIHRpbWVDb250cm9sLmNoaWxkcmVuLmxlbmd0aCBpcyAzCkluZGV4OiBMYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdGltZS1jb250cm9sL3RpbWUtY29u
dHJvbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy90aW1lLWNvbnRyb2wvdGltZS1jb250cm9sLmh0bWwJKHJldmlzaW9uIDI3OTMwNSkK
KysrIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90aW1lLWNvbnRyb2wv
dGltZS1jb250cm9sLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUsMTUgKzUsMTUgQEAKIAogZGVz
Y3JpcHRpb24oIlRlc3RpbmcgdGhlIDxjb2RlPlRpbWVDb250cm9sPC9jb2RlPiBjbGFzcy4iKTsK
IAotY29uc3QgdGltZUNvbnRyb2wgPSBuZXcgVGltZUNvbnRyb2w7Citjb25zdCB0aW1lQ29udHJv
bCA9IG5ldyBUaW1lQ29udHJvbCh7IGxheW91dFRyYWl0czogbmV3IElPU0xheW91dFRyYWl0cyhM
YXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpIH0pOwogCiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRp
bWVDb250cm9sLmVsZW1lbnQubG9jYWxOYW1lIiwgImRpdiIpOwogc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJ0aW1lQ29udHJvbC5lbGVtZW50LmNsYXNzTmFtZSIsICJ0aW1lLWNvbnRyb2wiKTsKIAog
ZGVidWcoIiIpOwotc2hvdWxkQmVUcnVlKCJ0aW1lQ29udHJvbC5lbGFwc2VkVGltZUxhYmVsIGlu
c3RhbmNlb2YgVGltZUxhYmVsIik7Ci1zaG91bGRCZVRydWUoInRpbWVDb250cm9sLnNjcnViYmVy
IGluc3RhbmNlb2YgU2xpZGVyIik7Ci1zaG91bGRCZVRydWUoInRpbWVDb250cm9sLnJlbWFpbmlu
Z1RpbWVMYWJlbCBpbnN0YW5jZW9mIFRpbWVMYWJlbCIpOworc2hvdWxkQmVUeXBlKCJ0aW1lQ29u
dHJvbC5lbGFwc2VkVGltZUxhYmVsIiwgIlRpbWVMYWJlbCIpOworc2hvdWxkQmVUeXBlKCJ0aW1l
Q29udHJvbC5zY3J1YmJlciIsICJTbGlkZXIiKTsKK3Nob3VsZEJlVHlwZSgidGltZUNvbnRyb2wu
cmVtYWluaW5nVGltZUxhYmVsIiwgIlRpbWVMYWJlbCIpOwogCiBkZWJ1ZygiIik7CiBkZWJ1Zygi
dGltZUNvbnRyb2wud2lkdGggPSA1MDA7Iik7CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLWJ1dHRvbi90cmFja3MtYnV0dG9uLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1i
dXR0b24vdHJhY2tzLWJ1dHRvbi5odG1sCShyZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdHJhY2tzLWJ1dHRvbi90cmFja3MtYnV0dG9u
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsMTMgKzgsMTMgQEAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOwogCiBkZXNjcmlwdGlvbigiVGVzdGluZyB0aGUgPGNvZGU+VHJhY2tzQnV0dG9u
PC9jb2RlPiBjbGFzcy4iKTsKIAotY29uc3QgdHJhY2tzQnV0dG9uID0gbmV3IFRyYWNrc0J1dHRv
bih7IGxheW91dFRyYWl0czogTGF5b3V0VHJhaXRzLm1hY09TIH0pOworY29uc3QgdHJhY2tzQnV0
dG9uID0gbmV3IFRyYWNrc0J1dHRvbih7IGxheW91dFRyYWl0czogbmV3IE1hY09TTGF5b3V0VHJh
aXRzKExheW91dFRyYWl0cy5Nb2RlLklubGluZSkgfSk7CiAKIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygidHJhY2tzQnV0dG9uLmVsZW1lbnQubG9jYWxOYW1lIiwgImJ1dHRvbiIpOwogc2hvdWxkQmVU
cnVlKCd0cmFja3NCdXR0b24uZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoInRyYWNrcyIpJyk7
CiBzaG91bGRCZSgidHJhY2tzQnV0dG9uLmljb25OYW1lIiwgIkljb25zLlRyYWNrcyIpOwogCi1j
b25zdCBmdWxsc2NyZWVuVHJhY2tzQnV0dG9uID0gbmV3IFRyYWNrc0J1dHRvbih7IGxheW91dFRy
YWl0czogTGF5b3V0VHJhaXRzLm1hY09TIHwgTGF5b3V0VHJhaXRzLkZ1bGxzY3JlZW4gfSk7Citj
b25zdCBmdWxsc2NyZWVuVHJhY2tzQnV0dG9uID0gbmV3IFRyYWNrc0J1dHRvbih7IGxheW91dFRy
YWl0czogbmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLkZ1bGxzY3JlZW4p
IH0pOwogCiBzaG91bGRCZWNvbWVFcXVhbCgndHJhY2tzQnV0dG9uLmltYWdlLmVsZW1lbnQuc3R5
bGUud2Via2l0TWFza0ltYWdlLmluY2x1ZGVzKCJtYWNPUy9NZWRpYVNlbGVjdG9yLnN2ZyIpJywg
InRydWUiLCAoKSA9PiB7CiAgICAgc2hvdWxkQmVjb21lRXF1YWwoJ2Z1bGxzY3JlZW5UcmFja3NC
dXR0b24uaW1hZ2UuZWxlbWVudC5zdHlsZS53ZWJraXRNYXNrSW1hZ2UuaW5jbHVkZXMoIm1hY09T
L01lZGlhU2VsZWN0b3ItZnVsbHNjcmVlbi5zdmciKScsICJ0cnVlIiwgZmluaXNoSlNUZXN0KTsK
SW5kZXg6IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy93YXRjaG9zLW1l
ZGlhLWNvbnRyb2xzL3dhdGNob3MtbWVkaWEtY29udHJvbHMtY29uc3RydWN0b3ItZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy93YXRjaG9zLW1lZGlhLWNvbnRyb2xzL3dhdGNob3MtbWVkaWEtY29udHJvbHMtY29uc3RydWN0
b3ItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvd2F0Y2hvcy1tZWRpYS1jb250cm9scy93YXRjaG9zLW1lZGlh
LWNvbnRyb2xzLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNSw3
ICs1LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogCiBQQVNT
IG1lZGlhQ29udHJvbHMuZWxlbWVudC5sb2NhbE5hbWUgaXMgImRpdiIKIFBBU1MgbWVkaWFDb250
cm9scy5lbGVtZW50LmNsYXNzTmFtZSBpcyAid2F0Y2hvcyBtZWRpYS1jb250cm9scyIKLVBBU1Mg
bWVkaWFDb250cm9scy5sYXlvdXRUcmFpdHMgaXMgTGF5b3V0VHJhaXRzLndhdGNoT1MKK1BBU1Mg
bWVkaWFDb250cm9scy5sYXlvdXRUcmFpdHMgaXMgYW4gaW5zdGFuY2Ugb2YgV2F0Y2hPU0xheW91
dFRyYWl0cwogUEFTUyBtZWRpYUNvbnRyb2xzLnN0YXRlIGlzIFdhdGNoT1NNZWRpYUNvbnRyb2xz
LlN0YXRlLlBhdXNlZAogCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCkluZGV4OiBM
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvd2F0Y2hvcy1tZWRpYS1jb250
cm9scy93YXRjaG9zLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3dhdGNob3MtbWVkaWEt
Y29udHJvbHMvd2F0Y2hvcy1tZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci5odG1sCShyZXZpc2lv
biAyNzkzMDUpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvd2F0
Y2hvcy1tZWRpYS1jb250cm9scy93YXRjaG9zLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDcgQEAgY29uc3QgbWVkaWFDb250cm9scyA9
IG5ldyBXYXRjaE9TTWVkaWFDbwogCiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1lZGlhQ29udHJv
bHMuZWxlbWVudC5sb2NhbE5hbWUiLCAiZGl2Iik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1l
ZGlhQ29udHJvbHMuZWxlbWVudC5jbGFzc05hbWUiLCAid2F0Y2hvcyBtZWRpYS1jb250cm9scyIp
Owotc2hvdWxkQmUoIm1lZGlhQ29udHJvbHMubGF5b3V0VHJhaXRzIiwgIkxheW91dFRyYWl0cy53
YXRjaE9TIik7CitzaG91bGRCZVR5cGUoIm1lZGlhQ29udHJvbHMubGF5b3V0VHJhaXRzIiwgIldh
dGNoT1NMYXlvdXRUcmFpdHMiKTsKIHNob3VsZEJlKCJtZWRpYUNvbnRyb2xzLnN0YXRlIiwgIldh
dGNoT1NNZWRpYUNvbnRyb2xzLlN0YXRlLlBhdXNlZCIpOwogZGVidWcoIiIpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432337</attachid>
            <date>2021-06-26 14:01:00 -0700</date>
            <delta_ts>2021-06-26 18:08:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227423-20210626140059.patch</filename>
            <type>text/plain</type>
            <size>111569</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3OTMwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBACisyMDIxLTA2LTI2ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xz
XSBNb2Rlcm4gbWVkaWEgY29udHJvbHMgc2hvdWxkIG5vdCBuZWVkIHRvIGtub3cgYWJvdXQgc3Bl
Y2lmaWMgcGxhdGZvcm1zIGluIHNoYXJlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc0MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSYXRoZXIgdGhhbiByZXF1aXJpbmcgdGhlIHNoYXJlZCBt
ZWRpYSBjb250cm9sIGNsYXNzZXMgdG8ga25vdyBzcGVjaWZpY3MgYWJvdXQKKyAgICAgICAgdGhl
IHZhcmlvdXMgcGxhdGZvcm1zIHZpYSB0aGUgTGF5b3V0VHJhaXRzIGZsYWdzLCB3ZSBub3cgYWJz
dHJhY3QgdGhvc2UgZGVjaXNpb25zCisgICAgICAgIHZpYSBhIG5ldyBwb2x5bW9ycGhpYyBMYXlv
dXRUcmFpdHMgY2xhc3MsIHdoaWNoIGVhY2ggcGxhdGZvcm0gc3ViY2xhc3NlcyBhbmQKKyAgICAg
ICAgaW1wbGVtZW50cy4KKworICAgICAgICBUaGlzIHdpbGwgZ2l2ZXMgYmV0dGVyIHNlcGFyYXRp
b24gYW5kIHdpbGwgYWxsb3cgZWFzaWVyIGV4cGVyaW1lbnRhdGlvbiB3aXRoIG5ldworICAgICAg
ICBjb250cm9sIHBhdHRlcm5zLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFBsYXRm
b3JtTWFjLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9qcy1maWxlczoKKyAg
ICAgICAgQWRkcyBuZXcgZmlsZXMgZm9yIGxheW91dCB0cmFpdHMgYW5kIGl0cyBzdWJjbGFzc2Vz
LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNIb3N0OjpsYXlvdXRUcmFpdHNDbGFz
c05hbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OnBsYXRm
b3JtIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVk
aWFDb250cm9sc0hvc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFD
b250cm9sc0hvc3QuaWRsOgorICAgICAgICBSZXBsYWNlIHBsYXRmb3JtIGFjY2Vzc29yIHdpdGgg
YSBuZXcgbGF5b3V0VHJhaXRzQ2xhc3NOYW1lLCB3aGljaCBhbGxvd3MKKyAgICAgICAgdGhlIHBs
YXRmb3JtIHRvIHNwY2VjaWZ5IHdoaWNoIG9mIHRoZSB0cmFpdCBzdWJjbGFzc2VzIHRvIHVzZS4K
KworICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2xheW91
dC10cmFpdHMuanM6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL2NvbnRyb2xzL2lvcy1sYXlvdXQtdHJhaXRzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tYWNvcy1sYXlvdXQtdHJhaXRzLmpz
OiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9s
cy93YXRjaG9zLWxheW91dC10cmFpdHMuanM6IEFkZGVkLgorICAgICAgICBBZGQgbmV3IGxheW91
dCB0cmFpdCBmaWxlcy4KKworICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L2NvbnRyb2xzL2Z1bGxzY3JlZW4tYnV0dG9uLmpzOgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2ljb24tc2VydmljZS5qczoKKyAgICAgICAgKiBNb2R1
bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9pb3MtaW5saW5lLW1lZGlhLWNvbnRy
b2xzLmpzOgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xz
L2xheW91dC1pdGVtLmpzOgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L2NvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMuanM6CisgICAgICAgICog
TW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlh
LWNvbnRyb2xzLmpzOgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Nv
bnRyb2xzL21lZGlhLWNvbnRyb2xzLmpzOgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL2NvbnRyb2xzL3BsYXktcGF1c2UtYnV0dG9uLmpzOgorICAgICAgICAqIE1vZHVs
ZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3RpbWUtY29udHJvbC5qczoKKyAgICAg
ICAgKiBNb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy93YXRjaG9zLW1lZGlh
LWNvbnRyb2xzLmpzOgorICAgICAgICAqIE1vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21l
ZGlhL21lZGlhLWNvbnRyb2xsZXIuanM6CisgICAgICAgICogTW9kdWxlcy9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvbWVkaWEvdHJhY2tzLXN1cHBvcnQuanM6CisgICAgICAgIFJlcGxhY2UgZXhwbGlj
aXQgY2hlY2tzIGZvciBwbGF0Zm9ybSB3aXRoIHF1ZXJpZXMgdG8gdGhlIGxheW91dCB0cmFpdHMg
aW50ZXJmYWNlLgorCiAyMDIxLTA2LTI1ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTEZDXVtURkNdIFJlbW92ZSByZWR1bmRhbnQgc3RydWN0IFJlc29sdmVkSXRl
bQpJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CShyZXZpc2lvbiAyNzkzMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0yOTQsMTIgKzI5NCwxNSBAQCAkKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250CiAkKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9pbmxpbmUtbWVkaWEtY29udHJvbHMu
anMKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xz
L2ludmFsaWQtcGxhY2FyZC5qcwogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvY29udHJvbHMvaW9zLWlubGluZS1tZWRpYS1jb250cm9scy5qcworJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvaW9zLWxheW91dC10
cmFpdHMuanMKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Nv
bnRyb2xzL2xheW91dC1pdGVtLmpzCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21vZGVybi1tZWRp
YS1jb250cm9scy9jb250cm9scy9sYXlvdXQtbm9kZS5qcworJChQUk9KRUNUX0RJUikvTW9kdWxl
cy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbGF5b3V0LXRyYWl0cy5qcwogJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVs
bHNjcmVlbi1tZWRpYS1jb250cm9scy5jc3MKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMu
anMKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xz
L21hY29zLWlubGluZS1tZWRpYS1jb250cm9scy5jc3MKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9s
cy5qcworJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJv
bHMvbWFjb3MtbGF5b3V0LXRyYWl0cy5qcwogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvY29udHJvbHMvbWVkaWEtY29udHJvbHMuY3NzCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tZWRpYS1jb250cm9scy5q
cwogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMv
bWVkaWEtZG9jdW1lbnQuY3NzCkBAIC0zMjYsNiArMzI5LDcgQEAgJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9tb2Rlcm4tbWVkaWEtY29udAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvY29udHJvbHMvdHJhY2tzLWJ1dHRvbi5qcwogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvd2F0Y2hvcy1hY3Rpdml0eS1pbmRp
Y2F0b3IuY3NzCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9j
b250cm9scy93YXRjaG9zLWFjdGl2aXR5LWluZGljYXRvci5qcworJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvd2F0Y2hvcy1sYXlvdXQtdHJhaXRz
LmpzCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9s
cy93YXRjaG9zLW1lZGlhLWNvbnRyb2xzLmNzcwogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvd2F0Y2hvcy1tZWRpYS1jb250cm9scy5qcwogJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvZ2VzdHVyZS1yZWNvZ25p
emVycy9nZXN0dXJlLXJlY29nbml6ZXIuanMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQkocmV2aXNpb24gMjc5MzA1KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTU4OSw2ICsxNTg5LDcgQEAgTU9ERVJOX01FRElBX0NP
TlRST0xTX1NDUklQVFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21vZGVybi1tZWRpYS1j
b250cm9scy9nZXN0dXJlLXJlY29nbml6ZXJzL3RhcC5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9nZXN0dXJlLXJlY29nbml6ZXJzL3BpbmNoLmpzIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3Nj
aGVkdWxlci5qcyBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9s
cy9jb250cm9scy9sYXlvdXQtdHJhaXRzLmpzIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2xheW91dC1ub2RlLmpzIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2xheW91dC1pdGVtLmpz
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xz
L2ljb24tc2VydmljZS5qcyBcCkBAIC0xNjE3LDE0ICsxNjE4LDE3IEBAIE1PREVSTl9NRURJQV9D
T05UUk9MU19TQ1JJUFRTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvY29udHJvbHMvYmFja2dyb3VuZC1jbGljay1kZWxlZ2F0ZS1ub3RpZmllci5qcyBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9p
bmxpbmUtbWVkaWEtY29udHJvbHMuanMgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvY29udHJvbHMvaW9zLWlubGluZS1tZWRpYS1jb250cm9scy5qcyBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9pb3Mt
bGF5b3V0LXRyYWl0cy5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21vZGVybi1tZWRpYS1j
b250cm9scy9jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMuanMgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVs
bHNjcmVlbi1tZWRpYS1jb250cm9scy5qcyBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21vZGVy
bi1tZWRpYS1jb250cm9scy9jb250cm9scy9tYWNvcy1sYXlvdXQtdHJhaXRzLmpzIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3BsYWNhcmQu
anMgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJv
bHMvYWlycGxheS1wbGFjYXJkLmpzIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2ludmFsaWQtcGxhY2FyZC5qcyBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9waXAtcGxhY2FyZC5qcyBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy93
YXRjaG9zLWFjdGl2aXR5LWluZGljYXRvci5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21v
ZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy93YXRjaG9zLW1lZGlhLWNvbnRyb2xzLmpzIFwK
KyAgICAkKFdlYkNvcmUpL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3dh
dGNob3MtbGF5b3V0LXRyYWl0cy5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21vZGVybi1t
ZWRpYS1jb250cm9scy9tZWRpYS9tZWRpYS1jb250cm9sbGVyLXN1cHBvcnQuanMgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEvYWlycGxheS1zdXBw
b3J0LmpzIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21l
ZGlhL2F1ZGlvLXN1cHBvcnQuanMgXApJbmRleDogU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMu
Y21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UJKHJl
dmlzaW9uIDI3OTMwNSkKKysrIFNvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCSh3b3Jr
aW5nIGNvcHkpCkBAIC04MjcsNiArODI3LDcgQEAgc2V0KE1PREVSTl9NRURJQV9DT05UUk9MU19T
Q1JJUFRTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L2dlc3R1cmUtcmVjb2duaXplcnMvdGFwLmpzIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVz
L21vZGVybi1tZWRpYS1jb250cm9scy9nZXN0dXJlLXJlY29nbml6ZXJzL3BpbmNoLmpzIgogICAg
ICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9z
Y2hlZHVsZXIuanMiCisgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL2NvbnRyb2xzL2xheW91dC10cmFpdHMuanMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01v
ZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2xheW91dC1ub2RlLmpzIgogICAg
ICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9s
YXlvdXQtaXRlbS5qcyIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvY29udHJvbHMvaWNvbi1zZXJ2aWNlLmpzIgpAQCAtODU1LDE0ICs4NTYsMTcgQEAg
c2V0KE1PREVSTl9NRURJQV9DT05UUk9MU19TQ1JJUFRTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01v
ZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2JhY2tncm91bmQtY2xpY2stZGVs
ZWdhdGUtbm90aWZpZXIuanMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2lubGluZS1tZWRpYS1jb250cm9scy5qcyIKICAgICAiJHtX
RUJDT1JFX0RJUn0vTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvaW9zLWlu
bGluZS1tZWRpYS1jb250cm9scy5qcyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvaW9zLWxheW91dC10cmFpdHMuanMiCiAgICAgIiR7
V0VCQ09SRV9ESVJ9L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21hY29z
LWlubGluZS1tZWRpYS1jb250cm9scy5qcyIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250
cm9scy5qcyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvY29udHJvbHMvbWFjb3MtbGF5b3V0LXRyYWl0cy5qcyIKICAgICAiJHtXRUJDT1JFX0RJUn0v
TW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvcGxhY2FyZC5qcyIKICAgICAi
JHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvYWly
cGxheS1wbGFjYXJkLmpzIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21vZGVybi1tZWRp
YS1jb250cm9scy9jb250cm9scy9pbnZhbGlkLXBsYWNhcmQuanMiCiAgICAgIiR7V0VCQ09SRV9E
SVJ9L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3BpcC1wbGFjYXJkLmpz
IgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250
cm9scy93YXRjaG9zLWFjdGl2aXR5LWluZGljYXRvci5qcyIKICAgICAiJHtXRUJDT1JFX0RJUn0v
TW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvd2F0Y2hvcy1tZWRpYS1jb250
cm9scy5qcyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvY29udHJvbHMvd2F0Y2hvcy1sYXlvdXQtdHJhaXRzLmpzIgogICAgICIke1dFQkNPUkVfRElS
fS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS9tZWRpYS1jb250cm9sbGVyLXN1
cHBvcnQuanMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL21lZGlhL2FpcnBsYXktc3VwcG9ydC5qcyIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxl
cy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEvYXVkaW8tc3VwcG9ydC5qcyIKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlh
Q29udHJvbHNIb3N0LmNwcAkocmV2aXNpb24gMjc5MzA1KQorKysgU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTExLDE2ICsxMTEsMTQgQEAgTWVkaWFDb250cm9sc0hvc3Q6On5NZWRpYUNvbnRyb2xzSG9z
dCgpCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVOVVMpCiB9CiAK
LVN0cmluZyBNZWRpYUNvbnRyb2xzSG9zdDo6cGxhdGZvcm0oKSBjb25zdAorU3RyaW5nIE1lZGlh
Q29udHJvbHNIb3N0OjpsYXlvdXRUcmFpdHNDbGFzc05hbWUoKSBjb25zdAogewotI2lmIFBMQVRG
T1JNKE1BQykKLSAgICByZXR1cm4gIm1hY29zIjsKLSNlbGlmIFBMQVRGT1JNKE1BQ0NBVEFMWVNU
KQotICAgIHJldHVybiAibWFjY2F0YWx5c3QiX3M7CisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFU
Rk9STShNQUNDQVRBTFlTVCkKKyAgICByZXR1cm4gIk1hY09TTGF5b3V0VHJhaXRzIjsKICNlbGlm
IFBMQVRGT1JNKElPUykKLSAgICByZXR1cm4gImlvcyJfczsKKyAgICByZXR1cm4gIklPU0xheW91
dFRyYWl0cyI7CiAjZWxpZiBQTEFURk9STShXQVRDSE9TKQotICAgIHJldHVybiAid2F0Y2hvcyJf
czsKKyAgICByZXR1cm4gIldhdGNoT1NMYXlvdXRUcmFpdHMiOwogI2Vsc2UKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gbnVsbFN0cmluZygpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0LmgJKHJldmlzaW9uIDI3OTMwNSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFj
b250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyYgYXV0b21hdGljS2V5d29y
ZCgpOwogICAgIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nJiBmb3JjZWRPbmx5S2V5d29yZCgpOwog
Ci0gICAgU3RyaW5nIHBsYXRmb3JtKCkgY29uc3Q7CisgICAgU3RyaW5nIGxheW91dFRyYWl0c0Ns
YXNzTmFtZSgpIGNvbnN0OwogCiAgICAgVmVjdG9yPFJlZlB0cjxUZXh0VHJhY2s+PiBzb3J0ZWRU
cmFja0xpc3RGb3JNZW51KFRleHRUcmFja0xpc3QmKTsKICAgICBWZWN0b3I8UmVmUHRyPEF1ZGlv
VHJhY2s+PiBzb3J0ZWRUcmFja0xpc3RGb3JNZW51KEF1ZGlvVHJhY2tMaXN0Jik7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRp
YUNvbnRyb2xzSG9zdC5pZGwJKHJldmlzaW9uIDI3OTMwNSkKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTM0LDcgKzM0LDcgQEAgZW51bSBEZXZpY2VUeXBlIHsKICAgICBJbXBsZW1lbnRhdGlvbkxh
Y2tzVlRhYmxlLAogICAgIExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LAogXSBpbnRlcmZhY2UgTWVk
aWFDb250cm9sc0hvc3QgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcGxhdGZv
cm07CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsYXlvdXRUcmFpdHNDbGFzc05h
bWU7CiAKICAgICBzZXF1ZW5jZTxUZXh0VHJhY2s+IHNvcnRlZFRyYWNrTGlzdEZvck1lbnUoVGV4
dFRyYWNrTGlzdCB0cmFja0xpc3QpOwogICAgIHNlcXVlbmNlPEF1ZGlvVHJhY2s+IHNvcnRlZFRy
YWNrTGlzdEZvck1lbnUoQXVkaW9UcmFja0xpc3QgdHJhY2tMaXN0KTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2pzLWZpbGVzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2pzLWZpbGVz
CShyZXZpc2lvbiAyNzkzMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRp
YS1jb250cm9scy9qcy1maWxlcwkod29ya2luZyBjb3B5KQpAQCAtMyw2ICszLDcgQEAgZ2VzdHVy
ZS1yZWNvZ25pemVycy9nZXN0dXJlLXJlY29nbml6ZXIuagogZ2VzdHVyZS1yZWNvZ25pemVycy90
YXAuanMKIGdlc3R1cmUtcmVjb2duaXplcnMvcGluY2guanMKIGNvbnRyb2xzL3NjaGVkdWxlci5q
cworY29udHJvbHMvbGF5b3V0LXRyYWl0cy5qcwogY29udHJvbHMvbGF5b3V0LW5vZGUuanMKIGNv
bnRyb2xzL2xheW91dC1pdGVtLmpzCiBjb250cm9scy9pY29uLXNlcnZpY2UuanMKQEAgLTMxLDE0
ICszMiwxNyBAQCBjb250cm9scy9tZWRpYS1jb250cm9scy5qcwogY29udHJvbHMvYmFja2dyb3Vu
ZC1jbGljay1kZWxlZ2F0ZS1ub3RpZmllci5qcwogY29udHJvbHMvaW5saW5lLW1lZGlhLWNvbnRy
b2xzLmpzCiBjb250cm9scy9pb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzLmpzCitjb250cm9scy9p
b3MtbGF5b3V0LXRyYWl0cy5qcwogY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xz
LmpzCiBjb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLmpzCitjb250cm9s
cy9tYWNvcy1sYXlvdXQtdHJhaXRzLmpzCiBjb250cm9scy9wbGFjYXJkLmpzCiBjb250cm9scy9h
aXJwbGF5LXBsYWNhcmQuanMKIGNvbnRyb2xzL2ludmFsaWQtcGxhY2FyZC5qcwogY29udHJvbHMv
cGlwLXBsYWNhcmQuanMKIGNvbnRyb2xzL3dhdGNob3MtYWN0aXZpdHktaW5kaWNhdG9yLmpzCiBj
b250cm9scy93YXRjaG9zLW1lZGlhLWNvbnRyb2xzLmpzCitjb250cm9scy93YXRjaG9zLWxheW91
dC10cmFpdHMuanMKIG1lZGlhL21lZGlhLWNvbnRyb2xsZXItc3VwcG9ydC5qcwogbWVkaWEvYWly
cGxheS1zdXBwb3J0LmpzCiBtZWRpYS9hdWRpby1zdXBwb3J0LmpzCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9mdWxsc2NyZWVuLWJ1
dHRvbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRp
YS1jb250cm9scy9jb250cm9scy9mdWxsc2NyZWVuLWJ1dHRvbi5qcwkocmV2aXNpb24gMjc5MzA1
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJv
bHMvZnVsbHNjcmVlbi1idXR0b24uanMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIxIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNyArMzMsNyBAQCBjbGFz
cyBGdWxsc2NyZWVuQnV0dG9uIGV4dGVuZHMgQnV0dG9uCiAgICAgICAgICAgICBsYXlvdXREZWxl
Z2F0ZQogICAgICAgICB9KTsKIAotICAgICAgICB0aGlzLmljb25OYW1lID0gdGhpcy5sYXlvdXRU
cmFpdHMgJiBMYXlvdXRUcmFpdHMuRnVsbHNjcmVlbiA/IEljb25zLkV4aXRGdWxsc2NyZWVuIDog
SWNvbnMuRW50ZXJGdWxsc2NyZWVuOworICAgICAgICB0aGlzLmljb25OYW1lID0gdGhpcy5sYXlv
dXRUcmFpdHMuaXNGdWxsc2NyZWVuID8gSWNvbnMuRXhpdEZ1bGxzY3JlZW4gOiBJY29ucy5FbnRl
ckZ1bGxzY3JlZW47CiAgICAgfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9pY29uLXNlcnZpY2UuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMv
aWNvbi1zZXJ2aWNlLmpzCShyZXZpc2lvbiAyNzkzMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9pY29uLXNlcnZpY2UuanMJKHdvcmtp
bmcgY29weSkKQEAgLTczLDggKzczLDggQEAgY29uc3QgaWNvblNlcnZpY2UgPSBuZXcgY2xhc3Mg
SWNvblNlcnZpYwogCiAgICAgaW1hZ2VGb3JJY29uQW5kTGF5b3V0VHJhaXRzKGljb24sIGxheW91
dFRyYWl0cykKICAgICB7Ci0gICAgICAgIGNvbnN0IFtmaWxlTmFtZSwgcGxhdGZvcm1dID0gdGhp
cy5fZmlsZU5hbWVBbmRQbGF0Zm9ybUZvckljb25BbmRMYXlvdXRUcmFpdHMoaWNvbiwgbGF5b3V0
VHJhaXRzKTsKLSAgICAgICAgY29uc3QgcGF0aCA9IGAke3BsYXRmb3JtfS8ke2ZpbGVOYW1lfS4k
e2ljb24udHlwZX1gOworICAgICAgICBjb25zdCBbZmlsZU5hbWUsIHJlc291cmNlRGlyZWN0b3J5
XSA9IHRoaXMuX2ZpbGVOYW1lQW5kUmVzb3VyY2VEaXJlY3RvcnlGb3JJY29uQW5kTGF5b3V0VHJh
aXRzKGljb24sIGxheW91dFRyYWl0cyk7CisgICAgICAgIGNvbnN0IHBhdGggPSBgJHtyZXNvdXJj
ZURpcmVjdG9yeX0vJHtmaWxlTmFtZX0uJHtpY29uLnR5cGV9YDsKIAogICAgICAgICBsZXQgaW1h
Z2UgPSB0aGlzLmltYWdlc1twYXRoXTsKICAgICAgICAgaWYgKGltYWdlKQpAQCAtMTAxLDI3ICsx
MDEsMTkgQEAgY29uc3QgaWNvblNlcnZpY2UgPSBuZXcgY2xhc3MgSWNvblNlcnZpYwogCiAgICAg
Ly8gUHJpdmF0ZQogCi0gICAgX2ZpbGVOYW1lQW5kUGxhdGZvcm1Gb3JJY29uQW5kTGF5b3V0VHJh
aXRzKGljb24sIGxheW91dFRyYWl0cykKKyAgICBfZmlsZU5hbWVBbmRSZXNvdXJjZURpcmVjdG9y
eUZvckljb25BbmRMYXlvdXRUcmFpdHMoaWNvbiwgbGF5b3V0VHJhaXRzKQogICAgIHsKLSAgICAg
ICAgbGV0IHBsYXRmb3JtOwotICAgICAgICBpZiAobGF5b3V0VHJhaXRzICYgTGF5b3V0VHJhaXRz
Lm1hY09TKQotICAgICAgICAgICAgcGxhdGZvcm0gPSAibWFjT1MiOwotICAgICAgICBlbHNlIGlm
IChsYXlvdXRUcmFpdHMgJiBMYXlvdXRUcmFpdHMuaU9TKQotICAgICAgICAgICAgcGxhdGZvcm0g
PSAiaU9TIjsKLSAgICAgICAgZWxzZSBpZiAobGF5b3V0VHJhaXRzICYgTGF5b3V0VHJhaXRzLndh
dGNoT1MpCi0gICAgICAgICAgICBwbGF0Zm9ybSA9ICJ3YXRjaE9TIjsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgdGhyb3cgIkNvdWxkIG5vdCBpZGVudGlmeSBpY29uJ3MgcGxhdGZvcm0gZnJv
bSBsYXlvdXQgdHJhaXRzLiI7CisgICAgICAgIGxldCByZXNvdXJjZURpcmVjdG9yeSA9IGxheW91
dFRyYWl0cy5yZXNvdXJjZURpcmVjdG9yeSgpOwogCiAgICAgICAgIGxldCBpY29uTmFtZSA9IGlj
b24ubmFtZTsKLSAgICAgICAgaWYgKGxheW91dFRyYWl0cyAmIExheW91dFRyYWl0cy5tYWNPUyAm
JiBsYXlvdXRUcmFpdHMgJiBMYXlvdXRUcmFpdHMuRnVsbHNjcmVlbiAmJiBJY29uc1dpdGhGdWxs
c2NyZWVuVmFyaWFudHMuaW5jbHVkZXMoaWNvbikpCisgICAgICAgIGlmIChsYXlvdXRUcmFpdHMu
c3VwcG9ydHNJY29uV2l0aEZ1bGxzY3JlZW5WYXJpYW50KCkgJiYgSWNvbnNXaXRoRnVsbHNjcmVl
blZhcmlhbnRzLmluY2x1ZGVzKGljb24pKQogICAgICAgICAgICAgaWNvbk5hbWUgKz0gIi1mdWxs
c2NyZWVuIjsKIAogICAgICAgICBsZXQgZmlsZU5hbWUgPSBpY29uTmFtZTsKICAgICAgICAgaWYg
KGljb24udHlwZSA9PT0gInBuZyIpCiAgICAgICAgICAgICBmaWxlTmFtZSA9IGAke2ljb25OYW1l
fUAke3dpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfXhgOwogCi0gICAgICAgIHJldHVybiBbZmlsZU5h
bWUsIHBsYXRmb3JtXTsKKyAgICAgICAgcmV0dXJuIFtmaWxlTmFtZSwgcmVzb3VyY2VEaXJlY3Rv
cnldOwogICAgIH0KIAogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2lvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29u
dHJvbHMvaW9zLWlubGluZS1tZWRpYS1jb250cm9scy5qcwkocmV2aXNpb24gMjc5MzA1KQorKysg
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvaW9z
LWlubGluZS1tZWRpYS1jb250cm9scy5qcwkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBA
QCBjbGFzcyBJT1NJbmxpbmVNZWRpYUNvbnRyb2xzIGV4dGVuZHMgSW5sCiAKICAgICBjb25zdHJ1
Y3RvcihvcHRpb25zID0ge30pCiAgICAgewotICAgICAgICBvcHRpb25zLmxheW91dFRyYWl0cyA9
IExheW91dFRyYWl0cy5pT1M7CisgICAgICAgIG9wdGlvbnMubGF5b3V0VHJhaXRzID0gbmV3IElP
U0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpOwogCiAgICAgICAgIHN1cGVy
KG9wdGlvbnMpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1j
b250cm9scy9jb250cm9scy9pb3MtbGF5b3V0LXRyYWl0cy5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9pb3MtbGF5
b3V0LXRyYWl0cy5qcwkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9pb3MtbGF5b3V0LXRyYWl0cy5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworY2xhc3MgSU9TTGF5b3V0VHJhaXRzIGV4dGVuZHMgTGF5b3V0VHJhaXRz
Cit7CisgICAgbWVkaWFDb250cm9sc0NsYXNzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBJT1NJ
bmxpbmVNZWRpYUNvbnRyb2xzOworICAgIH0KKworICAgIG92ZXJyaWRlblN1cHBvcnRpbmdPYmpl
Y3RDbGFzc2VzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHJl
c291cmNlRGlyZWN0b3J5KCkKKyAgICB7CisgICAgICAgIHJldHVybiAiaU9TIjsKKyAgICB9CisK
KyAgICBjb250cm9sc0Fsd2F5c0F2YWlsYWJsZSgpCisgICAgeworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCisgICAgY29udHJvbHNOZXZlckF2YWlsYWJsZSgpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5pc0Z1bGxzY3JlZW47CisgICAgfQorCisgICAgc3VwcG9ydHNJY29uV2l0
aEZ1bGxzY3JlZW5WYXJpYW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKKyAgICBrbm9iU3R5bGVGb3JTY3J1YmJlcigpCisgICAgeworICAgICAgICByZXR1cm4gU2xp
ZGVyLktub2JTdHlsZS5DaXJjbGU7CisgICAgfQorCisgICAgc3VwcG9ydHNEdXJhdGlvblRpbWVM
YWJlbCgpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcGxheVBh
dXNlQnV0dG9uU2NhbGVGYWN0b3IoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQor
CisgICAgY29udHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvcigpCisgICAgeworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcm9tb3RlU3ViTWVudXNXaGVuU2hvd2luZ01lZGlh
Q29udHJvbHNDb250ZXh0TWVudSgpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorCisgICAgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGBbSU9TTGF5b3V0VHJh
aXRzXWA7CisgICAgfQorfQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvY29udHJvbHMvbGF5b3V0LWl0ZW0uanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbGF5b3V0LWl0
ZW0uanMJKHJldmlzaW9uIDI3OTMwNSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2xheW91dC1pdGVtLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0yMywxNCArMjMsNiBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1jb25zdCBMYXlvdXRUcmFp
dHMgPSB7Ci0gICAgVW5rbm93biAgICAgICAgOiAwLAotICAgIG1hY09TICAgICAgICAgIDogMSA8
PCAwLAotICAgIGlPUyAgICAgICAgICAgIDogMSA8PCAxLAotICAgIHdhdGNoT1MgICAgICAgIDog
MSA8PCAyLAotICAgIEZ1bGxzY3JlZW4gICAgIDogMSA8PCAzLAotfTsKLQogY2xhc3MgTGF5b3V0
SXRlbSBleHRlbmRzIExheW91dE5vZGUKIHsKIApAQCAtNDUsNyArMzcsOCBAQCBjbGFzcyBMYXlv
dXRJdGVtIGV4dGVuZHMgTGF5b3V0Tm9kZQogCiAgICAgZ2V0IGxheW91dFRyYWl0cygpCiAgICAg
ewotICAgICAgICByZXR1cm4gKHRoaXMubGF5b3V0RGVsZWdhdGUgJiYgdGhpcy5sYXlvdXREZWxl
Z2F0ZS5sYXlvdXRUcmFpdHMpIHx8IExheW91dFRyYWl0cy5Vbmtub3duOworICAgICAgICBpZiAo
IXRoaXMubGF5b3V0RGVsZWdhdGU/LmxheW91dFRyYWl0cykKKyAgICAgICAgICAgIHRocm93ICJO
byBsYXlvdXQgdHJhaXRzIHNwZWNpZmllZCB2aWEgbGF5b3V0RGVsZWdhdGUgb3Igb3ZlcnJpZGVu
IGxheW91VHJhaXRzKCkgZ2V0dGVyIjsKKyAgICAgICAgcmV0dXJuIHRoaXMubGF5b3V0RGVsZWdh
dGUubGF5b3V0VHJhaXRzOwogICAgIH0KLQogfQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbGF5b3V0LXRyYWl0cy5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250
cm9scy9sYXlvdXQtdHJhaXRzLmpzCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL2xheW91dC10cmFpdHMuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK2NsYXNzIExheW91dFRyYWl0cworeworCisgICAgY29uc3RydWN0
b3IobW9kZSkKKyAgICB7CisgICAgICAgIHRoaXMubW9kZSA9IG1vZGUKKyAgICB9CisKKyAgICBn
ZXQgaXNGdWxsc2NyZWVuKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLm1vZGUgPT0gTGF5
b3V0VHJhaXRzLk1vZGUuRnVsbHNjcmVlbjsKKyAgICB9CisKKyAgICBtZWRpYUNvbnRyb2xzQ2xh
c3MoKQorICAgIHsKKyAgICAgICAgdGhyb3cgIkRlcml2ZWQgY2xhc3MgbXVzdCBpbXBsZW1lbnQg
dGhpcyBmdW5jdGlvbi4iOworICAgIH0KKworICAgIG92ZXJyaWRlblN1cHBvcnRpbmdPYmplY3RD
bGFzc2VzKCkKKyAgICB7CisgICAgICAgIHRocm93ICJEZXJpdmVkIGNsYXNzIG11c3QgaW1wbGVt
ZW50IHRoaXMgZnVuY3Rpb24uIjsKKyAgICB9CisKKyAgICByZXNvdXJjZURpcmVjdG9yeSgpCisg
ICAgeworICAgICAgICB0aHJvdyAiRGVyaXZlZCBjbGFzcyBtdXN0IGltcGxlbWVudCB0aGlzIGZ1
bmN0aW9uLiI7CisgICAgfQorCisgICAgY29udHJvbHNBbHdheXNBdmFpbGFibGUoKQorICAgIHsK
KyAgICAgICAgdGhyb3cgIkRlcml2ZWQgY2xhc3MgbXVzdCBpbXBsZW1lbnQgdGhpcyBmdW5jdGlv
bi4iOworICAgIH0KKworICAgIGNvbnRyb2xzTmV2ZXJBdmFpbGFibGUoKQorICAgIHsKKyAgICAg
ICAgdGhyb3cgIkRlcml2ZWQgY2xhc3MgbXVzdCBpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbi4iOwor
ICAgIH0KKworICAgIHN1cHBvcnRzSWNvbldpdGhGdWxsc2NyZWVuVmFyaWFudCgpCisgICAgewor
ICAgICAgICB0aHJvdyAiRGVyaXZlZCBjbGFzcyBtdXN0IGltcGxlbWVudCB0aGlzIGZ1bmN0aW9u
LiI7CisgICAgfQorCisgICAga25vYlN0eWxlRm9yU2NydWJiZXIoKQorICAgIHsKKyAgICAgICAg
dGhyb3cgIkRlcml2ZWQgY2xhc3MgbXVzdCBpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbi4iOworICAg
IH0KKworICAgIHN1cHBvcnRzRHVyYXRpb25UaW1lTGFiZWwoKQorICAgIHsKKyAgICAgICAgdGhy
b3cgIkRlcml2ZWQgY2xhc3MgbXVzdCBpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbi4iOworICAgIH0K
KyAgICAKKyAgICBwbGF5UGF1c2VCdXR0b25TY2FsZUZhY3RvcigpCisgICAgeworICAgICAgICB0
aHJvdyAiRGVyaXZlZCBjbGFzcyBtdXN0IGltcGxlbWVudCB0aGlzIGZ1bmN0aW9uLiI7CisgICAg
fQorICAgIAorICAgIGNvbnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3IoKQorICAgIHsKKyAg
ICAgICAgdGhyb3cgIkRlcml2ZWQgY2xhc3MgbXVzdCBpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbi4i
OworICAgIH0KKyAgICAKKyAgICBwcm9tb3RlU3ViTWVudXNXaGVuU2hvd2luZ01lZGlhQ29udHJv
bHNDb250ZXh0TWVudSgpCisgICAgeworICAgICAgICB0aHJvdyAiRGVyaXZlZCBjbGFzcyBtdXN0
IGltcGxlbWVudCB0aGlzIGZ1bmN0aW9uLiI7CisgICAgfQorfQorCitMYXlvdXRUcmFpdHMuTW9k
ZSA9IHsKKyAgICBJbmxpbmUgICAgIDogMCwKKyAgICBGdWxsc2NyZWVuIDogMQorfTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21h
Y29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVsbHNj
cmVlbi1tZWRpYS1jb250cm9scy5qcwkocmV2aXNpb24gMjc5MzA1KQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtZnVsbHNjcmVl
bi1tZWRpYS1jb250cm9scy5qcwkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCBjbGFz
cyBNYWNPU0Z1bGxzY3JlZW5NZWRpYUNvbnRyb2xzIGV4dGVuCiAKICAgICBjb25zdHJ1Y3Rvcihv
cHRpb25zID0ge30pCiAgICAgewotICAgICAgICBvcHRpb25zLmxheW91dFRyYWl0cyA9IExheW91
dFRyYWl0cy5tYWNPUyB8IExheW91dFRyYWl0cy5GdWxsc2NyZWVuOworICAgICAgICBvcHRpb25z
LmxheW91dFRyYWl0cyA9IG5ldyBNYWNPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5G
dWxsc2NyZWVuKTsKIAogICAgICAgICBzdXBlcihvcHRpb25zKTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtaW5saW5l
LW1lZGlhLWNvbnRyb2xzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9s
cy5qcwkocmV2aXNpb24gMjc5MzA1KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBAIGNsYXNzIE1hY09TSW5saW5lTWVkaWFDb250
cm9scyBleHRlbmRzIEkKIAogICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSB7fSkKICAgICB7Ci0g
ICAgICAgIG9wdGlvbnMubGF5b3V0VHJhaXRzID0gTGF5b3V0VHJhaXRzLm1hY09TOworICAgICAg
ICBvcHRpb25zLmxheW91dFRyYWl0cyA9IG5ldyBNYWNPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFp
dHMuTW9kZS5JbmxpbmUpOwogCiAgICAgICAgIHN1cGVyKG9wdGlvbnMpOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9tYWNvcy1s
YXlvdXQtdHJhaXRzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21hY29zLWxheW91dC10cmFpdHMuanMJKG5vbmV4
aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
Y29udHJvbHMvbWFjb3MtbGF5b3V0LXRyYWl0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworY2xh
c3MgTWFjT1NMYXlvdXRUcmFpdHMgZXh0ZW5kcyBMYXlvdXRUcmFpdHMKK3sKKyAgICBtZWRpYUNv
bnRyb2xzQ2xhc3MoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuaXNGdWxsc2NyZWVuKQorICAg
ICAgICAgICAgcmV0dXJuIE1hY09TRnVsbHNjcmVlbk1lZGlhQ29udHJvbHM7CisgICAgICAgIHJl
dHVybiBNYWNPU0lubGluZU1lZGlhQ29udHJvbHM7CisgICAgfQorCisgICAgb3ZlcnJpZGVuU3Vw
cG9ydGluZ09iamVjdENsYXNzZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAg
fQorCisgICAgcmVzb3VyY2VEaXJlY3RvcnkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJtYWNP
UyI7CisgICAgfQorCisgICAgY29udHJvbHNBbHdheXNBdmFpbGFibGUoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuaXNGdWxsc2NyZWVuOworICAgIH0KKworICAgIGNvbnRyb2xzTmV2ZXJB
dmFpbGFibGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHN1
cHBvcnRzSWNvbldpdGhGdWxsc2NyZWVuVmFyaWFudCgpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5pc0Z1bGxzY3JlZW47CisgICAgfQorCisgICAga25vYlN0eWxlRm9yU2NydWJiZXIoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIFNsaWRlci5Lbm9iU3R5bGUuQmFyOworICAgIH0KKworICAg
IHN1cHBvcnRzRHVyYXRpb25UaW1lTGFiZWwoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorCisgICAgcGxheVBhdXNlQnV0dG9uU2NhbGVGYWN0b3IoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuaXNGdWxsc2NyZWVuID8gMiA6IDE7CisgICAgfQorCisgICAgY29udHJv
bHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvcigpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgcHJvbW90ZVN1Yk1lbnVzV2hlblNob3dpbmdNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAg
IHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIGNvbnN0IG1vZGUgPSB0aGlzLmlzRnVsbHNjcmVl
biA/ICJGdWxsc2NyZWVuIiA6ICJJbmxpbmUiOworICAgICAgICByZXR1cm4gYFtNYWNPU0xheW91
dFRyYWl0cyAke21vZGV9XWA7CisgICAgfQorfQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMvbWVkaWEtY29udHJvbHMuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29u
dHJvbHMvbWVkaWEtY29udHJvbHMuanMJKHJldmlzaW9uIDI3OTMwNSkKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL21lZGlhLWNvbnRyb2xz
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiBjbGFzcyBNZWRpYUNvbnRyb2xz
IGV4dGVuZHMgTGF5b3V0Tm9kZQogewogCi0gICAgY29uc3RydWN0b3IoeyB3aWR0aCA9IDMwMCwg
aGVpZ2h0ID0gMTUwLCBsYXlvdXRUcmFpdHMgPSBMYXlvdXRUcmFpdHMuVW5rbm93biB9ID0ge30p
CisgICAgY29uc3RydWN0b3IoeyB3aWR0aCA9IDMwMCwgaGVpZ2h0ID0gMTUwLCBsYXlvdXRUcmFp
dHMgPSBudWxsIH0gPSB7fSkKICAgICB7CiAgICAgICAgIHN1cGVyKGA8ZGl2IGNsYXNzPSJtZWRp
YS1jb250cm9scyI+PC9kaXY+YCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3BsYXktcGF1c2UtYnV0dG9uLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRy
b2xzL3BsYXktcGF1c2UtYnV0dG9uLmpzCShyZXZpc2lvbiAyNzkzMDUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9wbGF5LXBhdXNlLWJ1
dHRvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMzQsOCArMzQsNyBAQCBjbGFzcyBQbGF5UGF1c2VC
dXR0b24gZXh0ZW5kcyBCdXR0b24KICAgICAgICAgICAgIGxheW91dERlbGVnYXRlCiAgICAgICAg
IH0pOwogCi0gICAgICAgIGlmICh0aGlzLmxheW91dFRyYWl0cyAmIExheW91dFRyYWl0cy5tYWNP
UyAmJiB0aGlzLmxheW91dFRyYWl0cyAmIExheW91dFRyYWl0cy5GdWxsc2NyZWVuKQotICAgICAg
ICAgICAgdGhpcy5zY2FsZUZhY3RvciA9IDI7CisgICAgICAgIHRoaXMuc2NhbGVGYWN0b3IgPSB0
aGlzLmxheW91dFRyYWl0cy5wbGF5UGF1c2VCdXR0b25TY2FsZUZhY3RvcigpOwogICAgIH0KIAog
ICAgIC8vIFB1YmxpYwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvY29udHJvbHMvdGltZS1jb250cm9sLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3RpbWUtY29udHJv
bC5qcwkocmV2aXNpb24gMjc5MzA1KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvY29udHJvbHMvdGltZS1jb250cm9sLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC00MCw4ICs0MCw4IEBAIGNsYXNzIFRpbWVDb250cm9sIGV4dGVuZHMgTGF5b3V0SXRlbQogICAg
ICAgICB9KTsKIAogICAgICAgICB0aGlzLmVsYXBzZWRUaW1lTGFiZWwgPSBuZXcgVGltZUxhYmVs
KFRpbWVMYWJlbC5UeXBlLkVsYXBzZWQpOwotICAgICAgICB0aGlzLnNjcnViYmVyID0gbmV3IFNs
aWRlcigic2NydWJiZXIiLCB0aGlzLmxheW91dFRyYWl0cyAmIExheW91dFRyYWl0cy5tYWNPUyA/
IFNsaWRlci5Lbm9iU3R5bGUuQmFyIDogU2xpZGVyLktub2JTdHlsZS5DaXJjbGUpOwotICAgICAg
ICBpZiAodGhpcy5sYXlvdXRUcmFpdHMgJiBMYXlvdXRUcmFpdHMubWFjT1MpCisgICAgICAgIHRo
aXMuc2NydWJiZXIgPSBuZXcgU2xpZGVyKCJzY3J1YmJlciIsIHRoaXMubGF5b3V0VHJhaXRzLmtu
b2JTdHlsZUZvclNjcnViYmVyKCkpOworICAgICAgICBpZiAodGhpcy5sYXlvdXRUcmFpdHMuc3Vw
cG9ydHNEdXJhdGlvblRpbWVMYWJlbCgpKQogICAgICAgICAgICAgdGhpcy5kdXJhdGlvblRpbWVM
YWJlbCA9IG5ldyBUaW1lTGFiZWwoVGltZUxhYmVsLlR5cGUuRHVyYXRpb24pOwogICAgICAgICB0
aGlzLnJlbWFpbmluZ1RpbWVMYWJlbCA9IG5ldyBUaW1lTGFiZWwoVGltZUxhYmVsLlR5cGUuUmVt
YWluaW5nKTsKIApAQCAtNTUsNyArNTUsNyBAQCBjbGFzcyBUaW1lQ29udHJvbCBleHRlbmRzIExh
eW91dEl0ZW0KICAgICAgICAgdGhpcy5fY3VycmVudFRpbWUgPSAwOwogICAgICAgICB0aGlzLl9s
b2FkaW5nID0gZmFsc2U7CiAKLSAgICAgICAgdGhpcy5fc2hvd0R1cmF0aW9uVGltZUxhYmVsID0g
dGhpcy5sYXlvdXRUcmFpdHMgJiBMYXlvdXRUcmFpdHMubWFjT1M7CisgICAgICAgIHRoaXMuX3No
b3dEdXJhdGlvblRpbWVMYWJlbCA9IHRoaXMubGF5b3V0VHJhaXRzLnN1cHBvcnRzRHVyYXRpb25U
aW1lTGFiZWwoKTsKICAgICAgICAgaWYgKHRoaXMuX3Nob3dEdXJhdGlvblRpbWVMYWJlbCkgewog
ICAgICAgICAgICAgdGhpcy5kdXJhdGlvblRpbWVMYWJlbC5lbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoImNsaWNrIiwgdGhpcyk7CiAgICAgICAgICAgICB0aGlzLnJlbWFpbmluZ1RpbWVMYWJlbC5l
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcyk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy93YXRjaG9zLWxheW91
dC10cmFpdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvY29udHJvbHMvd2F0Y2hvcy1sYXlvdXQtdHJhaXRzLmpzCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Nv
bnRyb2xzL3dhdGNob3MtbGF5b3V0LXRyYWl0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworY2xh
c3MgV2F0Y2hPU0xheW91dFRyYWl0cyBleHRlbmRzIExheW91dFRyYWl0cworeworICAgIG1lZGlh
Q29udHJvbHNDbGFzcygpCisgICAgeworICAgICAgICByZXR1cm4gV2F0Y2hPU01lZGlhQ29udHJv
bHM7CisgICAgfQorCisgICAgb3ZlcnJpZGVuU3VwcG9ydGluZ09iamVjdENsYXNzZXMoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIFtXYXRjaE9TTWVkaWFDb250cm9sc1N1cHBvcnRdOworICAgIH0K
KworICAgIHJlc291cmNlRGlyZWN0b3J5KCkKKyAgICB7CisgICAgICAgIHJldHVybiAid2F0Y2hP
UyI7CisgICAgfQorCisgICAgY29udHJvbHNBbHdheXNBdmFpbGFibGUoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgY29udHJvbHNOZXZlckF2YWlsYWJsZSgpCisg
ICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3VwcG9ydHNJY29uV2l0
aEZ1bGxzY3JlZW5WYXJpYW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKKyAgICBrbm9iU3R5bGVGb3JTY3J1YmJlcigpCisgICAgeworICAgICAgICByZXR1cm4gU2xp
ZGVyLktub2JTdHlsZS5DaXJjbGU7CisgICAgfQorCisgICAgc3VwcG9ydHNEdXJhdGlvblRpbWVM
YWJlbCgpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcGxheVBh
dXNlQnV0dG9uU2NhbGVGYWN0b3IoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQor
CisgICAgY29udHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvcigpCisgICAgeworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJvbW90ZVN1Yk1lbnVzV2hlblNob3dpbmdNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKworICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiBgW1dhdGNoT1NMYXlv
dXRUcmFpdHNdYDsKKyAgICB9Cit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVy
bi1tZWRpYS1jb250cm9scy9jb250cm9scy93YXRjaG9zLW1lZGlhLWNvbnRyb2xzLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2Nv
bnRyb2xzL3dhdGNob3MtbWVkaWEtY29udHJvbHMuanMJKHJldmlzaW9uIDI3OTMwNSkKKysrIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2NvbnRyb2xzL3dhdGNo
b3MtbWVkaWEtY29udHJvbHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAgY2xh
c3MgV2F0Y2hPU01lZGlhQ29udHJvbHMgZXh0ZW5kcyBMYXlvdQogICAgICAgICB0aGlzLl9zY2Fs
ZUZhY3RvciA9IDE7CiAgICAgICAgIHRoaXMuX3Nob3VsZENlbnRlckNvbnRyb2xzVmVydGljYWxs
eSA9IGZhbHNlOwogCi0gICAgICAgIHRoaXMubGF5b3V0VHJhaXRzID0gTGF5b3V0VHJhaXRzLndh
dGNoT1M7CisgICAgICAgIHRoaXMubGF5b3V0VHJhaXRzID0gbmV3IFdhdGNoT1NMYXlvdXRUcmFp
dHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKTsKIAogICAgICAgICB0aGlzLnBsYXlCdXR0b24g
PSBuZXcgQnV0dG9uKHsKICAgICAgICAgICAgIGNzc0NsYXNzTmFtZTogInBsYXkiLApJbmRleDog
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEvbWVkaWEt
Y29udHJvbGxlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVy
bi1tZWRpYS1jb250cm9scy9tZWRpYS9tZWRpYS1jb250cm9sbGVyLmpzCShyZXZpc2lvbiAyNzkz
MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRp
YS9tZWRpYS1jb250cm9sbGVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIGNs
YXNzIE1lZGlhQ29udHJvbGxlcgogICAgICAgICB0aGlzLl91c2VzTFRSVXNlckludGVyZmFjZUxh
eW91dERpcmVjdGlvbiA9IGZhbHNlOwogCiAgICAgICAgIGlmIChob3N0KSB7Ci0gICAgICAgICAg
ICBob3N0LmNvbnRyb2xzRGVwZW5kT25QYWdlU2NhbGVGYWN0b3IgPSB0aGlzLmxheW91dFRyYWl0
cyAmIExheW91dFRyYWl0cy5pT1M7CisgICAgICAgICAgICBob3N0LmNvbnRyb2xzRGVwZW5kT25Q
YWdlU2NhbGVGYWN0b3IgPSB0aGlzLmxheW91dFRyYWl0cy5jb250cm9sc0RlcGVuZE9uUGFnZVNj
YWxlRmFjdG9yKCk7CiAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5pbnNlcnRCZWZvcmUoaG9z
dC50ZXh0VHJhY2tDb250YWluZXIsIHRoaXMuY29udHJvbHMuZWxlbWVudCk7CiAgICAgICAgICAg
ICBpZiAoaG9zdC5pc0luTWVkaWFEb2N1bWVudCkKICAgICAgICAgICAgICAgICB0aGlzLm1lZGlh
RG9jdW1lbnRDb250cm9sbGVyID0gbmV3IE1lZGlhRG9jdW1lbnRDb250cm9sbGVyKHRoaXMpOwpA
QCAtOTYsMjcgKzk2LDE2IEBAIGNsYXNzIE1lZGlhQ29udHJvbGxlcgogCiAgICAgZ2V0IGxheW91
dFRyYWl0cygpCiAgICAgewotICAgICAgICBsZXQgdHJhaXRzID0gTGF5b3V0VHJhaXRzLlVua25v
d247Ci0KLSAgICAgICAgc3dpdGNoICh0aGlzLmhvc3Q/LnBsYXRmb3JtKSB7Ci0gICAgICAgIGNh
c2UgIm1hY29zIjoKLSAgICAgICAgY2FzZSAibWFjY2F0YWx5c3QiOgotICAgICAgICBkZWZhdWx0
OiAvLyBGb3Igd2hlbiBgdGhpcy5ob3N0YCBpcyBub3QgZGVmaW5lZC4KLSAgICAgICAgICAgIHRy
YWl0cyA9IExheW91dFRyYWl0cy5tYWNPUzsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAg
IGNhc2UgImlvcyI6Ci0gICAgICAgICAgICB0cmFpdHMgPSBMYXlvdXRUcmFpdHMuaU9TOwotICAg
ICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2FzZSAid2F0Y2hvcyI6Ci0gICAgICAgICAgICB0
cmFpdHMgPSBMYXlvdXRUcmFpdHMud2F0Y2hPUzsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBsZXQgbW9kZSA9IHRoaXMuaXNGdWxsc2NyZWVuID8gTGF5b3V0VHJhaXRzLk1vZGUuRnVsbHNj
cmVlbiA6IExheW91dFRyYWl0cy5Nb2RlLklubGluZTsKKyAgICAKKyAgICAgICAgaWYgKHRoaXMu
aG9zdCkgeworICAgICAgICAgICAgbGV0IExheW91dFRyYWl0c0NsYXNzID0gZXZhbCh0aGlzLmhv
c3QubGF5b3V0VHJhaXRzQ2xhc3NOYW1lKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTGF5b3V0
VHJhaXRzQ2xhc3MobW9kZSk7CiAgICAgICAgIH0KLQotICAgICAgICBpZiAodGhpcy5pc0Z1bGxz
Y3JlZW4pCi0gICAgICAgICAgICByZXR1cm4gdHJhaXRzIHwgTGF5b3V0VHJhaXRzLkZ1bGxzY3Jl
ZW47Ci0gICAgICAgIHJldHVybiB0cmFpdHM7CisgICAgICAgIAorICAgICAgICAvLyBEZWZhdWx0
IGZvciB3aGVuIGhvc3QgaXMgbm90IGRlZmluZWQuCisgICAgICAgIC8vIEZJWE1FOiBBbHdheXMg
cmVxdWlyZSBhIGhvc3QgYW5kIGFkZCBhIEpTIGltcGxlbWVudGVkIFRlc3RNZWRpYUNvbnRyb2xz
SG9zdCBmb3IgdW5pdCB0ZXN0cy4KKyAgICAgICAgcmV0dXJuIG5ldyBNYWNPU0xheW91dFRyYWl0
cyhtb2RlKTsKICAgICB9CiAKICAgICB0b2dnbGVQbGF5YmFjaygpCkBAIC0yMjAsOCArMjA5LDkg
QEAgY2xhc3MgTWVkaWFDb250cm9sbGVyCiAKICAgICBfc3VwcG9ydGluZ09iamVjdENsYXNzZXMo
KQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMubGF5b3V0VHJhaXRzICYgTGF5b3V0VHJhaXRzLndh
dGNoT1MpCi0gICAgICAgICAgICByZXR1cm4gW1dhdGNoT1NNZWRpYUNvbnRyb2xzU3VwcG9ydF07
CisgICAgICAgIGxldCBvdmVycmlkZW5TdXBwb3J0aW5nT2JqZWN0Q2xhc3NlcyA9IHRoaXMubGF5
b3V0VHJhaXRzLm92ZXJyaWRlblN1cHBvcnRpbmdPYmplY3RDbGFzc2VzKCk7CisgICAgICAgIGlm
IChvdmVycmlkZW5TdXBwb3J0aW5nT2JqZWN0Q2xhc3NlcykKKyAgICAgICAgICAgIHJldHVybiBv
dmVycmlkZW5TdXBwb3J0aW5nT2JqZWN0Q2xhc3NlczsKIAogICAgICAgICByZXR1cm4gW0FpcnBs
YXlTdXBwb3J0LCBBdWRpb1N1cHBvcnQsIENvbnRyb2xzVmlzaWJpbGl0eVN1cHBvcnQsIEZ1bGxz
Y3JlZW5TdXBwb3J0LCBNdXRlU3VwcG9ydCwgT3ZlcmZsb3dTdXBwb3J0LCBQaVBTdXBwb3J0LCBQ
bGFjYXJkU3VwcG9ydCwgUGxheWJhY2tTdXBwb3J0LCBTY3J1YmJpbmdTdXBwb3J0LCBTZWVrQmFj
a3dhcmRTdXBwb3J0LCBTZWVrRm9yd2FyZFN1cHBvcnQsIFNraXBCYWNrU3VwcG9ydCwgU2tpcEZv
cndhcmRTdXBwb3J0LCBTdGFydFN1cHBvcnQsIFN0YXR1c1N1cHBvcnQsIFRpbWVDb250cm9sU3Vw
cG9ydCwgVHJhY2tzU3VwcG9ydCwgVm9sdW1lU3VwcG9ydF07CiAgICAgfQpAQCAtMjMwLDcgKzIy
MCw3IEBAIGNsYXNzIE1lZGlhQ29udHJvbGxlcgogICAgIHsKICAgICAgICAgY29uc3QgbGF5b3V0
VHJhaXRzID0gdGhpcy5sYXlvdXRUcmFpdHM7CiAgICAgICAgIGNvbnN0IHByZXZpb3VzQ29udHJv
bHMgPSB0aGlzLmNvbnRyb2xzOwotICAgICAgICBjb25zdCBDb250cm9sc0NsYXNzID0gdGhpcy5f
Y29udHJvbHNDbGFzc0ZvckxheW91dFRyYWl0cyhsYXlvdXRUcmFpdHMpOworICAgICAgICBjb25z
dCBDb250cm9sc0NsYXNzID0gbGF5b3V0VHJhaXRzLm1lZGlhQ29udHJvbHNDbGFzcygpOwogICAg
ICAgICBpZiAocHJldmlvdXNDb250cm9scyAmJiBwcmV2aW91c0NvbnRyb2xzLmNvbnN0cnVjdG9y
ID09PSBDb250cm9sc0NsYXNzKSB7CiAgICAgICAgICAgICB0aGlzLl91cGRhdGVUZXh0VHJhY2tz
Q2xhc3NMaXN0KCk7CiAgICAgICAgICAgICB0aGlzLl91cGRhdGVDb250cm9sc1NpemUoKTsKQEAg
LTMxNiwyNCArMzA2LDEyIEBAIGNsYXNzIE1lZGlhQ29udHJvbGxlcgogICAgICAgICB0aGlzLmNv
bnRyb2xzLnNob3VsZENlbnRlckNvbnRyb2xzVmVydGljYWxseSA9IHRoaXMuaXNBdWRpbzsKICAg
ICB9CiAKLSAgICBfY29udHJvbHNDbGFzc0ZvckxheW91dFRyYWl0cyhsYXlvdXRUcmFpdHMpCi0g
ICAgewotICAgICAgICBpZiAobGF5b3V0VHJhaXRzICYgTGF5b3V0VHJhaXRzLndhdGNoT1MpCi0g
ICAgICAgICAgICByZXR1cm4gV2F0Y2hPU01lZGlhQ29udHJvbHM7Ci0gICAgICAgIGlmIChsYXlv
dXRUcmFpdHMgJiBMYXlvdXRUcmFpdHMuaU9TKQotICAgICAgICAgICAgcmV0dXJuIElPU0lubGlu
ZU1lZGlhQ29udHJvbHM7Ci0gICAgICAgIGlmIChsYXlvdXRUcmFpdHMgJiBMYXlvdXRUcmFpdHMu
RnVsbHNjcmVlbikKLSAgICAgICAgICAgIHJldHVybiBNYWNPU0Z1bGxzY3JlZW5NZWRpYUNvbnRy
b2xzOwotICAgICAgICByZXR1cm4gTWFjT1NJbmxpbmVNZWRpYUNvbnRyb2xzOwotICAgIH0KLQog
ICAgIF91cGRhdGVUZXh0VHJhY2tzQ2xhc3NMaXN0KCkKICAgICB7CiAgICAgICAgIGlmICghdGhp
cy5ob3N0KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGNvbnN0IGxheW91dFRyYWl0
cyA9IHRoaXMubGF5b3V0VHJhaXRzOwotICAgICAgICBpZiAobGF5b3V0VHJhaXRzICYgTGF5b3V0
VHJhaXRzLkZ1bGxzY3JlZW4pCisgICAgICAgIGlmICh0aGlzLmxheW91dFRyYWl0cy5pc0Z1bGxz
Y3JlZW4pCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdGhpcy5ob3N0LnRleHRUcmFj
a0NvbnRhaW5lci5jbGFzc0xpc3QudG9nZ2xlKCJ2aXNpYmxlLWNvbnRyb2xzLWJhciIsICF0aGlz
LmNvbnRyb2xzLmZhZGVkKTsKQEAgLTM0OSwxMyArMzI3LDExIEBAIGNsYXNzIE1lZGlhQ29udHJv
bGxlcgogCiAgICAgX3Nob3VsZENvbnRyb2xzQmVBdmFpbGFibGUoKQogICAgIHsKLSAgICAgICAg
Ly8gQ29udHJvbHMgYXJlIGFsd2F5cyBhdmFpbGFibGUgb24gd2F0Y2hPUy4KLSAgICAgICAgaWYg
KHRoaXMubGF5b3V0VHJhaXRzICYgTGF5b3V0VHJhaXRzLndhdGNoT1MpCisgICAgICAgIGlmICh0
aGlzLmxheW91dFRyYWl0cy5jb250cm9sc0Fsd2F5c0F2YWlsYWJsZSgpKQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAKLSAgICAgICAgLy8gQ29udHJvbHMgYXJlIGFsd2F5cyBhdmFpbGFibGUg
d2hpbGUgaW4gZnVsbHNjcmVlbiBvbiBtYWNPUywgYW5kIHRoZXkgYXJlIG5ldmVyIGF2YWlsYWJs
ZSB3aGVuIGluIGZ1bGxzY3JlZW4gb24gaU9TLgotICAgICAgICBpZiAodGhpcy5pc0Z1bGxzY3Jl
ZW4pCi0gICAgICAgICAgICByZXR1cm4gISEodGhpcy5sYXlvdXRUcmFpdHMgJiBMYXlvdXRUcmFp
dHMubWFjT1MpOworICAgICAgICBpZiAodGhpcy5sYXlvdXRUcmFpdHMuY29udHJvbHNOZXZlckF2
YWlsYWJsZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIC8vIE90aGVy
d2lzZSwgZm9yIGNvbnRyb2xzIHRvIGJlIGF2YWlsYWJsZSwgdGhlIGNvbnRyb2xzIGF0dHJpYnV0
ZSBtdXN0IGJlIHByZXNlbnQgb24gdGhlIG1lZGlhIGVsZW1lbnQKICAgICAgICAgLy8gb3IgdGhl
IE1lZGlhQ29udHJvbHNIb3N0IG11c3QgaW5kaWNhdGUgdGhhdCBjb250cm9scyBhcmUgZm9yY2Vk
LgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVk
aWEvdHJhY2tzLXN1cHBvcnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEvdHJhY2tzLXN1cHBvcnQuanMJKHJldmlzaW9u
IDI3OTMwNSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L21lZGlhL3RyYWNrcy1zdXBwb3J0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBA
IGNsYXNzIFRyYWNrc1N1cHBvcnQgZXh0ZW5kcyBNZWRpYUNvbnRyb2wKICAgICBidXR0b25XYXNQ
cmVzc2VkKGNvbnRyb2wpCiAgICAgewogICAgICAgICB0aGlzLm1lZGlhQ29udHJvbGxlci5zaG93
TWVkaWFDb250cm9sc0NvbnRleHRNZW51KGNvbnRyb2wsIHsKLSAgICAgICAgICAgIHByb21vdGVT
dWJNZW51czogISEodGhpcy5tZWRpYUNvbnRyb2xsZXIubGF5b3V0VHJhaXRzICYgTGF5b3V0VHJh
aXRzLm1hY09TKSwKKyAgICAgICAgICAgIHByb21vdGVTdWJNZW51czogdGhpcy5tZWRpYUNvbnRy
b2xsZXIubGF5b3V0VHJhaXRzLnByb21vdGVTdWJNZW51c1doZW5TaG93aW5nTWVkaWFDb250cm9s
c0NvbnRleHRNZW51KCksCiAgICAgICAgIH0pOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjc5
MzA1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDQ2MSw2ICsxNDQ2MSwxMCBAQAogCQlCQ0QwRTBGNzBFOTcy
QzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2VjdXJpdHlPcmlnaW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQ0QwRTBGODBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW4uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VjdXJpdHlPcmlnaW4uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNEMEUwRjkwRTk3MkMzNTAwMjY1REVBIC8qIFNlY3VyaXR5
T3JpZ2luSGFzaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWN1cml0eU9y
aWdpbkhhc2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNEMzczNkMyNjg2MzVC
RTAwMzY0NEU0IC8qIGxheW91dC10cmFpdHMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSAibGF5
b3V0LXRyYWl0cy5qcyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDRDM3MzZFMjY4
NjM3MEEwMDM2NDRFNCAvKiBtYWNvcy1sYXlvdXQtdHJhaXRzLmpzICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBw
YXRoID0gIm1hY29zLWxheW91dC10cmFpdHMuanMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCQ0QzNzM2RjI2ODY0MjAzMDAzNjQ0RTQgLyogd2F0Y2hvcy1sYXlvdXQtdHJhaXRzLmpz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5qYXZhc2NyaXB0OyBwYXRoID0gIndhdGNob3MtbGF5b3V0LXRyYWl0cy5qcyI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDRDM3MzcwMjY4NjQyM0MwMDM2NDRFNCAvKiBpb3Mt
bGF5b3V0LXRyYWl0cy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJpb3MtbGF5b3V0LXRyYWl0
cy5qcyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRDUzMzYzMEVENjg0ODkwMDg4
NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQ0Q5QzI1RTBDMTdBQTY3MDA1QzkwQTIgLyogSlNET01XaW5kb3dD
dXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NV2lu
ZG93Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNEOUMyNjAwQzE3
QUE2NzAwNUM5MEEyIC8qIEpTTm9kZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNOb2RlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIyOTczLDEyICsyMjk3NywxNSBAQAogCQkJCTk1NTE5NTlCMjVGQTlFQ0MwMEY1OENG
MCAvKiBpbmxpbmUtbWVkaWEtY29udHJvbHMuanMgKi8sCiAJCQkJNzE0RjVCMDUxREVFNUY3NDAw
NzVCRDE3IC8qIGludmFsaWQtcGxhY2FyZC5qcyAqLywKIAkJCQk3MTUyQ0VDMjFERDIyMzUzMDBG
RDU5NjIgLyogaW9zLWlubGluZS1tZWRpYS1jb250cm9scy5qcyAqLywKKwkJCQlCQ0QzNzM3MDI2
ODY0MjNDMDAzNjQ0RTQgLyogaW9zLWxheW91dC10cmFpdHMuanMgKi8sCiAJCQkJNzE2RkEwRTUx
REIyNjU5MTAwNzMyM0NDIC8qIGxheW91dC1pdGVtLmpzICovLAogCQkJCTcxNkZBMEU2MURCMjY1
OTEwMDczMjNDQyAvKiBsYXlvdXQtbm9kZS5qcyAqLywKKwkJCQlCQ0QzNzM2QzI2ODYzNUJFMDAz
NjQ0RTQgLyogbGF5b3V0LXRyYWl0cy5qcyAqLywKIAkJCQk3MTIxNTdDMDFEQ0NDQTA3MDBBQTdB
OTIgLyogbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy5jc3MgKi8sCiAJCQkJNzEyMTU3
QzExRENDQ0EwNzAwQUE3QTkyIC8qIG1hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMuanMg
Ki8sCiAJCQkJNzE2RkEwRTcxREIyNjU5MTAwNzMyM0NDIC8qIG1hY29zLWlubGluZS1tZWRpYS1j
b250cm9scy5jc3MgKi8sCiAJCQkJNzE2RkEwRTgxREIyNjU5MTAwNzMyM0NDIC8qIG1hY29zLWlu
bGluZS1tZWRpYS1jb250cm9scy5qcyAqLywKKwkJCQlCQ0QzNzM2RTI2ODYzNzBBMDAzNjQ0RTQg
LyogbWFjb3MtbGF5b3V0LXRyYWl0cy5qcyAqLywKIAkJCQk3MTZGQTBFQTFEQjI2NTkxMDA3MzIz
Q0MgLyogbWVkaWEtY29udHJvbHMuY3NzICovLAogCQkJCTcxNkZBMEVCMURCMjY1OTEwMDczMjND
QyAvKiBtZWRpYS1jb250cm9scy5qcyAqLywKIAkJCQk5NTUxOTU5QzI1RkE5RUUzMDBGNThDRjAg
LyogbWVkaWEtZG9jdW1lbnQuY3NzICovLApAQCAtMjMwMDUsNiArMjMwMTIsNyBAQAogCQkJCTcx
NkZBMEZFMURCMjY1OTEwMDczMjNDQyAvKiB0cmFja3MtYnV0dG9uLmpzICovLAogCQkJCTk1NTE5
NThFMjVGQTlFMzAwMEY1OENGMCAvKiB3YXRjaG9zLWFjdGl2aXR5LWluZGljYXRvci5jc3MgKi8s
CiAJCQkJOTU1MTk1OEYyNUZBOUUzMTAwRjU4Q0YwIC8qIHdhdGNob3MtYWN0aXZpdHktaW5kaWNh
dG9yLmpzICovLAorCQkJCUJDRDM3MzZGMjY4NjQyMDMwMDM2NDRFNCAvKiB3YXRjaG9zLWxheW91
dC10cmFpdHMuanMgKi8sCiAJCQkJOTU1MTk1OEQyNUZBOUUzMDAwRjU4Q0YwIC8qIHdhdGNob3Mt
bWVkaWEtY29udHJvbHMuY3NzICovLAogCQkJCTcxREUyNzk0MjAzQTlDMUMwMDU4Q0I1MSAvKiB3
YXRjaG9zLW1lZGlhLWNvbnRyb2xzLmpzICovLAogCQkJKTsKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3
OTMwNykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDU3IEBACisyMDIxLTA2LTI2ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAg
ICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xzXSBNb2Rlcm4gbWVkaWEgY29udHJvbHMgc2hvdWxk
IG5vdCBuZWVkIHRvIGtub3cgYWJvdXQgc3BlY2lmaWMgcGxhdGZvcm1zIGluIHNoYXJlZCBjb2Rl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc0MjMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUg
dGVzdHMgYW5kIHJlc3VsdHMgdG8gdXNlIExheW91dFRyYWl0cyBjbGFzcy4KKworICAgICAgICAq
IG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9haXJwbGF5LWJ1dHRvbi9haXJwbGF5LWJ1dHRv
bi1vbi5odG1sOgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9haXJwbGF5
LWJ1dHRvbi9haXJwbGF5LWJ1dHRvbi5odG1sOgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9haXJwbGF5LXBsYWNhcmQvYWlycGxheS1wbGFjYXJkLmh0bWw6CisgICAgICAg
ICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9idXR0b24tYWN0aXZlLXN0YXRl
Lmh0bWw6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9idXR0
b24tY2xpY2stb24tZWRnZXMuaHRtbDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvYnV0dG9uL2J1dHRvbi1mb2N1cy1zdGF0ZS5odG1sOgorICAgICAgICAqIG1lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy9idXR0b24vYnV0dG9uLWljb24tbmFtZS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9idXR0b24taWNv
bi1uYW1lLmh0bWw6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRv
bi9idXR0b24tb24uaHRtbDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
Zm9yd2FyZC1idXR0b24vZm9yd2FyZC1idXR0b24uaHRtbDoKKyAgICAgICAgKiBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvZnVsbHNjcmVlbi1idXR0b24vZnVsbHNjcmVlbi1idXR0b24uaHRt
bDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvaWNvbi1zZXJ2aWNlL2lj
b24tc2VydmljZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL2ljb24tc2VydmljZS9pY29uLXNlcnZpY2UuaHRtbDoKKyAgICAgICAgKiBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvaW52YWxpZC1wbGFjYXJkL2ludmFsaWQtcGxhY2FyZC1jb25z
dHJhaW5lZC1tZXRyaWNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvaW52YWxpZC1wbGFjYXJkL2ludmFsaWQtcGxhY2FyZC1jb25zdHJhaW5lZC1t
ZXRyaWNzLmh0bWw6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2ludmFs
aWQtcGxhY2FyZC9pbnZhbGlkLXBsYWNhcmQuaHRtbDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvaW9zLWlubGluZS1tZWRpYS1jb250cm9scy9pb3MtaW5saW5lLW1lZGlh
LWNvbnRyb2xzLWNvbnN0cnVjdG9yLmh0bWw6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL2xheW91dC1pdGVtL2xheW91dC1pdGVtLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbGF5b3V0LWl0ZW0vbGF5b3V0LWl0ZW0uaHRt
bDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVl
bi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVj
dG9yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
bWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNv
bnRyb2xzLWNvbnN0cnVjdG9yLmh0bWw6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL21hY29zLWlubGluZS1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtY29u
dHJvbHMtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1l
ZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLmh0bWw6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlci1mdWxsc2NyZWVu
LWNoYW5nZS5odG1sOgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRp
YS1jb250cm9scy9tZWRpYS1jb250cm9scy1hcHBlYXItd2hlbi1mb2N1cy5odG1sOgorICAgICAg
ICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9scy9tZWRpYS1jb250
cm9scy1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLmh0
bWw6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xz
L21lZGlhLWNvbnRyb2xzLXBsYWNhcmQtY29tcHJlc3NlZC1tZXRyaWNzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbHMvbWVk
aWEtY29udHJvbHMtcGxhY2FyZC1jb21wcmVzc2VkLW1ldHJpY3MuaHRtbDoKKyAgICAgICAgKiBt
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbXV0ZS1idXR0b24vbXV0ZS1idXR0b24uaHRtbDoK
KyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvb3ZlcmZsb3ctYnV0dG9uL292
ZXJmbG93LWJ1dHRvbi5odG1sOgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy9waXAtYnV0dG9uL3BpcC1idXR0b24uaHRtbDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvcGlwLXBsYWNhcmQvcGlwLXBsYWNhcmQuaHRtbDoKKyAgICAgICAgKiBtZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcGxhY2FyZC9wbGFjYXJkLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcGxhY2FyZC9wbGFjYXJkLmh0bWw6
CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3BsYXktcGF1c2UtYnV0dG9u
L3BsYXktcGF1c2UtYnV0dG9uLmh0bWw6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3Jld2luZC1idXR0b24vcmV3aW5kLWJ1dHRvbi5odG1sOgorICAgICAgICAqIG1lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9za2lwLWJhY2stYnV0dG9uL3NraXAtYmFjay1idXR0b24u
aHRtbDoKKyAgICAgICAgKiBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvc2tpcC1mb3J3YXJk
LWJ1dHRvbi9za2lwLWZvcndhcmQtYnV0dG9uLmh0bWw6CisgICAgICAgICogbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3RpbWUtY29udHJvbC90aW1lLWNvbnRyb2wtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90aW1lLWNvbnRyb2wvdGltZS1j
b250cm9sLmh0bWw6CisgICAgICAgICogbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNr
cy1idXR0b24vdHJhY2tzLWJ1dHRvbi5odG1sOgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy93YXRjaG9zLW1lZGlhLWNvbnRyb2xzL3dhdGNob3MtbWVkaWEtY29udHJvbHMt
Y29uc3RydWN0b3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIG1lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy93YXRjaG9zLW1lZGlhLWNvbnRyb2xzL3dhdGNob3MtbWVkaWEtY29udHJvbHMtY29u
c3RydWN0b3IuaHRtbDoKKwogMjAyMS0wNi0yNSAgQXJjYWR5IEdvbGRtaW50cy1PcmxvdiAgPGFn
b2xkbWludHNAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR0xJQl0gVXBkYXRlIHRlc3QgZXhwZWN0
YXRpb25zIGFmdGVyIHIyNzkyMTcKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9haXJwbGF5LWJ1dHRvbi9haXJwbGF5LWJ1dHRvbi1vbi5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9haXJwbGF5LWJ1
dHRvbi9haXJwbGF5LWJ1dHRvbi1vbi5odG1sCShyZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYWlycGxheS1idXR0b24vYWlycGxheS1i
dXR0b24tb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAgd2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOwogCiBkZXNjcmlwdGlvbigiVGVzdGluZyB0aGUgPGNvZGU+QWlycGxh
eUJ1dHRvbjwvY29kZT4gY2xhc3MuIik7CiAKLWNvbnN0IGFpcnBsYXlCdXR0b24gPSBuZXcgQWly
cGxheUJ1dHRvbih7IGxheW91dFRyYWl0czogTGF5b3V0VHJhaXRzLm1hY09TIH0pOworY29uc3Qg
YWlycGxheUJ1dHRvbiA9IG5ldyBBaXJwbGF5QnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBuZXcgTWFj
T1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSB9KTsKIGFpcnBsYXlCdXR0
b24ub24gPSB0cnVlOwogCiBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGFpcnBsYXlCdXR0b24u
ZWxlbWVudCk7CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
YWlycGxheS1idXR0b24vYWlycGxheS1idXR0b24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYWlycGxheS1idXR0b24vYWlycGxheS1i
dXR0b24uaHRtbAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL2FpcnBsYXktYnV0dG9uL2FpcnBsYXktYnV0dG9uLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTksMTQgKzksMTQgQEAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwog
CiBkZXNjcmlwdGlvbigiVGVzdGluZyB0aGUgPGNvZGU+QWlycGxheUJ1dHRvbjwvY29kZT4gY2xh
c3MuIik7CiAKLWNvbnN0IGFpcnBsYXlCdXR0b24gPSBuZXcgQWlycGxheUJ1dHRvbih7IGxheW91
dFRyYWl0czogTGF5b3V0VHJhaXRzLm1hY09TIH0pOworY29uc3QgYWlycGxheUJ1dHRvbiA9IG5l
dyBBaXJwbGF5QnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBuZXcgTWFjT1NMYXlvdXRUcmFpdHMoTGF5
b3V0VHJhaXRzLk1vZGUuSW5saW5lKSB9KTsKIAogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhaXJw
bGF5QnV0dG9uLmVsZW1lbnQubG9jYWxOYW1lIiwgImJ1dHRvbiIpOwogc2hvdWxkQmVUcnVlKCdh
aXJwbGF5QnV0dG9uLmVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhaXJwbGF5IiknKTsKIHNo
b3VsZEJlKCJhaXJwbGF5QnV0dG9uLmljb25OYW1lIiwgIkljb25zLkFpcnBsYXkiKTsKIAotY29u
c3QgbWFjT1NGdWxsc2NyZWVuQWlycGxheUJ1dHRvbiA9IG5ldyBBaXJwbGF5QnV0dG9uKHsgbGF5
b3V0VHJhaXRzOiBMYXlvdXRUcmFpdHMubWFjT1MgfCBMYXlvdXRUcmFpdHMuRnVsbHNjcmVlbiB9
KTsKLWNvbnN0IGlPU0FpcnBsYXlCdXR0b24gPSBuZXcgQWlycGxheUJ1dHRvbih7IGxheW91dFRy
YWl0czogTGF5b3V0VHJhaXRzLmlPUyB9KTsKK2NvbnN0IG1hY09TRnVsbHNjcmVlbkFpcnBsYXlC
dXR0b24gPSBuZXcgQWlycGxheUJ1dHRvbih7IGxheW91dFRyYWl0czogbmV3IE1hY09TTGF5b3V0
VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLkZ1bGxzY3JlZW4pIH0pOworY29uc3QgaU9TQWlycGxh
eUJ1dHRvbiA9IG5ldyBBaXJwbGF5QnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBuZXcgSU9TTGF5b3V0
VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLklubGluZSkgfSk7CiAKIHNob3VsZEJlY29tZUVxdWFs
KCdhaXJwbGF5QnV0dG9uLmltYWdlLmVsZW1lbnQuc3R5bGUud2Via2l0TWFza0ltYWdlLmluY2x1
ZGVzKCJtYWNPUy9BaXJwbGF5LnN2ZyIpJywgInRydWUiLCAoKSA9PiB7CiAgICAgc2hvdWxkQmVj
b21lRXF1YWwoJ21hY09TRnVsbHNjcmVlbkFpcnBsYXlCdXR0b24uaW1hZ2UuZWxlbWVudC5zdHls
ZS53ZWJraXRNYXNrSW1hZ2UuaW5jbHVkZXMoIm1hY09TL0FpcnBsYXktZnVsbHNjcmVlbi5zdmci
KScsICJ0cnVlIiwgKCkgPT4gewpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL2FpcnBsYXktcGxhY2FyZC9haXJwbGF5LXBsYWNhcmQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYWlycGxheS1wbGFj
YXJkL2FpcnBsYXktcGxhY2FyZC5odG1sCShyZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYWlycGxheS1wbGFjYXJkL2FpcnBsYXktcGxh
Y2FyZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQAogZGVzY3JpcHRpb24oIlRl
c3RpbmcgdGhlIDxjb2RlPkFpcnBsYXlQbGFjYXJkPC9jb2RlPiBjbGFzcy4iKTsKIAogZGVidWco
IlBsYWNhcmQgd2l0aCBhbGwgcGFyYW1ldGVycyIpOwotY29uc3QgcGxhY2FyZCA9IG5ldyBBaXJw
bGF5UGxhY2FyZCh7IGxheW91dFRyYWl0czogTGF5b3V0VHJhaXRzLm1hY09TIH0pOworY29uc3Qg
cGxhY2FyZCA9IG5ldyBBaXJwbGF5UGxhY2FyZCh7IGxheW91dFRyYWl0czogbmV3IE1hY09TTGF5
b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLklubGluZSkgfSk7CiAKIHNob3VsZEJlKCJwbGFj
YXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmljb25OYW1lIiwgIkljb25zLkFpcnBsYXlQbGFj
YXJkIik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRy
ZW5bMV0uZWxlbWVudC5pbm5lclRleHQiLCAiQWlyUGxheSIpOwpJbmRleDogTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9idXR0b24tYWN0aXZlLXN0YXRlLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L2J1dHRvbi9idXR0b24tYWN0aXZlLXN0YXRlLmh0bWwJKHJldmlzaW9uIDI3OTMwNSkKKysrIExh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9idXR0b24vYnV0dG9uLWFjdGl2
ZS1zdGF0ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCBkZXNjcmlwdGlvbigi
VGVzdGluZyBhbiA8Y29kZT5CdXR0b248L2NvCiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKIAotY29uc3QgYnV0dG9uID0gbmV3IEJ1dHRvbih7IGxheW91dERlbGVnYXRlOiB7IGxheW91
dFRyYWl0czogTGF5b3V0VHJhaXRzLm1hY09TIH0gfSk7Citjb25zdCBidXR0b24gPSBuZXcgQnV0
dG9uKHsgbGF5b3V0RGVsZWdhdGU6IHsgbGF5b3V0VHJhaXRzOiBuZXcgTWFjT1NMYXlvdXRUcmFp
dHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSB9IH0pOwogYnV0dG9uLmljb25OYW1lID0gSWNv
bnMuUGF1c2U7CiBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGJ1dHRvbi5lbGVtZW50KTsKIApJ
bmRleDogTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9idXR0
b24tY2xpY2stb24tZWRnZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvYnV0dG9uL2J1dHRvbi1jbGljay1vbi1lZGdlcy5odG1sCShy
ZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvYnV0dG9uL2J1dHRvbi1jbGljay1vbi1lZGdlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
OSw3ICsxOSw3IEBAIGRlc2NyaXB0aW9uKCJUZXN0aW5nIHRoZSA8Y29kZT5CdXR0b248L2MKIAog
Y29uc3QgYnV0dG9uID0gbmV3IEJ1dHRvbih7CiAgICAgbGF5b3V0RGVsZWdhdGU6IHsKLSAgICAg
ICAgbGF5b3V0VHJhaXRzOiBMYXlvdXRUcmFpdHMubWFjT1MKKyAgICAgICAgbGF5b3V0VHJhaXRz
OiBuZXcgTWFjT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKQogICAgIH0g
CiB9KTsKIGJ1dHRvbi5pY29uTmFtZSA9IEljb25zLlBhdXNlOwpJbmRleDogTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9idXR0b24tZm9jdXMtc3RhdGUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
YnV0dG9uL2J1dHRvbi1mb2N1cy1zdGF0ZS5odG1sCShyZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYnV0dG9uL2J1dHRvbi1mb2N1cy1z
dGF0ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCBkZXNjcmlwdGlvbigiVGVz
dGluZyBhbiA8Y29kZT5JY29uQnV0dG9uCiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
IAotY29uc3QgYnV0dG9uID0gbmV3IEJ1dHRvbih7IGxheW91dERlbGVnYXRlOiB7IGxheW91dFRy
YWl0czogTGF5b3V0VHJhaXRzLm1hY09TIH0sIGljb25OYW1lOiBJY29ucy5QYXVzZSB9KTsKK2Nv
bnN0IGJ1dHRvbiA9IG5ldyBCdXR0b24oeyBsYXlvdXREZWxlZ2F0ZTogeyBsYXlvdXRUcmFpdHM6
IG5ldyBNYWNPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpIH0sIGljb25O
YW1lOiBJY29ucy5QYXVzZSB9KTsKIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYnV0dG9uLmVs
ZW1lbnQpOwogCiAKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy9idXR0b24vYnV0dG9uLWljb24tbmFtZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9idXR0b24taWNvbi1u
YW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9idXR0b24taWNvbi1uYW1lLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAgVGhlcmUgc2hvdWxkIGJlIG5vIGljb25O
YW1lIGJ5IGRlZmF1bHQKIFBBU1MgYnV0dG9uLmljb25OYW1lIGlzICIiCiAKIFNldHRpbmcgYW4g
aWNvbk5hbWUgd2l0aCBpbnZhbGlkIGxheW91dCB0cmFpdHMgc2hvdWxkIHRocm93Ci1QQVNTIGZ1
bmN0aW9uICgpIHsgYnV0dG9uLmljb25OYW1lID0gSWNvbnMuUGF1c2UgfSB0aHJldyBleGNlcHRp
b24gQ291bGQgbm90IGlkZW50aWZ5IGljb24ncyBwbGF0Zm9ybSBmcm9tIGxheW91dCB0cmFpdHMu
LgorUEFTUyBmdW5jdGlvbiAoKSB7IGJ1dHRvbi5pY29uTmFtZSA9IEljb25zLlBhdXNlIH0gdGhy
ZXcgZXhjZXB0aW9uIE5vIGxheW91dCB0cmFpdHMgc3BlY2lmaWVkIHZpYSBsYXlvdXREZWxlZ2F0
ZSBvciBvdmVycmlkZW4gbGF5b3VUcmFpdHMoKSBnZXR0ZXIuCiBQQVNTIGJ1dHRvbi5pY29uTmFt
ZSBpcyAiIgogCiBTZXR0aW5nIG1hY09TIGlubGluZSBsYXlvdXQgdHJhaXRzIGFuZCBzZXR0aW5n
IHBsYXkgaWNvbgpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L2J1dHRvbi9idXR0b24taWNvbi1uYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1dHRvbi9idXR0b24taWNvbi1uYW1lLmh0bWwJ
KHJldmlzaW9uIDI3OTMwNSkKKysrIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9idXR0b24vYnV0dG9uLWljb24tbmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3
ICsyMyw3IEBAIHNob3VsZEJlRXF1YWxUb1N0cmluZygiYnV0dG9uLmljb25OYW1lIiwKIAogZGVi
dWcoIiIpOwogZGVidWcoIlNldHRpbmcgbWFjT1MgaW5saW5lIGxheW91dCB0cmFpdHMgYW5kIHNl
dHRpbmcgcGxheSBpY29uIik7Ci1sYXlvdXREZWxlZ2F0ZS5sYXlvdXRUcmFpdHMgPSBMYXlvdXRU
cmFpdHMubWFjT1M7CitsYXlvdXREZWxlZ2F0ZS5sYXlvdXRUcmFpdHMgPSBuZXcgTWFjT1NMYXlv
dXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKTsKIGJ1dHRvbi5pY29uTmFtZSA9IElj
b25zLlBhdXNlOwogCiBzaG91bGRCZWNvbWVFcXVhbCgnYnV0dG9uLmltYWdlLmVsZW1lbnQuc3R5
bGUud2Via2l0TWFza0ltYWdlLmluY2x1ZGVzKCJtYWNPUy9QYXVzZS5zdmciKScsICJ0cnVlIiwg
KCkgPT4gewpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2J1
dHRvbi9idXR0b24tb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvYnV0dG9uL2J1dHRvbi1vbi5odG1sCShyZXZpc2lvbiAyNzkzMDUp
CisrKyBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvYnV0dG9uL2J1dHRv
bi1vbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQCBkZXNjcmlwdGlvbigiVGVz
dGluZyBhbiA8Y29kZT5CdXR0b248L2NvCiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
IAotY29uc3QgYnV0dG9uID0gbmV3IEJ1dHRvbih7IGxheW91dERlbGVnYXRlOiB7IGxheW91dFRy
YWl0czogTGF5b3V0VHJhaXRzLm1hY09TIH0gfSk7Citjb25zdCBidXR0b24gPSBuZXcgQnV0dG9u
KHsgbGF5b3V0RGVsZWdhdGU6IHsgbGF5b3V0VHJhaXRzOiBuZXcgTWFjT1NMYXlvdXRUcmFpdHMo
TGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSB9IH0pOwogYnV0dG9uLmljb25OYW1lID0gSWNvbnMu
UGF1c2U7CiBidXR0b24ub24gPSB0cnVlOwogZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChidXR0
b24uZWxlbWVudCk7CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvZm9yd2FyZC1idXR0b24vZm9yd2FyZC1idXR0b24uaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvZm9yd2FyZC1idXR0b24vZm9yd2Fy
ZC1idXR0b24uaHRtbAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL2ZvcndhcmQtYnV0dG9uL2ZvcndhcmQtYnV0dG9uLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBAIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
IAogZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhlIDxjb2RlPkZvcndhcmRCdXR0b248L2NvZGU+IGNs
YXNzLiIpOwogCi1jb25zdCBmb3J3YXJkQnV0dG9uID0gbmV3IEZvcndhcmRCdXR0b24oeyBsYXlv
dXRUcmFpdHM6IExheW91dFRyYWl0cy5tYWNPUyB9KTsKK2NvbnN0IGZvcndhcmRCdXR0b24gPSBu
ZXcgRm9yd2FyZEJ1dHRvbih7IGxheW91dFRyYWl0czogbmV3IE1hY09TTGF5b3V0VHJhaXRzKExh
eW91dFRyYWl0cy5Nb2RlLklubGluZSkgfSk7CiAKIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZm9y
d2FyZEJ1dHRvbi5lbGVtZW50LmxvY2FsTmFtZSIsICJidXR0b24iKTsKIHNob3VsZEJlVHJ1ZSgn
Zm9yd2FyZEJ1dHRvbi5lbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiZm9yd2FyZCIpJyk7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvZnVsbHNjcmVlbi1i
dXR0b24vZnVsbHNjcmVlbi1idXR0b24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9t
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvZnVsbHNjcmVlbi1idXR0b24vZnVsbHNjcmVlbi1i
dXR0b24uaHRtbAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL2Z1bGxzY3JlZW4tYnV0dG9uL2Z1bGxzY3JlZW4tYnV0dG9uLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTgsMTUgKzgsMTUgQEAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOwogCiBkZXNjcmlwdGlvbigiVGVzdGluZyB0aGUgPGNvZGU+RnVsbHNjcmVlbkJ1dHRvbjwv
Y29kZT4gY2xhc3MuIik7CiAKLWNvbnN0IGVudGVyRnVsbHNjcmVlbkJ1dHRvbiA9IG5ldyBGdWxs
c2NyZWVuQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBMYXlvdXRUcmFpdHMubWFjT1MgfSk7Citjb25z
dCBlbnRlckZ1bGxzY3JlZW5CdXR0b24gPSBuZXcgRnVsbHNjcmVlbkJ1dHRvbih7IGxheW91dFRy
YWl0czogbmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLklubGluZSkgfSk7
CiAKIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZW50ZXJGdWxsc2NyZWVuQnV0dG9uLmVsZW1lbnQu
bG9jYWxOYW1lIiwgImJ1dHRvbiIpOwogc2hvdWxkQmVUcnVlKCdlbnRlckZ1bGxzY3JlZW5CdXR0
b24uZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoImZ1bGxzY3JlZW4iKScpOwogc2hvdWxkQmUo
ImVudGVyRnVsbHNjcmVlbkJ1dHRvbi5pY29uTmFtZSIsICJJY29ucy5FbnRlckZ1bGxzY3JlZW4i
KTsKIAotY29uc3QgaU9TRW50ZXJGdWxsc2NyZWVuQnV0dG9uID0gbmV3IEZ1bGxzY3JlZW5CdXR0
b24oeyBsYXlvdXRUcmFpdHM6IExheW91dFRyYWl0cy5pT1MgfSk7Citjb25zdCBpT1NFbnRlckZ1
bGxzY3JlZW5CdXR0b24gPSBuZXcgRnVsbHNjcmVlbkJ1dHRvbih7IGxheW91dFRyYWl0czogbmV3
IElPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpIH0pOwogCi1jb25zdCBl
eGl0RnVsbHNjcmVlbkJ1dHRvbiA9IG5ldyBGdWxsc2NyZWVuQnV0dG9uKHsgbGF5b3V0VHJhaXRz
OiBMYXlvdXRUcmFpdHMubWFjT1MgfCBMYXlvdXRUcmFpdHMuRnVsbHNjcmVlbiB9KTsKK2NvbnN0
IGV4aXRGdWxsc2NyZWVuQnV0dG9uID0gbmV3IEZ1bGxzY3JlZW5CdXR0b24oeyBsYXlvdXRUcmFp
dHM6IG5ldyBNYWNPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5GdWxsc2NyZWVuKSB9
KTsKIHNob3VsZEJlKCJleGl0RnVsbHNjcmVlbkJ1dHRvbi5pY29uTmFtZSIsICJJY29ucy5FeGl0
RnVsbHNjcmVlbiIpOwogCiBzY2hlZHVsZXIuZnJhbWVEaWRGaXJlID0gZnVuY3Rpb24oKQpJbmRl
eDogTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2ljb24tc2VydmljZS9p
Y29uLXNlcnZpY2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9pY29uLXNlcnZpY2UvaWNvbi1zZXJ2aWNlLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL2ljb24tc2VydmljZS9pY29uLXNlcnZpY2UtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC00LDE1ICs0LDE1IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEEKIAogCiBDaGVja2luZyBwYXRoIHRvIGltYWdlcyBpcyBjb21wdXRlZCBhY2NvcmRp
bmcgdG8gdHJhaXRzCi1QQVNTIGljb25TZXJ2aWNlLmltYWdlRm9ySWNvbkFuZExheW91dFRyYWl0
cyhJY29ucy5BaXJwbGF5LCBMYXlvdXRUcmFpdHMubWFjT1MpLnNyYy5pbmNsdWRlcygibWFjT1Mv
QWlycGxheS5zdmciKSBpcyB0cnVlCi1QQVNTIGljb25TZXJ2aWNlLmltYWdlRm9ySWNvbkFuZExh
eW91dFRyYWl0cyhJY29ucy5BaXJwbGF5LCBMYXlvdXRUcmFpdHMuaU9TKS5zcmMuaW5jbHVkZXMo
ImlPUy9BaXJwbGF5LnN2ZyIpIGlzIHRydWUKLVBBU1MgaWNvblNlcnZpY2UuaW1hZ2VGb3JJY29u
QW5kTGF5b3V0VHJhaXRzKEljb25zLkFpcnBsYXksIExheW91dFRyYWl0cy5tYWNPUyB8IExheW91
dFRyYWl0cy5GdWxsc2NyZWVuKS5zcmMuaW5jbHVkZXMoIm1hY09TL0FpcnBsYXktZnVsbHNjcmVl
bi5zdmciKSBpcyB0cnVlCitQQVNTIGljb25TZXJ2aWNlLmltYWdlRm9ySWNvbkFuZExheW91dFRy
YWl0cyhJY29ucy5BaXJwbGF5LCBuZXcgTWFjT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1v
ZGUuSW5saW5lKSkuc3JjLmluY2x1ZGVzKCJtYWNPUy9BaXJwbGF5LnN2ZyIpIGlzIHRydWUKK1BB
U1MgaWNvblNlcnZpY2UuaW1hZ2VGb3JJY29uQW5kTGF5b3V0VHJhaXRzKEljb25zLkFpcnBsYXks
IG5ldyBJT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSkuc3JjLmluY2x1
ZGVzKCJpT1MvQWlycGxheS5zdmciKSBpcyB0cnVlCitQQVNTIGljb25TZXJ2aWNlLmltYWdlRm9y
SWNvbkFuZExheW91dFRyYWl0cyhJY29ucy5BaXJwbGF5LCBuZXcgTWFjT1NMYXlvdXRUcmFpdHMo
TGF5b3V0VHJhaXRzLk1vZGUuRnVsbHNjcmVlbikpLnNyYy5pbmNsdWRlcygibWFjT1MvQWlycGxh
eS1mdWxsc2NyZWVuLnN2ZyIpIGlzIHRydWUKIAogQ2hlY2tpbmcgZnVsbHNjcmVlbiBsYXlvdXQg
dHJhaXRzIGFyZSBpZ25vcmVkIG9uIGlPUwotUEFTUyBpY29uU2VydmljZS5pbWFnZUZvckljb25B
bmRMYXlvdXRUcmFpdHMoSWNvbnMuQWlycGxheSwgTGF5b3V0VHJhaXRzLmlPUyB8IExheW91dFRy
YWl0cy5GdWxsc2NyZWVuKSA9PT0gaWNvblNlcnZpY2UuaW1hZ2VGb3JJY29uQW5kTGF5b3V0VHJh
aXRzKEljb25zLkFpcnBsYXksIExheW91dFRyYWl0cy5pT1MpIGlzIHRydWUKK1BBU1MgaWNvblNl
cnZpY2UuaW1hZ2VGb3JJY29uQW5kTGF5b3V0VHJhaXRzKEljb25zLkFpcnBsYXksIG5ldyBJT1NM
YXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuRnVsbHNjcmVlbikpID09PSBpY29uU2Vydmlj
ZS5pbWFnZUZvckljb25BbmRMYXlvdXRUcmFpdHMoSWNvbnMuQWlycGxheSwgbmV3IElPU0xheW91
dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpKSBpcyB0cnVlCiAKIENoZWNraW5nIHJl
cXVlc3RlZCBpbWFnZXMgYXJlIGNhY2hlZAotUEFTUyBpY29uU2VydmljZS5pbWFnZUZvckljb25B
bmRMYXlvdXRUcmFpdHMoSWNvbnMuQWlycGxheSwgTGF5b3V0VHJhaXRzLm1hY09TKSA9PT0gaWNv
blNlcnZpY2UuaW1hZ2VGb3JJY29uQW5kTGF5b3V0VHJhaXRzKEljb25zLkFpcnBsYXksIExheW91
dFRyYWl0cy5tYWNPUykgaXMgdHJ1ZQorUEFTUyBpY29uU2VydmljZS5pbWFnZUZvckljb25BbmRM
YXlvdXRUcmFpdHMoSWNvbnMuQWlycGxheSwgbmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRy
YWl0cy5Nb2RlLklubGluZSkpID09PSBpY29uU2VydmljZS5pbWFnZUZvckljb25BbmRMYXlvdXRU
cmFpdHMoSWNvbnMuQWlycGxheSwgbmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5N
b2RlLklubGluZSkpIGlzIHRydWUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAog
VEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL2ljb24tc2VydmljZS9pY29uLXNlcnZpY2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvaWNvbi1zZXJ2aWNlL2ljb24tc2Vydmlj
ZS5odG1sCShyZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvaWNvbi1zZXJ2aWNlL2ljb24tc2VydmljZS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC04LDE3ICs4LDE3IEBAIGRlc2NyaXB0aW9uKCJUZXN0aW5nIHRoZSA8Y29kZT5pY29uU2Vy
dmkKIGljb25TZXJ2aWNlLmRpcmVjdG9yeVBhdGggPSAiLi4vLi4vLi4vLi4vU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvaW1hZ2VzIjsKIAogZGVidWcoIkNoZWNr
aW5nIHBhdGggdG8gaW1hZ2VzIGlzIGNvbXB1dGVkIGFjY29yZGluZyB0byB0cmFpdHMiKTsKLXNo
b3VsZEJlVHJ1ZSgnaWNvblNlcnZpY2UuaW1hZ2VGb3JJY29uQW5kTGF5b3V0VHJhaXRzKEljb25z
LkFpcnBsYXksIExheW91dFRyYWl0cy5tYWNPUykuc3JjLmluY2x1ZGVzKCJtYWNPUy9BaXJwbGF5
LnN2ZyIpJyk7Ci1zaG91bGRCZVRydWUoJ2ljb25TZXJ2aWNlLmltYWdlRm9ySWNvbkFuZExheW91
dFRyYWl0cyhJY29ucy5BaXJwbGF5LCBMYXlvdXRUcmFpdHMuaU9TKS5zcmMuaW5jbHVkZXMoImlP
Uy9BaXJwbGF5LnN2ZyIpJyk7Ci1zaG91bGRCZVRydWUoJ2ljb25TZXJ2aWNlLmltYWdlRm9ySWNv
bkFuZExheW91dFRyYWl0cyhJY29ucy5BaXJwbGF5LCBMYXlvdXRUcmFpdHMubWFjT1MgfCBMYXlv
dXRUcmFpdHMuRnVsbHNjcmVlbikuc3JjLmluY2x1ZGVzKCJtYWNPUy9BaXJwbGF5LWZ1bGxzY3Jl
ZW4uc3ZnIiknKTsKK3Nob3VsZEJlVHJ1ZSgnaWNvblNlcnZpY2UuaW1hZ2VGb3JJY29uQW5kTGF5
b3V0VHJhaXRzKEljb25zLkFpcnBsYXksIG5ldyBNYWNPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFp
dHMuTW9kZS5JbmxpbmUpKS5zcmMuaW5jbHVkZXMoIm1hY09TL0FpcnBsYXkuc3ZnIiknKTsKK3No
b3VsZEJlVHJ1ZSgnaWNvblNlcnZpY2UuaW1hZ2VGb3JJY29uQW5kTGF5b3V0VHJhaXRzKEljb25z
LkFpcnBsYXksIG5ldyBJT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSku
c3JjLmluY2x1ZGVzKCJpT1MvQWlycGxheS5zdmciKScpOworc2hvdWxkQmVUcnVlKCdpY29uU2Vy
dmljZS5pbWFnZUZvckljb25BbmRMYXlvdXRUcmFpdHMoSWNvbnMuQWlycGxheSwgbmV3IE1hY09T
TGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLkZ1bGxzY3JlZW4pKS5zcmMuaW5jbHVkZXMo
Im1hY09TL0FpcnBsYXktZnVsbHNjcmVlbi5zdmciKScpOwogCiBkZWJ1ZygiIik7CiBkZWJ1Zygi
Q2hlY2tpbmcgZnVsbHNjcmVlbiBsYXlvdXQgdHJhaXRzIGFyZSBpZ25vcmVkIG9uIGlPUyIpOwot
c2hvdWxkQmVUcnVlKCdpY29uU2VydmljZS5pbWFnZUZvckljb25BbmRMYXlvdXRUcmFpdHMoSWNv
bnMuQWlycGxheSwgTGF5b3V0VHJhaXRzLmlPUyB8IExheW91dFRyYWl0cy5GdWxsc2NyZWVuKSA9
PT0gaWNvblNlcnZpY2UuaW1hZ2VGb3JJY29uQW5kTGF5b3V0VHJhaXRzKEljb25zLkFpcnBsYXks
IExheW91dFRyYWl0cy5pT1MpJyk7CitzaG91bGRCZVRydWUoJ2ljb25TZXJ2aWNlLmltYWdlRm9y
SWNvbkFuZExheW91dFRyYWl0cyhJY29ucy5BaXJwbGF5LCBuZXcgSU9TTGF5b3V0VHJhaXRzKExh
eW91dFRyYWl0cy5Nb2RlLkZ1bGxzY3JlZW4pKSA9PT0gaWNvblNlcnZpY2UuaW1hZ2VGb3JJY29u
QW5kTGF5b3V0VHJhaXRzKEljb25zLkFpcnBsYXksIG5ldyBJT1NMYXlvdXRUcmFpdHMoTGF5b3V0
VHJhaXRzLk1vZGUuSW5saW5lKSknKTsKIAogZGVidWcoIiIpOwogZGVidWcoIkNoZWNraW5nIHJl
cXVlc3RlZCBpbWFnZXMgYXJlIGNhY2hlZCIpOwotc2hvdWxkQmVUcnVlKCdpY29uU2VydmljZS5p
bWFnZUZvckljb25BbmRMYXlvdXRUcmFpdHMoSWNvbnMuQWlycGxheSwgTGF5b3V0VHJhaXRzLm1h
Y09TKSA9PT0gaWNvblNlcnZpY2UuaW1hZ2VGb3JJY29uQW5kTGF5b3V0VHJhaXRzKEljb25zLkFp
cnBsYXksIExheW91dFRyYWl0cy5tYWNPUyknKTsKK3Nob3VsZEJlVHJ1ZSgnaWNvblNlcnZpY2Uu
aW1hZ2VGb3JJY29uQW5kTGF5b3V0VHJhaXRzKEljb25zLkFpcnBsYXksIG5ldyBNYWNPU0xheW91
dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpKSA9PT0gaWNvblNlcnZpY2UuaW1hZ2VG
b3JJY29uQW5kTGF5b3V0VHJhaXRzKEljb25zLkFpcnBsYXksIG5ldyBNYWNPU0xheW91dFRyYWl0
cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpKScpOwogCiA8L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KSW5kZXg6IExh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9pbnZhbGlkLXBsYWNhcmQvaW52
YWxpZC1wbGFjYXJkLWNvbnN0cmFpbmVkLW1ldHJpY3MtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9pbnZhbGlkLXBsYWNh
cmQvaW52YWxpZC1wbGFjYXJkLWNvbnN0cmFpbmVkLW1ldHJpY3MtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
aW52YWxpZC1wbGFjYXJkL2ludmFsaWQtcGxhY2FyZC1jb25zdHJhaW5lZC1tZXRyaWNzLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAgT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQQogU2V0dGluZyB3aWR0aCBhbmQgaGVpZ2h0IHRvIDUwCiBQ
QVNTIHBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW4ubGVuZ3RoIGlzIDEKIFBBU1MgcGxhY2Fy
ZC5jaGlsZHJlblswXS5jaGlsZHJlbi5sZW5ndGggaXMgMQotUEFTUyBwbGFjYXJkLmNoaWxkcmVu
WzBdLmNoaWxkcmVuWzBdIGluc3RhbmNlb2YgQnV0dG9uIGlzIHRydWUKK1BBU1MgcGxhY2FyZC5j
aGlsZHJlblswXS5jaGlsZHJlblswXSBpcyBhbiBpbnN0YW5jZSBvZiBCdXR0b24KIAogU2V0dGlu
ZyB3aWR0aCBhbmQgaGVpZ2h0IHRvIDQ5CiBQQVNTIHBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRy
ZW4ubGVuZ3RoIGlzIDAKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9pbnZhbGlkLXBsYWNhcmQvaW52YWxpZC1wbGFjYXJkLWNvbnN0cmFpbmVkLW1ldHJpY3Mu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvaW52YWxpZC1wbGFjYXJkL2ludmFsaWQtcGxhY2FyZC1jb25zdHJhaW5lZC1tZXRyaWNzLmh0
bWwJKHJldmlzaW9uIDI3OTMwNSkKKysrIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy9pbnZhbGlkLXBsYWNhcmQvaW52YWxpZC1wbGFjYXJkLWNvbnN0cmFpbmVkLW1ldHJp
Y3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNSwxNCArNSwxNCBAQAogCiBkZXNjcmlwdGlvbigi
VGVzdGluZyB0aGUgaW52YWxpZCBwbGFjYXJkIHdpdGggY29uc3RyYWluZWQgbWV0cmljcy4iKTsK
IAotY29uc3QgcGxhY2FyZCA9IG5ldyBJbnZhbGlkUGxhY2FyZCh7IGxheW91dFRyYWl0czogTGF5
b3V0VHJhaXRzLm1hY09TIH0pOworY29uc3QgcGxhY2FyZCA9IG5ldyBJbnZhbGlkUGxhY2FyZCh7
IGxheW91dFRyYWl0czogbmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLklu
bGluZSkgfSk7CiAKIGRlYnVnKCJTZXR0aW5nIHdpZHRoIGFuZCBoZWlnaHQgdG8gNTAiKTsKIHBs
YWNhcmQud2lkdGggPSA1MDsKIHBsYWNhcmQuaGVpZ2h0ID0gNTA7CiBzaG91bGRCZSgicGxhY2Fy
ZC5jaGlsZHJlblswXS5jaGlsZHJlbi5sZW5ndGgiLCAiMSIpOwogc2hvdWxkQmUoInBsYWNhcmQu
Y2hpbGRyZW5bMF0uY2hpbGRyZW4ubGVuZ3RoIiwgIjEiKTsKLXNob3VsZEJlVHJ1ZSgicGxhY2Fy
ZC5jaGlsZHJlblswXS5jaGlsZHJlblswXSBpbnN0YW5jZW9mIEJ1dHRvbiIpOworc2hvdWxkQmVU
eXBlKCJwbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdIiwgIkJ1dHRvbiIpOwogCiBkZWJ1
ZygiIik7CiBkZWJ1ZygiU2V0dGluZyB3aWR0aCBhbmQgaGVpZ2h0IHRvIDQ5Iik7CkluZGV4OiBM
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvaW52YWxpZC1wbGFjYXJkL2lu
dmFsaWQtcGxhY2FyZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy9pbnZhbGlkLXBsYWNhcmQvaW52YWxpZC1wbGFjYXJkLmh0bWwJKHJl
dmlzaW9uIDI3OTMwNSkKKysrIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy9pbnZhbGlkLXBsYWNhcmQvaW52YWxpZC1wbGFjYXJkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTUsNyArNSw3IEBACiAKIGRlc2NyaXB0aW9uKCJUZXN0aW5nIHRoZSA8Y29kZT5JbnZhbGlkUGxh
Y2FyZDwvY29kZT4gY2xhc3MuIik7CiAKLWNvbnN0IHBsYWNhcmQgPSBuZXcgSW52YWxpZFBsYWNh
cmQoeyBsYXlvdXRUcmFpdHM6IExheW91dFRyYWl0cy5tYWNPUyB9KTsKK2NvbnN0IHBsYWNhcmQg
PSBuZXcgSW52YWxpZFBsYWNhcmQoeyBsYXlvdXRUcmFpdHM6IG5ldyBNYWNPU0xheW91dFRyYWl0
cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpIH0pOwogc2hvdWxkQmUoInBsYWNhcmQuY2hpbGRy
ZW5bMF0uY2hpbGRyZW5bMF0uaWNvbk5hbWUiLCAiSWNvbnMuSW52YWxpZFBsYWNhcmQiKTsKIHNo
b3VsZEJlKCJwbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuLmxlbmd0aCIsICIxIik7CiBkZWJ1
ZygiIik7CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvaW9z
LWlubGluZS1tZWRpYS1jb250cm9scy9pb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVj
dG9yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvaW9zLWlubGluZS1tZWRpYS1jb250cm9scy9pb3MtaW5saW5lLW1lZGlh
LWNvbnRyb2xzLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjc5MzA1KQorKysg
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2lvcy1pbmxpbmUtbWVkaWEt
Y29udHJvbHMvaW9zLWlubGluZS1tZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBAIFBBU1MgbWVkaWFDb250cm9scy5lbGVt
ZW50LmxvY2FsTmFtZSBpcyAKIFBBU1MgbWVkaWFDb250cm9scy5lbGVtZW50LmNsYXNzTGlzdC5j
b250YWlucygnbWVkaWEtY29udHJvbHMnKSBpcyB0cnVlCiBQQVNTIG1lZGlhQ29udHJvbHMuZWxl
bWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2lubGluZScpIGlzIHRydWUKIFBBU1MgbWVkaWFDb250
cm9scy5lbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnaW9zJykgaXMgdHJ1ZQotUEFTUyBtZWRp
YUNvbnRyb2xzLmxheW91dFRyYWl0cyBpcyBMYXlvdXRUcmFpdHMuaU9TCitQQVNTIG1lZGlhQ29u
dHJvbHMubGF5b3V0VHJhaXRzIGlzIGFuIGluc3RhbmNlIG9mIElPU0xheW91dFRyYWl0cwogUEFT
UyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2dyb3VwcGlu
Zy1sYWJlbCcpLmRlc2NyaXB0aW9uIGlzICJBWExhYmVsOiBWaWRlbyBDb250cm9scyIKIFBBU1Mg
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdncm91cHBpbmct
bGFiZWwnKS5kZXNjcmlwdGlvbiBpcyAiQVhMYWJlbDogQXVkaW8gQ29udHJvbHMiCiAKSW5kZXg6
IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9pb3MtaW5saW5lLW1lZGlh
LWNvbnRyb2xzL2lvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMtY29uc3RydWN0b3IuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvaW9zLWlu
bGluZS1tZWRpYS1jb250cm9scy9pb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9y
Lmh0bWwJKHJldmlzaW9uIDI3OTMwNSkKKysrIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9pb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzL2lvcy1pbmxpbmUtbWVkaWEtY29u
dHJvbHMtY29uc3RydWN0b3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsMTYgKzExLDE2IEBA
IHNob3VsZEJlRXF1YWxUb1N0cmluZygibWVkaWFDb250cm9scy5lbGUKIHNob3VsZEJlVHJ1ZSgi
bWVkaWFDb250cm9scy5lbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnbWVkaWEtY29udHJvbHMn
KSIpOwogc2hvdWxkQmVUcnVlKCJtZWRpYUNvbnRyb2xzLmVsZW1lbnQuY2xhc3NMaXN0LmNvbnRh
aW5zKCdpbmxpbmUnKSIpOwogc2hvdWxkQmVUcnVlKCJtZWRpYUNvbnRyb2xzLmVsZW1lbnQuY2xh
c3NMaXN0LmNvbnRhaW5zKCdpb3MnKSIpOwotc2hvdWxkQmUoIm1lZGlhQ29udHJvbHMubGF5b3V0
VHJhaXRzIiwgIkxheW91dFRyYWl0cy5pT1MiKTsKK3Nob3VsZEJlVHlwZSgibWVkaWFDb250cm9s
cy5sYXlvdXRUcmFpdHMiLCAiSU9TTGF5b3V0VHJhaXRzIik7CiAKIG1lZGlhQ29udHJvbHMuYm90
dG9tQ29udHJvbHNCYXIuZWxlbWVudC5pZCA9ICJncm91cHBpbmctbGFiZWwiOwogZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmVsZW1lbnQp
OwogCiBtZWRpYUNvbnRyb2xzLnNob3VsZFVzZUF1ZGlvTGF5b3V0ID0gZmFsc2U7Ci1zaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50
QnlJZCgnZ3JvdXBwaW5nLWxhYmVsJykuZGVzY3JpcHRpb24iLCJBWExhYmVsOiBWaWRlbyBDb250
cm9scyIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2dyb3VwcGluZy1sYWJlbCcpLmRlc2NyaXB0aW9uIiwgIkFY
TGFiZWw6IFZpZGVvIENvbnRyb2xzIik7CiAKIG1lZGlhQ29udHJvbHMuc2hvdWxkVXNlQXVkaW9M
YXlvdXQgPSB0cnVlOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2dyb3VwcGluZy1sYWJlbCcpLmRlc2NyaXB0aW9u
IiwiQVhMYWJlbDogQXVkaW8gQ29udHJvbHMiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCdncm91cHBpbmctbGFi
ZWwnKS5kZXNjcmlwdGlvbiIsICJBWExhYmVsOiBBdWRpbyBDb250cm9scyIpOwogCiBkZWJ1Zygi
Iik7CiAKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9sYXlv
dXQtaXRlbS9sYXlvdXQtaXRlbS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2xheW91dC1pdGVtL2xheW91dC1pdGVtLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL2xheW91dC1pdGVtL2xheW91dC1pdGVtLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtNCwxMyArNCwxMyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBCiAKIAogQ3JlYXRpbmcgYSBMYXlvdXRJdGVtIGFuZCBzZXR0aW5nIGEgbGF5
b3V0IGRlbGVnYXRlIGFmdGVyIGNvbnN0cnVjdGlvbi4KLVBBU1MgaXRlbVdpdGhOb1BhcmFtZXRl
ci5sYXlvdXRUcmFpdHMgPT09IExheW91dFRyYWl0cy5Vbmtub3duIGlzIHRydWUKLVBBU1MgISEo
aXRlbVdpdGhOb1BhcmFtZXRlci5sYXlvdXRUcmFpdHMgfCBMYXlvdXRUcmFpdHMubWFjT1MpIGlz
IHRydWUKLVBBU1MgISEoaXRlbVdpdGhOb1BhcmFtZXRlci5sYXlvdXRUcmFpdHMgfCBMYXlvdXRU
cmFpdHMuRnVsbHNjcmVlbikgaXMgdHJ1ZQorUEFTUyBpdGVtV2l0aE5vUGFyYW1ldGVyLmxheW91
dFRyYWl0cyB0aHJldyBleGNlcHRpb24gTm8gbGF5b3V0IHRyYWl0cyBzcGVjaWZpZWQgdmlhIGxh
eW91dERlbGVnYXRlIG9yIG92ZXJyaWRlbiBsYXlvdVRyYWl0cygpIGdldHRlci4KK1BBU1MgaXRl
bVdpdGhOb1BhcmFtZXRlci5sYXlvdXRUcmFpdHMgaXMgYW4gaW5zdGFuY2Ugb2YgTWFjT1NMYXlv
dXRUcmFpdHMKK1BBU1MgaXRlbVdpdGhOb1BhcmFtZXRlci5sYXlvdXRUcmFpdHMuaXNGdWxsc2Ny
ZWVuIGlzIHRydWUKIAogQ3JlYXRpbmcgYSBMYXlvdXRJdGVtIHdpdGggYSBsYXlvdXQgZGVsZWdh
dGUgc2V0IGF0IGNvbnN0cnVjdGlvbi4KLVBBU1MgISEoaXRlbVdpdGhMYXlvdXREZWxlZ2F0ZS5s
YXlvdXRUcmFpdHMgfCBMYXlvdXRUcmFpdHMubWFjT1MpIGlzIHRydWUKLVBBU1MgISEoaXRlbVdp
dGhMYXlvdXREZWxlZ2F0ZS5sYXlvdXRUcmFpdHMgfCBMYXlvdXRUcmFpdHMuRnVsbHNjcmVlbikg
aXMgdHJ1ZQorUEFTUyBpdGVtV2l0aE5vUGFyYW1ldGVyLmxheW91dFRyYWl0cyBpcyBhbiBpbnN0
YW5jZSBvZiBNYWNPU0xheW91dFRyYWl0cworUEFTUyBpdGVtV2l0aE5vUGFyYW1ldGVyLmxheW91
dFRyYWl0cy5pc0Z1bGxzY3JlZW4gaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvbGF5b3V0LWl0ZW0vbGF5b3V0LWl0ZW0uaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbGF5b3V0LWl0ZW0vbGF5b3V0
LWl0ZW0uaHRtbAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL2xheW91dC1pdGVtL2xheW91dC1pdGVtLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNyArMSw1IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVybi1tZWRpYS1jb250cm9scy9jb250cm9scy9zY2hlZHVsZXIuanMi
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29udHJvbHMvY29udHJvbHMv
bGF5b3V0LW5vZGUuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vLi4vLi4vU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvY29udHJvbHMvbGF5b3V0LWl0ZW0uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21lZGlhLWNvbnRyb2xzLWxvYWRlci5q
cyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KIAogZGVzY3JpcHRpb24oIlRlc3RpbmcgdGhlIDxjb2RlPkxheW91dEl0ZW08
L2NvZGU+IGNsYXNzLiIpOwpAQCAtMTAsMjMgKzgsMjMgQEAgY29uc3QgbGF5b3V0RGVsZWdhdGUg
PSBuZXcgY2xhc3MKIHsKICAgICBnZXQgbGF5b3V0VHJhaXRzKCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBMYXlvdXRUcmFpdHMubWFjT1MgfCBMYXlvdXRUcmFpdHMuRnVsbHNjcmVlbjsKKyAgICAg
ICAgcmV0dXJuIG5ldyBNYWNPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5GdWxsc2Ny
ZWVuKTsKICAgICB9CiB9OwogCiBkZWJ1ZygiQ3JlYXRpbmcgYSBMYXlvdXRJdGVtIGFuZCBzZXR0
aW5nIGEgbGF5b3V0IGRlbGVnYXRlIGFmdGVyIGNvbnN0cnVjdGlvbi4iKTsKIGNvbnN0IGl0ZW1X
aXRoTm9QYXJhbWV0ZXIgPSBuZXcgTGF5b3V0SXRlbTsKLXNob3VsZEJlVHJ1ZSgiaXRlbVdpdGhO
b1BhcmFtZXRlci5sYXlvdXRUcmFpdHMgPT09IExheW91dFRyYWl0cy5Vbmtub3duIik7CitzaG91
bGRUaHJvdygiaXRlbVdpdGhOb1BhcmFtZXRlci5sYXlvdXRUcmFpdHMiKTsKIAogaXRlbVdpdGhO
b1BhcmFtZXRlci5sYXlvdXREZWxlZ2F0ZSA9IGxheW91dERlbGVnYXRlOwotc2hvdWxkQmVUcnVl
KCIhIShpdGVtV2l0aE5vUGFyYW1ldGVyLmxheW91dFRyYWl0cyB8IExheW91dFRyYWl0cy5tYWNP
UykiKTsKLXNob3VsZEJlVHJ1ZSgiISEoaXRlbVdpdGhOb1BhcmFtZXRlci5sYXlvdXRUcmFpdHMg
fCBMYXlvdXRUcmFpdHMuRnVsbHNjcmVlbikiKTsKK3Nob3VsZEJlVHlwZSgiaXRlbVdpdGhOb1Bh
cmFtZXRlci5sYXlvdXRUcmFpdHMiLCAiTWFjT1NMYXlvdXRUcmFpdHMiKTsKK3Nob3VsZEJlVHJ1
ZSgiaXRlbVdpdGhOb1BhcmFtZXRlci5sYXlvdXRUcmFpdHMuaXNGdWxsc2NyZWVuIik7CiAKIGRl
YnVnKCIiKTsKIGRlYnVnKCJDcmVhdGluZyBhIExheW91dEl0ZW0gd2l0aCBhIGxheW91dCBkZWxl
Z2F0ZSBzZXQgYXQgY29uc3RydWN0aW9uLiIpOwogY29uc3QgaXRlbVdpdGhMYXlvdXREZWxlZ2F0
ZSA9IG5ldyBMYXlvdXRJdGVtKHsgbGF5b3V0RGVsZWdhdGUgfSk7Ci1zaG91bGRCZVRydWUoIiEh
KGl0ZW1XaXRoTGF5b3V0RGVsZWdhdGUubGF5b3V0VHJhaXRzIHwgTGF5b3V0VHJhaXRzLm1hY09T
KSIpOwotc2hvdWxkQmVUcnVlKCIhIShpdGVtV2l0aExheW91dERlbGVnYXRlLmxheW91dFRyYWl0
cyB8IExheW91dFRyYWl0cy5GdWxsc2NyZWVuKSIpOworc2hvdWxkQmVUeXBlKCJpdGVtV2l0aE5v
UGFyYW1ldGVyLmxheW91dFRyYWl0cyIsICJNYWNPU0xheW91dFRyYWl0cyIpOworc2hvdWxkQmVU
cnVlKCJpdGVtV2l0aE5vUGFyYW1ldGVyLmxheW91dFRyYWl0cy5pc0Z1bGxzY3JlZW4iKTsKIAog
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlh
LWNvbnRyb2xzLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1j
b250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNj
cmVlbi1tZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTUsMTMgKzUsMTQgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQQogCiBQQVNTIG1lZGlhQ29udHJvbHMuZWxlbWVudC5sb2NhbE5hbWUgaXMgImRpdiIKIFBB
U1MgbWVkaWFDb250cm9scy5lbGVtZW50LmNsYXNzTmFtZSBpcyAibWVkaWEtY29udHJvbHMgbWFj
IGZ1bGxzY3JlZW4iCi1QQVNTIG1lZGlhQ29udHJvbHMubGF5b3V0VHJhaXRzIGlzIExheW91dFRy
YWl0cy5tYWNPUyB8IExheW91dFRyYWl0cy5GdWxsc2NyZWVuCitQQVNTIG1lZGlhQ29udHJvbHMu
bGF5b3V0VHJhaXRzIGlzIGFuIGluc3RhbmNlIG9mIE1hY09TTGF5b3V0VHJhaXRzCitQQVNTIG1l
ZGlhQ29udHJvbHMubGF5b3V0VHJhaXRzLmlzRnVsbHNjcmVlbiBpcyB0cnVlCiAKIENvbnRyb2xz
IGJhcgogUEFTUyBtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxkcmVuLmxlbmd0
aCBpcyA0Ci1QQVNTIG1lZGlhQ29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIuY2hpbGRyZW5bMV0g
aW5zdGFuY2VvZiBCdXR0b25zQ29udGFpbmVyIGlzIHRydWUKLVBBU1MgbWVkaWFDb250cm9scy5i
b3R0b21Db250cm9sc0Jhci5jaGlsZHJlblsyXSBpbnN0YW5jZW9mIEJ1dHRvbnNDb250YWluZXIg
aXMgdHJ1ZQotUEFTUyBtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxkcmVuWzNd
IGluc3RhbmNlb2YgQnV0dG9uc0NvbnRhaW5lciBpcyB0cnVlCitQQVNTIG1lZGlhQ29udHJvbHMu
Ym90dG9tQ29udHJvbHNCYXIuY2hpbGRyZW5bMV0gaXMgYW4gaW5zdGFuY2Ugb2YgQnV0dG9uc0Nv
bnRhaW5lcgorUEFTUyBtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxkcmVuWzJd
IGlzIGFuIGluc3RhbmNlIG9mIEJ1dHRvbnNDb250YWluZXIKK1BBU1MgbWVkaWFDb250cm9scy5i
b3R0b21Db250cm9sc0Jhci5jaGlsZHJlblszXSBpcyBhbiBpbnN0YW5jZSBvZiBCdXR0b25zQ29u
dGFpbmVyCiAKIExlZnQgY29udGFpbmVyCiBQQVNTIG1lZGlhQ29udHJvbHMuYm90dG9tQ29udHJv
bHNCYXIuY2hpbGRyZW5bMV0uY2hpbGRyZW4gaXMgW21lZGlhQ29udHJvbHMudm9sdW1lU2xpZGVy
LCBtZWRpYUNvbnRyb2xzLm11dGVCdXR0b25dCkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1m
dWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4t
bWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rv
ci5odG1sCShyZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2Ny
ZWVuLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTks
MTQgKzksMTUgQEAgY29uc3QgbWVkaWFDb250cm9scyA9IG5ldyBNYWNPU0Z1bGxzY3JlZQogCiBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoIm1lZGlhQ29udHJvbHMuZWxlbWVudC5sb2NhbE5hbWUiLCAi
ZGl2Iik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1lZGlhQ29udHJvbHMuZWxlbWVudC5jbGFz
c05hbWUiLCAibWVkaWEtY29udHJvbHMgbWFjIGZ1bGxzY3JlZW4iKTsKLXNob3VsZEJlKCJtZWRp
YUNvbnRyb2xzLmxheW91dFRyYWl0cyIsICJMYXlvdXRUcmFpdHMubWFjT1MgfCBMYXlvdXRUcmFp
dHMuRnVsbHNjcmVlbiIpOworc2hvdWxkQmVUeXBlKCJtZWRpYUNvbnRyb2xzLmxheW91dFRyYWl0
cyIsICJNYWNPU0xheW91dFRyYWl0cyIpOworc2hvdWxkQmVUcnVlKCJtZWRpYUNvbnRyb2xzLmxh
eW91dFRyYWl0cy5pc0Z1bGxzY3JlZW4iKQogCiBkZWJ1ZygiIik7CiBkZWJ1ZygiQ29udHJvbHMg
YmFyIik7CiBzaG91bGRCZSgibWVkaWFDb250cm9scy5ib3R0b21Db250cm9sc0Jhci5jaGlsZHJl
bi5sZW5ndGgiLCAiNCIpOwotc2hvdWxkQmVUcnVlKCJtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRy
b2xzQmFyLmNoaWxkcmVuWzFdIGluc3RhbmNlb2YgQnV0dG9uc0NvbnRhaW5lciIpOwotc2hvdWxk
QmVUcnVlKCJtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxkcmVuWzJdIGluc3Rh
bmNlb2YgQnV0dG9uc0NvbnRhaW5lciIpOwotc2hvdWxkQmVUcnVlKCJtZWRpYUNvbnRyb2xzLmJv
dHRvbUNvbnRyb2xzQmFyLmNoaWxkcmVuWzNdIGluc3RhbmNlb2YgQnV0dG9uc0NvbnRhaW5lciIp
Oworc2hvdWxkQmVUeXBlKCJtZWRpYUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmNoaWxkcmVu
WzFdIiwgIkJ1dHRvbnNDb250YWluZXIiKTsKK3Nob3VsZEJlVHlwZSgibWVkaWFDb250cm9scy5i
b3R0b21Db250cm9sc0Jhci5jaGlsZHJlblsyXSIsICJCdXR0b25zQ29udGFpbmVyIik7CitzaG91
bGRCZVR5cGUoIm1lZGlhQ29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIuY2hpbGRyZW5bM10iLCAi
QnV0dG9uc0NvbnRhaW5lciIpOwogCiBkZWJ1ZygiIik7CiBkZWJ1ZygiTGVmdCBjb250YWluZXIi
KTsKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1p
bmxpbmUtbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVj
dG9yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzL21hY29zLWlubGluZS1t
ZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3OTMwNSkK
KysrIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUt
bWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNSwxMyArNSwxNCBAQCBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIFBBU1MgbWVkaWFDb250cm9scy5lbGVtZW50
LmxvY2FsTmFtZSBpcyAiZGl2IgogRkFJTCBtZWRpYUNvbnRyb2xzLmVsZW1lbnQuY2xhc3NOYW1l
IHNob3VsZCBiZSBtZWRpYS1jb250cm9scyBtYWMgaW5saW5lLiBXYXMgbWVkaWEtY29udHJvbHMg
aW5saW5lIG1hYy4KLVBBU1MgbWVkaWFDb250cm9scy5sYXlvdXRUcmFpdHMgaXMgTGF5b3V0VHJh
aXRzLm1hY09TCitQQVNTIG1lZGlhQ29udHJvbHMubGF5b3V0VHJhaXRzIGlzIGFuIGluc3RhbmNl
IG9mIE1hY09TTGF5b3V0VHJhaXRzCitQQVNTIG1lZGlhQ29udHJvbHMubGF5b3V0VHJhaXRzLmlz
RnVsbHNjcmVlbiBpcyBmYWxzZQogCiBDb250cm9scyBiYXIKIEZBSUwgbWVkaWFDb250cm9scy5j
b250cm9sc0Jhci5jaGlsZHJlbi5sZW5ndGggc2hvdWxkIGJlIDQuIFRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZWRpYUNv
bnRyb2xzLmNvbnRyb2xzQmFyLmNoaWxkcmVuJykKLUZBSUwgbWVkaWFDb250cm9scy5jb250cm9s
c0Jhci5jaGlsZHJlblsxXSBpbnN0YW5jZW9mIEJ1dHRvbnNDb250YWluZXIgc2hvdWxkIGJlIHRy
dWUuIFRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0
IChldmFsdWF0aW5nICdtZWRpYUNvbnRyb2xzLmNvbnRyb2xzQmFyLmNoaWxkcmVuJykKLUZBSUwg
bWVkaWFDb250cm9scy5jb250cm9sc0Jhci5jaGlsZHJlblsyXSBpbnN0YW5jZW9mIEJ1dHRvbnND
b250YWluZXIgc2hvdWxkIGJlIHRydWUuIFRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVm
aW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZWRpYUNvbnRyb2xzLmNvbnRyb2xz
QmFyLmNoaWxkcmVuJykKLUZBSUwgbWVkaWFDb250cm9scy5jb250cm9sc0Jhci5jaGlsZHJlblsz
XSBpbnN0YW5jZW9mIExheW91dE5vZGUgc2hvdWxkIGJlIHRydWUuIFRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdtZWRpYUNv
bnRyb2xzLmNvbnRyb2xzQmFyLmNoaWxkcmVuJykKK0ZBSUwgbWVkaWFDb250cm9scy5jb250cm9s
c0Jhci5jaGlsZHJlblsxXSBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgQnV0dG9uc0NvbnRhaW5lcgor
RkFJTCBtZWRpYUNvbnRyb2xzLmNvbnRyb2xzQmFyLmNoaWxkcmVuWzJdIGlzIG5vdCBhbiBpbnN0
YW5jZSBvZiBCdXR0b25zQ29udGFpbmVyCitGQUlMIG1lZGlhQ29udHJvbHMuY29udHJvbHNCYXIu
Y2hpbGRyZW5bM10gaXMgbm90IGFuIGluc3RhbmNlIG9mIExheW91dE5vZGUKIAogTGVmdCBjb250
YWluZXIKIEZBSUwgbWVkaWFDb250cm9scy5jb250cm9sc0Jhci5jaGlsZHJlblsxXS5idXR0b25z
IHNob3VsZCBiZSBbb2JqZWN0IE9iamVjdF0sW29iamVjdCBPYmplY3RdLiBUaHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnbWVk
aWFDb250cm9scy5jb250cm9sc0Jhci5jaGlsZHJlbicpCkluZGV4OiBMYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzL21hY29z
LWlubGluZS1tZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1pbmxpbmUtbWVkaWEt
Y29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLmh0bWwJKHJl
dmlzaW9uIDI3OTMwNSkKKysrIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy9tYWNvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMvbWFjb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xz
LWNvbnN0cnVjdG9yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksMTQgKzksMTUgQEAgY29uc3Qg
bWVkaWFDb250cm9scyA9IG5ldyBNYWNPU0lubGluZU1lZAogCiBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoIm1lZGlhQ29udHJvbHMuZWxlbWVudC5sb2NhbE5hbWUiLCAiZGl2Iik7CiBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoIm1lZGlhQ29udHJvbHMuZWxlbWVudC5jbGFzc05hbWUiLCAibWVkaWEtY29u
dHJvbHMgbWFjIGlubGluZSIpOwotc2hvdWxkQmUoIm1lZGlhQ29udHJvbHMubGF5b3V0VHJhaXRz
IiwgIkxheW91dFRyYWl0cy5tYWNPUyIpOworc2hvdWxkQmVUeXBlKCJtZWRpYUNvbnRyb2xzLmxh
eW91dFRyYWl0cyIsICJNYWNPU0xheW91dFRyYWl0cyIpOworc2hvdWxkQmVGYWxzZSgibWVkaWFD
b250cm9scy5sYXlvdXRUcmFpdHMuaXNGdWxsc2NyZWVuIik7CiAKIGRlYnVnKCIiKTsKIGRlYnVn
KCJDb250cm9scyBiYXIiKTsKIHNob3VsZEJlKCJtZWRpYUNvbnRyb2xzLmNvbnRyb2xzQmFyLmNo
aWxkcmVuLmxlbmd0aCIsICI0Iik7Ci1zaG91bGRCZVRydWUoIm1lZGlhQ29udHJvbHMuY29udHJv
bHNCYXIuY2hpbGRyZW5bMV0gaW5zdGFuY2VvZiBCdXR0b25zQ29udGFpbmVyIik7Ci1zaG91bGRC
ZVRydWUoIm1lZGlhQ29udHJvbHMuY29udHJvbHNCYXIuY2hpbGRyZW5bMl0gaW5zdGFuY2VvZiBC
dXR0b25zQ29udGFpbmVyIik7Ci1zaG91bGRCZVRydWUoIm1lZGlhQ29udHJvbHMuY29udHJvbHNC
YXIuY2hpbGRyZW5bM10gaW5zdGFuY2VvZiBMYXlvdXROb2RlIik7CitzaG91bGRCZVR5cGUoIm1l
ZGlhQ29udHJvbHMuY29udHJvbHNCYXIuY2hpbGRyZW5bMV0iLCAiQnV0dG9uc0NvbnRhaW5lciIp
Oworc2hvdWxkQmVUeXBlKCJtZWRpYUNvbnRyb2xzLmNvbnRyb2xzQmFyLmNoaWxkcmVuWzJdIiwg
IkJ1dHRvbnNDb250YWluZXIiKTsKK3Nob3VsZEJlVHlwZSgibWVkaWFDb250cm9scy5jb250cm9s
c0Jhci5jaGlsZHJlblszXSIsICJMYXlvdXROb2RlIik7CiAKIGRlYnVnKCIiKTsKIGRlYnVnKCJM
ZWZ0IGNvbnRhaW5lciIpOwpAQCAtNDUsMTAgKzQ2LDEwIEBAIG1lZGlhQ29udHJvbHMuYm90dG9t
Q29udHJvbHNCYXIuZWxlbWVudC4KIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobWVkaWFDb250
cm9scy5ib3R0b21Db250cm9sc0Jhci5lbGVtZW50KTsKIAogbWVkaWFDb250cm9scy5zaG91bGRV
c2VBdWRpb0xheW91dCA9IGZhbHNlOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJhY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoJ2dyb3VwcGluZy1sYWJlbCcpLmRl
c2NyaXB0aW9uIiwiQVhEZXNjcmlwdGlvbjogVmlkZW8gQ29udHJvbHMiKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlk
KCdncm91cHBpbmctbGFiZWwnKS5kZXNjcmlwdGlvbiIsICJBWERlc2NyaXB0aW9uOiBWaWRlbyBD
b250cm9scyIpOwogCiBtZWRpYUNvbnRyb2xzLnNob3VsZFVzZUF1ZGlvTGF5b3V0ID0gdHJ1ZTsK
LXNob3VsZEJlRXF1YWxUb1N0cmluZygiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJs
ZUVsZW1lbnRCeUlkKCdncm91cHBpbmctbGFiZWwnKS5kZXNjcmlwdGlvbiIsIkFYRGVzY3JpcHRp
b246IEF1ZGlvIENvbnRyb2xzIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgnZ3JvdXBwaW5nLWxhYmVsJykuZGVz
Y3JpcHRpb24iLCAiQVhEZXNjcmlwdGlvbjogQXVkaW8gQ29udHJvbHMiKTsKIAogZGVidWcoIiIp
OwogCkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEt
Y29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWZ1bGxzY3JlZW4tY2hhbmdlLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
bWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWZ1bGxzY3JlZW4tY2hhbmdlLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1l
ZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlci1mdWxsc2NyZWVu
LWNoYW5nZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTUsMTMgKzUsMTUgQEAgT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogCiBQQVNTIGludGVybmFscy5p
c0NoYW5naW5nUHJlc2VudGF0aW9uTW9kZShtZWRpYSkgYmVjYW1lIGZhbHNlCiBNZWRpYSBlbnRl
cmVkIGZ1bGxzY3JlZW4KLVBBU1MgbWVkaWFDb250cm9sbGVyLmxheW91dFRyYWl0cyBpcyBMYXlv
dXRUcmFpdHMubWFjT1MgfCBMYXlvdXRUcmFpdHMuRnVsbHNjcmVlbgotUEFTUyBtZWRpYUNvbnRy
b2xsZXIuY29udHJvbHMgaW5zdGFuY2VvZiBNYWNPU0Z1bGxzY3JlZW5NZWRpYUNvbnRyb2xzIGlz
IHRydWUKK1BBU1MgbWVkaWFDb250cm9sbGVyLmxheW91dFRyYWl0cyBpcyBhbiBpbnN0YW5jZSBv
ZiBNYWNPU0xheW91dFRyYWl0cworUEFTUyBtZWRpYUNvbnRyb2xsZXIubGF5b3V0VHJhaXRzLmlz
RnVsbHNjcmVlbiBpcyB0cnVlCitQQVNTIG1lZGlhQ29udHJvbGxlci5jb250cm9scyBpcyBhbiBp
bnN0YW5jZSBvZiBNYWNPU0Z1bGxzY3JlZW5NZWRpYUNvbnRyb2xzCiAKIFBBU1MgaW50ZXJuYWxz
LmlzQ2hhbmdpbmdQcmVzZW50YXRpb25Nb2RlKG1lZGlhKSBiZWNhbWUgZmFsc2UKIE1lZGlhIGV4
aXRlZCBmdWxsc2NyZWVuCi1QQVNTIG1lZGlhQ29udHJvbGxlci5sYXlvdXRUcmFpdHMgaXMgTGF5
b3V0VHJhaXRzLm1hY09TIHwgTGF5b3V0VHJhaXRzLklubGluZQotUEFTUyBtZWRpYUNvbnRyb2xs
ZXIuY29udHJvbHMgaW5zdGFuY2VvZiBNYWNPU0lubGluZU1lZGlhQ29udHJvbHMgaXMgdHJ1ZQor
UEFTUyBtZWRpYUNvbnRyb2xsZXIubGF5b3V0VHJhaXRzIGlzIGFuIGluc3RhbmNlIG9mIE1hY09T
TGF5b3V0VHJhaXRzCitQQVNTIG1lZGlhQ29udHJvbGxlci5sYXlvdXRUcmFpdHMuaXNGdWxsc2Ny
ZWVuIGlzIGZhbHNlCitQQVNTIG1lZGlhQ29udHJvbGxlci5jb250cm9scyBpcyBhbiBpbnN0YW5j
ZSBvZiBNYWNPU0lubGluZU1lZGlhQ29udHJvbHMKIAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
bWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWZ1bGxzY3JlZW4tY2hhbmdlLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21l
ZGlhLWNvbnRyb2xsZXIvbWVkaWEtY29udHJvbGxlci1mdWxsc2NyZWVuLWNoYW5nZS5odG1sCShy
ZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWZ1bGxzY3JlZW4tY2hhbmdlLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDE0ICs0NSwxNiBAQCBmdW5jdGlvbiB0b2dnbGVGdWxs
c2NyZWVuKCkKIHsKICAgICBpZiAobWVkaWEud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4pIHsK
ICAgICAgICAgZGVidWcoIk1lZGlhIGVudGVyZWQgZnVsbHNjcmVlbiIpOwotICAgICAgICBzaG91
bGRCZSgibWVkaWFDb250cm9sbGVyLmxheW91dFRyYWl0cyIsICJMYXlvdXRUcmFpdHMubWFjT1Mg
fCBMYXlvdXRUcmFpdHMuRnVsbHNjcmVlbiIpOwotICAgICAgICBzaG91bGRCZVRydWUoIm1lZGlh
Q29udHJvbGxlci5jb250cm9scyBpbnN0YW5jZW9mIE1hY09TRnVsbHNjcmVlbk1lZGlhQ29udHJv
bHMiKTsKKyAgICAgICAgc2hvdWxkQmVUeXBlKCJtZWRpYUNvbnRyb2xsZXIubGF5b3V0VHJhaXRz
IiwgIk1hY09TTGF5b3V0VHJhaXRzIik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgibWVkaWFDb250
cm9sbGVyLmxheW91dFRyYWl0cy5pc0Z1bGxzY3JlZW4iKTsKKyAgICAgICAgc2hvdWxkQmVUeXBl
KCJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMiLCAiTWFjT1NGdWxsc2NyZWVuTWVkaWFDb250cm9s
cyIpOwogICAgICAgICBkZWJ1ZygiIik7CiAgICAgICAgIG1lZGlhLndlYmtpdEV4aXRGdWxsc2Ny
ZWVuKCkKICAgICB9IGVsc2UgewogICAgICAgICBkZWJ1ZygiTWVkaWEgZXhpdGVkIGZ1bGxzY3Jl
ZW4iKTsKLSAgICAgICAgc2hvdWxkQmUoIm1lZGlhQ29udHJvbGxlci5sYXlvdXRUcmFpdHMiLCAi
TGF5b3V0VHJhaXRzLm1hY09TIHwgTGF5b3V0VHJhaXRzLklubGluZSIpOwotICAgICAgICBzaG91
bGRCZVRydWUoIm1lZGlhQ29udHJvbGxlci5jb250cm9scyBpbnN0YW5jZW9mIE1hY09TSW5saW5l
TWVkaWFDb250cm9scyIpOworICAgICAgICBzaG91bGRCZVR5cGUoIm1lZGlhQ29udHJvbGxlci5s
YXlvdXRUcmFpdHMiLCAiTWFjT1NMYXlvdXRUcmFpdHMiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxz
ZSgibWVkaWFDb250cm9sbGVyLmxheW91dFRyYWl0cy5pc0Z1bGxzY3JlZW4iKTsKKyAgICAgICAg
c2hvdWxkQmVUeXBlKCJtZWRpYUNvbnRyb2xsZXIuY29udHJvbHMiLCAiTWFjT1NJbmxpbmVNZWRp
YUNvbnRyb2xzIik7CiAKICAgICAgICAgZGVidWcoIiIpOwogICAgICAgICBzaGFkb3dSb290Lmhv
c3QucmVtb3ZlKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJv
bHMvbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbHMtYXBwZWFyLXdoZW4tZm9jdXMuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVk
aWEtY29udHJvbHMvbWVkaWEtY29udHJvbHMtYXBwZWFyLXdoZW4tZm9jdXMuaHRtbAkocmV2aXNp
b24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21l
ZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xzLWFwcGVhci13aGVuLWZvY3VzLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTUsNyArNSw3IEBACiAKIGRlc2NyaXB0aW9uKCJUZXN0aW5nIHRoZSB2aXNp
YmlsaXR5IG9mIDxjb2RlPk1lZGlhQ29udHJvbHM8L2NvZGU+IHdoZW4gb25lIG9mIGl0cyBidXR0
b25zIGZpcmVzIGEgZm9jdXMgZXZlbnQuIik7CiAKLWNvbnN0IG1lZGlhQ29udHJvbHMgPSBuZXcg
TWVkaWFDb250cm9scyh7IGxheW91dFRyYWl0czogTGF5b3V0VHJhaXRzLm1hY09TIH0pOworY29u
c3QgbWVkaWFDb250cm9scyA9IG5ldyBNZWRpYUNvbnRyb2xzKHsgbGF5b3V0VHJhaXRzOiBuZXcg
TWFjT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSB9KTsKIAogc2hvdWxk
QmVGYWxzZSgibWVkaWFDb250cm9scy5mYWRlZCIpOwogbWVkaWFDb250cm9scy5mYWRlZCA9IHRy
dWU7CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEt
Y29udHJvbHMvbWVkaWEtY29udHJvbHMtY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250
cm9scy9tZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3
OTMwNSkKKysrIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1j
b250cm9scy9tZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTgsMTkgKzgsMjAgQEAgUEFTUyBtZWRpYUNvbnRyb2xzLmVsZW1lbnQuY2xhc3NO
YW1lIGlzIAogCiBQQVNTIG1lZGlhQ29udHJvbHMud2lkdGggaXMgMzAwCiBQQVNTIG1lZGlhQ29u
dHJvbHMuaGVpZ2h0IGlzIDE1MAotUEFTUyBtZWRpYUNvbnRyb2xzLmxheW91dFRyYWl0cyBpcyBM
YXlvdXRUcmFpdHMubWFjT1MKK1BBU1MgbWVkaWFDb250cm9scy5sYXlvdXRUcmFpdHMgaXMgYW4g
aW5zdGFuY2Ugb2YgTWFjT1NMYXlvdXRUcmFpdHMKK1BBU1MgbWVkaWFDb250cm9scy5sYXlvdXRU
cmFpdHMuaXNGdWxsc2NyZWVuIGlzIGZhbHNlCiAKLVBBU1MgbWVkaWFDb250cm9scy5wbGF5UGF1
c2VCdXR0b24gaW5zdGFuY2VvZiBQbGF5UGF1c2VCdXR0b24gaXMgdHJ1ZQotUEFTUyBtZWRpYUNv
bnRyb2xzLmFpcnBsYXlCdXR0b24gaW5zdGFuY2VvZiBBaXJwbGF5QnV0dG9uIGlzIHRydWUKLVBB
U1MgbWVkaWFDb250cm9scy5waXBCdXR0b24gaW5zdGFuY2VvZiBQaVBCdXR0b24gaXMgdHJ1ZQot
UEFTUyBtZWRpYUNvbnRyb2xzLmZ1bGxzY3JlZW5CdXR0b24gaW5zdGFuY2VvZiBGdWxsc2NyZWVu
QnV0dG9uIGlzIHRydWUKLVBBU1MgbWVkaWFDb250cm9scy5zdGF0dXNMYWJlbCBpbnN0YW5jZW9m
IFN0YXR1c0xhYmVsIGlzIHRydWUKLVBBU1MgbWVkaWFDb250cm9scy50aW1lQ29udHJvbCBpbnN0
YW5jZW9mIFRpbWVDb250cm9sIGlzIHRydWUKLVBBU1MgbWVkaWFDb250cm9scy5haXJwbGF5UGxh
Y2FyZCBpbnN0YW5jZW9mIEFpcnBsYXlQbGFjYXJkIGlzIHRydWUKLVBBU1MgbWVkaWFDb250cm9s
cy5pbnZhbGlkUGxhY2FyZCBpbnN0YW5jZW9mIEludmFsaWRQbGFjYXJkIGlzIHRydWUKLVBBU1Mg
bWVkaWFDb250cm9scy5waXBQbGFjYXJkIGluc3RhbmNlb2YgUGlQUGxhY2FyZCBpcyB0cnVlCitQ
QVNTIG1lZGlhQ29udHJvbHMucGxheVBhdXNlQnV0dG9uIGlzIGFuIGluc3RhbmNlIG9mIFBsYXlQ
YXVzZUJ1dHRvbgorUEFTUyBtZWRpYUNvbnRyb2xzLmFpcnBsYXlCdXR0b24gaXMgYW4gaW5zdGFu
Y2Ugb2YgQWlycGxheUJ1dHRvbgorUEFTUyBtZWRpYUNvbnRyb2xzLnBpcEJ1dHRvbiBpcyBhbiBp
bnN0YW5jZSBvZiBQaVBCdXR0b24KK1BBU1MgbWVkaWFDb250cm9scy5mdWxsc2NyZWVuQnV0dG9u
IGlzIGFuIGluc3RhbmNlIG9mIEZ1bGxzY3JlZW5CdXR0b24KK1BBU1MgbWVkaWFDb250cm9scy5z
dGF0dXNMYWJlbCBpcyBhbiBpbnN0YW5jZSBvZiBTdGF0dXNMYWJlbAorUEFTUyBtZWRpYUNvbnRy
b2xzLnRpbWVDb250cm9sIGlzIGFuIGluc3RhbmNlIG9mIFRpbWVDb250cm9sCitQQVNTIG1lZGlh
Q29udHJvbHMuYWlycGxheVBsYWNhcmQgaXMgYW4gaW5zdGFuY2Ugb2YgQWlycGxheVBsYWNhcmQK
K1BBU1MgbWVkaWFDb250cm9scy5pbnZhbGlkUGxhY2FyZCBpcyBhbiBpbnN0YW5jZSBvZiBJbnZh
bGlkUGxhY2FyZAorUEFTUyBtZWRpYUNvbnRyb2xzLnBpcFBsYWNhcmQgaXMgYW4gaW5zdGFuY2Ug
b2YgUGlQUGxhY2FyZAogCi1QQVNTIG1lZGlhQ29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIgaW5z
dGFuY2VvZiBDb250cm9sc0JhciBpcyB0cnVlCitQQVNTIG1lZGlhQ29udHJvbHMuYm90dG9tQ29u
dHJvbHNCYXIgaXMgYW4gaW5zdGFuY2Ugb2YgQ29udHJvbHNCYXIKIFBBU1MgbWVkaWFDb250cm9s
cy5ib3R0b21Db250cm9sc0Jhci5lbGVtZW50LmxvY2FsTmFtZSBpcyAiZGl2IgogUEFTUyBtZWRp
YUNvbnRyb2xzLmJvdHRvbUNvbnRyb2xzQmFyLmVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdj
b250cm9scy1iYXInKSBpcyB0cnVlCiBQQVNTIG1lZGlhQ29udHJvbHMuYm90dG9tQ29udHJvbHNC
YXIuZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2JvdHRvbScpIGlzIHRydWUKSW5kZXg6IExh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9scy9tZWRp
YS1jb250cm9scy1jb25zdHJ1Y3Rvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9scy1j
b25zdHJ1Y3Rvci5odG1sCShyZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbHMtY29uc3Ry
dWN0b3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNSw3ICs1LDcgQEAKIAogZGVzY3JpcHRpb24o
IlRlc3RpbmcgdGhlIDxjb2RlPk1lZGlhQ29udHJvbHM8L2NvZGU+IGNvbnN0cnVjdG9yLiIpOwog
Ci1jb25zdCBtZWRpYUNvbnRyb2xzID0gbmV3IE1lZGlhQ29udHJvbHMoeyBsYXlvdXRUcmFpdHM6
IExheW91dFRyYWl0cy5tYWNPUyB9KTsKK2NvbnN0IG1lZGlhQ29udHJvbHMgPSBuZXcgTWVkaWFD
b250cm9scyh7IGxheW91dFRyYWl0czogbmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0
cy5Nb2RlLklubGluZSkgfSk7CiAKIHNob3VsZEJlRXF1YWxUb1N0cmluZygibWVkaWFDb250cm9s
cy5lbGVtZW50LmxvY2FsTmFtZSIsICJkaXYiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygibWVk
aWFDb250cm9scy5lbGVtZW50LmNsYXNzTmFtZSIsICJtZWRpYS1jb250cm9scyIpOwpAQCAtMTMs
MjcgKzEzLDI4IEBAIHNob3VsZEJlRXF1YWxUb1N0cmluZygibWVkaWFDb250cm9scy5lbGUKIGRl
YnVnKCIiKTsKIHNob3VsZEJlKCJtZWRpYUNvbnRyb2xzLndpZHRoIiwgIjMwMCIpOwogc2hvdWxk
QmUoIm1lZGlhQ29udHJvbHMuaGVpZ2h0IiwgIjE1MCIpOwotc2hvdWxkQmUoIm1lZGlhQ29udHJv
bHMubGF5b3V0VHJhaXRzIiwgIkxheW91dFRyYWl0cy5tYWNPUyIpOworc2hvdWxkQmVUeXBlKCJt
ZWRpYUNvbnRyb2xzLmxheW91dFRyYWl0cyIsICJNYWNPU0xheW91dFRyYWl0cyIpOworc2hvdWxk
QmVGYWxzZSgibWVkaWFDb250cm9scy5sYXlvdXRUcmFpdHMuaXNGdWxsc2NyZWVuIik7CiAKIGRl
YnVnKCIiKTsKLXNob3VsZEJlVHJ1ZSgibWVkaWFDb250cm9scy5wbGF5UGF1c2VCdXR0b24gaW5z
dGFuY2VvZiBQbGF5UGF1c2VCdXR0b24iKTsKLXNob3VsZEJlVHJ1ZSgibWVkaWFDb250cm9scy5h
aXJwbGF5QnV0dG9uIGluc3RhbmNlb2YgQWlycGxheUJ1dHRvbiIpOwotc2hvdWxkQmVUcnVlKCJt
ZWRpYUNvbnRyb2xzLnBpcEJ1dHRvbiBpbnN0YW5jZW9mIFBpUEJ1dHRvbiIpOwotc2hvdWxkQmVU
cnVlKCJtZWRpYUNvbnRyb2xzLmZ1bGxzY3JlZW5CdXR0b24gaW5zdGFuY2VvZiBGdWxsc2NyZWVu
QnV0dG9uIik7Ci1zaG91bGRCZVRydWUoIm1lZGlhQ29udHJvbHMuc3RhdHVzTGFiZWwgaW5zdGFu
Y2VvZiBTdGF0dXNMYWJlbCIpOwotc2hvdWxkQmVUcnVlKCJtZWRpYUNvbnRyb2xzLnRpbWVDb250
cm9sIGluc3RhbmNlb2YgVGltZUNvbnRyb2wiKTsKLXNob3VsZEJlVHJ1ZSgibWVkaWFDb250cm9s
cy5haXJwbGF5UGxhY2FyZCBpbnN0YW5jZW9mIEFpcnBsYXlQbGFjYXJkIik7Ci1zaG91bGRCZVRy
dWUoIm1lZGlhQ29udHJvbHMuaW52YWxpZFBsYWNhcmQgaW5zdGFuY2VvZiBJbnZhbGlkUGxhY2Fy
ZCIpOwotc2hvdWxkQmVUcnVlKCJtZWRpYUNvbnRyb2xzLnBpcFBsYWNhcmQgaW5zdGFuY2VvZiBQ
aVBQbGFjYXJkIik7CitzaG91bGRCZVR5cGUoIm1lZGlhQ29udHJvbHMucGxheVBhdXNlQnV0dG9u
IiwgIlBsYXlQYXVzZUJ1dHRvbiIpOworc2hvdWxkQmVUeXBlKCJtZWRpYUNvbnRyb2xzLmFpcnBs
YXlCdXR0b24iLCAiQWlycGxheUJ1dHRvbiIpOworc2hvdWxkQmVUeXBlKCJtZWRpYUNvbnRyb2xz
LnBpcEJ1dHRvbiIsICJQaVBCdXR0b24iKTsKK3Nob3VsZEJlVHlwZSgibWVkaWFDb250cm9scy5m
dWxsc2NyZWVuQnV0dG9uIiwgIkZ1bGxzY3JlZW5CdXR0b24iKTsKK3Nob3VsZEJlVHlwZSgibWVk
aWFDb250cm9scy5zdGF0dXNMYWJlbCIsICJTdGF0dXNMYWJlbCIpOworc2hvdWxkQmVUeXBlKCJt
ZWRpYUNvbnRyb2xzLnRpbWVDb250cm9sIiwgIlRpbWVDb250cm9sIik7CitzaG91bGRCZVR5cGUo
Im1lZGlhQ29udHJvbHMuYWlycGxheVBsYWNhcmQiLCAiQWlycGxheVBsYWNhcmQiKTsKK3Nob3Vs
ZEJlVHlwZSgibWVkaWFDb250cm9scy5pbnZhbGlkUGxhY2FyZCIsICJJbnZhbGlkUGxhY2FyZCIp
Oworc2hvdWxkQmVUeXBlKCJtZWRpYUNvbnRyb2xzLnBpcFBsYWNhcmQiLCAiUGlQUGxhY2FyZCIp
OwogCiBkZWJ1ZygiIik7Ci1zaG91bGRCZVRydWUoIm1lZGlhQ29udHJvbHMuYm90dG9tQ29udHJv
bHNCYXIgaW5zdGFuY2VvZiBDb250cm9sc0JhciIpOworc2hvdWxkQmVUeXBlKCJtZWRpYUNvbnRy
b2xzLmJvdHRvbUNvbnRyb2xzQmFyIiwgIkNvbnRyb2xzQmFyIik7CiBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoIm1lZGlhQ29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIuZWxlbWVudC5sb2NhbE5hbWUi
LCAiZGl2Iik7CiBzaG91bGRCZVRydWUoIm1lZGlhQ29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIu
ZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2NvbnRyb2xzLWJhcicpIik7CiBzaG91bGRCZVRy
dWUoIm1lZGlhQ29udHJvbHMuYm90dG9tQ29udHJvbHNCYXIuZWxlbWVudC5jbGFzc0xpc3QuY29u
dGFpbnMoJ2JvdHRvbScpIik7CiAKIGRlYnVnKCIiKTsKLWNvbnN0IG1lZGlhQ29udHJvbHNXaXRo
QXJndW1lbnRzID0gbmV3IE1lZGlhQ29udHJvbHMoeyB3aWR0aDogNjAwLCBoZWlnaHQ6IDMwMCwg
bGF5b3V0VHJhaXRzOiBMYXlvdXRUcmFpdHMubWFjT1MgfSk7Citjb25zdCBtZWRpYUNvbnRyb2xz
V2l0aEFyZ3VtZW50cyA9IG5ldyBNZWRpYUNvbnRyb2xzKHsgd2lkdGg6IDYwMCwgaGVpZ2h0OiAz
MDAsIGxheW91dFRyYWl0czogbmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2Rl
LklubGluZSkgfSk7CiBzaG91bGRCZSgibWVkaWFDb250cm9sc1dpdGhBcmd1bWVudHMud2lkdGgi
LCAiNjAwIik7CiBzaG91bGRCZSgibWVkaWFDb250cm9sc1dpdGhBcmd1bWVudHMuaGVpZ2h0Iiwg
IjMwMCIpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
bWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbHMtcGxhY2FyZC1jb21wcmVzc2VkLW1ldHJpY3Mt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9scy1wbGFjYXJkLWNvbXByZXNz
ZWQtbWV0cmljcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3OTMwNSkKKysrIExheW91dFRlc3Rz
L21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9scy9tZWRpYS1jb250cm9s
cy1wbGFjYXJkLWNvbXByZXNzZWQtbWV0cmljcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTUsNyArNSw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEEK
IAogbWVkaWFDb250cm9scy5wbGFjYXJkID0gbWVkaWFDb250cm9scy5haXJwbGF5UGxhY2FyZAog
UEFTUyBwbGFjYXJkQ29udGFpbmVyLmNoaWxkcmVuLmxlbmd0aCBpcyAzCi1QQVNTIHBsYWNhcmRD
b250YWluZXIuY2hpbGRyZW5bMF0gaW5zdGFuY2VvZiBCdXR0b24gaXMgdHJ1ZQorUEFTUyBwbGFj
YXJkQ29udGFpbmVyLmNoaWxkcmVuWzBdIGlzIGFuIGluc3RhbmNlIG9mIEJ1dHRvbgogUEFTUyBw
bGFjYXJkQ29udGFpbmVyLmNoaWxkcmVuWzFdLmVsZW1lbnQuY2xhc3NOYW1lIGlzICJ0aXRsZSIK
IFBBU1MgcGxhY2FyZENvbnRhaW5lci5jaGlsZHJlblsyXS5lbGVtZW50LmNsYXNzTmFtZSBpcyAi
ZGVzY3JpcHRpb24iCiAKQEAgLTMzLDcgKzMzLDcgQEAgUEFTUyBwbGFjYXJkQ29udGFpbmVyLmNo
aWxkcmVuLmxlbmd0aCBpcwogbWVkaWFDb250cm9scy53aWR0aCA9IDE3MAogbWVkaWFDb250cm9s
cy5oZWlnaHQgPSAxNzAKIFBBU1MgcGxhY2FyZENvbnRhaW5lci5jaGlsZHJlbi5sZW5ndGggaXMg
MwotUEFTUyBwbGFjYXJkQ29udGFpbmVyLmNoaWxkcmVuWzBdIGluc3RhbmNlb2YgQnV0dG9uIGlz
IHRydWUKK1BBU1MgcGxhY2FyZENvbnRhaW5lci5jaGlsZHJlblswXSBpcyBhbiBpbnN0YW5jZSBv
ZiBCdXR0b24KIFBBU1MgcGxhY2FyZENvbnRhaW5lci5jaGlsZHJlblsxXS5lbGVtZW50LmNsYXNz
TmFtZSBpcyAidGl0bGUiCiBQQVNTIHBsYWNhcmRDb250YWluZXIuY2hpbGRyZW5bMl0uZWxlbWVu
dC5jbGFzc05hbWUgaXMgImRlc2NyaXB0aW9uIgogCkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbHMtcGxhY2Fy
ZC1jb21wcmVzc2VkLW1ldHJpY3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbHMvbWVkaWEtY29udHJvbHMtcGxh
Y2FyZC1jb21wcmVzc2VkLW1ldHJpY3MuaHRtbAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0
VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21lZGlhLWNvbnRyb2xzL21lZGlhLWNv
bnRyb2xzLXBsYWNhcmQtY29tcHJlc3NlZC1tZXRyaWNzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTUsMTMgKzUsMTMgQEAKIAogZGVzY3JpcHRpb24oIlRlc3RpbmcgcGxhY2FyZCBtZXRyaWNzIGNv
bnN0cmFpbnRzLiIpOwogCi1jb25zdCBtZWRpYUNvbnRyb2xzID0gbmV3IE1lZGlhQ29udHJvbHMo
eyBsYXlvdXRUcmFpdHM6IExheW91dFRyYWl0cy5tYWNPUywgd2lkdGg6IDQwMCwgaGVpZ2h0OiAz
MDAgfSk7Citjb25zdCBtZWRpYUNvbnRyb2xzID0gbmV3IE1lZGlhQ29udHJvbHMoeyBsYXlvdXRU
cmFpdHM6IG5ldyBNYWNPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpLCB3
aWR0aDogNDAwLCBoZWlnaHQ6IDMwMCB9KTsKIAogbWVkaWFDb250cm9scy5wbGFjYXJkID0gbWVk
aWFDb250cm9scy5haXJwbGF5UGxhY2FyZDsKIGNvbnN0IHBsYWNhcmRDb250YWluZXIgPSBtZWRp
YUNvbnRyb2xzLnBsYWNhcmQuY2hpbGRyZW5bMF07CiBkZWJ1ZygibWVkaWFDb250cm9scy5wbGFj
YXJkID0gbWVkaWFDb250cm9scy5haXJwbGF5UGxhY2FyZCIpOwogc2hvdWxkQmUoInBsYWNhcmRD
b250YWluZXIuY2hpbGRyZW4ubGVuZ3RoIiwgIjMiKTsKLXNob3VsZEJlVHJ1ZSgicGxhY2FyZENv
bnRhaW5lci5jaGlsZHJlblswXSBpbnN0YW5jZW9mIEJ1dHRvbiIpOworc2hvdWxkQmVUeXBlKCJw
bGFjYXJkQ29udGFpbmVyLmNoaWxkcmVuWzBdIiwgIkJ1dHRvbiIpOwogc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJwbGFjYXJkQ29udGFpbmVyLmNoaWxkcmVuWzFdLmVsZW1lbnQuY2xhc3NOYW1lIiwg
InRpdGxlIik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInBsYWNhcmRDb250YWluZXIuY2hpbGRy
ZW5bMl0uZWxlbWVudC5jbGFzc05hbWUiLCAiZGVzY3JpcHRpb24iKTsKIApAQCAtNTIsNyArNTIs
NyBAQCBkZWJ1ZygibWVkaWFDb250cm9scy5oZWlnaHQgPSAxNzAiKTsKIG1lZGlhQ29udHJvbHMu
d2lkdGggPSAxNzA7CiBtZWRpYUNvbnRyb2xzLmhlaWdodCA9IDE3MDsKIHNob3VsZEJlKCJwbGFj
YXJkQ29udGFpbmVyLmNoaWxkcmVuLmxlbmd0aCIsICIzIik7Ci1zaG91bGRCZVRydWUoInBsYWNh
cmRDb250YWluZXIuY2hpbGRyZW5bMF0gaW5zdGFuY2VvZiBCdXR0b24iKTsKK3Nob3VsZEJlVHlw
ZSgicGxhY2FyZENvbnRhaW5lci5jaGlsZHJlblswXSIsICJCdXR0b24iKTsKIHNob3VsZEJlRXF1
YWxUb1N0cmluZygicGxhY2FyZENvbnRhaW5lci5jaGlsZHJlblsxXS5lbGVtZW50LmNsYXNzTmFt
ZSIsICJ0aXRsZSIpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJwbGFjYXJkQ29udGFpbmVyLmNo
aWxkcmVuWzJdLmVsZW1lbnQuY2xhc3NOYW1lIiwgImRlc2NyaXB0aW9uIik7CiAKSW5kZXg6IExh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tdXRlLWJ1dHRvbi9tdXRlLWJ1
dHRvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy9tdXRlLWJ1dHRvbi9tdXRlLWJ1dHRvbi5odG1sCShyZXZpc2lvbiAyNzkzMDUpCisr
KyBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbXV0ZS1idXR0b24vbXV0
ZS1idXR0b24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAgd2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOwogCiBkZXNjcmlwdGlvbigiVGVzdGluZyB0aGUgPGNvZGU+TXV0ZUJ1
dHRvbjwvY29kZT4gY2xhc3MuIik7CiAKLWNvbnN0IG11dGVCdXR0b24gPSBuZXcgTXV0ZUJ1dHRv
bih7IGxheW91dFRyYWl0czogTGF5b3V0VHJhaXRzLm1hY09TIH0pOworY29uc3QgbXV0ZUJ1dHRv
biA9IG5ldyBNdXRlQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBuZXcgTWFjT1NMYXlvdXRUcmFpdHMo
TGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSB9KTsKIAogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJt
dXRlQnV0dG9uLmVsZW1lbnQubG9jYWxOYW1lIiwgImJ1dHRvbiIpOwogc2hvdWxkQmVUcnVlKCdt
dXRlQnV0dG9uLmVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJtdXRlIiknKTsKSW5kZXg6IExh
eW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9vdmVyZmxvdy1idXR0b24vb3Zl
cmZsb3ctYnV0dG9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL292ZXJmbG93LWJ1dHRvbi9vdmVyZmxvdy1idXR0b24uaHRtbAkocmV2
aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L292ZXJmbG93LWJ1dHRvbi9vdmVyZmxvdy1idXR0b24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
OCwxMyArOCwxMyBAQCB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKIGRlc2NyaXB0aW9u
KCJUZXN0aW5nIHRoZSA8Y29kZT5PdmVyZmxvd0J1dHRvbjwvY29kZT4gY2xhc3MuIik7CiAKLWNv
bnN0IG92ZXJmbG93QnV0dG9uID0gbmV3IE92ZXJmbG93QnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBM
YXlvdXRUcmFpdHMubWFjT1MgfSk7Citjb25zdCBvdmVyZmxvd0J1dHRvbiA9IG5ldyBPdmVyZmxv
d0J1dHRvbih7IGxheW91dFRyYWl0czogbmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0
cy5Nb2RlLklubGluZSkgfSk7CiAKIHNob3VsZEJlRXF1YWxUb1N0cmluZygib3ZlcmZsb3dCdXR0
b24uZWxlbWVudC5sb2NhbE5hbWUiLCAiYnV0dG9uIik7CiBzaG91bGRCZVRydWUoJ292ZXJmbG93
QnV0dG9uLmVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJvdmVyZmxvdyIpJyk7CiBzaG91bGRC
ZSgib3ZlcmZsb3dCdXR0b24uaWNvbk5hbWUiLCAiSWNvbnMuT3ZlcmZsb3ciKTsKIAotY29uc3Qg
aU9TT3ZlcmZsb3dCdXR0b24gPSBuZXcgT3ZlcmZsb3dCdXR0b24oeyBsYXlvdXRUcmFpdHM6IExh
eW91dFRyYWl0cy5pT1MgfSk7Citjb25zdCBpT1NPdmVyZmxvd0J1dHRvbiA9IG5ldyBPdmVyZmxv
d0J1dHRvbih7IGxheW91dFRyYWl0czogbmV3IElPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMu
TW9kZS5JbmxpbmUpIH0pOwogCiBzaG91bGRCZWNvbWVFcXVhbCgnb3ZlcmZsb3dCdXR0b24uaW1h
Z2UuZWxlbWVudC5zdHlsZS53ZWJraXRNYXNrSW1hZ2UuaW5jbHVkZXMoIm1hY09TL092ZXJmbG93
LnN2ZyIpJywgInRydWUiLCAoKSA9PiB7CiAgICAgc2hvdWxkQmVjb21lRXF1YWwoJ2lPU092ZXJm
bG93QnV0dG9uLmltYWdlLmVsZW1lbnQuc3R5bGUud2Via2l0TWFza0ltYWdlLmluY2x1ZGVzKCJp
T1MvT3ZlcmZsb3cuc3ZnIiknLCAidHJ1ZSIsIGZpbmlzaEpTVGVzdCk7CkluZGV4OiBMYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcGlwLWJ1dHRvbi9waXAtYnV0dG9uLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3BpcC1idXR0b24vcGlwLWJ1dHRvbi5odG1sCShyZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRU
ZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcGlwLWJ1dHRvbi9waXAtYnV0dG9uLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsMTMgKzgsMTMgQEAgd2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOwogCiBkZXNjcmlwdGlvbigiVGVzdGluZyB0aGUgPGNvZGU+UGlQQnV0dG9uPC9jb2Rl
PiBjbGFzcy4iKTsKIAotY29uc3QgcGlwQnV0dG9uID0gbmV3IFBpUEJ1dHRvbih7IGxheW91dFRy
YWl0czogTGF5b3V0VHJhaXRzLm1hY09TIH0pOworY29uc3QgcGlwQnV0dG9uID0gbmV3IFBpUEJ1
dHRvbih7IGxheW91dFRyYWl0czogbmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5N
b2RlLklubGluZSkgfSk7CiAKIHNob3VsZEJlRXF1YWxUb1N0cmluZygicGlwQnV0dG9uLmVsZW1l
bnQubG9jYWxOYW1lIiwgImJ1dHRvbiIpOwogc2hvdWxkQmVUcnVlKCdwaXBCdXR0b24uZWxlbWVu
dC5jbGFzc0xpc3QuY29udGFpbnMoInBpcCIpJyk7CiBzaG91bGRCZSgicGlwQnV0dG9uLmljb25O
YW1lIiwgIkljb25zLkVudGVyUGlQIik7CiAKLWNvbnN0IGlPU1BpUEJ1dHRvbiA9IG5ldyBQaVBC
dXR0b24oeyBsYXlvdXRUcmFpdHM6IExheW91dFRyYWl0cy5pT1MgfSk7Citjb25zdCBpT1NQaVBC
dXR0b24gPSBuZXcgUGlQQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBuZXcgSU9TTGF5b3V0VHJhaXRz
KExheW91dFRyYWl0cy5Nb2RlLklubGluZSkgfSk7CiAKIHNob3VsZEJlY29tZUVxdWFsKCdwaXBC
dXR0b24uaW1hZ2UuZWxlbWVudC5zdHlsZS53ZWJraXRNYXNrSW1hZ2UuaW5jbHVkZXMoIm1hY09T
L1BpcEluLnN2ZyIpJywgInRydWUiLCAoKSA9PiB7CiAgICAgc2hvdWxkQmVjb21lRXF1YWwoJ2lP
U1BpUEJ1dHRvbi5pbWFnZS5lbGVtZW50LnN0eWxlLndlYmtpdE1hc2tJbWFnZS5pbmNsdWRlcygi
aU9TL1BpcEluLnN2ZyIpJywgInRydWUiLCAoKSA9PiB7CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcGlwLXBsYWNhcmQvcGlwLXBsYWNhcmQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcGlwLXBs
YWNhcmQvcGlwLXBsYWNhcmQuaHRtbAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMv
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3BpcC1wbGFjYXJkL3BpcC1wbGFjYXJkLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBACiBkZXNjcmlwdGlvbigiVGVzdGluZyB0aGUg
PGNvZGU+UGlQUGxhY2FyZDwvY29kZT4gY2xhc3MuIik7CiAKIGRlYnVnKCJQbGFjYXJkIHdpdGgg
YWxsIHBhcmFtZXRlcnMiKTsKLWNvbnN0IHBsYWNhcmQgPSBuZXcgUGlQUGxhY2FyZCh7IGxheW91
dFRyYWl0czogTGF5b3V0VHJhaXRzLm1hY09TIH0pOworY29uc3QgcGxhY2FyZCA9IG5ldyBQaVBQ
bGFjYXJkKHsgbGF5b3V0VHJhaXRzOiBuZXcgTWFjT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRz
Lk1vZGUuSW5saW5lKSB9KTsKIAogc2hvdWxkQmUoInBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRy
ZW5bMF0uaWNvbk5hbWUiLCAiSWNvbnMuUGlQUGxhY2FyZCIpOwogc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJwbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFdLmVsZW1lbnQuaW5uZXJUZXh0Iiwg
IlRoaXMgdmlkZW8gaXMgcGxheWluZyBpbiBwaWN0dXJlIGluIHBpY3R1cmUuIik7CkluZGV4OiBM
YXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcGxhY2FyZC9wbGFjYXJkLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEt
Y29udHJvbHMvcGxhY2FyZC9wbGFjYXJkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjc5MzA1KQor
KysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3BsYWNhcmQvcGxhY2Fy
ZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEwLDE0ICsxMCwxNCBAQCBQQVNTIHBs
YWNhcmQuY2hpbGRyZW4ubGVuZ3RoIGlzIDEKIFBBU1MgcGxhY2FyZC5jaGlsZHJlblswXS5lbGVt
ZW50LmxvY2FsTmFtZSBpcyAiZGl2IgogUEFTUyBwbGFjYXJkLmNoaWxkcmVuWzBdLmVsZW1lbnQu
Y2xhc3NOYW1lIGlzICJjb250YWluZXIiCiBQQVNTIHBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRy
ZW4ubGVuZ3RoIGlzIDMKLVBBU1MgcGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblswXSBpbnN0
YW5jZW9mIEJ1dHRvbiBpcyB0cnVlCitQQVNTIHBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW5b
MF0gaXMgYW4gaW5zdGFuY2Ugb2YgQnV0dG9uCiBQQVNTIHBsYWNhcmQuY2hpbGRyZW5bMF0uY2hp
bGRyZW5bMF0uaWNvbk5hbWUgaXMgSWNvbnMuQWlycGxheVBsYWNhcmQKIFBBU1MgcGxhY2FyZC5j
aGlsZHJlblswXS5jaGlsZHJlblswXS5lbGVtZW50LmRpc2FibGVkIGlzIHRydWUKLVBBU1MgcGxh
Y2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblsxXSBpbnN0YW5jZW9mIExheW91dE5vZGUgaXMgdHJ1
ZQorUEFTUyBwbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFdIGlzIGFuIGluc3RhbmNlIG9m
IExheW91dE5vZGUKIFBBU1MgcGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblsxXS5lbGVtZW50
LmxvY2FsTmFtZSBpcyAiZGl2IgogUEFTUyBwbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFd
LmVsZW1lbnQuY2xhc3NOYW1lIGlzICJ0aXRsZSIKIFBBU1MgcGxhY2FyZC5jaGlsZHJlblswXS5j
aGlsZHJlblsxXS5lbGVtZW50LmlubmVyVGV4dCBpcyAiTXkgdGl0bGUiCi1QQVNTIHBsYWNhcmQu
Y2hpbGRyZW5bMF0uY2hpbGRyZW5bMl0gaW5zdGFuY2VvZiBMYXlvdXROb2RlIGlzIHRydWUKK1BB
U1MgcGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblsyXSBpcyBhbiBpbnN0YW5jZSBvZiBMYXlv
dXROb2RlCiBQQVNTIHBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMl0uZWxlbWVudC5sb2Nh
bE5hbWUgaXMgImRpdiIKIFBBU1MgcGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblsyXS5lbGVt
ZW50LmNsYXNzTmFtZSBpcyAiZGVzY3JpcHRpb24iCiBQQVNTIHBsYWNhcmQuY2hpbGRyZW5bMF0u
Y2hpbGRyZW5bMl0uZWxlbWVudC5pbm5lclRleHQgaXMgIk15IGRlc2NyaXB0aW9uIgpAQCAtMjcs
MTcgKzI3LDE3IEBAIFBBU1MgZGVmYXVsdFBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW4KIAog
UGxhY2FyZCB3aXRoIG9ubHkgYSBkZXNjcmlwdGlvbgogUEFTUyBvbmx5RGVzY3JpcHRpb25QbGFj
YXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuLmxlbmd0aCBpcyAxCi1QQVNTIG9ubHlEZXNjcmlwdGlv
blBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0gaW5zdGFuY2VvZiBMYXlvdXROb2RlIGlz
IHRydWUKK1BBU1Mgb25seURlc2NyaXB0aW9uUGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblsw
XSBpcyBhbiBpbnN0YW5jZSBvZiBMYXlvdXROb2RlCiBQQVNTIG9ubHlEZXNjcmlwdGlvblBsYWNh
cmQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0uZWxlbWVudC5jbGFzc05hbWUgaXMgImRlc2NyaXB0
aW9uIgogCiBQbGFjYXJkIHdpdGggb25seSBhIHRpdGxlCiBQQVNTIG9ubHlUaXRsZVBsYWNhcmQu
Y2hpbGRyZW5bMF0uY2hpbGRyZW4ubGVuZ3RoIGlzIDEKLVBBU1Mgb25seVRpdGxlUGxhY2FyZC5j
aGlsZHJlblswXS5jaGlsZHJlblswXSBpbnN0YW5jZW9mIExheW91dE5vZGUgaXMgdHJ1ZQorUEFT
UyBvbmx5VGl0bGVQbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdIGlzIGFuIGluc3RhbmNl
IG9mIExheW91dE5vZGUKIFBBU1Mgb25seVRpdGxlUGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJl
blswXS5lbGVtZW50LmNsYXNzTmFtZSBpcyAidGl0bGUiCiAKIFBsYWNhcmQgd2l0aCBvbmx5IGFu
IGljb24KIFBBU1Mgb25seUljb25QbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuLmxlbmd0aCBp
cyAxCi1QQVNTIG9ubHlJY29uUGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblswXSBpbnN0YW5j
ZW9mIEJ1dHRvbiBpcyB0cnVlCitQQVNTIG9ubHlJY29uUGxhY2FyZC5jaGlsZHJlblswXS5jaGls
ZHJlblswXSBpcyBhbiBpbnN0YW5jZSBvZiBCdXR0b24KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJu
LW1lZGlhLWNvbnRyb2xzL3BsYWNhcmQvcGxhY2FyZC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9wbGFjYXJkL3BsYWNhcmQuaHRtbAko
cmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3BsYWNhcmQvcGxhY2FyZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsxMCw3IEBA
IGNvbnN0IHBsYWNhcmQgPSBuZXcgUGxhY2FyZCh7CiAgICAgaWNvbk5hbWU6IEljb25zLkFpcnBs
YXlQbGFjYXJkLAogICAgIHRpdGxlOiAiTXkgdGl0bGUiLAogICAgIGRlc2NyaXB0aW9uOiAiTXkg
ZGVzY3JpcHRpb24iLAotICAgIGxheW91dERlbGVnYXRlOiB7IGxheW91dFRyYWl0czogTGF5b3V0
VHJhaXRzLm1hY09TIH0KKyAgICBsYXlvdXREZWxlZ2F0ZTogeyBsYXlvdXRUcmFpdHM6IG5ldyBN
YWNPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpIH0KIH0pOwogCiBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInBsYWNhcmQuZWxlbWVudC5sb2NhbE5hbWUiLCAiZGl2Iik7CkBA
IC0xOSwxNCArMTksMTQgQEAgc2hvdWxkQmUoInBsYWNhcmQuY2hpbGRyZW4ubGVuZ3RoIiwgIjEi
KQogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJwbGFjYXJkLmNoaWxkcmVuWzBdLmVsZW1lbnQubG9j
YWxOYW1lIiwgImRpdiIpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJwbGFjYXJkLmNoaWxkcmVu
WzBdLmVsZW1lbnQuY2xhc3NOYW1lIiwgImNvbnRhaW5lciIpOwogc2hvdWxkQmUoInBsYWNhcmQu
Y2hpbGRyZW5bMF0uY2hpbGRyZW4ubGVuZ3RoIiwgIjMiKTsKLXNob3VsZEJlVHJ1ZSgicGxhY2Fy
ZC5jaGlsZHJlblswXS5jaGlsZHJlblswXSBpbnN0YW5jZW9mIEJ1dHRvbiIpOworc2hvdWxkQmVU
eXBlKCJwbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdIiwgIkJ1dHRvbiIpOwogc2hvdWxk
QmUoInBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0uaWNvbk5hbWUiLCAiSWNvbnMuQWly
cGxheVBsYWNhcmQiKTsKIHNob3VsZEJlVHJ1ZSgicGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJl
blswXS5lbGVtZW50LmRpc2FibGVkIik7Ci1zaG91bGRCZVRydWUoInBsYWNhcmQuY2hpbGRyZW5b
MF0uY2hpbGRyZW5bMV0gaW5zdGFuY2VvZiBMYXlvdXROb2RlIik7CitzaG91bGRCZVR5cGUoInBs
YWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0iLCAiTGF5b3V0Tm9kZSIpOwogc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJwbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFdLmVsZW1lbnQubG9j
YWxOYW1lIiwgImRpdiIpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJwbGFjYXJkLmNoaWxkcmVu
WzBdLmNoaWxkcmVuWzFdLmVsZW1lbnQuY2xhc3NOYW1lIiwgInRpdGxlIik7CiBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0uZWxlbWVudC5pbm5l
clRleHQiLCAiTXkgdGl0bGUiKTsKLXNob3VsZEJlVHJ1ZSgicGxhY2FyZC5jaGlsZHJlblswXS5j
aGlsZHJlblsyXSBpbnN0YW5jZW9mIExheW91dE5vZGUiKTsKK3Nob3VsZEJlVHlwZSgicGxhY2Fy
ZC5jaGlsZHJlblswXS5jaGlsZHJlblsyXSIsICJMYXlvdXROb2RlIik7CiBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMl0uZWxlbWVudC5sb2NhbE5h
bWUiLCAiZGl2Iik7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInBsYWNhcmQuY2hpbGRyZW5bMF0u
Y2hpbGRyZW5bMl0uZWxlbWVudC5jbGFzc05hbWUiLCAiZGVzY3JpcHRpb24iKTsKIHNob3VsZEJl
RXF1YWxUb1N0cmluZygicGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblsyXS5lbGVtZW50Lmlu
bmVyVGV4dCIsICJNeSBkZXNjcmlwdGlvbiIpOwpAQCAtNDAsMjEgKzQwLDIxIEBAIGRlYnVnKCIi
KTsKIGRlYnVnKCJQbGFjYXJkIHdpdGggb25seSBhIGRlc2NyaXB0aW9uIik7CiBjb25zdCBvbmx5
RGVzY3JpcHRpb25QbGFjYXJkID0gbmV3IFBsYWNhcmQoeyBkZXNjcmlwdGlvbjogIk15IGRlc2Ny
aXB0aW9uIiB9KTsKIHNob3VsZEJlKCJvbmx5RGVzY3JpcHRpb25QbGFjYXJkLmNoaWxkcmVuWzBd
LmNoaWxkcmVuLmxlbmd0aCIsICIxIik7Ci1zaG91bGRCZVRydWUoIm9ubHlEZXNjcmlwdGlvblBs
YWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0gaW5zdGFuY2VvZiBMYXlvdXROb2RlIik7Citz
aG91bGRCZVR5cGUoIm9ubHlEZXNjcmlwdGlvblBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW5b
MF0iLCAiTGF5b3V0Tm9kZSIpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJvbmx5RGVzY3JpcHRp
b25QbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmVsZW1lbnQuY2xhc3NOYW1lIiwgImRl
c2NyaXB0aW9uIik7CiAKIGRlYnVnKCIiKTsKIGRlYnVnKCJQbGFjYXJkIHdpdGggb25seSBhIHRp
dGxlIik7CiBjb25zdCBvbmx5VGl0bGVQbGFjYXJkID0gbmV3IFBsYWNhcmQoeyB0aXRsZTogIk15
IHRpdGxlIiB9KTsKIHNob3VsZEJlKCJvbmx5VGl0bGVQbGFjYXJkLmNoaWxkcmVuWzBdLmNoaWxk
cmVuLmxlbmd0aCIsICIxIik7Ci1zaG91bGRCZVRydWUoIm9ubHlUaXRsZVBsYWNhcmQuY2hpbGRy
ZW5bMF0uY2hpbGRyZW5bMF0gaW5zdGFuY2VvZiBMYXlvdXROb2RlIik7CitzaG91bGRCZVR5cGUo
Im9ubHlUaXRsZVBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0iLCAiTGF5b3V0Tm9kZSIp
Owogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJvbmx5VGl0bGVQbGFjYXJkLmNoaWxkcmVuWzBdLmNo
aWxkcmVuWzBdLmVsZW1lbnQuY2xhc3NOYW1lIiwgInRpdGxlIik7CiAKIGRlYnVnKCIiKTsKIGRl
YnVnKCJQbGFjYXJkIHdpdGggb25seSBhbiBpY29uIik7Ci1jb25zdCBvbmx5SWNvblBsYWNhcmQg
PSBuZXcgUGxhY2FyZCh7IGljb25OYW1lOiBJY29ucy5BaXJwbGF5UGxhY2FyZCwgbGF5b3V0RGVs
ZWdhdGU6IHsgbGF5b3V0VHJhaXRzOiBMYXlvdXRUcmFpdHMubWFjT1MgfSB9KTsKK2NvbnN0IG9u
bHlJY29uUGxhY2FyZCA9IG5ldyBQbGFjYXJkKHsgaWNvbk5hbWU6IEljb25zLkFpcnBsYXlQbGFj
YXJkLCBsYXlvdXREZWxlZ2F0ZTogeyBsYXlvdXRUcmFpdHM6IG5ldyBNYWNPU0xheW91dFRyYWl0
cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpIH0gfSk7CiBzaG91bGRCZSgib25seUljb25QbGFj
YXJkLmNoaWxkcmVuWzBdLmNoaWxkcmVuLmxlbmd0aCIsICIxIik7Ci1zaG91bGRCZVRydWUoIm9u
bHlJY29uUGxhY2FyZC5jaGlsZHJlblswXS5jaGlsZHJlblswXSBpbnN0YW5jZW9mIEJ1dHRvbiIp
Oworc2hvdWxkQmVUeXBlKCJvbmx5SWNvblBsYWNhcmQuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0i
LCAiQnV0dG9uIik7CiAKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvbW9k
ZXJuLW1lZGlhLWNvbnRyb2xzL3BsYXktcGF1c2UtYnV0dG9uL3BsYXktcGF1c2UtYnV0dG9uLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3BsYXktcGF1c2UtYnV0dG9uL3BsYXktcGF1c2UtYnV0dG9uLmh0bWwJKHJldmlzaW9uIDI3OTMw
NSkKKysrIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9wbGF5LXBhdXNl
LWJ1dHRvbi9wbGF5LXBhdXNlLWJ1dHRvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDI1ICs4
LDI1IEBAIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogZGVzY3JpcHRpb24oIlRlc3Rp
bmcgdGhlIDxjb2RlPlBsYXlQYXVzZUJ1dHRvbjwvY29kZT4gY2xhc3MuIik7CiAKLWNvbnN0IHBs
YXlCdXR0b24gPSBuZXcgUGxheVBhdXNlQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBMYXlvdXRUcmFp
dHMubWFjT1MgfSk7Citjb25zdCBwbGF5QnV0dG9uID0gbmV3IFBsYXlQYXVzZUJ1dHRvbih7IGxh
eW91dFRyYWl0czogbmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLklubGlu
ZSkgfSk7CiAKIHNob3VsZEJlRXF1YWxUb1N0cmluZygicGxheUJ1dHRvbi5lbGVtZW50LmxvY2Fs
TmFtZSIsICJidXR0b24iKTsKIHNob3VsZEJlVHJ1ZSgncGxheUJ1dHRvbi5lbGVtZW50LmNsYXNz
TGlzdC5jb250YWlucygicGxheS1wYXVzZSIpJyk7CiBzaG91bGRCZSgicGxheUJ1dHRvbi5pY29u
TmFtZSIsICJJY29ucy5QbGF5Iik7CiBzaG91bGRCZUZhbHNlKCJwbGF5QnV0dG9uLnBsYXlpbmci
KTsKIAotY29uc3QgZnVsbHNjcmVlblBsYXlCdXR0b24gPSBuZXcgUGxheVBhdXNlQnV0dG9uKHsg
bGF5b3V0VHJhaXRzOiBMYXlvdXRUcmFpdHMubWFjT1MgfCBMYXlvdXRUcmFpdHMuRnVsbHNjcmVl
biB9KTsKLWNvbnN0IGlPU1BsYXlCdXR0b24gPSBuZXcgUGxheVBhdXNlQnV0dG9uKHsgbGF5b3V0
VHJhaXRzOiBMYXlvdXRUcmFpdHMuaU9TIH0pOworY29uc3QgZnVsbHNjcmVlblBsYXlCdXR0b24g
PSBuZXcgUGxheVBhdXNlQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBuZXcgTWFjT1NMYXlvdXRUcmFp
dHMoTGF5b3V0VHJhaXRzLk1vZGUuRnVsbHNjcmVlbikgfSk7Citjb25zdCBpT1NQbGF5QnV0dG9u
ID0gbmV3IFBsYXlQYXVzZUJ1dHRvbih7IGxheW91dFRyYWl0czogbmV3IElPU0xheW91dFRyYWl0
cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUpIH0pOwogCi1jb25zdCBwYXVzZUJ1dHRvbiA9IG5l
dyBQbGF5UGF1c2VCdXR0b24oeyBsYXlvdXRUcmFpdHM6IExheW91dFRyYWl0cy5tYWNPUyB9KTsK
K2NvbnN0IHBhdXNlQnV0dG9uID0gbmV3IFBsYXlQYXVzZUJ1dHRvbih7IGxheW91dFRyYWl0czog
bmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLklubGluZSkgfSk7CiBwYXVz
ZUJ1dHRvbi5wbGF5aW5nID0gdHJ1ZTsKIHNob3VsZEJlVHJ1ZSgicGF1c2VCdXR0b24ucGxheWlu
ZyIpOwogc2hvdWxkQmUoInBhdXNlQnV0dG9uLmljb25OYW1lIiwgIkljb25zLlBhdXNlIik7CiAK
LWNvbnN0IGZ1bGxzY3JlZW5QYXVzZUJ1dHRvbiA9IG5ldyBQbGF5UGF1c2VCdXR0b24oeyBsYXlv
dXRUcmFpdHM6IExheW91dFRyYWl0cy5tYWNPUyB8IExheW91dFRyYWl0cy5GdWxsc2NyZWVuIH0p
OworY29uc3QgZnVsbHNjcmVlblBhdXNlQnV0dG9uID0gbmV3IFBsYXlQYXVzZUJ1dHRvbih7IGxh
eW91dFRyYWl0czogbmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLkZ1bGxz
Y3JlZW4pIH0pOwogZnVsbHNjcmVlblBhdXNlQnV0dG9uLnBsYXlpbmcgPSB0cnVlOwogCi1jb25z
dCBpT1NQYXVzZUJ1dHRvbiA9IG5ldyBQbGF5UGF1c2VCdXR0b24oeyBsYXlvdXRUcmFpdHM6IExh
eW91dFRyYWl0cy5pT1MgfSk7Citjb25zdCBpT1NQYXVzZUJ1dHRvbiA9IG5ldyBQbGF5UGF1c2VC
dXR0b24oeyBsYXlvdXRUcmFpdHM6IG5ldyBJT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1v
ZGUuSW5saW5lKSB9KTsKIGlPU1BhdXNlQnV0dG9uLnBsYXlpbmcgPSB0cnVlOwogCiBzaG91bGRC
ZWNvbWVFcXVhbCgncGxheUJ1dHRvbi5pbWFnZS5lbGVtZW50LnN0eWxlLndlYmtpdE1hc2tJbWFn
ZS5pbmNsdWRlcygibWFjT1MvUGxheS5zdmciKScsICJ0cnVlIiwgKCkgPT4gewpJbmRleDogTGF5
b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Jld2luZC1idXR0b24vcmV3aW5k
LWJ1dHRvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9yZXdpbmQtYnV0dG9uL3Jld2luZC1idXR0b24uaHRtbAkocmV2aXNpb24gMjc5
MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Jld2luZC1i
dXR0b24vcmV3aW5kLWJ1dHRvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQCB3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKIGRlc2NyaXB0aW9uKCJUZXN0aW5nIHRoZSA8
Y29kZT5SZXdpbmRCdXR0b248L2NvZGU+IGNsYXNzLiIpOwogCi1jb25zdCByZXdpbmRCdXR0b24g
PSBuZXcgUmV3aW5kQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBMYXlvdXRUcmFpdHMubWFjT1MgfSk7
Citjb25zdCByZXdpbmRCdXR0b24gPSBuZXcgUmV3aW5kQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBu
ZXcgTWFjT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSB9KTsKIAogc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJyZXdpbmRCdXR0b24uZWxlbWVudC5sb2NhbE5hbWUiLCAiYnV0
dG9uIik7CiBzaG91bGRCZVRydWUoJ3Jld2luZEJ1dHRvbi5lbGVtZW50LmNsYXNzTGlzdC5jb250
YWlucygicmV3aW5kIiknKTsKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1j
b250cm9scy9za2lwLWJhY2stYnV0dG9uL3NraXAtYmFjay1idXR0b24uaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvc2tpcC1iYWNrLWJ1
dHRvbi9za2lwLWJhY2stYnV0dG9uLmh0bWwJKHJldmlzaW9uIDI3OTMwNSkKKysrIExheW91dFRl
c3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9za2lwLWJhY2stYnV0dG9uL3NraXAtYmFj
ay1idXR0b24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCwxMyArOCwxMyBAQCB3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CiAKIGRlc2NyaXB0aW9uKCJUZXN0aW5nIHRoZSA8Y29kZT5Ta2lw
QmFja0J1dHRvbjwvY29kZT4gY2xhc3MuIik7CiAKLWNvbnN0IHNraXBCYWNrQnV0dG9uID0gbmV3
IFNraXBCYWNrQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBMYXlvdXRUcmFpdHMubWFjT1MgfSk7Citj
b25zdCBza2lwQmFja0J1dHRvbiA9IG5ldyBTa2lwQmFja0J1dHRvbih7IGxheW91dFRyYWl0czog
bmV3IE1hY09TTGF5b3V0VHJhaXRzKExheW91dFRyYWl0cy5Nb2RlLklubGluZSkgfSk7CiAKIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygic2tpcEJhY2tCdXR0b24uZWxlbWVudC5sb2NhbE5hbWUiLCAi
YnV0dG9uIik7CiBzaG91bGRCZVRydWUoJ3NraXBCYWNrQnV0dG9uLmVsZW1lbnQuY2xhc3NMaXN0
LmNvbnRhaW5zKCJza2lwLWJhY2siKScpOwogc2hvdWxkQmUoInNraXBCYWNrQnV0dG9uLmljb25O
YW1lIiwgIkljb25zLlNraXBCYWNrIik7CiAKLWNvbnN0IGlPU1NraXBCYWNrQnV0dG9uID0gbmV3
IFNraXBCYWNrQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBMYXlvdXRUcmFpdHMuaU9TIH0pOworY29u
c3QgaU9TU2tpcEJhY2tCdXR0b24gPSBuZXcgU2tpcEJhY2tCdXR0b24oeyBsYXlvdXRUcmFpdHM6
IG5ldyBJT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSB9KTsKIAogc2hv
dWxkQmVjb21lRXF1YWwoJ3NraXBCYWNrQnV0dG9uLmltYWdlLmVsZW1lbnQuc3R5bGUud2Via2l0
TWFza0ltYWdlLmluY2x1ZGVzKCJtYWNPUy9Ta2lwQmFjazE1LnN2ZyIpJywgInRydWUiLCAoKSA9
PiB7CiAgICAgc2hvdWxkQmVjb21lRXF1YWwoJ2lPU1NraXBCYWNrQnV0dG9uLmltYWdlLmVsZW1l
bnQuc3R5bGUud2Via2l0TWFza0ltYWdlLmluY2x1ZGVzKCJpT1MvU2tpcEJhY2sxNS5zdmciKScs
ICJ0cnVlIiwgZmluaXNoSlNUZXN0KTsKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy9za2lwLWZvcndhcmQtYnV0dG9uL3NraXAtZm9yd2FyZC1idXR0b24uaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMv
c2tpcC1mb3J3YXJkLWJ1dHRvbi9za2lwLWZvcndhcmQtYnV0dG9uLmh0bWwJKHJldmlzaW9uIDI3
OTMwNSkKKysrIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9za2lwLWZv
cndhcmQtYnV0dG9uL3NraXAtZm9yd2FyZC1idXR0b24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
OCwxMyArOCwxMyBAQCB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKIGRlc2NyaXB0aW9u
KCJUZXN0aW5nIHRoZSA8Y29kZT5Ta2lwRm9yd2FyZEJ1dHRvbjwvY29kZT4gY2xhc3MuIik7CiAK
LWNvbnN0IHNraXBGb3J3YXJkQnV0dG9uID0gbmV3IFNraXBGb3J3YXJkQnV0dG9uKHsgbGF5b3V0
VHJhaXRzOiBMYXlvdXRUcmFpdHMubWFjT1MgfSk7Citjb25zdCBza2lwRm9yd2FyZEJ1dHRvbiA9
IG5ldyBTa2lwRm9yd2FyZEJ1dHRvbih7IGxheW91dFRyYWl0czogbmV3IE1hY09TTGF5b3V0VHJh
aXRzKExheW91dFRyYWl0cy5Nb2RlLklubGluZSkgfSk7CiAKIHNob3VsZEJlRXF1YWxUb1N0cmlu
Zygic2tpcEZvcndhcmRCdXR0b24uZWxlbWVudC5sb2NhbE5hbWUiLCAiYnV0dG9uIik7CiBzaG91
bGRCZVRydWUoJ3NraXBGb3J3YXJkQnV0dG9uLmVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJz
a2lwLWZvcndhcmQiKScpOwogc2hvdWxkQmUoInNraXBGb3J3YXJkQnV0dG9uLmljb25OYW1lIiwg
Ikljb25zLlNraXBGb3J3YXJkIik7CiAKLWNvbnN0IGlPU1NraXBGb3J3YXJkQnV0dG9uID0gbmV3
IFNraXBGb3J3YXJkQnV0dG9uKHsgbGF5b3V0VHJhaXRzOiBMYXlvdXRUcmFpdHMuaU9TIH0pOwor
Y29uc3QgaU9TU2tpcEZvcndhcmRCdXR0b24gPSBuZXcgU2tpcEZvcndhcmRCdXR0b24oeyBsYXlv
dXRUcmFpdHM6IG5ldyBJT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSB9
KTsKIAogc2hvdWxkQmVjb21lRXF1YWwoJ3NraXBGb3J3YXJkQnV0dG9uLmltYWdlLmVsZW1lbnQu
c3R5bGUud2Via2l0TWFza0ltYWdlLmluY2x1ZGVzKCJtYWNPUy9Ta2lwRm9yd2FyZDE1LnN2ZyIp
JywgInRydWUiLCAoKSA9PiB7CiAgICAgc2hvdWxkQmVjb21lRXF1YWwoJ2lPU1NraXBGb3J3YXJk
QnV0dG9uLmltYWdlLmVsZW1lbnQuc3R5bGUud2Via2l0TWFza0ltYWdlLmluY2x1ZGVzKCJpT1Mv
U2tpcEZvcndhcmQxNS5zdmciKScsICJ0cnVlIiwgZmluaXNoSlNUZXN0KTsKSW5kZXg6IExheW91
dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy90aW1lLWNvbnRyb2wvdGltZS1jb250
cm9sLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdGltZS1jb250cm9sL3RpbWUtY29udHJvbC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDI3OTMwNSkKKysrIExheW91dFRlc3RzL21lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy90aW1lLWNvbnRyb2wvdGltZS1jb250cm9sLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtNiw5ICs2LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQog
UEFTUyB0aW1lQ29udHJvbC5lbGVtZW50LmxvY2FsTmFtZSBpcyAiZGl2IgogUEFTUyB0aW1lQ29u
dHJvbC5lbGVtZW50LmNsYXNzTmFtZSBpcyAidGltZS1jb250cm9sIgogCi1QQVNTIHRpbWVDb250
cm9sLmVsYXBzZWRUaW1lTGFiZWwgaW5zdGFuY2VvZiBUaW1lTGFiZWwgaXMgdHJ1ZQotUEFTUyB0
aW1lQ29udHJvbC5zY3J1YmJlciBpbnN0YW5jZW9mIFNsaWRlciBpcyB0cnVlCi1QQVNTIHRpbWVD
b250cm9sLnJlbWFpbmluZ1RpbWVMYWJlbCBpbnN0YW5jZW9mIFRpbWVMYWJlbCBpcyB0cnVlCitQ
QVNTIHRpbWVDb250cm9sLmVsYXBzZWRUaW1lTGFiZWwgaXMgYW4gaW5zdGFuY2Ugb2YgVGltZUxh
YmVsCitQQVNTIHRpbWVDb250cm9sLnNjcnViYmVyIGlzIGFuIGluc3RhbmNlIG9mIFNsaWRlcgor
UEFTUyB0aW1lQ29udHJvbC5yZW1haW5pbmdUaW1lTGFiZWwgaXMgYW4gaW5zdGFuY2Ugb2YgVGlt
ZUxhYmVsCiAKIHRpbWVDb250cm9sLndpZHRoID0gNTAwOwogUEFTUyB0aW1lQ29udHJvbC5jaGls
ZHJlbi5sZW5ndGggaXMgMwpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL3RpbWUtY29udHJvbC90aW1lLWNvbnRyb2wuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvdGltZS1jb250cm9sL3RpbWUtY29u
dHJvbC5odG1sCShyZXZpc2lvbiAyNzkzMDUpCisrKyBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rlcm4t
bWVkaWEtY29udHJvbHMvdGltZS1jb250cm9sL3RpbWUtY29udHJvbC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC01LDE1ICs1LDE1IEBACiAKIGRlc2NyaXB0aW9uKCJUZXN0aW5nIHRoZSA8Y29kZT5U
aW1lQ29udHJvbDwvY29kZT4gY2xhc3MuIik7CiAKLWNvbnN0IHRpbWVDb250cm9sID0gbmV3IFRp
bWVDb250cm9sOworY29uc3QgdGltZUNvbnRyb2wgPSBuZXcgVGltZUNvbnRyb2woeyBsYXlvdXRU
cmFpdHM6IG5ldyBJT1NMYXlvdXRUcmFpdHMoTGF5b3V0VHJhaXRzLk1vZGUuSW5saW5lKSB9KTsK
IAogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0aW1lQ29udHJvbC5lbGVtZW50LmxvY2FsTmFtZSIs
ICJkaXYiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygidGltZUNvbnRyb2wuZWxlbWVudC5jbGFz
c05hbWUiLCAidGltZS1jb250cm9sIik7CiAKIGRlYnVnKCIiKTsKLXNob3VsZEJlVHJ1ZSgidGlt
ZUNvbnRyb2wuZWxhcHNlZFRpbWVMYWJlbCBpbnN0YW5jZW9mIFRpbWVMYWJlbCIpOwotc2hvdWxk
QmVUcnVlKCJ0aW1lQ29udHJvbC5zY3J1YmJlciBpbnN0YW5jZW9mIFNsaWRlciIpOwotc2hvdWxk
QmVUcnVlKCJ0aW1lQ29udHJvbC5yZW1haW5pbmdUaW1lTGFiZWwgaW5zdGFuY2VvZiBUaW1lTGFi
ZWwiKTsKK3Nob3VsZEJlVHlwZSgidGltZUNvbnRyb2wuZWxhcHNlZFRpbWVMYWJlbCIsICJUaW1l
TGFiZWwiKTsKK3Nob3VsZEJlVHlwZSgidGltZUNvbnRyb2wuc2NydWJiZXIiLCAiU2xpZGVyIik7
CitzaG91bGRCZVR5cGUoInRpbWVDb250cm9sLnJlbWFpbmluZ1RpbWVMYWJlbCIsICJUaW1lTGFi
ZWwiKTsKIAogZGVidWcoIiIpOwogZGVidWcoInRpbWVDb250cm9sLndpZHRoID0gNTAwOyIpOwpJ
bmRleDogTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3RyYWNrcy1idXR0
b24vdHJhY2tzLWJ1dHRvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy90cmFja3MtYnV0dG9uL3RyYWNrcy1idXR0b24uaHRtbAkocmV2
aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3RyYWNrcy1idXR0b24vdHJhY2tzLWJ1dHRvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDEz
ICs4LDEzIEBAIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogZGVzY3JpcHRpb24oIlRl
c3RpbmcgdGhlIDxjb2RlPlRyYWNrc0J1dHRvbjwvY29kZT4gY2xhc3MuIik7CiAKLWNvbnN0IHRy
YWNrc0J1dHRvbiA9IG5ldyBUcmFja3NCdXR0b24oeyBsYXlvdXRUcmFpdHM6IExheW91dFRyYWl0
cy5tYWNPUyB9KTsKK2NvbnN0IHRyYWNrc0J1dHRvbiA9IG5ldyBUcmFja3NCdXR0b24oeyBsYXlv
dXRUcmFpdHM6IG5ldyBNYWNPU0xheW91dFRyYWl0cyhMYXlvdXRUcmFpdHMuTW9kZS5JbmxpbmUp
IH0pOwogCiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRyYWNrc0J1dHRvbi5lbGVtZW50LmxvY2Fs
TmFtZSIsICJidXR0b24iKTsKIHNob3VsZEJlVHJ1ZSgndHJhY2tzQnV0dG9uLmVsZW1lbnQuY2xh
c3NMaXN0LmNvbnRhaW5zKCJ0cmFja3MiKScpOwogc2hvdWxkQmUoInRyYWNrc0J1dHRvbi5pY29u
TmFtZSIsICJJY29ucy5UcmFja3MiKTsKIAotY29uc3QgZnVsbHNjcmVlblRyYWNrc0J1dHRvbiA9
IG5ldyBUcmFja3NCdXR0b24oeyBsYXlvdXRUcmFpdHM6IExheW91dFRyYWl0cy5tYWNPUyB8IExh
eW91dFRyYWl0cy5GdWxsc2NyZWVuIH0pOworY29uc3QgZnVsbHNjcmVlblRyYWNrc0J1dHRvbiA9
IG5ldyBUcmFja3NCdXR0b24oeyBsYXlvdXRUcmFpdHM6IG5ldyBNYWNPU0xheW91dFRyYWl0cyhM
YXlvdXRUcmFpdHMuTW9kZS5GdWxsc2NyZWVuKSB9KTsKIAogc2hvdWxkQmVjb21lRXF1YWwoJ3Ry
YWNrc0J1dHRvbi5pbWFnZS5lbGVtZW50LnN0eWxlLndlYmtpdE1hc2tJbWFnZS5pbmNsdWRlcygi
bWFjT1MvTWVkaWFTZWxlY3Rvci5zdmciKScsICJ0cnVlIiwgKCkgPT4gewogICAgIHNob3VsZEJl
Y29tZUVxdWFsKCdmdWxsc2NyZWVuVHJhY2tzQnV0dG9uLmltYWdlLmVsZW1lbnQuc3R5bGUud2Vi
a2l0TWFza0ltYWdlLmluY2x1ZGVzKCJtYWNPUy9NZWRpYVNlbGVjdG9yLWZ1bGxzY3JlZW4uc3Zn
IiknLCAidHJ1ZSIsIGZpbmlzaEpTVGVzdCk7CkluZGV4OiBMYXlvdXRUZXN0cy9tZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvd2F0Y2hvcy1tZWRpYS1jb250cm9scy93YXRjaG9zLW1lZGlhLWNv
bnRyb2xzLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvd2F0Y2hvcy1tZWRpYS1jb250cm9scy93YXRj
aG9zLW1lZGlhLWNvbnRyb2xzLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjc5
MzA1KQorKysgTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3dhdGNob3Mt
bWVkaWEtY29udHJvbHMvd2F0Y2hvcy1tZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTUsNyArNSw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEEKIAogUEFTUyBtZWRpYUNvbnRyb2xzLmVsZW1lbnQubG9jYWxO
YW1lIGlzICJkaXYiCiBQQVNTIG1lZGlhQ29udHJvbHMuZWxlbWVudC5jbGFzc05hbWUgaXMgIndh
dGNob3MgbWVkaWEtY29udHJvbHMiCi1QQVNTIG1lZGlhQ29udHJvbHMubGF5b3V0VHJhaXRzIGlz
IExheW91dFRyYWl0cy53YXRjaE9TCitQQVNTIG1lZGlhQ29udHJvbHMubGF5b3V0VHJhaXRzIGlz
IGFuIGluc3RhbmNlIG9mIFdhdGNoT1NMYXlvdXRUcmFpdHMKIFBBU1MgbWVkaWFDb250cm9scy5z
dGF0ZSBpcyBXYXRjaE9TTWVkaWFDb250cm9scy5TdGF0ZS5QYXVzZWQKIAogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQpJbmRleDogTGF5b3V0VGVzdHMvbWVkaWEvbW9kZXJuLW1lZGlh
LWNvbnRyb2xzL3dhdGNob3MtbWVkaWEtY29udHJvbHMvd2F0Y2hvcy1tZWRpYS1jb250cm9scy1j
b25zdHJ1Y3Rvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL21lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy93YXRjaG9zLW1lZGlhLWNvbnRyb2xzL3dhdGNob3MtbWVkaWEtY29udHJv
bHMtY29uc3RydWN0b3IuaHRtbAkocmV2aXNpb24gMjc5MzA1KQorKysgTGF5b3V0VGVzdHMvbWVk
aWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3dhdGNob3MtbWVkaWEtY29udHJvbHMvd2F0Y2hvcy1t
ZWRpYS1jb250cm9scy1jb25zdHJ1Y3Rvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw3ICsx
MCw3IEBAIGNvbnN0IG1lZGlhQ29udHJvbHMgPSBuZXcgV2F0Y2hPU01lZGlhQ28KIAogc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJtZWRpYUNvbnRyb2xzLmVsZW1lbnQubG9jYWxOYW1lIiwgImRpdiIp
Owogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJtZWRpYUNvbnRyb2xzLmVsZW1lbnQuY2xhc3NOYW1l
IiwgIndhdGNob3MgbWVkaWEtY29udHJvbHMiKTsKLXNob3VsZEJlKCJtZWRpYUNvbnRyb2xzLmxh
eW91dFRyYWl0cyIsICJMYXlvdXRUcmFpdHMud2F0Y2hPUyIpOworc2hvdWxkQmVUeXBlKCJtZWRp
YUNvbnRyb2xzLmxheW91dFRyYWl0cyIsICJXYXRjaE9TTGF5b3V0VHJhaXRzIik7CiBzaG91bGRC
ZSgibWVkaWFDb250cm9scy5zdGF0ZSIsICJXYXRjaE9TTWVkaWFDb250cm9scy5TdGF0ZS5QYXVz
ZWQiKTsKIGRlYnVnKCIiKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>