<?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>28264</bug_id>
          
          <creation_ts>2009-08-13 10:03:50 -0700</creation_ts>
          <short_desc>Add Mock Geolocation service for use in LayoutTests</short_desc>
          <delta_ts>2009-09-07 23:14:05 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>27255</blocked>
    
    <blocked>27256</blocked>
    
    <blocked>27944</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Steve Block">steveblock</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>andreip</cc>
    
    <cc>bolsinga</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>139896</commentid>
    <comment_count>0</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-08-13 10:03:50 -0700</bug_when>
    <thetext>To allow proper testing of the Geolocation API, we need a mock implementation of the Geolocation service which provides predictable behavior of the API. The mock Geolocation service will be integrated with DumpRenderTree so that it can be controlled from LayoutTests.

This was discussed in https://bugs.webkit.org/show_bug.cgi?id=27716, which added the first Geolocation LayoutTests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139900</commentid>
    <comment_count>1</comment_count>
      <attachid>34754</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-08-13 10:05:41 -0700</bug_when>
    <thetext>Created attachment 34754
Patch 1 for bug 28264

Adds a mock Geolocation service.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141625</commentid>
    <comment_count>2</comment_count>
      <attachid>35155</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-08-19 15:54:14 -0700</bug_when>
    <thetext>Created attachment 35155
Patch 2 for bug 28264

This new patch also adds the hooks for DumpRenderTree on Mac, and the first layout test to make use of the mock service.

Could somebody please take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144024</commentid>
    <comment_count>3</comment_count>
      <attachid>35155</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-01 16:00:56 -0700</bug_when>
    <thetext>Comment on attachment 35155
Patch 2 for bug 28264

+    static FactoryFunction* s_factoryFunction;

Usually we just declare these statically in the cpp file instead of declaring them in the h file.

+++ WebCore/platform/MockGeolocationService.cpp	(revision 0)

Does WebCore have other Mock classes?  This should probably live in WebKitTools/DumpRenderTree

What&apos;s the benefit of holding all that data in the Mock class as statics versus just holding them as members of the instance?

+ GeolocationService::FactoryFunction* GeolocationService::s_factoryFunction = &amp;GeolocationServiceMac::create;

I don&apos;t think this a very common pattern in WebCore...  I there must be a better way to create this Mock service.

+ #import &lt;WebKit/WebMockGeolocation.h&gt;

This probably need to be a private API header.  Otherwise, the header will need to go through MacOS API review.

I&apos;m not really sure what the best approach is here.  We should consult with some WebCore/platform experts on the best way to test against mock platform features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144186</commentid>
    <comment_count>4</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-09-02 03:33:57 -0700</bug_when>
    <thetext>&gt; Does WebCore have other Mock classes?  This should probably live in
&gt; WebKitTools/DumpRenderTree
I don&apos;t see any other mocks in WebCore. Is there a pattern for mocks in DumpRenderTree that I can follow?

&gt; What&apos;s the benefit of holding all that data in the Mock class as statics versus
&gt; just holding them as members of the instance?
The GeolocationService instance is created when the page&apos;s Geolocation instance is created. This is created lazily in Navogator::Geolocation() when navigator.geolocation is first accessed. So if we want to use MockGeolocationService, we have to configure WebCore to do so before navigator.geolocation is accessed. So GeolocationService::useMock method must be static.

The advantage of making the lastPosition and lastError members of MockGeolocationService static, is that it allows us to easily configure MockGeolocationService when GeolocationService::useMock is called.

Alternatively, LayoutTestController.setMockGeolocationPosition could call GeolocationService::useMock, then create the page&apos;s Geolocation object (if it didn&apos;t already exist), then configure its MockGeolocationService. This would require extra plumbing to allow the LayoutTestController to get the Navigator object for the current frame, and modifications to Geolocation to allow the LayoutTestController to get the GeolocationService it creates.

This is possible, but seemed like a less neat solution, given the changes required.

&gt; I&apos;m not really sure what the best approach is here.  We should consult with
&gt; some WebCore/platform experts on the best way to test against mock platform
&gt; features.
OK, I&apos;ll ask on #webkit. Do you have any suggestions as to who to approach?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144902</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-04 12:57:46 -0700</bug_when>
    <thetext>Ok.  It looks like no one on webkit-dev is objecting to creating a mock version of the service for testing.  Here&apos;s what I think we should do:

1) Make a new &quot;platform&quot; directory named &quot;mock&quot; or &quot;testing&quot; or some such.

2) Make a GeolocationServiceMock or GeolocationServiceTesting class in that folder.

3) The mac WebKit APIs seem fine, but we need to make these Private to avoid impacting the OS X webkit APIs.  You should be able to find examples of this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144904</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-04 12:59:20 -0700</bug_when>
    <thetext>*** Bug 21717 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145121</commentid>
    <comment_count>7</comment_count>
      <attachid>35155</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-09-07 03:25:24 -0700</bug_when>
    <thetext>Comment on attachment 35155
Patch 2 for bug 28264

&gt; +    static FactoryFunction* s_factoryFunction;
&gt; 
&gt; Usually we just declare these statically in the cpp file instead of declaring
&gt; them in the h file.
This static member needs to be accessed outside of GeolocationService.cpp. See GeolocationServiceMac.mm etc. It&apos;s the equivalent of the former GeolocationService::create method.

Do you want the static members of GeolocationServiceMock to be moved to non-member static variables in the cpp file too?

&gt; + #import &lt;WebKit/WebMockGeolocation.h&gt;
&gt; 
&gt; This probably need to be a private API header.  Otherwise, the header will need
&gt; to go through MacOS API review.
I&apos;ve renamed this WebGeolocationMockPrivate and set the Xcode role to &apos;Private&apos;. Is there anything more to it than this?
 
&gt; 1) Make a new &quot;platform&quot; directory named &quot;mock&quot; or &quot;testing&quot; or some such.
&gt; 
&gt; 2) Make a GeolocationServiceMock or GeolocationServiceTesting class in that
&gt; folder.
Done

&gt; *** Bug 21717 has been marked as a duplicate of this bug. ***FWIW, I&apos;m not sure that Greg intended Bug 21717 to be equivalent to this one. I think his intent was to create a mock Geolocation service for testing on platforms where the platform _doesn&apos;t_ have an implementation. Personally, I don&apos;t think that&apos;s necessary, so am happy to see the bug closed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145168</commentid>
    <comment_count>8</comment_count>
      <attachid>39137</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-07 09:00:49 -0700</bug_when>
    <thetext>Comment on attachment 39137
Patch 3 for bug 28264

This looks great.  Two minor issues:

+++ WebCore/WebCore.base.exp

Please keep this file alphabetical.

The project files don&apos;t seem to know about the mock directory.  I suspect this will cause build breaks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145184</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-07 09:39:41 -0700</bug_when>
    <thetext>A couple more points:

1) How does this patch link on non-mac platforms?  You don&apos;t seem to have implemented the new layoutTestController methods on the other platforms.

2) This test probably fails on non-mac platforms.  You probably want to add it to the Skipped files to avoid turning the buildbot red.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145233</commentid>
    <comment_count>10</comment_count>
      <attachid>39162</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-09-07 14:27:21 -0700</bug_when>
    <thetext>Created attachment 39162
Patch 4 for bug 28264

&gt; +++ WebCore/WebCore.base.exp
&gt; 
&gt; Please keep this file alphabetical.
Fixed

&gt; The project files don&apos;t seem to know about the mock directory.  I suspect this
&gt; will cause build breaks.
Fixed. Updated WebCore.pro, GNUmakefile.am and WebCoreCommon.vsprops.

&gt; 1) How does this patch link on non-mac platforms?  You don&apos;t seem to have
&gt; implemented the new layoutTestController methods on the other platforms.
I&apos;ve added stub implementations for non-mac platforms (gtk, win and wx). Presumably I&apos;m not required
to write the implementations for all platforms?

&gt; 2) This test probably fails on non-mac platforms.  You probably want to add it
&gt; to the Skipped files to avoid turning the buildbot red.
All Geolocation tests are currently skipped for all platforms other than gtk. I&apos;ve
added the new test to the skipped list for gtk given the lack of implementation of
the LayoutTestcontroller methods.

I haven&apos;t been able to test on Windows as the build is currently broken, but will do so tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145236</commentid>
    <comment_count>11</comment_count>
      <attachid>39162</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-07 15:07:23 -0700</bug_when>
    <thetext>Comment on attachment 39162
Patch 4 for bug 28264

WebCore.pro is missing the &quot;mock&quot; directory for the header.  Other than that, this looks good to go.  Thanks for your patience.

I&apos;m marking as commit-queue- because of the WebCore.pro typo.  Someone can either land this manually, or you can upload a new version with the typo fixed.

The buildbots seem to be a bit underwater at the moment, so I don&apos;t want to attempt to land this right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145244</commentid>
    <comment_count>12</comment_count>
      <attachid>39166</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2009-09-07 15:55:21 -0700</bug_when>
    <thetext>Created attachment 39166
Patch 5 for bug 28264

WebCore.pro fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145245</commentid>
    <comment_count>13</comment_count>
      <attachid>39166</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-07 16:00:31 -0700</bug_when>
    <thetext>Comment on attachment 39166
Patch 5 for bug 28264

Great!  This is ready to land once the buildbots are functional again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145253</commentid>
    <comment_count>14</comment_count>
      <attachid>39166</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-07 18:03:44 -0700</bug_when>
    <thetext>Comment on attachment 39166
Patch 5 for bug 28264

Rejecting patch 39166 from commit-queue.  This patch will require manual commit.

Patch https://bugs.webkit.org/attachment.cgi?id=39166 from bug 28264 failed to download and apply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145255</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-07 18:16:58 -0700</bug_when>
    <thetext>patching file WebCore/WebCore.vcproj/WebCore.vcproj
Hunk #1 FAILED at 17068.
Hunk #2 FAILED at 21759.
2 out of 2 hunks FAILED -- saving rejects to file WebCore/WebCore.vcproj/WebCore.vcproj.rej</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145267</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-07 22:38:05 -0700</bug_when>
    <thetext>I&apos;ve resolved the conflicts locally.  Running pre-submit scripts now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145271</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-07 23:14:05 -0700</bug_when>
    <thetext>Committed r48144: &lt;http://trac.webkit.org/changeset/48144&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34754</attachid>
            <date>2009-08-13 10:05:41 -0700</date>
            <delta_ts>2009-08-19 15:54:14 -0700</delta_ts>
            <desc>Patch 1 for bug 28264</desc>
            <filename>addMockGeolocationService.txt</filename>
            <type>text/plain</type>
            <size>24372</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NzE5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTQgQEAKKzIwMDktMDgtMTMgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZHMgYSBtb2NrIEdlb2xvY2F0aW9uIHNlcnZpY2UuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIHBy
b3ZpZGUgcHJlZGljdGFibGUgYmVoYXZpb3Igb2YgdGhlCisgICAgICAgIEdlb2xvY2F0aW9uIEFQ
SSBmb3IgdXNlIGluIExheW91dFRlc3RzLiBMYXRlciBjaGFuZ2VzIHdpbGwgaW5jb3Jwb3JhdGUg
dGhlIHRoZSBtb2NrCisgICAgICAgIEdlb2xvY2F0aW9uIHNlcnZpY2Ugd2l0aCBEdW1wUmVuZGVy
VHJlZS4KKworICAgICAgICBUaGUgbW9jayBHZW9sb2NhdGlvbiBzZXJ2aWNlIHJldHVybnMgYSBm
aXhlZCBwb3NpdGlvbiBvciBlcnJvci4gVGhpcyBwb3NpdGlvbiBvciBlcnJvciBjYW4gYmUKKyAg
ICAgICAgc2V0IHRocm91Z2ggc3RhdGljIG1ldGhvZHMgb24gdGhlIEdlb2xvY2F0aW9uU2Vydmlj
ZSBjbGFzcy4gVGhlIHBvc2l0aW9uIG9yIGVycm9yIGlzIHNoYXJlZAorICAgICAgICBiZXR3ZWVu
IGFsbCBpbnN0YW5jZXMgb2YgdGhlIG1vY2sgR2VvbG9jYXRpb24gc2VydmljZS4KKworICAgICAg
ICBJbXBsZW1lbnRhdGlvbiBkZXRhaWxzLiBUaGUgR2VvbG9jYXRpb25TZXJ2aWNlIG9iamVjdCBt
YWludGFpbnMgYSBwb2ludGVyIHRvIGEgZmFjdG9yeSBmdW5jdGlvbiB3aGljaCBpdCB1c2VzIHRv
IGNyZWF0ZQorICAgICAgICBHZW9sb2NhdGlvbiBzZXJ2aWNlIGluc3RhbmNlcy4gRWFjaCBwbGF0
Zm9ybSBpbXBsZW1lbnRpbmcgR2VvbG9jYXRpb24gc2V0cyB0aGlzIHBvaW50ZXIKKyAgICAgICAg
dG8gdGhlIGZhY3RvcnkgZnVuY3Rpb24gZm9yIHRoZWlyIHBsYXRmb3JtJ3MgaW1wbGVtZW50YXRp
b24uIFdoZW4gdGhlIG1vY2sgR2VvbG9jYXRpb24gc2VydmljZQorICAgICAgICBpcyBhY3RpdmF0
ZWQsIHRoZSBmYWN0b3J5IGZ1bmN0aW9uIHBvaW50ZXIgaXMgcmVzZXQgdG8gdGhlIGZhY3Rvcnkg
ZnVuY3Rpb24gZm9yIHRoZSBtb2NrIHNlcnZpY2UuCisKKyAgICAgICAgTm8gdGVzdHMgYXQgcHJl
c2VudC4gVGhpcyBjb2RlIHdpbGwgc29vbiBiZSB1c2VkIGluIEdlb2xvY2F0aW9uIExheW91dFRl
c3RzLgorCisgICAgICAgICogcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcDogTW9kaWZp
ZWQuIAorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTnVsbEdlb2xvY2F0aW9uU2VydmljZSk6IEFk
ZGVkLiBSZXR1cm5zIG51bGwgaW4gcGxhY2Ugb2YgYSBHZW9sb2NhdGlvbiBzZXJ2aWNlLiBVc2Vk
IHRvIGF2b2lkIGxpbmsgZXJyb3JzIG9uIHBsYXRmb3JtcyB3aGVyZSBHZW9sb2NhdGlvbiBpcyBu
b3QgaW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2U6OmNy
ZWF0ZSk6IEFkZGVkLiBVc2VzIHRoZSBmYWN0b3J5IGZ1bmN0aW9uIHBvaW50ZXIgdG8gY3JlYXRl
IGEgR2VvbG9jYXRpb24gc2VydmljZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
Okdlb2xvY2F0aW9uU2VydmljZTo6c2V0TW9ja1Bvc2l0aW9uKTogQWRkZWQuIEFjdGl2YXRlcyB0
aGUgbW9jayBHZW9sb2NhdGlvbiBzZXJ2aWNlIGFuZCBzZXRzIHRoZSBwb3NpdGlvbiBpdCB3aWxs
IHJldHVybiB0byB0aGUgcG9zaXRpb24gc3VwcGxpZWQuCisgICAgICAgIChXZWJDb3JlOjpHZW9s
b2NhdGlvblNlcnZpY2U6OnNldE1vY2tFcnJvcik6IEFkZGVkLiBBY3RpdmF0ZXMgdGhlIG1vY2sg
R2VvbG9jYXRpb24gc2VydmljZSBhbmQgc2V0cyB0aGUgZXJyb3IgaXQgd2lsbCByZXR1cm4gdG8g
dGhlIGVycm9yIHN1cHBsaWVkLgorICAgICAgICAqIHBsYXRmb3JtL0dlb2xvY2F0aW9uU2Vydmlj
ZS5oOiBNb2RpZmllZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2aWNl
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjpj
cmVhdGUpOiBBZGRlZC4gQ3JlYXRlcyBhIE1vY2tHZW9sb2NhdGlvblNlcnZpY2Ugb2JqZWN0Lgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja0dlb2xvY2F0aW9uU2VydmljZTo6TW9ja0dlb2xvY2F0aW9u
U2VydmljZSk6IEFkZGVkLiBDb25zdHJ1Y3Rvci4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tHZW9s
b2NhdGlvblNlcnZpY2U6On5Nb2NrR2VvbG9jYXRpb25TZXJ2aWNlKTogQWRkZWQuIERlc3RydWN0
b3IuCisgICAgICAgIChXZWJDb3JlOjpNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjpzZXRQb3NpdGlv
bik6IEFkZGVkLiBTZXRzIHRoZSBwb3NpdGlvbiB0aGF0IHdpbGwgYmUgcmV0dXJuZWQgYnkgdGhl
IG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tHZW9sb2NhdGlvblNlcnZpY2U6OnNldEVy
cm9yKTogQWRkZWQuIFNldHMgdGhlIGVycm9yIHRoYXQgd2lsbCBiZSByZXR1cm5lZCBieSB0aGUg
b2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6TW9ja0dlb2xvY2F0aW9uU2VydmljZTo6c3RhcnRV
cGRhdGluZyk6IEFkZGVkLiBHZW9sb2NhdGlvblNlcnZpY2UgaW1wbGVtZW50YXRpb24uIFN0YXJ0
cyB0aGUgc2VydmljZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tHZW9sb2NhdGlvblNlcnZpY2U6
OnRpbWVyRmlyZWQpOiBBZGRlZC4gVXNlZCB0byBwcm92aWRlIGFuIGFzeW5jaHJvbm91cyBjYWxs
YmFjayB3aGVuIHRoZSBzZXJ2aWNlIGlzIHN0YXJ0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2Nr
R2VvbG9jYXRpb25TZXJ2aWNlOjptYWtlR2VvbG9jYXRpb25DYWxsYmFja0Zyb21BbGxJbnN0YW5j
ZXMpOiBBZGRlZC4gVXNlZCB0byBjYWxsIGJhY2sgd2hlbiB0aGUgcG9zaXRpb24gb3IgZXJyb3Ig
aXMgdXBkYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tHZW9sb2NhdGlvblNlcnZpY2U6Om1h
a2VHZW9sb2NhdGlvbkNhbGxiYWNrKTogQWRkZWQuIFVzZWQgdG8gY2FsbCBiYWNrIHdoZW4gdGhl
IHNlcnZpY2Ugc3RhcnRzLgorICAgICAgICAqIHBsYXRmb3JtL01vY2tHZW9sb2NhdGlvblNlcnZp
Y2UuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjps
YXN0UG9zaXRpb24pOiBBZGRlZC4gUmV0dXJucyB0aGUgZml4ZWQgcG9zaXRpb24uCisgICAgICAg
IChXZWJDb3JlOjpNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjpsYXN0RXJyb3IpOiBBZGRlZC4gUmV0
dXJucyB0aGUgZml4ZWQgZXJyb3IuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9u
U2VydmljZUd0ay5jcHA6IE1vZGlmaWVkLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25T
ZXJ2aWNlR3RrOjpjcmVhdGUpOiBBZGRlZC4gQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBHZW9sb2Nh
dGlvblNlcnZpY2VHdGsuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2Vydmlj
ZUd0ay5oOiBNb2RpZmllZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvR2VvbG9jYXRpb25TZXJ2
aWNlTWFjLmg6IE1vZGlmaWVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9HZW9sb2NhdGlvblNl
cnZpY2VNYWMubW06IE1vZGlmaWVkLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2
aWNlTWFjOjpjcmVhdGUpOiBBZGRlZC4gQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBHZW9sb2NhdGlv
blNlcnZpY2VNYWMuCisgICAgICAgICogV2ViQ29yZS9XZWJDb3JlLnBybzogTW9kaWZpZWQuIEFk
ZGVkIG1vY2sgTW9ja0dlb2xvY2F0aW9uU2VydmljZSBmaWxlcy4KKyAgICAgICAgKiBXZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtOiBNb2RpZmllZC4gQWRkZWQgbW9jayBNb2NrR2VvbG9jYXRpb25TZXJ2
aWNlIGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUvV2ViQ29yZS5neXBpOiBNb2RpZmllZC4gQWRk
ZWQgbW9jayBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlIGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBNb2RpZmllZC4gQWRkZWQgbW9jayBN
b2NrR2VvbG9jYXRpb25TZXJ2aWNlIGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUvV2ViQ29yZVNv
dXJjZXMuYmtsOiBNb2RpZmllZC4gQWRkZWQgbW9jayBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlIGZp
bGVzLgorICAgICAgICAqIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IE1v
ZGlmaWVkLiBBZGRlZCBtb2NrIE1vY2tHZW9sb2NhdGlvblNlcnZpY2UgZmlsZXMuCisKIDIwMDkt
MDgtMTMgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgcjQ3
MTg1LCB0aGUgZml4IGZvciA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI4MTg1PiwgYXMgaXQgYnJva2UgdGhlCkluZGV4OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDQ3MTk2KQorKysg
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMTM3Miw2ICsxMzcyLDgg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmlu
Z3MuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9y
bS9Mb2dnaW5nLmggXAorCVdlYkNvcmUvcGxhdGZvcm0vTW9ja0dlb2xvY2F0aW9uU2VydmljZS5j
cHAgXAorCVdlYkNvcmUvcGxhdGZvcm0vTW9ja0dlb2xvY2F0aW9uU2VydmljZS5oIFwKIAlXZWJD
b3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL01J
TUVUeXBlUmVnaXN0cnkuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9Ob3RJbXBsZW1lbnRlZC5oIFwK
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29y
ZS5neXBpCShyZXZpc2lvbiA0NzE5NikKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5n
IGNvcHkpCkBAIC0yNTc3LDYgKzI1NzcsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL0xvZ2dp
bmcuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaCcsCisgICAgICAgICAgICAncGxh
dGZvcm0vTW9ja0dlb2xvY2F0aW9uU2VydmljZS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3Jt
L01vY2tHZW9sb2NhdGlvblNlcnZpY2UuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTm90SW1w
bGVtZW50ZWQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUGFzdGVib2FyZC5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCcsCkluZGV4OiBXZWJDb3Jl
L1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9u
IDQ3MTk2KQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMTE2Myw2
ICsxMTYzLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vTGVuZ3RoLmNwcCBcCiAgICAg
cGxhdGZvcm0vTGlua0hhc2guY3BwIFwKICAgICBwbGF0Zm9ybS9Mb2dnaW5nLmNwcCBcCisgICAg
cGxhdGZvcm0vTW9ja0dlb2xvY2F0aW9uU2VydmljZS5jcHAgXAogICAgIHBsYXRmb3JtL01JTUVU
eXBlUmVnaXN0cnkuY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlQmFzZS5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbC5jcHAgXApA
QCAtMTgzOCw2ICsxODM5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vTGVuZ3RoLmgg
XAogICAgIHBsYXRmb3JtL0xpbmtIYXNoLmggXAogICAgIHBsYXRmb3JtL0xvZ2dpbmcuaCBcCisg
ICAgcGxhdGZvcm0vTW9ja0dlb2xvY2F0aW9uU2VydmljZS5oIFwKICAgICBwbGF0Zm9ybS9NSU1F
VHlwZVJlZ2lzdHJ5LmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VCYXNlLmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbC5oIFwKSW5kZXg6
IFdlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29y
ZVNvdXJjZXMuYmtsCShyZXZpc2lvbiA0NzE5NikKKysrIFdlYkNvcmUvV2ViQ29yZVNvdXJjZXMu
YmtsCSh3b3JraW5nIGNvcHkpCkBAIC04MDIsNiArODAyLDcgQEAgVGhpcyBmaWxlIGNvbnRhaW5z
IHRoZSBsaXN0IG9mIGZpbGVzIG5lZQogICAgICAgICBwbGF0Zm9ybS9MZW5ndGguY3BwCiAgICAg
ICAgIHBsYXRmb3JtL0xpbmtIYXNoLmNwcAogICAgICAgICBwbGF0Zm9ybS9Mb2dnaW5nLmNwcAor
ICAgICAgICBwbGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmNwcAogICAgICAgICBwbGF0
Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcAogICAgICAgICBwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJF
eHByZXNzaW9uLmNwcAogICAgICAgICBwbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCkluZGV4OiBXZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNDcxOTYpCisr
KyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtOTU0LDYgKzk1NCw4IEBACiAJCTU0QzUwRjdCMEU4MDFERjMwMDk4MzJBMCAvKiBYTUxU
b2tlbml6ZXJMaWJ4bWwyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU0QzUwRjdBMEU4MDFERjMwMDk4MzJBMCAvKiBYTUxUb2tlbml6ZXJMaWJ4bWwy
LmNwcCAqLzsgfTsKIAkJNTUwQTBCQzkwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUwQTBC
QzcwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwICovOyB9OwogCQk1NTBBMEJD
QTA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUwQTBCQzgwODVGNjAzOTAwNzM1M0Q2IC8qIFF1
YWxpZmllZE5hbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk1OUQzQTg2ODEwMzQ1QzNGMDA0QTQ2MjYgLyogTW9ja0dlb2xvY2F0aW9uU2Vydmlj
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OUQz
QTg2NzEwMzQ1QzNGMDA0QTQ2MjYgLyogTW9ja0dlb2xvY2F0aW9uU2VydmljZS5jcHAgKi87IH07
CisJCTU5RDNBODZDMTAzNDVDNTYwMDRBNDYyNiAvKiBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OUQzQTg2QjEw
MzQ1QzU2MDA0QTQ2MjYgLyogTW9ja0dlb2xvY2F0aW9uU2VydmljZS5oICovOyB9OwogCQk1RDE1
RTNBQjBGOUU2QUMxMDA5RTBFM0YgLyogWE1MVG9rZW5pemVyU2NvcGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQxNUUzQTkwRjlFNkFDMTAwOUUw
RTNGIC8qIFhNTFRva2VuaXplclNjb3BlLmNwcCAqLzsgfTsKIAkJNUQxNUUzQUMwRjlFNkFDMTAw
OUUwRTNGIC8qIFhNTFRva2VuaXplclNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1RDE1RTNBQTBGOUU2QUMxMDA5RTBFM0YgLyogWE1MVG9rZW5p
emVyU2NvcGUuaCAqLzsgfTsKIAkJNUQ4NzRGMTMwRDE2MUQzMjAwNzk2QzNCIC8qIE5ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzRTIyN0REMEFGNTg5QUQwMEQ0ODMyNCAvKiBOZXRzY2FwZVBsdWdJblN0
cmVhbUxvYWRlci5jcHAgKi87IH07CkBAIC02MDE2LDYgKzYwMTgsOCBAQAogCQk1NEM1MEY3QTBF
ODAxREYzMDA5ODMyQTAgLyogWE1MVG9rZW5pemVyTGlieG1sMi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYTUxUb2tlbml6ZXJMaWJ4bWwyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTUwQTBCQzcwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmll
ZE5hbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUXVhbGlmaWVkTmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NTBBMEJDODA4NUY2MDM5MDA3MzUzRDYgLyog
UXVhbGlmaWVkTmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBRdWFsaWZpZWROYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OworCQk1OUQzQTg2NzEwMzQ1QzNGMDA0QTQ2MjYgLyog
TW9ja0dlb2xvY2F0aW9uU2VydmljZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTlEM0E4NkIxMDM0NUM1NjAwNEE0NjI2IC8qIE1vY2tHZW9sb2NhdGlvblNlcnZp
Y2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0dlb2xvY2F0aW9uU2Vy
dmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDE1RTNBOTBGOUU2QUMxMDA5
RTBFM0YgLyogWE1MVG9rZW5pemVyU2NvcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gWE1MVG9rZW5pemVyU2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1RDE1RTNBQTBGOUU2QUMxMDA5RTBFM0YgLyogWE1MVG9rZW5pemVyU2NvcGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWE1MVG9rZW5pemVyU2NvcGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQ5MjVCNjUwRjY0RDRERDAwQjg0N0YwIC8qIFNj
cm9sbEJlaGF2aW9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNj
cm9sbEJlaGF2aW9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MTY0LDYg
KzE0MTY4LDggQEAKIAkJCQk5MzUyMDdCRDA5QkQ0MTBBMDBGMjAzOEQgLyogTG9jYWxpemVkU3Ry
aW5ncy5oICovLAogCQkJCUE4MjM5REZFMDlCM0NGOEEwMEI2MDY0MSAvKiBMb2dnaW5nLmNwcCAq
LywKIAkJCQlBODIzOURGRjA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5oICovLAorCQkJCTU5
RDNBODY3MTAzNDVDM0YwMDRBNDYyNiAvKiBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmNwcCAqLywK
KwkJCQk1OUQzQTg2QjEwMzQ1QzU2MDA0QTQ2MjYgLyogTW9ja0dlb2xvY2F0aW9uU2VydmljZS5o
ICovLAogCQkJCUJDNzcyQzRDMEM0RUIzMDQwMDgzMjg1RiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmNw
cCAqLywKIAkJCQlCQzc3MkM0RDBDNEVCMzA0MDA4MzI4NUYgLyogTUlNRVR5cGVSZWdpc3RyeS5o
ICovLAogCQkJCTRCMjcwOEM1MEFGMTlFRTQwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkLmggKi8sCkBA
IC0xNzI1OSw2ICsxNzI2NSw3IEBACiAJCQkJNDk0ODRGQ0UxMDJDRjIzQzAwMTg3REQzIC8qIENh
bnZhc1N0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMxNEUg
LyogV29ya2VyUmVwb3J0aW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1QzExMjNDMTAy
QjZDNDYwMDA5NjU3OCAvKiBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAq
LywKKwkJCQk1OUQzQTg2QzEwMzQ1QzU2MDA0QTQ2MjYgLyogTW9ja0dlb2xvY2F0aW9uU2Vydmlj
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xOTMxOCw2ICsxOTMyNSw3IEBACiAJCQkJOTM5MjI2MkQx
MDMyMTA3QjAwNkU3RDVEIC8qIEpTSFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTM5MjI2MkYxMDMyMTA4NDAwNkU3RDVEIC8qIEpTQ1NTUnVsZUxpc3RDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjVDMTEyM0IxMDJCNkM0NjAwMDk2NTc4IC8qIFNR
TFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTlEM0E4Njgx
MDM0NUMzRjAwNEE0NjI2IC8qIE1vY2tHZW9sb2NhdGlvblNlcnZpY2UuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwCShyZXZpc2lv
biA0NzE5NikKKysrIFdlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjAsMjMgKzIwLDQ1IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2UuaCIKKyNpbmNs
dWRlICJHZW9wb3NpdGlvbi5oIgorI2luY2x1ZGUgIk1vY2tHZW9sb2NhdGlvblNlcnZpY2UuaCIK
KyNpbmNsdWRlICJQb3NpdGlvbkVycm9yLmgiCiAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhRU5BQkxFKEdFT0xPQ0FUSU9OKQotR2Vv
bG9jYXRpb25TZXJ2aWNlKiBHZW9sb2NhdGlvblNlcnZpY2U6OmNyZWF0ZShHZW9sb2NhdGlvblNl
cnZpY2VDbGllbnQqKQorR2VvbG9jYXRpb25TZXJ2aWNlKiBjcmVhdGVOdWxsR2VvbG9jYXRpb25T
ZXJ2aWNlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopCiB7CiAgICAgcmV0dXJuIDA7CiB9CisK
K0dlb2xvY2F0aW9uU2VydmljZTo6RmFjdG9yeUZ1bmN0aW9uKiBHZW9sb2NhdGlvblNlcnZpY2U6
OnNfZmFjdG9yeUZ1bmN0aW9uID0gJmNyZWF0ZU51bGxHZW9sb2NhdGlvblNlcnZpY2U7CiAjZW5k
aWYKIAorR2VvbG9jYXRpb25TZXJ2aWNlKiBHZW9sb2NhdGlvblNlcnZpY2U6OmNyZWF0ZShHZW9s
b2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkKK3sKKyAgICByZXR1cm4gKCpzX2ZhY3RvcnlG
dW5jdGlvbikoY2xpZW50KTsKK30KKwordm9pZCBHZW9sb2NhdGlvblNlcnZpY2U6OnNldE1vY2tQ
b3NpdGlvbihQYXNzUmVmUHRyPEdlb3Bvc2l0aW9uPiBwb3NpdGlvbikKK3sKKyAgICBzX2ZhY3Rv
cnlGdW5jdGlvbiA9ICZNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjpjcmVhdGU7CisgICAgTW9ja0dl
b2xvY2F0aW9uU2VydmljZTo6c2V0UG9zaXRpb24ocG9zaXRpb24pOworfQorCit2b2lkIEdlb2xv
Y2F0aW9uU2VydmljZTo6c2V0TW9ja0Vycm9yKFBhc3NSZWZQdHI8UG9zaXRpb25FcnJvcj4gZXJy
b3IpCit7CisgICAgc19mYWN0b3J5RnVuY3Rpb24gPSAmTW9ja0dlb2xvY2F0aW9uU2VydmljZTo6
Y3JlYXRlOworICAgIE1vY2tHZW9sb2NhdGlvblNlcnZpY2U6OnNldEVycm9yKGVycm9yKTsKK30K
KwogR2VvbG9jYXRpb25TZXJ2aWNlOjpHZW9sb2NhdGlvblNlcnZpY2UoR2VvbG9jYXRpb25TZXJ2
aWNlQ2xpZW50KiBjbGllbnQpCiAgICAgOiBtX2dlb2xvY2F0aW9uU2VydmljZUNsaWVudChjbGll
bnQpCiB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmgJKHJldmlzaW9u
IDQ3MTk2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBHZW9sb2NhdGlvblNlcnZpY2VfaAog
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01OSwxMSArNjAsMTcgQEAgcHVibGljOgog
ICAgIHZvaWQgcG9zaXRpb25DaGFuZ2VkKCk7CiAgICAgdm9pZCBlcnJvck9jY3VycmVkKCk7CiAK
KyAgICBzdGF0aWMgdm9pZCBzZXRNb2NrUG9zaXRpb24oUGFzc1JlZlB0cjxHZW9wb3NpdGlvbj4p
OworICAgIHN0YXRpYyB2b2lkIHNldE1vY2tFcnJvcihQYXNzUmVmUHRyPFBvc2l0aW9uRXJyb3I+
KTsKKwogcHJvdGVjdGVkOgogICAgIEdlb2xvY2F0aW9uU2VydmljZShHZW9sb2NhdGlvblNlcnZp
Y2VDbGllbnQqKTsKIAogcHJpdmF0ZToKICAgICBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIG1f
Z2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50OworCisgICAgdHlwZWRlZiBHZW9sb2NhdGlvblNlcnZp
Y2UqIChGYWN0b3J5RnVuY3Rpb24pKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworICAgIHN0
YXRpYyBGYWN0b3J5RnVuY3Rpb24qIHNfZmFjdG9yeUZ1bmN0aW9uOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2
aWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL01vY2tHZW9sb2NhdGlvblNl
cnZpY2UuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9Nb2NrR2VvbG9jYXRp
b25TZXJ2aWNlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiTW9ja0dlb2xvY2F0aW9uU2VydmljZS5oIgorCisjaW5jbHVkZSAiR2VvcG9zaXRp
b24uaCIKKyNpbmNsdWRlICJQb3NpdGlvbkVycm9yLmgiCisjaW5jbHVkZSAiUG9zaXRpb25PcHRp
b25zLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTW9ja0dlb2xvY2F0aW9uU2VydmljZTo6
TW9ja0dlb2xvY2F0aW9uU2VydmljZVNldCBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjpzX2luc3Rh
bmNlczsKK1JlZlB0cjxHZW9wb3NpdGlvbj4gTW9ja0dlb2xvY2F0aW9uU2VydmljZTo6c19sYXN0
UG9zaXRpb24gPSAwOworUmVmUHRyPFBvc2l0aW9uRXJyb3I+IE1vY2tHZW9sb2NhdGlvblNlcnZp
Y2U6OnNfbGFzdEVycm9yID0gMDsKKworR2VvbG9jYXRpb25TZXJ2aWNlKiBNb2NrR2VvbG9jYXRp
b25TZXJ2aWNlOjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBjbGllbnQpCit7Cisg
ICAgcmV0dXJuIG5ldyBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlKGNsaWVudCk7Cit9CisKK01vY2tH
ZW9sb2NhdGlvblNlcnZpY2U6Ok1vY2tHZW9sb2NhdGlvblNlcnZpY2UoR2VvbG9jYXRpb25TZXJ2
aWNlQ2xpZW50KiBjbGllbnQpCisgICAgOiBHZW9sb2NhdGlvblNlcnZpY2UoY2xpZW50KQorICAg
ICwgbV90aW1lcih0aGlzLCAmTW9ja0dlb2xvY2F0aW9uU2VydmljZTo6dGltZXJGaXJlZCkKK3sK
KyAgICBzX2luc3RhbmNlcy5hZGQodGhpcyk7Cit9CisKK01vY2tHZW9sb2NhdGlvblNlcnZpY2U6
On5Nb2NrR2VvbG9jYXRpb25TZXJ2aWNlKCkKK3sKKyAgICBNb2NrR2VvbG9jYXRpb25TZXJ2aWNl
U2V0OjppdGVyYXRvciBpdGVyID0gc19pbnN0YW5jZXMuZmluZCh0aGlzKTsKKyAgICBBU1NFUlQo
aXRlciAhPSBzX2luc3RhbmNlcy5lbmQoKSk7CisgICAgc19pbnN0YW5jZXMucmVtb3ZlKGl0ZXIp
OworfQorCit2b2lkIE1vY2tHZW9sb2NhdGlvblNlcnZpY2U6OnNldFBvc2l0aW9uKFBhc3NSZWZQ
dHI8R2VvcG9zaXRpb24+IHBvc2l0aW9uKQoreworICAgIHNfbGFzdFBvc2l0aW9uID0gcG9zaXRp
b247CisgICAgc19sYXN0RXJyb3IgPSAwOworICAgIG1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrRnJv
bUFsbEluc3RhbmNlcygpOworfQorCit2b2lkIE1vY2tHZW9sb2NhdGlvblNlcnZpY2U6OnNldEVy
cm9yKFBhc3NSZWZQdHI8UG9zaXRpb25FcnJvcj4gZXJyb3IpCit7CisgICAgc19sYXN0RXJyb3Ig
PSBlcnJvcjsKKyAgICBzX2xhc3RQb3NpdGlvbiA9IDA7CisgICAgbWFrZUdlb2xvY2F0aW9uQ2Fs
bGJhY2tGcm9tQWxsSW5zdGFuY2VzKCk7Cit9CisKK2Jvb2wgTW9ja0dlb2xvY2F0aW9uU2Vydmlj
ZTo6c3RhcnRVcGRhdGluZyhQb3NpdGlvbk9wdGlvbnMqIG9wdGlvbnMpCit7CisgICAgbV90aW1l
ci5zdGFydE9uZVNob3QoMCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgTW9ja0dlb2xv
Y2F0aW9uU2VydmljZTo6dGltZXJGaXJlZChUaW1lcjxNb2NrR2VvbG9jYXRpb25TZXJ2aWNlPiog
dGltZXIpCit7CisgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gbV90aW1lcik7Cisg
ICAgbWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2soKTsKK30KKwordm9pZCBNb2NrR2VvbG9jYXRpb25T
ZXJ2aWNlOjptYWtlR2VvbG9jYXRpb25DYWxsYmFja0Zyb21BbGxJbnN0YW5jZXMoKQoreworICAg
IE1vY2tHZW9sb2NhdGlvblNlcnZpY2VTZXQ6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHNfaW5zdGFu
Y2VzLmVuZCgpOworICAgIGZvciAoTW9ja0dlb2xvY2F0aW9uU2VydmljZVNldDo6Y29uc3RfaXRl
cmF0b3IgaXRlciA9IHNfaW5zdGFuY2VzLmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpCisg
ICAgICAgICgqaXRlciktPm1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrKCk7Cit9CisKK3ZvaWQgTW9j
a0dlb2xvY2F0aW9uU2VydmljZTo6bWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2soKQoreworICAgIGlm
IChzX2xhc3RQb3NpdGlvbikKKyAgICAgICAgcG9zaXRpb25DaGFuZ2VkKCk7CisgICAgZWxzZSBp
ZiAoc19sYXN0RXJyb3IpCisgICAgICAgIGVycm9yT2NjdXJyZWQoKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2
aWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2
aWNlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL01vY2tHZW9sb2NhdGlvblNl
cnZpY2UuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTW9ja0dlb2xvY2F0aW9uU2Vydmlj
ZV9oCisjZGVmaW5lIE1vY2tHZW9sb2NhdGlvblNlcnZpY2VfaAorCisjaW5jbHVkZSAiR2VvbG9j
YXRpb25TZXJ2aWNlLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBtb2Nr
IGltcGxlbWVudGF0aW9uIG9mIGEgR2VvbG9jYXRpb25TZXJ2aWNlIGZvciB0ZXN0aW5nCisvLyBw
dXJwb3Nlcy4gSXQgYWxsb3dzIHRoZSBwb3NpdGlvbiBvciBlcnJvciB0aGF0IHdpbGwgYmUgcmVw
b3J0ZWQgYnkgdGhpcyBjbGFzcworLy8gdG8gYmUgc2V0IG1hbnVhbGx5IHVzaW5nIHRoZSBzZXRQ
b3NpdGlvbiBhbmQgc2V0RXJyb3IgbWV0aG9kcy4gT2JqZWN0cyBvZgorLy8gdGhpcyBjbGFzcyBj
YWxsIGJhY2sgdG8gdGhlaXIgcmVzcGVjdGl2ZSBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQgd2l0
aCB0aGUKKy8vIHBvc2l0aW9uIG9yIGVycm9yIGV2ZXJ5IHRpbWUgZWl0aGVyIG9mIHRoZXNlIGlz
IHVwZGF0ZWQuCitjbGFzcyBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlIDogcHVibGljIEdlb2xvY2F0
aW9uU2VydmljZSB7CisgIHB1YmxpYzoKKyAgICBzdGF0aWMgR2VvbG9jYXRpb25TZXJ2aWNlKiBj
cmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7CisKKyAgICBNb2NrR2VvbG9jYXRpb25T
ZXJ2aWNlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworICAgIHZpcnR1YWwgfk1vY2tHZW9s
b2NhdGlvblNlcnZpY2UoKTsKKworICAgIHZpcnR1YWwgYm9vbCBzdGFydFVwZGF0aW5nKFBvc2l0
aW9uT3B0aW9ucyopOworCisgICAgc3RhdGljIHZvaWQgc2V0UG9zaXRpb24oUGFzc1JlZlB0cjxH
ZW9wb3NpdGlvbj4gcG9zaXRpb24pOworICAgIHN0YXRpYyB2b2lkIHNldEVycm9yKFBhc3NSZWZQ
dHI8UG9zaXRpb25FcnJvcj4gcG9zaXRpb24pOworCisgICAgdmlydHVhbCBHZW9wb3NpdGlvbiog
bGFzdFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gc19sYXN0UG9zaXRpb24uZ2V0KCk7IH0KKyAg
ICB2aXJ0dWFsIFBvc2l0aW9uRXJyb3IqIGxhc3RFcnJvcigpIGNvbnN0IHsgcmV0dXJuIHNfbGFz
dEVycm9yLmdldCgpOyB9CisKKyAgcHJpdmF0ZToKKyAgICBzdGF0aWMgdm9pZCBtYWtlR2VvbG9j
YXRpb25DYWxsYmFja0Zyb21BbGxJbnN0YW5jZXMoKTsKKyAgICB2b2lkIG1ha2VHZW9sb2NhdGlv
bkNhbGxiYWNrKCk7CisKKyAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8TW9ja0dlb2xvY2F0aW9u
U2VydmljZT4qKTsKKworICAgIHN0YXRpYyBSZWZQdHI8R2VvcG9zaXRpb24+IHNfbGFzdFBvc2l0
aW9uOworICAgIHN0YXRpYyBSZWZQdHI8UG9zaXRpb25FcnJvcj4gc19sYXN0RXJyb3I7CisKKyAg
ICB0eXBlZGVmIEhhc2hTZXQ8TW9ja0dlb2xvY2F0aW9uU2VydmljZSo+IE1vY2tHZW9sb2NhdGlv
blNlcnZpY2VTZXQ7CisgICAgc3RhdGljIE1vY2tHZW9sb2NhdGlvblNlcnZpY2VTZXQgc19pbnN0
YW5jZXM7CisKKyAgICBUaW1lcjxNb2NrR2VvbG9jYXRpb25TZXJ2aWNlPiBtX3RpbWVyOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTW9ja0dlb2xvY2F0aW9uU2Vy
dmljZV9oCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9HZW9sb2NhdGlvblNlcnZpY2VHdGsu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2Vydmlj
ZUd0ay5jcHAJKHJldmlzaW9uIDQ3MTk2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2VvbG9j
YXRpb25TZXJ2aWNlR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTEgKzM3LDEzIEBAIG5h
bWVzcGFjZSBXVEYgewogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdlb2xvY2F0aW9uU2Vydmlj
ZSogR2VvbG9jYXRpb25TZXJ2aWNlOjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBj
bGllbnQpCitHZW9sb2NhdGlvblNlcnZpY2UqIEdlb2xvY2F0aW9uU2VydmljZUd0azo6Y3JlYXRl
KEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogY2xpZW50KQogewogICAgIHJldHVybiBuZXcgR2Vv
bG9jYXRpb25TZXJ2aWNlR3RrKGNsaWVudCk7CiB9CiAKK0dlb2xvY2F0aW9uU2VydmljZTo6RmFj
dG9yeUZ1bmN0aW9uKiBHZW9sb2NhdGlvblNlcnZpY2U6OnNfZmFjdG9yeUZ1bmN0aW9uID0gJkdl
b2xvY2F0aW9uU2VydmljZUd0azo6Y3JlYXRlOworCiBHZW9sb2NhdGlvblNlcnZpY2VHdGs6Okdl
b2xvY2F0aW9uU2VydmljZUd0ayhHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkKICAg
ICA6IEdlb2xvY2F0aW9uU2VydmljZShjbGllbnQpCiAgICAgLCBtX2dlb2NsdWVDbGllbnQoMCkK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5oCShy
ZXZpc2lvbiA0NzE5NikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2Vydmlj
ZUd0ay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgY2xhc3MgR2VvbG9jYXRpb25TZXJ2aWNlR3RrIDogcHVibGljIEdlb2xvY2F0aW9u
U2VydmljZSB7CiAgICAgcHVibGljOgotICAgICAgICBHZW9sb2NhdGlvblNlcnZpY2VHdGsoR2Vv
bG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7CisgICAgICAgIHN0YXRpYyBHZW9sb2NhdGlvblNlcnZp
Y2UqIGNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsKICAgICAgICAgfkdlb2xvY2F0
aW9uU2VydmljZUd0aygpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBzdGFydFVwZGF0aW5nKFBv
c2l0aW9uT3B0aW9ucyopOwpAQCAtNDQsNiArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIFBvc2l0aW9uRXJyb3IqIGxhc3RFcnJvcigpIGNvbnN0OwogCiAgICAgcHJpdmF0ZToK
KyAgICAgICAgR2VvbG9jYXRpb25TZXJ2aWNlR3RrKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCop
OworCiAgICAgICAgIHZvaWQgdXBkYXRlTG9jYXRpb25JbmZvcm1hdGlvbigpOwogICAgICAgICB2
b2lkIHNldEVycm9yKFBvc2l0aW9uRXJyb3I6OkVycm9yQ29kZSwgY29uc3QgY2hhciogbWVzc2Fn
ZSk7CiAgICAgICAgIHZvaWQgdXBkYXRlUG9zaXRpb24oKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vbWFjL0dlb2xvY2F0aW9uU2VydmljZU1hYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vbWFjL0dlb2xvY2F0aW9uU2VydmljZU1hYy5oCShyZXZpc2lvbiA0NzE5NikKKysrIFdl
YkNvcmUvcGxhdGZvcm0vbWFjL0dlb2xvY2F0aW9uU2VydmljZU1hYy5oCSh3b3JraW5nIGNvcHkp
CkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR2VvbG9jYXRp
b25TZXJ2aWNlTWFjIDogcHVibGljIEdlb2xvY2F0aW9uU2VydmljZSB7CiBwdWJsaWM6Ci0gICAg
R2VvbG9jYXRpb25TZXJ2aWNlTWFjKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworICAgIHN0
YXRpYyBHZW9sb2NhdGlvblNlcnZpY2UqIGNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQq
KTsKICAgICB2aXJ0dWFsIH5HZW9sb2NhdGlvblNlcnZpY2VNYWMoKTsKICAgICAKICAgICB2aXJ0
dWFsIGJvb2wgc3RhcnRVcGRhdGluZyhQb3NpdGlvbk9wdGlvbnMqKTsKQEAgLTYxLDYgKzYxLDgg
QEAgcHVibGljOgogICAgIHZvaWQgZXJyb3JPY2N1cnJlZChQYXNzUmVmUHRyPFBvc2l0aW9uRXJy
b3I+KTsKIAogcHJpdmF0ZToKKyAgICBHZW9sb2NhdGlvblNlcnZpY2VNYWMoR2VvbG9jYXRpb25T
ZXJ2aWNlQ2xpZW50Kik7CisKICAgICBSZXRhaW5QdHI8Q0xMb2NhdGlvbk1hbmFnZXI+IG1fbG9j
YXRpb25NYW5hZ2VyOwogICAgIFJldGFpblB0cjxXZWJDb3JlQ29yZUxvY2F0aW9uT2JzZXJ2ZXI+
IG1fb2JqY09ic2VydmVyOwogICAgIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvR2VvbG9j
YXRpb25TZXJ2aWNlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbWFjL0dl
b2xvY2F0aW9uU2VydmljZU1hYy5tbQkocmV2aXNpb24gNDcxOTYpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL21hYy9HZW9sb2NhdGlvblNlcnZpY2VNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTY1LDEx
ICs2NSwxMyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1HZW9sb2NhdGlvblNlcnZpY2UqIEdlb2xvY2F0aW9uU2VydmljZTo6Y3JlYXRlKEdlb2xv
Y2F0aW9uU2VydmljZUNsaWVudCogY2xpZW50KQorR2VvbG9jYXRpb25TZXJ2aWNlKiBHZW9sb2Nh
dGlvblNlcnZpY2VNYWM6OmNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkK
IHsKICAgICByZXR1cm4gbmV3IEdlb2xvY2F0aW9uU2VydmljZU1hYyhjbGllbnQpOwogfQogCitH
ZW9sb2NhdGlvblNlcnZpY2U6OnNfZmFjdG9yeUZ1bmN0aW9uKiBHZW9sb2NhdGlvblNlcnZpY2U6
OnNfZmFjdG9yeUZ1bmN0aW9uID0gJkdlb2xvY2F0aW9uU2VydmljZU1hYzo6Y3JlYXRlOworCiBH
ZW9sb2NhdGlvblNlcnZpY2VNYWM6Okdlb2xvY2F0aW9uU2VydmljZU1hYyhHZW9sb2NhdGlvblNl
cnZpY2VDbGllbnQqIGNsaWVudCkKICAgICA6IEdlb2xvY2F0aW9uU2VydmljZShjbGllbnQpCiAg
ICAgLCBtX29iamNPYnNlcnZlcihBZG9wdE5TLCBbW1dlYkNvcmVDb3JlTG9jYXRpb25PYnNlcnZl
ciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazp0aGlzXSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35155</attachid>
            <date>2009-08-19 15:54:14 -0700</date>
            <delta_ts>2009-09-07 03:25:24 -0700</delta_ts>
            <desc>Patch 2 for bug 28264</desc>
            <filename>addMockGeolocationService2.txt</filename>
            <type>text/plain</type>
            <size>51737</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NzUyOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTkgQEAKKzIwMDktMDgtMTkgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZHMgYSBtb2NrIEdlb2xvY2F0aW9uIHNlcnZpY2UuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIHBy
b3ZpZGUgcHJlZGljdGFibGUgYmVoYXZpb3Igb2YgdGhlCisgICAgICAgIEdlb2xvY2F0aW9uIEFQ
SSBmb3IgdXNlIGluIExheW91dFRlc3RzLiBMYXRlciBjaGFuZ2VzIHdpbGwgaW5jb3Jwb3JhdGUg
dGhlIHRoZSBtb2NrCisgICAgICAgIEdlb2xvY2F0aW9uIHNlcnZpY2Ugd2l0aCBEdW1wUmVuZGVy
VHJlZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4
MjY0CisKKyAgICAgICAgVGhlIG1vY2sgR2VvbG9jYXRpb24gc2VydmljZSByZXR1cm5zIGEgZml4
ZWQgcG9zaXRpb24gb3IgZXJyb3IuIFRoaXMgcG9zaXRpb24gb3IgZXJyb3IgY2FuIGJlCisgICAg
ICAgIHNldCB0aHJvdWdoIHN0YXRpYyBtZXRob2RzIG9uIHRoZSBHZW9sb2NhdGlvblNlcnZpY2Ug
Y2xhc3MuIFRoZSBwb3NpdGlvbiBvciBlcnJvciBpcyBzaGFyZWQKKyAgICAgICAgYmV0d2VlbiBh
bGwgaW5zdGFuY2VzIG9mIHRoZSBtb2NrIEdlb2xvY2F0aW9uIHNlcnZpY2UuCisKKyAgICAgICAg
SW1wbGVtZW50YXRpb24gZGV0YWlscy4KKyAgICAgICAgVGhlIEdlb2xvY2F0aW9uU2VydmljZSBv
YmplY3QgbWFpbnRhaW5zIGEgcG9pbnRlciB0byBhIGZhY3RvcnkgZnVuY3Rpb24gd2hpY2ggaXQg
dXNlcyB0byBjcmVhdGUKKyAgICAgICAgR2VvbG9jYXRpb24gc2VydmljZSBpbnN0YW5jZXMuIEVh
Y2ggcGxhdGZvcm0gaW1wbGVtZW50aW5nIEdlb2xvY2F0aW9uIHNldHMgdGhpcyBwb2ludGVyCisg
ICAgICAgIHRvIHRoZSBmYWN0b3J5IGZ1bmN0aW9uIGZvciB0aGVpciBwbGF0Zm9ybSdzIGltcGxl
bWVudGF0aW9uLiBXaGVuIHRoZSBtb2NrIEdlb2xvY2F0aW9uIHNlcnZpY2UKKyAgICAgICAgaXMg
YWN0aXZhdGVkLCB0aGUgZmFjdG9yeSBmdW5jdGlvbiBwb2ludGVyIGlzIHJlc2V0IHRvIHRoZSBm
YWN0b3J5IGZ1bmN0aW9uIGZvciB0aGUgbW9jayBzZXJ2aWNlLgorCisgICAgICAgIFRlc3Q6IGZh
c3QvZG9tL0dlb2xvY2F0aW9uL2Vycm9yLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuYmFzZS5l
eHA6IE1vZGlmaWVkLiBFeHBvcnRzIE1vY2tHZW9sb2NhdGlvblNlcnZpY2UgbWV0aG9kcy4KKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6IE1vZGlmaWVkLiBBZGRlZCBtb2NrIE1vY2tHZW9sb2NhdGlv
blNlcnZpY2UgZmlsZXMuCisgICAgICAgICogV2ViQ29yZS5wcm86IE1vZGlmaWVkLiBBZGRlZCBt
b2NrIE1vY2tHZW9sb2NhdGlvblNlcnZpY2UgZmlsZXMuCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOiBNb2RpZmllZC4gQWRkZWQgbW9jayBNb2NrR2VvbG9jYXRp
b25TZXJ2aWNlIGZpbGVzIGFuZCBleHBvcnRzIHNvbWUgaGVhZGVycy4KKyAgICAgICAgKiBXZWJD
b3JlU291cmNlcy5ia2w6IE1vZGlmaWVkLiBBZGRlZCBtb2NrIE1vY2tHZW9sb2NhdGlvblNlcnZp
Y2UgZmlsZXMuCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogTW9kaWZpZWQuIEZpeGVk
IGNvbW1lbnQuCisgICAgICAgICogcGFnZS9HZW9sb2NhdGlvbi5jcHA6IE1vZGlmaWVkLgorICAg
ICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OnNldElzQWxsb3dlZCk6IE1vZGlmaWVkLiBGaXhl
ZCBlcnJvciBzdHJpbmcuCisgICAgICAgICogcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNw
cDogTW9kaWZpZWQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVOdWxsR2VvbG9jYXRpb25TZXJ2
aWNlKTogQWRkZWQuIFJldHVybnMgbnVsbCBpbiBwbGFjZSBvZiBhIEdlb2xvY2F0aW9uIHNlcnZp
Y2UuIFVzZWQgdG8gYXZvaWQgbGluayBlcnJvcnMgb24gcGxhdGZvcm1zIHdoZXJlIEdlb2xvY2F0
aW9uIGlzIG5vdCBpbXBsZW1lbnRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2Vy
dmljZTo6Y3JlYXRlKTogQWRkZWQuIFVzZXMgdGhlIGZhY3RvcnkgZnVuY3Rpb24gcG9pbnRlciB0
byBjcmVhdGUgYSBHZW9sb2NhdGlvbiBzZXJ2aWNlIGltcGxlbWVudGF0aW9uLgorICAgICAgICAo
V2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlOjp1c2VNb2NrKTogQWRkZWQuIENvbmZpZ3VyZXMg
dGhlIEdlb2xvY2F0aW9uU2VydmllIHRvIHVzZSB0aGUgbW9jayBpbXBsZW1lbnRhdGlvbi4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaDogTW9kaWZpZWQuCisgICAgICAg
ICogcGxhdGZvcm0vTW9ja0dlb2xvY2F0aW9uU2VydmljZS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6TW9ja0dlb2xvY2F0aW9uU2VydmljZTo6Y3JlYXRlKTogQWRkZWQuIENyZWF0ZXMg
YSBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlIG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tH
ZW9sb2NhdGlvblNlcnZpY2U6Ok1vY2tHZW9sb2NhdGlvblNlcnZpY2UpOiBBZGRlZC4gQ29uc3Ry
dWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjp+TW9ja0dl
b2xvY2F0aW9uU2VydmljZSk6IEFkZGVkLiBEZXN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6
TW9ja0dlb2xvY2F0aW9uU2VydmljZTo6c2V0UG9zaXRpb24pOiBBZGRlZC4gU2V0cyB0aGUgcG9z
aXRpb24gdGhhdCB3aWxsIGJlIHJldHVybmVkIGJ5IHRoZSBvYmplY3QuCisgICAgICAgIChXZWJD
b3JlOjpNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjpzZXRFcnJvcik6IEFkZGVkLiBTZXRzIHRoZSBl
cnJvciB0aGF0IHdpbGwgYmUgcmV0dXJuZWQgYnkgdGhlIG9iamVjdC4KKyAgICAgICAgKFdlYkNv
cmU6Ok1vY2tHZW9sb2NhdGlvblNlcnZpY2U6OnN0YXJ0VXBkYXRpbmcpOiBBZGRlZC4gR2VvbG9j
YXRpb25TZXJ2aWNlIGltcGxlbWVudGF0aW9uLiBTdGFydHMgdGhlIHNlcnZpY2UuCisgICAgICAg
IChXZWJDb3JlOjpNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjp0aW1lckZpcmVkKTogQWRkZWQuIFVz
ZWQgdG8gcHJvdmlkZSBhbiBhc3luY2hyb25vdXMgY2FsbGJhY2sgd2hlbiB0aGUgc2VydmljZSBp
cyBzdGFydGVkLgorICAgICAgICAoV2ViQ29yZTo6TW9ja0dlb2xvY2F0aW9uU2VydmljZTo6bWFr
ZUdlb2xvY2F0aW9uQ2FsbGJhY2tGcm9tQWxsSW5zdGFuY2VzKTogQWRkZWQuIFVzZWQgdG8gY2Fs
bCBiYWNrIHdoZW4gdGhlIHBvc2l0aW9uIG9yIGVycm9yIGlzIHVwZGF0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjptYWtlR2VvbG9jYXRpb25DYWxsYmFjayk6
IEFkZGVkLiBVc2VkIHRvIGNhbGwgYmFjayB3aGVuIHRoZSBzZXJ2aWNlIHN0YXJ0cy4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1vY2tHZW9sb2NhdGlvblNlcnZpY2U6OmluaXRTdGF0aWNzKTogQWRkZWQu
IEluaXRpYWxpemVzIHN0YXRpY3MgbWVtYmVycyB3aXRoIGNvbnN0cnVjdG9ycy4KKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tHZW9sb2NhdGlvblNlcnZpY2U6OmNsZWFuVXBTdGF0aWNzKTogQWRkZWQu
IENsZWFucyB1cCBzdGF0aWMgbWVtYmVycyB3aXRoIGNvbnN0cnVjdG9ycy4KKyAgICAgICAgKiBw
bGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TW9ja0dlb2xvY2F0aW9uU2VydmljZTo6bGFzdFBvc2l0aW9uKTogQWRkZWQuIFJldHVybnMg
dGhlIGZpeGVkIHBvc2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6TW9ja0dlb2xvY2F0aW9uU2Vy
dmljZTo6bGFzdEVycm9yKTogQWRkZWQuIFJldHVybnMgdGhlIGZpeGVkIGVycm9yLgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9HZW9sb2NhdGlvblNlcnZpY2VHdGsuY3BwOiBNb2RpZmllZC4KKyAg
ICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZUd0azo6Y3JlYXRlKTogQWRkZWQuIENy
ZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgR2VvbG9jYXRpb25TZXJ2aWNlR3RrLgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9HZW9sb2NhdGlvblNlcnZpY2VHdGsuaDogTW9kaWZpZWQuCisgICAgICAgICog
cGxhdGZvcm0vbWFjL0dlb2xvY2F0aW9uU2VydmljZU1hYy5oOiBNb2RpZmllZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvR2VvbG9jYXRpb25TZXJ2aWNlTWFjLm1tOiBNb2RpZmllZC4KKyAgICAg
ICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZU1hYzo6Y3JlYXRlKTogQWRkZWQuIENyZWF0
ZXMgYW4gaW5zdGFuY2Ugb2YgR2VvbG9jYXRpb25TZXJ2aWNlTWFjLgorCiAyMDA5LTA4LTE5ICBE
YW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2
ZSBIeWF0dC4KSW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNDc0OTkpCisrKyBXZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMzgwLDYgKzEzODAsOCBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVdlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIFwKIAlXZWJDb3Jl
L3BsYXRmb3JtL0xvZ2dpbmcuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBcCisJ
V2ViQ29yZS9wbGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmNwcCBcCisJV2ViQ29yZS9w
bGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vTUlN
RVR5cGVSZWdpc3RyeS5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5o
IFwKIAlXZWJDb3JlL3BsYXRmb3JtL05vdEltcGxlbWVudGVkLmggXApJbmRleDogV2ViQ29yZS9X
ZWJDb3JlLmJhc2UuZXhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAko
cmV2aXNpb24gNDc0OTkpCisrKyBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMzQsMyArMTAzNCw1IEBAIF93a1NldFVwRm9udENhY2hlCiBfd2tTaWduYWxDRlJl
YWRTdHJlYW1FbmQKIF93a1NpZ25hbENGUmVhZFN0cmVhbUVycm9yCiBfd2tTaWduYWxDRlJlYWRT
dHJlYW1IYXNCeXRlcworX19aTjdXZWJDb3JlMjJNb2NrR2VvbG9jYXRpb25TZXJ2aWNlMTFzZXRQ
b3NpdGlvbkVOM1dURjEwUGFzc1JlZlB0cklOU18xMUdlb3Bvc2l0aW9uRUVFCitfX1pON1dlYkNv
cmUyMk1vY2tHZW9sb2NhdGlvblNlcnZpY2U4c2V0RXJyb3JFTjNXVEYxMFBhc3NSZWZQdHJJTlNf
MTNQb3NpdGlvbkVycm9yRUVFCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNDc0OTkpCisrKyBXZWJDb3JlL1dl
YkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMjU4OSw2ICsyNTg5LDggQEAKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9Mb2dnaW5nLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL01JTUVUeXBl
UmVnaXN0cnkuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5Lmgn
LAorICAgICAgICAgICAgJ3BsYXRmb3JtL01vY2tHZW9sb2NhdGlvblNlcnZpY2UuY3BwJywKKyAg
ICAgICAgICAgICdwbGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL05vdEltcGxlbWVudGVkLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1Bh
c3RlYm9hcmQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50
LmgnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dl
YkNvcmUucHJvCShyZXZpc2lvbiA0NzQ5OSkKKysrIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtp
bmcgY29weSkKQEAgLTExNzUsNiArMTE3NSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3Jt
L0xlbmd0aC5jcHAgXAogICAgIHBsYXRmb3JtL0xpbmtIYXNoLmNwcCBcCiAgICAgcGxhdGZvcm0v
TG9nZ2luZy5jcHAgXAorICAgIHBsYXRmb3JtL01vY2tHZW9sb2NhdGlvblNlcnZpY2UuY3BwIFwK
ICAgICBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29y
ay9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3Jr
L0NyZWRlbnRpYWwuY3BwIFwKQEAgLTE4NTIsNiArMTg1Myw3IEBAIEhFQURFUlMgKz0gXAogICAg
IHBsYXRmb3JtL0xlbmd0aC5oIFwKICAgICBwbGF0Zm9ybS9MaW5rSGFzaC5oIFwKICAgICBwbGF0
Zm9ybS9Mb2dnaW5nLmggXAorICAgIHBsYXRmb3JtL01vY2tHZW9sb2NhdGlvblNlcnZpY2UuaCBc
CiAgICAgcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3Jr
L0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Ny
ZWRlbnRpYWwuaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJrbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJrbAkocmV2aXNpb24gNDc0OTkpCisrKyBXZWJD
b3JlL1dlYkNvcmVTb3VyY2VzLmJrbAkod29ya2luZyBjb3B5KQpAQCAtODA4LDYgKzgwOCw3IEBA
IFRoaXMgZmlsZSBjb250YWlucyB0aGUgbGlzdCBvZiBmaWxlcyBuZWUKICAgICAgICAgcGxhdGZv
cm0vTGVuZ3RoLmNwcAogICAgICAgICBwbGF0Zm9ybS9MaW5rSGFzaC5jcHAKICAgICAgICAgcGxh
dGZvcm0vTG9nZ2luZy5jcHAKKyAgICAgICAgcGxhdGZvcm0vTW9ja0dlb2xvY2F0aW9uU2Vydmlj
ZS5jcHAKICAgICAgICAgcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKICAgICAgICAgcGxh
dGZvcm0vdGV4dC9SZWd1bGFyRXhwcmVzc2lvbi5jcHAKICAgICAgICAgcGxhdGZvcm0vU2Nyb2xs
YmFyLmNwcApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDQ3NDk5KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTk1NCw2ICs5NTQsOCBAQAogCQk1NEM1MEY3QjBFODAx
REYzMDA5ODMyQTAgLyogWE1MVG9rZW5pemVyTGlieG1sMi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NEM1MEY3QTBFODAxREYzMDA5ODMyQTAgLyog
WE1MVG9rZW5pemVyTGlieG1sMi5jcHAgKi87IH07CiAJCTU1MEEwQkM5MDg1RjYwMzkwMDczNTNE
NiAvKiBRdWFsaWZpZWROYW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU1MEEwQkM3MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNw
cCAqLzsgfTsKIAkJNTUwQTBCQ0EwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM4MDg1
RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTlEM0E4NjgxMDM0NUMzRjAwNEE0NjI2IC8qIE1v
Y2tHZW9sb2NhdGlvblNlcnZpY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTlEM0E4NjcxMDM0NUMzRjAwNEE0NjI2IC8qIE1vY2tHZW9sb2NhdGlv
blNlcnZpY2UuY3BwICovOyB9OworCQk1OUQzQTg2QzEwMzQ1QzU2MDA0QTQ2MjYgLyogTW9ja0dl
b2xvY2F0aW9uU2VydmljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTlEM0E4NkIxMDM0NUM1NjAwNEE0NjI2IC8qIE1vY2tHZW9sb2NhdGlvblNlcnZp
Y2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
RDE1RTNBQjBGOUU2QUMxMDA5RTBFM0YgLyogWE1MVG9rZW5pemVyU2NvcGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQxNUUzQTkwRjlFNkFDMTAw
OUUwRTNGIC8qIFhNTFRva2VuaXplclNjb3BlLmNwcCAqLzsgfTsKIAkJNUQxNUUzQUMwRjlFNkFD
MTAwOUUwRTNGIC8qIFhNTFRva2VuaXplclNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDE1RTNBQTBGOUU2QUMxMDA5RTBFM0YgLyogWE1MVG9r
ZW5pemVyU2NvcGUuaCAqLzsgfTsKIAkJNUQ4NzRGMTMwRDE2MUQzMjAwNzk2QzNCIC8qIE5ldHNj
YXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzRTIyN0REMEFGNTg5QUQwMEQ0ODMyNCAvKiBOZXRzY2FwZVBsdWdJ
blN0cmVhbUxvYWRlci5jcHAgKi87IH07CkBAIC00NTUzLDcgKzQ1NTUsNyBAQAogCQlGOTE2QzQ4
RTBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5MTZDNDhDMERCNTEw
RjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oICovOyB9OwogCQlG
OUYwRUQ3QTBEQjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOUYwRUQ3NzBE
QjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi87IH07CiAJ
CUZFNkZENDg3MEY2NzZFNTcwMDA5Mjg3MyAvKiBDb29yZGluYXRlcy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTZGRDQ4NDBGNjc2RTU3MDAwOTI4
NzMgLyogQ29vcmRpbmF0ZXMuY3BwICovOyB9OwotCQlGRTZGRDQ4ODBGNjc2RTU3MDAwOTI4NzMg
LyogQ29vcmRpbmF0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZFNkZENDg1MEY2NzZFNTcwMDA5Mjg3MyAvKiBDb29yZGluYXRlcy5oICovOyB9Owor
CQlGRTZGRDQ4ODBGNjc2RTU3MDAwOTI4NzMgLyogQ29vcmRpbmF0ZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNkZENDg1MEY2NzZFNTcwMDA5Mjg3
MyAvKiBDb29yZGluYXRlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUZFNkZENDhEMEY2NzZFOTMwMDA5Mjg3MyAvKiBKU0Nvb3JkaW5hdGVzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNkZENDhC
MEY2NzZFOTMwMDA5Mjg3MyAvKiBKU0Nvb3JkaW5hdGVzLmNwcCAqLzsgfTsKIAkJRkU2RkQ0OEUw
RjY3NkU5MzAwMDkyODczIC8qIEpTQ29vcmRpbmF0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNkZENDhDMEY2NzZFOTMwMDA5Mjg3MyAvKiBKU0Nv
b3JkaW5hdGVzLmggKi87IH07CiAJCUZFNzAwREQxMEY5MkQ4MUEwMDhFMkJGRSAvKiBKU0Nvb3Jk
aW5hdGVzQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZFNzAwREQwMEY5MkQ4MUEwMDhFMkJGRSAvKiBKU0Nvb3JkaW5hdGVzQ3VzdG9tLmNw
cCAqLzsgfTsKQEAgLTQ1NjUsOSArNDU2Nyw5IEBACiAJCUZFODBEN0M1MEU5QzFGMjUwMDBENkY3
NSAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRTgwRDdCNzBFOUMxRjI1MDAwRDZGNzUgLyogR2VvbG9jYXRpb24uY3BwICov
OyB9OwogCQlGRTgwRDdDNjBFOUMxRjI1MDAwRDZGNzUgLyogR2VvbG9jYXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEN0I4MEU5QzFGMjUw
MDBENkY3NSAvKiBHZW9sb2NhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUZFODBEN0M4MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9wb3NpdGlv
bi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTgw
RDdCQTBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9zaXRpb24uY3BwICovOyB9OwotCQlGRTgwRDdD
OTBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEN0JCMEU5QzFGMjUwMDBENkY3NSAvKiBHZW9w
b3NpdGlvbi5oICovOyB9OworCQlGRTgwRDdDOTBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9zaXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBE
N0JCMEU5QzFGMjUwMDBENkY3NSAvKiBHZW9wb3NpdGlvbi5oICovOyBzZXR0aW5ncyA9IHsgQVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRTgwRDdDQjBFOUMxRjI1MDAwRDZGNzUg
LyogUG9zaXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkU4MEQ3QkQwRTlDMUYyNTAwMEQ2Rjc1IC8qIFBvc2l0aW9uQ2FsbGJhY2su
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlGRTgw
RDdDRDBFOUMxRjI1MDAwRDZGNzUgLyogUG9zaXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU4MEQ3QkYwRTlDMUYyNTAwMEQ2Rjc1IC8q
IFBvc2l0aW9uRXJyb3IuaCAqLzsgfTsKKwkJRkU4MEQ3Q0QwRTlDMUYyNTAwMEQ2Rjc1IC8qIFBv
c2l0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZFODBEN0JGMEU5QzFGMjUwMDBENkY3NSAvKiBQb3NpdGlvbkVycm9yLmggKi87IHNldHRp
bmdzID0geyBBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFODBEN0NGMEU5QzFG
MjUwMDBENkY3NSAvKiBQb3NpdGlvbkVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEN0MxMEU5QzFGMjUwMDBENkY3NSAvKiBQ
b3NpdGlvbkVycm9yQ2FsbGJhY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlGRTgwRDdEMTBFOUMxRjI1MDAwRDZGNzUgLyogUG9zaXRpb25PcHRp
b25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTgw
RDdDMzBFOUMxRjI1MDAwRDZGNzUgLyogUG9zaXRpb25PcHRpb25zLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkU4MERBNjMwRTlDNDcwMzAwMEQ2
Rjc1IC8qIEpTR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkU4MERBNUYwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24u
Y3BwICovOyB9OwpAQCAtNjAzMSw2ICs2MDMzLDggQEAKIAkJNTRDNTBGN0EwRTgwMURGMzAwOTgz
MkEwIC8qIFhNTFRva2VuaXplckxpYnhtbDIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gWE1MVG9rZW5pemVyTGlieG1sMi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU1MEEwQkM3MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFF1
YWxpZmllZE5hbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKIAkJNTUwQTBCQzgwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5h
bWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5k
ZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UXVhbGlmaWVkTmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKKwkJNTlEM0E4NjcxMDM0NUMzRjAwNEE0NjI2IC8qIE1vY2tHZW9sb2Nh
dGlvblNlcnZpY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9j
a0dlb2xvY2F0aW9uU2VydmljZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU5
RDNBODZCMTAzNDVDNTYwMDRBNDYyNiAvKiBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tHZW9sb2NhdGlvblNlcnZpY2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQxNUUzQTkwRjlFNkFDMTAwOUUwRTNGIC8qIFhN
TFRva2VuaXplclNjb3BlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFhNTFRva2VuaXplclNjb3BlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQx
NUUzQUEwRjlFNkFDMTAwOUUwRTNGIC8qIFhNTFRva2VuaXplclNjb3BlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTFRva2VuaXplclNjb3BlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVEOTI1QjY1MEY2NEQ0REQwMEI4NDdGMCAvKiBTY3JvbGxCZWhhdmlv
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxCZWhhdmlv
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDIxMyw2ICsxNDIxNyw4IEBA
CiAJCQkJOTM1MjA3QkQwOUJENDEwQTAwRjIwMzhEIC8qIExvY2FsaXplZFN0cmluZ3MuaCAqLywK
IAkJCQlBODIzOURGRTA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5jcHAgKi8sCiAJCQkJQTgy
MzlERkYwOUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuaCAqLywKKwkJCQk1OUQzQTg2NzEwMzQ1
QzNGMDA0QTQ2MjYgLyogTW9ja0dlb2xvY2F0aW9uU2VydmljZS5jcHAgKi8sCisJCQkJNTlEM0E4
NkIxMDM0NUM1NjAwNEE0NjI2IC8qIE1vY2tHZW9sb2NhdGlvblNlcnZpY2UuaCAqLywKIAkJCQlC
Qzc3MkM0QzBDNEVCMzA0MDA4MzI4NUYgLyogTUlNRVR5cGVSZWdpc3RyeS5jcHAgKi8sCiAJCQkJ
QkM3NzJDNEQwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuaCAqLywKIAkJCQk0
QjI3MDhDNTBBRjE5RUU0MDA2NTEyN0YgLyogUGFzdGVib2FyZC5oICovLApAQCAtMTczMTYsNiAr
MTczMjIsNyBAQAogCQkJCUI1QzExMjNDMTAyQjZDNDYwMDA5NjU3OCAvKiBTUUxUcmFuc2FjdGlv
bkNvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlEOEI2MTUyRjEwMzI0OTUxMDBDODU1
NEEgLyogQ29va2llLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0ZBOTMwODEwMzMzMTkzMDA3QjI1
RDEgLyogUmVuZGVyT3ZlcmZsb3cuaCBpbiBIZWFkZXJzICovLAorCQkJCTU5RDNBODZDMTAzNDVD
NTYwMDRBNDYyNiAvKiBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTE5MzgyLDYgKzE5Mzg5LDcgQEAKIAkJCQk5MzkyMjYyRDEwMzIxMDdCMDA2RTdENUQgLyogSlNI
VE1MQ2FudmFzRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzkyMjYyRjEw
MzIxMDg0MDA2RTdENUQgLyogSlNDU1NSdWxlTGlzdEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCNUMxMTIzQjEwMkI2QzQ2MDAwOTY1NzggLyogU1FMVHJhbnNhY3Rpb25Db29yZGluYXRv
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1OUQzQTg2ODEwMzQ1QzNGMDA0QTQ2MjYgLyogTW9j
a0dlb2xvY2F0aW9uU2VydmljZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgJKHJldmlzaW9uIDQ3NDk5KQorKysgV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzQsNyArMTc0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgdmFsdWUsIGZsb2F0IHBy
b3BvcnRpb24sIFNjcm9sbGJhckNvbnRyb2xQYXJ0TWFzayk7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBwYWludEN1c3RvbVNjcm9sbENvcm5lcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJl
Y3QmKTsKIAotICAgICAgICAvLyBUaGlzIGlzIGFuIGFzeW5jaHJvbm91cyBjYWxsLiBUaGUgQ2hy
b21lQ2xpZW50IGNhbiBkaXNwbGF5IFVJIGFza2luZyB0aGUgdXNlciBmb3IgcGVybWlzc2lvbgor
ICAgICAgICAvLyBUaGlzIGNhbiBiZSBlaXRoZXIgYSBzeW5jaHJvbm91cyBvciBhc3luY2hyb25v
dXMgY2FsbC4gVGhlIENocm9tZUNsaWVudCBjYW4gZGlzcGxheSBVSSBhc2tpbmcgdGhlIHVzZXIg
Zm9yIHBlcm1pc3Npb24KICAgICAgICAgLy8gdG8gdXNlIEdlb2xvY29jYXRpb24uIFRoZSBDaHJv
bWVDbGllbnQgbXVzdCBjYWxsIEdlb2xvY2F0aW9uOjpzZXRTaG91bGRDbGVhckNhY2hlKCkgYXBw
cm9wcmlhdGVseS4KICAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1p
c3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikgPSAwOwogICAgICAgICAgICAgCklu
ZGV4OiBXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGFnZS9HZW9sb2NhdGlvbi5jcHAJKHJldmlzaW9uIDQ3NDk5KQorKysgV2ViQ29yZS9wYWdlL0dl
b2xvY2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgR2Vv
bG9jYXRpb246OnNldElzQWxsb3dlZChib29sIGFsbG8KICAgICAgICAgc3RhcnRUaW1lcnMoKTsK
ICAgICAgICAgbWFrZVN1Y2Nlc3NDYWxsYmFja3MoKTsKICAgICB9IGVsc2UgewotICAgICAgICBX
VEY6OlJlZlB0cjxXZWJDb3JlOjpQb3NpdGlvbkVycm9yPiBlcnJvciA9IFdlYkNvcmU6OlBvc2l0
aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgIlVzZXIg
ZGlzYWxsb3dlZCBHZW9Mb2NhdGlvbiIpOworICAgICAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpQ
b3NpdGlvbkVycm9yPiBlcnJvciA9IFdlYkNvcmU6OlBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3Np
dGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgIlVzZXIgZGlzYWxsb3dlZCBHZW9sb2NhdGlv
biIpOwogICAgICAgICBoYW5kbGVFcnJvcihlcnJvci5nZXQoKSk7CiAgICAgfQogfQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcAkocmV2aXNpb24gNDc0OTkpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIwLDIzICsyMCwzOSBAQAogICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQogICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25TZXJ2aWNlLmgiCisjaW5jbHVkZSAiR2VvcG9z
aXRpb24uaCIKKyNpbmNsdWRlICJNb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmgiCisjaW5jbHVkZSAi
UG9zaXRpb25FcnJvci5oIgogCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVk
ZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgIUVOQUJM
RShHRU9MT0NBVElPTikKLUdlb2xvY2F0aW9uU2VydmljZSogR2VvbG9jYXRpb25TZXJ2aWNlOjpj
cmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KikKK0dlb2xvY2F0aW9uU2VydmljZSogY3Jl
YXRlTnVsbEdlb2xvY2F0aW9uU2VydmljZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKQogewog
ICAgIHJldHVybiAwOwogfQorCitHZW9sb2NhdGlvblNlcnZpY2U6OkZhY3RvcnlGdW5jdGlvbiog
R2VvbG9jYXRpb25TZXJ2aWNlOjpzX2ZhY3RvcnlGdW5jdGlvbiA9ICZjcmVhdGVOdWxsR2VvbG9j
YXRpb25TZXJ2aWNlOwogI2VuZGlmCiAKK0dlb2xvY2F0aW9uU2VydmljZSogR2VvbG9jYXRpb25T
ZXJ2aWNlOjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBjbGllbnQpCit7CisgICAg
cmV0dXJuICgqc19mYWN0b3J5RnVuY3Rpb24pKGNsaWVudCk7Cit9CisKK3ZvaWQgR2VvbG9jYXRp
b25TZXJ2aWNlOjp1c2VNb2NrKCkKK3sKKyAgICBzX2ZhY3RvcnlGdW5jdGlvbiA9ICZNb2NrR2Vv
bG9jYXRpb25TZXJ2aWNlOjpjcmVhdGU7Cit9CisKIEdlb2xvY2F0aW9uU2VydmljZTo6R2VvbG9j
YXRpb25TZXJ2aWNlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogY2xpZW50KQogICAgIDogbV9n
ZW9sb2NhdGlvblNlcnZpY2VDbGllbnQoY2xpZW50KQogewpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9HZW9sb2NhdGlvblNlcnZpY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0dl
b2xvY2F0aW9uU2VydmljZS5oCShyZXZpc2lvbiA0NzQ5OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
R2VvbG9jYXRpb25TZXJ2aWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDExICs1OSwxNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBwb3NpdGlvbkNoYW5nZWQoKTsKICAgICB2b2lkIGVycm9yT2NjdXJy
ZWQoKTsKIAorICAgIHN0YXRpYyB2b2lkIHVzZU1vY2soKTsKKwogcHJvdGVjdGVkOgogICAgIEdl
b2xvY2F0aW9uU2VydmljZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsKIAogcHJpdmF0ZToK
ICAgICBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIG1fZ2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50
OworCisgICAgdHlwZWRlZiBHZW9sb2NhdGlvblNlcnZpY2UqIChGYWN0b3J5RnVuY3Rpb24pKEdl
b2xvY2F0aW9uU2VydmljZUNsaWVudCopOworICAgIHN0YXRpYyBGYWN0b3J5RnVuY3Rpb24qIHNf
ZmFjdG9yeUZ1bmN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL01vY2tHZW9sb2NhdGlvblNlcnZpY2UuY3BwCShyZXZpc2lvbiAwKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9Nb2NrR2VvbG9jYXRpb25TZXJ2aWNlLmNwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1vY2tHZW9sb2NhdGlv
blNlcnZpY2UuaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlv
bi5oIgorI2luY2x1ZGUgIkdlb3Bvc2l0aW9uLmgiCisjaW5jbHVkZSAiUG9zaXRpb25FcnJvci5o
IgorI2luY2x1ZGUgIlBvc2l0aW9uT3B0aW9ucy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K01vY2tHZW9sb2NhdGlvblNlcnZpY2U6Ok1vY2tHZW9sb2NhdGlvblNlcnZpY2VTZXQqIE1vY2tH
ZW9sb2NhdGlvblNlcnZpY2U6OnNfaW5zdGFuY2VzID0gMDsKK1JlZlB0cjxHZW9wb3NpdGlvbj4q
IE1vY2tHZW9sb2NhdGlvblNlcnZpY2U6OnNfbGFzdFBvc2l0aW9uOworUmVmUHRyPFBvc2l0aW9u
RXJyb3I+KiBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjpzX2xhc3RFcnJvcjsKKworR2VvbG9jYXRp
b25TZXJ2aWNlKiBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2
aWNlQ2xpZW50KiBjbGllbnQpCit7CisgICAgaW5pdFN0YXRpY3MoKTsKKyAgICByZXR1cm4gbmV3
IE1vY2tHZW9sb2NhdGlvblNlcnZpY2UoY2xpZW50KTsKK30KKworTW9ja0dlb2xvY2F0aW9uU2Vy
dmljZTo6TW9ja0dlb2xvY2F0aW9uU2VydmljZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNs
aWVudCkKKyAgICA6IEdlb2xvY2F0aW9uU2VydmljZShjbGllbnQpCisgICAgLCBtX3RpbWVyKHRo
aXMsICZNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjp0aW1lckZpcmVkKQoreworICAgIHNfaW5zdGFu
Y2VzLT5hZGQodGhpcyk7Cit9CisKK01vY2tHZW9sb2NhdGlvblNlcnZpY2U6On5Nb2NrR2VvbG9j
YXRpb25TZXJ2aWNlKCkKK3sKKyAgICBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlU2V0OjppdGVyYXRv
ciBpdGVyID0gc19pbnN0YW5jZXMtPmZpbmQodGhpcyk7CisgICAgQVNTRVJUKGl0ZXIgIT0gc19p
bnN0YW5jZXMtPmVuZCgpKTsKKyAgICBzX2luc3RhbmNlcy0+cmVtb3ZlKGl0ZXIpOworICAgIGNs
ZWFuVXBTdGF0aWNzKCk7Cit9CisKK3ZvaWQgTW9ja0dlb2xvY2F0aW9uU2VydmljZTo6c2V0UG9z
aXRpb24oUGFzc1JlZlB0cjxHZW9wb3NpdGlvbj4gcG9zaXRpb24pCit7CisgICAgaW5pdFN0YXRp
Y3MoKTsKKyAgICBHZW9sb2NhdGlvblNlcnZpY2U6OnVzZU1vY2soKTsKKyAgICAqc19sYXN0UG9z
aXRpb24gPSBwb3NpdGlvbjsKKyAgICAqc19sYXN0RXJyb3IgPSAwOworICAgIG1ha2VHZW9sb2Nh
dGlvbkNhbGxiYWNrRnJvbUFsbEluc3RhbmNlcygpOworfQorCit2b2lkIE1vY2tHZW9sb2NhdGlv
blNlcnZpY2U6OnNldEVycm9yKFBhc3NSZWZQdHI8UG9zaXRpb25FcnJvcj4gZXJyb3IpCit7Cisg
ICAgaW5pdFN0YXRpY3MoKTsKKyAgICBHZW9sb2NhdGlvblNlcnZpY2U6OnVzZU1vY2soKTsKKyAg
ICAqc19sYXN0RXJyb3IgPSBlcnJvcjsKKyAgICAqc19sYXN0UG9zaXRpb24gPSAwOworICAgIG1h
a2VHZW9sb2NhdGlvbkNhbGxiYWNrRnJvbUFsbEluc3RhbmNlcygpOworfQorCitib29sIE1vY2tH
ZW9sb2NhdGlvblNlcnZpY2U6OnN0YXJ0VXBkYXRpbmcoUG9zaXRpb25PcHRpb25zKikKK3sKKyAg
ICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBN
b2NrR2VvbG9jYXRpb25TZXJ2aWNlOjp0aW1lckZpcmVkKFRpbWVyPE1vY2tHZW9sb2NhdGlvblNl
cnZpY2U+KiB0aW1lcikKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9PSAmbV90
aW1lcik7CisgICAgbWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2soKTsKK30KKwordm9pZCBNb2NrR2Vv
bG9jYXRpb25TZXJ2aWNlOjptYWtlR2VvbG9jYXRpb25DYWxsYmFja0Zyb21BbGxJbnN0YW5jZXMo
KQoreworICAgIE1vY2tHZW9sb2NhdGlvblNlcnZpY2VTZXQ6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9
IHNfaW5zdGFuY2VzLT5lbmQoKTsKKyAgICBmb3IgKE1vY2tHZW9sb2NhdGlvblNlcnZpY2VTZXQ6
OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBzX2luc3RhbmNlcy0+YmVnaW4oKTsgaXRlciAhPSBlbmQ7
ICsraXRlcikKKyAgICAgICAgKCppdGVyKS0+bWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2soKTsKK30K
Kwordm9pZCBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlOjptYWtlR2VvbG9jYXRpb25DYWxsYmFjaygp
Cit7CisgICAgaWYgKCpzX2xhc3RQb3NpdGlvbikKKyAgICAgICAgcG9zaXRpb25DaGFuZ2VkKCk7
CisgICAgZWxzZSBpZiAoKnNfbGFzdEVycm9yKQorICAgICAgICBlcnJvck9jY3VycmVkKCk7Cit9
CisKK3ZvaWQgTW9ja0dlb2xvY2F0aW9uU2VydmljZTo6aW5pdFN0YXRpY3MoKQoreworICAgIGlm
IChzX2luc3RhbmNlcyA9PSAwKSB7IAorICAgICAgICBzX2luc3RhbmNlcyA9IG5ldyBNb2NrR2Vv
bG9jYXRpb25TZXJ2aWNlU2V0OworICAgICAgICBzX2xhc3RQb3NpdGlvbiA9IG5ldyBSZWZQdHI8
R2VvcG9zaXRpb24+OworICAgICAgICBzX2xhc3RFcnJvciA9IG5ldyBSZWZQdHI8UG9zaXRpb25F
cnJvcj47CisgICAgfQorfQorCit2b2lkIE1vY2tHZW9sb2NhdGlvblNlcnZpY2U6OmNsZWFuVXBT
dGF0aWNzKCkKK3sKKyAgICBpZiAoc19pbnN0YW5jZXMtPnNpemUoKSA9PSAwKSB7CisgICAgICAg
IGRlbGV0ZSBzX2luc3RhbmNlczsKKyAgICAgICAgc19pbnN0YW5jZXMgPSAwOworICAgICAgICBk
ZWxldGUgc19sYXN0UG9zaXRpb247CisgICAgICAgIGRlbGV0ZSBzX2xhc3RFcnJvcjsKKyAgICB9
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vTW9j
a0dlb2xvY2F0aW9uU2VydmljZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vTW9j
a0dlb2xvY2F0aW9uU2VydmljZS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9N
b2NrR2VvbG9jYXRpb25TZXJ2aWNlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1vY2tH
ZW9sb2NhdGlvblNlcnZpY2VfaAorI2RlZmluZSBNb2NrR2VvbG9jYXRpb25TZXJ2aWNlX2gKKwor
I2luY2x1ZGUgIkdlb2xvY2F0aW9uU2VydmljZS5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBUaGlzIGNsYXNz
IHByb3ZpZGVzIGEgbW9jayBpbXBsZW1lbnRhdGlvbiBvZiBhIEdlb2xvY2F0aW9uU2VydmljZSBm
b3IgdGVzdGluZworLy8gcHVycG9zZXMuIEl0IGFsbG93cyB0aGUgcG9zaXRpb24gb3IgZXJyb3Ig
dGhhdCB3aWxsIGJlIHJlcG9ydGVkIGJ5IHRoaXMgY2xhc3MKKy8vIHRvIGJlIHNldCBtYW51YWxs
eSB1c2luZyB0aGUgc2V0UG9zaXRpb24gYW5kIHNldEVycm9yIG1ldGhvZHMuIE9iamVjdHMgb2YK
Ky8vIHRoaXMgY2xhc3MgY2FsbCBiYWNrIHRvIHRoZWlyIHJlc3BlY3RpdmUgR2VvbG9jYXRpb25T
ZXJ2aWNlQ2xpZW50IHdpdGggdGhlCisvLyBwb3NpdGlvbiBvciBlcnJvciBldmVyeSB0aW1lIGVp
dGhlciBvZiB0aGVzZSBpcyB1cGRhdGVkLgorY2xhc3MgTW9ja0dlb2xvY2F0aW9uU2VydmljZSA6
IHB1YmxpYyBHZW9sb2NhdGlvblNlcnZpY2UgeworICBwdWJsaWM6CisgICAgc3RhdGljIEdlb2xv
Y2F0aW9uU2VydmljZSogY3JlYXRlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworCisgICAg
TW9ja0dlb2xvY2F0aW9uU2VydmljZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsKKyAgICB2
aXJ0dWFsIH5Nb2NrR2VvbG9jYXRpb25TZXJ2aWNlKCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgc3Rh
cnRVcGRhdGluZyhQb3NpdGlvbk9wdGlvbnMqKTsKKworICAgIHN0YXRpYyB2b2lkIHNldFBvc2l0
aW9uKFBhc3NSZWZQdHI8R2VvcG9zaXRpb24+IHBvc2l0aW9uKTsKKyAgICBzdGF0aWMgdm9pZCBz
ZXRFcnJvcihQYXNzUmVmUHRyPFBvc2l0aW9uRXJyb3I+IHBvc2l0aW9uKTsKKworICAgIHZpcnR1
YWwgR2VvcG9zaXRpb24qIGxhc3RQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIHNfbGFzdFBvc2l0
aW9uLT5nZXQoKTsgfQorICAgIHZpcnR1YWwgUG9zaXRpb25FcnJvciogbGFzdEVycm9yKCkgY29u
c3QgeyByZXR1cm4gc19sYXN0RXJyb3ItPmdldCgpOyB9CisKKyAgcHJpdmF0ZToKKyAgICBzdGF0
aWMgdm9pZCBtYWtlR2VvbG9jYXRpb25DYWxsYmFja0Zyb21BbGxJbnN0YW5jZXMoKTsKKyAgICB2
b2lkIG1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrKCk7CisKKyAgICB2b2lkIHRpbWVyRmlyZWQoVGlt
ZXI8TW9ja0dlb2xvY2F0aW9uU2VydmljZT4qKTsKKworICAgIHN0YXRpYyB2b2lkIGluaXRTdGF0
aWNzKCk7CisgICAgc3RhdGljIHZvaWQgY2xlYW5VcFN0YXRpY3MoKTsKKworICAgIHR5cGVkZWYg
SGFzaFNldDxNb2NrR2VvbG9jYXRpb25TZXJ2aWNlKj4gTW9ja0dlb2xvY2F0aW9uU2VydmljZVNl
dDsKKyAgICBzdGF0aWMgTW9ja0dlb2xvY2F0aW9uU2VydmljZVNldCogc19pbnN0YW5jZXM7CisK
KyAgICBzdGF0aWMgUmVmUHRyPEdlb3Bvc2l0aW9uPiogc19sYXN0UG9zaXRpb247CisgICAgc3Rh
dGljIFJlZlB0cjxQb3NpdGlvbkVycm9yPiogc19sYXN0RXJyb3I7CisKKyAgICBUaW1lcjxNb2Nr
R2VvbG9jYXRpb25TZXJ2aWNlPiBtX3RpbWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gTW9ja0dlb2xvY2F0aW9uU2VydmljZV9oCkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2d0ay9HZW9sb2NhdGlvblNlcnZpY2VHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5jcHAJKHJldmlzaW9uIDQ3NDk5
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2VvbG9jYXRpb25TZXJ2aWNlR3RrLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzcsMTEgKzM3LDEzIEBAIG5hbWVzcGFjZSBXVEYgewogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLUdlb2xvY2F0aW9uU2VydmljZSogR2VvbG9jYXRpb25TZXJ2aWNlOjpj
cmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBjbGllbnQpCitHZW9sb2NhdGlvblNlcnZp
Y2UqIEdlb2xvY2F0aW9uU2VydmljZUd0azo6Y3JlYXRlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVu
dCogY2xpZW50KQogewogICAgIHJldHVybiBuZXcgR2VvbG9jYXRpb25TZXJ2aWNlR3RrKGNsaWVu
dCk7CiB9CiAKK0dlb2xvY2F0aW9uU2VydmljZTo6RmFjdG9yeUZ1bmN0aW9uKiBHZW9sb2NhdGlv
blNlcnZpY2U6OnNfZmFjdG9yeUZ1bmN0aW9uID0gJkdlb2xvY2F0aW9uU2VydmljZUd0azo6Y3Jl
YXRlOworCiBHZW9sb2NhdGlvblNlcnZpY2VHdGs6Okdlb2xvY2F0aW9uU2VydmljZUd0ayhHZW9s
b2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkKICAgICA6IEdlb2xvY2F0aW9uU2VydmljZShj
bGllbnQpCiAgICAgLCBtX2dlb2NsdWVDbGllbnQoMCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5oCShyZXZpc2lvbiA0NzQ5OSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgR2VvbG9jYXRp
b25TZXJ2aWNlR3RrIDogcHVibGljIEdlb2xvY2F0aW9uU2VydmljZSB7CiAgICAgcHVibGljOgot
ICAgICAgICBHZW9sb2NhdGlvblNlcnZpY2VHdGsoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7
CisgICAgICAgIHN0YXRpYyBHZW9sb2NhdGlvblNlcnZpY2UqIGNyZWF0ZShHZW9sb2NhdGlvblNl
cnZpY2VDbGllbnQqKTsKICAgICAgICAgfkdlb2xvY2F0aW9uU2VydmljZUd0aygpOwogCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBzdGFydFVwZGF0aW5nKFBvc2l0aW9uT3B0aW9ucyopOwpAQCAtNDQs
NiArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFBvc2l0aW9uRXJyb3IqIGxh
c3RFcnJvcigpIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKKyAgICAgICAgR2VvbG9jYXRpb25TZXJ2
aWNlR3RrKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworCiAgICAgICAgIHZvaWQgdXBkYXRl
TG9jYXRpb25JbmZvcm1hdGlvbigpOwogICAgICAgICB2b2lkIHNldEVycm9yKFBvc2l0aW9uRXJy
b3I6OkVycm9yQ29kZSwgY29uc3QgY2hhciogbWVzc2FnZSk7CiAgICAgICAgIHZvaWQgdXBkYXRl
UG9zaXRpb24oKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbWFjL0dlb2xvY2F0aW9uU2Vydmlj
ZU1hYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbWFjL0dlb2xvY2F0aW9uU2Vy
dmljZU1hYy5oCShyZXZpc2lvbiA0NzQ5OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vbWFjL0dlb2xv
Y2F0aW9uU2VydmljZU1hYy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0Niw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR2VvbG9jYXRpb25TZXJ2aWNlTWFjIDogcHVibGljIEdl
b2xvY2F0aW9uU2VydmljZSB7CiBwdWJsaWM6Ci0gICAgR2VvbG9jYXRpb25TZXJ2aWNlTWFjKEdl
b2xvY2F0aW9uU2VydmljZUNsaWVudCopOworICAgIHN0YXRpYyBHZW9sb2NhdGlvblNlcnZpY2Uq
IGNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsKICAgICB2aXJ0dWFsIH5HZW9sb2Nh
dGlvblNlcnZpY2VNYWMoKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgc3RhcnRVcGRhdGluZyhQ
b3NpdGlvbk9wdGlvbnMqKTsKQEAgLTYxLDYgKzYyLDggQEAgcHVibGljOgogICAgIHZvaWQgZXJy
b3JPY2N1cnJlZChQYXNzUmVmUHRyPFBvc2l0aW9uRXJyb3I+KTsKIAogcHJpdmF0ZToKKyAgICBH
ZW9sb2NhdGlvblNlcnZpY2VNYWMoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7CisKICAgICBS
ZXRhaW5QdHI8Q0xMb2NhdGlvbk1hbmFnZXI+IG1fbG9jYXRpb25NYW5hZ2VyOwogICAgIFJldGFp
blB0cjxXZWJDb3JlQ29yZUxvY2F0aW9uT2JzZXJ2ZXI+IG1fb2JqY09ic2VydmVyOwogICAgIApJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvR2VvbG9jYXRpb25TZXJ2aWNlTWFjLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbWFjL0dlb2xvY2F0aW9uU2VydmljZU1hYy5tbQko
cmV2aXNpb24gNDc0OTkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL21hYy9HZW9sb2NhdGlvblNlcnZp
Y2VNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTYyLDE0ICs2MywxNiBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIC0gKHZvaWQpbG9jYXRpb25NYW5hZ2VyOihDTExvY2F0aW9uTWFuYWdlciAq
KW1hbmFnZXIgZGlkRmFpbFdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yOwogCiBAZW5kCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotR2VvbG9jYXRpb25TZXJ2aWNlKiBHZW9sb2NhdGlvblNlcnZp
Y2U6OmNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkKK0dlb2xvY2F0aW9u
U2VydmljZSogR2VvbG9jYXRpb25TZXJ2aWNlTWFjOjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNl
Q2xpZW50KiBjbGllbnQpCiB7CiAgICAgcmV0dXJuIG5ldyBHZW9sb2NhdGlvblNlcnZpY2VNYWMo
Y2xpZW50KTsKIH0KIAorR2VvbG9jYXRpb25TZXJ2aWNlOjpGYWN0b3J5RnVuY3Rpb24qIEdlb2xv
Y2F0aW9uU2VydmljZTo6c19mYWN0b3J5RnVuY3Rpb24gPSAmR2VvbG9jYXRpb25TZXJ2aWNlTWFj
OjpjcmVhdGU7CisKIEdlb2xvY2F0aW9uU2VydmljZU1hYzo6R2VvbG9jYXRpb25TZXJ2aWNlTWFj
KEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogY2xpZW50KQogICAgIDogR2VvbG9jYXRpb25TZXJ2
aWNlKGNsaWVudCkKICAgICAsIG1fb2JqY09ic2VydmVyKEFkb3B0TlMsIFtbV2ViQ29yZUNvcmVM
b2NhdGlvbk9ic2VydmVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOnRoaXNdKQpJbmRleDogV2Vi
S2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA0
NzUyOCkKKysrIFdlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBA
QAorMjAwOS0wOC0xOSAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBhIG1vY2sg
R2VvbG9jYXRpb24gc2VydmljZS4gVGhpcyB3aWxsIGJlIHVzZWQgdG8gcHJvdmlkZSBwcmVkaWN0
YWJsZSBiZWhhdmlvciBvZiB0aGUKKyAgICAgICAgR2VvbG9jYXRpb24gQVBJIGZvciB1c2UgaW4g
TGF5b3V0VGVzdHMuIExhdGVyIGNoYW5nZXMgd2lsbCBpbmNvcnBvcmF0ZSB0aGUgdGhlIG1vY2sK
KyAgICAgICAgR2VvbG9jYXRpb24gc2VydmljZSB3aXRoIER1bXBSZW5kZXJUcmVlLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNjQKKworICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBNb2RpZmllZC4gQWRkcyBXZWJN
b2NrR2VvbG9jYXRpb24uCisKIDIwMDktMDgtMTggIERyZXcgV2lsc29uICA8YXR3aWxzb25AZ29v
Z2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDQ3NDk5KQorKysgV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC05
NCw2ICs5NCw4IEBACiAJCTUxRkRDNEQzMEIwQUY1QzEwMEY4NEVCMyAvKiBXZWJIaXN0b3J5SXRl
bVByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxRkRDNEQyMEIwQUY1QzEwMEY4NEVCMyAvKiBXZWJIaXN0b3J5SXRlbVByaXZhdGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MjQxQURGNTBC
MUJDNDhBMDA0MDEyQkQgLyogV2ViQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUyNDFBREYzMEIxQkM0OEEwMDQwMTJCRCAvKiBXZWJDYWNoZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyNDFB
REY2MEIxQkM0OEEwMDQwMTJCRCAvKiBXZWJDYWNoZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNDFBREY0MEIxQkM0OEEwMDQwMTJCRCAvKiBXZWJD
YWNoZS5tbSAqLzsgfTsKKwkJNTk1Q0RDMTExMDNBQzI4NDAwOTVBQTE3IC8qIFdlYk1vY2tHZW9s
b2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTk1Q0RDMEYxMDNBQzI4NDAwOTVBQTE3IC8qIFdlYk1vY2tHZW9sb2NhdGlvbi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTU5NUNEQzEyMTAzQUMy
ODQwMDk1QUExNyAvKiBXZWJNb2NrR2VvbG9jYXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OTVDREMxMDEwM0FDMjg0MDA5NUFBMTcgLyogV2Vi
TW9ja0dlb2xvY2F0aW9uLm1tICovOyB9OwogCQk1RDE2MzhGMzBFMzVCNDVEMDBGMzAzOEUgLyog
RW1wdHlQcm90b2NvbERlZmluaXRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1RDE2MzhGMjBFMzVCNDVEMDBGMzAzOEUgLyogRW1wdHlQcm90b2Nv
bERlZmluaXRpb25zLmggKi87IH07CiAJCTVEN0JGODE0MEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJ
bnNwZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVEN0JGODEyMEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNwZWN0b3IuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1RDdCRjgxNTBDMkExRDkwMDA4
Q0UwNkQgLyogV2ViSW5zcGVjdG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNUQ3QkY4MTMwQzJBMUQ5MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5t
bSAqLzsgfTsKQEAgLTQ2OCw2ICs0NzAsOCBAQAogCQk1MUZEQzREMjBCMEFGNUMxMDBGODRFQjMg
LyogV2ViSGlzdG9yeUl0ZW1Qcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkhpc3RvcnlJdGVtUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MjQxQURGMzBCMUJDNDhBMDA0MDEyQkQgLyogV2ViQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUyNDFBREY0MEIxQkM0OEEwMDQwMTJCRCAvKiBXZWJDYWNoZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDYWNoZS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTk1Q0RDMEYxMDNBQzI4NDAwOTVBQTE3IC8qIFdlYk1vY2tHZW9sb2Nh
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJNb2NrR2VvbG9jYXRp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTk1Q0RDMTAxMDNBQzI4NDAwOTVB
QTE3IC8qIFdlYk1vY2tHZW9sb2NhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYk1vY2tHZW9sb2NhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNUQxNjM4RjIwRTM1QjQ1RDAwRjMwMzhFIC8qIEVtcHR5UHJvdG9jb2xEZWZpbml0
aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbXB0eVByb3RvY29sRGVm
aW5pdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQ3QkY4MTIwQzJBMUQ5
MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViSW5zcGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEN0JG
ODEzMEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNwZWN0b3IubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViSW5zcGVjdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTE0MSw2ICsxMTQ1LDggQEAKIAkJRjVCMzZCNDAwMjgxREU4NzAxODYz
NUNCIC8qIFdlYkNvcmVTdXBwb3J0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQk1OTVDREMwRjEwM0FDMjg0MDA5NUFBMTcgLyogV2ViTW9ja0dlb2xvY2F0
aW9uLmggKi8sCisJCQkJNTk1Q0RDMTAxMDNBQzI4NDAwOTVBQTE3IC8qIFdlYk1vY2tHZW9sb2Nh
dGlvbi5tbSAqLywKIAkJCQlCNjgwNDk3MTBGRkJDRUMxMDA5RjdGNjIgLyogV2ViQXBwbGljYXRp
b25DYWNoZS5oICovLAogCQkJCUI2ODA0OTcyMEZGQkNFQzEwMDlGN0Y2MiAvKiBXZWJBcHBsaWNh
dGlvbkNhY2hlLm1tICovLAogCQkJCTUxQ0JGQ0FDMEQxMEU2QzUwMDJEQkY1MSAvKiBXZWJDYWNo
ZWRGcmFtZVBsYXRmb3JtRGF0YS5oICovLApAQCAtMTQ1Miw2ICsxNDU4LDcgQEAKIAkJCQk5Mzk4
MTA5QjA4MjRCRjAxMDA4REYwMzggLyogV2ViVmlld0ludGVybmFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5Mzk4MTA3MTA4MjRCRjAxMDA4REYwMzggLyogV2ViVmlld1ByaXZhdGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxRjQ0ODRGMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTk1Q0RDMTExMDNBQzI4NDAwOTVBQTE3IC8qIFdlYk1v
Y2tHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xNzg1LDYgKzE3OTIsNyBAQAogCQkJ
CUJDMkU0NjRFMEZEOEE5NjgwMEE5RDlERSAvKiBXZWJWaWV3RGF0YS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTkzOTgxMEU4MDgyNEJGMDEwMDhERjAzOCAvKiBXZWJWaWV3RmFjdG9yeS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTQxRjQ0ODUwMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJXb3JrZXJzUHJp
dmF0ZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTU5NUNEQzEyMTAzQUMyODQwMDk1QUExNyAvKiBX
ZWJNb2NrR2VvbG9jYXRpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYktpdC9tYWMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NzUy
OCkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMDktMDgtMTkgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgYSBtb2Nr
IEdlb2xvY2F0aW9uIHNlcnZpY2UuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIHByb3ZpZGUgcHJlZGlj
dGFibGUgYmVoYXZpb3Igb2YgdGhlCisgICAgICAgIEdlb2xvY2F0aW9uIEFQSSBmb3IgdXNlIGlu
IExheW91dFRlc3RzLiBMYXRlciBjaGFuZ2VzIHdpbGwgaW5jb3Jwb3JhdGUgdGhlIHRoZSBtb2Nr
CisgICAgICAgIEdlb2xvY2F0aW9uIHNlcnZpY2Ugd2l0aCBEdW1wUmVuZGVyVHJlZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MjY0CisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJNb2NrR2VvbG9jYXRpb24uaDogQWRkZWQuCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViTW9ja0dlb2xvY2F0aW9uLm1tOiBBZGRlZC4KKyAgICAgICAg
KCtbV2ViTW9ja0dlb2xvY2F0aW9uIHNldEVycm9yOmNvZGU6XSk6IEFkZGVkLiBVc2VkIGJ5IER1
bXBSZW5kZXIgdHJlZSB0byBjb25maWd1cmUgdGhlIG1vY2sgR2VvbG9jYXRpb24gc2VydmljZS4K
KyAgICAgICAgKCtbV2ViTW9ja0dlb2xvY2F0aW9uIHNldFBvc2l0aW9uOmxhdGl0dWRlOmxvbmdp
dHVkZTphY2N1cmFjeTpdKTogQWRkZWQuIFVzZWQgYnkgRHVtcFJlbmRlciB0cmVlIHRvIGNvbmZp
Z3VyZSB0aGUgbW9jayBHZW9sb2NhdGlvbiBzZXJ2aWNlLgorICAgICAgICAqIFdlYktpdC5leHA6
IE1vZGlmaWVkLiBFeHBvcnRzIFdlYk1vY2tHZW9sb2NhdGlvbi4KKwogMjAwOS0wOC0xOCAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFkZWxlIFBldGVyc29uLgpJbmRleDogV2ViS2l0L21hYy9XZWJLaXQuZXhwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9tYWMvV2ViS2l0LmV4cAkocmV2aXNpb24gNDc0OTkpCisrKyBXZWJLaXQvbWFj
L1dlYktpdC5leHAJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKIC5vYmpjX2NsYXNz
X25hbWVfV2ViSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsCiAub2JqY19jbGFzc19uYW1lX1dlYktl
eUdlbmVyYXRvcgogLm9iamNfY2xhc3NfbmFtZV9XZWJLaXRTdGF0aXN0aWNzCisub2JqY19jbGFz
c19uYW1lX1dlYk1vY2tHZW9sb2NhdGlvbgogLm9iamNfY2xhc3NfbmFtZV9XZWJQYW5lbEF1dGhl
bnRpY2F0aW9uSGFuZGxlcgogLm9iamNfY2xhc3NfbmFtZV9XZWJQbHVnaW5EYXRhYmFzZQogLm9i
amNfY2xhc3NfbmFtZV9XZWJQcmVmZXJlbmNlcwpJbmRleDogV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJNb2NrR2VvbG9jYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYk1vY2tHZW9sb2NhdGlvbi5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJNb2NrR2VvbG9jYXRpb24uaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKworQGludGVyZmFjZSBXZWJNb2Nr
R2VvbG9jYXRpb24gOiBOU09iamVjdCB7Cit9CisKKysgKHZvaWQpc2V0UG9zaXRpb246KGRvdWJs
ZSlsYXRpdHVkZTooZG91YmxlKWxvbmdpdHVkZTooZG91YmxlKWFjY3VyYWN5OworKyAodm9pZClz
ZXRFcnJvcjooaW50KWNvZGU6KE5TU3RyaW5nICopbWVzc2FnZTsKK0BlbmQKSW5kZXg6IFdlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTW9ja0dlb2xvY2F0aW9uLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTW9ja0dlb2xvY2F0aW9uLm1tCShyZXZpc2lv
biAwKQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJNb2NrR2VvbG9jYXRpb24ubW0J
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkg
QXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2ltcG9ydCAiV2ViTW9ja0dlb2xvY2F0aW9uLmgiCisKKyNp
bXBvcnQgIldlYkdlb2xvY2F0aW9uSW50ZXJuYWwuaCIKKyNpbXBvcnQgPFdlYkNvcmUvTW9ja0dl
b2xvY2F0aW9uU2VydmljZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9HZW9wb3NpdGlvbi5oPgorI2lt
cG9ydCA8V2ViQ29yZS9Qb3NpdGlvbkVycm9yLmg+CisjaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUu
aD4KKworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBXVEY7CisK
K0BpbXBsZW1lbnRhdGlvbiBXZWJNb2NrR2VvbG9jYXRpb24KKworKyAodm9pZClzZXRQb3NpdGlv
bjooZG91YmxlKWxhdGl0dWRlOihkb3VibGUpbG9uZ2l0dWRlOihkb3VibGUpYWNjdXJhY3kKK3sK
KyAgICBSZWZQdHI8Q29vcmRpbmF0ZXM+IGNvb3JkaW5hdGVzID0gQ29vcmRpbmF0ZXM6OmNyZWF0
ZShsYXRpdHVkZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb25naXR1ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIDAuMCwgIC8vIGFsdGl0dWRlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNj
dXJhY3ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmFsc2UsIDAuMCwgIC8vIGFsdGl0dWRlQWNjdXJhY3kKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwgMC4wLCAg
Ly8gaGVhZGluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZhbHNlLCAwLjApOyAgLy8gc3BlZWQKKyAgICBSZWZQdHI8R2VvcG9zaXRp
b24+IHBvc2l0aW9uID0gR2VvcG9zaXRpb246OmNyZWF0ZShjb29yZGluYXRlcy5yZWxlYXNlKCks
IGN1cnJlbnRUaW1lKCkpOworICAgIE1vY2tHZW9sb2NhdGlvblNlcnZpY2U6OnNldFBvc2l0aW9u
KHBvc2l0aW9uLnJlbGVhc2UoKSk7Cit9CisKKysgKHZvaWQpc2V0RXJyb3I6KGludCljb2RlOihO
U1N0cmluZyAqKW1lc3NhZ2UKK3sKKyAgICBQb3NpdGlvbkVycm9yOjpFcnJvckNvZGUgY29kZUVu
dW0gPSBzdGF0aWNfY2FzdDxQb3NpdGlvbkVycm9yOjpFcnJvckNvZGU+KGNvZGUpOworICAgIFJl
ZlB0cjxQb3NpdGlvbkVycm9yPiBlcnJvciA9IFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShjb2RlRW51
bSwgbWVzc2FnZSk7CisgICAgTW9ja0dlb2xvY2F0aW9uU2VydmljZTo6c2V0RXJyb3IoZXJyb3Iu
cmVsZWFzZSgpKTsKK30KKworQGVuZApJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNDc1MjgpCisrKyBXZWJL
aXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAwOS0w
OC0xOSAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBhIG1vY2sgR2VvbG9jYXRp
b24gc2VydmljZS4gVGhpcyB3aWxsIGJlIHVzZWQgdG8gcHJvdmlkZSBwcmVkaWN0YWJsZSBiZWhh
dmlvciBvZiB0aGUKKyAgICAgICAgR2VvbG9jYXRpb24gQVBJIGZvciB1c2UgaW4gTGF5b3V0VGVz
dHMuIExhdGVyIGNoYW5nZXMgd2lsbCBpbmNvcnBvcmF0ZSB0aGUgdGhlIG1vY2sKKyAgICAgICAg
R2VvbG9jYXRpb24gc2VydmljZSB3aXRoIER1bXBSZW5kZXJUcmVlLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNjQKKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDogTW9kaWZpZWQuCisgICAgICAgIChz
ZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbkNhbGxiYWNrKTogQWRkZWQuIENvbmZpZ3VyZXMgdGhl
IG1vY2sgR2VvbG9jYXRpb24gc2VydmljZS4KKyAgICAgICAgKHNldE1vY2tHZW9sb2NhdGlvbkVy
cm9yQ2FsbGJhY2spOiBBZGRlZC4gQ29uZmlndXJlcyB0aGUgbW9jayBHZW9sb2NhdGlvbiBzZXJ2
aWNlLgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6IEFk
ZGVkLiBSZWdpc3RlcnMgdGhlIGFib3ZlIGZ1bmN0aW9ucyBvbiB0aGUgTGF5b3V0VGVzdENvbnRy
b2xsZXIuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDog
TW9kaWZpZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9s
bGVyTWFjLm1tOiBNb2RpZmllZC4KKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRN
b2NrR2VvbG9jYXRpb25Qb3NpdGlvbik6IEFkZGVkLiBDb25maWd1cmVzIHRoZSBtb2NrIEdlb2xv
Y2F0aW9uIHNlcnZpY2UuCisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dl
b2xvY2F0aW9uRXJyb3IpOiBBZGRlZC4gQ29uZmlndXJlcyB0aGUgbW9jayBHZW9sb2NhdGlvbiBz
ZXJ2aWNlLgorCiAyMDA5LTA4LTE5ICBKYW4gTWljaGFlbCBBbG9uem8gIDxqbWFsb256b0B3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KSW5kZXg6IFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5j
cHAJKHJldmlzaW9uIDQ3NDk5KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW5j
bHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0
Zi9NYXRoRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoY29uc3Qgc3RkOjpzdHJpbmcmIHRlc3RQYXRo
T3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFzaCkKICAgICA6IG1fZHVt
cEFzVGV4dChmYWxzZSkKQEAgLTYxMCw2ICs2MTEsMzQgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0
RGF0YWJhc2VRdW90YUNhbGxiYQogCiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIHNldE1vY2tHZW9s
b2NhdGlvblBvc2l0aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorewor
ICAgIGlmIChhcmd1bWVudENvdW50IDwgMykKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOworCisgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIg
PSByZWludGVycHJldF9jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2
YXRlKHRoaXNPYmplY3QpKTsKKyAgICBjb250cm9sbGVyLT5zZXRNb2NrR2VvbG9jYXRpb25Qb3Np
dGlvbihKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBOVUxMKSwgIC8vIGxh
dGl0dWRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNWYWx1
ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1sxXSwgTlVMTCksICAvLyBsb25naXR1ZGUKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlVG9OdW1iZXIo
Y29udGV4dCwgYXJndW1lbnRzWzJdLCBOVUxMKSk7ICAvLyBhY2N1cmFjeQorCisgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiBz
ZXRNb2NrR2VvbG9jYXRpb25FcnJvckNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
amVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50
Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlv
bikKK3sKKyAgICBpZiAoYXJndW1lbnRDb3VudCA8IDIpCisgICAgICAgIHJldHVybiBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKworICAgIGludCBjb2RlID0gSlNWYWx1ZVRvTnVtYmVy
KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgTlVMTCk7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IG1lc3NhZ2UoQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRz
WzFdLCBleGNlcHRpb24pKTsKKyAgICBBU1NFUlQoISpleGNlcHRpb24pOworCisgICAgTGF5b3V0
VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSByZWludGVycHJldF9jYXN0PExheW91dFRlc3RD
b250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKyAgICBjb250cm9s
bGVyLT5zZXRNb2NrR2VvbG9jYXRpb25FcnJvcihjb2RlLCBtZXNzYWdlLmdldCgpKTsKKworICAg
IHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwogc3RhdGljIEpTVmFs
dWVSZWYgc2V0SWNvbkRhdGFiYXNlRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFy
Z3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKIHsKICAgICAvLyBIYXMgbWFjICYgd2luZG93cyBpbXBsZW1lbnRhdGlvbgpAQCAt
MTAwMCw2ICsxMDI5LDggQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6
OgogICAgICAgICB7ICJzZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUiLCBzZXRD
bG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAg
ICB7ICJzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSIsIHNldEN1c3RvbVBvbGljeURlbGVnYXRlQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0RGF0YWJhc2VRdW90YSIsIHNldERhdGFiYXNl
UXVvdGFDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LCAKKyAgICAgICAgeyAic2V0TW9ja0dlb2xvY2F0aW9uUG9z
aXRpb24iLCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAg
ICAgIHsgInNldE1vY2tHZW9sb2NhdGlvbkVycm9yIiwgc2V0TW9ja0dlb2xvY2F0aW9uRXJyb3JD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRJY29uRGF0YWJhc2VFbmFibGVkIiwgc2V0
SWNvbkRhdGFiYXNlRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkIiwgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWRDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVyIiwg
c2V0TWFpbkZyYW1lSXNGaXJzdFJlc3BvbmRlckNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCkluZGV4OiBXZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgJKHJl
dmlzaW9uIDQ3NDk5KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsOCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRDYWNoZU1vZGVsKGludCk7CiAgICAgdm9pZCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0
ZShib29sIHNldERlbGVnYXRlLCBib29sIHBlcm1pc3NpdmUpOwogICAgIHZvaWQgc2V0RGF0YWJh
c2VRdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpOworICAgIHZvaWQgc2V0TW9ja0dlb2xv
Y2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUg
YWNjdXJhY3kpOworICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IoaW50IGNvZGUsIEpT
U3RyaW5nUmVmIG1lc3NhZ2UpOwogICAgIHZvaWQgc2V0SWNvbkRhdGFiYXNlRW5hYmxlZChib29s
IGljb25EYXRhYmFzZUVuYWJsZWQpOwogICAgIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQoYm9vbCBwcm9maWxpbmdFbmFibGVkKTsKICAgICB2b2lkIHNldE1haW5GcmFtZUlzRmly
c3RSZXNwb25kZXIoYm9vbCBmbGFnKTsKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0JKHJldmlzaW9u
IDQ3NDk5KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250
cm9sbGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBACiAjaW1wb3J0IDxX
ZWJLaXQvV2ViSGlzdG9yeS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkhpc3RvcnlQcml2YXRlLmg+
CiAjaW1wb3J0IDxXZWJLaXQvV2ViSW5zcGVjdG9yLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViTW9j
a0dlb2xvY2F0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViTlNVUkxFeHRyYXMuaD4KICNpbXBv
cnQgPFdlYktpdC9XZWJQcmVmZXJlbmNlcy5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlByZWZlcmVu
Y2VzUHJpdmF0ZS5oPgpAQCAtMjI0LDYgKzIyNSwxOCBAQCB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpzZXREYXRhYmFzZVF1CiAgICAgW29yaWdpbiByZWxlYXNlXTsKIH0KIAordm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0
dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpCit7CisgICAgW1dlYk1vY2tH
ZW9sb2NhdGlvbiBzZXRQb3NpdGlvbjpsYXRpdHVkZTpsb25naXR1ZGU6YWNjdXJhY3ldOworfQor
Cit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcihpbnQg
Y29kZSwgSlNTdHJpbmdSZWYgbWVzc2FnZSkKK3sKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+
IG1lc3NhZ2VDRihBZG9wdENGLCBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBtZXNzYWdlKSk7CisgICAgTlNTdHJpbmcgKm1lc3NhZ2VOUyA9IChOU1N0cmluZyAqKW1l
c3NhZ2VDRi5nZXQoKTsKKyAgICBbV2ViTW9ja0dlb2xvY2F0aW9uIHNldEVycm9yOmNvZGU6bWVz
c2FnZU5TXTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SWNvbkRhdGFiYXNl
RW5hYmxlZChib29sIGljb25EYXRhYmFzZUVuYWJsZWQpCiB7CiAgICAgLy8gRklYTUU6IFdvcmth
cm91bmQgPHJkYXI6Ly9wcm9ibGVtLzY0ODAxMDg+CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NzUyOCkK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDA5LTA4LTE5ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEgbW9jayBH
ZW9sb2NhdGlvbiBzZXJ2aWNlLiBUaGlzIHdpbGwgYmUgdXNlZCB0byBwcm92aWRlIHByZWRpY3Rh
YmxlIGJlaGF2aW9yIG9mIHRoZQorICAgICAgICBHZW9sb2NhdGlvbiBBUEkgZm9yIHVzZSBpbiBM
YXlvdXRUZXN0cy4gTGF0ZXIgY2hhbmdlcyB3aWxsIGluY29ycG9yYXRlIHRoZSB0aGUgbW9jawor
ICAgICAgICBHZW9sb2NhdGlvbiBzZXJ2aWNlIHdpdGggRHVtcFJlbmRlclRyZWUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODI2NAorCisgICAgICAg
ICogZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL2Vycm9yLmpzOiBBZGRlZC4gVGVzdHMg
dGhhdCB0aGUgZXJyb3IgY2FsbGJhY2sgaXMgY2FsbGVkIHdoZW4gdGhlIHNlcnZpY2UgcmVwb3J0
cyBhbiBlcnJvci4KKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9lcnJvci1leHBlY3Rl
ZC50eHQ6IEFkZGVkLiBFeHBlY3RlZCByZXN1bHQgZm9yIGFib3ZlIHRlc3QuCisgICAgICAgICog
ZmFzdC9kb20vR2VvbG9jYXRpb24vZXJyb3IuaHRtbDogQWRkZWQuIFdyYXBwZXIgZm9yIGFib3Zl
IHRlc3QuCisKIDIwMDktMDgtMTkgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vR2VvbG9jYXRpb24vZXJyb3ItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Vycm9yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Vycm9yLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgR2VvbG9jYXRpb24gZXJyb3IgY2Fs
bGJhY2sgdXNpbmcgdGhlIG1vY2sgc2VydmljZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgZXJyb3IuY29kZSBpcyBtb2NrQ29kZQorUEFTUyBlcnJvci5tZXNzYWdlIGlz
IG1vY2tNZXNzYWdlCitQQVNTIGVycm9yLlVOS05PV05fRVJST1IgaXMgMAorUEFTUyBlcnJvci5Q
RVJNSVNTSU9OX0RFTklFRCBpcyAxCitQQVNTIGVycm9yLlBPU0lUSU9OX1VOQVZBSUxBQkxFIGlz
IDIKK1BBU1MgZXJyb3IuVElNRU9VVCBpcyAzCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZXJyb3IuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9lcnJvci5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZXJyb3IuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9lcnJvci5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvZXJyb3Iu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3Vy
Y2VzL2Vycm9yLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9j
YXRpb24vcmVzb3VyY2VzL2Vycm9yLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI0IEBACitk
ZXNjcmlwdGlvbigiVGVzdHMgR2VvbG9jYXRpb24gZXJyb3IgY2FsbGJhY2sgdXNpbmcgdGhlIG1v
Y2sgc2VydmljZS4iKTsKKwordmFyIG1vY2tDb2RlID0gMDsKK3ZhciBtb2NrTWVzc2FnZSA9ICJk
ZWJ1ZyI7CisKK3dpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5zZXRNb2NrR2VvbG9jYXRpb25F
cnJvcihtb2NrQ29kZSwgbW9ja01lc3NhZ2UpOworCit2YXIgZXJyb3I7CituYXZpZ2F0b3IuZ2Vv
bG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKHApIHsKKyAgICB0ZXN0RmFpbGVk
KCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgZGVidWcoJzxi
ciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicpOworICAgIHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCBmdW5jdGlvbihlKSB7Cisg
ICAgZXJyb3IgPSBlCisgICAgc2hvdWxkQmUoJ2Vycm9yLmNvZGUnLCAnbW9ja0NvZGUnKTsKKyAg
ICBzaG91bGRCZSgnZXJyb3IubWVzc2FnZScsICdtb2NrTWVzc2FnZScpOworICAgIHNob3VsZEJl
KCdlcnJvci5VTktOT1dOX0VSUk9SJywgJzAnKTsKKyAgICBzaG91bGRCZSgnZXJyb3IuUEVSTUlT
U0lPTl9ERU5JRUQnLCAnMScpOworICAgIHNob3VsZEJlKCdlcnJvci5QT1NJVElPTl9VTkFWQUlM
QUJMRScsICcyJyk7CisgICAgc2hvdWxkQmUoJ2Vycm9yLlRJTUVPVVQnLCAnMycpOworICAgIGRl
YnVnKCc8YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01QTEVURTwvc3Bhbj4nKTsKKyAg
ICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSk7Cit3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwo=
</data>
<flag name="review"
          id="19346"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39137</attachid>
            <date>2009-09-07 03:25:24 -0700</date>
            <delta_ts>2009-09-07 14:27:21 -0700</delta_ts>
            <desc>Patch 3 for bug 28264</desc>
            <filename>addMockGeolocationService3.txt</filename>
            <type>text/plain</type>
            <size>52493</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODEwMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjAgQEAKKzIwMDktMDktMDYgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZHMgYSBtb2NrIEdlb2xvY2F0aW9uIHNlcnZpY2UuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIHBy
b3ZpZGUgcHJlZGljdGFibGUgYmVoYXZpb3Igb2YgdGhlCisgICAgICAgIEdlb2xvY2F0aW9uIEFQ
SSBmb3IgdXNlIGluIExheW91dFRlc3RzLiBMYXRlciBjaGFuZ2VzIHdpbGwgaW50ZWdyYXRlIHRo
ZSB0aGUgbW9jaworICAgICAgICBHZW9sb2NhdGlvbiBzZXJ2aWNlIHdpdGggRHVtcFJlbmRlclRy
ZWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODI2
NAorCisgICAgICAgIFRoZSBtb2NrIEdlb2xvY2F0aW9uIHNlcnZpY2UgcmV0dXJucyBhIGZpeGVk
IHBvc2l0aW9uIG9yIGVycm9yLiBUaGlzIHBvc2l0aW9uIG9yIGVycm9yIGNhbiBiZQorICAgICAg
ICBzZXQgdGhyb3VnaCBzdGF0aWMgbWV0aG9kcyBvbiB0aGUgR2VvbG9jYXRpb25TZXJ2aWNlIGNs
YXNzLiBUaGUgcG9zaXRpb24gb3IgZXJyb3IgaXMgc2hhcmVkCisgICAgICAgIGJldHdlZW4gYWxs
IGluc3RhbmNlcyBvZiB0aGUgbW9jayBHZW9sb2NhdGlvbiBzZXJ2aWNlLgorCisgICAgICAgIElt
cGxlbWVudGF0aW9uIGRldGFpbHMuCisgICAgICAgIFRoZSBHZW9sb2NhdGlvblNlcnZpY2Ugb2Jq
ZWN0IG1haW50YWlucyBhIHBvaW50ZXIgdG8gYSBmYWN0b3J5IGZ1bmN0aW9uIHdoaWNoIGl0IHVz
ZXMgdG8gY3JlYXRlCisgICAgICAgIEdlb2xvY2F0aW9uIHNlcnZpY2UgaW5zdGFuY2VzLiBFYWNo
IHBsYXRmb3JtIGltcGxlbWVudGluZyBHZW9sb2NhdGlvbiBzZXRzIHRoaXMgcG9pbnRlcgorICAg
ICAgICB0byB0aGUgZmFjdG9yeSBmdW5jdGlvbiBmb3IgdGhlaXIgcGxhdGZvcm0ncyBpbXBsZW1l
bnRhdGlvbi4gV2hlbiB0aGUgbW9jayBHZW9sb2NhdGlvbiBzZXJ2aWNlCisgICAgICAgIGlzIGFj
dGl2YXRlZCwgdGhlIGZhY3RvcnkgZnVuY3Rpb24gcG9pbnRlciBpcyByZXNldCB0byB0aGUgZmFj
dG9yeSBmdW5jdGlvbiBmb3IgdGhlIG1vY2sgc2VydmljZS4KKworICAgICAgICBUZXN0OiBmYXN0
L2RvbS9HZW9sb2NhdGlvbi9lcnJvci5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmJhc2UuZXhw
OiBNb2RpZmllZC4gRXhwb3J0cyBHZW9sb2NhdGlvblNlcnZpY2VNb2NrIG1ldGhvZHMuCisgICAg
ICAgICogV2ViQ29yZS5neXBpOiBNb2RpZmllZC4gQWRkZWQgbW9jayBHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrIGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUucHJvOiBNb2RpZmllZC4gQWRkZWQgbW9j
ayBHZW9sb2NhdGlvblNlcnZpY2VNb2NrIGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajogTW9kaWZpZWQuIEFkZGVkIEdlb2xvY2F0aW9uU2VydmljZU1v
Y2sgZmlsZXMgYW5kIGV4cG9ydHMgc29tZSBoZWFkZXJzLgorICAgICAgICAqIFdlYkNvcmVTb3Vy
Y2VzLmJrbDogTW9kaWZpZWQuIEFkZGVkIEdlb2xvY2F0aW9uU2VydmljZU1vY2sgZmlsZXMuCisg
ICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogTW9kaWZpZWQuIEZpeGVkIGNvbW1lbnQuCisg
ICAgICAgICogcGFnZS9HZW9sb2NhdGlvbi5jcHA6IE1vZGlmaWVkLgorICAgICAgICAoV2ViQ29y
ZTo6R2VvbG9jYXRpb246OnNldElzQWxsb3dlZCk6IE1vZGlmaWVkLiBGaXhlZCBlcnJvciBzdHJp
bmcuCisgICAgICAgICogcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcDogTW9kaWZpZWQu
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVHZW9sb2NhdGlvblNlcnZpY2VOdWxsKTogQWRkZWQu
IFJldHVybnMgbnVsbCBpbiBwbGFjZSBvZiBhIEdlb2xvY2F0aW9uIHNlcnZpY2UuIFVzZWQgdG8g
YXZvaWQgbGluayBlcnJvcnMgb24gcGxhdGZvcm1zIHdoZXJlIEdlb2xvY2F0aW9uIGlzIG5vdCBp
bXBsZW1lbnRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZTo6Y3JlYXRl
KTogQWRkZWQuIFVzZXMgdGhlIGZhY3RvcnkgZnVuY3Rpb24gcG9pbnRlciB0byBjcmVhdGUgYSBH
ZW9sb2NhdGlvbiBzZXJ2aWNlIGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6R2Vv
bG9jYXRpb25TZXJ2aWNlOjp1c2VNb2NrKTogQWRkZWQuIENvbmZpZ3VyZXMgdGhlIEdlb2xvY2F0
aW9uU2VydmllIHRvIHVzZSB0aGUgbW9jayBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKiBwbGF0
Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaDogTW9kaWZpZWQuCisgICAgICAgICogcGxhdGZvcm0v
R2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R2Vv
bG9jYXRpb25TZXJ2aWNlTW9jazo6Y3JlYXRlKTogQWRkZWQuIENyZWF0ZXMgYSBHZW9sb2NhdGlv
blNlcnZpY2VNb2NrIG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2Vydmlj
ZU1vY2s6Okdlb2xvY2F0aW9uU2VydmljZU1vY2spOiBBZGRlZC4gQ29uc3RydWN0b3IuCisgICAg
ICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjp+R2VvbG9jYXRpb25TZXJ2aWNl
TW9jayk6IEFkZGVkLiBEZXN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25T
ZXJ2aWNlTW9jazo6c2V0UG9zaXRpb24pOiBBZGRlZC4gU2V0cyB0aGUgcG9zaXRpb24gdGhhdCB3
aWxsIGJlIHJldHVybmVkIGJ5IHRoZSBvYmplY3QuCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2Nh
dGlvblNlcnZpY2VNb2NrOjpzZXRFcnJvcik6IEFkZGVkLiBTZXRzIHRoZSBlcnJvciB0aGF0IHdp
bGwgYmUgcmV0dXJuZWQgYnkgdGhlIG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0
aW9uU2VydmljZU1vY2s6OnN0YXJ0VXBkYXRpbmcpOiBBZGRlZC4gR2VvbG9jYXRpb25TZXJ2aWNl
IGltcGxlbWVudGF0aW9uLiBTdGFydHMgdGhlIHNlcnZpY2UuCisgICAgICAgIChXZWJDb3JlOjpH
ZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzdG9wVXBkYXRpbmcpOiBBZGRlZC4gR2VvbG9jYXRpb25T
ZXJ2aWNlIGltcGxlbWVudGF0aW9uLiBTdG9wcyB0aGUgc2VydmljZS4KKyAgICAgICAgKFdlYkNv
cmU6Okdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnRpbWVyRmlyZWQpOiBBZGRlZC4gVXNlZCB0byBw
cm92aWRlIGFuIGFzeW5jaHJvbm91cyBjYWxsYmFjayB3aGVuIHRoZSBzZXJ2aWNlIGlzIHN0YXJ0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjptYWtlR2VvbG9j
YXRpb25DYWxsYmFja0Zyb21BbGxJbnN0YW5jZXMpOiBBZGRlZC4gVXNlZCB0byBjYWxsIGJhY2sg
d2hlbiB0aGUgcG9zaXRpb24gb3IgZXJyb3IgaXMgdXBkYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Okdlb2xvY2F0aW9uU2VydmljZU1vY2s6Om1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrKTogQWRkZWQu
IFVzZWQgdG8gY2FsbCBiYWNrIHdoZW4gdGhlIHNlcnZpY2Ugc3RhcnRzLgorICAgICAgICAoV2Vi
Q29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6aW5pdFN0YXRpY3MpOiBBZGRlZC4gSW5pdGlh
bGl6ZXMgc3RhdGljcyBtZW1iZXJzIHdpdGggY29uc3RydWN0b3JzLgorICAgICAgICAoV2ViQ29y
ZTo6R2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6Y2xlYW5VcFN0YXRpY3MpOiBBZGRlZC4gQ2xlYW5z
IHVwIHN0YXRpYyBtZW1iZXJzIHdpdGggY29uc3RydWN0b3JzLgorICAgICAgICAqIHBsYXRmb3Jt
L0dlb2xvY2F0aW9uU2VydmljZU1vY2suaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpHZW9s
b2NhdGlvblNlcnZpY2VNb2NrOjpsYXN0UG9zaXRpb24pOiBBZGRlZC4gUmV0dXJucyB0aGUgZml4
ZWQgcG9zaXRpb24uCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjps
YXN0RXJyb3IpOiBBZGRlZC4gUmV0dXJucyB0aGUgZml4ZWQgZXJyb3IuCisgICAgICAgICogcGxh
dGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5jcHA6IE1vZGlmaWVkLgorICAgICAgICAo
V2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlR3RrOjpjcmVhdGUpOiBBZGRlZC4gQ3JlYXRlcyBh
biBpbnN0YW5jZSBvZiBHZW9sb2NhdGlvblNlcnZpY2VHdGsuCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5oOiBNb2RpZmllZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvR2VvbG9jYXRpb25TZXJ2aWNlTWFjLmg6IE1vZGlmaWVkLgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9HZW9sb2NhdGlvblNlcnZpY2VNYWMubW06IE1vZGlmaWVkLgorICAgICAgICAoV2Vi
Q29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlTWFjOjpjcmVhdGUpOiBBZGRlZC4gQ3JlYXRlcyBhbiBp
bnN0YW5jZSBvZiBHZW9sb2NhdGlvblNlcnZpY2VNYWMuCisKIDIwMDktMDktMDYgIExhc3psbyBH
b21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEVyaWMgU2VpZGVsLgpJbmRleDogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA0ODEwMSkKKysrIFdlYkNvcmUvR05V
bWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTEzOTMsNiArMTM5Myw4IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmggXAogCVdl
YkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5o
IFwKKwlXZWJDb3JlL3BsYXRmb3JtL01vY2tHZW9sb2NhdGlvblNlcnZpY2UuY3BwIFwKKwlXZWJD
b3JlL3BsYXRmb3JtL01vY2tHZW9sb2NhdGlvblNlcnZpY2UuaCBcCiAJV2ViQ29yZS9wbGF0Zm9y
bS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lz
dHJ5LmggXAogCVdlYkNvcmUvcGxhdGZvcm0vTm90SW1wbGVtZW50ZWQuaCBcCkluZGV4OiBXZWJD
b3JlL1dlYkNvcmUuYmFzZS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmJhc2Uu
ZXhwCShyZXZpc2lvbiA0ODEwMSkKKysrIFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAkod29ya2lu
ZyBjb3B5KQpAQCAtMTA0MSwzICsxMDQxLDUgQEAgX3drU2V0VXBGb250Q2FjaGUKIF93a1NpZ25h
bENGUmVhZFN0cmVhbUVuZAogX3drU2lnbmFsQ0ZSZWFkU3RyZWFtRXJyb3IKIF93a1NpZ25hbENG
UmVhZFN0cmVhbUhhc0J5dGVzCitfX1pON1dlYkNvcmUyMkdlb2xvY2F0aW9uU2VydmljZU1vY2sx
MXNldFBvc2l0aW9uRU4zV1RGMTBQYXNzUmVmUHRySU5TXzExR2VvcG9zaXRpb25FRUUKK19fWk43
V2ViQ29yZTIyR2VvbG9jYXRpb25TZXJ2aWNlTW9jazhzZXRFcnJvckVOM1dURjEwUGFzc1JlZlB0
cklOU18xM1Bvc2l0aW9uRXJyb3JFRUUKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA0ODEwMSkKKysrIFdlYkNv
cmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0yNTg4LDYgKzI1ODgsOCBAQAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL0Zsb2F0Q29udmVyc2lvbi5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9HZW9s
b2NhdGlvblNlcnZpY2UuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2
aWNlTW9jay5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZU1v
Y2suaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vSG9zdFdpbmRvdy5oJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9LZXlib2FyZENvZGVzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0tVUkwu
Y3BwJywKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9X
ZWJDb3JlLnBybwkocmV2aXNpb24gNDgxMDEpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTQ5LDYgKzExNDksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9y
bS9EcmFnSW1hZ2UuY3BwIFwKICAgICBwbGF0Zm9ybS9GaWxlQ2hvb3Nlci5jcHAgXAogICAgIHBs
YXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHAgXAorICAgIHBsYXRmb3JtL0dlb2xvY2F0aW9u
U2VydmljZU1vY2suY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24u
Y3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RmFtaWx5LmNwcCBcCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIFwKQEAgLTE4MTksNiArMTgyMCw3IEBAIEhFQURF
UlMgKz0gXAogICAgIHBsYXRmb3JtL0RyYWdJbWFnZS5oIFwKICAgICBwbGF0Zm9ybS9GaWxlQ2hv
b3Nlci5oIFwKICAgICBwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaCBcCisgICAgcGxhdGZv
cm0vR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oIFwKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmVTb3Vy
Y2VzLmJrbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJrbAkocmV2aXNp
b24gNDgxMDEpCisrKyBXZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJrbAkod29ya2luZyBjb3B5KQpA
QCAtNzk5LDYgKzc5OSw3IEBAIFRoaXMgZmlsZSBjb250YWlucyB0aGUgbGlzdCBvZiBmaWxlcyBu
ZWUKICAgICAgICAgcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcAogICAgICAgICBwbGF0Zm9ybS9GaWxl
Q2hvb3Nlci5jcHAKICAgICAgICAgcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcAorICAg
ICAgICBwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcAogICAgICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFBvaW50M0QuY3BwCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuY3BwCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKSW5kZXg6IFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA0ODEwMSkK
KysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDE1LDYgKzEwMTUsOCBAQAogCQk1NEM1MEY3QjBFODAxREYzMDA5ODMyQTAgLyog
WE1MVG9rZW5pemVyTGlieG1sMi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NEM1MEY3QTBFODAxREYzMDA5ODMyQTAgLyogWE1MVG9rZW5pemVyTGli
eG1sMi5jcHAgKi87IH07CiAJCTU1MEEwQkM5MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWRO
YW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1
MEEwQkM3MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCAqLzsgfTsKIAkJNTUw
QTBCQ0EwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAv
KiBRdWFsaWZpZWROYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNTlDNzdGMkExMDU0NUIzQjAwNTA2MTA0IC8qIEdlb2xvY2F0aW9uU2Vydmlj
ZU1vY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTlDNzdGMjgxMDU0NUIzQjAwNTA2MTA0IC8qIEdlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwICov
OyB9OworCQk1OUM3N0YyQjEwNTQ1QjNCMDA1MDYxMDQgLyogR2VvbG9jYXRpb25TZXJ2aWNlTW9j
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTlDNzdG
MjkxMDU0NUIzQjAwNTA2MTA0IC8qIEdlb2xvY2F0aW9uU2VydmljZU1vY2suaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1RDE1RTNBQjBGOUU2QUMx
MDA5RTBFM0YgLyogWE1MVG9rZW5pemVyU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQxNUUzQTkwRjlFNkFDMTAwOUUwRTNGIC8qIFhNTFRv
a2VuaXplclNjb3BlLmNwcCAqLzsgfTsKIAkJNUQxNUUzQUMwRjlFNkFDMTAwOUUwRTNGIC8qIFhN
TFRva2VuaXplclNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1RDE1RTNBQTBGOUU2QUMxMDA5RTBFM0YgLyogWE1MVG9rZW5pemVyU2NvcGUuaCAq
LzsgfTsKIAkJNUQ4NzRGMTMwRDE2MUQzMjAwNzk2QzNCIC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFt
TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzRTIyN0REMEFGNTg5QUQwMEQ0ODMyNCAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5j
cHAgKi87IH07CkBAIC00NjE0LDcgKzQ2MTYsNyBAQAogCQlGOTE2QzQ4RTBEQjUxMEY4MDA3NkNE
ODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5MTZDNDhDMERCNTEwRjgwMDc2Q0Q4MyAvKiBK
U1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oICovOyB9OwogCQlGOUYwRUQ3QTBEQjUwQ0Ey
MDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOUYwRUQ3NzBEQjUwQ0EyMDBEMTZEQjkg
LyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi87IH07CiAJCUZFNkZENDg3MEY2NzZF
NTcwMDA5Mjg3MyAvKiBDb29yZGluYXRlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRTZGRDQ4NDBGNjc2RTU3MDAwOTI4NzMgLyogQ29vcmRpbmF0
ZXMuY3BwICovOyB9OwotCQlGRTZGRDQ4ODBGNjc2RTU3MDAwOTI4NzMgLyogQ29vcmRpbmF0ZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNkZENDg1
MEY2NzZFNTcwMDA5Mjg3MyAvKiBDb29yZGluYXRlcy5oICovOyB9OworCQlGRTZGRDQ4ODBGNjc2
RTU3MDAwOTI4NzMgLyogQ29vcmRpbmF0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZFNkZENDg1MEY2NzZFNTcwMDA5Mjg3MyAvKiBDb29yZGluYXRl
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZF
NkZENDhEMEY2NzZFOTMwMDA5Mjg3MyAvKiBKU0Nvb3JkaW5hdGVzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNkZENDhCMEY2NzZFOTMwMDA5Mjg3
MyAvKiBKU0Nvb3JkaW5hdGVzLmNwcCAqLzsgfTsKIAkJRkU2RkQ0OEUwRjY3NkU5MzAwMDkyODcz
IC8qIEpTQ29vcmRpbmF0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEZFNkZENDhDMEY2NzZFOTMwMDA5Mjg3MyAvKiBKU0Nvb3JkaW5hdGVzLmggKi87
IH07CiAJCUZFNzAwREQxMEY5MkQ4MUEwMDhFMkJGRSAvKiBKU0Nvb3JkaW5hdGVzQ3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNzAwREQw
MEY5MkQ4MUEwMDhFMkJGRSAvKiBKU0Nvb3JkaW5hdGVzQ3VzdG9tLmNwcCAqLzsgfTsKQEAgLTQ2
MjYsOSArNDYyOCw5IEBACiAJCUZFODBEN0M1MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9sb2NhdGlv
bi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTgw
RDdCNzBFOUMxRjI1MDAwRDZGNzUgLyogR2VvbG9jYXRpb24uY3BwICovOyB9OwogCQlGRTgwRDdD
NjBFOUMxRjI1MDAwRDZGNzUgLyogR2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEN0I4MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9s
b2NhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUZFODBEN0M4MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9wb3NpdGlvbi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTgwRDdCQTBFOUMxRjI1MDAw
RDZGNzUgLyogR2VvcG9zaXRpb24uY3BwICovOyB9OwotCQlGRTgwRDdDOTBFOUMxRjI1MDAwRDZG
NzUgLyogR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEZFODBEN0JCMEU5QzFGMjUwMDBENkY3NSAvKiBHZW9wb3NpdGlvbi5oICovOyB9
OworCQlGRTgwRDdDOTBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEN0JCMEU5QzFGMjUwMDBE
NkY3NSAvKiBHZW9wb3NpdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUZFODBEN0NCMEU5QzFGMjUwMDBENkY3NSAvKiBQb3NpdGlvbkNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTgw
RDdCRDBFOUMxRjI1MDAwRDZGNzUgLyogUG9zaXRpb25DYWxsYmFjay5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUZFODBEN0NEMEU5QzFGMjUwMDBE
NkY3NSAvKiBQb3NpdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGRTgwRDdCRjBFOUMxRjI1MDAwRDZGNzUgLyogUG9zaXRpb25FcnJvci5o
ICovOyB9OworCQlGRTgwRDdDRDBFOUMxRjI1MDAwRDZGNzUgLyogUG9zaXRpb25FcnJvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU4MEQ3QkYwRTlD
MUYyNTAwMEQ2Rjc1IC8qIFBvc2l0aW9uRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRTgwRDdDRjBFOUMxRjI1MDAwRDZGNzUgLyogUG9z
aXRpb25FcnJvckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRTgwRDdDMTBFOUMxRjI1MDAwRDZGNzUgLyogUG9zaXRpb25FcnJvckNhbGxi
YWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RkU4MEQ3RDEwRTlDMUYyNTAwMEQ2Rjc1IC8qIFBvc2l0aW9uT3B0aW9ucy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU4MEQ3QzMwRTlDMUYyNTAwMEQ2
Rjc1IC8qIFBvc2l0aW9uT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUZFODBEQTYzMEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0
aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZF
ODBEQTVGMEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmNwcCAqLzsgfTsKQEAgLTYx
NjYsNiArNjE2OCw4IEBACiAJCTU0QzUwRjdBMEU4MDFERjMwMDk4MzJBMCAvKiBYTUxUb2tlbml6
ZXJMaWJ4bWwyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTFRv
a2VuaXplckxpYnhtbDIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTBBMEJD
NzA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBRdWFsaWZpZWROYW1lLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJ
CTU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1YWxpZmllZE5hbWUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CisJ
CTU5Qzc3RjI4MTA1NDVCM0IwMDUwNjEwNCAvKiBHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEdlb2xvY2F0aW9uU2VydmljZU1v
Y2suY3BwOyBwYXRoID0gbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTlDNzdGMjkxMDU0NUIzQjAwNTA2MTA0IC8qIEdlb2xvY2F0
aW9uU2VydmljZU1vY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gR2VvbG9j
YXRpb25TZXJ2aWNlTW9jay5oOyBwYXRoID0gbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEMTVFM0E5MEY5RTZBQzEwMDlFMEUzRiAv
KiBYTUxUb2tlbml6ZXJTY29wZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBYTUxUb2tlbml6ZXJTY29wZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVEMTVFM0FBMEY5RTZBQzEwMDlFMEUzRiAvKiBYTUxUb2tlbml6ZXJTY29wZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxUb2tlbml6ZXJTY29wZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1RDkyNUI2NTBGNjRENEREMDBCODQ3RjAgLyogU2Nyb2xsQmVo
YXZpb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsQmVo
YXZpb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA1NzYsNiArMTA1ODAs
MTUgQEAKIAkJCXBhdGggPSB3ZWJzb2NrZXRzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJNTlDNzdGMTAxMDU0NTkxQzAwNTA2MTA0IC8qIG1vY2sgKi8gPSB7CisJCQlpc2Eg
PSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTU5Qzc3RjI4MTA1NDVCM0IwMDUwNjEw
NCAvKiBHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcCAqLywKKwkJCQk1OUM3N0YyOTEwNTQ1QjNC
MDA1MDYxMDQgLyogR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oICovLAorCQkJKTsKKwkJCW5hbWUg
PSBtb2NrOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNURBNUUwRjkxMDJC
OTUwNDAwMDg4Q0Y5IC8qIFdlYlNvY2tldHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKApAQCAtMTQzNzAsNiArMTQzODMsNyBAQAogCQlCQ0YxQTVCQTA5NzgzMjA5
MDA2MUExMjMgLyogcGxhdGZvcm0gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCTU5Qzc3RjEwMTA1NDU5MUMwMDUwNjEwNCAvKiBtb2NrICovLAogCQkJCTQ5
RTkxMkE0MEVGQUM4RTYwMDlEMENBRiAvKiBhbmltYXRpb24gKi8sCiAJCQkJMUFFNDJGNjcwQUE0
QjhDQjAwQzg2MTJEIC8qIGNmICovLAogCQkJCUIyQTAxNTkxMEFGNkNENTMwMDZCQ0UwRSAvKiBn
cmFwaGljcyAqLywKQEAgLTE3NTU4LDYgKzE3NTcyLDcgQEAKIAkJCQk1MTBENEEzODEwMzE2NUVF
MDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MUFCQUUxQjEwM0MxOEZGMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtRXJyb3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxQUJBRTFFMTAzQzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTU5Qzc3RjJCMTA1NDVCM0IwMDUwNjEwNCAvKiBHZW9s
b2NhdGlvblNlcnZpY2VNb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE5NjUzLDYgKzE5NjY4LDcg
QEAKIAkJCQk1MTBENEEzMzEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJyb3JCYXNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMEQ0QTM2MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2Nr
ZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQUJBRTFGMTAzQzE5
MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk1OUM3N0YyQTEwNTQ1QjNCMDA1MDYxMDQgLyogR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5j
cHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgJKHJldmlzaW9uIDQ4MTAxKQor
KysgV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUsNyAr
MTc1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmxvYXQgdmFsdWUsIGZsb2F0IHByb3BvcnRpb24sIFNjcm9sbGJhckNv
bnRyb2xQYXJ0TWFzayk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludEN1c3RvbVNjcm9sbENv
cm5lcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmKTsKIAotICAgICAgICAvLyBU
aGlzIGlzIGFuIGFzeW5jaHJvbm91cyBjYWxsLiBUaGUgQ2hyb21lQ2xpZW50IGNhbiBkaXNwbGF5
IFVJIGFza2luZyB0aGUgdXNlciBmb3IgcGVybWlzc2lvbgorICAgICAgICAvLyBUaGlzIGNhbiBi
ZSBlaXRoZXIgYSBzeW5jaHJvbm91cyBvciBhc3luY2hyb25vdXMgY2FsbC4gVGhlIENocm9tZUNs
aWVudCBjYW4gZGlzcGxheSBVSSBhc2tpbmcgdGhlIHVzZXIgZm9yIHBlcm1pc3Npb24KICAgICAg
ICAgLy8gdG8gdXNlIEdlb2xvY29jYXRpb24uIFRoZSBDaHJvbWVDbGllbnQgbXVzdCBjYWxsIEdl
b2xvY2F0aW9uOjpzZXRTaG91bGRDbGVhckNhY2hlKCkgYXBwcm9wcmlhdGVseS4KICAgICAgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSos
IEdlb2xvY2F0aW9uKikgPSAwOwogICAgICAgICAgICAgCkluZGV4OiBXZWJDb3JlL3BhZ2UvR2Vv
bG9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAJ
KHJldmlzaW9uIDQ4MTAxKQorKysgV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgR2VvbG9jYXRpb246OnNldElzQWxsb3dl
ZChib29sIGFsbG8KICAgICAgICAgc3RhcnRUaW1lcnMoKTsKICAgICAgICAgbWFrZVN1Y2Nlc3ND
YWxsYmFja3MoKTsKICAgICB9IGVsc2UgewotICAgICAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpQ
b3NpdGlvbkVycm9yPiBlcnJvciA9IFdlYkNvcmU6OlBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3Np
dGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgIlVzZXIgZGlzYWxsb3dlZCBHZW9Mb2NhdGlv
biIpOworICAgICAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpQb3NpdGlvbkVycm9yPiBlcnJvciA9
IFdlYkNvcmU6OlBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9O
X0RFTklFRCwgIlVzZXIgZGlzYWxsb3dlZCBHZW9sb2NhdGlvbiIpOwogICAgICAgICBoYW5kbGVF
cnJvcihlcnJvci5nZXQoKSk7CiAgICAgfQogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9HZW9s
b2NhdGlvblNlcnZpY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vR2VvbG9j
YXRpb25TZXJ2aWNlLmNwcAkocmV2aXNpb24gNDgxMDEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL0dl
b2xvY2F0aW9uU2VydmljZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwLDIzICsyMCwzOSBAQAog
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQogICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR2Vv
bG9jYXRpb25TZXJ2aWNlLmgiCisjaW5jbHVkZSAiR2VvcG9zaXRpb24uaCIKKyNpbmNsdWRlICJH
ZW9sb2NhdGlvblNlcnZpY2VNb2NrLmgiCisjaW5jbHVkZSAiUG9zaXRpb25FcnJvci5oIgogCisj
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgIUVOQUJMRShHRU9MT0NBVElPTikKLUdlb2xv
Y2F0aW9uU2VydmljZSogR2VvbG9jYXRpb25TZXJ2aWNlOjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2
aWNlQ2xpZW50KikKK0dlb2xvY2F0aW9uU2VydmljZSogY3JlYXRlR2VvbG9jYXRpb25TZXJ2aWNl
TnVsbChHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKQogewogICAgIHJldHVybiAwOwogfQorCitH
ZW9sb2NhdGlvblNlcnZpY2U6OkZhY3RvcnlGdW5jdGlvbiogR2VvbG9jYXRpb25TZXJ2aWNlOjpz
X2ZhY3RvcnlGdW5jdGlvbiA9ICZjcmVhdGVHZW9sb2NhdGlvblNlcnZpY2VOdWxsOwogI2VuZGlm
CiAKK0dlb2xvY2F0aW9uU2VydmljZSogR2VvbG9jYXRpb25TZXJ2aWNlOjpjcmVhdGUoR2VvbG9j
YXRpb25TZXJ2aWNlQ2xpZW50KiBjbGllbnQpCit7CisgICAgcmV0dXJuICgqc19mYWN0b3J5RnVu
Y3Rpb24pKGNsaWVudCk7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25TZXJ2aWNlOjp1c2VNb2NrKCkK
K3sKKyAgICBzX2ZhY3RvcnlGdW5jdGlvbiA9ICZHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpjcmVh
dGU7Cit9CisKIEdlb2xvY2F0aW9uU2VydmljZTo6R2VvbG9jYXRpb25TZXJ2aWNlKEdlb2xvY2F0
aW9uU2VydmljZUNsaWVudCogY2xpZW50KQogICAgIDogbV9nZW9sb2NhdGlvblNlcnZpY2VDbGll
bnQoY2xpZW50KQogewpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5oCShy
ZXZpc2lvbiA0ODEwMSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU5LDExICs1OSwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3Np
dGlvbkNoYW5nZWQoKTsKICAgICB2b2lkIGVycm9yT2NjdXJyZWQoKTsKIAorICAgIHN0YXRpYyB2
b2lkIHVzZU1vY2soKTsKKwogcHJvdGVjdGVkOgogICAgIEdlb2xvY2F0aW9uU2VydmljZShHZW9s
b2NhdGlvblNlcnZpY2VDbGllbnQqKTsKIAogcHJpdmF0ZToKICAgICBHZW9sb2NhdGlvblNlcnZp
Y2VDbGllbnQqIG1fZ2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50OworCisgICAgdHlwZWRlZiBHZW9s
b2NhdGlvblNlcnZpY2UqIChGYWN0b3J5RnVuY3Rpb24pKEdlb2xvY2F0aW9uU2VydmljZUNsaWVu
dCopOworICAgIHN0YXRpYyBGYWN0b3J5RnVuY3Rpb24qIHNfZmFjdG9yeUZ1bmN0aW9uOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2Vv
bG9jYXRpb25TZXJ2aWNlR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2d0
ay9HZW9sb2NhdGlvblNlcnZpY2VHdGsuY3BwCShyZXZpc2lvbiA0ODEwMSkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDExICszNywxMyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1HZW9sb2NhdGlvblNlcnZpY2UqIEdlb2xvY2F0aW9uU2VydmljZTo6Y3JlYXRlKEdlb2xvY2F0
aW9uU2VydmljZUNsaWVudCogY2xpZW50KQorR2VvbG9jYXRpb25TZXJ2aWNlKiBHZW9sb2NhdGlv
blNlcnZpY2VHdGs6OmNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkKIHsK
ICAgICByZXR1cm4gbmV3IEdlb2xvY2F0aW9uU2VydmljZUd0ayhjbGllbnQpOwogfQogCitHZW9s
b2NhdGlvblNlcnZpY2U6OkZhY3RvcnlGdW5jdGlvbiogR2VvbG9jYXRpb25TZXJ2aWNlOjpzX2Zh
Y3RvcnlGdW5jdGlvbiA9ICZHZW9sb2NhdGlvblNlcnZpY2VHdGs6OmNyZWF0ZTsKKwogR2VvbG9j
YXRpb25TZXJ2aWNlR3RrOjpHZW9sb2NhdGlvblNlcnZpY2VHdGsoR2VvbG9jYXRpb25TZXJ2aWNl
Q2xpZW50KiBjbGllbnQpCiAgICAgOiBHZW9sb2NhdGlvblNlcnZpY2UoY2xpZW50KQogICAgICwg
bV9nZW9jbHVlQ2xpZW50KDApCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9HZW9sb2NhdGlv
blNlcnZpY2VHdGsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2d0ay9HZW9sb2Nh
dGlvblNlcnZpY2VHdGsuaAkocmV2aXNpb24gNDgxMDEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2d0
ay9HZW9sb2NhdGlvblNlcnZpY2VHdGsuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEdlb2xvY2F0aW9uU2VydmljZUd0ayA6
IHB1YmxpYyBHZW9sb2NhdGlvblNlcnZpY2UgewogICAgIHB1YmxpYzoKLSAgICAgICAgR2VvbG9j
YXRpb25TZXJ2aWNlR3RrKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworICAgICAgICBzdGF0
aWMgR2VvbG9jYXRpb25TZXJ2aWNlKiBjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7
CiAgICAgICAgIH5HZW9sb2NhdGlvblNlcnZpY2VHdGsoKTsKIAogICAgICAgICB2aXJ0dWFsIGJv
b2wgc3RhcnRVcGRhdGluZyhQb3NpdGlvbk9wdGlvbnMqKTsKQEAgLTQ0LDYgKzQ0LDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQb3NpdGlvbkVycm9yKiBsYXN0RXJyb3IoKSBjb25z
dDsKIAogICAgIHByaXZhdGU6CisgICAgICAgIEdlb2xvY2F0aW9uU2VydmljZUd0ayhHZW9sb2Nh
dGlvblNlcnZpY2VDbGllbnQqKTsKKwogICAgICAgICB2b2lkIHVwZGF0ZUxvY2F0aW9uSW5mb3Jt
YXRpb24oKTsKICAgICAgICAgdm9pZCBzZXRFcnJvcihQb3NpdGlvbkVycm9yOjpFcnJvckNvZGUs
IGNvbnN0IGNoYXIqIG1lc3NhZ2UpOwogICAgICAgICB2b2lkIHVwZGF0ZVBvc2l0aW9uKCk7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL21hYy9HZW9sb2NhdGlvblNlcnZpY2VNYWMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL21hYy9HZW9sb2NhdGlvblNlcnZpY2VNYWMuaAkocmV2
aXNpb24gNDgxMDEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL21hYy9HZW9sb2NhdGlvblNlcnZpY2VN
YWMuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEdlb2xvY2F0aW9uU2VydmljZU1hYyA6IHB1YmxpYyBHZW9sb2NhdGlvblNlcnZp
Y2UgewogcHVibGljOgotICAgIEdlb2xvY2F0aW9uU2VydmljZU1hYyhHZW9sb2NhdGlvblNlcnZp
Y2VDbGllbnQqKTsKKyAgICBzdGF0aWMgR2VvbG9jYXRpb25TZXJ2aWNlKiBjcmVhdGUoR2VvbG9j
YXRpb25TZXJ2aWNlQ2xpZW50Kik7CiAgICAgdmlydHVhbCB+R2VvbG9jYXRpb25TZXJ2aWNlTWFj
KCk7CiAgICAgCiAgICAgdmlydHVhbCBib29sIHN0YXJ0VXBkYXRpbmcoUG9zaXRpb25PcHRpb25z
Kik7CkBAIC02MSw2ICs2MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGVycm9yT2NjdXJyZWQoUGFz
c1JlZlB0cjxQb3NpdGlvbkVycm9yPik7CiAKIHByaXZhdGU6CisgICAgR2VvbG9jYXRpb25TZXJ2
aWNlTWFjKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworCiAgICAgUmV0YWluUHRyPENMTG9j
YXRpb25NYW5hZ2VyPiBtX2xvY2F0aW9uTWFuYWdlcjsKICAgICBSZXRhaW5QdHI8V2ViQ29yZUNv
cmVMb2NhdGlvbk9ic2VydmVyPiBtX29iamNPYnNlcnZlcjsKICAgICAKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vbWFjL0dlb2xvY2F0aW9uU2VydmljZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL21hYy9HZW9sb2NhdGlvblNlcnZpY2VNYWMubW0JKHJldmlzaW9uIDQ4MTAx
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9tYWMvR2VvbG9jYXRpb25TZXJ2aWNlTWFjLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NSwxMSArNjUsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotR2VvbG9jYXRpb25TZXJ2aWNlKiBHZW9sb2NhdGlvblNl
cnZpY2U6OmNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkKK0dlb2xvY2F0
aW9uU2VydmljZSogR2VvbG9jYXRpb25TZXJ2aWNlTWFjOjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2
aWNlQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgcmV0dXJuIG5ldyBHZW9sb2NhdGlvblNlcnZpY2VN
YWMoY2xpZW50KTsKIH0KIAorR2VvbG9jYXRpb25TZXJ2aWNlOjpGYWN0b3J5RnVuY3Rpb24qIEdl
b2xvY2F0aW9uU2VydmljZTo6c19mYWN0b3J5RnVuY3Rpb24gPSAmR2VvbG9jYXRpb25TZXJ2aWNl
TWFjOjpjcmVhdGU7CisKIEdlb2xvY2F0aW9uU2VydmljZU1hYzo6R2VvbG9jYXRpb25TZXJ2aWNl
TWFjKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogY2xpZW50KQogICAgIDogR2VvbG9jYXRpb25T
ZXJ2aWNlKGNsaWVudCkKICAgICAsIG1fb2JqY09ic2VydmVyKEFkb3B0TlMsIFtbV2ViQ29yZUNv
cmVMb2NhdGlvbk9ic2VydmVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOnRoaXNdKQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcAko
cmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VN
b2NrLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkdlb2xvY2F0aW9uU2VydmljZU1vY2suaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNp
bmNsdWRlICJHZW9sb2NhdGlvbi5oIgorI2luY2x1ZGUgIkdlb3Bvc2l0aW9uLmgiCisjaW5jbHVk
ZSAiUG9zaXRpb25FcnJvci5oIgorI2luY2x1ZGUgIlBvc2l0aW9uT3B0aW9ucy5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0dlb2xvY2F0aW9uU2VydmljZU1vY2s6Okdlb2xvY2F0aW9uU2Vy
dmljZVNldCogR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c19pbnN0YW5jZXMgPSAwOworUmVmUHRy
PEdlb3Bvc2l0aW9uPiogR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c19sYXN0UG9zaXRpb247CitS
ZWZQdHI8UG9zaXRpb25FcnJvcj4qIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNfbGFzdEVycm9y
OworCitHZW9sb2NhdGlvblNlcnZpY2UqIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OmNyZWF0ZShH
ZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkKK3sKKyAgICBpbml0U3RhdGljcygpOwor
ICAgIHJldHVybiBuZXcgR2VvbG9jYXRpb25TZXJ2aWNlTW9jayhjbGllbnQpOworfQorCitHZW9s
b2NhdGlvblNlcnZpY2VNb2NrOjpHZW9sb2NhdGlvblNlcnZpY2VNb2NrKEdlb2xvY2F0aW9uU2Vy
dmljZUNsaWVudCogY2xpZW50KQorICAgIDogR2VvbG9jYXRpb25TZXJ2aWNlKGNsaWVudCkKKyAg
ICAsIG1fdGltZXIodGhpcywgJkdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnRpbWVyRmlyZWQpCisg
ICAgLCBtX2lzQWN0aXZlKGZhbHNlKQoreworICAgIHNfaW5zdGFuY2VzLT5hZGQodGhpcyk7Cit9
CisKK0dlb2xvY2F0aW9uU2VydmljZU1vY2s6On5HZW9sb2NhdGlvblNlcnZpY2VNb2NrKCkKK3sK
KyAgICBHZW9sb2NhdGlvblNlcnZpY2VTZXQ6Oml0ZXJhdG9yIGl0ZXIgPSBzX2luc3RhbmNlcy0+
ZmluZCh0aGlzKTsKKyAgICBBU1NFUlQoaXRlciAhPSBzX2luc3RhbmNlcy0+ZW5kKCkpOworICAg
IHNfaW5zdGFuY2VzLT5yZW1vdmUoaXRlcik7CisgICAgY2xlYW5VcFN0YXRpY3MoKTsKK30KKwor
dm9pZCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzZXRQb3NpdGlvbihQYXNzUmVmUHRyPEdlb3Bv
c2l0aW9uPiBwb3NpdGlvbikKK3sKKyAgICBpbml0U3RhdGljcygpOworICAgIEdlb2xvY2F0aW9u
U2VydmljZTo6dXNlTW9jaygpOworICAgICpzX2xhc3RQb3NpdGlvbiA9IHBvc2l0aW9uOworICAg
ICpzX2xhc3RFcnJvciA9IDA7CisgICAgbWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2tGcm9tQWxsSW5z
dGFuY2VzKCk7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c2V0RXJyb3IoUGFz
c1JlZlB0cjxQb3NpdGlvbkVycm9yPiBlcnJvcikKK3sKKyAgICBpbml0U3RhdGljcygpOworICAg
IEdlb2xvY2F0aW9uU2VydmljZTo6dXNlTW9jaygpOworICAgICpzX2xhc3RFcnJvciA9IGVycm9y
OworICAgICpzX2xhc3RQb3NpdGlvbiA9IDA7CisgICAgbWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2tG
cm9tQWxsSW5zdGFuY2VzKCk7Cit9CisKK2Jvb2wgR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c3Rh
cnRVcGRhdGluZyhQb3NpdGlvbk9wdGlvbnMqKQoreworICAgIG1faXNBY3RpdmUgPSB0cnVlOwor
ICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lk
IEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnN0b3BVcGRhdGluZygpCit7CisgICAgbV9pc0FjdGl2
ZSA9IGZhbHNlOworfQorCit2b2lkIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnRpbWVyRmlyZWQo
VGltZXI8R2VvbG9jYXRpb25TZXJ2aWNlTW9jaz4qIHRpbWVyKQoreworICAgIEFTU0VSVF9VTlVT
RUQodGltZXIsIHRpbWVyID09ICZtX3RpbWVyKTsKKyAgICBtYWtlR2VvbG9jYXRpb25DYWxsYmFj
aygpOworfQorCit2b2lkIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6Om1ha2VHZW9sb2NhdGlvbkNh
bGxiYWNrRnJvbUFsbEluc3RhbmNlcygpCit7CisgICAgR2VvbG9jYXRpb25TZXJ2aWNlU2V0Ojpj
b25zdF9pdGVyYXRvciBlbmQgPSBzX2luc3RhbmNlcy0+ZW5kKCk7CisgICAgZm9yIChHZW9sb2Nh
dGlvblNlcnZpY2VTZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBzX2luc3RhbmNlcy0+YmVnaW4o
KTsgaXRlciAhPSBlbmQ7ICsraXRlcikKKyAgICAgICAgKCppdGVyKS0+bWFrZUdlb2xvY2F0aW9u
Q2FsbGJhY2soKTsKK30KKwordm9pZCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjptYWtlR2VvbG9j
YXRpb25DYWxsYmFjaygpCit7CisgICAgaWYgKCFtX2lzQWN0aXZlKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoKnNfbGFzdFBvc2l0aW9uKQorICAgICAgICBwb3NpdGlvbkNoYW5nZWQoKTsK
KyAgICBlbHNlIGlmICgqc19sYXN0RXJyb3IpCisgICAgICAgIGVycm9yT2NjdXJyZWQoKTsKK30K
Kwordm9pZCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjppbml0U3RhdGljcygpCit7CisgICAgaWYg
KHNfaW5zdGFuY2VzID09IDApIHsgCisgICAgICAgIHNfaW5zdGFuY2VzID0gbmV3IEdlb2xvY2F0
aW9uU2VydmljZVNldDsKKyAgICAgICAgc19sYXN0UG9zaXRpb24gPSBuZXcgUmVmUHRyPEdlb3Bv
c2l0aW9uPjsKKyAgICAgICAgc19sYXN0RXJyb3IgPSBuZXcgUmVmUHRyPFBvc2l0aW9uRXJyb3I+
OworICAgIH0KK30KKwordm9pZCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpjbGVhblVwU3RhdGlj
cygpCit7CisgICAgaWYgKHNfaW5zdGFuY2VzLT5zaXplKCkgPT0gMCkgeworICAgICAgICBkZWxl
dGUgc19pbnN0YW5jZXM7CisgICAgICAgIHNfaW5zdGFuY2VzID0gMDsKKyAgICAgICAgZGVsZXRl
IHNfbGFzdFBvc2l0aW9uOworICAgICAgICBkZWxldGUgc19sYXN0RXJyb3I7CisgICAgfQorfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL21vY2svR2Vv
bG9jYXRpb25TZXJ2aWNlTW9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbW9j
ay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRm
b3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBHZW9sb2NhdGlvblNlcnZpY2VNb2NrX2gKKyNkZWZpbmUgR2VvbG9jYXRpb25TZXJ2aWNl
TW9ja19oCisKKyNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2UuaCIKKyNpbmNsdWRlICJUaW1l
ci5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8g
VGhpcyBjbGFzcyBwcm92aWRlcyBhIG1vY2sgaW1wbGVtZW50YXRpb24gb2YgYSBHZW9sb2NhdGlv
blNlcnZpY2UgZm9yIHRlc3RpbmcKKy8vIHB1cnBvc2VzLiBJdCBhbGxvd3MgdGhlIHBvc2l0aW9u
IG9yIGVycm9yIHRoYXQgd2lsbCBiZSByZXBvcnRlZCBieSB0aGlzIGNsYXNzCisvLyB0byBiZSBz
ZXQgbWFudWFsbHkgdXNpbmcgdGhlIHNldFBvc2l0aW9uIGFuZCBzZXRFcnJvciBtZXRob2RzLiBP
YmplY3RzIG9mCisvLyB0aGlzIGNsYXNzIGNhbGwgYmFjayB0byB0aGVpciByZXNwZWN0aXZlIEdl
b2xvY2F0aW9uU2VydmljZUNsaWVudCB3aXRoIHRoZQorLy8gcG9zaXRpb24gb3IgZXJyb3IgZXZl
cnkgdGltZSBlaXRoZXIgb2YgdGhlc2UgaXMgdXBkYXRlZC4KK2NsYXNzIEdlb2xvY2F0aW9uU2Vy
dmljZU1vY2sgOiBwdWJsaWMgR2VvbG9jYXRpb25TZXJ2aWNlIHsKKyAgcHVibGljOgorICAgIHN0
YXRpYyBHZW9sb2NhdGlvblNlcnZpY2UqIGNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQq
KTsKKworICAgIEdlb2xvY2F0aW9uU2VydmljZU1vY2soR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50
Kik7CisgICAgdmlydHVhbCB+R2VvbG9jYXRpb25TZXJ2aWNlTW9jaygpOworCisgICAgdmlydHVh
bCBib29sIHN0YXJ0VXBkYXRpbmcoUG9zaXRpb25PcHRpb25zKik7CisgICAgdmlydHVhbCB2b2lk
IHN0b3BVcGRhdGluZygpOworCisgICAgc3RhdGljIHZvaWQgc2V0UG9zaXRpb24oUGFzc1JlZlB0
cjxHZW9wb3NpdGlvbj4gcG9zaXRpb24pOworICAgIHN0YXRpYyB2b2lkIHNldEVycm9yKFBhc3NS
ZWZQdHI8UG9zaXRpb25FcnJvcj4gcG9zaXRpb24pOworCisgICAgdmlydHVhbCBHZW9wb3NpdGlv
biogbGFzdFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gc19sYXN0UG9zaXRpb24tPmdldCgpOyB9
CisgICAgdmlydHVhbCBQb3NpdGlvbkVycm9yKiBsYXN0RXJyb3IoKSBjb25zdCB7IHJldHVybiBz
X2xhc3RFcnJvci0+Z2V0KCk7IH0KKworICBwcml2YXRlOgorICAgIHN0YXRpYyB2b2lkIG1ha2VH
ZW9sb2NhdGlvbkNhbGxiYWNrRnJvbUFsbEluc3RhbmNlcygpOworICAgIHZvaWQgbWFrZUdlb2xv
Y2F0aW9uQ2FsbGJhY2soKTsKKworICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxHZW9sb2NhdGlv
blNlcnZpY2VNb2NrPiopOworCisgICAgc3RhdGljIHZvaWQgaW5pdFN0YXRpY3MoKTsKKyAgICBz
dGF0aWMgdm9pZCBjbGVhblVwU3RhdGljcygpOworCisgICAgdHlwZWRlZiBIYXNoU2V0PEdlb2xv
Y2F0aW9uU2VydmljZU1vY2sqPiBHZW9sb2NhdGlvblNlcnZpY2VTZXQ7CisgICAgc3RhdGljIEdl
b2xvY2F0aW9uU2VydmljZVNldCogc19pbnN0YW5jZXM7CisKKyAgICBzdGF0aWMgUmVmUHRyPEdl
b3Bvc2l0aW9uPiogc19sYXN0UG9zaXRpb247CisgICAgc3RhdGljIFJlZlB0cjxQb3NpdGlvbkVy
cm9yPiogc19sYXN0RXJyb3I7CisKKyAgICBUaW1lcjxHZW9sb2NhdGlvblNlcnZpY2VNb2NrPiBt
X3RpbWVyOworCisgICAgYm9vbCBtX2lzQWN0aXZlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gR2VvbG9jYXRpb25TZXJ2aWNlTW9ja19oCkluZGV4OiBXZWJLaXQv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ4MTAx
KQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisy
MDA5LTA5LTA2ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEgbW9jayBHZW9s
b2NhdGlvbiBzZXJ2aWNlLiBUaGlzIHdpbGwgYmUgdXNlZCB0byBwcm92aWRlIHByZWRpY3RhYmxl
IGJlaGF2aW9yIG9mIHRoZQorICAgICAgICBHZW9sb2NhdGlvbiBBUEkgZm9yIHVzZSBpbiBMYXlv
dXRUZXN0cy4gTGF0ZXIgY2hhbmdlcyB3aWxsIGludGVncmF0ZSB0aGUgdGhlIG1vY2sKKyAgICAg
ICAgR2VvbG9jYXRpb24gc2VydmljZSB3aXRoIER1bXBSZW5kZXJUcmVlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNjQKKworICAgICAgICAqIFdl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBNb2RpZmllZC4gQWRkcyBXZWJHZW9sb2Nh
dGlvbk1vY2suCisKIDIwMDktMDktMDMgIEpvaG4gU3VsbGl2YW4gIDxzdWxsaXZhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2JlbgpJbmRleDogV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNDgxMDEpCisrKyBXZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTk0LDYgKzk0
LDggQEAKIAkJNTFGREM0RDMwQjBBRjVDMTAwRjg0RUIzIC8qIFdlYkhpc3RvcnlJdGVtUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGREM0
RDIwQjBBRjVDMTAwRjg0RUIzIC8qIFdlYkhpc3RvcnlJdGVtUHJpdmF0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyNDFBREY1MEIxQkM0OEEw
MDQwMTJCRCAvKiBXZWJDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTI0MUFERjMwQjFCQzQ4QTAwNDAxMkJEIC8qIFdlYkNhY2hlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTI0MUFERjYwQjFC
QzQ4QTAwNDAxMkJEIC8qIFdlYkNhY2hlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTI0MUFERjQwQjFCQzQ4QTAwNDAxMkJEIC8qIFdlYkNhY2hlLm1t
ICovOyB9OworCQk1OUM3N0YzNTEwNTQ1RjdFMDA1MDYxMDQgLyogV2ViR2VvbG9jYXRpb25Nb2Nr
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTlDNzdG
MzMxMDU0NUY3RTAwNTA2MTA0IC8qIFdlYkdlb2xvY2F0aW9uTW9jay5tbSAqLzsgfTsKKwkJNTlD
NzdGNEIxMDU0NzFFNzAwNTA2MTA0IC8qIFdlYkdlb2xvY2F0aW9uTW9ja1ByaXZhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5Qzc3RjRBMTA1NDcx
RTcwMDUwNjEwNCAvKiBXZWJHZW9sb2NhdGlvbk1vY2tQcml2YXRlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNUQxNjM4RjMwRTM1QjQ1RDAwRjMw
MzhFIC8qIEVtcHR5UHJvdG9jb2xEZWZpbml0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQxNjM4RjIwRTM1QjQ1RDAwRjMwMzhFIC8qIEVtcHR5
UHJvdG9jb2xEZWZpbml0aW9ucy5oICovOyB9OwogCQk1RDdCRjgxNDBDMkExRDkwMDA4Q0UwNkQg
LyogV2ViSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1RDdCRjgxMjBDMkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNUQ3QkY4MTUwQzJB
MUQ5MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEN0JGODEzMEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNw
ZWN0b3IubW0gKi87IH07CkBAIC00NjYsNiArNDY4LDggQEAKIAkJNTFGREM0RDIwQjBBRjVDMTAw
Rjg0RUIzIC8qIFdlYkhpc3RvcnlJdGVtUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJIaXN0b3J5SXRlbVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTI0MUFERjMwQjFCQzQ4QTAwNDAxMkJEIC8qIFdlYkNhY2hlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MjQxQURGNDBCMUJDNDhBMDA0MDEyQkQgLyogV2ViQ2FjaGUubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ2FjaGUubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTU5Qzc3RjMzMTA1NDVGN0UwMDUwNjEwNCAvKiBXZWJHZW9s
b2NhdGlvbk1vY2subW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJHZW9sb2NhdGlvbk1vY2subW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU5Qzc3
RjRBMTA1NDcxRTcwMDUwNjEwNCAvKiBXZWJHZW9sb2NhdGlvbk1vY2tQcml2YXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uTW9ja1ByaXZhdGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQxNjM4RjIwRTM1QjQ1RDAwRjMwMzhFIC8q
IEVtcHR5UHJvdG9jb2xEZWZpbml0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBFbXB0eVByb3RvY29sRGVmaW5pdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNUQ3QkY4MTIwQzJBMUQ5MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSW5zcGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVEN0JGODEzMEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNwZWN0b3Iu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViSW5zcGVjdG9y
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEzNSw2ICsxMTM5LDggQEAKIAkJ
RjVCMzZCNDAwMjgxREU4NzAxODYzNUNCIC8qIFdlYkNvcmVTdXBwb3J0ICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1OUM3N0Y0QTEwNTQ3MUU3MDA1MDYx
MDQgLyogV2ViR2VvbG9jYXRpb25Nb2NrUHJpdmF0ZS5oICovLAorCQkJCTU5Qzc3RjMzMTA1NDVG
N0UwMDUwNjEwNCAvKiBXZWJHZW9sb2NhdGlvbk1vY2subW0gKi8sCiAJCQkJQjY4MDQ5NzEwRkZC
Q0VDMTAwOUY3RjYyIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGUuaCAqLywKIAkJCQlCNjgwNDk3MjBG
RkJDRUMxMDA5RjdGNjIgLyogV2ViQXBwbGljYXRpb25DYWNoZS5tbSAqLywKIAkJCQk1MUNCRkNB
QzBEMTBFNkM1MDAyREJGNTEgLyogV2ViQ2FjaGVkRnJhbWVQbGF0Zm9ybURhdGEuaCAqLywKQEAg
LTE0NDYsNiArMTQ1Miw3IEBACiAJCQkJOTM5ODEwOUIwODI0QkYwMTAwOERGMDM4IC8qIFdlYlZp
ZXdJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5ODEwNzEwODI0QkYwMTAwOERGMDM4
IC8qIFdlYlZpZXdQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUY0NDg0RjEwMzM4RThD
MDAzMEU1NUUgLyogV2ViV29ya2Vyc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTU5Qzc3
RjRCMTA1NDcxRTcwMDUwNjEwNCAvKiBXZWJHZW9sb2NhdGlvbk1vY2tQcml2YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKQEAgLTE3NzcsNiArMTc4NCw3IEBACiAJCQkJQkMyRTQ2NEUwRkQ4QTk2ODAwQTlE
OURFIC8qIFdlYlZpZXdEYXRhLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5ODEwRTgwODI0QkYw
MTAwOERGMDM4IC8qIFdlYlZpZXdGYWN0b3J5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGNDQ4
NTAxMDMzOEU4QzAwMzBFNTVFIC8qIFdlYldvcmtlcnNQcml2YXRlLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJNTlDNzdGMzUxMDU0NUY3RTAwNTA2MTA0IC8qIFdlYkdlb2xvY2F0aW9uTW9jay5tbSBp
biBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ4MTAxKQorKysgV2ViS2l0L21hYy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAwOS0wOS0wNiAgU3RldmUg
QmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBhIG1vY2sgR2VvbG9jYXRpb24gc2VydmljZS4g
VGhpcyB3aWxsIGJlIHVzZWQgdG8gcHJvdmlkZSBwcmVkaWN0YWJsZSBiZWhhdmlvciBvZiB0aGUK
KyAgICAgICAgR2VvbG9jYXRpb24gQVBJIGZvciB1c2UgaW4gTGF5b3V0VGVzdHMuIExhdGVyIGNo
YW5nZXMgd2lsbCBpbnRlZ3JhdGUgdGhlIHRoZSBtb2NrCisgICAgICAgIEdlb2xvY2F0aW9uIHNl
cnZpY2Ugd2l0aCBEdW1wUmVuZGVyVHJlZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI4MjY0CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJH
ZW9sb2NhdGlvbk1vY2tQcml2YXRlLmg6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkdlb2xvY2F0aW9uTW9jay5tbTogQWRkZWQuCisgICAgICAgICgrW1dlYkdlb2xvY2F0aW9u
TW9jayBzZXRFcnJvcjpjb2RlOl0pOiBBZGRlZC4gVXNlZCBieSBEdW1wUmVuZGVyIHRyZWUgdG8g
Y29uZmlndXJlIHRoZSBtb2NrIEdlb2xvY2F0aW9uIHNlcnZpY2UuCisgICAgICAgICgrW1dlYkdl
b2xvY2F0aW9uTW9jayBzZXRQb3NpdGlvbjpsYXRpdHVkZTpsb25naXR1ZGU6YWNjdXJhY3k6XSk6
IEFkZGVkLiBVc2VkIGJ5IER1bXBSZW5kZXIgdHJlZSB0byBjb25maWd1cmUgdGhlIG1vY2sgR2Vv
bG9jYXRpb24gc2VydmljZS4KKyAgICAgICAgKiBXZWJLaXQuZXhwOiBNb2RpZmllZC4gRXhwb3J0
cyBXZWJHZW9sb2NhdGlvbk1vY2suCisKIDIwMDktMDktMDYgIENhbWVyb24gTWNDb3JtYWNrICA8
Y2FtQG1jYy5pZC5hdT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6
IFdlYktpdC9tYWMvV2ViS2l0LmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYktpdC5l
eHAJKHJldmlzaW9uIDQ4MTAxKQorKysgV2ViS2l0L21hYy9XZWJLaXQuZXhwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMiw2ICsxMiw3IEBACiAub2JqY19jbGFzc19uYW1lX1dlYkZvcm1EZWxlZ2F0ZQog
Lm9iamNfY2xhc3NfbmFtZV9XZWJGcmFtZQogLm9iamNfY2xhc3NfbmFtZV9XZWJGcmFtZVZpZXcK
Ky5vYmpjX2NsYXNzX25hbWVfV2ViR2VvbG9jYXRpb25Nb2NrCiAub2JqY19jbGFzc19uYW1lX1dl
YkhUTUxSZXByZXNlbnRhdGlvbgogLm9iamNfY2xhc3NfbmFtZV9XZWJIVE1MVmlldwogLm9iamNf
Y2xhc3NfbmFtZV9XZWJIaXN0b3J5CkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
Ykdlb2xvY2F0aW9uTW9jay5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkdlb2xvY2F0aW9uTW9jay5tbQkocmV2aXNpb24gMCkKKysrIFdlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25Nb2NrLm1tCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bXBvcnQgIldlYkdlb2xvY2F0aW9uTW9ja1ByaXZhdGUuaCIKKworI2ltcG9ydCAiV2ViR2VvbG9j
YXRpb25JbnRlcm5hbC5oIgorI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2NhdGlvblNlcnZpY2VNb2Nr
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0dlb3Bvc2l0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Bv
c2l0aW9uRXJyb3IuaD4KKyNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgorCisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwordXNpbmcgbmFtZXNwYWNlIFdURjsKKworQGltcGxlbWVudGF0aW9u
IFdlYkdlb2xvY2F0aW9uTW9jaworCisrICh2b2lkKXNldFBvc2l0aW9uOihkb3VibGUpbGF0aXR1
ZGU6KGRvdWJsZSlsb25naXR1ZGU6KGRvdWJsZSlhY2N1cmFjeQoreworICAgIFJlZlB0cjxDb29y
ZGluYXRlcz4gY29vcmRpbmF0ZXMgPSBDb29yZGluYXRlczo6Y3JlYXRlKGxhdGl0dWRlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxv
bmdpdHVkZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmYWxzZSwgMC4wLCAgLy8gYWx0aXR1ZGUKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2N1cmFjeSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwg
MC4wLCAgLy8gYWx0aXR1ZGVBY2N1cmFjeQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCAwLjAsICAvLyBoZWFkaW5nCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFs
c2UsIDAuMCk7ICAvLyBzcGVlZAorICAgIFJlZlB0cjxHZW9wb3NpdGlvbj4gcG9zaXRpb24gPSBH
ZW9wb3NpdGlvbjo6Y3JlYXRlKGNvb3JkaW5hdGVzLnJlbGVhc2UoKSwgY3VycmVudFRpbWUoKSAq
IDEwMDAuMCk7CisgICAgR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c2V0UG9zaXRpb24ocG9zaXRp
b24ucmVsZWFzZSgpKTsKK30KKworKyAodm9pZClzZXRFcnJvcjooaW50KWNvZGU6KE5TU3RyaW5n
ICopbWVzc2FnZQoreworICAgIFBvc2l0aW9uRXJyb3I6OkVycm9yQ29kZSBjb2RlRW51bSA9IHN0
YXRpY19jYXN0PFBvc2l0aW9uRXJyb3I6OkVycm9yQ29kZT4oY29kZSk7CisgICAgUmVmUHRyPFBv
c2l0aW9uRXJyb3I+IGVycm9yID0gUG9zaXRpb25FcnJvcjo6Y3JlYXRlKGNvZGVFbnVtLCBtZXNz
YWdlKTsKKyAgICBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzZXRFcnJvcihlcnJvci5yZWxlYXNl
KCkpOworfQorCitAZW5kCkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xv
Y2F0aW9uTW9ja1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkdlb2xvY2F0aW9uTW9ja1ByaXZhdGUuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25Nb2NrUHJpdmF0ZS5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCitAaW50ZXJmYWNl
IFdlYkdlb2xvY2F0aW9uTW9jayA6IE5TT2JqZWN0IHsKK30KKworKyAodm9pZClzZXRQb3NpdGlv
bjooZG91YmxlKWxhdGl0dWRlOihkb3VibGUpbG9uZ2l0dWRlOihkb3VibGUpYWNjdXJhY3k7Cisr
ICh2b2lkKXNldEVycm9yOihpbnQpY29kZTooTlNTdHJpbmcgKiltZXNzYWdlOworQGVuZApJbmRl
eDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5n
ZUxvZwkocmV2aXNpb24gNDgxMDEpCisrKyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAwOS0wOS0wNiAgU3RldmUgQmxvY2sgIDxzdGV2ZWJs
b2NrQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkcyBhIG1vY2sgR2VvbG9jYXRpb24gc2VydmljZS4gVGhpcyB3aWxsIGJlIHVz
ZWQgdG8gcHJvdmlkZSBwcmVkaWN0YWJsZSBiZWhhdmlvciBvZiB0aGUKKyAgICAgICAgR2VvbG9j
YXRpb24gQVBJIGZvciB1c2UgaW4gTGF5b3V0VGVzdHMuIExhdGVyIGNoYW5nZXMgd2lsbCBpbnRl
Z3JhdGUgdGhlIHRoZSBtb2NrCisgICAgICAgIEdlb2xvY2F0aW9uIHNlcnZpY2Ugd2l0aCBEdW1w
UmVuZGVyVHJlZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI4MjY0CisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHA6IE1vZGlmaWVkLgorICAgICAgICAoc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25DYWxs
YmFjayk6IEFkZGVkLiBDb25maWd1cmVzIHRoZSBtb2NrIEdlb2xvY2F0aW9uIHNlcnZpY2UuCisg
ICAgICAgIChzZXRNb2NrR2VvbG9jYXRpb25FcnJvckNhbGxiYWNrKTogQWRkZWQuIENvbmZpZ3Vy
ZXMgdGhlIG1vY2sgR2VvbG9jYXRpb24gc2VydmljZS4KKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOiBBZGRlZC4gUmVnaXN0ZXJzIHRoZSBhYm92ZSBmdW5j
dGlvbnMgb24gdGhlIExheW91dFRlc3RDb250cm9sbGVyLgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6IE1vZGlmaWVkLgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbTogTW9kaWZpZWQuCisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24pOiBBZGRl
ZC4gQ29uZmlndXJlcyB0aGUgbW9jayBHZW9sb2NhdGlvbiBzZXJ2aWNlLgorICAgICAgICAoTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKTogQWRkZWQuIENvbmZp
Z3VyZXMgdGhlIG1vY2sgR2VvbG9jYXRpb24gc2VydmljZS4KKwogMjAwOS0wOS0wNCAgS2V2aW4g
T2xsaXZpZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAgICB3eCBidWlsZCBm
aXguIFN3aXRjaCBVU0VfIGRlZmluZXMgb3ZlciB0byB0aGUgY29tcGlsZXIgc28gdGhhdCB0aGV5
IGNhbiBiZQpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNDgxMDEpCisrKyBXZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2
LDYgKzM2LDcgQEAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25z
Lmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihjb25zdCBzdGQ6
OnN0cmluZyYgdGVzdFBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVjdGVkUGl4ZWxI
YXNoKQogICAgIDogbV9kdW1wQXNUZXh0KGZhbHNlKQpAQCAtNjMwLDYgKzYzMSwzNCBAQCBzdGF0
aWMgSlNWYWx1ZVJlZiBzZXREYXRhYmFzZVF1b3RhQ2FsbGJhCiAKIH0KIAorc3RhdGljIEpTVmFs
dWVSZWYgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25DYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCit7CisgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAzKQorICAgICAgICByZXR1
cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBMYXlvdXRUZXN0Q29udHJv
bGxlciogY29udHJvbGxlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIq
PihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXItPnNldE1v
Y2tHZW9sb2NhdGlvblBvc2l0aW9uKEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNb
MF0sIE5VTEwpLCAgLy8gbGF0aXR1ZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzFdLCBOVUxMKSwg
IC8vIGxvbmdpdHVkZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMl0sIE5VTEwpKTsgIC8vIGFjY3Vy
YWN5CisKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9CisKK3N0
YXRpYyBKU1ZhbHVlUmVmIHNldE1vY2tHZW9sb2NhdGlvbkVycm9yQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0
LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIGlmIChhcmd1bWVudENvdW50IDwgMikKKyAgICAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgaW50IGNvZGUg
PSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBOVUxMKTsKKyAgICBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gbWVzc2FnZShBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29weShj
b250ZXh0LCBhcmd1bWVudHNbMV0sIGV4Y2VwdGlvbikpOworICAgIEFTU0VSVCghKmV4Y2VwdGlv
bik7CisKKyAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHJlaW50ZXJwcmV0
X2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVj
dCkpOworICAgIGNvbnRyb2xsZXItPnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKGNvZGUsIG1lc3Nh
Z2UuZ2V0KCkpOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwor
fQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRJY29uRGF0YWJhc2VFbmFibGVkQ2FsbGJhY2soSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlz
T2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNb
XSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIC8vIEhhcyBtYWMgJiB3aW5kb3dzIGlt
cGxlbWVudGF0aW9uCkBAIC0xMDU1LDYgKzEwODQsOCBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6CiAgICAgICAgIHsgInNldENsb3NlUmVtYWluaW5nV2luZG93c1do
ZW5Db21wbGV0ZSIsIHNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZUNhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEN1c3RvbVBvbGljeURlbGVnYXRlIiwgc2V0Q3VzdG9t
UG9saWN5RGVsZWdhdGVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXREYXRhYmFzZVF1
b3RhIiwgc2V0RGF0YWJhc2VRdW90YUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sIAorICAgICAgICB7ICJzZXRN
b2NrR2VvbG9jYXRpb25Qb3NpdGlvbiIsIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKKyAgICAgICAgeyAic2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IiLCBzZXRNb2Nr
R2VvbG9jYXRpb25FcnJvckNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEljb25EYXRh
YmFzZUVuYWJsZWQiLCBzZXRJY29uRGF0YWJhc2VFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAic2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQiLCBzZXRKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldE1haW5GcmFtZUlz
Rmlyc3RSZXNwb25kZXIiLCBzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVyQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuaAkocmV2aXNpb24gNDgxMDEpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENhY2hlTW9kZWwoaW50KTsKICAgICB2b2lkIHNldEN1
c3RvbVBvbGljeURlbGVnYXRlKGJvb2wgc2V0RGVsZWdhdGUsIGJvb2wgcGVybWlzc2l2ZSk7CiAg
ICAgdm9pZCBzZXREYXRhYmFzZVF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSk7CisgICAg
dm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBs
b25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSk7CisgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25F
cnJvcihpbnQgY29kZSwgSlNTdHJpbmdSZWYgbWVzc2FnZSk7CiAgICAgdm9pZCBzZXRJY29uRGF0
YWJhc2VFbmFibGVkKGJvb2wgaWNvbkRhdGFiYXNlRW5hYmxlZCk7CiAgICAgdm9pZCBzZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIHByb2ZpbGluZ0VuYWJsZWQpOwogICAgIHZvaWQg
c2V0TWFpbkZyYW1lSXNGaXJzdFJlc3BvbmRlcihib29sIGZsYWcpOwpJbmRleDogV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxl
ck1hYy5tbQkocmV2aXNpb24gNDgxMDEpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUy
LDcgQEAKICNpbXBvcnQgPFdlYktpdC9XZWJIaXN0b3J5Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV2Vi
SGlzdG9yeVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJJbnNwZWN0b3IuaD4KKyNpbXBv
cnQgPFdlYktpdC9XZWJHZW9sb2NhdGlvbk1vY2tQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQv
V2ViTlNVUkxFeHRyYXMuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJQcmVmZXJlbmNlcy5oPgogI2lt
cG9ydCA8V2ViS2l0L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oPgpAQCAtMjM0LDYgKzIzNSwxOCBA
QCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXREYXRhYmFzZVF1CiAgICAgW29yaWdpbiBy
ZWxlYXNlXTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNj
dXJhY3kpCit7CisgICAgW1dlYkdlb2xvY2F0aW9uTW9jayBzZXRQb3NpdGlvbjpsYXRpdHVkZTps
b25naXR1ZGU6YWNjdXJhY3ldOworfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRN
b2NrR2VvbG9jYXRpb25FcnJvcihpbnQgY29kZSwgSlNTdHJpbmdSZWYgbWVzc2FnZSkKK3sKKyAg
ICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IG1lc3NhZ2VDRihBZG9wdENGLCBKU1N0cmluZ0NvcHlD
RlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtZXNzYWdlKSk7CisgICAgTlNTdHJpbmcgKm1l
c3NhZ2VOUyA9IChOU1N0cmluZyAqKW1lc3NhZ2VDRi5nZXQoKTsKKyAgICBbV2ViR2VvbG9jYXRp
b25Nb2NrIHNldEVycm9yOmNvZGU6bWVzc2FnZU5TXTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0SWNvbkRhdGFiYXNlRW5hYmxlZChib29sIGljb25EYXRhYmFzZUVuYWJsZWQp
CiB7CiAgICAgLy8gRklYTUU6IFdvcmthcm91bmQgPHJkYXI6Ly9wcm9ibGVtLzY0ODAxMDg+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiA0ODEwMSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDA5LTA5LTA2ICBTdGV2ZSBCbG9jayAgPHN0ZXZl
YmxvY2tAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRzIGEgbW9jayBHZW9sb2NhdGlvbiBzZXJ2aWNlLiBUaGlzIHdpbGwgYmUg
dXNlZCB0byBwcm92aWRlIHByZWRpY3RhYmxlIGJlaGF2aW9yIG9mIHRoZQorICAgICAgICBHZW9s
b2NhdGlvbiBBUEkgZm9yIHVzZSBpbiBMYXlvdXRUZXN0cy4gTGF0ZXIgY2hhbmdlcyB3aWxsIGlu
dGVncmF0ZSB0aGUgdGhlIG1vY2sKKyAgICAgICAgR2VvbG9jYXRpb24gc2VydmljZSB3aXRoIER1
bXBSZW5kZXJUcmVlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjgyNjQKKworICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3Jlc291cmNlcy9l
cnJvci5qczogQWRkZWQuIFRlc3RzIHRoYXQgdGhlIGVycm9yIGNhbGxiYWNrIGlzIGNhbGxlZCB3
aGVuIHRoZSBzZXJ2aWNlIHJlcG9ydHMgYW4gZXJyb3IuCisgICAgICAgICogZmFzdC9kb20vR2Vv
bG9jYXRpb24vZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4gRXhwZWN0ZWQgcmVzdWx0IGZvciBh
Ym92ZSB0ZXN0LgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2Vycm9yLmh0bWw6IEFk
ZGVkLiBXcmFwcGVyIGZvciBhYm92ZSB0ZXN0LgorCiAyMDA5LTA5LTA2ICBNYXJ0aW4gUm9iaW5z
b24gIDxtYXJ0aW4uamFtZXMucm9iaW5zb25AZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEd1c3Rhdm8gTm9yb25oYSwgSmFuIEFsb256byBhbmQgWGFuIExvcGV6LgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZXJyb3ItZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Vycm9yLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Vycm9y
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgR2VvbG9j
YXRpb24gZXJyb3IgY2FsbGJhY2sgdXNpbmcgdGhlIG1vY2sgc2VydmljZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZXJyb3IuY29kZSBpcyBtb2NrQ29kZQorUEFTUyBl
cnJvci5tZXNzYWdlIGlzIG1vY2tNZXNzYWdlCitQQVNTIGVycm9yLlVOS05PV05fRVJST1IgaXMg
MAorUEFTUyBlcnJvci5QRVJNSVNTSU9OX0RFTklFRCBpcyAxCitQQVNTIGVycm9yLlBPU0lUSU9O
X1VOQVZBSUxBQkxFIGlzIDIKK1BBU1MgZXJyb3IuVElNRU9VVCBpcyAzCisKK1RFU1QgQ09NUExF
VEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZXJyb3IuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9lcnJvci5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZXJyb3Iu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9lcnJvci5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9y
ZXNvdXJjZXMvZXJyb3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2Vv
bG9jYXRpb24vcmVzb3VyY2VzL2Vycm9yLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL2Vycm9yLmpzCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDI0IEBACitkZXNjcmlwdGlvbigiVGVzdHMgR2VvbG9jYXRpb24gZXJyb3IgY2FsbGJh
Y2sgdXNpbmcgdGhlIG1vY2sgc2VydmljZS4iKTsKKwordmFyIG1vY2tDb2RlID0gMDsKK3ZhciBt
b2NrTWVzc2FnZSA9ICJkZWJ1ZyI7CisKK3dpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5zZXRN
b2NrR2VvbG9jYXRpb25FcnJvcihtb2NrQ29kZSwgbW9ja01lc3NhZ2UpOworCit2YXIgZXJyb3I7
CituYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKHApIHsK
KyAgICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7
CisgICAgZGVidWcoJzxiciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFu
PicpOworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCBm
dW5jdGlvbihlKSB7CisgICAgZXJyb3IgPSBlCisgICAgc2hvdWxkQmUoJ2Vycm9yLmNvZGUnLCAn
bW9ja0NvZGUnKTsKKyAgICBzaG91bGRCZSgnZXJyb3IubWVzc2FnZScsICdtb2NrTWVzc2FnZScp
OworICAgIHNob3VsZEJlKCdlcnJvci5VTktOT1dOX0VSUk9SJywgJzAnKTsKKyAgICBzaG91bGRC
ZSgnZXJyb3IuUEVSTUlTU0lPTl9ERU5JRUQnLCAnMScpOworICAgIHNob3VsZEJlKCdlcnJvci5Q
T1NJVElPTl9VTkFWQUlMQUJMRScsICcyJyk7CisgICAgc2hvdWxkQmUoJ2Vycm9yLlRJTUVPVVQn
LCAnMycpOworICAgIGRlYnVnKCc8YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01QTEVU
RTwvc3Bhbj4nKTsKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworfSk7Cit3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwo=
</data>
<flag name="review"
          id="20187"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39162</attachid>
            <date>2009-09-07 14:27:21 -0700</date>
            <delta_ts>2009-09-07 15:55:21 -0700</delta_ts>
            <desc>Patch 4 for bug 28264</desc>
            <filename>addMockGeolocationService4.txt</filename>
            <type>text/plain</type>
            <size>64439</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODEyMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjQgQEAKKzIwMDktMDktMDYgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZHMgYSBtb2NrIEdlb2xvY2F0aW9uIHNlcnZpY2UuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIHBy
b3ZpZGUgcHJlZGljdGFibGUgYmVoYXZpb3Igb2YgdGhlCisgICAgICAgIEdlb2xvY2F0aW9uIEFQ
SSBmb3IgdXNlIGluIExheW91dFRlc3RzLiBMYXRlciBjaGFuZ2VzIHdpbGwgaW50ZWdyYXRlIHRo
ZSB0aGUgbW9jaworICAgICAgICBHZW9sb2NhdGlvbiBzZXJ2aWNlIHdpdGggRHVtcFJlbmRlclRy
ZWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODI2
NAorCisgICAgICAgIFRoZSBtb2NrIEdlb2xvY2F0aW9uIHNlcnZpY2UgcmV0dXJucyBhIGZpeGVk
IHBvc2l0aW9uIG9yIGVycm9yLiBUaGlzIHBvc2l0aW9uIG9yIGVycm9yIGNhbiBiZQorICAgICAg
ICBzZXQgdGhyb3VnaCBzdGF0aWMgbWV0aG9kcyBvbiB0aGUgR2VvbG9jYXRpb25TZXJ2aWNlIGNs
YXNzLiBUaGUgcG9zaXRpb24gb3IgZXJyb3IgaXMgc2hhcmVkCisgICAgICAgIGJldHdlZW4gYWxs
IGluc3RhbmNlcyBvZiB0aGUgbW9jayBHZW9sb2NhdGlvbiBzZXJ2aWNlLgorCisgICAgICAgIElt
cGxlbWVudGF0aW9uIGRldGFpbHMuCisgICAgICAgIFRoZSBHZW9sb2NhdGlvblNlcnZpY2Ugb2Jq
ZWN0IG1haW50YWlucyBhIHBvaW50ZXIgdG8gYSBmYWN0b3J5IGZ1bmN0aW9uIHdoaWNoIGl0IHVz
ZXMgdG8gY3JlYXRlCisgICAgICAgIEdlb2xvY2F0aW9uIHNlcnZpY2UgaW5zdGFuY2VzLiBFYWNo
IHBsYXRmb3JtIGltcGxlbWVudGluZyBHZW9sb2NhdGlvbiBzZXRzIHRoaXMgcG9pbnRlcgorICAg
ICAgICB0byB0aGUgZmFjdG9yeSBmdW5jdGlvbiBmb3IgdGhlaXIgcGxhdGZvcm0ncyBpbXBsZW1l
bnRhdGlvbi4gV2hlbiB0aGUgbW9jayBHZW9sb2NhdGlvbiBzZXJ2aWNlCisgICAgICAgIGlzIGFj
dGl2YXRlZCwgdGhlIGZhY3RvcnkgZnVuY3Rpb24gcG9pbnRlciBpcyByZXNldCB0byB0aGUgZmFj
dG9yeSBmdW5jdGlvbiBmb3IgdGhlIG1vY2sgc2VydmljZS4KKworICAgICAgICBUZXN0OiBmYXN0
L2RvbS9HZW9sb2NhdGlvbi9lcnJvci5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmJhc2UuZXhw
OiBNb2RpZmllZC4gRXhwb3J0cyBHZW9sb2NhdGlvblNlcnZpY2VNb2NrIG1ldGhvZHMuCisgICAg
ICAgICogR05VTWFrZWZpbGUuYW06IE1vZGlmaWVkLiBBZGRlZCBHZW9sb2NhdGlvblNlcnZpY2VN
b2NrIGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogTW9kaWZpZWQuIEFkZGVkIEdlb2xv
Y2F0aW9uU2VydmljZU1vY2sgZmlsZXMuCisgICAgICAgICogV2ViQ29yZS5wcm86IE1vZGlmaWVk
LiBBZGRlZCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrIGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOiBNb2RpZmllZC4gQWRkZWQgR2VvbG9jYXRpb25TZXJ2aWNl
TW9jayBmaWxlcy4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJv
cHM6IE1vZGlmaWVkLiBBZGRlZCBtb2NrIGRpcmVjdG9yeSB0byBpbmNsdWRlcy4KKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IE1vZGlmaWVkLiBBZGRlZCBHZW9s
b2NhdGlvblNlcnZpY2VNb2NrIGZpbGVzIGFuZCBleHBvcnRzIHNvbWUgaGVhZGVycy4KKyAgICAg
ICAgKiBXZWJDb3JlU291cmNlcy5ia2w6IE1vZGlmaWVkLiBBZGRlZCBHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrIGZpbGVzLgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6IE1vZGlmaWVkLiBG
aXhlZCBjb21tZW50LgorICAgICAgICAqIHBhZ2UvR2VvbG9jYXRpb24uY3BwOiBNb2RpZmllZC4K
KyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpzZXRJc0FsbG93ZWQpOiBNb2RpZmllZC4g
Rml4ZWQgZXJyb3Igc3RyaW5nLgorICAgICAgICAqIHBsYXRmb3JtL0dlb2xvY2F0aW9uU2Vydmlj
ZS5jcHA6IE1vZGlmaWVkLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlR2VvbG9jYXRpb25TZXJ2
aWNlTnVsbCk6IEFkZGVkLiBSZXR1cm5zIG51bGwgaW4gcGxhY2Ugb2YgYSBHZW9sb2NhdGlvbiBz
ZXJ2aWNlLiBVc2VkIHRvIGF2b2lkIGxpbmsgZXJyb3JzIG9uIHBsYXRmb3JtcyB3aGVyZSBHZW9s
b2NhdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlv
blNlcnZpY2U6OmNyZWF0ZSk6IEFkZGVkLiBVc2VzIHRoZSBmYWN0b3J5IGZ1bmN0aW9uIHBvaW50
ZXIgdG8gY3JlYXRlIGEgR2VvbG9jYXRpb24gc2VydmljZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAg
ICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZTo6dXNlTW9jayk6IEFkZGVkLiBDb25maWd1
cmVzIHRoZSBHZW9sb2NhdGlvblNlcnZpZSB0byB1c2UgdGhlIG1vY2sgaW1wbGVtZW50YXRpb24u
CisgICAgICAgICogcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmg6IE1vZGlmaWVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21vY2s6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21vY2svR2Vv
bG9jYXRpb25TZXJ2aWNlTW9jay5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9j
YXRpb25TZXJ2aWNlTW9jazo6Y3JlYXRlKTogQWRkZWQuIENyZWF0ZXMgYSBHZW9sb2NhdGlvblNl
cnZpY2VNb2NrIG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZU1v
Y2s6Okdlb2xvY2F0aW9uU2VydmljZU1vY2spOiBBZGRlZC4gQ29uc3RydWN0b3IuCisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjp+R2VvbG9jYXRpb25TZXJ2aWNlTW9j
ayk6IEFkZGVkLiBEZXN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2
aWNlTW9jazo6c2V0UG9zaXRpb24pOiBBZGRlZC4gU2V0cyB0aGUgcG9zaXRpb24gdGhhdCB3aWxs
IGJlIHJldHVybmVkIGJ5IHRoZSBvYmplY3QuCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlv
blNlcnZpY2VNb2NrOjpzZXRFcnJvcik6IEFkZGVkLiBTZXRzIHRoZSBlcnJvciB0aGF0IHdpbGwg
YmUgcmV0dXJuZWQgYnkgdGhlIG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9u
U2VydmljZU1vY2s6OnN0YXJ0VXBkYXRpbmcpOiBBZGRlZC4gR2VvbG9jYXRpb25TZXJ2aWNlIGlt
cGxlbWVudGF0aW9uLiBTdGFydHMgdGhlIHNlcnZpY2UuCisgICAgICAgIChXZWJDb3JlOjpHZW9s
b2NhdGlvblNlcnZpY2VNb2NrOjpzdG9wVXBkYXRpbmcpOiBBZGRlZC4gR2VvbG9jYXRpb25TZXJ2
aWNlIGltcGxlbWVudGF0aW9uLiBTdG9wcyB0aGUgc2VydmljZS4KKyAgICAgICAgKFdlYkNvcmU6
Okdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnRpbWVyRmlyZWQpOiBBZGRlZC4gVXNlZCB0byBwcm92
aWRlIGFuIGFzeW5jaHJvbm91cyBjYWxsYmFjayB3aGVuIHRoZSBzZXJ2aWNlIGlzIHN0YXJ0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjptYWtlR2VvbG9jYXRp
b25DYWxsYmFja0Zyb21BbGxJbnN0YW5jZXMpOiBBZGRlZC4gVXNlZCB0byBjYWxsIGJhY2sgd2hl
biB0aGUgcG9zaXRpb24gb3IgZXJyb3IgaXMgdXBkYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okdl
b2xvY2F0aW9uU2VydmljZU1vY2s6Om1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrKTogQWRkZWQuIFVz
ZWQgdG8gY2FsbCBiYWNrIHdoZW4gdGhlIHNlcnZpY2Ugc3RhcnRzLgorICAgICAgICAoV2ViQ29y
ZTo6R2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6aW5pdFN0YXRpY3MpOiBBZGRlZC4gSW5pdGlhbGl6
ZXMgc3RhdGljcyBtZW1iZXJzIHdpdGggY29uc3RydWN0b3JzLgorICAgICAgICAoV2ViQ29yZTo6
R2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6Y2xlYW5VcFN0YXRpY3MpOiBBZGRlZC4gQ2xlYW5zIHVw
IHN0YXRpYyBtZW1iZXJzIHdpdGggY29uc3RydWN0b3JzLgorICAgICAgICAqIHBsYXRmb3JtL21v
Y2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okdl
b2xvY2F0aW9uU2VydmljZU1vY2s6Omxhc3RQb3NpdGlvbik6IEFkZGVkLiBSZXR1cm5zIHRoZSBm
aXhlZCBwb3NpdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZU1vY2s6
Omxhc3RFcnJvcik6IEFkZGVkLiBSZXR1cm5zIHRoZSBmaXhlZCBlcnJvci4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvR2VvbG9jYXRpb25TZXJ2aWNlR3RrLmNwcDogTW9kaWZpZWQuCisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2VHdGs6OmNyZWF0ZSk6IEFkZGVkLiBDcmVhdGVz
IGFuIGluc3RhbmNlIG9mIEdlb2xvY2F0aW9uU2VydmljZUd0ay4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvR2VvbG9jYXRpb25TZXJ2aWNlR3RrLmg6IE1vZGlmaWVkLgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9HZW9sb2NhdGlvblNlcnZpY2VNYWMuaDogTW9kaWZpZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL0dlb2xvY2F0aW9uU2VydmljZU1hYy5tbTogTW9kaWZpZWQuCisgICAgICAgIChX
ZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2VNYWM6OmNyZWF0ZSk6IEFkZGVkLiBDcmVhdGVzIGFu
IGluc3RhbmNlIG9mIEdlb2xvY2F0aW9uU2VydmljZU1hYy4KKwogMjAwOS0wOS0wNyAgR3VzdGF2
byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCkluZGV4OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFt
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDQ4MTIwKQor
KysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsNyBA
QCB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL2pwZWcgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2Ut
ZGVjb2RlcnMvcG5nIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29k
ZXJzL3hibSBcCisJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrIFwKIAktSSQoc3Jj
ZGlyKS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dCBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbHVnaW5zIFwKQEAgLTEzOTUsNiAr
MTM5Niw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5n
LmggXAogCVdlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAgXAogCVdlYkNvcmUv
cGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5oIFwKKwlXZWJDb3JlL3BsYXRmb3JtL21vY2svR2Vv
bG9jYXRpb25TZXJ2aWNlTW9jay5jcHAgXAorCVdlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2Nh
dGlvblNlcnZpY2VNb2NrLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vTm90SW1wbGVtZW50ZWQuaCBc
CiAJV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1LZXlib2FyZEV2ZW50LmggXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAkocmV2aXNpb24gNDgxMjApCisr
KyBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0Miw2ICs0NDIs
OCBAQCBfX1pON1dlYkNvcmUyMVdpbmRvd3NMYXRpbjFFbmNvZGluZ0V2CiBfX1pON1dlYkNvcmUy
MWZpbmRFdmVudFdpdGhLZXlTdGF0ZUVQTlNfNUV2ZW50RQogX19aTjdXZWJDb3JlMjFpc0JhY2tG
b3J3YXJkTG9hZFR5cGVFTlNfMTNGcmFtZUxvYWRUeXBlRQogX19aTjdXZWJDb3JlMjFyZXBvcnRU
aHJlYWRWaW9sYXRpb25FUEtjTlNfMjBUaHJlYWRWaW9sYXRpb25Sb3VuZEUKK19fWk43V2ViQ29y
ZTIyR2VvbG9jYXRpb25TZXJ2aWNlTW9jazExc2V0UG9zaXRpb25FTjNXVEYxMFBhc3NSZWZQdHJJ
TlNfMTFHZW9wb3NpdGlvbkVFRQorX19aTjdXZWJDb3JlMjJHZW9sb2NhdGlvblNlcnZpY2VNb2Nr
OHNldEVycm9yRU4zV1RGMTBQYXNzUmVmUHRySU5TXzEzUG9zaXRpb25FcnJvckVFRQogX19aTjdX
ZWJDb3JlMjJTY3JpcHRFeGVjdXRpb25Db250ZXh0MjZjYW5TdXNwZW5kQWN0aXZlRE9NT2JqZWN0
c0V2CiBfX1pON1dlYkNvcmUyMmFwcGxpY2F0aW9uSXNBcHBsZU1haWxFdgogX19aTjdXZWJDb3Jl
MjJjcmVhdGVGcmFnbWVudEZyb21UZXh0RVBOU181UmFuZ2VFUktOU182U3RyaW5nRQpJbmRleDog
V2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJ
KHJldmlzaW9uIDQ4MTIwKQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkK
QEAgLTI2MDcsNiArMjYwNyw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vTG9nZ2luZy5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9t
b2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9t
b2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vTm90
SW1wbGVtZW50ZWQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUGFzdGVib2FyZC5oJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCcsCkluZGV4OiBXZWJD
b3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlz
aW9uIDQ4MTIwKQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMjEy
LDYgKzIxMiw3IEBAIElOQ0xVREVQQVRIID0gXAogICAgICQkUFdEL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMgXAogICAgICQkUFdEL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMgXAogICAg
ICQkUFdEL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzIFwKKyAgICAkJFBXRC9wbGF0Zm9ybS9tb2Nr
IFwKICAgICAkJFBXRC9wbGF0Zm9ybS9uZXR3b3JrIFwKICAgICAkJFBXRC9wbGF0Zm9ybS9zcWwg
XAogICAgICQkUFdEL3BsYXRmb3JtL3RleHQgXApAQCAtMTE4OCw2ICsxMTg5LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgcGxhdGZvcm0vTGlua0hhc2guY3BwIFwKICAgICBwbGF0Zm9ybS9Mb2dnaW5n
LmNwcCBcCiAgICAgcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAgXAorICAgIHBsYXRmb3Jt
L21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsv
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9D
cmVkZW50aWFsLmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHAgXApAQCAt
MTgxOSw2ICsxODIxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vRHJhZ0ltYWdlLmgg
XAogICAgIHBsYXRmb3JtL0ZpbGVDaG9vc2VyLmggXAogICAgIHBsYXRmb3JtL0dlb2xvY2F0aW9u
U2VydmljZS5oIFwKKyAgICBwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmggXAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0NvbG9yLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oIFwKSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZVNvdXJjZXMuYmtsCShyZXZpc2lvbiA0ODEyMCkKKysrIFdlYkNvcmUvV2ViQ29yZVNvdXJj
ZXMuYmtsCSh3b3JraW5nIGNvcHkpCkBAIC04MTcsNiArODE3LDcgQEAgVGhpcyBmaWxlIGNvbnRh
aW5zIHRoZSBsaXN0IG9mIGZpbGVzIG5lZQogICAgICAgICBwbGF0Zm9ybS9MaW5rSGFzaC5jcHAK
ICAgICAgICAgcGxhdGZvcm0vTG9nZ2luZy5jcHAKICAgICAgICAgcGxhdGZvcm0vTUlNRVR5cGVS
ZWdpc3RyeS5jcHAKKyAgICAgICAgcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2Nr
LmNwcAogICAgICAgICBwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHByZXNzaW9uLmNwcAogICAgICAg
ICBwbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCiAgICAgICAgIHBsYXRmb3JtL1Njcm9sbGJhclRoZW1l
Q29tcG9zaXRlLmNwcApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShy
ZXZpc2lvbiA0ODEyMCkKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTE3MDY4LDExICsxNzA2OCwxMSBAQAogCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGFnZVxTZXR0aW5ncy5oIgogCQkJCT4KIAkJCTwvRmlsZT4KLSAgICAgICAgICAgICAg
ICAgICAgICAgIDxGaWxlCisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxVc2Vy
U2NyaXB0LmgiCiAJCQkJPgogCQkJPC9GaWxlPgotICAgICAgICAgICAgICAgICAgICAgICAgPEZp
bGUKKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFVzZXJTY3JpcHRUeXBlcy5o
IgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTIxNzU5LDYgKzIxNzU5LDE4IEBACiAJCQkJCT4KIAkJ
CQk8L0ZpbGU+CiAJCQk8L0ZpbHRlcj4KKwkJCTxGaWx0ZXIKKwkJCQlOYW1lPSJtb2NrIgorCQkJ
CT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG1vY2tcR2VvbG9j
YXRpb25TZXJ2aWNlTW9jay5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxtb2NrXEdlb2xvY2F0aW9uU2VydmljZU1vY2su
aCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCTwvRmlsdGVyPgogCQk8L0ZpbHRlcj4KIAkJPEZp
bHRlcgogCQkJTmFtZT0iY3NzIgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
Q29tbW9uLnZzcHJvcHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlQ29tbW9uLnZzcHJvcHMJKHJldmlzaW9uIDQ4MTIwKQorKysgV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBA
CiAJPgogCTxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCUFkZGl0aW9uYWxJbmNs
dWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcikuLlwmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5JnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5XHdpbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5cYnJpZGdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlkZ2VcYyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cY3NzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxlZGl0aW5nJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmcmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xzdHlsZSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cYmluZGluZ3NcanMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRvbSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5cZG9tXGRlZmF1bHQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGhpc3RvcnkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWwmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXGh0bWxcY2FudmFzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxp
bnNwZWN0b3ImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlciZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cbG9hZGVyXGFwcGNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
Llxsb2FkZXJcYXJjaGl2ZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hp
dmVcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxpY29uJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxub3RpZmljYXRpb25zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxwYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlXGFuaW1hdGlvbiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5ccGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHBsYXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxhbmltYXRpb24m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHNxbCZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGxhdGZvcm1cd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0
Zm9ybVxuZXR3b3JrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3Jr
XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cY2YmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxwbGF0Zm9ybVxncmFwaGljc1xvcGVudHlwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ccGxhdGZvcm1cZ3JhcGhpY3NcdHJhbnNmb3JtcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ccGxhdGZvcm1cdGV4dCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3Jh
cGhpY3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx4bWwmcXVvdDs7JnF1b3Q7JChX
ZWJLaXRPdXRwdXREaXIpXG9ialxXZWJDb3JlXERlcml2ZWRTb3VyY2VzJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxwbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbHVnaW5z
XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXGdyYXBoaWNzJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxzdmdcZ3JhcGhpY3NcZmlsdGVycyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cc3ZnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3bWwmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHN0b3JhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdvcmtl
cnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChX
ZWJLaXRPdXRwdXREaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1
dERpcilcaW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1dERp
cilcaW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxGb3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rpcilc
aW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxwcml2YXRl
JnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNj
cmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcaWN1JnF1
b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXGljb252JnF1b3Q7OyZxdW90
OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoV2Vi
S2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHNxbGl0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJh
cmllc0RpcilcaW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJh
cmllc0RpcilcSW5jbHVkZVxDb3JlRm91bmRhdGlvblxPU1hDb21wYXRpYmlsaXR5SGVhZGVycyZx
dW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxDb3JlRm91bmRhdGlvblxP
U1hDb21wYXRpYmlsaXR5SGVhZGVyc1xHTlVDb21wYXRpYmlsaXR5JnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxzdmdcYW5pbWF0aW9uJnF1b3Q7IgorCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzPSImcXVvdDskKFByb2plY3REaXIpLi5cJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGJyaWRnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGNzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZWRpdGlu
ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxyZW5kZXJpbmdcc3R5bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJp
bmRpbmdzXGpzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxkb20mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXGRvbVxkZWZhdWx0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxoaXN0
b3J5JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxodG1sXGNhbnZhcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caW5zcGVjdG9y
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXGxvYWRlclxhcHBjYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVy
XGFyY2hpdmUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlXGNmJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcaWNvbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cbm90aWZpY2F0aW9ucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFnZSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFnZVxhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHBhZ2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9y
bSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cYW5pbWF0aW9uJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxtb2NrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxwbGF0Zm9ybVxzcWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHdp
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbmV0d29yayZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbmV0d29ya1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXHBsYXRmb3JtXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9y
bVxncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Nc
b3BlbnR5cGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHRy
YW5zZm9ybXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHRleHQmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHdpbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ceG1sJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcV2Vi
Q29yZVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGx1Z2lucyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGx1Z2luc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXHN2Z1xncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXGdy
YXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2ZyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cd21sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdG9yYWdl
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3b3JrZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0
T3V0cHV0RGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxpbmNsdWRl
XHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXGluY2x1ZGVcSmF2YVNjcmlw
dENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXGluY2x1ZGVccHJpdmF0ZVxKYXZh
U2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cRm9yd2FyZGluZ0hlYWRlcnMm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChX
ZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExp
YnJhcmllc0RpcilcaW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXGljdSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJh
cmllc0RpcilcaW5jbHVkZVxpY29udiZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rpcilc
aW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVk
ZVxzcWxpdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcSmF2YVNj
cmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcQ29yZUZv
dW5kYXRpb25cT1NYQ29tcGF0aWJpbGl0eUhlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJy
YXJpZXNEaXIpXEluY2x1ZGVcQ29yZUZvdW5kYXRpb25cT1NYQ29tcGF0aWJpbGl0eUhlYWRlcnNc
R05VQ29tcGF0aWJpbGl0eSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXGFuaW1hdGlv
biZxdW90OyIKIAkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9fV0lOMzJfXztXRUJDT1JFX0NP
TlRFWFRfTUVOVVM7RU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HO0VOQUJMRV9EQVRBQkFTRTtFTkFC
TEVfREFUQUdSSUQ7RU5BQkxFX0RBVEFMSVNUO0VOQUJMRV9ET01fU1RPUkFHRTtFTkFCTEVfRVZF
TlRTT1VSQ0U7RU5BQkxFX0lDT05EQVRBQkFTRTtFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TO0VOQUJMRV9SVUJZO0VOQUJMRV9TVkc7RU5BQkxFX1NWR19BTklNQVRJT047RU5BQkxFX1NW
R19BU19JTUFHRTtFTkFCTEVfU1ZHX0ZPTlRTO0VOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q7RU5B
QkxFX1NWR19VU0U7RU5BQkxFX1dFQl9TT0NLRVRTO0VOQUJMRV9XT1JLRVJTO0VOQUJMRV9YUEFU
SDtFTkFCTEVfWFNMVCIKIAkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiCiAJCVByZWNvbXBpbGVk
SGVhZGVyVGhyb3VnaD0iV2ViQ29yZVByZWZpeC5oIgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDQ4MTIwKQorKysgV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEwMTUsNiAr
MTAxNSw4IEBACiAJCTU0QzUwRjdCMEU4MDFERjMwMDk4MzJBMCAvKiBYTUxUb2tlbml6ZXJMaWJ4
bWwyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU0
QzUwRjdBMEU4MDFERjMwMDk4MzJBMCAvKiBYTUxUb2tlbml6ZXJMaWJ4bWwyLmNwcCAqLzsgfTsK
IAkJNTUwQTBCQzkwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUwQTBCQzcwODVGNjAzOTAw
NzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwICovOyB9OwogCQk1NTBBMEJDQTA4NUY2MDM5MDA3
MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTUwQTBCQzgwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1OUM3
N0YyQTEwNTQ1QjNCMDA1MDYxMDQgLyogR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OUM3N0YyODEwNTQ1QjNC
MDA1MDYxMDQgLyogR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAgKi87IH07CisJCTU5Qzc3RjJC
MTA1NDVCM0IwMDUwNjEwNCAvKiBHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OUM3N0YyOTEwNTQ1QjNCMDA1MDYx
MDQgLyogR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVEMTVFM0FCMEY5RTZBQzEwMDlFMEUzRiAvKiBYTUxU
b2tlbml6ZXJTY29wZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1RDE1RTNBOTBGOUU2QUMxMDA5RTBFM0YgLyogWE1MVG9rZW5pemVyU2NvcGUuY3Bw
ICovOyB9OwogCQk1RDE1RTNBQzBGOUU2QUMxMDA5RTBFM0YgLyogWE1MVG9rZW5pemVyU2NvcGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEMTVFM0FB
MEY5RTZBQzEwMDlFMEUzRiAvKiBYTUxUb2tlbml6ZXJTY29wZS5oICovOyB9OwogCQk1RDg3NEYx
MzBEMTYxRDMyMDA3OTZDM0IgLyogTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMjI3REQwQUY1ODlB
RDAwRDQ4MzI0IC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCAqLzsgfTsKQEAgLTQ2
MTQsNyArNDYxNiw3IEBACiAJCUY5MTZDNDhFMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjkxNkM0OEMwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQ
cm9ncmVzc0V2ZW50LmggKi87IH07CiAJCUY5RjBFRDdBMERCNTBDQTIwMEQxNkRCOSAvKiBYTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY5RjBFRDc3MERCNTBDQTIwMEQxNkRCOSAvKiBYTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnQuaCAqLzsgfTsKIAkJRkU2RkQ0ODcwRjY3NkU1NzAwMDkyODczIC8qIENv
b3JkaW5hdGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZFNkZENDg0MEY2NzZFNTcwMDA5Mjg3MyAvKiBDb29yZGluYXRlcy5jcHAgKi87IH07Ci0J
CUZFNkZENDg4MEY2NzZFNTcwMDA5Mjg3MyAvKiBDb29yZGluYXRlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU2RkQ0ODUwRjY3NkU1NzAwMDkyODcz
IC8qIENvb3JkaW5hdGVzLmggKi87IH07CisJCUZFNkZENDg4MEY2NzZFNTcwMDA5Mjg3MyAvKiBD
b29yZGluYXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkU2RkQ0ODUwRjY3NkU1NzAwMDkyODczIC8qIENvb3JkaW5hdGVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkU2RkQ0OEQwRjY3NkU5MzAw
MDkyODczIC8qIEpTQ29vcmRpbmF0ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRkU2RkQ0OEIwRjY3NkU5MzAwMDkyODczIC8qIEpTQ29vcmRpbmF0
ZXMuY3BwICovOyB9OwogCQlGRTZGRDQ4RTBGNjc2RTkzMDAwOTI4NzMgLyogSlNDb29yZGluYXRl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU2RkQ0
OEMwRjY3NkU5MzAwMDkyODczIC8qIEpTQ29vcmRpbmF0ZXMuaCAqLzsgfTsKIAkJRkU3MDBERDEw
RjkyRDgxQTAwOEUyQkZFIC8qIEpTQ29vcmRpbmF0ZXNDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU3MDBERDAwRjkyRDgxQTAwOEUyQkZF
IC8qIEpTQ29vcmRpbmF0ZXNDdXN0b20uY3BwICovOyB9OwpAQCAtNDYyNiw5ICs0NjI4LDkgQEAK
IAkJRkU4MEQ3QzUwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEN0I3MEU5QzFGMjUwMDBE
NkY3NSAvKiBHZW9sb2NhdGlvbi5jcHAgKi87IH07CiAJCUZFODBEN0M2MEU5QzFGMjUwMDBENkY3
NSAvKiBHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkU4MEQ3QjgwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb2xvY2F0aW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkU4MEQ3QzgwRTlD
MUYyNTAwMEQ2Rjc1IC8qIEdlb3Bvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEN0JBMEU5QzFGMjUwMDBENkY3NSAvKiBHZW9wb3Np
dGlvbi5jcHAgKi87IH07Ci0JCUZFODBEN0M5MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9wb3NpdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU4MEQ3
QkIwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb3Bvc2l0aW9uLmggKi87IH07CisJCUZFODBEN0M5MEU5
QzFGMjUwMDBENkY3NSAvKiBHZW9wb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkU4MEQ3QkIwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb3Bvc2l0
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RkU4MEQ3Q0IwRTlDMUYyNTAwMEQ2Rjc1IC8qIFBvc2l0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEN0JEMEU5QzFGMjUwMDBE
NkY3NSAvKiBQb3NpdGlvbkNhbGxiYWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJRkU4MEQ3Q0QwRTlDMUYyNTAwMEQ2Rjc1IC8qIFBvc2l0aW9u
RXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZF
ODBEN0JGMEU5QzFGMjUwMDBENkY3NSAvKiBQb3NpdGlvbkVycm9yLmggKi87IH07CisJCUZFODBE
N0NEMEU5QzFGMjUwMDBENkY3NSAvKiBQb3NpdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTgwRDdCRjBFOUMxRjI1MDAwRDZGNzUgLyog
UG9zaXRpb25FcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUZFODBEN0NGMEU5QzFGMjUwMDBENkY3NSAvKiBQb3NpdGlvbkVycm9yQ2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBE
N0MxMEU5QzFGMjUwMDBENkY3NSAvKiBQb3NpdGlvbkVycm9yQ2FsbGJhY2suaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRTgwRDdEMTBFOUMxRjI1
MDAwRDZGNzUgLyogUG9zaXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRTgwRDdDMzBFOUMxRjI1MDAwRDZGNzUgLyogUG9zaXRpb25P
cHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRkU4MERBNjMwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU4MERBNUYwRTlDNDcwMzAw
MEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uY3BwICovOyB9OwpAQCAtNjE2Niw2ICs2MTY4LDggQEAK
IAkJNTRDNTBGN0EwRTgwMURGMzAwOTgzMkEwIC8qIFhNTFRva2VuaXplckxpYnhtbDIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWE1MVG9rZW5pemVyTGlieG1sMi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1MEEwQkM3MDg1RjYwMzkwMDczNTNE
NiAvKiBRdWFsaWZpZWROYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFF1YWxpZmllZE5hbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJNTUwQTBCQzgwODVGNjAz
OTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUXVhbGlmaWVkTmFtZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKKwkJNTlDNzdGMjgxMDU0NUIz
QjAwNTA2MTA0IC8qIEdlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHA7IHBhdGggPSBt
b2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1OUM3N0YyOTEwNTQ1QjNCMDA1MDYxMDQgLyogR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBHZW9sb2NhdGlvblNlcnZpY2VNb2Nr
Lmg7IHBhdGggPSBtb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNUQxNUUzQTkwRjlFNkFDMTAwOUUwRTNGIC8qIFhNTFRva2VuaXplclNj
b3BlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTFRva2VuaXpl
clNjb3BlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQxNUUzQUEwRjlFNkFD
MTAwOUUwRTNGIC8qIFhNTFRva2VuaXplclNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFhNTFRva2VuaXplclNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTVEOTI1QjY1MEY2NEQ0REQwMEI4NDdGMCAvKiBTY3JvbGxCZWhhdmlvci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxCZWhhdmlvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDU3Niw2ICsxMDU4MCwxNSBAQAogCQkJcGF0aCA9
IHdlYnNvY2tldHM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1OUM3N0Yx
MDEwNTQ1OTFDMDA1MDYxMDQgLyogbW9jayAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJNTlDNzdGMjgxMDU0NUIzQjAwNTA2MTA0IC8qIEdlb2xvY2F0aW9u
U2VydmljZU1vY2suY3BwICovLAorCQkJCTU5Qzc3RjI5MTA1NDVCM0IwMDUwNjEwNCAvKiBHZW9s
b2NhdGlvblNlcnZpY2VNb2NrLmggKi8sCisJCQkpOworCQkJbmFtZSA9IG1vY2s7CisJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk1REE1RTBGOTEwMkI5NTA0MDAwODhDRjkgLyog
V2ViU29ja2V0cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBA
IC0xNDM3MCw2ICsxNDM4Myw3IEBACiAJCUJDRjFBNUJBMDk3ODMyMDkwMDYxQTEyMyAvKiBwbGF0
Zm9ybSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTlD
NzdGMTAxMDU0NTkxQzAwNTA2MTA0IC8qIG1vY2sgKi8sCiAJCQkJNDlFOTEyQTQwRUZBQzhFNjAw
OUQwQ0FGIC8qIGFuaW1hdGlvbiAqLywKIAkJCQkxQUU0MkY2NzBBQTRCOENCMDBDODYxMkQgLyog
Y2YgKi8sCiAJCQkJQjJBMDE1OTEwQUY2Q0Q1MzAwNkJDRTBFIC8qIGdyYXBoaWNzICovLApAQCAt
MTc1NTgsNiArMTc1NzIsNyBAQAogCQkJCTUxMEQ0QTM4MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2Nr
ZXRTdHJlYW1IYW5kbGVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQUJBRTFCMTAzQzE4
RkYwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1FcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFB
QkFFMUUxMDNDMTkxMzAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUhhbmRsZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNTlDNzdGMkIxMDU0NUIzQjAwNTA2MTA0IC8qIEdlb2xvY2F0aW9uU2VydmljZU1v
Y2suaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTk2NTMsNiArMTk2NjgsNyBAQAogCQkJCTUxMEQ0QTMz
MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvckJhc2UuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTEwRDRBMzYxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJh
c2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBQkFFMUYxMDNDMTkxMzAwOEM1MjYwIC8qIFNv
Y2tldFN0cmVhbUhhbmRsZUNGTmV0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTU5Qzc3RjJBMTA1
NDVCM0IwMDUwNjEwNCAvKiBHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpJbmRleDogV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaAkocmV2aXNpb24gNDgxMjApCisrKyBXZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw3ICsxNzUsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
bG9hdCB2YWx1ZSwgZmxvYXQgcHJvcG9ydGlvbiwgU2Nyb2xsYmFyQ29udHJvbFBhcnRNYXNrKTsK
ICAgICAgICAgdmlydHVhbCBib29sIHBhaW50Q3VzdG9tU2Nyb2xsQ29ybmVyKEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IEZsb2F0UmVjdCYpOwogCi0gICAgICAgIC8vIFRoaXMgaXMgYW4gYXN5bmNo
cm9ub3VzIGNhbGwuIFRoZSBDaHJvbWVDbGllbnQgY2FuIGRpc3BsYXkgVUkgYXNraW5nIHRoZSB1
c2VyIGZvciBwZXJtaXNzaW9uCisgICAgICAgIC8vIFRoaXMgY2FuIGJlIGVpdGhlciBhIHN5bmNo
cm9ub3VzIG9yIGFzeW5jaHJvbm91cyBjYWxsLiBUaGUgQ2hyb21lQ2xpZW50IGNhbiBkaXNwbGF5
IFVJIGFza2luZyB0aGUgdXNlciBmb3IgcGVybWlzc2lvbgogICAgICAgICAvLyB0byB1c2UgR2Vv
bG9jb2NhdGlvbi4gVGhlIENocm9tZUNsaWVudCBtdXN0IGNhbGwgR2VvbG9jYXRpb246OnNldFNo
b3VsZENsZWFyQ2FjaGUoKSBhcHByb3ByaWF0ZWx5LgogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKSA9
IDA7CiAgICAgICAgICAgICAKSW5kZXg6IFdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmNwcAkocmV2aXNpb24gNDgxMjAp
CisrKyBXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUs
NyArMTQ1LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c2V0SXNBbGxvd2VkKGJvb2wgYWxsbwogICAg
ICAgICBzdGFydFRpbWVycygpOwogICAgICAgICBtYWtlU3VjY2Vzc0NhbGxiYWNrcygpOwogICAg
IH0gZWxzZSB7Ci0gICAgICAgIFdURjo6UmVmUHRyPFdlYkNvcmU6OlBvc2l0aW9uRXJyb3I+IGVy
cm9yID0gV2ViQ29yZTo6UG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6OlBFUk1J
U1NJT05fREVOSUVELCAiVXNlciBkaXNhbGxvd2VkIEdlb0xvY2F0aW9uIik7CisgICAgICAgIFdU
Rjo6UmVmUHRyPFdlYkNvcmU6OlBvc2l0aW9uRXJyb3I+IGVycm9yID0gV2ViQ29yZTo6UG9zaXRp
b25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6OlBFUk1JU1NJT05fREVOSUVELCAiVXNlciBk
aXNhbGxvd2VkIEdlb2xvY2F0aW9uIik7CiAgICAgICAgIGhhbmRsZUVycm9yKGVycm9yLmdldCgp
KTsKICAgICB9CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3Bw
CShyZXZpc2lvbiA0ODEyMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAsMjMgKzIwLDM5IEBACiAgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2Uu
aCIKKyNpbmNsdWRlICJHZW9wb3NpdGlvbi5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uU2Vydmlj
ZU1vY2suaCIKKyNpbmNsdWRlICJQb3NpdGlvbkVycm9yLmgiCiAKKyNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICNpZiAhRU5BQkxFKEdFT0xPQ0FUSU9OKQotR2VvbG9jYXRpb25TZXJ2aWNlKiBH
ZW9sb2NhdGlvblNlcnZpY2U6OmNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKQorR2Vv
bG9jYXRpb25TZXJ2aWNlKiBjcmVhdGVHZW9sb2NhdGlvblNlcnZpY2VOdWxsKEdlb2xvY2F0aW9u
U2VydmljZUNsaWVudCopCiB7CiAgICAgcmV0dXJuIDA7CiB9CisKK0dlb2xvY2F0aW9uU2Vydmlj
ZTo6RmFjdG9yeUZ1bmN0aW9uKiBHZW9sb2NhdGlvblNlcnZpY2U6OnNfZmFjdG9yeUZ1bmN0aW9u
ID0gJmNyZWF0ZUdlb2xvY2F0aW9uU2VydmljZU51bGw7CiAjZW5kaWYKIAorR2VvbG9jYXRpb25T
ZXJ2aWNlKiBHZW9sb2NhdGlvblNlcnZpY2U6OmNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGll
bnQqIGNsaWVudCkKK3sKKyAgICByZXR1cm4gKCpzX2ZhY3RvcnlGdW5jdGlvbikoY2xpZW50KTsK
K30KKwordm9pZCBHZW9sb2NhdGlvblNlcnZpY2U6OnVzZU1vY2soKQoreworICAgIHNfZmFjdG9y
eUZ1bmN0aW9uID0gJkdlb2xvY2F0aW9uU2VydmljZU1vY2s6OmNyZWF0ZTsKK30KKwogR2VvbG9j
YXRpb25TZXJ2aWNlOjpHZW9sb2NhdGlvblNlcnZpY2UoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50
KiBjbGllbnQpCiAgICAgOiBtX2dlb2xvY2F0aW9uU2VydmljZUNsaWVudChjbGllbnQpCiB7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmgJKHJldmlzaW9uIDQ4MTIwKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaAkod29ya2luZyBjb3B5KQpA
QCAtNTksMTEgKzU5LDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHBvc2l0aW9uQ2hhbmdlZCgpOwog
ICAgIHZvaWQgZXJyb3JPY2N1cnJlZCgpOwogCisgICAgc3RhdGljIHZvaWQgdXNlTW9jaygpOwor
CiBwcm90ZWN0ZWQ6CiAgICAgR2VvbG9jYXRpb25TZXJ2aWNlKEdlb2xvY2F0aW9uU2VydmljZUNs
aWVudCopOwogCiBwcml2YXRlOgogICAgIEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogbV9nZW9s
b2NhdGlvblNlcnZpY2VDbGllbnQ7CisKKyAgICB0eXBlZGVmIEdlb2xvY2F0aW9uU2VydmljZSog
KEZhY3RvcnlGdW5jdGlvbikoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7CisgICAgc3RhdGlj
IEZhY3RvcnlGdW5jdGlvbiogc19mYWN0b3J5RnVuY3Rpb247CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9HZW9sb2NhdGlvblNlcnZpY2VH
dGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2Vy
dmljZUd0ay5jcHAJKHJldmlzaW9uIDQ4MTIwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2Vv
bG9jYXRpb25TZXJ2aWNlR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTEgKzM3LDEzIEBA
IG5hbWVzcGFjZSBXVEYgewogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdlb2xvY2F0aW9uU2Vy
dmljZSogR2VvbG9jYXRpb25TZXJ2aWNlOjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50
KiBjbGllbnQpCitHZW9sb2NhdGlvblNlcnZpY2UqIEdlb2xvY2F0aW9uU2VydmljZUd0azo6Y3Jl
YXRlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogY2xpZW50KQogewogICAgIHJldHVybiBuZXcg
R2VvbG9jYXRpb25TZXJ2aWNlR3RrKGNsaWVudCk7CiB9CiAKK0dlb2xvY2F0aW9uU2VydmljZTo6
RmFjdG9yeUZ1bmN0aW9uKiBHZW9sb2NhdGlvblNlcnZpY2U6OnNfZmFjdG9yeUZ1bmN0aW9uID0g
Jkdlb2xvY2F0aW9uU2VydmljZUd0azo6Y3JlYXRlOworCiBHZW9sb2NhdGlvblNlcnZpY2VHdGs6
Okdlb2xvY2F0aW9uU2VydmljZUd0ayhHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkK
ICAgICA6IEdlb2xvY2F0aW9uU2VydmljZShjbGllbnQpCiAgICAgLCBtX2dlb2NsdWVDbGllbnQo
MCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5o
CShyZXZpc2lvbiA0ODEyMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2Vy
dmljZUd0ay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgY2xhc3MgR2VvbG9jYXRpb25TZXJ2aWNlR3RrIDogcHVibGljIEdlb2xvY2F0
aW9uU2VydmljZSB7CiAgICAgcHVibGljOgotICAgICAgICBHZW9sb2NhdGlvblNlcnZpY2VHdGso
R2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7CisgICAgICAgIHN0YXRpYyBHZW9sb2NhdGlvblNl
cnZpY2UqIGNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsKICAgICAgICAgfkdlb2xv
Y2F0aW9uU2VydmljZUd0aygpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBzdGFydFVwZGF0aW5n
KFBvc2l0aW9uT3B0aW9ucyopOwpAQCAtNDQsNiArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIFBvc2l0aW9uRXJyb3IqIGxhc3RFcnJvcigpIGNvbnN0OwogCiAgICAgcHJpdmF0
ZToKKyAgICAgICAgR2VvbG9jYXRpb25TZXJ2aWNlR3RrKEdlb2xvY2F0aW9uU2VydmljZUNsaWVu
dCopOworCiAgICAgICAgIHZvaWQgdXBkYXRlTG9jYXRpb25JbmZvcm1hdGlvbigpOwogICAgICAg
ICB2b2lkIHNldEVycm9yKFBvc2l0aW9uRXJyb3I6OkVycm9yQ29kZSwgY29uc3QgY2hhciogbWVz
c2FnZSk7CiAgICAgICAgIHZvaWQgdXBkYXRlUG9zaXRpb24oKTsKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vbWFjL0dlb2xvY2F0aW9uU2VydmljZU1hYy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vbWFjL0dlb2xvY2F0aW9uU2VydmljZU1hYy5oCShyZXZpc2lvbiA0ODEyMCkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vbWFjL0dlb2xvY2F0aW9uU2VydmljZU1hYy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR2VvbG9j
YXRpb25TZXJ2aWNlTWFjIDogcHVibGljIEdlb2xvY2F0aW9uU2VydmljZSB7CiBwdWJsaWM6Ci0g
ICAgR2VvbG9jYXRpb25TZXJ2aWNlTWFjKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworICAg
IHN0YXRpYyBHZW9sb2NhdGlvblNlcnZpY2UqIGNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGll
bnQqKTsKICAgICB2aXJ0dWFsIH5HZW9sb2NhdGlvblNlcnZpY2VNYWMoKTsKICAgICAKICAgICB2
aXJ0dWFsIGJvb2wgc3RhcnRVcGRhdGluZyhQb3NpdGlvbk9wdGlvbnMqKTsKQEAgLTYxLDYgKzYx
LDggQEAgcHVibGljOgogICAgIHZvaWQgZXJyb3JPY2N1cnJlZChQYXNzUmVmUHRyPFBvc2l0aW9u
RXJyb3I+KTsKIAogcHJpdmF0ZToKKyAgICBHZW9sb2NhdGlvblNlcnZpY2VNYWMoR2VvbG9jYXRp
b25TZXJ2aWNlQ2xpZW50Kik7CisKICAgICBSZXRhaW5QdHI8Q0xMb2NhdGlvbk1hbmFnZXI+IG1f
bG9jYXRpb25NYW5hZ2VyOwogICAgIFJldGFpblB0cjxXZWJDb3JlQ29yZUxvY2F0aW9uT2JzZXJ2
ZXI+IG1fb2JqY09ic2VydmVyOwogICAgIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvR2Vv
bG9jYXRpb25TZXJ2aWNlTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbWFj
L0dlb2xvY2F0aW9uU2VydmljZU1hYy5tbQkocmV2aXNpb24gNDgxMjApCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL21hYy9HZW9sb2NhdGlvblNlcnZpY2VNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTY1
LDExICs2NSwxMyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1HZW9sb2NhdGlvblNlcnZpY2UqIEdlb2xvY2F0aW9uU2VydmljZTo6Y3JlYXRlKEdl
b2xvY2F0aW9uU2VydmljZUNsaWVudCogY2xpZW50KQorR2VvbG9jYXRpb25TZXJ2aWNlKiBHZW9s
b2NhdGlvblNlcnZpY2VNYWM6OmNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVu
dCkKIHsKICAgICByZXR1cm4gbmV3IEdlb2xvY2F0aW9uU2VydmljZU1hYyhjbGllbnQpOwogfQog
CitHZW9sb2NhdGlvblNlcnZpY2U6OkZhY3RvcnlGdW5jdGlvbiogR2VvbG9jYXRpb25TZXJ2aWNl
OjpzX2ZhY3RvcnlGdW5jdGlvbiA9ICZHZW9sb2NhdGlvblNlcnZpY2VNYWM6OmNyZWF0ZTsKKwog
R2VvbG9jYXRpb25TZXJ2aWNlTWFjOjpHZW9sb2NhdGlvblNlcnZpY2VNYWMoR2VvbG9jYXRpb25T
ZXJ2aWNlQ2xpZW50KiBjbGllbnQpCiAgICAgOiBHZW9sb2NhdGlvblNlcnZpY2UoY2xpZW50KQog
ICAgICwgbV9vYmpjT2JzZXJ2ZXIoQWRvcHROUywgW1tXZWJDb3JlQ29yZUxvY2F0aW9uT2JzZXJ2
ZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6dGhpc10pCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwCShyZXZpc2lvbiAwKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDEzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJ
bmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR2VvbG9jYXRpb25T
ZXJ2aWNlTW9jay5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIkdlb2xvY2F0
aW9uLmgiCisjaW5jbHVkZSAiR2VvcG9zaXRpb24uaCIKKyNpbmNsdWRlICJQb3NpdGlvbkVycm9y
LmgiCisjaW5jbHVkZSAiUG9zaXRpb25PcHRpb25zLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6R2VvbG9jYXRpb25TZXJ2aWNlU2V0KiBHZW9sb2Nh
dGlvblNlcnZpY2VNb2NrOjpzX2luc3RhbmNlcyA9IDA7CitSZWZQdHI8R2VvcG9zaXRpb24+KiBH
ZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzX2xhc3RQb3NpdGlvbjsKK1JlZlB0cjxQb3NpdGlvbkVy
cm9yPiogR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c19sYXN0RXJyb3I7CisKK0dlb2xvY2F0aW9u
U2VydmljZSogR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6Y3JlYXRlKEdlb2xvY2F0aW9uU2Vydmlj
ZUNsaWVudCogY2xpZW50KQoreworICAgIGluaXRTdGF0aWNzKCk7CisgICAgcmV0dXJuIG5ldyBH
ZW9sb2NhdGlvblNlcnZpY2VNb2NrKGNsaWVudCk7Cit9CisKK0dlb2xvY2F0aW9uU2VydmljZU1v
Y2s6Okdlb2xvY2F0aW9uU2VydmljZU1vY2soR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBjbGll
bnQpCisgICAgOiBHZW9sb2NhdGlvblNlcnZpY2UoY2xpZW50KQorICAgICwgbV90aW1lcih0aGlz
LCAmR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6dGltZXJGaXJlZCkKKyAgICAsIG1faXNBY3RpdmUo
ZmFsc2UpCit7CisgICAgc19pbnN0YW5jZXMtPmFkZCh0aGlzKTsKK30KKworR2VvbG9jYXRpb25T
ZXJ2aWNlTW9jazo6fkdlb2xvY2F0aW9uU2VydmljZU1vY2soKQoreworICAgIEdlb2xvY2F0aW9u
U2VydmljZVNldDo6aXRlcmF0b3IgaXRlciA9IHNfaW5zdGFuY2VzLT5maW5kKHRoaXMpOworICAg
IEFTU0VSVChpdGVyICE9IHNfaW5zdGFuY2VzLT5lbmQoKSk7CisgICAgc19pbnN0YW5jZXMtPnJl
bW92ZShpdGVyKTsKKyAgICBjbGVhblVwU3RhdGljcygpOworfQorCit2b2lkIEdlb2xvY2F0aW9u
U2VydmljZU1vY2s6OnNldFBvc2l0aW9uKFBhc3NSZWZQdHI8R2VvcG9zaXRpb24+IHBvc2l0aW9u
KQoreworICAgIGluaXRTdGF0aWNzKCk7CisgICAgR2VvbG9jYXRpb25TZXJ2aWNlOjp1c2VNb2Nr
KCk7CisgICAgKnNfbGFzdFBvc2l0aW9uID0gcG9zaXRpb247CisgICAgKnNfbGFzdEVycm9yID0g
MDsKKyAgICBtYWtlR2VvbG9jYXRpb25DYWxsYmFja0Zyb21BbGxJbnN0YW5jZXMoKTsKK30KKwor
dm9pZCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzZXRFcnJvcihQYXNzUmVmUHRyPFBvc2l0aW9u
RXJyb3I+IGVycm9yKQoreworICAgIGluaXRTdGF0aWNzKCk7CisgICAgR2VvbG9jYXRpb25TZXJ2
aWNlOjp1c2VNb2NrKCk7CisgICAgKnNfbGFzdEVycm9yID0gZXJyb3I7CisgICAgKnNfbGFzdFBv
c2l0aW9uID0gMDsKKyAgICBtYWtlR2VvbG9jYXRpb25DYWxsYmFja0Zyb21BbGxJbnN0YW5jZXMo
KTsKK30KKworYm9vbCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzdGFydFVwZGF0aW5nKFBvc2l0
aW9uT3B0aW9ucyopCit7CisgICAgbV9pc0FjdGl2ZSA9IHRydWU7CisgICAgbV90aW1lci5zdGFy
dE9uZVNob3QoMCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25TZXJ2
aWNlTW9jazo6c3RvcFVwZGF0aW5nKCkKK3sKKyAgICBtX2lzQWN0aXZlID0gZmFsc2U7Cit9CisK
K3ZvaWQgR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6dGltZXJGaXJlZChUaW1lcjxHZW9sb2NhdGlv
blNlcnZpY2VNb2NrPiogdGltZXIpCit7CisgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIg
PT0gJm1fdGltZXIpOworICAgIG1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrKCk7Cit9CisKK3ZvaWQg
R2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6bWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2tGcm9tQWxsSW5z
dGFuY2VzKCkKK3sKKyAgICBHZW9sb2NhdGlvblNlcnZpY2VTZXQ6OmNvbnN0X2l0ZXJhdG9yIGVu
ZCA9IHNfaW5zdGFuY2VzLT5lbmQoKTsKKyAgICBmb3IgKEdlb2xvY2F0aW9uU2VydmljZVNldDo6
Y29uc3RfaXRlcmF0b3IgaXRlciA9IHNfaW5zdGFuY2VzLT5iZWdpbigpOyBpdGVyICE9IGVuZDsg
KytpdGVyKQorICAgICAgICAoKml0ZXIpLT5tYWtlR2VvbG9jYXRpb25DYWxsYmFjaygpOworfQor
Cit2b2lkIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6Om1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrKCkK
K3sKKyAgICBpZiAoIW1faXNBY3RpdmUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgqc19s
YXN0UG9zaXRpb24pCisgICAgICAgIHBvc2l0aW9uQ2hhbmdlZCgpOworICAgIGVsc2UgaWYgKCpz
X2xhc3RFcnJvcikKKyAgICAgICAgZXJyb3JPY2N1cnJlZCgpOworfQorCit2b2lkIEdlb2xvY2F0
aW9uU2VydmljZU1vY2s6OmluaXRTdGF0aWNzKCkKK3sKKyAgICBpZiAoc19pbnN0YW5jZXMgPT0g
MCkgeyAKKyAgICAgICAgc19pbnN0YW5jZXMgPSBuZXcgR2VvbG9jYXRpb25TZXJ2aWNlU2V0Owor
ICAgICAgICBzX2xhc3RQb3NpdGlvbiA9IG5ldyBSZWZQdHI8R2VvcG9zaXRpb24+OworICAgICAg
ICBzX2xhc3RFcnJvciA9IG5ldyBSZWZQdHI8UG9zaXRpb25FcnJvcj47CisgICAgfQorfQorCit2
b2lkIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OmNsZWFuVXBTdGF0aWNzKCkKK3sKKyAgICBpZiAo
c19pbnN0YW5jZXMtPnNpemUoKSA9PSAwKSB7CisgICAgICAgIGRlbGV0ZSBzX2luc3RhbmNlczsK
KyAgICAgICAgc19pbnN0YW5jZXMgPSAwOworICAgICAgICBkZWxldGUgc19sYXN0UG9zaXRpb247
CisgICAgICAgIGRlbGV0ZSBzX2xhc3RFcnJvcjsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VN
b2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2Vy
dmljZU1vY2suaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2Nh
dGlvblNlcnZpY2VNb2NrLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEdlb2xvY2F0aW9u
U2VydmljZU1vY2tfaAorI2RlZmluZSBHZW9sb2NhdGlvblNlcnZpY2VNb2NrX2gKKworI2luY2x1
ZGUgIkdlb2xvY2F0aW9uU2VydmljZS5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBUaGlzIGNsYXNzIHByb3Zp
ZGVzIGEgbW9jayBpbXBsZW1lbnRhdGlvbiBvZiBhIEdlb2xvY2F0aW9uU2VydmljZSBmb3IgdGVz
dGluZworLy8gcHVycG9zZXMuIEl0IGFsbG93cyB0aGUgcG9zaXRpb24gb3IgZXJyb3IgdGhhdCB3
aWxsIGJlIHJlcG9ydGVkIGJ5IHRoaXMgY2xhc3MKKy8vIHRvIGJlIHNldCBtYW51YWxseSB1c2lu
ZyB0aGUgc2V0UG9zaXRpb24gYW5kIHNldEVycm9yIG1ldGhvZHMuIE9iamVjdHMgb2YKKy8vIHRo
aXMgY2xhc3MgY2FsbCBiYWNrIHRvIHRoZWlyIHJlc3BlY3RpdmUgR2VvbG9jYXRpb25TZXJ2aWNl
Q2xpZW50IHdpdGggdGhlCisvLyBwb3NpdGlvbiBvciBlcnJvciBldmVyeSB0aW1lIGVpdGhlciBv
ZiB0aGVzZSBpcyB1cGRhdGVkLgorY2xhc3MgR2VvbG9jYXRpb25TZXJ2aWNlTW9jayA6IHB1Ymxp
YyBHZW9sb2NhdGlvblNlcnZpY2UgeworICBwdWJsaWM6CisgICAgc3RhdGljIEdlb2xvY2F0aW9u
U2VydmljZSogY3JlYXRlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworCisgICAgR2VvbG9j
YXRpb25TZXJ2aWNlTW9jayhHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsKKyAgICB2aXJ0dWFs
IH5HZW9sb2NhdGlvblNlcnZpY2VNb2NrKCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgc3RhcnRVcGRh
dGluZyhQb3NpdGlvbk9wdGlvbnMqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCk7
CisKKyAgICBzdGF0aWMgdm9pZCBzZXRQb3NpdGlvbihQYXNzUmVmUHRyPEdlb3Bvc2l0aW9uPiBw
b3NpdGlvbik7CisgICAgc3RhdGljIHZvaWQgc2V0RXJyb3IoUGFzc1JlZlB0cjxQb3NpdGlvbkVy
cm9yPiBwb3NpdGlvbik7CisKKyAgICB2aXJ0dWFsIEdlb3Bvc2l0aW9uKiBsYXN0UG9zaXRpb24o
KSBjb25zdCB7IHJldHVybiBzX2xhc3RQb3NpdGlvbi0+Z2V0KCk7IH0KKyAgICB2aXJ0dWFsIFBv
c2l0aW9uRXJyb3IqIGxhc3RFcnJvcigpIGNvbnN0IHsgcmV0dXJuIHNfbGFzdEVycm9yLT5nZXQo
KTsgfQorCisgIHByaXZhdGU6CisgICAgc3RhdGljIHZvaWQgbWFrZUdlb2xvY2F0aW9uQ2FsbGJh
Y2tGcm9tQWxsSW5zdGFuY2VzKCk7CisgICAgdm9pZCBtYWtlR2VvbG9jYXRpb25DYWxsYmFjaygp
OworCisgICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPEdlb2xvY2F0aW9uU2VydmljZU1vY2s+Kik7
CisKKyAgICBzdGF0aWMgdm9pZCBpbml0U3RhdGljcygpOworICAgIHN0YXRpYyB2b2lkIGNsZWFu
VXBTdGF0aWNzKCk7CisKKyAgICB0eXBlZGVmIEhhc2hTZXQ8R2VvbG9jYXRpb25TZXJ2aWNlTW9j
ayo+IEdlb2xvY2F0aW9uU2VydmljZVNldDsKKyAgICBzdGF0aWMgR2VvbG9jYXRpb25TZXJ2aWNl
U2V0KiBzX2luc3RhbmNlczsKKworICAgIHN0YXRpYyBSZWZQdHI8R2VvcG9zaXRpb24+KiBzX2xh
c3RQb3NpdGlvbjsKKyAgICBzdGF0aWMgUmVmUHRyPFBvc2l0aW9uRXJyb3I+KiBzX2xhc3RFcnJv
cjsKKworICAgIFRpbWVyPEdlb2xvY2F0aW9uU2VydmljZU1vY2s+IG1fdGltZXI7CisKKyAgICBi
b29sIG1faXNBY3RpdmU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBHZW9sb2NhdGlvblNlcnZpY2VNb2NrX2gKSW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gNDgxMjApCisrKyBXZWJLaXQvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDktMDYgIFN0ZXZl
IEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgYSBtb2NrIEdlb2xvY2F0aW9uIHNlcnZpY2Uu
IFRoaXMgd2lsbCBiZSB1c2VkIHRvIHByb3ZpZGUgcHJlZGljdGFibGUgYmVoYXZpb3Igb2YgdGhl
CisgICAgICAgIEdlb2xvY2F0aW9uIEFQSSBmb3IgdXNlIGluIExheW91dFRlc3RzLiBMYXRlciBj
aGFuZ2VzIHdpbGwgaW50ZWdyYXRlIHRoZSB0aGUgbW9jaworICAgICAgICBHZW9sb2NhdGlvbiBz
ZXJ2aWNlIHdpdGggRHVtcFJlbmRlclRyZWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yODI2NAorCisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6IE1vZGlmaWVkLiBBZGRzIFdlYkdlb2xvY2F0aW9uTW9jay4KKwogMjAw
OS0wOS0wMyAgSm9obiBTdWxsaXZhbiAgPHN1bGxpdmFuQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBBZGFtIFJvYmVuCkluZGV4OiBXZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiA0ODEyMCkKKysrIFdlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTQsNiArOTQsOCBAQAogCQk1MUZEQzRE
MzBCMEFGNUMxMDBGODRFQjMgLyogV2ViSGlzdG9yeUl0ZW1Qcml2YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUZEQzREMjBCMEFGNUMxMDBGODRF
QjMgLyogV2ViSGlzdG9yeUl0ZW1Qcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTI0MUFERjUwQjFCQzQ4QTAwNDAxMkJEIC8qIFdlYkNh
Y2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjQx
QURGMzBCMUJDNDhBMDA0MDEyQkQgLyogV2ViQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MjQxQURGNjBCMUJDNDhBMDA0MDEyQkQgLyog
V2ViQ2FjaGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MjQxQURGNDBCMUJDNDhBMDA0MDEyQkQgLyogV2ViQ2FjaGUubW0gKi87IH07CisJCTU5Qzc3
RjM1MTA1NDVGN0UwMDUwNjEwNCAvKiBXZWJHZW9sb2NhdGlvbk1vY2subW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OUM3N0YzMzEwNTQ1RjdFMDA1MDYx
MDQgLyogV2ViR2VvbG9jYXRpb25Nb2NrLm1tICovOyB9OworCQk1OUM3N0Y0QjEwNTQ3MUU3MDA1
MDYxMDQgLyogV2ViR2VvbG9jYXRpb25Nb2NrUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTlDNzdGNEExMDU0NzFFNzAwNTA2MTA0IC8qIFdl
Ykdlb2xvY2F0aW9uTW9ja1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk1RDE2MzhGMzBFMzVCNDVEMDBGMzAzOEUgLyogRW1wdHlQcm90
b2NvbERlZmluaXRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1RDE2MzhGMjBFMzVCNDVEMDBGMzAzOEUgLyogRW1wdHlQcm90b2NvbERlZmluaXRp
b25zLmggKi87IH07CiAJCTVEN0JGODE0MEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNwZWN0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEN0JGODEy
MEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNwZWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1RDdCRjgxNTBDMkExRDkwMDA4Q0UwNkQgLyog
V2ViSW5zcGVjdG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNUQ3QkY4MTMwQzJBMUQ5MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5tbSAqLzsgfTsK
QEAgLTQ2Niw2ICs0NjgsOCBAQAogCQk1MUZEQzREMjBCMEFGNUMxMDBGODRFQjMgLyogV2ViSGlz
dG9yeUl0ZW1Qcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkhp
c3RvcnlJdGVtUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjQxQURG
MzBCMUJDNDhBMDA0MDEyQkQgLyogV2ViQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyNDFB
REY0MEIxQkM0OEEwMDQwMTJCRCAvKiBXZWJDYWNoZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDYWNoZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTlDNzdGMzMxMDU0NUY3RTAwNTA2MTA0IC8qIFdlYkdlb2xvY2F0aW9uTW9jay5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uTW9j
ay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTlDNzdGNEExMDU0NzFFNzAwNTA2
MTA0IC8qIFdlYkdlb2xvY2F0aW9uTW9ja1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViR2VvbG9jYXRpb25Nb2NrUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1RDE2MzhGMjBFMzVCNDVEMDBGMzAzOEUgLyogRW1wdHlQcm90b2NvbERl
ZmluaXRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVtcHR5UHJvdG9j
b2xEZWZpbml0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDdCRjgxMjBD
MkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJJbnNwZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NUQ3QkY4MTMwQzJBMUQ5MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJJbnNwZWN0b3IubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMTM1LDYgKzExMzksOCBAQAogCQlGNUIzNkI0MDAyODFERTg3
MDE4NjM1Q0IgLyogV2ViQ29yZVN1cHBvcnQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTU5Qzc3RjRBMTA1NDcxRTcwMDUwNjEwNCAvKiBXZWJHZW9sb2Nh
dGlvbk1vY2tQcml2YXRlLmggKi8sCisJCQkJNTlDNzdGMzMxMDU0NUY3RTAwNTA2MTA0IC8qIFdl
Ykdlb2xvY2F0aW9uTW9jay5tbSAqLywKIAkJCQlCNjgwNDk3MTBGRkJDRUMxMDA5RjdGNjIgLyog
V2ViQXBwbGljYXRpb25DYWNoZS5oICovLAogCQkJCUI2ODA0OTcyMEZGQkNFQzEwMDlGN0Y2MiAv
KiBXZWJBcHBsaWNhdGlvbkNhY2hlLm1tICovLAogCQkJCTUxQ0JGQ0FDMEQxMEU2QzUwMDJEQkY1
MSAvKiBXZWJDYWNoZWRGcmFtZVBsYXRmb3JtRGF0YS5oICovLApAQCAtMTQ0Niw2ICsxNDUyLDcg
QEAKIAkJCQk5Mzk4MTA5QjA4MjRCRjAxMDA4REYwMzggLyogV2ViVmlld0ludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5Mzk4MTA3MTA4MjRCRjAxMDA4REYwMzggLyogV2ViVmlld1ByaXZh
dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRjQ0ODRGMTAzMzhFOEMwMDMwRTU1RSAvKiBXZWJX
b3JrZXJzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTlDNzdGNEIxMDU0NzFFNzAwNTA2
MTA0IC8qIFdlYkdlb2xvY2F0aW9uTW9ja1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTc3
Nyw2ICsxNzg0LDcgQEAKIAkJCQlCQzJFNDY0RTBGRDhBOTY4MDBBOUQ5REUgLyogV2ViVmlld0Rh
dGEubW0gaW4gU291cmNlcyAqLywKIAkJCQk5Mzk4MTBFODA4MjRCRjAxMDA4REYwMzggLyogV2Vi
Vmlld0ZhY3RvcnkubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MUY0NDg1MDEwMzM4RThDMDAzMEU1
NUUgLyogV2ViV29ya2Vyc1ByaXZhdGUubW0gaW4gU291cmNlcyAqLywKKwkJCQk1OUM3N0YzNTEw
NTQ1RjdFMDA1MDYxMDQgLyogV2ViR2VvbG9jYXRpb25Nb2NrLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07Cklu
ZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0NoYW5n
ZUxvZwkocmV2aXNpb24gNDgxMjApCisrKyBXZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDA5LTA5LTA2ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxv
Y2tAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRzIGEgbW9jayBHZW9sb2NhdGlvbiBzZXJ2aWNlLiBUaGlzIHdpbGwgYmUgdXNl
ZCB0byBwcm92aWRlIHByZWRpY3RhYmxlIGJlaGF2aW9yIG9mIHRoZQorICAgICAgICBHZW9sb2Nh
dGlvbiBBUEkgZm9yIHVzZSBpbiBMYXlvdXRUZXN0cy4gTGF0ZXIgY2hhbmdlcyB3aWxsIGludGVn
cmF0ZSB0aGUgdGhlIG1vY2sKKyAgICAgICAgR2VvbG9jYXRpb24gc2VydmljZSB3aXRoIER1bXBS
ZW5kZXJUcmVlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjgyNjQKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uTW9ja1By
aXZhdGUuaDogQWRkZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25N
b2NrLm1tOiBBZGRlZC4KKyAgICAgICAgKCtbV2ViR2VvbG9jYXRpb25Nb2NrIHNldEVycm9yOmNv
ZGU6XSk6IEFkZGVkLiBVc2VkIGJ5IER1bXBSZW5kZXIgdHJlZSB0byBjb25maWd1cmUgdGhlIG1v
Y2sgR2VvbG9jYXRpb24gc2VydmljZS4KKyAgICAgICAgKCtbV2ViR2VvbG9jYXRpb25Nb2NrIHNl
dFBvc2l0aW9uOmxhdGl0dWRlOmxvbmdpdHVkZTphY2N1cmFjeTpdKTogQWRkZWQuIFVzZWQgYnkg
RHVtcFJlbmRlciB0cmVlIHRvIGNvbmZpZ3VyZSB0aGUgbW9jayBHZW9sb2NhdGlvbiBzZXJ2aWNl
LgorICAgICAgICAqIFdlYktpdC5leHA6IE1vZGlmaWVkLiBFeHBvcnRzIFdlYkdlb2xvY2F0aW9u
TW9jay4KKwogMjAwOS0wOS0wNiAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxjYW1AbWNjLmlkLmF1Pgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogV2ViS2l0L21hYy9XZWJL
aXQuZXhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViS2l0LmV4cAkocmV2aXNpb24gNDgx
MjApCisrKyBXZWJLaXQvbWFjL1dlYktpdC5leHAJKHdvcmtpbmcgY29weSkKQEAgLTEyLDYgKzEy
LDcgQEAKIC5vYmpjX2NsYXNzX25hbWVfV2ViRm9ybURlbGVnYXRlCiAub2JqY19jbGFzc19uYW1l
X1dlYkZyYW1lCiAub2JqY19jbGFzc19uYW1lX1dlYkZyYW1lVmlldworLm9iamNfY2xhc3NfbmFt
ZV9XZWJHZW9sb2NhdGlvbk1vY2sKIC5vYmpjX2NsYXNzX25hbWVfV2ViSFRNTFJlcHJlc2VudGF0
aW9uCiAub2JqY19jbGFzc19uYW1lX1dlYkhUTUxWaWV3CiAub2JqY19jbGFzc19uYW1lX1dlYkhp
c3RvcnkKSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25Nb2Nr
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRp
b25Nb2NrLm1tCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJH
ZW9sb2NhdGlvbk1vY2subW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2ltcG9ydCAiV2ViR2VvbG9j
YXRpb25Nb2NrUHJpdmF0ZS5oIgorCisjaW1wb3J0ICJXZWJHZW9sb2NhdGlvbkludGVybmFsLmgi
CisjaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uU2VydmljZU1vY2suaD4KKyNpbXBvcnQgPFdl
YkNvcmUvR2VvcG9zaXRpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvUG9zaXRpb25FcnJvci5oPgor
I2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CisKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
Cit1c2luZyBuYW1lc3BhY2UgV1RGOworCitAaW1wbGVtZW50YXRpb24gV2ViR2VvbG9jYXRpb25N
b2NrCisKKysgKHZvaWQpc2V0UG9zaXRpb246KGRvdWJsZSlsYXRpdHVkZTooZG91YmxlKWxvbmdp
dHVkZTooZG91YmxlKWFjY3VyYWN5Cit7CisgICAgUmVmUHRyPENvb3JkaW5hdGVzPiBjb29yZGlu
YXRlcyA9IENvb3JkaW5hdGVzOjpjcmVhdGUobGF0aXR1ZGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZ2l0dWRlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNl
LCAwLjAsICAvLyBhbHRpdHVkZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFjY3VyYWN5LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCAwLjAsICAvLyBhbHRpdHVk
ZUFjY3VyYWN5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZmFsc2UsIDAuMCwgIC8vIGhlYWRpbmcKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwgMC4wKTsgIC8vIHNw
ZWVkCisgICAgUmVmUHRyPEdlb3Bvc2l0aW9uPiBwb3NpdGlvbiA9IEdlb3Bvc2l0aW9uOjpjcmVh
dGUoY29vcmRpbmF0ZXMucmVsZWFzZSgpLCBjdXJyZW50VGltZSgpICogMTAwMC4wKTsKKyAgICBH
ZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzZXRQb3NpdGlvbihwb3NpdGlvbi5yZWxlYXNlKCkpOwor
fQorCisrICh2b2lkKXNldEVycm9yOihpbnQpY29kZTooTlNTdHJpbmcgKiltZXNzYWdlCit7Cisg
ICAgUG9zaXRpb25FcnJvcjo6RXJyb3JDb2RlIGNvZGVFbnVtID0gc3RhdGljX2Nhc3Q8UG9zaXRp
b25FcnJvcjo6RXJyb3JDb2RlPihjb2RlKTsKKyAgICBSZWZQdHI8UG9zaXRpb25FcnJvcj4gZXJy
b3IgPSBQb3NpdGlvbkVycm9yOjpjcmVhdGUoY29kZUVudW0sIG1lc3NhZ2UpOworICAgIEdlb2xv
Y2F0aW9uU2VydmljZU1vY2s6OnNldEVycm9yKGVycm9yLnJlbGVhc2UoKSk7Cit9CisKK0BlbmQK
SW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25Nb2NrUHJpdmF0
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRp
b25Nb2NrUHJpdmF0ZS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJHZW9sb2NhdGlvbk1vY2tQcml2YXRlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2ltcG9y
dCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKK0BpbnRlcmZhY2UgV2ViR2VvbG9jYXRpb25N
b2NrIDogTlNPYmplY3QgeworfQorCisrICh2b2lkKXNldFBvc2l0aW9uOihkb3VibGUpbGF0aXR1
ZGU6KGRvdWJsZSlsb25naXR1ZGU6KGRvdWJsZSlhY2N1cmFjeTsKKysgKHZvaWQpc2V0RXJyb3I6
KGludCljb2RlOihOU1N0cmluZyAqKW1lc3NhZ2U7CitAZW5kCkluZGV4OiBXZWJLaXRUb29scy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0
ODEyMCkKKysrIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDIxIEBACisyMDA5LTA5LTA2ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEg
bW9jayBHZW9sb2NhdGlvbiBzZXJ2aWNlLiBUaGlzIHdpbGwgYmUgdXNlZCB0byBwcm92aWRlIHBy
ZWRpY3RhYmxlIGJlaGF2aW9yIG9mIHRoZQorICAgICAgICBHZW9sb2NhdGlvbiBBUEkgZm9yIHVz
ZSBpbiBMYXlvdXRUZXN0cy4gTGF0ZXIgY2hhbmdlcyB3aWxsIGludGVncmF0ZSB0aGUgdGhlIG1v
Y2sKKyAgICAgICAgR2VvbG9jYXRpb24gc2VydmljZSB3aXRoIER1bXBSZW5kZXJUcmVlLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNjQKKworICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDogTW9kaWZpZWQu
CisgICAgICAgIChzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbkNhbGxiYWNrKTogQWRkZWQuIENv
bmZpZ3VyZXMgdGhlIG1vY2sgR2VvbG9jYXRpb24gc2VydmljZS4KKyAgICAgICAgKHNldE1vY2tH
ZW9sb2NhdGlvbkVycm9yQ2FsbGJhY2spOiBBZGRlZC4gQ29uZmlndXJlcyB0aGUgbW9jayBHZW9s
b2NhdGlvbiBzZXJ2aWNlLgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1
bmN0aW9ucyk6IEFkZGVkLiBSZWdpc3RlcnMgdGhlIGFib3ZlIGZ1bmN0aW9ucyBvbiB0aGUgTGF5
b3V0VGVzdENvbnRyb2xsZXIuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuaDogTW9kaWZpZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91
dFRlc3RDb250cm9sbGVyTWFjLm1tOiBNb2RpZmllZC4KKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbik6IEFkZGVkLiBDb25maWd1cmVzIHRo
ZSBtb2NrIEdlb2xvY2F0aW9uIHNlcnZpY2UuCisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IpOiBBZGRlZC4gQ29uZmlndXJlcyB0aGUgbW9jayBH
ZW9sb2NhdGlvbiBzZXJ2aWNlLgorCiAyMDA5LTA5LTA0ICBLZXZpbiBPbGxpdmllciAgPGtldmlu
b0B0aGVvbGxpdmllcnMuY29tPgogCiAgICAgICAgIHd4IGJ1aWxkIGZpeC4gU3dpdGNoIFVTRV8g
ZGVmaW5lcyBvdmVyIHRvIHRoZSBjb21waWxlciBzbyB0aGF0IHRoZXkgY2FuIGJlCkluZGV4OiBX
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwCShyZXZpc2lvbiA0ODEyMCkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogI2lu
Y2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3
dGYvTWF0aEV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogTGF5b3V0VGVzdENv
bnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0UGF0
aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgZXhwZWN0ZWRQaXhlbEhhc2gpCiAgICAgOiBtX2R1
bXBBc1RleHQoZmFsc2UpCkBAIC02MzAsNiArNjMxLDM0IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNl
dERhdGFiYXNlUXVvdGFDYWxsYmEKIAogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBzZXRNb2NrR2Vv
bG9jYXRpb25Qb3NpdGlvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJl
ZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQs
IGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sK
KyAgICBpZiAoYXJndW1lbnRDb3VudCA8IDMpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjb250ZXh0KTsKKworICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVy
ID0gcmVpbnRlcnByZXRfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJp
dmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgY29udHJvbGxlci0+c2V0TW9ja0dlb2xvY2F0aW9uUG9z
aXRpb24oSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgTlVMTCksICAvLyBs
YXRpdHVkZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTVmFs
dWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMV0sIE5VTEwpLCAgLy8gbG9uZ2l0dWRlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVRvTnVtYmVy
KGNvbnRleHQsIGFyZ3VtZW50c1syXSwgTlVMTCkpOyAgLy8gYWNjdXJhY3kKKworICAgIHJldHVy
biBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKworc3RhdGljIEpTVmFsdWVSZWYg
c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3JDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNP
YmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVu
dENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRp
b24pCit7CisgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAyKQorICAgICAgICByZXR1cm4gSlNWYWx1
ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBpbnQgY29kZSA9IEpTVmFsdWVUb051bWJl
cihjb250ZXh0LCBhcmd1bWVudHNbMF0sIE5VTEwpOworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBtZXNzYWdlKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50
c1sxXSwgZXhjZXB0aW9uKSk7CisgICAgQVNTRVJUKCEqZXhjZXB0aW9uKTsKKworICAgIExheW91
dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gcmVpbnRlcnByZXRfY2FzdDxMYXlvdXRUZXN0
Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgY29udHJv
bGxlci0+c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IoY29kZSwgbWVzc2FnZS5nZXQoKSk7CisKKyAg
ICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9CisKIHN0YXRpYyBKU1Zh
bHVlUmVmIHNldEljb25EYXRhYmFzZUVuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4
dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBh
cmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBl
eGNlcHRpb24pCiB7CiAgICAgLy8gSGFzIG1hYyAmIHdpbmRvd3MgaW1wbGVtZW50YXRpb24KQEAg
LTEwNTUsNiArMTA4NCw4IEBAIEpTU3RhdGljRnVuY3Rpb24qIExheW91dFRlc3RDb250cm9sbGVy
OjoKICAgICAgICAgeyAic2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlIiwgc2V0
Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAic2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUiLCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZUNh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldERhdGFiYXNlUXVvdGEiLCBzZXREYXRhYmFz
ZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCisgICAgICAgIHsgInNldE1vY2tHZW9sb2NhdGlvblBv
c2l0aW9uIiwgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25DYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAg
ICAgICB7ICJzZXRNb2NrR2VvbG9jYXRpb25FcnJvciIsIHNldE1vY2tHZW9sb2NhdGlvbkVycm9y
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0SWNvbkRhdGFiYXNlRW5hYmxlZCIsIHNl
dEljb25EYXRhYmFzZUVuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZCIsIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0TWFpbkZyYW1lSXNGaXJzdFJlc3BvbmRlciIs
IHNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXJDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApJbmRleDogV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCShy
ZXZpc2lvbiA0ODEyMCkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDggQEAgcHVibGljOgogICAg
IHZvaWQgc2V0Q2FjaGVNb2RlbChpbnQpOwogICAgIHZvaWQgc2V0Q3VzdG9tUG9saWN5RGVsZWdh
dGUoYm9vbCBzZXREZWxlZ2F0ZSwgYm9vbCBwZXJtaXNzaXZlKTsKICAgICB2b2lkIHNldERhdGFi
YXNlUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKTsKKyAgICB2b2lkIHNldE1vY2tHZW9s
b2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91Ymxl
IGFjY3VyYWN5KTsKKyAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvbkVycm9yKGludCBjb2RlLCBK
U1N0cmluZ1JlZiBtZXNzYWdlKTsKICAgICB2b2lkIHNldEljb25EYXRhYmFzZUVuYWJsZWQoYm9v
bCBpY29uRGF0YWJhc2VFbmFibGVkKTsKICAgICB2b2lkIHNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKGJvb2wgcHJvZmlsaW5nRW5hYmxlZCk7CiAgICAgdm9pZCBzZXRNYWluRnJhbWVJc0Zp
cnN0UmVzcG9uZGVyKGJvb2wgZmxhZyk7CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAJKHJldmlz
aW9uIDQ4MTIwKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RD
b250cm9sbGVyR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAyLDYgKzMwMiwxOCBAQCB2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpkaXNhYmxlSW1hZ2VMCiAgICAgLy8gQWxzbyBuZWVkIHRv
IG1ha2Ugc3VyZSBpbWFnZSBsb2FkaW5nIGlzIHJlLWVuYWJsZWQgZm9yIGVhY2ggbmV3IHRlc3Qu
CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0
aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQor
eworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cy4K
KyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MjY0
LgorfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrR2VvbG9jYXRpb25FcnJv
cihpbnQgY29kZSwgSlNTdHJpbmdSZWYgbWVzc2FnZSkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IGZvciBHZW9sb2NhdGlvbiBsYXlvdXQgdGVzdHMuCisgICAgLy8gU2VlIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODI2NC4KK30KKwogdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0SWNvbkRhdGFiYXNlRW5hYmxlZChib29sIGZsYWcpCiB7CiAgICAgLy8g
RklYTUU6IGltcGxlbWVudApJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xh
eW91dFRlc3RDb250cm9sbGVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQkocmV2aXNpb24gNDgxMjAp
CisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJN
YWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAKICNpbXBvcnQgPFdlYktpdC9X
ZWJIaXN0b3J5Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViSGlzdG9yeVByaXZhdGUuaD4KICNpbXBv
cnQgPFdlYktpdC9XZWJJbnNwZWN0b3IuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJHZW9sb2NhdGlv
bk1vY2tQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViTlNVUkxFeHRyYXMuaD4KICNpbXBv
cnQgPFdlYktpdC9XZWJQcmVmZXJlbmNlcy5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlByZWZlcmVu
Y2VzUHJpdmF0ZS5oPgpAQCAtMjM0LDYgKzIzNSwxOCBAQCB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpzZXREYXRhYmFzZVF1CiAgICAgW29yaWdpbiByZWxlYXNlXTsKIH0KIAordm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0
dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpCit7CisgICAgW1dlYkdlb2xv
Y2F0aW9uTW9jayBzZXRQb3NpdGlvbjpsYXRpdHVkZTpsb25naXR1ZGU6YWNjdXJhY3ldOworfQor
Cit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcihpbnQg
Y29kZSwgSlNTdHJpbmdSZWYgbWVzc2FnZSkKK3sKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+
IG1lc3NhZ2VDRihBZG9wdENGLCBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBtZXNzYWdlKSk7CisgICAgTlNTdHJpbmcgKm1lc3NhZ2VOUyA9IChOU1N0cmluZyAqKW1l
c3NhZ2VDRi5nZXQoKTsKKyAgICBbV2ViR2VvbG9jYXRpb25Nb2NrIHNldEVycm9yOmNvZGU6bWVz
c2FnZU5TXTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SWNvbkRhdGFiYXNl
RW5hYmxlZChib29sIGljb25EYXRhYmFzZUVuYWJsZWQpCiB7CiAgICAgLy8gRklYTUU6IFdvcmth
cm91bmQgPHJkYXI6Ly9wcm9ibGVtLzY0ODAxMDg+CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAJ
KHJldmlzaW9uIDQ4MTIwKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91
dFRlc3RDb250cm9sbGVyV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzExLDYgKzMxMSwxOCBA
QCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRDdXN0b21Qb2xpCiAgICAgICAgIHdlYlZp
ZXctPnNldFBvbGljeURlbGVnYXRlKDApOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25n
aXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBH
ZW9sb2NhdGlvbiBsYXlvdXQgdGVzdHMuCisgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yODI2NC4KK30KKwordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IoaW50IGNvZGUsIEpTU3RyaW5nUmVmIG1lc3NhZ2Up
Cit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgR2VvbG9jYXRpb24gbGF5b3V0IHRlc3Rz
LgorICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjgy
NjQuCit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEljb25EYXRhYmFzZUVuYWJs
ZWQoYm9vbCBpY29uRGF0YWJhc2VFbmFibGVkKQogewogICAgIC8vIFNlZSBhbHNvIDxyZGFyOi8v
cHJvYmxlbS82NDgwMTA4PgpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5
b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAJKHJldmlzaW9uIDQ4MTIwKQor
KysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIzOSw2ICsyMzksMTggQEAgYm9vbCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6cGF1c2VUcmFuc2l0aQogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0
dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpCit7CisgICAgLy8gRklYTUU6
IEltcGxlbWVudCBmb3IgR2VvbG9jYXRpb24gbGF5b3V0IHRlc3RzLgorICAgIC8vIFNlZSBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNjQuCit9CisKK3ZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKGludCBjb2RlLCBKU1N0
cmluZ1JlZiBtZXNzYWdlKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIEdlb2xvY2F0
aW9uIGxheW91dCB0ZXN0cy4KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI4MjY0LgorfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRJ
Y29uRGF0YWJhc2VFbmFibGVkKGJvb2wgaWNvbkRhdGFiYXNlRW5hYmxlZCkKIHsKICAgICAvLyBG
SVhNRTogaW1wbGVtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0ODEyMCkKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDA5LTA5LTA2ICBT
dGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEgbW9jayBHZW9sb2NhdGlvbiBzZXJ2
aWNlLiBUaGlzIHdpbGwgYmUgdXNlZCB0byBwcm92aWRlIHByZWRpY3RhYmxlIGJlaGF2aW9yIG9m
IHRoZQorICAgICAgICBHZW9sb2NhdGlvbiBBUEkgZm9yIHVzZSBpbiBMYXlvdXRUZXN0cy4gTGF0
ZXIgY2hhbmdlcyB3aWxsIGludGVncmF0ZSB0aGUgdGhlIG1vY2sKKyAgICAgICAgR2VvbG9jYXRp
b24gc2VydmljZSB3aXRoIER1bXBSZW5kZXJUcmVlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNjQKKworICAgICAgICAqIGZhc3QvZG9tL0dlb2xv
Y2F0aW9uL3Jlc291cmNlcy9lcnJvci5qczogQWRkZWQuIFRlc3RzIHRoYXQgdGhlIGVycm9yIGNh
bGxiYWNrIGlzIGNhbGxlZCB3aGVuIHRoZSBzZXJ2aWNlIHJlcG9ydHMgYW4gZXJyb3IuCisgICAg
ICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4gRXhw
ZWN0ZWQgcmVzdWx0IGZvciBhYm92ZSB0ZXN0LgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0
aW9uL2Vycm9yLmh0bWw6IEFkZGVkLiBXcmFwcGVyIGZvciBhYm92ZSB0ZXN0LgorCiAyMDA5LTA5
LTA3IEFuZHJhcyBCZWNzaSA8YmVjc2kuYW5kcmFzQHN0dWQudS1zemVnZWQuaHU+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgVG9yIEFybmUgVmVzdGLDuApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vR2VvbG9jYXRpb24vZXJyb3ItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Vycm9yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Vycm9yLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgR2VvbG9jYXRpb24gZXJyb3IgY2Fs
bGJhY2sgdXNpbmcgdGhlIG1vY2sgc2VydmljZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgZXJyb3IuY29kZSBpcyBtb2NrQ29kZQorUEFTUyBlcnJvci5tZXNzYWdlIGlz
IG1vY2tNZXNzYWdlCitQQVNTIGVycm9yLlVOS05PV05fRVJST1IgaXMgMAorUEFTUyBlcnJvci5Q
RVJNSVNTSU9OX0RFTklFRCBpcyAxCitQQVNTIGVycm9yLlBPU0lUSU9OX1VOQVZBSUxBQkxFIGlz
IDIKK1BBU1MgZXJyb3IuVElNRU9VVCBpcyAzCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZXJyb3IuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9lcnJvci5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZXJyb3IuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9lcnJvci5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvZXJyb3Iu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3Vy
Y2VzL2Vycm9yLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9j
YXRpb24vcmVzb3VyY2VzL2Vycm9yLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI0IEBACitk
ZXNjcmlwdGlvbigiVGVzdHMgR2VvbG9jYXRpb24gZXJyb3IgY2FsbGJhY2sgdXNpbmcgdGhlIG1v
Y2sgc2VydmljZS4iKTsKKwordmFyIG1vY2tDb2RlID0gMDsKK3ZhciBtb2NrTWVzc2FnZSA9ICJk
ZWJ1ZyI7CisKK3dpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5zZXRNb2NrR2VvbG9jYXRpb25F
cnJvcihtb2NrQ29kZSwgbW9ja01lc3NhZ2UpOworCit2YXIgZXJyb3I7CituYXZpZ2F0b3IuZ2Vv
bG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKHApIHsKKyAgICB0ZXN0RmFpbGVk
KCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgZGVidWcoJzxi
ciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicpOworICAgIHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCBmdW5jdGlvbihlKSB7Cisg
ICAgZXJyb3IgPSBlCisgICAgc2hvdWxkQmUoJ2Vycm9yLmNvZGUnLCAnbW9ja0NvZGUnKTsKKyAg
ICBzaG91bGRCZSgnZXJyb3IubWVzc2FnZScsICdtb2NrTWVzc2FnZScpOworICAgIHNob3VsZEJl
KCdlcnJvci5VTktOT1dOX0VSUk9SJywgJzAnKTsKKyAgICBzaG91bGRCZSgnZXJyb3IuUEVSTUlT
U0lPTl9ERU5JRUQnLCAnMScpOworICAgIHNob3VsZEJlKCdlcnJvci5QT1NJVElPTl9VTkFWQUlM
QUJMRScsICcyJyk7CisgICAgc2hvdWxkQmUoJ2Vycm9yLlRJTUVPVVQnLCAnMycpOworICAgIGRl
YnVnKCc8YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01QTEVURTwvc3Bhbj4nKTsKKyAg
ICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSk7Cit3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1NraXBwZWQJKHJldmlzaW9uIDQ4MTIwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTE1NjksNiArMTU2OSw3IEBAIGZhc3QvZG9tL2Ns
aWVudC13aWR0aC1oZWlnaHQtcXVpcmtzLmh0bWwKIGZhc3QvZG9tL2NsaWVudC13aWR0aC1oZWln
aHQuaHRtbAogZmFzdC9kb20vY3NzVGFyZ2V0LWNyYXNoLmh0bWwKIGZhc3QvZG9tL2ZyYW1lLWxv
YWRpbmctdmlhLWRvY3VtZW50LXdyaXRlLmh0bWwKK2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Vycm9y
Lmh0bWwKIGZhc3QvZG9tL2dldEJvdW5kaW5nQ2xpZW50UmVjdC5odG1sCiBmYXN0L2RvbS9udWxs
LWRvY3VtZW50LWxvY2F0aW9uLXB1dC1jcmFzaC5odG1sCiBmYXN0L2RvbS9udWxsLWRvY3VtZW50
LWxvY2F0aW9uLXJlcGxhY2UtY3Jhc2guaHRtbAo=
</data>
<flag name="review"
          id="20218"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="20220"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39166</attachid>
            <date>2009-09-07 15:55:21 -0700</date>
            <delta_ts>2009-09-07 18:03:43 -0700</delta_ts>
            <desc>Patch 5 for bug 28264</desc>
            <filename>addMockGeolocationService5.txt</filename>
            <type>text/plain</type>
            <size>64370</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODEzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjQgQEAKKzIwMDktMDktMDYgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZHMgYSBtb2NrIEdlb2xvY2F0aW9uIHNlcnZpY2UuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIHBy
b3ZpZGUgcHJlZGljdGFibGUgYmVoYXZpb3Igb2YgdGhlCisgICAgICAgIEdlb2xvY2F0aW9uIEFQ
SSBmb3IgdXNlIGluIExheW91dFRlc3RzLiBMYXRlciBjaGFuZ2VzIHdpbGwgaW50ZWdyYXRlIHRo
ZSB0aGUgbW9jaworICAgICAgICBHZW9sb2NhdGlvbiBzZXJ2aWNlIHdpdGggRHVtcFJlbmRlclRy
ZWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODI2
NAorCisgICAgICAgIFRoZSBtb2NrIEdlb2xvY2F0aW9uIHNlcnZpY2UgcmV0dXJucyBhIGZpeGVk
IHBvc2l0aW9uIG9yIGVycm9yLiBUaGlzIHBvc2l0aW9uIG9yIGVycm9yIGNhbiBiZQorICAgICAg
ICBzZXQgdGhyb3VnaCBzdGF0aWMgbWV0aG9kcyBvbiB0aGUgR2VvbG9jYXRpb25TZXJ2aWNlIGNs
YXNzLiBUaGUgcG9zaXRpb24gb3IgZXJyb3IgaXMgc2hhcmVkCisgICAgICAgIGJldHdlZW4gYWxs
IGluc3RhbmNlcyBvZiB0aGUgbW9jayBHZW9sb2NhdGlvbiBzZXJ2aWNlLgorCisgICAgICAgIElt
cGxlbWVudGF0aW9uIGRldGFpbHMuCisgICAgICAgIFRoZSBHZW9sb2NhdGlvblNlcnZpY2Ugb2Jq
ZWN0IG1haW50YWlucyBhIHBvaW50ZXIgdG8gYSBmYWN0b3J5IGZ1bmN0aW9uIHdoaWNoIGl0IHVz
ZXMgdG8gY3JlYXRlCisgICAgICAgIEdlb2xvY2F0aW9uIHNlcnZpY2UgaW5zdGFuY2VzLiBFYWNo
IHBsYXRmb3JtIGltcGxlbWVudGluZyBHZW9sb2NhdGlvbiBzZXRzIHRoaXMgcG9pbnRlcgorICAg
ICAgICB0byB0aGUgZmFjdG9yeSBmdW5jdGlvbiBmb3IgdGhlaXIgcGxhdGZvcm0ncyBpbXBsZW1l
bnRhdGlvbi4gV2hlbiB0aGUgbW9jayBHZW9sb2NhdGlvbiBzZXJ2aWNlCisgICAgICAgIGlzIGFj
dGl2YXRlZCwgdGhlIGZhY3RvcnkgZnVuY3Rpb24gcG9pbnRlciBpcyByZXNldCB0byB0aGUgZmFj
dG9yeSBmdW5jdGlvbiBmb3IgdGhlIG1vY2sgc2VydmljZS4KKworICAgICAgICBUZXN0OiBmYXN0
L2RvbS9HZW9sb2NhdGlvbi9lcnJvci5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmJhc2UuZXhw
OiBNb2RpZmllZC4gRXhwb3J0cyBHZW9sb2NhdGlvblNlcnZpY2VNb2NrIG1ldGhvZHMuCisgICAg
ICAgICogR05VTWFrZWZpbGUuYW06IE1vZGlmaWVkLiBBZGRlZCBHZW9sb2NhdGlvblNlcnZpY2VN
b2NrIGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogTW9kaWZpZWQuIEFkZGVkIEdlb2xv
Y2F0aW9uU2VydmljZU1vY2sgZmlsZXMuCisgICAgICAgICogV2ViQ29yZS5wcm86IE1vZGlmaWVk
LiBBZGRlZCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrIGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOiBNb2RpZmllZC4gQWRkZWQgR2VvbG9jYXRpb25TZXJ2aWNl
TW9jayBmaWxlcy4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJv
cHM6IE1vZGlmaWVkLiBBZGRlZCBtb2NrIGRpcmVjdG9yeSB0byBpbmNsdWRlcy4KKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IE1vZGlmaWVkLiBBZGRlZCBHZW9s
b2NhdGlvblNlcnZpY2VNb2NrIGZpbGVzIGFuZCBleHBvcnRzIHNvbWUgaGVhZGVycy4KKyAgICAg
ICAgKiBXZWJDb3JlU291cmNlcy5ia2w6IE1vZGlmaWVkLiBBZGRlZCBHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrIGZpbGVzLgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6IE1vZGlmaWVkLiBG
aXhlZCBjb21tZW50LgorICAgICAgICAqIHBhZ2UvR2VvbG9jYXRpb24uY3BwOiBNb2RpZmllZC4K
KyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpzZXRJc0FsbG93ZWQpOiBNb2RpZmllZC4g
Rml4ZWQgZXJyb3Igc3RyaW5nLgorICAgICAgICAqIHBsYXRmb3JtL0dlb2xvY2F0aW9uU2Vydmlj
ZS5jcHA6IE1vZGlmaWVkLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlR2VvbG9jYXRpb25TZXJ2
aWNlTnVsbCk6IEFkZGVkLiBSZXR1cm5zIG51bGwgaW4gcGxhY2Ugb2YgYSBHZW9sb2NhdGlvbiBz
ZXJ2aWNlLiBVc2VkIHRvIGF2b2lkIGxpbmsgZXJyb3JzIG9uIHBsYXRmb3JtcyB3aGVyZSBHZW9s
b2NhdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlv
blNlcnZpY2U6OmNyZWF0ZSk6IEFkZGVkLiBVc2VzIHRoZSBmYWN0b3J5IGZ1bmN0aW9uIHBvaW50
ZXIgdG8gY3JlYXRlIGEgR2VvbG9jYXRpb24gc2VydmljZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAg
ICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZTo6dXNlTW9jayk6IEFkZGVkLiBDb25maWd1
cmVzIHRoZSBHZW9sb2NhdGlvblNlcnZpZSB0byB1c2UgdGhlIG1vY2sgaW1wbGVtZW50YXRpb24u
CisgICAgICAgICogcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmg6IE1vZGlmaWVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21vY2s6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21vY2svR2Vv
bG9jYXRpb25TZXJ2aWNlTW9jay5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9j
YXRpb25TZXJ2aWNlTW9jazo6Y3JlYXRlKTogQWRkZWQuIENyZWF0ZXMgYSBHZW9sb2NhdGlvblNl
cnZpY2VNb2NrIG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZU1v
Y2s6Okdlb2xvY2F0aW9uU2VydmljZU1vY2spOiBBZGRlZC4gQ29uc3RydWN0b3IuCisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjp+R2VvbG9jYXRpb25TZXJ2aWNlTW9j
ayk6IEFkZGVkLiBEZXN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2
aWNlTW9jazo6c2V0UG9zaXRpb24pOiBBZGRlZC4gU2V0cyB0aGUgcG9zaXRpb24gdGhhdCB3aWxs
IGJlIHJldHVybmVkIGJ5IHRoZSBvYmplY3QuCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlv
blNlcnZpY2VNb2NrOjpzZXRFcnJvcik6IEFkZGVkLiBTZXRzIHRoZSBlcnJvciB0aGF0IHdpbGwg
YmUgcmV0dXJuZWQgYnkgdGhlIG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9u
U2VydmljZU1vY2s6OnN0YXJ0VXBkYXRpbmcpOiBBZGRlZC4gR2VvbG9jYXRpb25TZXJ2aWNlIGlt
cGxlbWVudGF0aW9uLiBTdGFydHMgdGhlIHNlcnZpY2UuCisgICAgICAgIChXZWJDb3JlOjpHZW9s
b2NhdGlvblNlcnZpY2VNb2NrOjpzdG9wVXBkYXRpbmcpOiBBZGRlZC4gR2VvbG9jYXRpb25TZXJ2
aWNlIGltcGxlbWVudGF0aW9uLiBTdG9wcyB0aGUgc2VydmljZS4KKyAgICAgICAgKFdlYkNvcmU6
Okdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnRpbWVyRmlyZWQpOiBBZGRlZC4gVXNlZCB0byBwcm92
aWRlIGFuIGFzeW5jaHJvbm91cyBjYWxsYmFjayB3aGVuIHRoZSBzZXJ2aWNlIGlzIHN0YXJ0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjptYWtlR2VvbG9jYXRp
b25DYWxsYmFja0Zyb21BbGxJbnN0YW5jZXMpOiBBZGRlZC4gVXNlZCB0byBjYWxsIGJhY2sgd2hl
biB0aGUgcG9zaXRpb24gb3IgZXJyb3IgaXMgdXBkYXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okdl
b2xvY2F0aW9uU2VydmljZU1vY2s6Om1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrKTogQWRkZWQuIFVz
ZWQgdG8gY2FsbCBiYWNrIHdoZW4gdGhlIHNlcnZpY2Ugc3RhcnRzLgorICAgICAgICAoV2ViQ29y
ZTo6R2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6aW5pdFN0YXRpY3MpOiBBZGRlZC4gSW5pdGlhbGl6
ZXMgc3RhdGljcyBtZW1iZXJzIHdpdGggY29uc3RydWN0b3JzLgorICAgICAgICAoV2ViQ29yZTo6
R2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6Y2xlYW5VcFN0YXRpY3MpOiBBZGRlZC4gQ2xlYW5zIHVw
IHN0YXRpYyBtZW1iZXJzIHdpdGggY29uc3RydWN0b3JzLgorICAgICAgICAqIHBsYXRmb3JtL21v
Y2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okdl
b2xvY2F0aW9uU2VydmljZU1vY2s6Omxhc3RQb3NpdGlvbik6IEFkZGVkLiBSZXR1cm5zIHRoZSBm
aXhlZCBwb3NpdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZU1vY2s6
Omxhc3RFcnJvcik6IEFkZGVkLiBSZXR1cm5zIHRoZSBmaXhlZCBlcnJvci4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvR2VvbG9jYXRpb25TZXJ2aWNlR3RrLmNwcDogTW9kaWZpZWQuCisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2VHdGs6OmNyZWF0ZSk6IEFkZGVkLiBDcmVhdGVz
IGFuIGluc3RhbmNlIG9mIEdlb2xvY2F0aW9uU2VydmljZUd0ay4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvR2VvbG9jYXRpb25TZXJ2aWNlR3RrLmg6IE1vZGlmaWVkLgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9HZW9sb2NhdGlvblNlcnZpY2VNYWMuaDogTW9kaWZpZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL0dlb2xvY2F0aW9uU2VydmljZU1hYy5tbTogTW9kaWZpZWQuCisgICAgICAgIChX
ZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2VNYWM6OmNyZWF0ZSk6IEFkZGVkLiBDcmVhdGVzIGFu
IGluc3RhbmNlIG9mIEdlb2xvY2F0aW9uU2VydmljZU1hYy4KKwogMjAwOS0wOS0wNyAgRHJldyBX
aWxzb24gIDxhdHdpbHNvbkBnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQg
Zml4LgpJbmRleDogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA0ODEzNykKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUu
YW0JKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAgd2ViY29yZV9jcHBmbGFncyArPSBc
CiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnIFwKIAkt
SSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZyBcCiAJLUkkKHNy
Y2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy94Ym0gXAorCS1JJChzcmNkaXIp
L1dlYkNvcmUvcGxhdGZvcm0vbW9jayBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL3RleHQgXAogCS1JJChzcmNk
aXIpL1dlYkNvcmUvcGx1Z2lucyBcCkBAIC0xMzk1LDYgKzEzOTYsOCBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVdlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oIFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L01JTUVUeXBlUmVnaXN0cnkuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0
cnkuaCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3Bw
IFwKKwlXZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oIFwKIAlX
ZWJDb3JlL3BsYXRmb3JtL05vdEltcGxlbWVudGVkLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vUGFz
dGVib2FyZC5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIFwK
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dl
YkNvcmUuYmFzZS5leHAJKHJldmlzaW9uIDQ4MTM3KQorKysgV2ViQ29yZS9XZWJDb3JlLmJhc2Uu
ZXhwCSh3b3JraW5nIGNvcHkpCkBAIC00NDIsNiArNDQyLDggQEAgX19aTjdXZWJDb3JlMjFXaW5k
b3dzTGF0aW4xRW5jb2RpbmdFdgogX19aTjdXZWJDb3JlMjFmaW5kRXZlbnRXaXRoS2V5U3RhdGVF
UE5TXzVFdmVudEUKIF9fWk43V2ViQ29yZTIxaXNCYWNrRm9yd2FyZExvYWRUeXBlRU5TXzEzRnJh
bWVMb2FkVHlwZUUKIF9fWk43V2ViQ29yZTIxcmVwb3J0VGhyZWFkVmlvbGF0aW9uRVBLY05TXzIw
VGhyZWFkVmlvbGF0aW9uUm91bmRFCitfX1pON1dlYkNvcmUyMkdlb2xvY2F0aW9uU2VydmljZU1v
Y2sxMXNldFBvc2l0aW9uRU4zV1RGMTBQYXNzUmVmUHRySU5TXzExR2VvcG9zaXRpb25FRUUKK19f
Wk43V2ViQ29yZTIyR2VvbG9jYXRpb25TZXJ2aWNlTW9jazhzZXRFcnJvckVOM1dURjEwUGFzc1Jl
ZlB0cklOU18xM1Bvc2l0aW9uRXJyb3JFRUUKIF9fWk43V2ViQ29yZTIyU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDI2Y2FuU3VzcGVuZEFjdGl2ZURPTU9iamVjdHNFdgogX19aTjdXZWJDb3JlMjJhcHBs
aWNhdGlvbklzQXBwbGVNYWlsRXYKIF9fWk43V2ViQ29yZTIyY3JlYXRlRnJhZ21lbnRGcm9tVGV4
dEVQTlNfNVJhbmdlRVJLTlNfNlN0cmluZ0UKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA0ODEzNykKKysrIFdl
YkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0yNjA3LDYgKzI2MDcsOCBAQAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL0xvZ2dpbmcuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
TUlNRVR5cGVSZWdpc3RyeS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL01JTUVUeXBlUmVn
aXN0cnkuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VN
b2NrLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VN
b2NrLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL05vdEltcGxlbWVudGVkLmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL1Bhc3RlYm9hcmQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUGxh
dGZvcm1LZXlib2FyZEV2ZW50LmgnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA0ODEzNykKKysrIFdlYkNvcmUv
V2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTIxMiw2ICsyMTIsNyBAQCBJTkNMVURFUEFU
SCA9IFwKICAgICAkJFBXRC9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzIFwKICAgICAkJFBXRC9w
bGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zIFwKICAgICAkJFBXRC9wbGF0Zm9ybS9pbWFnZS1k
ZWNvZGVycyBcCisgICAgJCRQV0QvcGxhdGZvcm0vbW9jayBcCiAgICAgJCRQV0QvcGxhdGZvcm0v
bmV0d29yayBcCiAgICAgJCRQV0QvcGxhdGZvcm0vc3FsIFwKICAgICAkJFBXRC9wbGF0Zm9ybS90
ZXh0IFwKQEAgLTExODgsNiArMTE4OSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL0xp
bmtIYXNoLmNwcCBcCiAgICAgcGxhdGZvcm0vTG9nZ2luZy5jcHAgXAogICAgIHBsYXRmb3JtL01J
TUVUeXBlUmVnaXN0cnkuY3BwIFwKKyAgICBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2Vydmlj
ZU1vY2suY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
QmFzZS5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvQ3JlZGVudGlhbC5jcHAgXAogICAgIHBs
YXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwIFwKQEAgLTE4MTksNiArMTgyMSw3IEBAIEhFQURF
UlMgKz0gXAogICAgIHBsYXRmb3JtL0RyYWdJbWFnZS5oIFwKICAgICBwbGF0Zm9ybS9GaWxlQ2hv
b3Nlci5oIFwKICAgICBwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaCBcCisgICAgcGxhdGZv
cm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0JpdG1hcEltYWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmggXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29y
ZVNvdXJjZXMuYmtsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCShy
ZXZpc2lvbiA0ODEzNykKKysrIFdlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCSh3b3JraW5nIGNv
cHkpCkBAIC04MTcsNiArODE3LDcgQEAgVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBsaXN0IG9mIGZp
bGVzIG5lZQogICAgICAgICBwbGF0Zm9ybS9MaW5rSGFzaC5jcHAKICAgICAgICAgcGxhdGZvcm0v
TG9nZ2luZy5jcHAKICAgICAgICAgcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKKyAgICAg
ICAgcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcAogICAgICAgICBwbGF0
Zm9ybS90ZXh0L1JlZ3VsYXJFeHByZXNzaW9uLmNwcAogICAgICAgICBwbGF0Zm9ybS9TY3JvbGxi
YXIuY3BwCiAgICAgICAgIHBsYXRmb3JtL1Njcm9sbGJhclRoZW1lQ29tcG9zaXRlLmNwcApJbmRl
eDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA0ODEzNykKKysr
IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAg
LTE3MDY4LDExICsxNzA2OCwxMSBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxTZXR0aW5n
cy5oIgogCQkJCT4KIAkJCTwvRmlsZT4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlCisJ
CQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxVc2VyU2NyaXB0LmgiCiAJCQkJPgog
CQkJPC9GaWxlPgotICAgICAgICAgICAgICAgICAgICAgICAgPEZpbGUKKwkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwYWdlXFVzZXJTY3JpcHRUeXBlcy5oIgogCQkJCT4KIAkJCTwvRmls
ZT4KQEAgLTIxNzU5LDYgKzIxNzU5LDE4IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQk8L0Zp
bHRlcj4KKwkJCTxGaWx0ZXIKKwkJCQlOYW1lPSJtb2NrIgorCQkJCT4KKwkJCQk8RmlsZQorCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG1vY2tcR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5j
cHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwbGF0Zm9ybVxtb2NrXEdlb2xvY2F0aW9uU2VydmljZU1vY2suaCIKKwkJCQkJPgorCQkJCTwv
RmlsZT4KKwkJCTwvRmlsdGVyPgogCQk8L0ZpbHRlcj4KIAkJPEZpbHRlcgogCQkJTmFtZT0iY3Nz
IgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMJ
KHJldmlzaW9uIDQ4MTM3KQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29tbW9u
LnZzcHJvcHMJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBACiAJPgogCTxUb29sCiAJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZx
dW90OyQoUHJvamVjdERpcikuLlwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5JnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxhY2Nlc3NpYmlsaXR5XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdl
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlkZ2VcYyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cY3NzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxlZGl0aW5nJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHJlbmRlcmluZ1xzdHlsZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3NcanMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRvbSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cZG9tXGRlZmF1bHQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGhpc3RvcnkmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0
bWxcY2FudmFzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxpbnNwZWN0b3ImcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9h
ZGVyXGFwcGNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXJjaGl2ZSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hpdmVcY2YmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXGxvYWRlclxpY29uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxu
b3RpZmljYXRpb25zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxwYWdlXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ccGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXHBsYXRmb3JtXHNxbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZv
cm1cd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrXHdpbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ccGxhdGZvcm1cY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBs
YXRmb3JtXGdyYXBoaWNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFw
aGljc1xvcGVudHlwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhp
Y3NcdHJhbnNmb3JtcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cdGV4dCZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Ncd2luJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlx4bWwmcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXG9i
alxXZWJDb3JlXERlcml2ZWRTb3VyY2VzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbHVn
aW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbHVnaW5zXHdpbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cc3ZnXGdyYXBoaWNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxz
dmdcZ3JhcGhpY3NcZmlsdGVycyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlx3bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN0
b3JhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdvcmtlcnMmcXVvdDs7JnF1b3Q7JChX
ZWJLaXRPdXRwdXREaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXGlu
Y2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilcaW5jbHVkZVxKYXZh
U2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilcaW5jbHVkZVxwcml2YXRl
XEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxGb3J3YXJkaW5nSGVh
ZGVycyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZSZxdW90OzsmcXVv
dDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2Vi
S2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1
b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcaWN1JnF1b3Q7OyZxdW90OyQoV2ViS2l0
TGlicmFyaWVzRGlyKVxpbmNsdWRlXGljb252JnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxpbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxp
bmNsdWRlXHNxbGl0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxD
b3JlRm91bmRhdGlvblxPU1hDb21wYXRpYmlsaXR5SGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktp
dExpYnJhcmllc0RpcilcSW5jbHVkZVxDb3JlRm91bmRhdGlvblxPU1hDb21wYXRpYmlsaXR5SGVh
ZGVyc1xHTlVDb21wYXRpYmlsaXR5JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcYW5p
bWF0aW9uJnF1b3Q7IgorCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDskKFBy
b2plY3REaXIpLi5cJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYWNj
ZXNzaWJpbGl0eVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGNzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZWRpdGluZyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccmVuZGVyaW5nJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJp
bmdcc3R5bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGpzJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxkb20mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRvbVxk
ZWZhdWx0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxoaXN0b3J5JnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxodG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sXGNhbnZh
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caW5zcGVjdG9yJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxsb2FkZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcHBj
YWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hpdmUmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxsb2FkZXJcaWNvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbm90aWZpY2F0
aW9ucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFnZSZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGFnZVxhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2Vc
d2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGxhdGZvcm1cYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxwbGF0Zm9ybVxtb2NrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxzcWwm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHdpbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGxhdGZvcm1cbmV0d29yayZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
cGxhdGZvcm1cbmV0d29ya1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
XGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljcyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Ncb3BlbnR5cGUmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHRyYW5zZm9ybXMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHRleHQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHBsYXRmb3JtXGdyYXBoaWNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ceG1s
JnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNl
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGx1Z2luc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xncmFw
aGljcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXGdyYXBoaWNzXGZpbHRlcnMmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
d21sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdG9yYWdlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlx3b3JrZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxpbmNsdWRl
JnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1
b3Q7JChXZWJLaXRPdXRwdXREaXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7
JChXZWJLaXRPdXRwdXREaXIpXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5cRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJL
aXRMaWJyYXJpZXNEaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIp
XGluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVk
ZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGly
KVxpbmNsdWRlXGljdSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxp
Y29udiZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxwdGhyZWFkcyZx
dW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxzcWxpdGUmcXVvdDs7JnF1
b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1
b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcQ29yZUZvdW5kYXRpb25cT1NYQ29tcGF0
aWJpbGl0eUhlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVc
Q29yZUZvdW5kYXRpb25cT1NYQ29tcGF0aWJpbGl0eUhlYWRlcnNcR05VQ29tcGF0aWJpbGl0eSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXGFuaW1hdGlvbiZxdW90OyIKIAkJUHJlcHJv
Y2Vzc29yRGVmaW5pdGlvbnM9Il9fV0lOMzJfXztXRUJDT1JFX0NPTlRFWFRfTUVOVVM7RU5BQkxF
X0NIQU5ORUxfTUVTU0FHSU5HO0VOQUJMRV9EQVRBQkFTRTtFTkFCTEVfREFUQUdSSUQ7RU5BQkxF
X0RBVEFMSVNUO0VOQUJMRV9ET01fU1RPUkFHRTtFTkFCTEVfRVZFTlRTT1VSQ0U7RU5BQkxFX0lD
T05EQVRBQkFTRTtFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TO0VOQUJMRV9SVUJZO0VO
QUJMRV9TSEFSRURfV09SS0VSUztFTkFCTEVfU1ZHO0VOQUJMRV9TVkdfQU5JTUFUSU9OO0VOQUJM
RV9TVkdfQVNfSU1BR0U7RU5BQkxFX1NWR19GT05UUztFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNU
O0VOQUJMRV9TVkdfVVNFO0VOQUJMRV9XRUJfU09DS0VUUztFTkFCTEVfV09SS0VSUztFTkFCTEVf
WFBBVEg7RU5BQkxFX1hTTFQiCiAJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIgogCQlQcmVjb21w
aWxlZEhlYWRlclRocm91Z2g9IldlYkNvcmVQcmVmaXguaCIKSW5kZXg6IFdlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA0ODEzNykKKysrIFdlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMDE1
LDYgKzEwMTUsOCBAQAogCQk1NEM1MEY3QjBFODAxREYzMDA5ODMyQTAgLyogWE1MVG9rZW5pemVy
TGlieG1sMi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NEM1MEY3QTBFODAxREYzMDA5ODMyQTAgLyogWE1MVG9rZW5pemVyTGlieG1sMi5jcHAgKi87
IH07CiAJCTU1MEEwQkM5MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM3MDg1RjYw
MzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCAqLzsgfTsKIAkJNTUwQTBCQ0EwODVGNjAz
OTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWRO
YW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
NTlDNzdGMkExMDU0NUIzQjAwNTA2MTA0IC8qIEdlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTlDNzdGMjgxMDU0
NUIzQjAwNTA2MTA0IC8qIEdlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwICovOyB9OworCQk1OUM3
N0YyQjEwNTQ1QjNCMDA1MDYxMDQgLyogR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTlDNzdGMjkxMDU0NUIzQjAw
NTA2MTA0IC8qIEdlb2xvY2F0aW9uU2VydmljZU1vY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1RDE1RTNBQjBGOUU2QUMxMDA5RTBFM0YgLyog
WE1MVG9rZW5pemVyU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNUQxNUUzQTkwRjlFNkFDMTAwOUUwRTNGIC8qIFhNTFRva2VuaXplclNjb3Bl
LmNwcCAqLzsgfTsKIAkJNUQxNUUzQUMwRjlFNkFDMTAwOUUwRTNGIC8qIFhNTFRva2VuaXplclNj
b3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDE1
RTNBQTBGOUU2QUMxMDA5RTBFM0YgLyogWE1MVG9rZW5pemVyU2NvcGUuaCAqLzsgfTsKIAkJNUQ4
NzRGMTMwRDE2MUQzMjAwNzk2QzNCIC8qIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTIyN0REMEFG
NTg5QUQwMEQ0ODMyNCAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgKi87IH07CkBA
IC00NjE0LDcgKzQ2MTYsNyBAQAogCQlGOTE2QzQ4RTBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY5MTZDNDhDMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1
ZXN0UHJvZ3Jlc3NFdmVudC5oICovOyB9OwogCQlGOUYwRUQ3QTBEQjUwQ0EyMDBEMTZEQjkgLyog
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGOUYwRUQ3NzBEQjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50LmggKi87IH07CiAJCUZFNkZENDg3MEY2NzZFNTcwMDA5Mjg3MyAv
KiBDb29yZGluYXRlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGRTZGRDQ4NDBGNjc2RTU3MDAwOTI4NzMgLyogQ29vcmRpbmF0ZXMuY3BwICovOyB9
OwotCQlGRTZGRDQ4ODBGNjc2RTU3MDAwOTI4NzMgLyogQ29vcmRpbmF0ZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNkZENDg1MEY2NzZFNTcwMDA5
Mjg3MyAvKiBDb29yZGluYXRlcy5oICovOyB9OworCQlGRTZGRDQ4ODBGNjc2RTU3MDAwOTI4NzMg
LyogQ29vcmRpbmF0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZFNkZENDg1MEY2NzZFNTcwMDA5Mjg3MyAvKiBDb29yZGluYXRlcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFNkZENDhEMEY2NzZF
OTMwMDA5Mjg3MyAvKiBKU0Nvb3JkaW5hdGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNkZENDhCMEY2NzZFOTMwMDA5Mjg3MyAvKiBKU0Nvb3Jk
aW5hdGVzLmNwcCAqLzsgfTsKIAkJRkU2RkQ0OEUwRjY3NkU5MzAwMDkyODczIC8qIEpTQ29vcmRp
bmF0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZF
NkZENDhDMEY2NzZFOTMwMDA5Mjg3MyAvKiBKU0Nvb3JkaW5hdGVzLmggKi87IH07CiAJCUZFNzAw
REQxMEY5MkQ4MUEwMDhFMkJGRSAvKiBKU0Nvb3JkaW5hdGVzQ3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNzAwREQwMEY5MkQ4MUEwMDhF
MkJGRSAvKiBKU0Nvb3JkaW5hdGVzQ3VzdG9tLmNwcCAqLzsgfTsKQEAgLTQ2MjYsOSArNDYyOCw5
IEBACiAJCUZFODBEN0M1MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9sb2NhdGlvbi5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTgwRDdCNzBFOUMxRjI1
MDAwRDZGNzUgLyogR2VvbG9jYXRpb24uY3BwICovOyB9OwogCQlGRTgwRDdDNjBFOUMxRjI1MDAw
RDZGNzUgLyogR2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZFODBEN0I4MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9sb2NhdGlvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFODBEN0M4
MEU5QzFGMjUwMDBENkY3NSAvKiBHZW9wb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTgwRDdCQTBFOUMxRjI1MDAwRDZGNzUgLyogR2Vv
cG9zaXRpb24uY3BwICovOyB9OwotCQlGRTgwRDdDOTBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9z
aXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZF
ODBEN0JCMEU5QzFGMjUwMDBENkY3NSAvKiBHZW9wb3NpdGlvbi5oICovOyB9OworCQlGRTgwRDdD
OTBFOUMxRjI1MDAwRDZGNzUgLyogR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEN0JCMEU5QzFGMjUwMDBENkY3NSAvKiBHZW9w
b3NpdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUZFODBEN0NCMEU5QzFGMjUwMDBENkY3NSAvKiBQb3NpdGlvbkNhbGxiYWNrLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTgwRDdCRDBFOUMxRjI1
MDAwRDZGNzUgLyogUG9zaXRpb25DYWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUZFODBEN0NEMEU5QzFGMjUwMDBENkY3NSAvKiBQb3Np
dGlvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRTgwRDdCRjBFOUMxRjI1MDAwRDZGNzUgLyogUG9zaXRpb25FcnJvci5oICovOyB9OworCQlG
RTgwRDdDRDBFOUMxRjI1MDAwRDZGNzUgLyogUG9zaXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU4MEQ3QkYwRTlDMUYyNTAwMEQ2Rjc1
IC8qIFBvc2l0aW9uRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlGRTgwRDdDRjBFOUMxRjI1MDAwRDZGNzUgLyogUG9zaXRpb25FcnJvckNh
bGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RTgwRDdDMTBFOUMxRjI1MDAwRDZGNzUgLyogUG9zaXRpb25FcnJvckNhbGxiYWNrLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkU4MEQ3RDEwRTlD
MUYyNTAwMEQ2Rjc1IC8qIFBvc2l0aW9uT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU4MEQ3QzMwRTlDMUYyNTAwMEQ2Rjc1IC8qIFBvc2l0
aW9uT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUZFODBEQTYzMEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBEQTVGMEU5QzQ3
MDMwMDBENkY3NSAvKiBKU0dlb2xvY2F0aW9uLmNwcCAqLzsgfTsKQEAgLTYxNjYsNiArNjE2OCw4
IEBACiAJCTU0QzUwRjdBMEU4MDFERjMwMDk4MzJBMCAvKiBYTUxUb2tlbml6ZXJMaWJ4bWwyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTFRva2VuaXplckxpYnht
bDIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTBBMEJDNzA4NUY2MDM5MDA3
MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBRdWFsaWZpZWROYW1lLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTU1MEEwQkM4MDg1
RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1YWxpZmllZE5hbWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CisJCTU5Qzc3RjI4MTA1
NDVCM0IwMDUwNjEwNCAvKiBHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEdlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwOyBwYXRo
ID0gbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTlDNzdGMjkxMDU0NUIzQjAwNTA2MTA0IC8qIEdlb2xvY2F0aW9uU2VydmljZU1v
Y2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gR2VvbG9jYXRpb25TZXJ2aWNl
TW9jay5oOyBwYXRoID0gbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTVEMTVFM0E5MEY5RTZBQzEwMDlFMEUzRiAvKiBYTUxUb2tlbml6
ZXJTY29wZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYTUxUb2tl
bml6ZXJTY29wZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEMTVFM0FBMEY5
RTZBQzEwMDlFMEUzRiAvKiBYTUxUb2tlbml6ZXJTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBYTUxUb2tlbml6ZXJTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1RDkyNUI2NTBGNjRENEREMDBCODQ3RjAgLyogU2Nyb2xsQmVoYXZpb3IuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsQmVoYXZpb3IuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA1NzYsNiArMTA1ODAsMTUgQEAKIAkJCXBh
dGggPSB3ZWJzb2NrZXRzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTlD
NzdGMTAxMDU0NTkxQzAwNTA2MTA0IC8qIG1vY2sgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCTU5Qzc3RjI4MTA1NDVCM0IwMDUwNjEwNCAvKiBHZW9sb2Nh
dGlvblNlcnZpY2VNb2NrLmNwcCAqLywKKwkJCQk1OUM3N0YyOTEwNTQ1QjNCMDA1MDYxMDQgLyog
R2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oICovLAorCQkJKTsKKwkJCW5hbWUgPSBtb2NrOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNURBNUUwRjkxMDJCOTUwNDAwMDg4Q0Y5
IC8qIFdlYlNvY2tldHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KApAQCAtMTQzNzAsNiArMTQzODMsNyBAQAogCQlCQ0YxQTVCQTA5NzgzMjA5MDA2MUExMjMgLyog
cGxhdGZvcm0gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJ
CTU5Qzc3RjEwMTA1NDU5MUMwMDUwNjEwNCAvKiBtb2NrICovLAogCQkJCTQ5RTkxMkE0MEVGQUM4
RTYwMDlEMENBRiAvKiBhbmltYXRpb24gKi8sCiAJCQkJMUFFNDJGNjcwQUE0QjhDQjAwQzg2MTJE
IC8qIGNmICovLAogCQkJCUIyQTAxNTkxMEFGNkNENTMwMDZCQ0UwRSAvKiBncmFwaGljcyAqLywK
QEAgLTE3NTU4LDYgKzE3NTcyLDcgQEAKIAkJCQk1MTBENEEzODEwMzE2NUVFMDA0OUVBNTQgLyog
U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUFCQUUxQjEw
M0MxOEZGMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxQUJBRTFFMTAzQzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTU5Qzc3RjJCMTA1NDVCM0IwMDUwNjEwNCAvKiBHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE5NjUzLDYgKzE5NjY4LDcgQEAKIAkJCQk1MTBE
NEEzMzEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJyb3JCYXNlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxMEQ0QTM2MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGVCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQUJBRTFGMTAzQzE5MTMwMDhDNTI2MCAv
KiBTb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1OUM3N0Yy
QTEwNTQ1QjNCMDA1MDYxMDQgLyogR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgJKHJldmlzaW9uIDQ4MTM3KQorKysgV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUsNyArMTc1LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmxvYXQgdmFsdWUsIGZsb2F0IHByb3BvcnRpb24sIFNjcm9sbGJhckNvbnRyb2xQYXJ0TWFz
ayk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludEN1c3RvbVNjcm9sbENvcm5lcihHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmKTsKIAotICAgICAgICAvLyBUaGlzIGlzIGFuIGFz
eW5jaHJvbm91cyBjYWxsLiBUaGUgQ2hyb21lQ2xpZW50IGNhbiBkaXNwbGF5IFVJIGFza2luZyB0
aGUgdXNlciBmb3IgcGVybWlzc2lvbgorICAgICAgICAvLyBUaGlzIGNhbiBiZSBlaXRoZXIgYSBz
eW5jaHJvbm91cyBvciBhc3luY2hyb25vdXMgY2FsbC4gVGhlIENocm9tZUNsaWVudCBjYW4gZGlz
cGxheSBVSSBhc2tpbmcgdGhlIHVzZXIgZm9yIHBlcm1pc3Npb24KICAgICAgICAgLy8gdG8gdXNl
IEdlb2xvY29jYXRpb24uIFRoZSBDaHJvbWVDbGllbnQgbXVzdCBjYWxsIEdlb2xvY2F0aW9uOjpz
ZXRTaG91bGRDbGVhckNhY2hlKCkgYXBwcm9wcmlhdGVseS4KICAgICAgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9u
KikgPSAwOwogICAgICAgICAgICAgCkluZGV4OiBXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAJKHJldmlzaW9uIDQ4
MTM3KQorKysgV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTQ1LDcgKzE0NSw3IEBAIHZvaWQgR2VvbG9jYXRpb246OnNldElzQWxsb3dlZChib29sIGFsbG8K
ICAgICAgICAgc3RhcnRUaW1lcnMoKTsKICAgICAgICAgbWFrZVN1Y2Nlc3NDYWxsYmFja3MoKTsK
ICAgICB9IGVsc2UgewotICAgICAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpQb3NpdGlvbkVycm9y
PiBlcnJvciA9IFdlYkNvcmU6OlBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpQ
RVJNSVNTSU9OX0RFTklFRCwgIlVzZXIgZGlzYWxsb3dlZCBHZW9Mb2NhdGlvbiIpOworICAgICAg
ICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpQb3NpdGlvbkVycm9yPiBlcnJvciA9IFdlYkNvcmU6OlBv
c2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgIlVz
ZXIgZGlzYWxsb3dlZCBHZW9sb2NhdGlvbiIpOwogICAgICAgICBoYW5kbGVFcnJvcihlcnJvci5n
ZXQoKSk7CiAgICAgfQogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZp
Y2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNl
LmNwcAkocmV2aXNpb24gNDgxMzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2Vy
dmljZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwLDIzICsyMCwzOSBAQAogICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQogICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25TZXJ2
aWNlLmgiCisjaW5jbHVkZSAiR2VvcG9zaXRpb24uaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvblNl
cnZpY2VNb2NrLmgiCisjaW5jbHVkZSAiUG9zaXRpb25FcnJvci5oIgogCisjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAjaWYgIUVOQUJMRShHRU9MT0NBVElPTikKLUdlb2xvY2F0aW9uU2Vydmlj
ZSogR2VvbG9jYXRpb25TZXJ2aWNlOjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KikK
K0dlb2xvY2F0aW9uU2VydmljZSogY3JlYXRlR2VvbG9jYXRpb25TZXJ2aWNlTnVsbChHZW9sb2Nh
dGlvblNlcnZpY2VDbGllbnQqKQogewogICAgIHJldHVybiAwOwogfQorCitHZW9sb2NhdGlvblNl
cnZpY2U6OkZhY3RvcnlGdW5jdGlvbiogR2VvbG9jYXRpb25TZXJ2aWNlOjpzX2ZhY3RvcnlGdW5j
dGlvbiA9ICZjcmVhdGVHZW9sb2NhdGlvblNlcnZpY2VOdWxsOwogI2VuZGlmCiAKK0dlb2xvY2F0
aW9uU2VydmljZSogR2VvbG9jYXRpb25TZXJ2aWNlOjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNl
Q2xpZW50KiBjbGllbnQpCit7CisgICAgcmV0dXJuICgqc19mYWN0b3J5RnVuY3Rpb24pKGNsaWVu
dCk7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25TZXJ2aWNlOjp1c2VNb2NrKCkKK3sKKyAgICBzX2Zh
Y3RvcnlGdW5jdGlvbiA9ICZHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpjcmVhdGU7Cit9CisKIEdl
b2xvY2F0aW9uU2VydmljZTo6R2VvbG9jYXRpb25TZXJ2aWNlKEdlb2xvY2F0aW9uU2VydmljZUNs
aWVudCogY2xpZW50KQogICAgIDogbV9nZW9sb2NhdGlvblNlcnZpY2VDbGllbnQoY2xpZW50KQog
ewpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5oCShyZXZpc2lvbiA0ODEz
NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU5LDExICs1OSwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3NpdGlvbkNoYW5nZWQo
KTsKICAgICB2b2lkIGVycm9yT2NjdXJyZWQoKTsKIAorICAgIHN0YXRpYyB2b2lkIHVzZU1vY2so
KTsKKwogcHJvdGVjdGVkOgogICAgIEdlb2xvY2F0aW9uU2VydmljZShHZW9sb2NhdGlvblNlcnZp
Y2VDbGllbnQqKTsKIAogcHJpdmF0ZToKICAgICBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIG1f
Z2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50OworCisgICAgdHlwZWRlZiBHZW9sb2NhdGlvblNlcnZp
Y2UqIChGYWN0b3J5RnVuY3Rpb24pKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworICAgIHN0
YXRpYyBGYWN0b3J5RnVuY3Rpb24qIHNfZmFjdG9yeUZ1bmN0aW9uOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2VvbG9jYXRpb25TZXJ2
aWNlR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2d0ay9HZW9sb2NhdGlv
blNlcnZpY2VHdGsuY3BwCShyZXZpc2lvbiA0ODEzNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0dlb2xvY2F0aW9uU2VydmljZUd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDExICszNywx
MyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1HZW9sb2NhdGlv
blNlcnZpY2UqIEdlb2xvY2F0aW9uU2VydmljZTo6Y3JlYXRlKEdlb2xvY2F0aW9uU2VydmljZUNs
aWVudCogY2xpZW50KQorR2VvbG9jYXRpb25TZXJ2aWNlKiBHZW9sb2NhdGlvblNlcnZpY2VHdGs6
OmNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkKIHsKICAgICByZXR1cm4g
bmV3IEdlb2xvY2F0aW9uU2VydmljZUd0ayhjbGllbnQpOwogfQogCitHZW9sb2NhdGlvblNlcnZp
Y2U6OkZhY3RvcnlGdW5jdGlvbiogR2VvbG9jYXRpb25TZXJ2aWNlOjpzX2ZhY3RvcnlGdW5jdGlv
biA9ICZHZW9sb2NhdGlvblNlcnZpY2VHdGs6OmNyZWF0ZTsKKwogR2VvbG9jYXRpb25TZXJ2aWNl
R3RrOjpHZW9sb2NhdGlvblNlcnZpY2VHdGsoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBjbGll
bnQpCiAgICAgOiBHZW9sb2NhdGlvblNlcnZpY2UoY2xpZW50KQogICAgICwgbV9nZW9jbHVlQ2xp
ZW50KDApCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9HZW9sb2NhdGlvblNlcnZpY2VHdGsu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2d0ay9HZW9sb2NhdGlvblNlcnZpY2VH
dGsuaAkocmV2aXNpb24gNDgxMzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2d0ay9HZW9sb2NhdGlv
blNlcnZpY2VHdGsuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIGNsYXNzIEdlb2xvY2F0aW9uU2VydmljZUd0ayA6IHB1YmxpYyBHZW9s
b2NhdGlvblNlcnZpY2UgewogICAgIHB1YmxpYzoKLSAgICAgICAgR2VvbG9jYXRpb25TZXJ2aWNl
R3RrKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworICAgICAgICBzdGF0aWMgR2VvbG9jYXRp
b25TZXJ2aWNlKiBjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7CiAgICAgICAgIH5H
ZW9sb2NhdGlvblNlcnZpY2VHdGsoKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgc3RhcnRVcGRh
dGluZyhQb3NpdGlvbk9wdGlvbnMqKTsKQEAgLTQ0LDYgKzQ0LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBQb3NpdGlvbkVycm9yKiBsYXN0RXJyb3IoKSBjb25zdDsKIAogICAgIHBy
aXZhdGU6CisgICAgICAgIEdlb2xvY2F0aW9uU2VydmljZUd0ayhHZW9sb2NhdGlvblNlcnZpY2VD
bGllbnQqKTsKKwogICAgICAgICB2b2lkIHVwZGF0ZUxvY2F0aW9uSW5mb3JtYXRpb24oKTsKICAg
ICAgICAgdm9pZCBzZXRFcnJvcihQb3NpdGlvbkVycm9yOjpFcnJvckNvZGUsIGNvbnN0IGNoYXIq
IG1lc3NhZ2UpOwogICAgICAgICB2b2lkIHVwZGF0ZVBvc2l0aW9uKCk7CkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL21hYy9HZW9sb2NhdGlvblNlcnZpY2VNYWMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL21hYy9HZW9sb2NhdGlvblNlcnZpY2VNYWMuaAkocmV2aXNpb24gNDgxMzcp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL21hYy9HZW9sb2NhdGlvblNlcnZpY2VNYWMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdl
b2xvY2F0aW9uU2VydmljZU1hYyA6IHB1YmxpYyBHZW9sb2NhdGlvblNlcnZpY2UgewogcHVibGlj
OgotICAgIEdlb2xvY2F0aW9uU2VydmljZU1hYyhHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsK
KyAgICBzdGF0aWMgR2VvbG9jYXRpb25TZXJ2aWNlKiBjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNl
Q2xpZW50Kik7CiAgICAgdmlydHVhbCB+R2VvbG9jYXRpb25TZXJ2aWNlTWFjKCk7CiAgICAgCiAg
ICAgdmlydHVhbCBib29sIHN0YXJ0VXBkYXRpbmcoUG9zaXRpb25PcHRpb25zKik7CkBAIC02MSw2
ICs2MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGVycm9yT2NjdXJyZWQoUGFzc1JlZlB0cjxQb3Np
dGlvbkVycm9yPik7CiAKIHByaXZhdGU6CisgICAgR2VvbG9jYXRpb25TZXJ2aWNlTWFjKEdlb2xv
Y2F0aW9uU2VydmljZUNsaWVudCopOworCiAgICAgUmV0YWluUHRyPENMTG9jYXRpb25NYW5hZ2Vy
PiBtX2xvY2F0aW9uTWFuYWdlcjsKICAgICBSZXRhaW5QdHI8V2ViQ29yZUNvcmVMb2NhdGlvbk9i
c2VydmVyPiBtX29iamNPYnNlcnZlcjsKICAgICAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbWFj
L0dlb2xvY2F0aW9uU2VydmljZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L21hYy9HZW9sb2NhdGlvblNlcnZpY2VNYWMubW0JKHJldmlzaW9uIDQ4MTM3KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvR2VvbG9jYXRpb25TZXJ2aWNlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC02NSwxMSArNjUsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotR2VvbG9jYXRpb25TZXJ2aWNlKiBHZW9sb2NhdGlvblNlcnZpY2U6OmNyZWF0
ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkKK0dlb2xvY2F0aW9uU2VydmljZSog
R2VvbG9jYXRpb25TZXJ2aWNlTWFjOjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBj
bGllbnQpCiB7CiAgICAgcmV0dXJuIG5ldyBHZW9sb2NhdGlvblNlcnZpY2VNYWMoY2xpZW50KTsK
IH0KIAorR2VvbG9jYXRpb25TZXJ2aWNlOjpGYWN0b3J5RnVuY3Rpb24qIEdlb2xvY2F0aW9uU2Vy
dmljZTo6c19mYWN0b3J5RnVuY3Rpb24gPSAmR2VvbG9jYXRpb25TZXJ2aWNlTWFjOjpjcmVhdGU7
CisKIEdlb2xvY2F0aW9uU2VydmljZU1hYzo6R2VvbG9jYXRpb25TZXJ2aWNlTWFjKEdlb2xvY2F0
aW9uU2VydmljZUNsaWVudCogY2xpZW50KQogICAgIDogR2VvbG9jYXRpb25TZXJ2aWNlKGNsaWVu
dCkKICAgICAsIG1fb2JqY09ic2VydmVyKEFkb3B0TlMsIFtbV2ViQ29yZUNvcmVMb2NhdGlvbk9i
c2VydmVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOnRoaXNdKQpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcAkocmV2aXNpb24gMCkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdlb2xvY2F0
aW9uU2VydmljZU1vY2suaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJHZW9s
b2NhdGlvbi5oIgorI2luY2x1ZGUgIkdlb3Bvc2l0aW9uLmgiCisjaW5jbHVkZSAiUG9zaXRpb25F
cnJvci5oIgorI2luY2x1ZGUgIlBvc2l0aW9uT3B0aW9ucy5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0dlb2xvY2F0aW9uU2VydmljZU1vY2s6Okdlb2xvY2F0aW9uU2VydmljZVNldCogR2Vv
bG9jYXRpb25TZXJ2aWNlTW9jazo6c19pbnN0YW5jZXMgPSAwOworUmVmUHRyPEdlb3Bvc2l0aW9u
PiogR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c19sYXN0UG9zaXRpb247CitSZWZQdHI8UG9zaXRp
b25FcnJvcj4qIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNfbGFzdEVycm9yOworCitHZW9sb2Nh
dGlvblNlcnZpY2UqIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OmNyZWF0ZShHZW9sb2NhdGlvblNl
cnZpY2VDbGllbnQqIGNsaWVudCkKK3sKKyAgICBpbml0U3RhdGljcygpOworICAgIHJldHVybiBu
ZXcgR2VvbG9jYXRpb25TZXJ2aWNlTW9jayhjbGllbnQpOworfQorCitHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrOjpHZW9sb2NhdGlvblNlcnZpY2VNb2NrKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCog
Y2xpZW50KQorICAgIDogR2VvbG9jYXRpb25TZXJ2aWNlKGNsaWVudCkKKyAgICAsIG1fdGltZXIo
dGhpcywgJkdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnRpbWVyRmlyZWQpCisgICAgLCBtX2lzQWN0
aXZlKGZhbHNlKQoreworICAgIHNfaW5zdGFuY2VzLT5hZGQodGhpcyk7Cit9CisKK0dlb2xvY2F0
aW9uU2VydmljZU1vY2s6On5HZW9sb2NhdGlvblNlcnZpY2VNb2NrKCkKK3sKKyAgICBHZW9sb2Nh
dGlvblNlcnZpY2VTZXQ6Oml0ZXJhdG9yIGl0ZXIgPSBzX2luc3RhbmNlcy0+ZmluZCh0aGlzKTsK
KyAgICBBU1NFUlQoaXRlciAhPSBzX2luc3RhbmNlcy0+ZW5kKCkpOworICAgIHNfaW5zdGFuY2Vz
LT5yZW1vdmUoaXRlcik7CisgICAgY2xlYW5VcFN0YXRpY3MoKTsKK30KKwordm9pZCBHZW9sb2Nh
dGlvblNlcnZpY2VNb2NrOjpzZXRQb3NpdGlvbihQYXNzUmVmUHRyPEdlb3Bvc2l0aW9uPiBwb3Np
dGlvbikKK3sKKyAgICBpbml0U3RhdGljcygpOworICAgIEdlb2xvY2F0aW9uU2VydmljZTo6dXNl
TW9jaygpOworICAgICpzX2xhc3RQb3NpdGlvbiA9IHBvc2l0aW9uOworICAgICpzX2xhc3RFcnJv
ciA9IDA7CisgICAgbWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2tGcm9tQWxsSW5zdGFuY2VzKCk7Cit9
CisKK3ZvaWQgR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c2V0RXJyb3IoUGFzc1JlZlB0cjxQb3Np
dGlvbkVycm9yPiBlcnJvcikKK3sKKyAgICBpbml0U3RhdGljcygpOworICAgIEdlb2xvY2F0aW9u
U2VydmljZTo6dXNlTW9jaygpOworICAgICpzX2xhc3RFcnJvciA9IGVycm9yOworICAgICpzX2xh
c3RQb3NpdGlvbiA9IDA7CisgICAgbWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2tGcm9tQWxsSW5zdGFu
Y2VzKCk7Cit9CisKK2Jvb2wgR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c3RhcnRVcGRhdGluZyhQ
b3NpdGlvbk9wdGlvbnMqKQoreworICAgIG1faXNBY3RpdmUgPSB0cnVlOworICAgIG1fdGltZXIu
c3RhcnRPbmVTaG90KDApOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEdlb2xvY2F0aW9u
U2VydmljZU1vY2s6OnN0b3BVcGRhdGluZygpCit7CisgICAgbV9pc0FjdGl2ZSA9IGZhbHNlOwor
fQorCit2b2lkIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnRpbWVyRmlyZWQoVGltZXI8R2VvbG9j
YXRpb25TZXJ2aWNlTW9jaz4qIHRpbWVyKQoreworICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRp
bWVyID09ICZtX3RpbWVyKTsKKyAgICBtYWtlR2VvbG9jYXRpb25DYWxsYmFjaygpOworfQorCit2
b2lkIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6Om1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrRnJvbUFs
bEluc3RhbmNlcygpCit7CisgICAgR2VvbG9jYXRpb25TZXJ2aWNlU2V0Ojpjb25zdF9pdGVyYXRv
ciBlbmQgPSBzX2luc3RhbmNlcy0+ZW5kKCk7CisgICAgZm9yIChHZW9sb2NhdGlvblNlcnZpY2VT
ZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBzX2luc3RhbmNlcy0+YmVnaW4oKTsgaXRlciAhPSBl
bmQ7ICsraXRlcikKKyAgICAgICAgKCppdGVyKS0+bWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2soKTsK
K30KKwordm9pZCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjptYWtlR2VvbG9jYXRpb25DYWxsYmFj
aygpCit7CisgICAgaWYgKCFtX2lzQWN0aXZlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
KnNfbGFzdFBvc2l0aW9uKQorICAgICAgICBwb3NpdGlvbkNoYW5nZWQoKTsKKyAgICBlbHNlIGlm
ICgqc19sYXN0RXJyb3IpCisgICAgICAgIGVycm9yT2NjdXJyZWQoKTsKK30KKwordm9pZCBHZW9s
b2NhdGlvblNlcnZpY2VNb2NrOjppbml0U3RhdGljcygpCit7CisgICAgaWYgKHNfaW5zdGFuY2Vz
ID09IDApIHsgCisgICAgICAgIHNfaW5zdGFuY2VzID0gbmV3IEdlb2xvY2F0aW9uU2VydmljZVNl
dDsKKyAgICAgICAgc19sYXN0UG9zaXRpb24gPSBuZXcgUmVmUHRyPEdlb3Bvc2l0aW9uPjsKKyAg
ICAgICAgc19sYXN0RXJyb3IgPSBuZXcgUmVmUHRyPFBvc2l0aW9uRXJyb3I+OworICAgIH0KK30K
Kwordm9pZCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpjbGVhblVwU3RhdGljcygpCit7CisgICAg
aWYgKHNfaW5zdGFuY2VzLT5zaXplKCkgPT0gMCkgeworICAgICAgICBkZWxldGUgc19pbnN0YW5j
ZXM7CisgICAgICAgIHNfaW5zdGFuY2VzID0gMDsKKyAgICAgICAgZGVsZXRlIHNfbGFzdFBvc2l0
aW9uOworICAgICAgICBkZWxldGUgc19sYXN0RXJyb3I7CisgICAgfQorfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2
aWNlTW9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlv
blNlcnZpY2VNb2NrLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL21vY2svR2Vv
bG9jYXRpb25TZXJ2aWNlTW9jay5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDgwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBHZW9sb2Nh
dGlvblNlcnZpY2VNb2NrX2gKKyNkZWZpbmUgR2VvbG9jYXRpb25TZXJ2aWNlTW9ja19oCisKKyNp
bmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2UuaCIKKyNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gVGhpcyBjbGFzcyBw
cm92aWRlcyBhIG1vY2sgaW1wbGVtZW50YXRpb24gb2YgYSBHZW9sb2NhdGlvblNlcnZpY2UgZm9y
IHRlc3RpbmcKKy8vIHB1cnBvc2VzLiBJdCBhbGxvd3MgdGhlIHBvc2l0aW9uIG9yIGVycm9yIHRo
YXQgd2lsbCBiZSByZXBvcnRlZCBieSB0aGlzIGNsYXNzCisvLyB0byBiZSBzZXQgbWFudWFsbHkg
dXNpbmcgdGhlIHNldFBvc2l0aW9uIGFuZCBzZXRFcnJvciBtZXRob2RzLiBPYmplY3RzIG9mCisv
LyB0aGlzIGNsYXNzIGNhbGwgYmFjayB0byB0aGVpciByZXNwZWN0aXZlIEdlb2xvY2F0aW9uU2Vy
dmljZUNsaWVudCB3aXRoIHRoZQorLy8gcG9zaXRpb24gb3IgZXJyb3IgZXZlcnkgdGltZSBlaXRo
ZXIgb2YgdGhlc2UgaXMgdXBkYXRlZC4KK2NsYXNzIEdlb2xvY2F0aW9uU2VydmljZU1vY2sgOiBw
dWJsaWMgR2VvbG9jYXRpb25TZXJ2aWNlIHsKKyAgcHVibGljOgorICAgIHN0YXRpYyBHZW9sb2Nh
dGlvblNlcnZpY2UqIGNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsKKworICAgIEdl
b2xvY2F0aW9uU2VydmljZU1vY2soR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7CisgICAgdmly
dHVhbCB+R2VvbG9jYXRpb25TZXJ2aWNlTW9jaygpOworCisgICAgdmlydHVhbCBib29sIHN0YXJ0
VXBkYXRpbmcoUG9zaXRpb25PcHRpb25zKik7CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGlu
ZygpOworCisgICAgc3RhdGljIHZvaWQgc2V0UG9zaXRpb24oUGFzc1JlZlB0cjxHZW9wb3NpdGlv
bj4gcG9zaXRpb24pOworICAgIHN0YXRpYyB2b2lkIHNldEVycm9yKFBhc3NSZWZQdHI8UG9zaXRp
b25FcnJvcj4gcG9zaXRpb24pOworCisgICAgdmlydHVhbCBHZW9wb3NpdGlvbiogbGFzdFBvc2l0
aW9uKCkgY29uc3QgeyByZXR1cm4gc19sYXN0UG9zaXRpb24tPmdldCgpOyB9CisgICAgdmlydHVh
bCBQb3NpdGlvbkVycm9yKiBsYXN0RXJyb3IoKSBjb25zdCB7IHJldHVybiBzX2xhc3RFcnJvci0+
Z2V0KCk7IH0KKworICBwcml2YXRlOgorICAgIHN0YXRpYyB2b2lkIG1ha2VHZW9sb2NhdGlvbkNh
bGxiYWNrRnJvbUFsbEluc3RhbmNlcygpOworICAgIHZvaWQgbWFrZUdlb2xvY2F0aW9uQ2FsbGJh
Y2soKTsKKworICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxHZW9sb2NhdGlvblNlcnZpY2VNb2Nr
PiopOworCisgICAgc3RhdGljIHZvaWQgaW5pdFN0YXRpY3MoKTsKKyAgICBzdGF0aWMgdm9pZCBj
bGVhblVwU3RhdGljcygpOworCisgICAgdHlwZWRlZiBIYXNoU2V0PEdlb2xvY2F0aW9uU2Vydmlj
ZU1vY2sqPiBHZW9sb2NhdGlvblNlcnZpY2VTZXQ7CisgICAgc3RhdGljIEdlb2xvY2F0aW9uU2Vy
dmljZVNldCogc19pbnN0YW5jZXM7CisKKyAgICBzdGF0aWMgUmVmUHRyPEdlb3Bvc2l0aW9uPiog
c19sYXN0UG9zaXRpb247CisgICAgc3RhdGljIFJlZlB0cjxQb3NpdGlvbkVycm9yPiogc19sYXN0
RXJyb3I7CisKKyAgICBUaW1lcjxHZW9sb2NhdGlvblNlcnZpY2VNb2NrPiBtX3RpbWVyOworCisg
ICAgYm9vbCBtX2lzQWN0aXZlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gR2VvbG9jYXRpb25TZXJ2aWNlTW9ja19oCkluZGV4OiBXZWJLaXQvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ4MTM3KQorKysgV2ViS2l0
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDA5LTA5LTA2ICBT
dGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEgbW9jayBHZW9sb2NhdGlvbiBzZXJ2
aWNlLiBUaGlzIHdpbGwgYmUgdXNlZCB0byBwcm92aWRlIHByZWRpY3RhYmxlIGJlaGF2aW9yIG9m
IHRoZQorICAgICAgICBHZW9sb2NhdGlvbiBBUEkgZm9yIHVzZSBpbiBMYXlvdXRUZXN0cy4gTGF0
ZXIgY2hhbmdlcyB3aWxsIGludGVncmF0ZSB0aGUgdGhlIG1vY2sKKyAgICAgICAgR2VvbG9jYXRp
b24gc2VydmljZSB3aXRoIER1bXBSZW5kZXJUcmVlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNjQKKworICAgICAgICAqIFdlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOiBNb2RpZmllZC4gQWRkcyBXZWJHZW9sb2NhdGlvbk1vY2suCisK
IDIwMDktMDktMDMgIEpvaG4gU3VsbGl2YW4gIDxzdWxsaXZhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2JlbgpJbmRleDogV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gNDgxMzcpCisrKyBXZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTk0LDYgKzk0LDggQEAKIAkJNTFG
REM0RDMwQjBBRjVDMTAwRjg0RUIzIC8qIFdlYkhpc3RvcnlJdGVtUHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGREM0RDIwQjBBRjVDMTAw
Rjg0RUIzIC8qIFdlYkhpc3RvcnlJdGVtUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUyNDFBREY1MEIxQkM0OEEwMDQwMTJCRCAvKiBX
ZWJDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTI0MUFERjMwQjFCQzQ4QTAwNDAxMkJEIC8qIFdlYkNhY2hlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTI0MUFERjYwQjFCQzQ4QTAwNDAxMkJE
IC8qIFdlYkNhY2hlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTI0MUFERjQwQjFCQzQ4QTAwNDAxMkJEIC8qIFdlYkNhY2hlLm1tICovOyB9OworCQk1
OUM3N0YzNTEwNTQ1RjdFMDA1MDYxMDQgLyogV2ViR2VvbG9jYXRpb25Nb2NrLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTlDNzdGMzMxMDU0NUY3RTAw
NTA2MTA0IC8qIFdlYkdlb2xvY2F0aW9uTW9jay5tbSAqLzsgfTsKKwkJNTlDNzdGNEIxMDU0NzFF
NzAwNTA2MTA0IC8qIFdlYkdlb2xvY2F0aW9uTW9ja1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5Qzc3RjRBMTA1NDcxRTcwMDUwNjEwNCAv
KiBXZWJHZW9sb2NhdGlvbk1vY2tQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNUQxNjM4RjMwRTM1QjQ1RDAwRjMwMzhFIC8qIEVtcHR5
UHJvdG9jb2xEZWZpbml0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNUQxNjM4RjIwRTM1QjQ1RDAwRjMwMzhFIC8qIEVtcHR5UHJvdG9jb2xEZWZp
bml0aW9ucy5oICovOyB9OwogCQk1RDdCRjgxNDBDMkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVj
dG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDdC
RjgxMjBDMkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNUQ3QkY4MTUwQzJBMUQ5MDAwOENFMDZE
IC8qIFdlYkluc3BlY3Rvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVEN0JGODEzMEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNwZWN0b3IubW0gKi87
IH07CkBAIC00NjYsNiArNDY4LDggQEAKIAkJNTFGREM0RDIwQjBBRjVDMTAwRjg0RUIzIC8qIFdl
Ykhpc3RvcnlJdGVtUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJIaXN0b3J5SXRlbVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTI0
MUFERjMwQjFCQzQ4QTAwNDAxMkJEIC8qIFdlYkNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MjQxQURGNDBCMUJDNDhBMDA0MDEyQkQgLyogV2ViQ2FjaGUubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ2FjaGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTU5Qzc3RjMzMTA1NDVGN0UwMDUwNjEwNCAvKiBXZWJHZW9sb2NhdGlvbk1vY2su
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJHZW9sb2NhdGlv
bk1vY2subW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU5Qzc3RjRBMTA1NDcxRTcw
MDUwNjEwNCAvKiBXZWJHZW9sb2NhdGlvbk1vY2tQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uTW9ja1ByaXZhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNUQxNjM4RjIwRTM1QjQ1RDAwRjMwMzhFIC8qIEVtcHR5UHJvdG9j
b2xEZWZpbml0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbXB0eVBy
b3RvY29sRGVmaW5pdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQ3QkY4
MTIwQzJBMUQ5MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViSW5zcGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTVEN0JGODEzMEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNwZWN0b3IubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViSW5zcGVjdG9yLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEzNSw2ICsxMTM5LDggQEAKIAkJRjVCMzZCNDAwMjgx
REU4NzAxODYzNUNCIC8qIFdlYkNvcmVTdXBwb3J0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1OUM3N0Y0QTEwNTQ3MUU3MDA1MDYxMDQgLyogV2ViR2Vv
bG9jYXRpb25Nb2NrUHJpdmF0ZS5oICovLAorCQkJCTU5Qzc3RjMzMTA1NDVGN0UwMDUwNjEwNCAv
KiBXZWJHZW9sb2NhdGlvbk1vY2subW0gKi8sCiAJCQkJQjY4MDQ5NzEwRkZCQ0VDMTAwOUY3RjYy
IC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGUuaCAqLywKIAkJCQlCNjgwNDk3MjBGRkJDRUMxMDA5RjdG
NjIgLyogV2ViQXBwbGljYXRpb25DYWNoZS5tbSAqLywKIAkJCQk1MUNCRkNBQzBEMTBFNkM1MDAy
REJGNTEgLyogV2ViQ2FjaGVkRnJhbWVQbGF0Zm9ybURhdGEuaCAqLywKQEAgLTE0NDYsNiArMTQ1
Miw3IEBACiAJCQkJOTM5ODEwOUIwODI0QkYwMTAwOERGMDM4IC8qIFdlYlZpZXdJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5ODEwNzEwODI0QkYwMTAwOERGMDM4IC8qIFdlYlZpZXdQ
cml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUY0NDg0RjEwMzM4RThDMDAzMEU1NUUgLyog
V2ViV29ya2Vyc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTU5Qzc3RjRCMTA1NDcxRTcw
MDUwNjEwNCAvKiBXZWJHZW9sb2NhdGlvbk1vY2tQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTE3NzcsNiArMTc4NCw3IEBACiAJCQkJQkMyRTQ2NEUwRkQ4QTk2ODAwQTlEOURFIC8qIFdlYlZp
ZXdEYXRhLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5ODEwRTgwODI0QkYwMTAwOERGMDM4IC8q
IFdlYlZpZXdGYWN0b3J5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGNDQ4NTAxMDMzOEU4QzAw
MzBFNTVFIC8qIFdlYldvcmtlcnNQcml2YXRlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTlDNzdG
MzUxMDU0NUY3RTAwNTA2MTA0IC8qIFdlYkdlb2xvY2F0aW9uTW9jay5tbSBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDQ4MTM3KQorKysgV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAwOS0wOS0wNiAgU3RldmUgQmxvY2sgIDxzdGV2
ZWJsb2NrQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkcyBhIG1vY2sgR2VvbG9jYXRpb24gc2VydmljZS4gVGhpcyB3aWxsIGJl
IHVzZWQgdG8gcHJvdmlkZSBwcmVkaWN0YWJsZSBiZWhhdmlvciBvZiB0aGUKKyAgICAgICAgR2Vv
bG9jYXRpb24gQVBJIGZvciB1c2UgaW4gTGF5b3V0VGVzdHMuIExhdGVyIGNoYW5nZXMgd2lsbCBp
bnRlZ3JhdGUgdGhlIHRoZSBtb2NrCisgICAgICAgIEdlb2xvY2F0aW9uIHNlcnZpY2Ugd2l0aCBE
dW1wUmVuZGVyVHJlZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI4MjY0CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbk1v
Y2tQcml2YXRlLmg6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uTW9jay5tbTogQWRkZWQuCisgICAgICAgICgrW1dlYkdlb2xvY2F0aW9uTW9jayBzZXRFcnJv
cjpjb2RlOl0pOiBBZGRlZC4gVXNlZCBieSBEdW1wUmVuZGVyIHRyZWUgdG8gY29uZmlndXJlIHRo
ZSBtb2NrIEdlb2xvY2F0aW9uIHNlcnZpY2UuCisgICAgICAgICgrW1dlYkdlb2xvY2F0aW9uTW9j
ayBzZXRQb3NpdGlvbjpsYXRpdHVkZTpsb25naXR1ZGU6YWNjdXJhY3k6XSk6IEFkZGVkLiBVc2Vk
IGJ5IER1bXBSZW5kZXIgdHJlZSB0byBjb25maWd1cmUgdGhlIG1vY2sgR2VvbG9jYXRpb24gc2Vy
dmljZS4KKyAgICAgICAgKiBXZWJLaXQuZXhwOiBNb2RpZmllZC4gRXhwb3J0cyBXZWJHZW9sb2Nh
dGlvbk1vY2suCisKIDIwMDktMDktMDcgIERyZXcgV2lsc29uICA8YXR3aWxzb25AZ29vZ2xlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KSW5kZXg6IFdlYktpdC9tYWMv
V2ViS2l0LmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYktpdC5leHAJKHJldmlzaW9u
IDQ4MTM3KQorKysgV2ViS2l0L21hYy9XZWJLaXQuZXhwCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw2
ICsxMiw3IEBACiAub2JqY19jbGFzc19uYW1lX1dlYkZvcm1EZWxlZ2F0ZQogLm9iamNfY2xhc3Nf
bmFtZV9XZWJGcmFtZQogLm9iamNfY2xhc3NfbmFtZV9XZWJGcmFtZVZpZXcKKy5vYmpjX2NsYXNz
X25hbWVfV2ViR2VvbG9jYXRpb25Nb2NrCiAub2JqY19jbGFzc19uYW1lX1dlYkhUTUxSZXByZXNl
bnRhdGlvbgogLm9iamNfY2xhc3NfbmFtZV9XZWJIVE1MVmlldwogLm9iamNfY2xhc3NfbmFtZV9X
ZWJIaXN0b3J5CkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9u
TW9jay5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xv
Y2F0aW9uTW9jay5tbQkocmV2aXNpb24gMCkKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViR2VvbG9jYXRpb25Nb2NrLm1tCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbXBvcnQgIldlYkdl
b2xvY2F0aW9uTW9ja1ByaXZhdGUuaCIKKworI2ltcG9ydCAiV2ViR2VvbG9jYXRpb25JbnRlcm5h
bC5oIgorI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmg+CisjaW1wb3J0
IDxXZWJDb3JlL0dlb3Bvc2l0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Bvc2l0aW9uRXJyb3Iu
aD4KKyNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgorCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwordXNpbmcgbmFtZXNwYWNlIFdURjsKKworQGltcGxlbWVudGF0aW9uIFdlYkdlb2xvY2F0
aW9uTW9jaworCisrICh2b2lkKXNldFBvc2l0aW9uOihkb3VibGUpbGF0aXR1ZGU6KGRvdWJsZSls
b25naXR1ZGU6KGRvdWJsZSlhY2N1cmFjeQoreworICAgIFJlZlB0cjxDb29yZGluYXRlcz4gY29v
cmRpbmF0ZXMgPSBDb29yZGluYXRlczo6Y3JlYXRlKGxhdGl0dWRlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmdpdHVkZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
YWxzZSwgMC4wLCAgLy8gYWx0aXR1ZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhY2N1cmFjeSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwgMC4wLCAgLy8gYWx0
aXR1ZGVBY2N1cmFjeQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZhbHNlLCAwLjAsICAvLyBoZWFkaW5nCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIDAuMCk7ICAv
LyBzcGVlZAorICAgIFJlZlB0cjxHZW9wb3NpdGlvbj4gcG9zaXRpb24gPSBHZW9wb3NpdGlvbjo6
Y3JlYXRlKGNvb3JkaW5hdGVzLnJlbGVhc2UoKSwgY3VycmVudFRpbWUoKSAqIDEwMDAuMCk7Cisg
ICAgR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c2V0UG9zaXRpb24ocG9zaXRpb24ucmVsZWFzZSgp
KTsKK30KKworKyAodm9pZClzZXRFcnJvcjooaW50KWNvZGU6KE5TU3RyaW5nICopbWVzc2FnZQor
eworICAgIFBvc2l0aW9uRXJyb3I6OkVycm9yQ29kZSBjb2RlRW51bSA9IHN0YXRpY19jYXN0PFBv
c2l0aW9uRXJyb3I6OkVycm9yQ29kZT4oY29kZSk7CisgICAgUmVmUHRyPFBvc2l0aW9uRXJyb3I+
IGVycm9yID0gUG9zaXRpb25FcnJvcjo6Y3JlYXRlKGNvZGVFbnVtLCBtZXNzYWdlKTsKKyAgICBH
ZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzZXRFcnJvcihlcnJvci5yZWxlYXNlKCkpOworfQorCitA
ZW5kCkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uTW9ja1By
aXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xv
Y2F0aW9uTW9ja1ByaXZhdGUuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViR2VvbG9jYXRpb25Nb2NrUHJpdmF0ZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCitAaW50ZXJmYWNlIFdlYkdlb2xvY2F0
aW9uTW9jayA6IE5TT2JqZWN0IHsKK30KKworKyAodm9pZClzZXRQb3NpdGlvbjooZG91YmxlKWxh
dGl0dWRlOihkb3VibGUpbG9uZ2l0dWRlOihkb3VibGUpYWNjdXJhY3k7CisrICh2b2lkKXNldEVy
cm9yOihpbnQpY29kZTooTlNTdHJpbmcgKiltZXNzYWdlOworQGVuZApJbmRleDogV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNp
b24gNDgxMzcpCisrKyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwyMSBAQAorMjAwOS0wOS0wNiAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
cyBhIG1vY2sgR2VvbG9jYXRpb24gc2VydmljZS4gVGhpcyB3aWxsIGJlIHVzZWQgdG8gcHJvdmlk
ZSBwcmVkaWN0YWJsZSBiZWhhdmlvciBvZiB0aGUKKyAgICAgICAgR2VvbG9jYXRpb24gQVBJIGZv
ciB1c2UgaW4gTGF5b3V0VGVzdHMuIExhdGVyIGNoYW5nZXMgd2lsbCBpbnRlZ3JhdGUgdGhlIHRo
ZSBtb2NrCisgICAgICAgIEdlb2xvY2F0aW9uIHNlcnZpY2Ugd2l0aCBEdW1wUmVuZGVyVHJlZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MjY0CisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6IE1vZGlm
aWVkLgorICAgICAgICAoc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25DYWxsYmFjayk6IEFkZGVk
LiBDb25maWd1cmVzIHRoZSBtb2NrIEdlb2xvY2F0aW9uIHNlcnZpY2UuCisgICAgICAgIChzZXRN
b2NrR2VvbG9jYXRpb25FcnJvckNhbGxiYWNrKTogQWRkZWQuIENvbmZpZ3VyZXMgdGhlIG1vY2sg
R2VvbG9jYXRpb24gc2VydmljZS4KKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0
aWNGdW5jdGlvbnMpOiBBZGRlZC4gUmVnaXN0ZXJzIHRoZSBhYm92ZSBmdW5jdGlvbnMgb24gdGhl
IExheW91dFRlc3RDb250cm9sbGVyLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmg6IE1vZGlmaWVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9M
YXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbTogTW9kaWZpZWQuCisgICAgICAgIChMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24pOiBBZGRlZC4gQ29uZmlndXJl
cyB0aGUgbW9jayBHZW9sb2NhdGlvbiBzZXJ2aWNlLgorICAgICAgICAoTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKTogQWRkZWQuIENvbmZpZ3VyZXMgdGhlIG1v
Y2sgR2VvbG9jYXRpb24gc2VydmljZS4KKwogMjAwOS0wOS0wNyAgRHJldyBXaWxzb24gIDxhdHdp
bHNvbkBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpJbmRl
eDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcAkocmV2aXNpb24gNDgxMzcpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAK
ICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVk
ZSA8d3RmL01hdGhFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIExheW91dFRl
c3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihjb25zdCBzdGQ6OnN0cmluZyYgdGVz
dFBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVjdGVkUGl4ZWxIYXNoKQogICAgIDog
bV9kdW1wQXNUZXh0KGZhbHNlKQpAQCAtNjMwLDYgKzYzMSwzNCBAQCBzdGF0aWMgSlNWYWx1ZVJl
ZiBzZXREYXRhYmFzZVF1b3RhQ2FsbGJhCiAKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgc2V0TW9j
a0dlb2xvY2F0aW9uUG9zaXRpb25DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmpl
Y3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENv
dW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
Cit7CisgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAzKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJv
bGxlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdl
dFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXItPnNldE1vY2tHZW9sb2NhdGlv
blBvc2l0aW9uKEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0sIE5VTEwpLCAg
Ly8gbGF0aXR1ZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBK
U1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzFdLCBOVUxMKSwgIC8vIGxvbmdpdHVk
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVUb051
bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMl0sIE5VTEwpKTsgIC8vIGFjY3VyYWN5CisKKyAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9CisKK3N0YXRpYyBKU1ZhbHVl
UmVmIHNldE1vY2tHZW9sb2NhdGlvbkVycm9yQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJn
dW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhj
ZXB0aW9uKQoreworICAgIGlmIChhcmd1bWVudENvdW50IDwgMikKKyAgICAgICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgaW50IGNvZGUgPSBKU1ZhbHVlVG9O
dW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBOVUxMKTsKKyAgICBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gbWVzc2FnZShBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1
bWVudHNbMV0sIGV4Y2VwdGlvbikpOworICAgIEFTU0VSVCghKmV4Y2VwdGlvbik7CisKKyAgICBM
YXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8TGF5b3V0
VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNv
bnRyb2xsZXItPnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKGNvZGUsIG1lc3NhZ2UuZ2V0KCkpOwor
CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCiBzdGF0aWMg
SlNWYWx1ZVJlZiBzZXRJY29uRGF0YWJhc2VFbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXpl
X3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKQogewogICAgIC8vIEhhcyBtYWMgJiB3aW5kb3dzIGltcGxlbWVudGF0aW9u
CkBAIC0xMDU1LDYgKzEwODQsOCBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6CiAgICAgICAgIHsgInNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSIs
IHNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgInNldEN1c3RvbVBvbGljeURlbGVnYXRlIiwgc2V0Q3VzdG9tUG9saWN5RGVsZWdh
dGVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXREYXRhYmFzZVF1b3RhIiwgc2V0RGF0
YWJhc2VRdW90YUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sIAorICAgICAgICB7ICJzZXRNb2NrR2VvbG9jYXRp
b25Qb3NpdGlvbiIsIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
KyAgICAgICAgeyAic2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IiLCBzZXRNb2NrR2VvbG9jYXRpb25F
cnJvckNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEljb25EYXRhYmFzZUVuYWJsZWQi
LCBzZXRJY29uRGF0YWJhc2VFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQiLCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25k
ZXIiLCBzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVyQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKSW5kZXg6
IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aAkocmV2aXNpb24gNDgxMzcpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldENhY2hlTW9kZWwoaW50KTsKICAgICB2b2lkIHNldEN1c3RvbVBvbGljeURl
bGVnYXRlKGJvb2wgc2V0RGVsZWdhdGUsIGJvb2wgcGVybWlzc2l2ZSk7CiAgICAgdm9pZCBzZXRE
YXRhYmFzZVF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSk7CisgICAgdm9pZCBzZXRNb2Nr
R2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRv
dWJsZSBhY2N1cmFjeSk7CisgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25FcnJvcihpbnQgY29k
ZSwgSlNTdHJpbmdSZWYgbWVzc2FnZSk7CiAgICAgdm9pZCBzZXRJY29uRGF0YWJhc2VFbmFibGVk
KGJvb2wgaWNvbkRhdGFiYXNlRW5hYmxlZCk7CiAgICAgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZChib29sIHByb2ZpbGluZ0VuYWJsZWQpOwogICAgIHZvaWQgc2V0TWFpbkZyYW1l
SXNGaXJzdFJlc3BvbmRlcihib29sIGZsYWcpOwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCShy
ZXZpc2lvbiA0ODEzNykKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRU
ZXN0Q29udHJvbGxlckd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwMiw2ICszMDIsMTggQEAg
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzYWJsZUltYWdlTAogICAgIC8vIEFsc28gbmVl
ZCB0byBtYWtlIHN1cmUgaW1hZ2UgbG9hZGluZyBpcyByZS1lbmFibGVkIGZvciBlYWNoIG5ldyB0
ZXN0LgogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrR2VvbG9jYXRpb25Q
b3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFj
eSkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBHZW9sb2NhdGlvbiBsYXlvdXQgdGVz
dHMuCisgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
ODI2NC4KK30KKwordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9u
RXJyb3IoaW50IGNvZGUsIEpTU3RyaW5nUmVmIG1lc3NhZ2UpCit7CisgICAgLy8gRklYTUU6IElt
cGxlbWVudCBmb3IgR2VvbG9jYXRpb24gbGF5b3V0IHRlc3RzLgorICAgIC8vIFNlZSBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNjQuCit9CisKIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldEljb25EYXRhYmFzZUVuYWJsZWQoYm9vbCBmbGFnKQogewogICAg
IC8vIEZJWE1FOiBpbXBsZW1lbnQKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0JKHJldmlzaW9uIDQ4
MTM3KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9s
bGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBACiAjaW1wb3J0IDxXZWJL
aXQvV2ViSGlzdG9yeS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkhpc3RvcnlQcml2YXRlLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV2ViSW5zcGVjdG9yLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViR2VvbG9j
YXRpb25Nb2NrUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYk5TVVJMRXh0cmFzLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV2ViUHJlZmVyZW5jZXMuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJQcmVm
ZXJlbmNlc1ByaXZhdGUuaD4KQEAgLTIzNCw2ICsyMzUsMTggQEAgdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0RGF0YWJhc2VRdQogICAgIFtvcmlnaW4gcmVsZWFzZV07CiB9CiAKK3ZvaWQg
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBs
YXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQoreworICAgIFtXZWJH
ZW9sb2NhdGlvbk1vY2sgc2V0UG9zaXRpb246bGF0aXR1ZGU6bG9uZ2l0dWRlOmFjY3VyYWN5XTsK
K30KKwordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3Io
aW50IGNvZGUsIEpTU3RyaW5nUmVmIG1lc3NhZ2UpCit7CisgICAgUmV0YWluUHRyPENGU3RyaW5n
UmVmPiBtZXNzYWdlQ0YoQWRvcHRDRiwgSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgbWVzc2FnZSkpOworICAgIE5TU3RyaW5nICptZXNzYWdlTlMgPSAoTlNTdHJpbmcg
KiltZXNzYWdlQ0YuZ2V0KCk7CisgICAgW1dlYkdlb2xvY2F0aW9uTW9jayBzZXRFcnJvcjpjb2Rl
Om1lc3NhZ2VOU107Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEljb25EYXRh
YmFzZUVuYWJsZWQoYm9vbCBpY29uRGF0YWJhc2VFbmFibGVkKQogewogICAgIC8vIEZJWE1FOiBX
b3JrYXJvdW5kIDxyZGFyOi8vcHJvYmxlbS82NDgwMTA4PgpJbmRleDogV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4u
Y3BwCShyZXZpc2lvbiA0ODEzNykKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9M
YXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxMSw2ICszMTEs
MTggQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0Q3VzdG9tUG9saQogICAgICAgICB3
ZWJWaWV3LT5zZXRQb2xpY3lEZWxlZ2F0ZSgwKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUg
bG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBm
b3IgR2VvbG9jYXRpb24gbGF5b3V0IHRlc3RzLgorICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNjQuCit9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKGludCBjb2RlLCBKU1N0cmluZ1JlZiBtZXNz
YWdlKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIEdlb2xvY2F0aW9uIGxheW91dCB0
ZXN0cy4KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI4MjY0LgorfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRJY29uRGF0YWJhc2VF
bmFibGVkKGJvb2wgaWNvbkRhdGFiYXNlRW5hYmxlZCkKIHsKICAgICAvLyBTZWUgYWxzbyA8cmRh
cjovL3Byb2JsZW0vNjQ4MDEwOD4KSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4
L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCShyZXZpc2lvbiA0ODEz
NykKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVy
V3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzksNiArMjM5LDE4IEBAIGJvb2wgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnBhdXNlVHJhbnNpdGkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQg
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBs
YXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQoreworICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgZm9yIEdlb2xvY2F0aW9uIGxheW91dCB0ZXN0cy4KKyAgICAvLyBTZWUg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MjY0LgorfQorCit2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcihpbnQgY29kZSwg
SlNTdHJpbmdSZWYgbWVzc2FnZSkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBHZW9s
b2NhdGlvbiBsYXlvdXQgdGVzdHMuCisgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yODI2NC4KK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0SWNvbkRhdGFiYXNlRW5hYmxlZChib29sIGljb25EYXRhYmFzZUVuYWJsZWQpCiB7CiAgICAg
Ly8gRklYTUU6IGltcGxlbWVudApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDgxMzcpCisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0wOS0w
NiAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBhIG1vY2sgR2VvbG9jYXRpb24g
c2VydmljZS4gVGhpcyB3aWxsIGJlIHVzZWQgdG8gcHJvdmlkZSBwcmVkaWN0YWJsZSBiZWhhdmlv
ciBvZiB0aGUKKyAgICAgICAgR2VvbG9jYXRpb24gQVBJIGZvciB1c2UgaW4gTGF5b3V0VGVzdHMu
IExhdGVyIGNoYW5nZXMgd2lsbCBpbnRlZ3JhdGUgdGhlIHRoZSBtb2NrCisgICAgICAgIEdlb2xv
Y2F0aW9uIHNlcnZpY2Ugd2l0aCBEdW1wUmVuZGVyVHJlZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MjY0CisKKyAgICAgICAgKiBmYXN0L2RvbS9H
ZW9sb2NhdGlvbi9yZXNvdXJjZXMvZXJyb3IuanM6IEFkZGVkLiBUZXN0cyB0aGF0IHRoZSBlcnJv
ciBjYWxsYmFjayBpcyBjYWxsZWQgd2hlbiB0aGUgc2VydmljZSByZXBvcnRzIGFuIGVycm9yLgor
ICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2Vycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQu
IEV4cGVjdGVkIHJlc3VsdCBmb3IgYWJvdmUgdGVzdC4KKyAgICAgICAgKiBmYXN0L2RvbS9HZW9s
b2NhdGlvbi9lcnJvci5odG1sOiBBZGRlZC4gV3JhcHBlciBmb3IgYWJvdmUgdGVzdC4KKwogMjAw
OS0wOS0wNyAgRHJldyBXaWxzb24gIDxhdHdpbHNvbkBnb29nbGUuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQgYnVpbGQgZml4LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRp
b24vZXJyb3ItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L0dlb2xvY2F0aW9uL2Vycm9yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Vycm9yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxNCBAQAorVGVzdHMgR2VvbG9jYXRpb24gZXJyb3IgY2FsbGJhY2sgdXNpbmcg
dGhlIG1vY2sgc2VydmljZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
ZXJyb3IuY29kZSBpcyBtb2NrQ29kZQorUEFTUyBlcnJvci5tZXNzYWdlIGlzIG1vY2tNZXNzYWdl
CitQQVNTIGVycm9yLlVOS05PV05fRVJST1IgaXMgMAorUEFTUyBlcnJvci5QRVJNSVNTSU9OX0RF
TklFRCBpcyAxCitQQVNTIGVycm9yLlBPU0lUSU9OX1VOQVZBSUxBQkxFIGlzIDIKK1BBU1MgZXJy
b3IuVElNRU9VVCBpcyAzCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vR2VvbG9jYXRpb24vZXJyb3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9HZW9sb2NhdGlvbi9lcnJvci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZXJyb3IuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9lcnJvci5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvZXJyb3IuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2VzL2Vycm9yLmpz
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3Vy
Y2VzL2Vycm9yLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI0IEBACitkZXNjcmlwdGlvbigi
VGVzdHMgR2VvbG9jYXRpb24gZXJyb3IgY2FsbGJhY2sgdXNpbmcgdGhlIG1vY2sgc2VydmljZS4i
KTsKKwordmFyIG1vY2tDb2RlID0gMDsKK3ZhciBtb2NrTWVzc2FnZSA9ICJkZWJ1ZyI7CisKK3dp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5zZXRNb2NrR2VvbG9jYXRpb25FcnJvcihtb2NrQ29k
ZSwgbW9ja01lc3NhZ2UpOworCit2YXIgZXJyb3I7CituYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0
Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKHApIHsKKyAgICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNh
bGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7CisgICAgZGVidWcoJzxiciAvPjxzcGFuIGNs
YXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicpOworICAgIHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCBmdW5jdGlvbihlKSB7CisgICAgZXJyb3IgPSBl
CisgICAgc2hvdWxkQmUoJ2Vycm9yLmNvZGUnLCAnbW9ja0NvZGUnKTsKKyAgICBzaG91bGRCZSgn
ZXJyb3IubWVzc2FnZScsICdtb2NrTWVzc2FnZScpOworICAgIHNob3VsZEJlKCdlcnJvci5VTktO
T1dOX0VSUk9SJywgJzAnKTsKKyAgICBzaG91bGRCZSgnZXJyb3IuUEVSTUlTU0lPTl9ERU5JRUQn
LCAnMScpOworICAgIHNob3VsZEJlKCdlcnJvci5QT1NJVElPTl9VTkFWQUlMQUJMRScsICcyJyk7
CisgICAgc2hvdWxkQmUoJ2Vycm9yLlRJTUVPVVQnLCAnMycpOworICAgIGRlYnVnKCc8YnIgLz48
c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01QTEVURTwvc3Bhbj4nKTsKKyAgICB3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSk7Cit3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQJ
KHJldmlzaW9uIDQ4MTM3KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQJKHdv
cmtpbmcgY29weSkKQEAgLTE1NjksNiArMTU2OSw3IEBAIGZhc3QvZG9tL2NsaWVudC13aWR0aC1o
ZWlnaHQtcXVpcmtzLmh0bWwKIGZhc3QvZG9tL2NsaWVudC13aWR0aC1oZWlnaHQuaHRtbAogZmFz
dC9kb20vY3NzVGFyZ2V0LWNyYXNoLmh0bWwKIGZhc3QvZG9tL2ZyYW1lLWxvYWRpbmctdmlhLWRv
Y3VtZW50LXdyaXRlLmh0bWwKK2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Vycm9yLmh0bWwKIGZhc3Qv
ZG9tL2dldEJvdW5kaW5nQ2xpZW50UmVjdC5odG1sCiBmYXN0L2RvbS9udWxsLWRvY3VtZW50LWxv
Y2F0aW9uLXB1dC1jcmFzaC5odG1sCiBmYXN0L2RvbS9udWxsLWRvY3VtZW50LWxvY2F0aW9uLXJl
cGxhY2UtY3Jhc2guaHRtbAo=
</data>
<flag name="review"
          id="20223"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="20225"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>