<?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>173998</bug_id>
          
          <creation_ts>2017-06-29 17:20:43 -0700</creation_ts>
          <short_desc>Add tests to detect mistakes in backward compatibility when the structured clone algorithm is changed in the future</short_desc>
          <delta_ts>2017-08-01 13:00:57 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>jsbell</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1324181</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-06-29 17:20:43 -0700</bug_when>
    <thetext>We should have a test that ensures IndexedDB will always be able to read from an existing good shaped database, and reconstruct the expect values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324298</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-06-29 21:52:56 -0700</bug_when>
    <thetext>Need to tackle the encrypted CryptoKey objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324715</commentid>
    <comment_count>2</comment_count>
      <attachid>314349</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-06-30 19:25:03 -0700</bug_when>
    <thetext>Created attachment 314349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325430</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-07-04 04:32:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/33122081&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327199</commentid>
    <comment_count>4</comment_count>
      <attachid>315027</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-07-10 14:19:09 -0700</bug_when>
    <thetext>Created attachment 315027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1327489</commentid>
    <comment_count>5</comment_count>
      <attachid>315113</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-07-11 08:49:34 -0700</bug_when>
    <thetext>Created attachment 315113
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328256</commentid>
    <comment_count>6</comment_count>
      <attachid>315291</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-07-12 15:50:56 -0700</bug_when>
    <thetext>Created attachment 315291
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328262</commentid>
    <comment_count>7</comment_count>
      <attachid>315294</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-07-12 15:56:31 -0700</bug_when>
    <thetext>Created attachment 315294
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328450</commentid>
    <comment_count>8</comment_count>
      <attachid>315294</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-07-13 09:14:09 -0700</bug_when>
    <thetext>Comment on attachment 315294
Patch

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

In general, please re-write using the Cocoa API, then I&apos;ll look closer at the HTML.

&gt; Source/WebCore/ChangeLog:3
&gt; +        IndexedDB: ensure its backward compatibility

This is not really descriptive.

I&apos;d say something like &quot;Ensure backward compatibility in the serialization format of structured clones.&quot;

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:120
&gt; +// Who edits this list, please teach IndexedDB.BackwardCompatibility API test to learn the new stuff.

&quot;When making changes to this list please cover your new type(s) in the API test &quot;IndexedDB.BackwardCompatibility&quot;

&gt; Tools/ChangeLog:8
&gt; +        A test is composed to ensure IndexedDB&apos;s backward compatibility. The way it works is to

Again, this is not really about &quot;IndexedDB backward compatibility&quot; as it is about &quot;backward compatibility in the serialization format of structured clones&quot;

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBBackwardCompatibility.mm:73
&gt; +    // Somehow ~/Library/WebKit/TestWebKitAPI/WebsiteData/IndexedDB/ doesn&apos;t work on my machine. @Brady any idea?
&gt; +    NSURL *targetURL = [NSURL fileURLWithPath:[@&quot;~/Library/WebKit/Databases/___IndexedDB/file__0/backward_compatibility/&quot; stringByExpandingTildeInPath]];
&gt; +    [[NSFileManager defaultManager] createDirectoryAtURL:targetURL withIntermediateDirectories:YES attributes:nil error:nil];

You need to use the Cocoa API and specify an IndexedDB directory location in the WKWebsiteDataStoreConfiguration.

(See comment below on other reasons to not use the C API)

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBBackwardCompatibility.mm:86
&gt; +    WKPageNavigationClientV0 navigationClient;
&gt; +    memset(&amp;navigationClient, 0, sizeof(navigationClient));
&gt; +    navigationClient.base.version = 0;
&gt; +    navigationClient.decidePolicyForNavigationAction = decidePolicyForNavigationAction;
&gt; +    navigationClient.decidePolicyForNavigationResponse = decidePolicyForNavigationResponse;
&gt; +    navigationClient.copyWebCryptoMasterKey = copyWebCryptoMasterKey;

The Cocoa API is the future, and the C-API will eventually be removed.

Writing this test using the C-API means it will just have to be re-written later.

Please re-write now using the Cocoa API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328787</commentid>
    <comment_count>9</comment_count>
      <attachid>315294</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-07-14 09:10:50 -0700</bug_when>
    <thetext>Comment on attachment 315294
Patch

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

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBBackwardCompatibility.mm:73
&gt;&gt; +    [[NSFileManager defaultManager] createDirectoryAtURL:targetURL withIntermediateDirectories:YES attributes:nil error:nil];
&gt; 
&gt; You need to use the Cocoa API and specify an IndexedDB directory location in the WKWebsiteDataStoreConfiguration.
&gt; 
&gt; (See comment below on other reasons to not use the C API)

The reason why I didn&apos;t use the Cocoa API is copyWebCryptoMasterKey is not available in Cocoa API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328802</commentid>
    <comment_count>10</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-07-14 09:29:09 -0700</bug_when>
    <thetext>(In reply to Jiewen Tan from comment #9)
&gt; Comment on attachment 315294 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=315294&amp;action=review
&gt; 
&gt; &gt;&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBBackwardCompatibility.mm:73
&gt; &gt;&gt; +    [[NSFileManager defaultManager] createDirectoryAtURL:targetURL withIntermediateDirectories:YES attributes:nil error:nil];
&gt; &gt; 
&gt; &gt; You need to use the Cocoa API and specify an IndexedDB directory location in the WKWebsiteDataStoreConfiguration.
&gt; &gt; 
&gt; &gt; (See comment below on other reasons to not use the C API)
&gt; 
&gt; The reason why I didn&apos;t use the Cocoa API is copyWebCryptoMasterKey is not
&gt; available in Cocoa API.

Please expose it as SPI. We really need to be abandoning the C API and filling in all the holes in the Cocoa API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328804</commentid>
    <comment_count>11</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-07-14 09:29:46 -0700</bug_when>
    <thetext>But you also need the Cocoa API because:

&gt; You need to use the Cocoa API and specify an IndexedDB directory location in the WKWebsiteDataStoreConfiguration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1328807</commentid>
    <comment_count>12</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-07-14 09:36:35 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #10)
&gt; (In reply to Jiewen Tan from comment #9)
&gt; &gt; Comment on attachment 315294 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=315294&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBBackwardCompatibility.mm:73
&gt; &gt; &gt;&gt; +    [[NSFileManager defaultManager] createDirectoryAtURL:targetURL withIntermediateDirectories:YES attributes:nil error:nil];
&gt; &gt; &gt; 
&gt; &gt; &gt; You need to use the Cocoa API and specify an IndexedDB directory location in the WKWebsiteDataStoreConfiguration.
&gt; &gt; &gt; 
&gt; &gt; &gt; (See comment below on other reasons to not use the C API)
&gt; &gt; 
&gt; &gt; The reason why I didn&apos;t use the Cocoa API is copyWebCryptoMasterKey is not
&gt; &gt; available in Cocoa API.
&gt; 
&gt; Please expose it as SPI. We really need to be abandoning the C API and
&gt; filling in all the holes in the Cocoa API.

Okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332558</commentid>
    <comment_count>13</comment_count>
      <attachid>316516</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-07-26 21:13:42 -0700</bug_when>
    <thetext>Created attachment 316516
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333023</commentid>
    <comment_count>14</comment_count>
      <attachid>316661</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-07-28 11:45:18 -0700</bug_when>
    <thetext>Created attachment 316661
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333303</commentid>
    <comment_count>15</comment_count>
      <attachid>316661</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-07-30 10:29:07 -0700</bug_when>
    <thetext>Comment on attachment 316661
Patch

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

Great idea. Do these tests cover enough?

&gt; Source/WebCore/ChangeLog:3
&gt; +        Ensure backward compatibility in the serialization format of structured clones

It’s great to add a few backward compatibility tests and add a comment reminding people not to break compatibility and pointing them at the tests.

However, I personally would not call that “ensuring backward compatibility”.

I would write something more like “add tests to help us detect mistakes in backward compatibility in the future when we change the structured clone algorithm, since it’s used for data stored in persistent databases”.

&gt; Source/WebCore/ChangeLog:8
&gt; +        No changes of behavior.

Don’t need this comment. It’s clear that just adding a comment does not change behavior. Please just delete this line.

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:120
&gt; +// When making changes to this list please cover your new type(s) in the API test &quot;IndexedDB.BackwardCompatibility&quot;

This comment is good but insufficient.

After all, it’s not just changes to this list that can break compatibility, but rather any changes at all.

Also, the key thing to mention is that some serialized values are stored in a persistent database, which is *why* we need compatibility. I also am unclear on how we will handle migration. Do we only need to be able to read old serialized data, or will we ever share an IndexedDB database between an older and newer version of WebKit? If we might be sharing one, then we need compatibility in both directions. Not only do we need to be able to read old data, but the old version needs to be able to safely read data from the new version without crashing and has to have some strategy for dealing with data it does not understand.

This comment about the tag is the smaller issue. Really any change to any of the serialization code in this entire file has to consider compatibility.

Or maybe not. If types in IndexedDB are limited, then only a part of the code in this file depends on that. It would be good to draw a clear distinction between the part that has to be compatible and the part that does not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333640</commentid>
    <comment_count>16</comment_count>
      <attachid>316661</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-07-31 18:39:05 -0700</bug_when>
    <thetext>Comment on attachment 316661
Patch

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

Thanks Darin for r+ my patch.

&gt;&gt; Source/WebCore/ChangeLog:3
&gt;&gt; +        Ensure backward compatibility in the serialization format of structured clones
&gt; 
&gt; It’s great to add a few backward compatibility tests and add a comment reminding people not to break compatibility and pointing them at the tests.
&gt; 
&gt; However, I personally would not call that “ensuring backward compatibility”.
&gt; 
&gt; I would write something more like “add tests to help us detect mistakes in backward compatibility in the future when we change the structured clone algorithm, since it’s used for data stored in persistent databases”.

Fixed.

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        No changes of behavior.
&gt; 
&gt; Don’t need this comment. It’s clear that just adding a comment does not change behavior. Please just delete this line.

Deleted.

&gt;&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:120
&gt;&gt; +// When making changes to this list please cover your new type(s) in the API test &quot;IndexedDB.BackwardCompatibility&quot;
&gt; 
&gt; This comment is good but insufficient.
&gt; 
&gt; After all, it’s not just changes to this list that can break compatibility, but rather any changes at all.
&gt; 
&gt; Also, the key thing to mention is that some serialized values are stored in a persistent database, which is *why* we need compatibility. I also am unclear on how we will handle migration. Do we only need to be able to read old serialized data, or will we ever share an IndexedDB database between an older and newer version of WebKit? If we might be sharing one, then we need compatibility in both directions. Not only do we need to be able to read old data, but the old version needs to be able to safely read data from the new version without crashing and has to have some strategy for dealing with data it does not understand.
&gt; 
&gt; This comment about the tag is the smaller issue. Really any change to any of the serialization code in this entire file has to consider compatibility.
&gt; 
&gt; Or maybe not. If types in IndexedDB are limited, then only a part of the code in this file depends on that. It would be good to draw a clear distinction between the part that has to be compatible and the part that does not.

Only enums after this comment need to be protected. Surprisedly, some of them cannot be stored in the indexedDB. Those are FileList, ObjectReference, MessagePortReference, ArrayBufferView, ArrayBufferTransfer, NonMapProperties, NonSetProperties, SharedArrayBuffer, WasmModule, DOMPointReadOnly, DOMPoint, DOMRectReadOnly, DOMRect, DOMMatrixReadOnly, DOMMatrix, DOMQuad and Error. CryptoKey objects are not included as well as they need new API for encrypting/decrypting the internal key data slot. I added the above sentences to the ChangeLog as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333641</commentid>
    <comment_count>17</comment_count>
      <attachid>316825</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-07-31 18:42:34 -0700</bug_when>
    <thetext>Created attachment 316825
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333910</commentid>
    <comment_count>18</comment_count>
      <attachid>316825</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-01 12:50:35 -0700</bug_when>
    <thetext>Comment on attachment 316825
Patch for landing

Rejecting attachment 316825 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 316825, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WebCore/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/4235513</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333914</commentid>
    <comment_count>19</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-08-01 13:00:57 -0700</bug_when>
    <thetext>Committed r220109: &lt;http://trac.webkit.org/changeset/220109&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314349</attachid>
            <date>2017-06-30 19:25:03 -0700</date>
            <delta_ts>2017-07-10 14:19:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173998-20170630192502.patch</filename>
            <type>text/plain</type>
            <size>48161</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE4NzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjEyYmVlZDBjMmRmYjFh
ZmQzYzg1NGVkNDc5ODFlYzVhY2I3ODE2ZS4uNWE4N2UxNGMyMjM5MDFhNTcwMzQ1YmU2OWM4MzNk
NjFkYzhmMWFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA2LTMwICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW5kZXhlZERCOiBlbnN1
cmUgaXRzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mzk5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZXMgb2YgYmVoYXZpb3IuCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICBBZGQgYSBj
b21tZW50LgorCiAyMDE3LTA2LTIyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTihyMjE0NzEyKTogSW5maW5pdGUgcmVjdXJzaW9uIGluIFJlbmRl
clRhYmxlOjpsYXlvdXQgaW4gcGFnaW5hdGVkIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDVjYjFjMDg3NTAz
NTFhNjlmMjllNDNkNTYwZjcxMmEzZDlkNGQ3NjAuLjdhN2ZkZGQzZDBlNWE4MjJlNmNjNDYyYjRj
NDY3NTc4ZDVhNDAzNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMTE2LDYgKzExNiw3IEBAIGVudW0gV2Fsa2Vy
U3RhdGUgeyBTdGF0ZVVua25vd24sIEFycmF5U3RhcnRTdGF0ZSwgQXJyYXlTdGFydFZpc2l0TWVt
YmVyLCBBcnJheUVuCiAgICAgU2V0RGF0YVN0YXJ0VmlzaXRFbnRyeSwgU2V0RGF0YUVuZFZpc2l0
S2V5IH07CiAKIC8vIFRoZXNlIGNhbid0IGJlIHJlb3JkZXJlZCwgYW5kIGFueSBuZXcgdHlwZXMg
bXVzdCBiZSBhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBsaXN0CisvLyBXaG8gZWRpdHMgdGhpcyBs
aXN0LCBwbGVhc2UgdGVhY2ggSW5kZXhlZERCLkJhY2t3YXJkQ29tcGF0aWJpbGl0eSBBUEkgdGVz
dCB0byBsZWFybiB0aGUgbmV3IHN0dWZmLgogZW51bSBTZXJpYWxpemF0aW9uVGFnIHsKICAgICBB
cnJheVRhZyA9IDEsCiAgICAgT2JqZWN0VGFnID0gMiwKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1ZDQ3ODI0NTM5MGU4NGZmNmY5MWUxZDU4NDI5
ZTRmNGU4OTJmMzVlLi40NmU5MGYyYmU2MTQ1NWMxYTY2MGEyMTY2NTUxN2UyZTZjOGQ0Y2RlIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzIgQEAKKzIwMTctMDYtMzAgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4K
KworICAgICAgICBJbmRleGVkREI6IGVuc3VyZSBpdHMgYmFja3dhcmQgY29tcGF0aWJpbGl0eQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczOTk4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSB0ZXN0IGlz
IGNvbXBvc2VkIHRvIGVuc3VyZSBJbmRleGVkREIncyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBU
aGUgd2F5IGl0IHdvcmtzIGlzIHRvCisgICAgICAgIHJlYWQgZnJvbSBhIHByZS1iYWtlZCBkYXRh
YmFzZSBhbmQgc2VlIGlmIGFsbCB0aGUgdmFsdWVzIGFyZSBtYXRjaGVkIHdpdGggdGhlIGV4cGVj
dGF0aW9ucy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL0luZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbTogQWRkZWQuCisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpydW5KYXZhU2NyaXB0QWxlcnQpOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2UpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6Y29weVdlYkNyeXB0b01hc3RlcktleSk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgSGVyZSBpcyB0aGUgQVBJIHRlc3QgdGhhdCBtb3ZlcyB0aGUg
cHJlLWJha2VkIGRhdGFiYXNlIHRvIHRoZSBsb2NhdGlvbiB3aGVyZSBUZXN0V2ViS2l0QVBJIGNh
biByZWFkIGZyb20sCisgICAgICAgIGFuZCBkZWNyeXB0cyBDcnlwdG9LZXkgc2VyaWFsaXplZCBi
aW5hcmllcyB3aXRoIGEgaGFyZCBjb2RlZCBtYXN0ZXIga2V5IHdoaWNoIHdhcyB1c2VkIHRvIGVu
Y3J5cHQgdGhlIGRhdGEuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTM6IEFkZGVkLgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkJhY2t3YXJkQ29t
cGF0aWJpbGl0eS5zcWxpdGUzLXNobTogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMt
d2FsOiBBZGRlZC4KKyAgICAgICAgVGhlc2UgYXJlIHRoZSBwcmUtYmFrZWQgZGF0YWJhc2VzLgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkJhY2t3
YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbDogQWRkZWQuCisgICAgICAgIFRoaXMgaXMgdGhlIGFj
dHVhbCB0ZXN0IHRoYXQgZG8gYWxsIHRoZSByZWFkcyBhbmQgY29tcGFyaXNvbnMuCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21w
YXRpYmlsaXR5V3JpdGUuaHRtbDogQWRkZWQuCisgICAgICAgIFRoaXMgaXMgdGhlIHBhZ2UgdGhh
dCBiYWtlcyB0aGUgZGF0YWJhc2UuIEl0IG5ldmVyIHJ1bnMgYXV0b21hdGljYWxseS4gSXQgaXMg
Zm9yIHNvbWVvbmUgd2hvIG5lZWRzIHRvIHRlYWNoCisgICAgICAgIEluZGV4ZWREQiBuZXcgc3R1
ZmZzLiBUaGVuIGl0IGNhbiBiZSB1c2VkIHRvIGJha2UgdGhlIGRhdGFiYXNlIGFnYWluLgorCiAy
MDE3LTA2LTIyICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTiAocjIxODQxOSk6IDcgbGVha3MgaW4gUGx1Z2luTG9hZENsaWVudFBvbGljaWVz
Lm1tCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDlkNzc3ZTg0MDRlYWM5Y2FlMTZkYjNiMWNl
MjRiYzZhNmY0OGRiYWQuLjZkNDZjZjU0MWRiNzZiZmMxZGY4NGNkMjNlZWU2NDZlYjJkNTE3NTYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTQsNiArMTk0LDEyIEBACiAJCTU3MTRFQ0I5
MUNBOEI1QjAwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTC5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MTRFQ0I4
MUNBOEI1ODgwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTC5odG1sICovOyB9
OwogCQk1NzE0RUNCQjFDQThCRkU0MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxV
UkxGcmFtZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU3MTRFQ0JBMUNBOEJGRDEwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmln
aW5hbFVSTEZyYW1lLmh0bWwgKi87IH07CiAJCTU3MTRFQ0JEMUNBOEMyMkEwMDA1MUFDOCAvKiBE
b3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTDIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzE0RUNCQzFDQThDMjE4MDAwNTFBQzggLyog
RG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgKi87IH07CisJCTU3NTk5RTIxMUYwNzE5
MTkwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUyMDFGMDcxOTE3MDBB
M0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tICovOyB9OworCQk1NzU5
OUUyNzFGMDcxQUEwMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNx
bGl0ZTMgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTc1OTlFMjQxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJp
bGl0eS5zcWxpdGUzICovOyB9OworCQk1NzU5OUUyODFGMDcxQUEwMDBBM0ZCOEMgLyogSW5kZXhl
ZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtc2htIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTk5RTI2MUYwNzE5MkMwMEEzRkI4
QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0gKi87IH07CisJ
CTU3NTk5RTI5MUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxp
dHkuc3FsaXRlMy13YWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTc1OTlFMjIxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJk
Q29tcGF0aWJpbGl0eS5zcWxpdGUzLXdhbCAqLzsgfTsKKwkJNTc1OTlFMkExRjA3MUFBMDAwQTNG
QjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUyNTFGMDcx
OTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5odG1sICov
OyB9OworCQk1NzU5OUUyQjFGMDcxQUEwMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21w
YXRpYmlsaXR5V3JpdGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUyMzFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFj
a3dhcmRDb21wYXRpYmlsaXR5V3JpdGUuaHRtbCAqLzsgfTsKIAkJNTc2OUM1MEIxRDlCMDAwMjAw
MDg0N0ZCIC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc2OUM1MEExRDlCMDAwMTAwMDg0N0ZCIC8qIFNl
cmlhbGl6ZWRDcnlwdG9LZXlXcmFwLm1tICovOyB9OwogCQk1NzkwMUZCMTFDQUYxNDJEMDBFRDY0
RjkgLyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc5MDFGQjAxQ0FGMTQxQzAwRUQ2NEY5IC8q
IExvYWRJbnZhbGlkVVJMUmVxdWVzdC5odG1sICovOyB9OwogCQk1Nzk3RkUzMTFFQjE1QTY4MDBC
MkY0QTAgLyogTmF2aWdhdGlvbkNsaWVudERlZmF1bHRDcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc5N0ZFMkYxRUIxNUE1RjAwQjJGNEEw
IC8qIE5hdmlnYXRpb25DbGllbnREZWZhdWx0Q3J5cHRvLmNwcCAqLzsgfTsKQEAgLTcyNyw2ICs3
MzMsMTEgQEAKIAkJCWRzdFBhdGggPSBUZXN0V2ViS2l0QVBJLnJlc291cmNlczsKIAkJCWRzdFN1
YmZvbGRlclNwZWMgPSA3OwogCQkJZmlsZXMgPSAoCisJCQkJNTc1OTlFMjcxRjA3MUFBMDAwQTNG
QjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzIGluIENvcHkgUmVz
b3VyY2VzICovLAorCQkJCTU3NTk5RTI4MUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNr
d2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0gaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJ
NTc1OTlFMjkxRjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0
eS5zcWxpdGUzLXdhbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk1NzU5OUUyQTFGMDcxQUEw
MDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAorCQkJCTU3NTk5RTJCMUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVk
REJCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCUY0QjgyNUQ4MUVGNERCRkIwMDZFNDE3RiAvKiBjb21wcmVzc2VkLWZpbGVzLnppcCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDFBQjk5RjFFRjQ2OTZCMDA4M0ZBMDggLyogYXV0b2Zv
Y3VzLWNvbnRlbnRlZGl0YWJsZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0MUFC
OUEwMUVGNDY5NkIwMDgzRkEwOCAvKiBiYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xMjE3LDYgKzEyMjgsMTIgQEAKIAkJNTcxNEVD
QjgxQ0E4QjU4ODAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTC5odG1s
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzE0RUNCQTFDQThCRkQxMDAwNTFBQzgg
LyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1NzE0RUNCQzFDQThDMjE4MDAwNTFBQzggLyogRG93bmxv
YWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBE
b3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTDIuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTc1OTlFMjAxRjA3MTkxNzAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0
aWJpbGl0eS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEluZGV4
ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTc1OTlFMjIxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJp
bGl0eS5zcWxpdGUzLXdhbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNx
bGl0ZTMtd2FsIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc1OTlFMjMxRjA3MTky
QzAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0ZS5odG1sOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1NzU5OUUyNDFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhl
ZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gSW5kZXhlZERCQmFja3dhcmRD
b21wYXRpYmlsaXR5LnNxbGl0ZTM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3NTk5
RTI1MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFk
Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0Lmh0bWw7IHBhdGggPSBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0bWw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3NTk5RTI2MUYwNzE5MkMwMEEzRkI4QyAv
KiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gIkluZGV4
ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU3NjlDNTBBMUQ5QjAwMDEwMDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRv
S2V5V3JhcC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNlcmlh
bGl6ZWRDcnlwdG9LZXlXcmFwLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Nzkw
MUZBQzFDQUYxMkMyMDBFRDY0RjkgLyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzkwMUZBRTFDQUYxMzcxMDBFRDY0Rjkg
LyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTgxOSw2ICsxODM2LDcgQEAKIAkJCQk1MUFGMjNERTFFRjFBMzcyMDA3MkYy
ODEgLyogSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbSAqLywKIAkJCQk1MTA0Nzc3NTFEMjk4RTAzMDA5
NzQ3RUIgLyogSURCRGVsZXRlUmVjb3ZlcnkubW0gKi8sCiAJCQkJNTExMEZDRUYxRTAxQ0JBQTAw
NkY4RDBCIC8qIElEQkluZGV4VXBncmFkZVRvVjIubW0gKi8sCisJCQkJNTc1OTlFMjAxRjA3MTkx
NzAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbSAqLywKIAkJCQk1
MUE1ODc4NDFEMjcyRUYzMDA0QkE5QUYgLyogSW5kZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC5t
bSAqLywKIAkJCQk1MUJDRUU0OTFDODRGNEFGMDA0MkM4MkUgLyogSW5kZXhlZERCTXVsdGlQcm9j
ZXNzLm1tICovLAogCQkJCTUxQjFFRThEMUM4MEY1ODgwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJz
aXN0ZW5jZS5tbSAqLywKQEAgLTIwNTIsNiArMjA3MCwxMSBAQAogCQkJCTUxMDQ3NzcwMUQyOThE
ODUwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVyeS5zcWxpdGUzLXNobSAqLywKIAkJCQk1MTA0
Nzc3MTFEMjk4RDg1MDA5NzQ3RUIgLyogSURCRGVsZXRlUmVjb3Zlcnkuc3FsaXRlMy13YWwgKi8s
CiAJCQkJNTExMEZDRjAxRTAxQ0Q1MzAwNkY4RDBCIC8qIElEQkluZGV4VXBncmFkZVRvVjIuaHRt
bCAqLywKKwkJCQk1NzU5OUUyNDFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRD
b21wYXRpYmlsaXR5LnNxbGl0ZTMgKi8sCisJCQkJNTc1OTlFMjYxRjA3MTkyQzAwQTNGQjhDIC8q
IEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSAqLywKKwkJCQk1NzU5
OUUyMjFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNx
bGl0ZTMtd2FsICovLAorCQkJCTU3NTk5RTI1MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJC
YWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0bWwgKi8sCisJCQkJNTc1OTlFMjMxRjA3MTkyQzAw
QTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwgKi8sCiAJ
CQkJNTFBNTg3ODIxRDI3MkVCNTAwNEJBOUFGIC8qIEluZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tp
bGwtMS5odG1sICovLAogCQkJCTUxQkNFRTRDMUM4NEY1MkMwMDQyQzgyRSAvKiBJbmRleGVkREJN
dWx0aVByb2Nlc3MtMS5odG1sICovLAogCQkJCTUxQkNFRTREMUM4NEY1MkMwMDQyQzgyRSAvKiBJ
bmRleGVkREJNdWx0aVByb2Nlc3MtMi5odG1sICovLApAQCAtMzAwMSw2ICszMDI0LDcgQEAKIAkJ
CQk0NDhEN0U0NzFFQTZDNTU1MDBFQ0M3NTYgLyogRW52aXJvbm1lbnRVdGlsaXRpZXNUZXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUVGMUE0MTFBRTYwMDQ0N0M0QyAvKiBFcGhlbWVy
YWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0NDRTdFRjAxQTQxMUFFNjAwNDQ3QzRDIC8qIEV2YWx1YXRlSmF2YVNjcmlwdC5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk1NzU5OUUyMTFGMDcxOTE5MDBBM0ZCOEMgLyogSW5kZXhlZERCQmFj
a3dhcmRDb21wYXRpYmlsaXR5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE1MTE4MTAxREIxQUU0
MDAwMTc2MzA0IC8qIEV4dGVuZGVkQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdF
RjExQTQxMUFFNjAwNDQ3QzRDIC8qIEZhaWxlZExvYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0M4M0UwNEYxRDBBNjQxODAwRkVCQ0YzIC8qIEZpbGVTeXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRl
eGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDY2Nzc2YTQyOTc2MWIxZjcwYmViYjJlZGY5NDY2YWFjYThmZTQ3NgotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkJh
Y2t3YXJkQ29tcGF0aWJpbGl0eS5tbQpAQCAtMCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9y
dCAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7CisKK3N0YXRpYyBib29sIHJlY2VpdmVkQWxlcnQ7CitzdGF0aWMgUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBsYXN0QWxlcnQ7CisKK3N0YXRpYyB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXS1Bh
Z2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgYWxlcnRUZXh0LCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1Nl
Y3VyaXR5T3JpZ2luUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIGxhc3RBbGVy
dCA9IGFsZXJ0VGV4dDsKKyAgICByZWNlaXZlZEFsZXJ0ID0gdHJ1ZTsKK30KKworc3RhdGljIHZv
aWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYsIFdLTmF2aWdhdGlv
bkFjdGlvblJlZiwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYs
IGNvbnN0IHZvaWQqKQoreworICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0ZW5lcik7
Cit9CisKK3N0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZShXS1Bh
Z2VSZWYsIFdLTmF2aWdhdGlvblJlc3BvbnNlUmVmLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYg
bGlzdGVuZXIsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopCit7CisgICAgV0tGcmFtZVBvbGljeUxp
c3RlbmVyVXNlKGxpc3RlbmVyKTsKK30KKworc3RhdGljIFdLRGF0YVJlZiBjb3B5V2ViQ3J5cHRv
TWFzdGVyS2V5KFdLUGFnZVJlZiwgY29uc3Qgdm9pZCopCit7CisgICAgLy8gQW55IDEyOCBiaXQg
a2V5IHdvdWxkIGRvLCBhbGwgd2UgbmVlZCBmb3IgdGVzdGluZyBpcyB0byBpbXBsZW1lbnQgdGhl
IGNhbGxiYWNrLgorICAgIHJldHVybiBXS0RhdGFDcmVhdGUoKGNvbnN0IHVpbnQ4X3QqKSJceDAw
XHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1x4MDhceDA5XHgwYVx4MGJceDBjXHgwZFx4MGVc
eDBmIiwgMTYpOworfQorCisvLyBXaG8gdHJpZXMgdG8gdGVhY2ggdGhpcyBBUEkgdGVzdCB3aXRo
IG5ldyBzdHVmZiwgcGxlYXNlIHVzZSBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0
ZS5odG1sIHRvIGJha2UgYSBuZXcgY29weSBvZiB0aGUgZGF0YWJhc2UsCisvLyBhbmQgcmVwbGFj
ZSB0aGUgZXhpc3Rpbmcgb25lcy4gVGhhdCBmaWxlIGhhcyB0byBydW4gYnkgbW9kaWZ5aW5nIHRo
aXMgVEVTVCBhcyBDcnlwdG9LZXkgb2JqZWN0cyBhcmUgZW5jcnlwdGVkLiBXZSBuZWVkIHRvIHVz
ZSB0aGUgY3J5cHRvIGtleSBhYm92ZS4KK1RFU1QoSW5kZXhlZERCLCBCYWNrd2FyZENvbXBhdGli
aWxpdHkpCit7CisgICAgLy8gQ29weSB0aGUgYmFrZWQgZGF0YWJhc2UgZmlsZXMgdG8gdGhlIGRh
dGFiYXNlIGRpcmVjdG9yeQorICAgIE5TVVJMICp1cmwxID0gW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eSIgd2l0aEV4
dGVuc2lvbjpAInNxbGl0ZTMiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CisgICAgTlNVUkwgKnVybDIgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAiSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5IiB3aXRoRXh0ZW5zaW9uOkAic3Fs
aXRlMy1zaG0iIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisgICAg
TlNVUkwgKnVybDMgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiSW5k
ZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5IiB3aXRoRXh0ZW5zaW9uOkAic3FsaXRlMy13YWwi
IHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICAvLyBTb21l
aG93IH4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9XZWJzaXRlRGF0YS9JbmRleGVkREIv
IGRvZXNuJ3Qgd29yayBvbiBteSBtYWNoaW5lLiBAQnJhZHkgYW55IGlkZWE/CisgICAgTlNVUkwg
KnRhcmdldFVSTCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9E
YXRhYmFzZXMvX19fSW5kZXhlZERCL2ZpbGVfXzAvYmFja3dhcmRfY29tcGF0aWJpbGl0eS8iIHN0
cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdXTsKKyAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVs
dE1hbmFnZXJdIGNyZWF0ZURpcmVjdG9yeUF0VVJMOnRhcmdldFVSTCB3aXRoSW50ZXJtZWRpYXRl
RGlyZWN0b3JpZXM6WUVTIGF0dHJpYnV0ZXM6bmlsIGVycm9yOm5pbF07CisKKyAgICBbW05TRmls
ZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNvcHlJdGVtQXRVUkw6dXJsMSB0b1VSTDpbdGFyZ2V0
VVJMIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIkluZGV4ZWREQi5zcWxpdGUzIl0gZXJy
b3I6bmlsXTsKKyAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNvcHlJdGVtQXRV
Ukw6dXJsMiB0b1VSTDpbdGFyZ2V0VVJMIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIklu
ZGV4ZWREQi5zcWxpdGUzLXNobSJdIGVycm9yOm5pbF07CisgICAgW1tOU0ZpbGVNYW5hZ2VyIGRl
ZmF1bHRNYW5hZ2VyXSBjb3B5SXRlbUF0VVJMOnVybDMgdG9VUkw6W3RhcmdldFVSTCBVUkxCeUFw
cGVuZGluZ1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMy13YWwiXSBlcnJvcjpuaWxd
OworCisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGUoKSk7CisgICAg
UGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisKKyAgICBXS1BhZ2VOYXZp
Z2F0aW9uQ2xpZW50VjAgbmF2aWdhdGlvbkNsaWVudDsKKyAgICBtZW1zZXQoJm5hdmlnYXRpb25D
bGllbnQsIDAsIHNpemVvZihuYXZpZ2F0aW9uQ2xpZW50KSk7CisgICAgbmF2aWdhdGlvbkNsaWVu
dC5iYXNlLnZlcnNpb24gPSAwOworICAgIG5hdmlnYXRpb25DbGllbnQuZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbiA9IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb247CisgICAg
bmF2aWdhdGlvbkNsaWVudC5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2UgPSBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2U7CisgICAgbmF2aWdhdGlvbkNsaWVudC5jb3B5
V2ViQ3J5cHRvTWFzdGVyS2V5ID0gY29weVdlYkNyeXB0b01hc3RlcktleTsKKworICAgIFdLUGFn
ZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmbmF2aWdhdGlvbkNsaWVu
dC5iYXNlKTsKKworICAgIFdLUGFnZVVJQ2xpZW50VjUgdWlDbGllbnQ7CisgICAgbWVtc2V0KCZ1
aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CisgICAgdWlDbGllbnQuYmFzZS52ZXJzaW9u
ID0gNTsKKyAgICB1aUNsaWVudC5ydW5KYXZhU2NyaXB0QWxlcnQgPSBydW5KYXZhU2NyaXB0QWxl
cnQ7CisKKyAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVu
dC5iYXNlKTsKKworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6
OmNyZWF0ZVVSTEZvclJlc291cmNlKCJJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFk
IiwgImh0bWwiKSk7CisgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgp
KTsKKworICAgIFV0aWw6OnJ1bigmcmVjZWl2ZWRBbGVydCk7CisgICAgRVhQRUNUX1RSVUUoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhsYXN0QWxlcnQuZ2V0KCksICJQYXNzIikpOworfQor
Cit9IC8vIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHku
c3FsaXRlMyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWRE
QkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViM2U4ZWFhYWU5ZmNi
NGM0OWYzMDUxNjYxMTc0OWY2OGI1YjE0YjAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDExODc4
NAp6Y21lSTUyVXRfZHg0YGRCQnxzODdOfERmZW05OHV1TVhENEw2ZnVGSUM9aTZ1WSFwRlYjRFdG
SWhGdVhHUnUmNT8KemlYRlJSY1d0O1JERTk3fm4qYjc/P3otOyN8RykzOFhZJUU4QDBwbzFiQUJe
LVpxQSRscCMlTEJnblVsQ0FUXjBBCno8bitlbUZjSnhLPDhVd3hCY1puQGRVcXNnYlZCTDRLdEom
PT1pZlJkVkhRanxydENDS2p5NHUhbzNNXkRyIW1jQgp6PWc1cWY5VzFMYUp6bUM0cyM0bThAcmY+
Xmppb3olTzl7dzwwMXlCSUs7WWoqQWc/Yyp1NC10QT1Re3x3eWhPZXEKektmNTE0blYtclAzUjJT
fkY2MkJ6eXhxZ1JJYnJTfHtAeHNrRVJLPFlIO054QzNgTGRyekZyKlB6JWNLQS1YV2E4CnpwZkZC
Z3hXN0xxRDNJZUI2ekpwYz5sdyFKYXJnRC1nYWBUIzRFTDZoaGo8NzN5TCk8QGFiblhgUX5BazQp
V1RtWQp6R0lvLXFzUmtKMFNWRDNmS1B6b2FCNl5DKGFNT2hYKFJHWU9GSnI3RkY2SHhXUyModGBF
eGJUJXhpNnU/SCN1ST0KemRCVD5reEtxcUFOe0lYR298JG95eGstRlpuRD0xQjs5REhiSURacUk4
RH0mPEpENGpSJD9APEheN3UydzMyRVdVCnozMWlhdi1fejVpXmg5QlRjZHtfYGR4Ky07JWd8TCNQ
NFIqVihTIS09R1YleXN3QFg8R2d4eFlGS245MlMyRHBicgp6YXtSbV96aXJtbjxfJDVRejY8dVpE
fU9JalZxKkN3JDlALTVFfUJja2chKyFWIVB0ZEtReXBtZnR4NFJDVDh2Rk0KejBuMGA5P15MKCRS
LUt0PSZKWWJ+elB4QmFlWjQlcXhhZj9WI3V3Y1VsOSRwRjFLTz1EI3xWLTlpeil4TFFSdXcmCnpH
cXtPcCN7VCZ8VzklYVJYWGJZNlFqQiNzZmxRdFFPPzJEbXlOSnk3TkVHbVY1KSUxb29oTmgmNkZi
RW1CT1dSbQp6OV4oSE97cmo0TTt5RF9SbmhFXnRNZDRjdGpJRV87c0BfYFBua0puY2pqYCFHV213
YXt1Wm5lTjYpRSZeQmk+a14KejNZRCZedEJkRVFiI2U7ZiN8bCM4TTVOa0pZNSQ4PWR4cGQjQXct
YipKQD9HX0BpbVU3JntRcTtAJD59b2Z7a3ZuCnpfQlB2Qj1yMDBsZCsmUyR5fVNvPU1BPT03NXw1
dipMZWNhISZVWXIkUnJVMkg5dCZNLXdWeldZRVNGVDFAViQ1Ygp6a0ZFZFczRnNOKj9AdjZCKGZ0
MD9IUGVqSzwqeGV2TmBmIXp5NGQzSFRGSGkhNUljMXxrMTBhJTY+UXtvWjAjUWEKeiMzUiRTOTVF
PkUqQWpFYypHdSY1R3RMWGU+OGs0TGM+VjtAdn1gWmh7KH5lakN8XzZlSnV8VSQ4VCk9LVYjdDU7
CnpxKSEjeUpZNlZ1ZEV5eVUoRzVwcHphczhDUDQ7e0NEXmZhMTkmZzY/O15sWllKX3ZXaD5EWU8h
MWRBcEx7T3gyVAp6TWBnSSVWQXliQz4lYlJGIylPelBXezxnSnNwIVNVdk4wTnh0OTAldUM9KDYx
djhqd2BxSy1WZTIqKG1jd0h6QHwKekVEX2E2IWNzNms3U34rXm5XI3U0a3A+JTltc1k9TT0rLUsr
eUNGKVZJI3hfNyEtWiYtZm4/JklJKEJjUmJINzdXCnpMdFUyMihDNDVVTUJAUmRaeiY+Y2RURCh8
Tm1+WUduemQoIXFBbStYblZOSmUoSlk1M3E5O3ZkU1IwQHMxY057PAp6OW9mYzExeWUtQEhJTko/
QlIzNU9EeTduMURpbzxuNiVpUkJEeTQySk1QK3olUF83SXJ7S1k7R3ElOXUzSTx6VF4KemRhaDRM
cypLdUlnYG10NG1eWVR5LWZhYj5Bb21tTTdSSUJ8N3srLS1JYnZLcTVPeDlUN3x9XksrTXZsTG1Q
JSpoCnprZFEzb3J6VWR+b2g+YWJvb3BUTDw2fDlkJXd1RXVUeXRCVkJoVEVhd0B0aXhvU2kpey1W
d2Q1ZDNIbnQ5cGpXPQp6b2tGRUVUbmdHT1Alfm9VTnI+UEcpRzA2WVE7Nk9+Z1JENG9BbGAwXihF
JDw9MDBLWSYybWs+ZjAwZSpsNUM4JXwKejtReTlAIVlCJml8MlZlJEtSKEZhTjw/bDY7Zn4wbmNr
VlpSQVMtQHZEPVJ5MG9WZ1h4IU4lT3lGNG80fXYzR0E5CnpiMXUpcCQlZTtzaDxEYGpNR2g3blhe
OXNJRVFERD80dz1kQEhmVjIzP0Q+ZUJsRUZDVitwMTVlZHpoMXUoPyljTAp6PXMqeTEjNzNkYyNK
MFBXQih6PFlvMDJMPjtpbjMtRFRHc0xnO04+azk7aTZzKV8tdmJpT1A2fiElRytZdV5SZUYKenM0
aG8lPTJrS1RGIW0kMUQ/NktBJWRUV3pXXlE5b1hUYDhJUypLVyEqbGhOQkhrYjkwWk9DJEF6R3JQ
QDx1RiQ7CnpPUElNIzBkcDhMZlozTzYlMlo9QVdaJWQoJHpHRFZFd2VgRXowNl5tPjlRKWFyWlRa
SVN1ejc7SiFFNUtEYGR4Xwp6VypgOXBBT0hrXzAxeUJJS21aNTtmcXhOITl1KFhmci0oblAyY3k3
PUFCdHU4VV5iWVE1KFBJVkdLaEZlfDh9dloKenElWih8U29nIyV4fmd6VChWMC1wOUY+cDIleklJ
QTdlV09RRTl1RGFNQXwpMjBZfVZDamVeP3wqfnFvJSU8aEwyCnoyNEpSTiVrbzZeSlRhNTZYTjYl
UW1+cSRNZDg0dmtzTitUfDZ4Xkk+aDQzeEohY2YkanAjfXYtMzZZcUgtR2B0cQp6eVE0a0BpTWtQ
dDhGWCE8QlFxRWszZFFzLUQwbm5ja0JJWSR2antPIUl+Vz01aU8jTGpjP0xTaFYwTV9FODNtNmQK
emlwekJ0N3hWZEFWTz0+MnU4b3MxNGwwWTFsJCh5RTBDVXJwNmcrazFoeTxqTER0Y35Pa14mdktV
WGxXaW8ySH5kCnohJWFneyg4RW4jUWxSOWZDTWwzfT5uU09hYV9iPX16fSE/TjF5NWE3YlNWczk5
Mi11IXFkdWJXOTEkX0kkN35WMQp6ajx+QXdTSWhLOXYrK3dBQzJiMUI4fGZpcGhhRks7JHI2Zk02
b3h4MEBnO2dJblhtOF80VStMKWBUd09zR0dFU3wKeiFpWXZLZHwjfVctOT1rUmtHbj1gUygrNHYz
KTElVzclbyR1IXE3KiNVKmZnMFRfb1psdCZBIyNWVTVaVjRzK0wtCnp0YUtONypDO0hiM3hPfFd5
VClJb3k0MzYlYmZxZyY3eztoMmk2RTspfEdQJi1zYTxNeFkpZXFPJFU2MjkkWCMwTwp6eD9AMDZx
QTwpRS1NMHBxJFdydkJlQEgrODJtaz5mMDBlKmw1QzglfDAwO205QU9Ia196YHZMUHY5fDtNfEcj
KkUKeiE4OU5NMWJfZSMwMEtZJjJtaz5mMDBlKmw1QzgmKjAxXkt1dkdYelowZCMtXzFiX2UjMDBL
WSYybWs+ZjAwZSpsCno1QzglfDAwe2h0MilLflFjbjxBe3xFYCh+ajtkMz5USyMrZUIhU3JmJiUp
U3kqamZKfTEzQGhpMDBLWSYybWs+Zgp6MDBlKmw1QzglfDAwO25xcE8lMEppSmE1KHQ2dXh9ezRz
U0szITx0QXt3KkVmPE1+XlFiUChWRkMkUzRMYnsjckUKejBzPXEpMm1rPmYwMGUqbDVDOCV8MDA7
bTlBT0htWmF8QiQtSXJ0Q24xKDVvWmF+Tk4oe1hNJD9WKm1kVSModT9xCnpecSheakd5PyUzMDBl
Kmw1QzglfDAwO205QU9Ia18wMXlCSXwwTSNfPGVzP3JpdnVKRXhoRiMkfDBsbHhQaHBvNAp6fE5y
azBkb3d6TDFPJEtwNUM4JXwwMDttOUFPSGtfMDF5QklLbVo4Kl9Yc0ZhJG1aKy1aZE1SKTZoQnJO
RGlveWgKemVaOHl8JHopVHU3Z3h5VGFudHlOX15EfExmQEV1YjU/U0E9TG0wP1M7YDZ3JXFjZ2R3
YVdTIWlxIWd8JmZ0UWUmCnpBazA/OFFRWksoa1E7flVjaG5gfnt9bEUlakQ0TWJsKWE3Sl40fktN
U15AJDwwMDttOUFPSGtfMDF5QklLbVo1Owp6MFUhVmJ7KUIpTSomT2VfRitmb3lvOGxjPzBQVmcj
UyZwcFZEST5OOE5ENT9BTXo7K0JRVCg1RTMxaW8/QyRKc1IKejJfenJAMWJfZSMwMEtZJjJtaz5m
MDBlKmw1QzgpSVp3U090PSRLWlhpSWh9cVlJY2ZIO0skR0FyNmVZIzM5WVFvCno7VXFGOE9xaVgq
QUN4OWNPLUxSZ2hZI1o+anU1MEsydUNKYUJxSnxiaW1BfDNVMkd8aXdfOGxAWDFSJE1uVEJhKQp6
RnItOV54UVhmZjQqaDN3bDFSSDhDTTZAK08kKWkzNzZtc0Y0TzJ5MEdKYVR0RF5BMGRHbyhjUV9A
T1J7PE53VlYKemB2ZHc1MDhpUD8tTVI+dUttWjU7MFUhVmJmQitCeDB6ZCE9MDBBSFgxYzFRKkQq
e3c5aiNEVmFreFY5ekJvZGotCnpWMkooeWF+UyZeYHdqYXh5WT5ILU56aHAhMDBlKmw1QzglfDAw
O205QU9Ia18wMXlCSUtQPj8hU3F0eXsrNT81Uwp6PmltKWRuTCQ+P01QRGBgKGFGalRMUVpgREE4
WUBqIWNVNn4zPG07MDAwO205QU9Ia18wMXlCSUttWjU7MFUrPSUKekMlfE1zTDRXYDY0I3N9Wnsp
MnNve28tRzRFfD49ZGZCK0J4MHpkIT0wMEFIWDFiX2UjMDBLYlpVcks8PUJFSVl8CnpPYCh1K0RH
SVdZRG4qcVN7U3A4ZkNvYG5yX3k3Tjshd3pOdjBVIVZiZkIrQngwemQhPTAwQUhYMWMxTyNOfSRX
ewp6fEkzU2h8RFEkdHt5JjFEXz4lJHd2dzs4KjAwS1kmMm1rPmYwMGUqbDVDOCV8MDB7Z3sxZUFV
elc1SEcrMDBlKmwKejVDOCV8MDA7bTlBT0hrXzAxeUJJS1Bkc19wVlYkSjh3ZGFhQU9Ia18wMXlC
SUttWjU7MFUhVmJmV1hnMEs7PnNMCno3SGtDcUttWjU7MFUhVmJmQitCeDB6ZCE9MDBBS0lsTSt6
PE4kbSErZmRDS3kwemQhPTAwQUhYMWJfZSMwMEtZJgp6Mj5lVjBkaStlcmZ+YE9SMm1rPmYwMGUq
bDVDOCV8MDA7bTlBT0hrQFFVWDFIUW9GJXlBT0hrXzAxeUJJS21aNTsKejBVIVZiZkIrQngwelZU
MHdWJW1ZdW9WYVowVSFWYmZCK0J4MHpkIT0wMEFIWDFiX2UjMDBLWSYybWs+ZjAwZSpsCno1Qzgl
fDAwO205QU9Ia196YHYwSTZCIzlrTVB1ditifiQ/alRiYDZvbEU8Nnp5PzhtRWpTcz98YTV7RCNE
P3RUKgp6Qi16TU84U1hZMUhlNEZqX1FqR2hBIWQhKVdBMGNnZFUzSUFqRTNZWWxuJkxSZT87aVVy
WlM/NUlgVCp5andPZ3sKeklieG56QkMzJnVyQ0B3NHVEYkBaZ2EjV3ttc1k9TT0rLUpwcUsqfWwl
NVdpQ1dneE0qcjtnb1EhNmo7XyVUZ0tvCno5OGBtN0pPSzRBTVB5QWN0PE5aRiViLWxOX1JMViFX
dVlpamxUSWE/PHEkPm1xXlMmUjE1fGB5NVF3RUMranl2OAp6cztIbV9sQSZiZXJvbGpeJl84R3Bs
P3B7X1Fian5ZaClTdU9OPkxmITlGIX1BM1YqVEIxOEl2I3VNVGE+cU1xeTEKemt0KEJoUlVzJkkx
bT14cHdSYytxRGFpZVZ4YHB2Kkc9Xn49UUh+ZkY0fUBLU0khMUpvP1MjdGs1KFBZRzsqZ0xtCno8
ZmtUYzZQK3pCRXVDeH4/Yy13fFpPbWgxYENNfmJvK0hvUHNrY3FNZDdQYStGV3dRb3RhKX1zMTBD
YShVITZqdwp6R2g3UFZFS29DSTt6QHwkMi1HUHJeaXpvNU0xIW4yYlJnYnRpX3JsUjVDOCV8MDA7
bTlBT0hrXzAxeUJJSztad0QKemZXanlXO3J9P2NgIyhPJi1BWTdtM0VfXiZxSWQyJGVJUDQtWiEw
VDFaaylMbCYld3NyKS1La0ArXzg2VzgqP3R0CnohTzRjbGJCSzUzQDxrMzc5Y2hVZDJyUHRJTEpw
YkFGZzlwIU82PldGbzA3cGU9aTkxSnIrYilfa2tkd1ZoVWg+TAp6YT5QY1YmY3dGNmxPIXBtRGtX
OHIhY1BAdVF3WFFoM2EydjZKeTNCZkQqbllHQnI0K180bGtZWDIxUn0tUUdAWFIKemxfflpaYCM4
SWxKKUNYQ2Rkai1PST49aGZuI0lheUBtUEs9R1p2TkUlRGx8biYjYUt5JUJWJn5BcHJwKEBLWH5n
CnolRihDY2NKc244M057P0FYSUthcGlrMkk1RUV4Ul42KWwkOUwobWUkT0chKmY2SXhrYXopNTVa
bH00OHUlMUAzPgp6JX14Plc8Tld5OVFKSmFTbG9XTDg/SDROS2opPShNcj19JGNsN3IrYWA7WUUo
LU0zQG94JjFlc3RhUWV8aj52RFUKelJabEVqT3F2KiVuRXNBQ2BxK2xLakJCfEFhe2dlSEhueUhC
KFZCNjVZdU50ckJpfmUxRVNPIyR6SDlOYjYwPHs5CnpUR2IwOzgjbkJeekdVaiFgP0g9Y0paUExf
QTZFTm81cGAoOHJlaClBP2wkZndifjdme1AjI3RKaEFjNnkoRmBgUwp6cFFxWSV2XypBbiNeY3c4
UVYqVDtARnBNNlErdXwxO0l3Vl83dilGd2t5QF44bkFWU1RjOUgreXhqOX5lKSU3UTIKemwlM3di
X3FqMT1fPk9mQkdtN3VuOHJSKEJ5cXIwRVpNSkRkRHg+Kz1hJkp8QjxSNGQkVH1Za2lJcn5KSXRl
dyVTCnpeK242cFQoVzY/dGJPSU9ra2orVm4jdnU9MmM8cm5fKHVgZlh1WmpIREllenp5JGF0dWp7
QzUjPUZPQ3VGJGRsMwp6e2lMdCRgfFhxTiZDSThAe2p1ISMrNiQ3M0htMSFCVVJnWXs/JGpZTlct
WSp7aks2MDVgX1N+NytLRWY4WV5yMDUKem5xOF9nX3MqMCp6a1Q1RmsyUHUyMjVhNUlpeXwoV2hG
I3VCdWRjflVvS0V0ZXo0KFVmc1FVODk2PEhzcnNXITQ2Cno2KGslVFhrZDc0WVNjOWdAXzNgdHJi
fEExJi1xVmwzWjV7KD09N2NpUU9VVUg8YmdxKFB5UkEoXlpDT2l2VG99Jgp6SHVTUXs9KmpaY0Io
YV4oMXVII04qe3c4VkAjKXZvdTd7QFcmMGlHTFImbmxPYjUjODJ4aHF2U3p5Q2RQPyNARnEKenVj
aS1jUU9GSGpZa2xFfWlfOGRLJjAzRkZ0dV55NkY+VzV5dysraW54eFBOLVQ2eHEpbk41cmE/YTww
ZEQ7b0xvCnpWNGlUbXFYJGV5byMqT2BYOWYqNkdQRylXQlhqSGk8Mn0tell5R1VmbngzUkRHbl9v
UXZaWWs2SlkqPHUmWGU4Rgp6OFJ1aVJqdkojTCtzSW95RD1JZj1WZ0Z1LWREKUpoSipLPlFjJWJ4
bjt+WjBFOXMyfndfZmpUVkkpbH4/P2VESFQKekNFKENHXjM8ektUcj1NJVg8VypCeUM+ODVSN1Nz
bSkyQjE5b1JaI3VScm9IRHJhais1WVRuVTMqT29mUzRWX24rCnp4bjFAMFZhTD5hQUJyNm1YNnFm
QXJoYStrTnFvaXYmKGUmRi0pdE8/Tyk4I2V1KXB0JXlnTkpNaG9fWW04TShNIQp6bzsxMXFmIVF4
LXRpeSRTTTshSyhANXlMZFJBenNuemZhQ3ZKQHdVfUEwRjdebT5aPEk9VFRyYEJZV0pmbGRiT3QK
eittRypedG95ZCtadkFjWSNnPmA9MXRlKj11P2UoYHVDazJeYHhAOFpzJDZCR0l6M1BLa2MhYHZ0
JEdRemdeQisyCnohITgtQ2cpVW84VFMyfX1KJFBYNnN8NEJCcGxjJXpUMExlQWBLfEI2Xl9iZH1W
YWg1bSoqQWtHWiM0KlMzY1M/cwp6KlchJH1QPWoycmVjS1ArSms4IWB4SnlALWBaaGZAY1dyKWIh
fXpwWT5xbE4mbXM0fn1FQjFvQHJYRCpCKldCTkUKekFYPE5PbEleaUVFeEpROVM5YEB+TU5Jam1u
VmZmS1czLS1jUy1zYUpFNnlGcENCZD9NWnQxUEZrK1pudlo+TnE9CnpYP3JIKWxYbH1eam5lKHNa
d3t0RF9jWkgyX2o0JWtvVzI9JWh+cF5EaX1vXlNPflM5MGEwZm41ekBDT28/NyNRMQp6TEVPZ1N7
Ykd2eFJjNmtxR0ZVdUtoUiVOOVV0ZVpWS1lENysje1I4SiFaITh3cXsrVismWXQ3QVREOHUxZzBA
MSUKem1SX288NG1ybSZ0bjJQdjliZDN0ZC1mfSooU1plUG9DWWB4bztEdTdfTGZ5WU5xXjxTTHNn
YytSfVRieGBhQWlUCnpeP1czKWNSSVZWcDB3aFdWbkswRHFTdyliN3hGeUAzfXRSYCFDVHdCX0E1
NXNrNiVAeXR+UkszczcyWXtzRGU1Nwp6WHFKX1dUYCU/eWBsUjs2QGJ7MzUqU0hxWG9fTk1mWD5O
JTZIQ2ItZ2lzaH1ZI3d5T19WPlFKV2UkeyE/eDwzQmQKej08MiVYUSgwdHd1T1BWfG04bGw3PGU7
cmE8VCowaD5rM19GN3cqeVZKSXMzPzdiR1hBYSktNyQ9PHx8PzYoJUo5Cno9OzJtWGF5VFoxJHoj
MVJXMytfWVFRbElPc0R8UmwzI2xYS0t4fnFDTm1TIVduUit4bGRXcl9JMHV6eEVAZGB8PQp6elQk
UCo0QEZFdVFNQVB6JVJ0OCUldWMqMipDS15LeEdMaiUhanhNI0ZYIU1CMCp7PC1kYX5+RiUwJDxQ
RlByWiUKeng0cWh9YmhkTyhuRWQ7dmJ3QE1zIX1nITJEZGRsR2R2PDExIy0mQEtwO2RORT0zVkMr
alpAMiRSaENYbTlHbypVCnpWRV5odkdscUd7dHo3eiVQQ0tvQT5fcUt2O242R0lLaVdMZFN6PFYz
IWptaWE4YGJDNkV+LT4wZTNVJTcrJTVYUgp6ZU8rMSVDSGlodSNINmFAPm1Gb1A5WDtRPVlNO2lE
aVN6ezxFbXQwfGE2WjFtXn5UaXI0K2BURy0tTjB1PVdvPEcKejYhRntRamVoPkk+KmZ6X3QqVXJT
Ulp8KXplfURLcnl0KGRadjNnRzRoSCZMZko9YjJ8d3FBSk5efGZ0dGY2WT9BCnoqKVV8PXYmajJQ
cl5IOWolfEU8RisyVF4xJkNtLXN5Xmp1eWooOVpnenpacWlZdE4/bEtDXj05PEtLKzxfXkJjRwp6
e1hEck0jKUlXRHpiNih5OTwjeCUoRD5LM29CcUY5cHBpRXk+WmNhLVk7Qj5vP3ktd1Q8OHV6cEdU
KmdYYWMhT30Kejh1PTFxX3B4KTVFaEVRITJQSy0rWSg2YkhAXzAwIWctO1U/XlM0R0dwRlQ7Yk9U
IzBsczFZTUMqRSNhdVh0YXN2Cno/PkVNTS0jLXw0LVJVRkdHJTlDRSp7V1IoU0NVV3ViPjl1Z0JD
ZnxmZVNTO2MkbiFENXlyYC1fKjA+MUBjU29edQp6dTNUMkdiPDNJbTtMWV5XMUsmUWZ1RGYoaHFx
PWE7SDBLcG9BJjBMdz9XdFJ6WDxSdzlxLXN9PWBxZEJhWXhDQTgKej9sV0ZJR0hFQnteUkVzIXFP
WUE9dzd5ajklJU98eVdgNEVDY0I5YGtuYnIyb0h7bGBNQk52WF9ITyNRMGJ3KGNkCnp0bW87fT15
QCpsbm5JZ21TRGdNN3A1VkgoS3heU0lLRlkkVDxyYFpIJlolOUJvRCM3PXQhM1JCLUx2WiktI1Jz
Mgp6U29ZIUUpTEFkNEpZPGMmVChgQVYtKjU1VXN6UFNHblR6QTJvX1B+aj5CbHdpZCohYFZXeUdg
TWhMKzZMZyolZWYKeilfY3UhbGc7VSFPZkhLd14qdEdLTXJGZjx7ZXJ6Mlp4NEdZWj83cGpkdGlB
P0s7WXZ4YDVfZkFIbmZiQ2VLMj0rCnpmVXBxX2QkTXVudjk/S3tkYlcoe0Z+OXl3NV8/RjZ6MWZH
SkhMWW1hSHl3NlpkQmNEMj5zKzVhJjlHSW9Dd0NrNgp6cD9EQDxeY1Raa3RnSilEd04pQE8jdTFt
NGF3RUp0YiFCWnlGKHdsQ1JPVSNFcFNsdklkbmp2KCNIMD0tZFpOPHUKemBuezBZOV90a0Foe1NU
cDtteiZPUGZRZTtNRj4oODxGcXczUTg5eHIjVzxwM0x+SXUmNipweEtOI3o9JVk9Kk1CCnpxX35H
akVUeWFfRE9NN1I+Qj5ETiNkMERzdCFFRDs/KTlaPHZHcjhLJX5lKkZ0UldecVFDNSlAaXdUaEpt
OGxHMAp6Qkc1fkNeRkVeSkNKfUo3JDg2RVVER2A/TFR5ak5XWD92eHcqNldTZ2JnemU7YSZaI1h2
c0ZZUFRCMUU3TUI1UkoKent6QCg0UT93fEZZU30xczMxTiVGKE87PVU0QyQ5VHcoPyhUPV99IU9n
NHZmXmcjUnl0LU4mVElHbkF4b3goPn5nCno4YmA/XnVPY25ONDxobHVCanJVfChReFpZRU1temRw
YXJBMndqVDtMYD1IU3l1Qz1TdDttMDB9YSl5QDRPQnkmQQp6JmFTc2dfUjIxP29acXU4Q3d7RWpL
SHZBbFIxMDY2cUU9MVY8bV4jTkh6QT1GcVImQypsM35YTyNALTJFcXBlYUUKej5pKVdOYXglRm49
PiVGS1VmM35ueDNNYTlgZHhUPGZBO1I2YXllV3x6TCZBTlVDaHwmO3Z2QSUweG45TykzV19+CnpY
NUp1NjhnNDgkanRKVEpaI1Y1OTg8cyhtLSNwe1pJVkx+JVZzT08rWlM2ZWYtRURHYjRtR1V+dmta
TEtCWHd8IQp6ViV4WkpGRnpvfDxmPjJRNThVNSZKaEpjUF9uIzdgVW1RMjAkJGFqbHRmOXktZ1VZ
K2gyYVVPNF9+M2RVPEpSMXYKeldCLU8+YDd7Znt1dy1KPyNEKWMrZChCZmtWaEBwfUtSOTkkVzV6
NHdVb3hZSTY7aVUmRVl1JkJEekM3ditUeWQ/CnpgTm8jMmg0MGV0LUBJfnJ7SVY/VUk2YWdsS2VD
P2NGMCo/NT5QMGJRaFotMEEkMUZSZnM0e2w7JStneThjSHlRMgp6Unk4Q3dNTWxrZXtlMFAka1lA
PTkjN1RHNzNkPkM4V2V4UTZXMy0wdEc0Z2h5I1UpKHItKyh9PGhsWHVgNXo8UCgKeih6eDczQ2dP
WjJoPyhwNmlid0xCQlYzeW9XaUJ5Ji1PKDJ9aF5NX0Q3ViohZ0A5JEgmY2w5Y3IzWjhIN3h6KUM+
CnpmfXlkd0A3NEk8RlcxZSN1VihBSiRlZHsjZDEyNGtnUUptZ21XUiRxTW8jeVpTNmd2bSkjKk1N
Qlg5WiRYV1JTcgp6ZHlzTTIhTiskTVdGMzNAYGVPUWxNb3hzbS14JWUqO2J0YDRNTGQwcHghcXgk
QyVRWDVrZGNvNit7OWVuI1QkcDAKejN8VmQ4eF9QK1UqNXpnSV8qMiVAWkVOfUhKYWdaJV4/QX5O
Y3RfWkBXZF9TNDZWRloySCZvfDc/YkMyXipVKmFqCnp1NFVfcjk8dUBfLXgpd208aktEQDlhZVlL
SS1hcjYqZnJePHtORktnczQzYmw1dH5TP15CcEdrTHo2aytwUFRucQp6dWtNdl9TNXdOcE8ldFh4
X3xmKWs0eWBaPXpFR31PYEB6S1Vnd0RqMDd0PVRJYVhaMzU9SD1iZnVPKTlSKyZ9S0IKeil3cl5f
MmBjSTtJcUF1KmlkJkYqcXFOaSg3a0BmeVA7QDA+M3JEeH5ffT88bTxnNGErcVZhM0xUbVEtV0lA
dFM0CnpNRWIhTUV6RXY/RkZ5PTtGbW9BYSRkIWJFQys5ZE5pUzsqPHJVcUYxcyZMLWtpOXFIfWo2
WGZNZUR8WnRpSTMjXgp6aFV8JmMhRH1PKSlJQiR0aXA8K0ZIXjZ4UC1JZU41KkRrNmFeQWZvSEUl
U2BPVk98Kld5OGlKaD5tNkF0cWZtJm0KemNPTShGdzVyLTxaSzBpbUBMPT9GJTJtVkpXMGMhdV9S
c1lTQTl0dlBoUm1DeEQxQXJjJk1NMF4hQlZWcigwVTg8CnplMUU2bUxIO2swZEhRV1RlPm9OWWNI
KWpKaSU3Z0BZXmxGdFVjUV9XVDRmN0o5am1OMjhaJDVTNUReKm4/OGpHRwp6PyM5Q29gbjM5VUZM
V2xUelZVYWVWPUM1c3MlRitfMzk2PVZmNFd0elRySCN8cmY9QWpATz5mVWIrcm40SDRVNyUKelN7
RE9WWmJ6Jld2Sk58NlVacDBgSEI4ODdFR2hpaD4qZDUxRGMyVWdrfS1NaFI9PXY+LTI0ZkhedDko
R15oWmMhCnpaKylpT0tSST5hSyZhPUg1aT9jfXZSN0RxcmRYIVo3YT9JWnRUVE9FJm98eXojRDM8
T3hPO2dBbEN0ZWJ7JGptNwp6bWRgaCY7cFQtIzFRTyFZa3tBaSRTJk5gfXxGQUQ1U0dpe0M9NjQ8
fnVHZzJvcD5EaE1kMVR8TyRsYUYpZD5YbFcKemxtRDlLI2Z2dFVYbm92aFloMntEIy13RDsxblNe
KFFMe3sldDl4TStSenhAQ0VqbzI8b2IpRW1neGxLI2AqSEBhCnptR1JxS1IzVitlRCZ9T1d6TjFE
PihEWjk5Q2ZZOUJQWTZ5ezFgSGNLKjA2UzNVMUkrdilsdnQwQU1SMTlIWH1YZgp6e3EtVHVuMU4y
U0JoUnlgeG5JcEBFOFFNXl8wU2BBWFhtNmhLY0JOe2Z6cH1GKyhpJU0jPUh3dGI9czRTOV5PNVkK
enU4eGo3VXI2aXFaMUFEN1RWKXEyanFhPj9HfnVxfUZAKlFiKF5zRlN6Y3wqWStkQjNCeXkrUWtr
fWVIKTd5RT0wCnorWSVefHpWWFFnU0RjMCQmflBYNUU7OHx7eG5tYk9OVkd4Kmkpc0koZVBzRW55
d0BqN2xkSkVDa25PaDdCVVU3Wgp6b3NyczZ3V2FVeF90RkQpNHlvRGBfclBhKmZ3WlpZfENYQE5D
JXQ8Wm5DN09PRiNEaCU1WiNMc3ZhP25yQFJ1aFcKekdMfTBudkRqa20rKj5QV0whaX5nZ0xSKkBE
SkZ3R2laJFBEUj1ZYj9YRTx2JnVXKWVyUiZ2M1NDa0FLeVJHUTtXCnpOI2lGQCZNNFh4KFdBfkpa
R2w/KE1QdSNUdnVOZ1BaKkdXdnpQYi1SKWJnbHpMdD1MUXNLK31xMU5NO0dua0ZBPQp6MzNQR3tK
YjJQTy1+S1Q8eSo4MUh7U2x8TT8xZklsKXprYiYtdE5ZTVRoKX14JnhKY1o5WG8le1c0ZndvKn1u
TE0KekJMPlJiQClHVDtoYmdLQXJKUjN4RnNFd0NHbjN6VUp5K1BkIU4wS2FwM3pJQ2ZjK1E0WDA3
YWZ7Xjk5aVdoZHUoCnoySXk7XjQ0SWx5RipmfDxAfHtROF8pYFgzOSQ2Um9iZT4xOCRAOWQ/eHdq
e3FlfCVRPWAjfGg3Kn5RcD5AenBsWgp6VlJ9IWxHOUglSVQoMVp6eldhVzZSOGVmKGI/dUxuNFkx
XjxCai07cTc+RmdHV2wxQHxTdngtWll+dSY3WEQ/SHsKekV9d1dLd2ZmK0o5cytpc2lCOCFlKGkz
bWlLMFUwciF7ZllDTiRhe04zJElkbD1VKzkjPWYqNkopKDstb1UtfGhgCno7aTxDJFlxbDg8KEU3
YUI/dlJTPkFleWhrLUM9SzZPJChhUHZUV09nc3E8e0MlVSVATWo5cHh5Ril6ejlMME56MAp6SGFE
KFFXVDlacXU2Z1JJM3RUMi17NlNqYmApdWxhJjgtO0x5ZSojQVk7KmZ1Wl53PHRDOzdWMSRja0JY
IXRJKVYKentqa3JebXNJdVpTK1BRKDZlRkU7WDdgTn5OO31rXzQ2dUdfTVE9NkErQnlHVCg3Ukh0
T1RYQSVAb3VibUdyZTl2Cnp3JV8mUjdqTEo8Yyo+V3A5RDkjZmt5KzwrV0s7UEM/TEpPMllrc0A2
I19pTCspND9iQ2ApM3RMamdCKmF2TmtxKAp6JG87YG4ze0szQUpZSnZVKkxNWnBhXit+Zjs1cHVH
NXhNbyQ0N0NrNkMqQHRmNW1WbHFXRXxBcmA1bFE8N0JLVygKemtOSCZ2WigzPWwlflJHP0gkVjIr
IUxoJEpjNFVCUlk0b2hPYj9YQ09QSU9abmUxUEZkNG5NIXJZLVJhTF5eeiMzCnpncXMkNnd5fE51
NCRRS2N1K193SyF+N2ZPKTJmeX0qcj5afisqN3dnLVEwJWkoZk9CY3FncmNkUWs5YyN6eDdhSQp6
SVpvUjxQfmhpZ1l3QTRWTmJZaGdVN09PSnJ6WEt9XiViKnZrJXReRCV+Qn5oVSt2dzVPS1ZVeEde
MGpEJjs1S3UKenlUNHRgPSgkMWlpZk94Y3lYbzJTb1VQfm1LRm00WCNOZihCVmByfW9vSF5JeDZ0
cGVNRTJ8WSFZOWxzJHhJTihVCnpRKVRiRmo2Y3BrelEzNjwjTCQmMU94QkEmOHl8RFg/MHY2aUFL
cVBJKkBWPX0tZmdMV0tXbl4wVSl6Mnx2RXlARwp6S1lkeV5WdCZEYnEkdit1YjNnV1hVZ3FmRnR+
aFNAbHdUUndHYVdPWSMkeip6OSF2RWFZY19kfl5YTTU1YmVFbSsKenY3RUgzSF8wVTsjVjxLfnA2
QWxiR3dkSEc3RWRkNDlBe0xDTS08ckpUfiN5ZG55fkRSekxSfFk9KXBRKCZ1Z3EoCnp0YTROSXtT
cj1qSDIyOGg5Nm4kJl5WMV4tbUJtZEorTDI/Yl8kT3ZPUVpGa2toLSZsNz9Ya1N+e1FaU25CS0V4
Kwp6NVVxMUVZUWVJSF5vaWFqWVpmLSNqTkxZPiZ3QVo4MThARnpafGB1cXUkQz9GN0xvZipld01R
O0ZNaXNGND1OYDkKemE8MnJtU0leMC1XX2pLKD5HI0dhVllhQG1YMTw5PEJXZENea0FUfFBkbks+
bSNuem41YG1GN0VmQXV1Mj1mfCY/CnpvZllhbyV+fmJQOHRZXn18OWJUISFOQjVRJTlKd2lGMElV
Jk5xJSpwVnlUUzlQUyo4eDMkK2c/RFU5dl5hQ0BlZwp6dEomO3Z3K3dpRjw8VDFLbThPYHM/Njxg
a3JRWSlVMjBsSjxCRDdkKGp+Y2goN0Z2VFZBTkhCNUR3RkslZGV2b04KUHZyZHp6PFFue2FgXmYo
VFhQTWVpCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHku
c3FsaXRlMy1zaG0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRl
eGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTI0MDMz
ZDMyOWY4YzdkYzhjMGEyNTQwMzk5NTYxYTBlMDdhMWYyYwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVy
YWwgMzI3NjgKemNtZUkqTm01ZiQ2dnB3N0NNYn1RNVcwbFdzRURFPEI3TnUpZmpJLV9ZezRvdkw5
clMzO3xMfTtHZENkVCNgfiU9Cnp1dUBvJU5efTBWPmVSX2dVaFheSkZZfXdpP0ZXVDVXWXI8JVBP
VlFgdHU2aCFFZDk5cGRRfD4/eTclcTs9Z3N4Uwp6IWQ+P0ZTPlpxTDVCcjRgYGskJipjezlFclVm
WitQOEdCZGstTGE9KT99YDFIXzIqVy1Adyg0P2V8KCpgcDBPSDsKeipWKSl9KSg1U1VkdSNSVEoo
Qk13Xk0lPk05TXY9QT9LPTFrVGE4JGFUOCZ2MXRjcTZTUndiKG10TUw2fiZ3cEs0CnpLUFAtMWVo
VUA/MnExc30wdGdfMDAwSWFnZkIqc3JBYjxiQDJxMXN9MHRnXzAwMElhZ2ZCKnNyQWI8YkAycTFz
fQp6MHRnXzAwMElhZ2ZCKnNyQWI8YkAycTFzfTB0Z18wMDBJYWdmQipzcnc0VDZmPnk2eD9pOTc1
KGhMb008Jn0tKk0KeldSPHMqOHd6QC1xWHRkR1cxbTdgP0l8e0t1fTchZz54K3d8ZW5QSk1pVGNR
LS1Jfnw3X0kzUW9lZldDdzJ5OFVaCnpDYH4+fElLenQ3VUlMciM2e243QSFzJjZXXzdXKCFTRFpT
Zz5DLXxUY1czS0gyeUFJanBMTm9STjRNQkIpQjFiagp6WF5WfWB4SFNabFEpWC0yIWJjVD5qMjRr
VnpeVEIxSn5+WktZeUAoNDNpK2dfXi0/b25BbUJgMyg5WWtWKGhJJEUKem1ZY1c7ZyNWe180RmR2
QjElQF4yRyYhKm03fHxPTDVPNjlHeyl2bClmS1AjPC1mQmsmS0VzcFJ4eGwjUXc1dm5zCmgzZEh2
KnU7ZW9+c1N6LU5QYmVWWlIkJHB9YSlLa1UwPkp8WD9nMlA0R35mVUwKCmxpdGVyYWwgMApIY21W
P2QwMDAwMQoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL0luZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXdhbCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJp
bGl0eS5zcWxpdGUzLXdhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVh
ZDhjMmU0OGM1MzkxCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0bWwgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGli
aWxpdHlSZWFkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjhmMmZlMGUxODU3MWMxYTFjYmY1NjM0N2YwYWNk
ZjA5YWJjMDZiMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL0luZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbApAQCAt
MCwwICsxLDEzMSBAQAorPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBsb2cobXNnKQorICAgIHsKKyAg
ICAgICAgYWxlcnQobXNnKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzaG91bGRCZVR5cGUoX2Es
IF90eXBlKQorICAgIHsKKyAgICAgICAgdmFyIGV4Y2VwdGlvbjsKKyAgICAgICAgdmFyIF9hdjsK
KyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIF9hdiA9IGV2YWwoX2EpOworICAgICAgICB9IGNh
dGNoIChlKSB7CisgICAgICAgICAgICBleGNlcHRpb24gPSBlOworICAgICAgICB9CisKKyAgICAg
ICAgdmFyIF90eXBldiA9IGV2YWwoX3R5cGUpOworICAgICAgICBpZiAoX2F2IGluc3RhbmNlb2Yg
X3R5cGV2KSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFZhbHVl
cyB0aGF0IGFyZSB1c2VkIHRvIGluZmVyIHRoZSB0eXBlIG9mIGEgZ2l2ZW4gcHJpbWl0aXZlIHR5
cGUuCisgICAgdmFyIHRlc3RWYWx1ZXMgPSBbCisgICAgICAgIHVuZGVmaW5lZCwKKyAgICAgICAg
bnVsbCwKKyAgICAgICAgNSwgLy8gSW50CisgICAgICAgIDAsCisgICAgICAgIDEsCisgICAgICAg
IGZhbHNlLAorICAgICAgICB0cnVlLAorICAgICAgICA1LjUsIC8vIERvdWJsZQorICAgICAgICAi
SGVsbG8sV29ybGQhIiwKKyAgICAgICAgIiIKKyAgICBdOworCisgICAgLy8gVmFsdWVzIHRoYXQg
YXJlIHVzZWQgdG8gaW5mZXIgdGhlIHR5cGUgb2YgYSBnaXZlbiBCb29sZWFuL1N0cmluZyB0eXBl
LgorICAgIHZhciB0ZXN0VHlwZVZhbHVlcyA9IFsKKyAgICAgICAgeyBpdGVtOiBuZXcgQm9vbGVh
bih0cnVlKSwgdHlwZTogIkJvb2xlYW4iLCB2YWx1ZTogdHJ1ZSB9LAorICAgICAgICB7IGl0ZW06
IG5ldyBCb29sZWFuKGZhbHNlKSwgdHlwZTogIkJvb2xlYW4iLCB2YWx1ZTogZmFsc2UgfSwKKyAg
ICAgICAgeyBpdGVtOiBuZXcgU3RyaW5nKCksIHR5cGU6ICJTdHJpbmciLCB2YWx1ZTogIiIgfQor
ICAgIF07CisKKyAgICB2YXIgdGVzdENyeXB0b0tleXNBcnJheSA9IFsKKyAgICAgICAgWyJSU0FF
Uy1QS0NTMS12MV81IiwgeyBuYW1lOiAiUlNBRVMtUEtDUzEtdjFfNSIsIHR5cGU6ICJwdWJsaWMi
LCB1c2FnZTogImVuY3J5cHQiIH1dLAorICAgICAgICBbIlJTQVNTQS1QS0NTMS12MV81IiwgeyBu
YW1lOiAiUlNBU1NBLVBLQ1MxLXYxXzUiLCB0eXBlOiAicHVibGljIiwgdXNhZ2U6ICJ2ZXJpZnki
IH1dLAorICAgICAgICBbIlJTQS1QU1MiLCB7IG5hbWU6ICJSU0EtUFNTIiwgdHlwZTogInByaXZh
dGUiLCB1c2FnZTogInNpZ24iIH1dLAorICAgICAgICBbIlJTQS1PQUVQIiwgeyBuYW1lOiAiUlNB
LU9BRVAiLCB0eXBlOiAicHJpdmF0ZSIsIHVzYWdlOiAiZGVjcnlwdCIgfV0sCisgICAgICAgIFsi
RUNEU0EiLCB7IG5hbWU6ICJFQ0RTQSIsIHR5cGU6ICJwcml2YXRlIiwgdXNhZ2U6ICJzaWduIiB9
XSwKKyAgICAgICAgWyJFQ0RIIiwgeyBuYW1lOiAiRUNESCIsIHR5cGU6ICJwdWJsaWMiLCB1c2Fn
ZTogbnVsbCB9XSwKKyAgICAgICAgWyJBRVMtQ1RSIiwgeyBuYW1lOiAiQUVTLUNUUiIsIHR5cGU6
ICJzZWNyZXQiLCB1c2FnZTogIndyYXBLZXkiIH1dLAorICAgICAgICBbIkFFUy1DQkMiLCB7IG5h
bWU6ICJBRVMtQ0JDIiwgdHlwZTogInNlY3JldCIsIHVzYWdlOiAidW53cmFwS2V5IiB9XSwKKyAg
ICAgICAgWyJBRVMtR0NNIiwgeyBuYW1lOiAiQUVTLUdDTSIsIHR5cGU6ICJzZWNyZXQiLCB1c2Fn
ZTogImVuY3J5cHQiIH1dLAorICAgICAgICBbIkFFUy1DRkItOCIsIHsgbmFtZTogIkFFUy1DRkIt
OCIsIHR5cGU6ICJzZWNyZXQiLCB1c2FnZTogImRlY3J5cHQiIH1dLAorICAgICAgICBbIkFFUy1L
VyIsIHsgbmFtZTogIkFFUy1LVyIsIHR5cGU6ICJzZWNyZXQiLCB1c2FnZTogIndyYXBLZXkifV0s
CisgICAgICAgIFsiSE1BQyIsIHsgbmFtZTogIkhNQUMiLCB0eXBlOiAic2VjcmV0IiwgdXNhZ2U6
ICJzaWduIiB9XSwKKyAgICAgICAgWyJIS0RGIiwgeyBuYW1lOiAiSEtERiIsIHR5cGU6ICJzZWNy
ZXQiLCB1c2FnZTogImRlcml2ZUJpdHMiIH1dLAorICAgICAgICBbIlBCS0RGMiIsIHsgbmFtZTog
IlBCS0RGMiIsIHR5cGU6ICJzZWNyZXQiLCB1c2FnZTogImRlcml2ZUtleSIgfV0sCisgICAgXTsK
KyAgICB2YXIgdGVzdENyeXB0b0tleXNNYXAgPSBuZXcgTWFwKHRlc3RDcnlwdG9LZXlzQXJyYXkp
OworCisgICAgdmFyIG9wZW5SZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oImJhY2t3YXJkX2NvbXBh
dGliaWxpdHkiKTsKKyAgICBvcGVuUmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICAgICAgbG9nKCJFcnJvcjogIiArIGV2ZW50LnRhcmdldC5lcnJvci5uYW1lKTsKKyAgICB9
CisgICAgb3BlblJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAg
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICByZWFkVHlwZSgpOworICAgIH0KKwor
ICAgIHZhciByZXN1bHQgPSB0cnVlOworICAgIGZ1bmN0aW9uIHJlYWRUeXBlKCkKKyAgICB7Cisg
ICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCJ0eXBlIikub2JqZWN0U3Rv
cmUoInR5cGUiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBjdXJzb3IgPSBldmVudC50YXJnZXQucmVz
dWx0OworICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiBzaG91bGRCZVR5cGUoImN1cnNvci52YWx1ZSIsIGN1cnNvci5rZXkpOworICAg
ICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgcmVhZFZhbHVlKCk7CisgICAgICAgIH07CisgICAgfQorCisgICAgZnVuY3Rp
b24gcmVhZFZhbHVlKCkKKyAgICB7CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGRiLnRyYW5z
YWN0aW9uKCJ2YWx1ZSIpLm9iamVjdFN0b3JlKCJ2YWx1ZSIpOworICAgICAgICBvYmplY3RTdG9y
ZS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAg
IGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBpZiAoY3Vyc29yKSB7
CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIChjdXJzb3IudmFsdWUgPT09IHRl
c3RWYWx1ZXNbY3Vyc29yLmtleSAtIDFdKTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGlu
dWUoKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHJlYWRUeXBlVmFsdWUo
KTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZWFkVHlwZVZhbHVlKCkKKyAg
ICB7CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCJ0eXBlVmFsdWUi
KS5vYmplY3RTdG9yZSgidHlwZVZhbHVlIik7CisgICAgICAgIG9iamVjdFN0b3JlLm9wZW5DdXJz
b3IoKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgY3Vyc29yID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAg
ICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgc2hvdWxkQmVUeXBlKCJjdXJzb3IudmFsdWUiLCB0
ZXN0VHlwZVZhbHVlc1tjdXJzb3Iua2V5IC0gMV0udHlwZSkgJiYgKGN1cnNvci52YWx1ZSA9PSB0
ZXN0VHlwZVZhbHVlc1tjdXJzb3Iua2V5IC0gMV0udmFsdWUpOworICAgICAgICAgICAgICAgIGN1
cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBy
ZWFkQ3J5cHRvS2V5KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCisgICAg
ZnVuY3Rpb24gcmVhZENyeXB0b0tleSgpCisgICAgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUg
PSBkYi50cmFuc2FjdGlvbigiY3J5cHRvS2V5Iikub2JqZWN0U3RvcmUoImNyeXB0b0tleSIpOwor
ICAgICAgICBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICAgICAgICAgIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAg
ICAgICBpZiAoY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgdmFyIHJlZmVyZW5jZSA9IHRlc3RD
cnlwdG9LZXlzTWFwLmdldChjdXJzb3Iua2V5KTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHJlZmVyZW5jZS5uYW1lID0gY3Vyc29yLnZhbHVlLmFsZ29yaXRobS5uYW1lKSAm
JiAocmVmZXJlbmNlLnR5cGUgPT0gY3Vyc29yLnZhbHVlLnR5cGUpICYmIChyZWZlcmVuY2UudXNh
Z2UgPT0gY3Vyc29yLnZhbHVlLnVzYWdlc1swXSk7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNv
bnRpbnVlKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChyZXN1
bHQpCisgICAgICAgICAgICAgICAgICAgIGxvZygiUGFzcyIpOworICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJGYWlsIik7CisgICAgICAgICAgICB9CisgICAg
ICAgIH07CisgICAgfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0ZS5o
dG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFj
a3dhcmRDb21wYXRpYmlsaXR5V3JpdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZWU2MWFlNjQ2OTA1YmE1
ZjJjMjhiZTllZTRmMzYyZmQ1Mjc0ZjE2Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5
V3JpdGUuaHRtbApAQCAtMCwwICsxLDI1NSBAQAorPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBsb2co
bXNnKQorICAgIHsKKyAgICAgICAgYWxlcnQobXNnKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBz
aG91bGRCZVR5cGUoX2EsIF90eXBlKQorICAgIHsKKyAgICAgICAgdmFyIGV4Y2VwdGlvbjsKKyAg
ICAgICAgdmFyIF9hdjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIF9hdiA9IGV2YWwoX2Ep
OworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICBleGNlcHRpb24gPSBlOworICAg
ICAgICB9CisKKyAgICAgICAgdmFyIF90eXBldiA9IGV2YWwoX3R5cGUpOworICAgICAgICBpZiAo
X2F2IGluc3RhbmNlb2YgX3R5cGV2KSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0K
KworICAgIC8vIFZhbHVlcyB0aGF0IGFyZSB1c2VkIHRvIGluZmVyIHRoZSB0eXBlIG9mIGEgZ2l2
ZW4gcHJpbWl0aXZlIHR5cGUuCisgICAgdmFyIHRlc3RWYWx1ZXMgPSBbCisgICAgICAgIHVuZGVm
aW5lZCwKKyAgICAgICAgbnVsbCwKKyAgICAgICAgNSwgLy8gSW50CisgICAgICAgIDAsCisgICAg
ICAgIDEsCisgICAgICAgIGZhbHNlLAorICAgICAgICB0cnVlLAorICAgICAgICA1LjUsIC8vIERv
dWJsZQorICAgICAgICAiSGVsbG8sV29ybGQhIiwKKyAgICAgICAgIiIKKyAgICBdOworCisgICAg
Ly8gVmFsdWVzIHRoYXQgYXJlIHVzZWQgdG8gaW5mZXIgdGhlIHR5cGUgb2YgYSBnaXZlbiBCb29s
ZWFuL1N0cmluZyB0eXBlLgorICAgIHZhciB0ZXN0VHlwZVZhbHVlcyA9IFsKKyAgICAgICAgeyBp
dGVtOiBuZXcgQm9vbGVhbih0cnVlKSwgdHlwZTogIkJvb2xlYW4iLCB2YWx1ZTogdHJ1ZSB9LAor
ICAgICAgICB7IGl0ZW06IG5ldyBCb29sZWFuKGZhbHNlKSwgdHlwZTogIkJvb2xlYW4iLCB2YWx1
ZTogZmFsc2UgfSwKKyAgICAgICAgeyBpdGVtOiBuZXcgU3RyaW5nKCksIHR5cGU6ICJTdHJpbmci
LCB2YWx1ZTogIiIgfQorICAgIF07CisKKyAgICB2YXIgdGVzdENyeXB0b0tleXNBcnJheSA9IFsK
KyAgICAgICAgWyJSU0FFUy1QS0NTMS12MV81IiwgeyBuYW1lOiAiUlNBRVMtUEtDUzEtdjFfNSIs
IHR5cGU6ICJwdWJsaWMiLCB1c2FnZTogImVuY3J5cHQiIH1dLAorICAgICAgICBbIlJTQVNTQS1Q
S0NTMS12MV81IiwgeyBuYW1lOiAiUlNBU1NBLVBLQ1MxLXYxXzUiLCB0eXBlOiAicHVibGljIiwg
dXNhZ2U6ICJ2ZXJpZnkiIH1dLAorICAgICAgICBbIlJTQS1QU1MiLCB7IG5hbWU6ICJSU0EtUFNT
IiwgdHlwZTogInByaXZhdGUiLCB1c2FnZTogInNpZ24iIH1dLAorICAgICAgICBbIlJTQS1PQUVQ
IiwgeyBuYW1lOiAiUlNBLU9BRVAiLCB0eXBlOiAicHJpdmF0ZSIsIHVzYWdlOiAiZGVjcnlwdCIg
fV0sCisgICAgICAgIFsiRUNEU0EiLCB7IG5hbWU6ICJFQ0RTQSIsIHR5cGU6ICJwcml2YXRlIiwg
dXNhZ2U6ICJzaWduIiB9XSwKKyAgICAgICAgWyJFQ0RIIiwgeyBuYW1lOiAiRUNESCIsIHR5cGU6
ICJwdWJsaWMiLCB1c2FnZTogbnVsbCB9XSwKKyAgICAgICAgWyJBRVMtQ1RSIiwgeyBuYW1lOiAi
QUVTLUNUUiIsIHR5cGU6ICJzZWNyZXQiLCB1c2FnZTogIndyYXBLZXkiIH1dLAorICAgICAgICBb
IkFFUy1DQkMiLCB7IG5hbWU6ICJBRVMtQ0JDIiwgdHlwZTogInNlY3JldCIsIHVzYWdlOiAidW53
cmFwS2V5IiB9XSwKKyAgICAgICAgWyJBRVMtR0NNIiwgeyBuYW1lOiAiQUVTLUdDTSIsIHR5cGU6
ICJzZWNyZXQiLCB1c2FnZTogImVuY3J5cHQiIH1dLAorICAgICAgICBbIkFFUy1DRkItOCIsIHsg
bmFtZTogIkFFUy1DRkItOCIsIHR5cGU6ICJzZWNyZXQiLCB1c2FnZTogImRlY3J5cHQiIH1dLAor
ICAgICAgICBbIkFFUy1LVyIsIHsgbmFtZTogIkFFUy1LVyIsIHR5cGU6ICJzZWNyZXQiLCB1c2Fn
ZTogIndyYXBLZXkifV0sCisgICAgICAgIFsiSE1BQyIsIHsgbmFtZTogIkhNQUMiLCB0eXBlOiAi
c2VjcmV0IiwgdXNhZ2U6ICJzaWduIiB9XSwKKyAgICAgICAgWyJIS0RGIiwgeyBuYW1lOiAiSEtE
RiIsIHR5cGU6ICJzZWNyZXQiLCB1c2FnZTogImRlcml2ZUJpdHMiIH1dLAorICAgICAgICBbIlBC
S0RGMiIsIHsgbmFtZTogIlBCS0RGMiIsIHR5cGU6ICJzZWNyZXQiLCB1c2FnZTogImRlcml2ZUtl
eSIgfV0sCisgICAgXTsKKyAgICB2YXIgdGVzdENyeXB0b0tleXNNYXAgPSBuZXcgTWFwKHRlc3RD
cnlwdG9LZXlzQXJyYXkpOworCisgICAgaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCJiYWNrd2Fy
ZF9jb21wYXRpYmlsaXR5Iik7CisgICAgdmFyIG9wZW5SZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ImJhY2t3YXJkX2NvbXBhdGliaWxpdHkiKTsKKyAgICBvcGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAvLyBUaGlzIG9iamVjdFN0b3JlIHN0b3Jl
cyBlbGVtZW50cyB0aGF0IHdlIG9ubHkgbmVlZCB0byBjaGVjayBpdHMgdHlwZSB0byBkZXRlcm1p
bmUgaXRzIHNlcmlhbGl6YXRpb24gdGFnLgorICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBldmVu
dC50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJ0eXBlIik7CisgICAgICAgIC8vIFRo
aXMgb2JqZWN0U3RvcmUgc3RvcmVzIGVsZW1lbnRzIHRoYXQgd2UgbmVlZCB0byBjaGVjayBpdHMg
dmFsdWUgdG8gZGV0ZXJtaW5lIGl0cyBzZXJpYWxpemF0aW9uIHRhZy4KKyAgICAgICAgdmFyIG9i
amVjdFN0b3JlID0gZXZlbnQudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgidmFsdWUi
LCB7IGF1dG9JbmNyZW1lbnQgOiB0cnVlIH0pOworICAgICAgICAvLyBUaGlzIG9iamVjdFN0b3Jl
IHN0b3JlcyBlbGVtZW50cyB0aGF0IHdlIG5lZWQgdG8gY2hlY2sgYm90aCBpdHMgdHlwZSBhbmQg
aXRzIHZhbHVlIHRvIGRldGVybWluZSBpdHMgc2VyaWFsaXphdGlvbiB0YWcuCisgICAgICAgIHZh
ciBvYmplY3RTdG9yZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInR5
cGVWYWx1ZSIsIHsgYXV0b0luY3JlbWVudCA6IHRydWUgfSk7CisgICAgICAgIC8vIFRoaXMgT2Jq
ZWN0U3RvcmUgc3RvcmVzIGNyeXB0byBrZXlzIHdoaWNoIHJlcXVpcmUgZmV3IG1vcmUgc3RlcHMg
dG8gZGV0ZXJtaW5lIGl0cyBzZXJpYWxpemF0aW9uIHRhZy4KKyAgICAgICAgdmFyIG9iamVjdFN0
b3JlID0gZXZlbnQudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgiY3J5cHRvS2V5Iiwg
eyBrZXlQYXRoOiAiYWxnb3JpdGhtLm5hbWUiIH0pOworICAgIH0KKyAgICBvcGVuUmVxdWVzdC5v
bmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgbG9nKCJFcnJvcjogIiArIGV2ZW50
LnRhcmdldC5lcnJvci5uYW1lKTsKKyAgICB9CisgICAgb3BlblJlcXVlc3Qub25zdWNjZXNzID0g
ZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAg
ICAgICBzdG9yZVR5cGUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdG9yZVR5cGUoKQorICAg
IHsKKyAgICAgICAgdmFyIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oInR5cGUiLCAicmVh
ZHdyaXRlIik7CisgICAgICAgIHRyYW5zYWN0aW9uLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkg
eworICAgICAgICAgICAgbG9nKCJFcnJvcjogIiArIGV2ZW50LnRhcmdldC5lcnJvci5uYW1lKTsK
KyAgICAgICAgfQorICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZl
bnQpIHsgc3RvcmVWYWx1ZSgpOyB9CisKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gdHJhbnNh
Y3Rpb24ub2JqZWN0U3RvcmUoInR5cGUiKTsKKyAgICAgICAgLy8gVGhlIGtleSBvZiBhbiBpdGVt
IGlzIHRoZSB0eXBlIG9mIGl0cyB2YWx1ZSwgaGVuY2Ugd2UgY291bGQgZGV0ZXJtaW5lIHR5cGUg
bWlzbWF0Y2gsIGkuZS4gc2VyaWFsaXphdGlvbiB0YWcgcmVvcmRlcgorICAgICAgICAvLyBzaW1w
bHkgYnkgdXNpbmcgYW4gaXRlbSdzIGtleSBhbmQgdmFsdWUuCisgICAgICAgIG9iamVjdFN0b3Jl
LmFkZChbMSwgMl0sICJBcnJheSIpOworICAgICAgICBvYmplY3RTdG9yZS5hZGQoeyBwcm9wZXJ0
eTogbnVsbCB9LCAiT2JqZWN0Iik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgRGF0ZSgp
LCAiRGF0ZSIpOworICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IEZpbGUoWyJmb28iXSwgImZv
by50eHQiKSwgIkZpbGUiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBJbWFnZURhdGEo
MTAwLCAxMDApLCAiSW1hZ2VEYXRhIik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgQmxv
YihbImZvbyJdKSwgIkJsb2IiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBSZWdFeHAo
JycpLCAiUmVnRXhwIik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgQXJyYXlCdWZmZXIo
MSksICJBcnJheUJ1ZmZlciIpOworICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IFN0cmluZygn
JyksICJTdHJpbmciKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBOdW1iZXIoMTIpLCAi
TnVtYmVyIik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgU2V0KFsxLCAyXSksICJTZXQi
KTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBNYXAoKSwgIk1hcCIpOworICAgICAgICAv
LyBUeXBlZCBhcnJheXMKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBJbnQ4QXJyYXkoKSwg
IkludDhBcnJheSIpOworICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IFVpbnQ4QXJyYXkoKSwg
IlVpbnQ4QXJyYXkiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBVaW50OENsYW1wZWRB
cnJheSgpLCAiVWludDhDbGFtcGVkQXJyYXkiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5l
dyBJbnQxNkFycmF5KCksICJJbnQxNkFycmF5Iik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChu
ZXcgVWludDE2QXJyYXkoKSwgIlVpbnQxNkFycmF5Iik7CisgICAgICAgIG9iamVjdFN0b3JlLmFk
ZChuZXcgSW50MzJBcnJheSgpLCAiSW50MzJBcnJheSIpOworICAgICAgICBvYmplY3RTdG9yZS5h
ZGQobmV3IFVpbnQzMkFycmF5KCksICJVaW50MzJBcnJheSIpOworICAgICAgICBvYmplY3RTdG9y
ZS5hZGQobmV3IEZsb2F0MzJBcnJheSgpLCAiRmxvYXQzMkFycmF5Iik7CisgICAgICAgIG9iamVj
dFN0b3JlLmFkZChuZXcgRmxvYXQ2NEFycmF5KCksICJGbG9hdDY0QXJyYXkiKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBzdG9yZVZhbHVlKCkKKyAgICB7CisgICAgICAgIHZhciB0cmFuc2FjdGlv
biA9IGRiLnRyYW5zYWN0aW9uKCJ2YWx1ZSIsICJyZWFkd3JpdGUiKTsKKyAgICAgICAgdHJhbnNh
Y3Rpb24ub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBsb2coIkVycm9y
OiAiICsgZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUpOworICAgICAgICB9CisgICAgICAgIHRyYW5z
YWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbihldmVudCkgeyBzdG9yZVR5cGVWYWx1ZSgpOyB9
CisKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoInZh
bHVlIik7CisgICAgICAgIC8vIEhlcmUgd2Ugc3RvcmUgdmFsdWVzIGluIHRoZSB0ZXN0IG1hdHJp
eCBpbiBvcmRlciBhbmQgcmVhZCB0aGVtIGluIG9yZGVyIHRvIHNlZSBpZiBhbnkgbWlzbWF0Y2gg
aGFwcGVucy4KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0VmFsdWVzLmxlbmd0aDsg
aSsrKQorICAgICAgICAgICAgb2JqZWN0U3RvcmUuYWRkKHRlc3RWYWx1ZXNbaV0pOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHN0b3JlVHlwZVZhbHVlKCkKKyAgICB7CisgICAgICAgIHZhciB0cmFu
c2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCJ0eXBlVmFsdWUiLCAicmVhZHdyaXRlIik7CisgICAg
ICAgIHRyYW5zYWN0aW9uLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAg
bG9nKCJFcnJvcjogIiArIGV2ZW50LnRhcmdldC5lcnJvci5uYW1lKTsKKyAgICAgICAgfQorICAg
ICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZlbnQpIHsgc3RvcmVDcnlw
dG9LZXkoKTsgfQorCisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVj
dFN0b3JlKCJ0eXBlVmFsdWUiKTsKKyAgICAgICAgLy8gSGVyZSB3ZSBzdG9yZSBpdGVtcyBpbiB0
aGUgdGVzdCBtYXRyaXggaW4gb3JkZXIgYW5kIHJlYWQgdGhlbSBpbiBvcmRlciB0byBzZWUgaWYg
YW55IG1pc21hdGNoZXMgaXRzIHR5cGUgYW5kIHZhbHVlLgorICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHRlc3RUeXBlVmFsdWVzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqZWN0U3Rv
cmUuYWRkKHRlc3RUeXBlVmFsdWVzW2ldLml0ZW0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0
b3JlQ3J5cHRvS2V5KCkKKyAgICB7CisgICAgICAgIC8vIEhlcmUgd2UgZ2F0aGVyIGFsbCB0aGUg
Q3J5cHRvS2V5IG9iamVjdHMKKyAgICAgICAgdmFyIHByb21pc2VzID0gWyBdOworICAgICAgICBw
cm9taXNlcy5wdXNoKGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoeyBuYW1lOiAiUlNBRVMtUEtD
UzEtdjFfNSIsIG1vZHVsdXNMZW5ndGg6IDIwNDgsIHB1YmxpY0V4cG9uZW50OiBuZXcgVWludDhB
cnJheShbMHgwMSwgMHgwMCwgMHgwMV0pfSwgdHJ1ZSwgWyJkZWNyeXB0IiwgImVuY3J5cHQiXSkp
OworICAgICAgICBwcm9taXNlcy5wdXNoKGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoeyBuYW1l
OiAiUlNBU1NBLVBLQ1MxLXYxXzUiLCBtb2R1bHVzTGVuZ3RoOiAyMDQ4LCBwdWJsaWNFeHBvbmVu
dDogbmV3IFVpbnQ4QXJyYXkoWzB4MDEsIDB4MDAsIDB4MDFdKSwgaGFzaDogInNoYS0xIiB9LCB0
cnVlLCBbInNpZ24iLCAidmVyaWZ5Il0pKTsKKyAgICAgICAgcHJvbWlzZXMucHVzaChjcnlwdG8u
c3VidGxlLmdlbmVyYXRlS2V5KHsgbmFtZTogIlJTQS1QU1MiLCBtb2R1bHVzTGVuZ3RoOiAyMDQ4
LCBwdWJsaWNFeHBvbmVudDogbmV3IFVpbnQ4QXJyYXkoWzB4MDEsIDB4MDAsIDB4MDFdKSwgaGFz
aDogInNoYS0xIiB9LCB0cnVlLCBbInNpZ24iLCAidmVyaWZ5Il0pKTsKKyAgICAgICAgcHJvbWlz
ZXMucHVzaChjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHsgbmFtZTogIlJTQS1PQUVQIiwgbW9k
dWx1c0xlbmd0aDogMjA0OCwgcHVibGljRXhwb25lbnQ6IG5ldyBVaW50OEFycmF5KFsweDAxLCAw
eDAwLCAweDAxXSksIGhhc2g6ICJzaGEtMSIgfSwgdHJ1ZSwgWyJkZWNyeXB0IiwgImVuY3J5cHQi
XSkpOworICAgICAgICBwcm9taXNlcy5wdXNoKGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoeyBu
YW1lOiAiRUNEU0EiLCBuYW1lZEN1cnZlOiAiUC0yNTYiIH0sIHRydWUsIFsic2lnbiIsICJ2ZXJp
ZnkiXSkpOworICAgICAgICBwcm9taXNlcy5wdXNoKGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXko
eyBuYW1lOiAiRUNESCIsIG5hbWVkQ3VydmU6ICJQLTI1NiIgfSwgdHJ1ZSwgWyJkZXJpdmVCaXRz
Il0pKTsKKyAgICAgICAgcHJvbWlzZXMucHVzaChjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHsg
bmFtZTogImFlcy1jdHIiLCBsZW5ndGg6IDEyOCB9LCB0cnVlLCBbIndyYXBLZXkiXSkpOworICAg
ICAgICBwcm9taXNlcy5wdXNoKGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoeyBuYW1lOiAiYWVz
LWNiYyIsIGxlbmd0aDogMTI4IH0sIHRydWUsIFsidW53cmFwS2V5Il0pKTsKKyAgICAgICAgcHJv
bWlzZXMucHVzaChjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHsgbmFtZTogImFlcy1nY20iLCBs
ZW5ndGg6IDEyOCB9LCB0cnVlLCBbImVuY3J5cHQiXSkpOworICAgICAgICBwcm9taXNlcy5wdXNo
KGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoeyBuYW1lOiAiYWVzLWNmYi04IiwgbGVuZ3RoOiAx
MjggfSwgdHJ1ZSwgWyJkZWNyeXB0Il0pKTsKKyAgICAgICAgcHJvbWlzZXMucHVzaChjcnlwdG8u
c3VidGxlLmdlbmVyYXRlS2V5KHsgbmFtZTogImFlcy1rdyIsIGxlbmd0aDogMTI4IH0sIHRydWUs
IFsid3JhcEtleSJdKSk7CisgICAgICAgIHByb21pc2VzLnB1c2goY3J5cHRvLnN1YnRsZS5nZW5l
cmF0ZUtleSh7IG5hbWU6ICJobWFjIiwgaGFzaDogInNoYS0xIiB9LCB0cnVlLCBbInNpZ24iXSkp
OworICAgICAgICBwcm9taXNlcy5wdXNoKGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBu
ZXcgVWludDhBcnJheSgxNiksIHsgbmFtZTogIkhLREYiIH0sIGZhbHNlLCBbImRlcml2ZUJpdHMi
XSkpOworICAgICAgICBwcm9taXNlcy5wdXNoKGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXci
LCBuZXcgVWludDhBcnJheSgxNiksIHsgbmFtZTogIlBCS0RGMiIgfSwgZmFsc2UsIFsiZGVyaXZl
S2V5Il0pKTsKKworICAgICAgICBQcm9taXNlLmFsbChwcm9taXNlcykudGhlbihrZXlzID0+IHsK
KyAgICAgICAgICAgIHZhciB0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCJjcnlwdG9LZXki
LCAicmVhZHdyaXRlIik7CisgICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rp
b24oZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBsb2coIkVycm9yOiAiICsgZXZlbnQudGFyZ2V0
LmVycm9yLm5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJhbnNhY3Rpb24ub25j
b21wbGV0ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7IHJlYWRUeXBlKCk7IH0KKworICAgICAgICAgICAg
dmFyIG9iamVjdFN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoImNyeXB0b0tleSIpOwor
ICAgICAgICAgICAgLy8gSGVyZSB3ZSBzdG9yZSBhbGwgdGhlIG5lY2Vzc2FyeSBDcnlwdG9LZXlz
LiBOb3RlcyB0aGF0IHNvbWUgZnVuY3Rpb25zIHdpbGwgcmV0dXJuIENyeXB0b0tleVBhaXIuCisg
ICAgICAgICAgICAvLyBJbiB0aG9zZSBjYXNlcywgd2UgbmVlZCB0byBkZWNpZGUgd2hldGhlciB3
ZSBuZWVkIHRoZSBwdWJsaWMgb3IgdGhlIHByaXZhdGUga2V5LgorICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGtl
eXNbaV0gaW5zdGFuY2VvZiBDcnlwdG9LZXkpCisgICAgICAgICAgICAgICAgICAgIG9iamVjdFN0
b3JlLmFkZChrZXlzW2ldKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGtleXNbaV0ucHVibGljS2V5LmFsZ29yaXRobS5uYW1lID09ICJSU0FFUy1QS0NT
MS12MV81IikKKyAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdFN0b3JlLmFkZChrZXlzW2ld
LnB1YmxpY0tleSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGtleXNbaV0ucHVibGlj
S2V5LmFsZ29yaXRobS5uYW1lID09ICJSU0FTU0EtUEtDUzEtdjFfNSIpCisgICAgICAgICAgICAg
ICAgICAgICAgICBvYmplY3RTdG9yZS5hZGQoa2V5c1tpXS5wdWJsaWNLZXkpOworICAgICAgICAg
ICAgICAgICAgICBlbHNlIGlmIChrZXlzW2ldLnB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSA9PSAi
UlNBLVBTUyIpCisgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RTdG9yZS5hZGQoa2V5c1tp
XS5wcml2YXRlS2V5KTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoa2V5c1tpXS5wdWJs
aWNLZXkuYWxnb3JpdGhtLm5hbWUgPT0gIlJTQS1PQUVQIikKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG9iamVjdFN0b3JlLmFkZChrZXlzW2ldLnByaXZhdGVLZXkpOworICAgICAgICAgICAgICAg
ICAgICBlbHNlIGlmIChrZXlzW2ldLnB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSA9PSAiRUNEU0Ei
KQorICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0U3RvcmUuYWRkKGtleXNbaV0ucHJpdmF0
ZUtleSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGtleXNbaV0ucHVibGljS2V5LmFs
Z29yaXRobS5uYW1lID09ICJFQ0RIIikKKyAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdFN0
b3JlLmFkZChrZXlzW2ldLnB1YmxpY0tleSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICB2YXIgcmVzdWx0ID0gdHJ1ZTsKKyAgICBm
dW5jdGlvbiByZWFkVHlwZSgpCisgICAgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50
cmFuc2FjdGlvbigidHlwZSIpLm9iamVjdFN0b3JlKCJ0eXBlIik7CisgICAgICAgIG9iamVjdFN0
b3JlLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAg
ICAgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmIChjdXJzb3Ip
IHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgc2hvdWxkQmVUeXBlKCJjdXJz
b3IudmFsdWUiLCBjdXJzb3Iua2V5KTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUo
KTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHJlYWRWYWx1ZSgpOworICAg
ICAgICB9OworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlYWRWYWx1ZSgpCisgICAgeworICAgICAg
ICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigidmFsdWUiKS5vYmplY3RTdG9yZSgi
dmFsdWUiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0
OworICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoY3Vyc29yLnZhbHVlID09PSB0ZXN0VmFsdWVzW2N1cnNvci5rZXkgLSAxXSk7Cisg
ICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICByZWFkVHlwZVZhbHVlKCk7CisgICAgICAgIH07CisgICAgfQorCisgICAg
ZnVuY3Rpb24gcmVhZFR5cGVWYWx1ZSgpCisgICAgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUg
PSBkYi50cmFuc2FjdGlvbigidHlwZVZhbHVlIikub2JqZWN0U3RvcmUoInR5cGVWYWx1ZSIpOwor
ICAgICAgICBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICAgICAgICAgIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAg
ICAgICBpZiAoY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHNo
b3VsZEJlVHlwZSgiY3Vyc29yLnZhbHVlIiwgdGVzdFR5cGVWYWx1ZXNbY3Vyc29yLmtleSAtIDFd
LnR5cGUpICYmIChjdXJzb3IudmFsdWUgPT0gdGVzdFR5cGVWYWx1ZXNbY3Vyc29yLmtleSAtIDFd
LnZhbHVlKTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVhZENyeXB0b0tleSgpOworICAgICAgICAgICAg
fQorICAgICAgICB9OworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlYWRDcnlwdG9LZXkoKQorICAg
IHsKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oImNyeXB0b0tleSIp
Lm9iamVjdFN0b3JlKCJjcnlwdG9LZXkiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUub3BlbkN1cnNv
cigpLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBjdXJzb3IgPSBl
dmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAg
ICAgICAgIHZhciByZWZlcmVuY2UgPSB0ZXN0Q3J5cHRvS2V5c01hcC5nZXQoY3Vyc29yLmtleSk7
CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIChyZWZlcmVuY2UubmFtZSA9IGN1
cnNvci52YWx1ZS5hbGdvcml0aG0ubmFtZSkgJiYgKHJlZmVyZW5jZS50eXBlID09IGN1cnNvci52
YWx1ZS50eXBlKSAmJiAocmVmZXJlbmNlLnVzYWdlID09IGN1cnNvci52YWx1ZS51c2FnZXNbMF0p
OworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAgICAgICAgICAgICBsb2co
IlBhc3MiKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGxvZygi
RmFpbCIpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315027</attachid>
            <date>2017-07-10 14:19:09 -0700</date>
            <delta_ts>2017-07-11 08:49:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173998-20170710141909.patch</filename>
            <type>text/plain</type>
            <size>48342</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjBlZmU3N2ExMWFhZGQx
NmRhNzk3ZjMzMGE4NjFmNjJjMTQ2NWNmOC4uMDgzNWEyYWNjNzVkMWY1ZTUxMTBhMWI0ZDVkMmI4
NWZlYzM3NzAyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA2LTMwICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW5kZXhlZERCOiBlbnN1
cmUgaXRzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mzk5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZXMgb2YgYmVoYXZpb3IuCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICBBZGQgYSBj
b21tZW50LgorCiAyMDE3LTA3LTEwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4K
IAogICAgICAgICBDbGVhbnVwIGxpZmV0aW1lIGlzc3VlcyBvZiBVbmlxdWVJREJEYXRhYmFzZSBh
bmQgSURCQmFja2luZ1N0b3JlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXggNWQ4Y2U3OGFmNWZhNDhkZjJmYzc4YmNi
YzNiODc1NGZlYjEzY2UwZS4uMjg2Y2NmYzdkOGFmMjdjM2E1NzAyNmYxZDVlNTRiMDdjYmUyNDNk
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUuY3BwCkBAIC0xMTcsNiArMTE3LDcgQEAgZW51bSBXYWxrZXJTdGF0ZSB7IFN0YXRl
VW5rbm93biwgQXJyYXlTdGFydFN0YXRlLCBBcnJheVN0YXJ0VmlzaXRNZW1iZXIsIEFycmF5RW4K
ICAgICBTZXREYXRhU3RhcnRWaXNpdEVudHJ5LCBTZXREYXRhRW5kVmlzaXRLZXkgfTsKIAogLy8g
VGhlc2UgY2FuJ3QgYmUgcmVvcmRlcmVkLCBhbmQgYW55IG5ldyB0eXBlcyBtdXN0IGJlIGFkZGVk
IHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QKKy8vIFdobyBlZGl0cyB0aGlzIGxpc3QsIHBsZWFzZSB0
ZWFjaCBJbmRleGVkREIuQmFja3dhcmRDb21wYXRpYmlsaXR5IEFQSSB0ZXN0IHRvIGxlYXJuIHRo
ZSBuZXcgc3R1ZmYuCiBlbnVtIFNlcmlhbGl6YXRpb25UYWcgewogICAgIEFycmF5VGFnID0gMSwK
ICAgICBPYmplY3RUYWcgPSAyLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDU3ODM5ZDk1ODVlOWE3YTEyNmNlMWFkNGFlOTYyMDg2YWIxODI0ZGEu
LmM5M2YzYzg5NWQ5ZDI2MGUzYmFkNjU0MDFlYTEyYzc5MzllNjY1ZWMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAx
Ny0wNi0zMCAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIElu
ZGV4ZWREQjogZW5zdXJlIGl0cyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzM5OTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIHRlc3QgaXMgY29tcG9zZWQgdG8g
ZW5zdXJlIEluZGV4ZWREQidzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIFRoZSB3YXkgaXQgd29y
a3MgaXMgdG8KKyAgICAgICAgcmVhZCBmcm9tIGEgcHJlLWJha2VkIGRhdGFiYXNlIGFuZCBzZWUg
aWYgYWxsIHRoZSB2YWx1ZXMgYXJlIG1hdGNoZWQgd2l0aCB0aGUgZXhwZWN0YXRpb25zLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhl
ZERCQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OnJ1bkphdmFTY3JpcHRBbGVydCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpj
b3B5V2ViQ3J5cHRvTWFzdGVyS2V5KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICBIZXJlIGlzIHRoZSBBUEkgdGVzdCB0aGF0IG1vdmVzIHRoZSBwcmUtYmFrZWQgZGF0
YWJhc2UgdG8gdGhlIGxvY2F0aW9uIHdoZXJlIFRlc3RXZWJLaXRBUEkgY2FuIHJlYWQgZnJvbSwK
KyAgICAgICAgYW5kIGRlY3J5cHRzIENyeXB0b0tleSBzZXJpYWxpemVkIGJpbmFyaWVzIHdpdGgg
YSBoYXJkIGNvZGVkIG1hc3RlciBrZXkgd2hpY2ggd2FzIHVzZWQgdG8gZW5jcnlwdCB0aGUgZGF0
YS4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJC
YWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMzogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNx
bGl0ZTMtc2htOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWw6IEFkZGVkLgor
ICAgICAgICBUaGVzZSBhcmUgdGhlIHByZS1iYWtlZCBkYXRhYmFzZXMuCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmls
aXR5UmVhZC5odG1sOiBBZGRlZC4KKyAgICAgICAgVGhpcyBpcyB0aGUgYWN0dWFsIHRlc3QgdGhh
dCBkbyBhbGwgdGhlIHJlYWRzIGFuZCBjb21wYXJpc29ucy4KKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgVGhpcyBpcyB0aGUgcGFnZSB0aGF0IGJha2VzIHRoZSBk
YXRhYmFzZS4gSXQgbmV2ZXIgcnVucyBhdXRvbWF0aWNhbGx5LiBJdCBpcyBmb3Igc29tZW9uZSB3
aG8gbmVlZHMgdG8gdGVhY2gKKyAgICAgICAgSW5kZXhlZERCIG5ldyBzdHVmZnMuIFRoZW4gaXQg
Y2FuIGJlIHVzZWQgdG8gYmFrZSB0aGUgZGF0YWJhc2UgYWdhaW4uCisKIDIwMTctMDctMTAgIFph
biBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIEZpeCBs
YXlvdXQgdGVzdCBiYXNlbGluZSBhbmQgVGVzdEV4cGVjdGF0aW9ucyBoaWVyYXJjaHkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggZjY4NTA2MGNlYmY1OWM0NjhmMDkyYzliYTM4NWRmMzk2Yjdm
YjY5MS4uNWY3NTIyZTI3ZjIxY2ZjNjM4NjgzYzRiOThlOWE2ZTI0MjFmOTQ2YyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE5OSw2ICsxOTksMTIgQEAKIAkJNTcxNEVDQjkxQ0E4QjVCMDAw
MDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxNEVDQjgxQ0E4QjU4ODAw
MDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMLmh0bWwgKi87IH07CiAJCTU3MTRF
Q0JCMUNBOEJGRTQwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTcxNEVDQkExQ0E4QkZEMTAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJh
bWUuaHRtbCAqLzsgfTsKIAkJNTcxNEVDQkQxQ0E4QzIyQTAwMDUxQUM4IC8qIERvd25sb2FkUmVx
dWVzdE9yaWdpbmFsVVJMMi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3MTRFQ0JDMUNBOEMyMTgwMDA1MUFDOCAvKiBEb3dubG9hZFJl
cXVlc3RPcmlnaW5hbFVSTDIuaHRtbCAqLzsgfTsKKwkJNTc1OTlFMjExRjA3MTkxOTAwQTNGQjhD
IC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTk5RTIwMUYwNzE5MTcwMEEzRkI4QyAvKiBJ
bmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkubW0gKi87IH07CisJCTU3NTk5RTI3MUYwNzFB
QTAwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUy
NDFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0
ZTMgKi87IH07CisJCTU3NTk5RTI4MUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2Fy
ZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0gaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1OTlFMjYxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4
ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSAqLzsgfTsKKwkJNTc1OTlFMjkx
RjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUz
LXdhbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NzU5OUUyMjFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmls
aXR5LnNxbGl0ZTMtd2FsICovOyB9OworCQk1NzU5OUUyQTFGMDcxQUEwMDBBM0ZCOEMgLyogSW5k
ZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTk5RTI1MUYwNzE5MkMwMEEzRkI4
QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0bWwgKi87IH07CisJCTU3
NTk5RTJCMUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlX
cml0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3NTk5RTIzMUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBh
dGliaWxpdHlXcml0ZS5odG1sICovOyB9OwogCQk1NzY5QzUwQjFEOUIwMDAyMDAwODQ3RkIgLyog
U2VyaWFsaXplZENyeXB0b0tleVdyYXAubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1NzY5QzUwQTFEOUIwMDAxMDAwODQ3RkIgLyogU2VyaWFsaXplZENy
eXB0b0tleVdyYXAubW0gKi87IH07CiAJCTU3OTAxRkIxMUNBRjE0MkQwMEVENjRGOSAvKiBMb2Fk
SW52YWxpZFVSTFJlcXVlc3QuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NzkwMUZCMDFDQUYxNDFDMDBFRDY0RjkgLyogTG9hZEludmFs
aWRVUkxSZXF1ZXN0Lmh0bWwgKi87IH07CiAJCTU3OTdGRTMxMUVCMTVBNjgwMEIyRjRBMCAvKiBO
YXZpZ2F0aW9uQ2xpZW50RGVmYXVsdENyeXB0by5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Nzk3RkUyRjFFQjE1QTVGMDBCMkY0QTAgLyogTmF2aWdh
dGlvbkNsaWVudERlZmF1bHRDcnlwdG8uY3BwICovOyB9OwpAQCAtNzQzLDYgKzc0OSwxMSBAQAog
CQkJCUY0QTMyRUM0MUYwNUYzODUwMDQ3QzU0NCAvKiBkcmFnc3RhcnQtY2hhbmdlLXNlbGVjdGlv
bi1vZmZzY3JlZW4uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNEEzMkVDQjFGMDY0
MzM3MDA0N0M1NDQgLyogY29udGVudGVkaXRhYmxlLWluLWlmcmFtZS5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCUY0NjlGQjI0MUYwMTgwNEIwMDQwMTUzOSAvKiBjb250ZW50ZWRpdGFi
bGUtYW5kLXRhcmdldC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTU3NTk5RTI3MUYw
NzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyBp
biBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk1NzU5OUUyODFGMDcxQUEwMDBBM0ZCOEMgLyogSW5k
ZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtc2htIGluIENvcHkgUmVzb3VyY2Vz
ICovLAorCQkJCTU3NTk5RTI5MUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENv
bXBhdGliaWxpdHkuc3FsaXRlMy13YWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNTc1OTlF
MkExRjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk1NzU5OUUyQjFGMDcxQUEwMDBBM0ZCOEMg
LyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5V3JpdGUuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQlGNEI4MjVEODFFRjREQkZCMDA2RTQxN0YgLyogY29tcHJlc3NlZC1maWxl
cy56aXAgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjQxQUI5OUYxRUY0Njk2QjAwODNGQTA4
IC8qIGF1dG9mb2N1cy1jb250ZW50ZWRpdGFibGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQlGNDFBQjlBMDFFRjQ2OTZCMDA4M0ZBMDggLyogYmFja2dyb3VuZC1pbWFnZS1saW5rLWFu
ZC1pbnB1dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTIzOCw2ICsxMjQ5LDEyIEBA
CiAJCTU3MTRFQ0I4MUNBOEI1ODgwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVS
TC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRG93bmxvYWRSZXF1ZXN0T3JpZ2lu
YWxVUkwuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcxNEVDQkExQ0E4QkZE
MTAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9IERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRt
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcxNEVDQkMxQ0E4QzIxODAwMDUxQUM4
IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMMi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1s
OyBwYXRoID0gRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU3NTk5RTIwMUYwNzE5MTcwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNr
d2FyZENvbXBhdGliaWxpdHkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTU3NTk5RTIyMUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2Fy
ZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gIkluZGV4ZWREQkJhY2t3YXJkQ29tcGF0
aWJpbGl0eS5zcWxpdGUzLXdhbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3NTk5
RTIzMUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0
ZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5V3JpdGUuaHRt
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc1OTlFMjQxRjA3MTkyQzAwQTNGQjhD
IC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IEluZGV4ZWRE
QkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1NzU5OUUyNTFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRp
YmlsaXR5UmVhZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5
UmVhZC5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzU5OUUyNjFGMDcxOTJD
MDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtc2htICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0
aCA9ICJJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0iOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1NzY5QzUwQTFEOUIwMDAxMDAwODQ3RkIgLyogU2VyaWFs
aXplZENyeXB0b0tleVdyYXAubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTc5MDFGQUMxQ0FGMTJDMjAwRUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJMUmVxdWVzdC5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvYWRJbnZhbGlkVVJM
UmVxdWVzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc5MDFGQUUxQ0FGMTM3
MTAwRUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NDgsNiArMTg2NSw3IEBACiAJCQkJNTFBRjIzREUxRUYx
QTM3MjAwNzJGMjgxIC8qIEljb25Mb2FkaW5nRGVsZWdhdGUubW0gKi8sCiAJCQkJNTEwNDc3NzUx
RDI5OEUwMzAwOTc0N0VCIC8qIElEQkRlbGV0ZVJlY292ZXJ5Lm1tICovLAogCQkJCTUxMTBGQ0VG
MUUwMUNCQUEwMDZGOEQwQiAvKiBJREJJbmRleFVwZ3JhZGVUb1YyLm1tICovLAorCQkJCTU3NTk5
RTIwMUYwNzE5MTcwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkubW0g
Ki8sCiAJCQkJNTFBNTg3ODQxRDI3MkVGMzAwNEJBOUFGIC8qIEluZGV4ZWREQkRhdGFiYXNlUHJv
Y2Vzc0tpbGwubW0gKi8sCiAJCQkJNTFCQ0VFNDkxQzg0RjRBRjAwNDJDODJFIC8qIEluZGV4ZWRE
Qk11bHRpUHJvY2Vzcy5tbSAqLywKIAkJCQk1MUIxRUU4RDFDODBGNTg4MDA2NEZCOTggLyogSW5k
ZXhlZERCUGVyc2lzdGVuY2UubW0gKi8sCkBAIC0yMDg5LDYgKzIxMDcsMTEgQEAKIAkJCQk1MTA0
Nzc3MDFEMjk4RDg1MDA5NzQ3RUIgLyogSURCRGVsZXRlUmVjb3Zlcnkuc3FsaXRlMy1zaG0gKi8s
CiAJCQkJNTEwNDc3NzExRDI5OEQ4NTAwOTc0N0VCIC8qIElEQkRlbGV0ZVJlY292ZXJ5LnNxbGl0
ZTMtd2FsICovLAogCQkJCTUxMTBGQ0YwMUUwMUNENTMwMDZGOEQwQiAvKiBJREJJbmRleFVwZ3Jh
ZGVUb1YyLmh0bWwgKi8sCisJCQkJNTc1OTlFMjQxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWRE
QkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzICovLAorCQkJCTU3NTk5RTI2MUYwNzE5MkMw
MEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0gKi8s
CisJCQkJNTc1OTlFMjIxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0
aWJpbGl0eS5zcWxpdGUzLXdhbCAqLywKKwkJCQk1NzU5OUUyNTFGMDcxOTJDMDBBM0ZCOEMgLyog
SW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5odG1sICovLAorCQkJCTU3NTk5RTIz
MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0ZS5o
dG1sICovLAogCQkJCTUxQTU4NzgyMUQyNzJFQjUwMDRCQTlBRiAvKiBJbmRleGVkREJEYXRhYmFz
ZVByb2Nlc3NLaWxsLTEuaHRtbCAqLywKIAkJCQk1MUJDRUU0QzFDODRGNTJDMDA0MkM4MkUgLyog
SW5kZXhlZERCTXVsdGlQcm9jZXNzLTEuaHRtbCAqLywKIAkJCQk1MUJDRUU0RDFDODRGNTJDMDA0
MkM4MkUgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLTIuaHRtbCAqLywKQEAgLTMwNDIsNiArMzA2
NSw3IEBACiAJCQkJNDQ4RDdFNDcxRUE2QzU1NTAwRUNDNzU2IC8qIEVudmlyb25tZW50VXRpbGl0
aWVzVGVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VFRjFBNDExQUU2MDA0NDdDNEMg
LyogRXBoZW1lcmFsU2Vzc2lvblB1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDQ0U3RUYwMUE0MTFBRTYwMDQ0N0M0QyAvKiBFdmFsdWF0ZUphdmFTY3Jp
cHQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTc1OTlFMjExRjA3MTkxOTAwQTNGQjhDIC8qIElu
ZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTMxNTEx
ODEwMURCMUFFNDAwMDE3NjMwNCAvKiBFeHRlbmRlZENvbG9yLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTdDQ0U3RUYxMUE0MTFBRTYwMDQ0N0M0QyAvKiBGYWlsZWRMb2FkLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDODNFMDRGMUQwQTY0MTgwMEZFQkNGMyAvKiBGaWxlU3lzdGVtLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQ2Njc3NmE0Mjk3NjFiMWY3MGJlYmIyZWRmOTQ2NmFhY2E4ZmU0NzYKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9J
bmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkubW0KQEAgLTAsMCArMSwxMDcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMu
aCIKKyNpbXBvcnQgIlBsYXRmb3JtV2ViVmlldy5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkgeworCitzdGF0aWMgYm9vbCByZWNlaXZlZEFsZXJ0Oworc3RhdGljIFJldGFp
blB0cjxXS1N0cmluZ1JlZj4gbGFzdEFsZXJ0OworCitzdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0
QWxlcnQoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIGFsZXJ0VGV4dCwgV0tGcmFtZVJlZiBm
cmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAg
ICBsYXN0QWxlcnQgPSBhbGVydFRleHQ7CisgICAgcmVjZWl2ZWRBbGVydCA9IHRydWU7Cit9CisK
K3N0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tQYWdlUmVmLCBX
S05hdmlnYXRpb25BY3Rpb25SZWYsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwg
V0tUeXBlUmVmLCBjb25zdCB2b2lkKikKK3sKKyAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2Uo
bGlzdGVuZXIpOworfQorCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVz
cG9uc2UoV0tQYWdlUmVmLCBXS05hdmlnYXRpb25SZXNwb25zZVJlZiwgV0tGcmFtZVBvbGljeUxp
c3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqKQoreworICAgIFdLRnJh
bWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0ZW5lcik7Cit9CisKK3N0YXRpYyBXS0RhdGFSZWYgY29w
eVdlYkNyeXB0b01hc3RlcktleShXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqKQoreworICAgIC8vIEFu
eSAxMjggYml0IGtleSB3b3VsZCBkbywgYWxsIHdlIG5lZWQgZm9yIHRlc3RpbmcgaXMgdG8gaW1w
bGVtZW50IHRoZSBjYWxsYmFjay4KKyAgICByZXR1cm4gV0tEYXRhQ3JlYXRlKChjb25zdCB1aW50
OF90KikiXHgwMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdceDA4XHgwOVx4MGFceDBiXHgw
Y1x4MGRceDBlXHgwZiIsIDE2KTsKK30KKworLy8gV2hvIHRyaWVzIHRvIHRlYWNoIHRoaXMgQVBJ
IHRlc3Qgd2l0aCBuZXcgc3R1ZmYsIHBsZWFzZSB1c2UgSW5kZXhlZERCQmFja3dhcmRDb21wYXRp
YmlsaXR5V3JpdGUuaHRtbCB0byBiYWtlIGEgbmV3IGNvcHkgb2YgdGhlIGRhdGFiYXNlLAorLy8g
YW5kIHJlcGxhY2UgdGhlIGV4aXN0aW5nIG9uZXMuIFRoYXQgZmlsZSBoYXMgdG8gcnVuIGJ5IG1v
ZGlmeWluZyB0aGlzIFRFU1QgYXMgQ3J5cHRvS2V5IG9iamVjdHMgYXJlIGVuY3J5cHRlZC4gV2Ug
bmVlZCB0byB1c2UgdGhlIGNyeXB0byBrZXkgYWJvdmUuCitURVNUKEluZGV4ZWREQiwgQmFja3dh
cmRDb21wYXRpYmlsaXR5KQoreworICAgIC8vIENvcHkgdGhlIGJha2VkIGRhdGFiYXNlIGZpbGVz
IHRvIHRoZSBkYXRhYmFzZSBkaXJlY3RvcnkKKyAgICBOU1VSTCAqdXJsMSA9IFtbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxp
dHkiIHdpdGhFeHRlbnNpb246QCJzcWxpdGUzIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdOworICAgIE5TVVJMICp1cmwyID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAIkluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eSIgd2l0aEV4dGVu
c2lvbjpAInNxbGl0ZTMtc2htIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNl
cyJdOworICAgIE5TVVJMICp1cmwzID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNv
dXJjZTpAIkluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eSIgd2l0aEV4dGVuc2lvbjpAInNx
bGl0ZTMtd2FsIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworCisg
ICAgLy8gU29tZWhvdyB+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvV2Vic2l0ZURhdGEv
SW5kZXhlZERCLyBkb2Vzbid0IHdvcmsgb24gbXkgbWFjaGluZS4gQEJyYWR5IGFueSBpZGVhPwor
ICAgIE5TVVJMICp0YXJnZXRVUkwgPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFy
eS9XZWJLaXQvRGF0YWJhc2VzL19fX0luZGV4ZWREQi9maWxlX18wL2JhY2t3YXJkX2NvbXBhdGli
aWxpdHkvIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXV07CisgICAgW1tOU0ZpbGVNYW5h
Z2VyIGRlZmF1bHRNYW5hZ2VyXSBjcmVhdGVEaXJlY3RvcnlBdFVSTDp0YXJnZXRVUkwgd2l0aElu
dGVybWVkaWF0ZURpcmVjdG9yaWVzOllFUyBhdHRyaWJ1dGVzOm5pbCBlcnJvcjpuaWxdOworCisg
ICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjb3B5SXRlbUF0VVJMOnVybDEgdG9V
Ukw6W3RhcmdldFVSTCBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3Fs
aXRlMyJdIGVycm9yOm5pbF07CisgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBj
b3B5SXRlbUF0VVJMOnVybDIgdG9VUkw6W3RhcmdldFVSTCBVUkxCeUFwcGVuZGluZ1BhdGhDb21w
b25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMy1zaG0iXSBlcnJvcjpuaWxdOworICAgIFtbTlNGaWxl
TWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY29weUl0ZW1BdFVSTDp1cmwzIHRvVVJMOlt0YXJnZXRV
UkwgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5kZXhlZERCLnNxbGl0ZTMtd2FsIl0g
ZXJyb3I6bmlsXTsKKworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRl
KCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworCisgICAg
V0tQYWdlTmF2aWdhdGlvbkNsaWVudFYwIG5hdmlnYXRpb25DbGllbnQ7CisgICAgbWVtc2V0KCZu
YXZpZ2F0aW9uQ2xpZW50LCAwLCBzaXplb2YobmF2aWdhdGlvbkNsaWVudCkpOworICAgIG5hdmln
YXRpb25DbGllbnQuYmFzZS52ZXJzaW9uID0gMDsKKyAgICBuYXZpZ2F0aW9uQ2xpZW50LmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gPSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uOworICAgIG5hdmlnYXRpb25DbGllbnQuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3Bv
bnNlID0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOworICAgIG5hdmlnYXRpb25D
bGllbnQuY29weVdlYkNyeXB0b01hc3RlcktleSA9IGNvcHlXZWJDcnlwdG9NYXN0ZXJLZXk7CisK
KyAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJm5hdmln
YXRpb25DbGllbnQuYmFzZSk7CisKKyAgICBXS1BhZ2VVSUNsaWVudFY1IHVpQ2xpZW50OworICAg
IG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOworICAgIHVpQ2xpZW50LmJh
c2UudmVyc2lvbiA9IDU7CisgICAgdWlDbGllbnQucnVuSmF2YVNjcmlwdEFsZXJ0ID0gcnVuSmF2
YVNjcmlwdEFsZXJ0OworCisgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdlYlZpZXcucGFnZSgp
LCAmdWlDbGllbnQuYmFzZSk7CisKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRv
cHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiSW5kZXhlZERCQmFja3dhcmRDb21wYXRp
YmlsaXR5UmVhZCIsICJodG1sIikpOworICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCks
IHVybC5nZXQoKSk7CisKKyAgICBVdGlsOjpydW4oJnJlY2VpdmVkQWxlcnQpOworICAgIEVYUEVD
VF9UUlVFKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobGFzdEFsZXJ0LmdldCgpLCAiUGFz
cyIpKTsKK30KKworfSAvLyBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21w
YXRpYmlsaXR5LnNxbGl0ZTMgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YjNl
OGVhYWFlOWZjYjRjNDlmMzA1MTY2MTE3NDlmNjhiNWIxNGIwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0
ZXJhbCAxMTg3ODQKemNtZUk1MlV0X2R4NGBkQkJ8czg3TnxEZmVtOTh1dU1YRDRMNmZ1RklDPWk2
dVkhcEZWI0RXRkloRnVYR1J1JjU/CnppWEZSUmNXdDtSREU5N35uKmI3Pz96LTsjfEcpMzhYWSVF
OEAwcG8xYkFCXi1acUEkbHAjJUxCZ25VbENBVF4wQQp6PG4rZW1GY0p4Szw4VXd4QmNabkBkVXFz
Z2JWQkw0S3RKJj09aWZSZFZIUWp8cnRDQ0tqeTR1IW8zTV5EciFtY0IKej1nNXFmOVcxTGFKem1D
NHMjNG04QHJmPl5qaW96JU85e3c8MDF5QklLO1lqKkFnP2MqdTQtdEE9UXt8d3loT2VxCnpLZjUx
NG5WLXJQM1IyU35GNjJCenl4cWdSSWJyU3x7QHhza0VSSzxZSDtOeEMzYExkcnpGcipQeiVjS0Et
WFdhOAp6cGZGQmd4VzdMcUQzSWVCNnpKcGM+bHchSmFyZ0QtZ2FgVCM0RUw2aGhqPDczeUwpPEBh
Ym5YYFF+QWs0KVdUbVkKekdJby1xc1JrSjBTVkQzZktQem9hQjZeQyhhTU9oWChSR1lPRkpyN0ZG
Nkh4V1MjKHRgRXhiVCV4aTZ1P0gjdUk9CnpkQlQ+a3hLcXFBTntJWEdvfCRveXhrLUZabkQ9MUI7
OURIYklEWnFJOER9JjxKRDRqUiQ/QDxIXjd1MnczMkVXVQp6MzFpYXYtX3o1aV5oOUJUY2R7X2Bk
eCstOyVnfEwjUDRSKlYoUyEtPUdWJXlzd0BYPEdneHhZRktuOTJTMkRwYnIKemF7Um1femlybW48
XyQ1UXo2PHVaRH1PSWpWcSpDdyQ5QC01RX1CY2tnISshViFQdGRLUXlwbWZ0eDRSQ1Q4dkZNCnow
bjBgOT9eTCgkUi1LdD0mSllifnpQeEJhZVo0JXF4YWY/ViN1d2NVbDkkcEYxS089RCN8Vi05aXop
eExRUnV3Jgp6R3F7T3Aje1QmfFc5JWFSWFhiWTZRakIjc2ZsUXRRTz8yRG15Tkp5N05FR21WNSkl
MW9vaE5oJjZGYkVtQk9XUm0KejleKEhPe3JqNE07eURfUm5oRV50TWQ0Y3RqSUVfO3NAX2BQbmtK
bmNqamAhR1dtd2F7dVpuZU42KUUmXkJpPmteCnozWUQmXnRCZEVRYiNlO2YjfGwjOE01TmtKWTUk
OD1keHBkI0F3LWIqSkA/R19AaW1VNyZ7UXE7QCQ+fW9me2t2bgp6X0JQdkI9cjAwbGQrJlMkeX1T
bz1NQT09NzV8NXYqTGVjYSEmVVlyJFJyVTJIOXQmTS13VnpXWUVTRlQxQFYkNWIKemtGRWRXM0Zz
Tio/QHY2QihmdDA/SFBlaks8Knhldk5gZiF6eTRkM0hURkhpITVJYzF8azEwYSU2PlF7b1owI1Fh
CnojM1IkUzk1RT5FKkFqRWMqR3UmNUd0TFhlPjhrNExjPlY7QHZ9YFpoeyh+ZWpDfF82ZUp1fFUk
OFQpPS1WI3Q1Owp6cSkhI3lKWTZWdWRFeXlVKEc1cHB6YXM4Q1A0O3tDRF5mYTE5Jmc2PztebFpZ
Sl92V2g+RFlPITFkQXBMe094MlQKek1gZ0klVkF5YkM+JWJSRiMpT3pQV3s8Z0pzcCFTVXZOME54
dDkwJXVDPSg2MXY4andgcUstVmUyKihtY3dIekB8CnpFRF9hNiFjczZrN1N+K15uVyN1NGtwPiU5
bXNZPU09Ky1LK3lDRilWSSN4XzchLVomLWZuPyZJSShCY1JiSDc3Vwp6THRVMjIoQzQ1VU1CQFJk
WnomPmNkVEQofE5tfllHbnpkKCFxQW0rWG5WTkplKEpZNTNxOTt2ZFNSMEBzMWNOezwKejlvZmMx
MXllLUBISU5KP0JSMzVPRHk3bjFEaW88bjYlaVJCRHk0MkpNUCt6JVBfN0lye0tZO0dxJTl1M0k8
elReCnpkYWg0THMqS3VJZ2BtdDRtXllUeS1mYWI+QW9tbU03UklCfDd7Ky0tSWJ2S3E1T3g5VDd8
fV5LK012bExtUCUqaAp6a2RRM29yelVkfm9oPmFib29wVEw8Nnw5ZCV3dUV1VHl0QlZCaFRFYXdA
dGl4b1NpKXstVndkNWQzSG50OXBqVz0Kem9rRkVFVG5nR09QJX5vVU5yPlBHKUcwNllROzZPfmdS
RDRvQWxgMF4oRSQ8PTAwS1kmMm1rPmYwMGUqbDVDOCV8Cno7UXk5QCFZQiZpfDJWZSRLUihGYU48
P2w2O2Z+MG5ja1ZaUkFTLUB2RD1SeTBvVmdYeCFOJU95RjRvNH12M0dBOQp6YjF1KXAkJWU7c2g8
RGBqTUdoN25YXjlzSUVRREQ/NHc9ZEBIZlYyMz9EPmVCbEVGQ1YrcDE1ZWR6aDF1KD8pY0wKej1z
KnkxIzczZGMjSjBQV0IoejxZbzAyTD47aW4zLURUR3NMZztOPms5O2k2cylfLXZiaU9QNn4hJUcr
WXVeUmVGCnpzNGhvJT0ya0tURiFtJDFEPzZLQSVkVFd6V15ROW9YVGA4SVMqS1chKmxoTkJIa2I5
MFpPQyRBekdyUEA8dUYkOwp6T1BJTSMwZHA4TGZaM082JTJaPUFXWiVkKCR6R0RWRXdlYEV6MDZe
bT45USlhclpUWklTdXo3O0ohRTVLRGBkeF8KelcqYDlwQU9Ia18wMXlCSUttWjU7ZnF4TiE5dShY
ZnItKG5QMmN5Nz1BQnR1OFVeYllRNShQSVZHS2hGZXw4fXZaCnpxJVoofFNvZyMleH5nelQoVjAt
cDlGPnAyJXpJSUE3ZVdPUUU5dURhTUF8KTIwWX1WQ2plXj98Kn5xbyUlPGhMMgp6MjRKUk4la282
XkpUYTU2WE42JVFtfnEkTWQ4NHZrc04rVHw2eF5JPmg0M3hKIWNmJGpwI312LTM2WXFILUdgdHEK
enlRNGtAaU1rUHQ4RlghPEJRcUVrM2RRcy1EMG5uY2tCSVkkdmp7TyFJflc9NWlPI0xqYz9MU2hW
ME1fRTgzbTZkCnppcHpCdDd4VmRBVk89PjJ1OG9zMTRsMFkxbCQoeUUwQ1VycDZnK2sxaHk8akxE
dGN+T2teJnZLVVhsV2lvMkh+ZAp6ISVhZ3soOEVuI1FsUjlmQ01sM30+blNPYWFfYj19en0hP04x
eTVhN2JTVnM5OTItdSFxZHViVzkxJF9JJDd+VjEKemo8fkF3U0loSzl2Kyt3QUMyYjFCOHxmaXBo
YUZLOyRyNmZNNm94eDBAZztnSW5YbThfNFUrTClgVHdPc0dHRVN8CnohaVl2S2R8I31XLTk9a1Jr
R249YFMoKzR2MykxJVc3JW8kdSFxNyojVSpmZzBUX29abHQmQSMjVlU1WlY0cytMLQp6dGFLTjcq
QztIYjN4T3xXeVQpSW95NDM2JWJmcWcmN3s7aDJpNkU7KXxHUCYtc2E8TXhZKWVxTyRVNjI5JFgj
ME8Keng/QDA2cUE8KUUtTTBwcSRXcnZCZUBIKzgybWs+ZjAwZSpsNUM4JXwwMDttOUFPSGtfemB2
TFB2OXw7TXxHIypFCnohODlOTTFiX2UjMDBLWSYybWs+ZjAwZSpsNUM4JiowMV5LdXZHWHpaMGQj
LV8xYl9lIzAwS1kmMm1rPmYwMGUqbAp6NUM4JXwwMHtodDIpS35RY248QXt8RWAofmo7ZDM+VEsj
K2VCIVNyZiYlKVN5KmpmSn0xM0BoaTAwS1kmMm1rPmYKejAwZSpsNUM4JXwwMDtucXBPJTBKaUph
NSh0NnV4fXs0c1NLMyE8dEF7dypFZjxNfl5RYlAoVkZDJFM0TGJ7I3JFCnowcz1xKTJtaz5mMDBl
Kmw1QzglfDAwO205QU9IbVphfEIkLUlydENuMSg1b1phfk5OKHtYTSQ/ViptZFUjKHU/cQp6XnEo
XmpHeT8lMzAwZSpsNUM4JXwwMDttOUFPSGtfMDF5Qkl8ME0jXzxlcz9yaXZ1SkV4aEYjJHwwbGx4
UGhwbzQKenxOcmswZG93ekwxTyRLcDVDOCV8MDA7bTlBT0hrXzAxeUJJS21aOCpfWHNGYSRtWist
WmRNUik2aEJyTkRpb3loCnplWjh5fCR6KVR1N2d4eVRhbnR5Tl9eRHxMZkBFdWI1P1NBPUxtMD9T
O2A2dyVxY2dkd2FXUyFpcSFnfCZmdFFlJgp6QWswPzhRUVpLKGtRO35VY2huYH57fWxFJWpENE1i
bClhN0peNH5LTVNeQCQ8MDA7bTlBT0hrXzAxeUJJS21aNTsKejBVIVZieylCKU0qJk9lX0YrZm95
bzhsYz8wUFZnI1MmcHBWREk+TjhORDU/QU16OytCUVQoNUUzMWlvP0MkSnNSCnoyX3pyQDFiX2Uj
MDBLWSYybWs+ZjAwZSpsNUM4KUlad1NPdD0kS1pYaUlofXFZSWNmSDtLJEdBcjZlWSMzOVlRbwp6
O1VxRjhPcWlYKkFDeDljTy1MUmdoWSNaPmp1NTBLMnVDSmFCcUp8YmltQXwzVTJHfGl3XzhsQFgx
UiRNblRCYSkKekZyLTleeFFYZmY0Kmgzd2wxUkg4Q002QCtPJClpMzc2bXNGNE8yeTBHSmFUdERe
QTBkR28oY1FfQE9SezxOd1ZWCnpgdmR3NTA4aVA/LU1SPnVLbVo1OzBVIVZiZkIrQngwemQhPTAw
QUhYMWMxUSpEKnt3OWojRFZha3hWOXpCb2RqLQp6VjJKKHlhflMmXmB3amF4eVk+SC1OemhwITAw
ZSpsNUM4JXwwMDttOUFPSGtfMDF5QklLUD4/IVNxdHl7KzU/NVMKej5pbSlkbkwkPj9NUERgYChh
RmpUTFFaYERBOFlAaiFjVTZ+MzxtOzAwMDttOUFPSGtfMDF5QklLbVo1OzBVKz0lCnpDJXxNc0w0
V2A2NCNzfVp7KTJzb3tvLUc0RXw+PWRmQitCeDB6ZCE9MDBBSFgxYl9lIzAwS2JaVXJLPD1CRUlZ
fAp6T2AodStER0lXWURuKnFTe1NwOGZDb2Bucl95N047IXd6TnYwVSFWYmZCK0J4MHpkIT0wMEFI
WDFjMU8jTn0kV3sKenxJM1NofERRJHR7eSYxRF8+JSR3dnc7OCowMEtZJjJtaz5mMDBlKmw1Qzgl
fDAwe2d7MWVBVXpXNUhHKzAwZSpsCno1QzglfDAwO205QU9Ia18wMXlCSUtQZHNfcFZWJEo4d2Rh
YUFPSGtfMDF5QklLbVo1OzBVIVZiZldYZzBLOz5zTAp6N0hrQ3FLbVo1OzBVIVZiZkIrQngwemQh
PTAwQUtJbE0rejxOJG0hK2ZkQ0t5MHpkIT0wMEFIWDFiX2UjMDBLWSYKejI+ZVYwZGkrZXJmfmBP
UjJtaz5mMDBlKmw1QzglfDAwO205QU9Ia0BRVVgxSFFvRiV5QU9Ia18wMXlCSUttWjU7CnowVSFW
YmZCK0J4MHpWVDB3ViVtWXVvVmFaMFUhVmJmQitCeDB6ZCE9MDBBSFgxYl9lIzAwS1kmMm1rPmYw
MGUqbAp6NUM4JXwwMDttOUFPSGtfemB2MEk2QiM5a01QdXYrYn4kP2pUYmA2b2xFPDZ6eT84bUVq
U3M/fGE1e0QjRD90VCoKekItek1POFNYWTFIZTRGal9RakdoQSFkISlXQTBjZ2RVM0lBakUzWVls
biZMUmU/O2lVclpTPzVJYFQqeWp3T2d7CnpJYnhuekJDMyZ1ckNAdzR1RGJAWmdhI1d7bXNZPU09
Ky1KcHFLKn1sJTVXaUNXZ3hNKnI7Z29RITZqO18lVGdLbwp6OThgbTdKT0s0QU1QeUFjdDxOWkYl
Yi1sTl9STFYhV3VZaWpsVElhPzxxJD5tcV5TJlIxNXxgeTVRd0VDK2p5djgKenM7SG1fbEEmYmVy
b2xqXiZfOEdwbD9we19RYmp+WWgpU3VPTj5MZiE5RiF9QTNWKlRCMThJdiN1TVRhPnFNcXkxCnpr
dChCaFJVcyZJMW09eHB3UmMrcURhaWVWeGBwdipHPV5+PVFIfmZGNH1AS1NJITFKbz9TI3RrNShQ
WUc7KmdMbQp6PGZrVGM2UCt6QkV1Q3h+P2Mtd3xaT21oMWBDTX5ibytIb1Bza2NxTWQ3UGErRld3
UW90YSl9czEwQ2EoVSE2ancKekdoN1BWRUtvQ0k7ekB8JDItR1ByXml6bzVNMSFuMmJSZ2J0aV9y
bFI1QzglfDAwO205QU9Ia18wMXlCSUs7WndECnpmV2p5VztyfT9jYCMoTyYtQVk3bTNFX14mcUlk
MiRlSVA0LVohMFQxWmspTGwmJXdzciktS2tAK184Nlc4Kj90dAp6IU80Y2xiQks1M0A8azM3OWNo
VWQyclB0SUxKcGJBRmc5cCFPNj5XRm8wN3BlPWk5MUpyK2IpX2trZHdWaFVoPkwKemE+UGNWJmN3
RjZsTyFwbURrVzhyIWNQQHVRd1hRaDNhMnY2SnkzQmZEKm5ZR0JyNCtfNGxrWVgyMVJ9LVFHQFhS
CnpsX35aWmAjOElsSilDWENkZGotT0k+PWhmbiNJYXlAbVBLPUdadk5FJURsfG4mI2FLeSVCViZ+
QXBycChAS1h+Zwp6JUYoQ2NjSnNuODNOez9BWElLYXBpazJJNUVFeFJeNilsJDlMKG1lJE9HISpm
Nkl4a2F6KTU1Wmx9NDh1JTFAMz4KeiV9eD5XPE5XeTlRSkphU2xvV0w4P0g0TktqKT0oTXI9fSRj
bDdyK2FgO1lFKC1NM0BveCYxZXN0YVFlfGo+dkRVCnpSWmxFak9xdiolbkVzQUNgcStsS2pCQnxB
YXtnZUhIbnlIQihWQjY1WXVOdHJCaX5lMUVTTyMkekg5TmI2MDx7OQp6VEdiMDs4I25CXnpHVWoh
YD9IPWNKWlBMX0E2RU5vNXBgKDhyZWgpQT9sJGZ3Yn43ZntQIyN0SmhBYzZ5KEZgYFMKenBRcVkl
dl8qQW4jXmN3OFFWKlQ7QEZwTTZRK3V8MTtJd1ZfN3YpRndreUBeOG5BVlNUYzlIK3l4ajl+ZSkl
N1EyCnpsJTN3Yl9xajE9Xz5PZkJHbTd1bjhyUihCeXFyMEVaTUpEZER4Pis9YSZKfEI8UjRkJFR9
WWtpSXJ+Skl0ZXclUwp6XituNnBUKFc2P3RiT0lPa2tqK1ZuI3Z1PTJjPHJuXyh1YGZYdVpqSERJ
ZXp6eSRhdHVqe0M1Iz1GT0N1RiRkbDMKentpTHQkYHxYcU4mQ0k4QHtqdSEjKzYkNzNIbTEhQlVS
Z1l7PyRqWU5XLVkqe2pLNjA1YF9TfjcrS0VmOFlecjA1CnpucThfZ19zKjAqemtUNUZrMlB1MjI1
YTVJaXl8KFdoRiN1QnVkY35Vb0tFdGV6NChVZnNRVTg5NjxIc3JzVyE0Ngp6NihrJVRYa2Q3NFlT
YzlnQF8zYHRyYnxBMSYtcVZsM1o1eyg9PTdjaVFPVVVIPGJncShQeVJBKF5aQ09pdlRvfSYKekh1
U1F7PSpqWmNCKGFeKDF1SCNOKnt3OFZAIyl2b3U3e0BXJjBpR0xSJm5sT2I1IzgyeGhxdlN6eUNk
UD8jQEZxCnp1Y2ktY1FPRkhqWWtsRX1pXzhkSyYwM0ZGdHVeeTZGPlc1eXcrK2lueHhQTi1UNnhx
KW5ONXJhP2E8MGREO29Mbwp6VjRpVG1xWCRleW8jKk9gWDlmKjZHUEcpV0JYakhpPDJ9LXpZeUdV
Zm54M1JER25fb1F2WllrNkpZKjx1JlhlOEYKejhSdWlSanZKI0wrc0lveUQ9SWY9VmdGdS1kRClK
aEoqSz5RYyVieG47flowRTlzMn53X2ZqVFZJKWx+Pz9lREhUCnpDRShDR14zPHpLVHI9TSVYPFcq
QnlDPjg1UjdTc20pMkIxOW9SWiN1UnJvSERyYWorNVlUblUzKk9vZlM0Vl9uKwp6eG4xQDBWYUw+
YUFCcjZtWDZxZkFyaGEra05xb2l2JihlJkYtKXRPP08pOCNldSlwdCV5Z05KTWhvX1ltOE0oTSEK
em87MTFxZiFReC10aXkkU007IUsoQDV5TGRSQXpzbnpmYUN2SkB3VX1BMEY3Xm0+WjxJPVRUcmBC
WVdKZmxkYk90CnorbUcqXnRveWQrWnZBY1kjZz5gPTF0ZSo9dT9lKGB1Q2syXmB4QDhacyQ2QkdJ
ejNQS2tjIWB2dCRHUXpnXkIrMgp6ISE4LUNnKVVvOFRTMn19SiRQWDZzfDRCQnBsYyV6VDBMZUFg
S3xCNl5fYmR9VmFoNW0qKkFrR1ojNCpTM2NTP3MKeipXISR9UD1qMnJlY0tQK0prOCFgeEp5QC1g
WmhmQGNXciliIX16cFk+cWxOJm1zNH59RUIxb0ByWEQqQipXQk5FCnpBWDxOT2xJXmlFRXhKUTlT
OWBAfk1OSWptblZmZktXMy0tY1Mtc2FKRTZ5RnBDQmQ/TVp0MVBGaytabnZaPk5xPQp6WD9ySCls
WGx9XmpuZShzWnd7dERfY1pIMl9qNCVrb1cyPSVofnBeRGl9b15TT35TOTBhMGZuNXpAQ09vPzcj
UTEKekxFT2dTe2JHdnhSYzZrcUdGVXVLaFIlTjlVdGVaVktZRDcrI3tSOEohWiE4d3F7K1YrJll0
N0FURDh1MWcwQDElCnptUl9vPDRtcm0mdG4yUHY5YmQzdGQtZn0qKFNaZVBvQ1lgeG87RHU3X0xm
eVlOcV48U0xzZ2MrUn1UYnhgYUFpVAp6Xj9XMyljUklWVnAwd2hXVm5LMERxU3cpYjd4RnlAM310
UmAhQ1R3Ql9BNTVzazYlQHl0flJLM3M3Mll7c0RlNTcKelhxSl9XVGAlP3lgbFI7NkBiezM1KlNI
cVhvX05NZlg+TiU2SENiLWdpc2h9WSN3eU9fVj5RSldlJHshP3g8M0JkCno9PDIlWFEoMHR3dU9Q
VnxtOGxsNzxlO3JhPFQqMGg+azNfRjd3KnlWSklzMz83YkdYQWEpLTckPTx8fD82KCVKOQp6PTsy
bVhheVRaMSR6IzFSVzMrX1lRUWxJT3NEfFJsMyNsWEtLeH5xQ05tUyFXblIreGxkV3JfSTB1enhF
QGRgfD0KenpUJFAqNEBGRXVRTUFQeiVSdDglJXVjKjIqQ0teS3hHTGolIWp4TSNGWCFNQjAqezwt
ZGF+fkYlMCQ8UEZQclolCnp4NHFofWJoZE8obkVkO3Zid0BNcyF9ZyEyRGRkbEdkdjwxMSMtJkBL
cDtkTkU9M1ZDK2paQDIkUmhDWG05R28qVQp6VkVeaHZHbHFHe3R6N3olUENLb0E+X3FLdjtuNkdJ
S2lXTGRTejxWMyFqbWlhOGBiQzZFfi0+MGUzVSU3KyU1WFIKemVPKzElQ0hpaHUjSDZhQD5tRm9Q
OVg7UT1ZTTtpRGlTens8RW10MHxhNloxbV5+VGlyNCtgVEctLU4wdT1XbzxHCno2IUZ7UWplaD5J
Pipmel90KlVyU1JafCl6ZX1ES3J5dChkWnYzZ0c0aEgmTGZKPWIyfHdxQUpOXnxmdHRmNlk/QQp6
KilVfD12JmoyUHJeSDlqJXxFPEYrMlReMSZDbS1zeV5qdXlqKDlaZ3p6WnFpWXROP2xLQ149OTxL
Sys8X15CY0cKentYRHJNIylJV0R6YjYoeTk8I3glKEQ+SzNvQnFGOXBwaUV5PlpjYS1ZO0I+bz95
LXdUPDh1enBHVCpnWGFjIU99Cno4dT0xcV9weCk1RWhFUSEyUEstK1koNmJIQF8wMCFnLTtVP15T
NEdHcEZUO2JPVCMwbHMxWU1DKkUjYXVYdGFzdgp6Pz5FTU0tIy18NC1SVUZHRyU5Q0Uqe1dSKFND
VVd1Yj45dWdCQ2Z8ZmVTUztjJG4hRDV5cmAtXyowPjFAY1NvXnUKenUzVDJHYjwzSW07TFleVzFL
JlFmdURmKGhxcT1hO0gwS3BvQSYwTHc/V3RSelg8Unc5cS1zfT1gcWRCYVl4Q0E4Cno/bFdGSUdI
RUJ7XlJFcyFxT1lBPXc3eWo5JSVPfHlXYDRFQ2NCOWBrbmJyMm9Ie2xgTUJOdlhfSE8jUTBidyhj
ZAp6dG1vO309eUAqbG5uSWdtU0RnTTdwNVZIKEt4XlNJS0ZZJFQ8cmBaSCZaJTlCb0QjNz10ITNS
Qi1MdlopLSNSczIKelNvWSFFKUxBZDRKWTxjJlQoYEFWLSo1NVVzelBTR25UekEyb19Qfmo+Qmx3
aWQqIWBWV3lHYE1oTCs2TGcqJWVmCnopX2N1IWxnO1UhT2ZIS3deKnRHS01yRmY8e2VyejJaeDRH
WVo/N3BqZHRpQT9LO1l2eGA1X2ZBSG5mYkNlSzI9Kwp6ZlVwcV9kJE11bnY5P0t7ZGJXKHtGfjl5
dzVfP0Y2ejFmR0pITFltYUh5dzZaZEJjRDI+cys1YSY5R0lvQ3dDazYKenA/REA8XmNUWmt0Z0op
RHdOKUBPI3UxbTRhd0VKdGIhQlp5Rih3bENST1UjRXBTbHZJZG5qdigjSDA9LWRaTjx1Cnpgbnsw
WTlfdGtBaHtTVHA7bXomT1BmUWU7TUY+KDg8RnF3M1E4OXhyI1c8cDNMfkl1JjYqcHhLTiN6PSVZ
PSpNQgp6cV9+R2pFVHlhX0RPTTdSPkI+RE4jZDBEc3QhRUQ7Pyk5Wjx2R3I4SyV+ZSpGdFJXXnFR
QzUpQGl3VGhKbThsRzAKekJHNX5DXkZFXkpDSn1KNyQ4NkVVREdgP0xUeWpOV1g/dnh3KjZXU2di
Z3plO2EmWiNYdnNGWVBUQjFFN01CNVJKCnp7ekAoNFE/d3xGWVN9MXMzMU4lRihPOz1VNEMkOVR3
KD8oVD1ffSFPZzR2Zl5nI1J5dC1OJlRJR25BeG94KD5+Zwp6OGJgP151T2NuTjQ8aGx1QmpyVXwo
UXhaWUVNbXpkcGFyQTJ3alQ7TGA9SFN5dUM9U3Q7bTAwfWEpeUA0T0J5JkEKeiZhU3NnX1IyMT9v
WnF1OEN3e0VqS0h2QWxSMTA2NnFFPTFWPG1eI05IekE9RnFSJkMqbDN+WE8jQC0yRXFwZWFFCno+
aSlXTmF4JUZuPT4lRktVZjN+bngzTWE5YGR4VDxmQTtSNmF5ZVd8ekwmQU5VQ2h8Jjt2dkElMHhu
OU8pM1dffgp6WDVKdTY4ZzQ4JGp0SlRKWiNWNTk4PHMobS0jcHtaSVZMfiVWc09PK1pTNmVmLUVE
R2I0bUdVfnZrWkxLQlh3fCEKelYleFpKRkZ6b3w8Zj4yUTU4VTUmSmhKY1BfbiM3YFVtUTIwJCRh
amx0Zjl5LWdVWStoMmFVTzRffjNkVTxKUjF2CnpXQi1PPmA3e2Z7dXctSj8jRCljK2QoQmZrVmhA
cH1LUjk5JFc1ejR3VW94WUk2O2lVJkVZdSZCRHpDN3YrVHlkPwp6YE5vIzJoNDBldC1ASX5ye0lW
P1VJNmFnbEtlQz9jRjAqPzU+UDBiUWhaLTBBJDFGUmZzNHtsOyUrZ3k4Y0h5UTIKelJ5OEN3TU1s
a2V7ZTBQJGtZQD05IzdURzczZD5DOFdleFE2VzMtMHRHNGdoeSNVKShyLSsofTxobFh1YDV6PFAo
Cnooeng3M0NnT1oyaD8ocDZpYndMQkJWM3lvV2lCeSYtTygyfWheTV9EN1YqIWdAOSRIJmNsOWNy
M1o4SDd4eilDPgp6Zn15ZHdANzRJPEZXMWUjdVYoQUokZWR7I2QxMjRrZ1FKbWdtV1IkcU1vI3la
UzZndm0pIypNTUJYOVokWFdSU3IKemR5c00yIU4rJE1XRjMzQGBlT1FsTW94c20teCVlKjtidGA0
TUxkMHB4IXF4JEMlUVg1a2RjbzYrezllbiNUJHAwCnozfFZkOHhfUCtVKjV6Z0lfKjIlQFpFTn1I
SmFnWiVeP0F+TmN0X1pAV2RfUzQ2VkZaMkgmb3w3P2JDMl4qVSphagp6dTRVX3I5PHVAXy14KXdt
PGpLREA5YWVZS0ktYXI2KmZyXjx7TkZLZ3M0M2JsNXR+Uz9eQnBHa0x6NmsrcFBUbnEKenVrTXZf
UzV3TnBPJXRYeF98ZilrNHlgWj16RUd9T2BAektVZ3dEajA3dD1USWFYWjM1PUg9YmZ1Tyk5Uism
fUtCCnopd3JeXzJgY0k7SXFBdSppZCZGKnFxTmkoN2tAZnlQO0AwPjNyRHh+X30/PG08ZzRhK3FW
YTNMVG1RLVdJQHRTNAp6TUViIU1FekV2P0ZGeT07Rm1vQWEkZCFiRUMrOWROaVM7KjxyVXFGMXMm
TC1raTlxSH1qNlhmTWVEfFp0aUkzI14KemhVfCZjIUR9TykpSUIkdGlwPCtGSF42eFAtSWVONSpE
azZhXkFmb0hFJVNgT1ZPfCpXeThpSmg+bTZBdHFmbSZtCnpjT00oRnc1ci08WkswaW1ATD0/RiUy
bVZKVzBjIXVfUnNZU0E5dHZQaFJtQ3hEMUFyYyZNTTBeIUJWVnIoMFU4PAp6ZTFFNm1MSDtrMGRI
UVdUZT5vTlljSClqSmklN2dAWV5sRnRVY1FfV1Q0ZjdKOWptTjI4WiQ1UzVEXipuPzhqR0cKej8j
OUNvYG4zOVVGTFdsVHpWVWFlVj1DNXNzJUYrXzM5Nj1WZjRXdHpUckgjfHJmPUFqQE8+ZlViK3Ju
NEg0VTclCnpTe0RPVlpieiZXdkpOfDZVWnAwYEhCODg3RUdoaWg+KmQ1MURjMlVna30tTWhSPT12
Pi0yNGZIXnQ5KEdeaFpjIQp6WispaU9LUkk+YUsmYT1INWk/Y312UjdEcXJkWCFaN2E/SVp0VFRP
RSZvfHl6I0QzPE94TztnQWxDdGVieyRqbTcKem1kYGgmO3BULSMxUU8hWWt7QWkkUyZOYH18RkFE
NVNHaXtDPTY0PH51R2cyb3A+RGhNZDFUfE8kbGFGKWQ+WGxXCnpsbUQ5SyNmdnRVWG5vdmhZaDJ7
RCMtd0Q7MW5TXihRTHt7JXQ5eE0rUnp4QENFam8yPG9iKUVtZ3hsSyNgKkhAYQp6bUdScUtSM1Yr
ZUQmfU9Xek4xRD4oRFo5OUNmWTlCUFk2eXsxYEhjSyowNlMzVTFJK3YpbHZ0MEFNUjE5SFh9WGYK
entxLVR1bjFOMlNCaFJ5YHhuSXBARThRTV5fMFNgQVhYbTZoS2NCTntmenB9RisoaSVNIz1Id3Ri
PXM0UzleTzVZCnp1OHhqN1VyNmlxWjFBRDdUVilxMmpxYT4/R351cX1GQCpRYihec0ZTemN8Klkr
ZEIzQnl5K1Fra31lSCk3eUU9MAp6K1klXnx6VlhRZ1NEYzAkJn5QWDVFOzh8e3hubWJPTlZHeCpp
KXNJKGVQc0VueXdAajdsZEpFQ2tuT2g3QlVVN1oKem9zcnM2d1dhVXhfdEZEKTR5b0RgX3JQYSpm
d1paWXxDWEBOQyV0PFpuQzdPT0YjRGglNVojTHN2YT9uckBSdWhXCnpHTH0wbnZEamttKyo+UFdM
IWl+Z2dMUipAREpGd0dpWiRQRFI9WWI/WEU8diZ1VyllclImdjNTQ2tBS3lSR1E7Vwp6TiNpRkAm
TTRYeChXQX5KWkdsPyhNUHUjVHZ1TmdQWipHV3Z6UGItUiliZ2x6THQ9TFFzSyt9cTFOTTtHbmtG
QT0KejMzUEd7SmIyUE8tfktUPHkqODFIe1NsfE0/MWZJbCl6a2ImLXROWU1UaCl9eCZ4SmNaOVhv
JXtXNGZ3byp9bkxNCnpCTD5SYkApR1Q7aGJnS0FySlIzeEZzRXdDR24zelVKeStQZCFOMEthcDN6
SUNmYytRNFgwN2Fme145OWlXaGR1KAp6Mkl5O140NElseUYqZnw8QHx7UThfKWBYMzkkNlJvYmU+
MTgkQDlkP3h3antxZXwlUT1gI3xoNyp+UXA+QHpwbFoKelZSfSFsRzlIJUlUKDFaenpXYVc2Ujhl
ZihiP3VMbjRZMV48QmotO3E3PkZnR1dsMUB8U3Z4LVpZfnUmN1hEP0h7CnpFfXdXS3dmZitKOXMr
aXNpQjghZShpM21pSzBVMHIhe2ZZQ04kYXtOMyRJZGw9VSs5Iz1mKjZKKSg7LW9VLXxoYAp6O2k8
QyRZcWw4PChFN2FCP3ZSUz5BZXloay1DPUs2TyQoYVB2VFdPZ3NxPHtDJVUlQE1qOXB4eUYpeno5
TDBOejAKekhhRChRV1Q5WnF1NmdSSTN0VDItezZTamJgKXVsYSY4LTtMeWUqI0FZOypmdVpedzx0
Qzs3VjEkY2tCWCF0SSlWCnp7amtyXm1zSXVaUytQUSg2ZUZFO1g3YE5+Tjt9a180NnVHX01RPTZB
K0J5R1QoN1JIdE9UWEElQG91Ym1HcmU5dgp6dyVfJlI3akxKPGMqPldwOUQ5I2ZreSs8K1dLO1BD
P0xKTzJZa3NANiNfaUwrKTQ/YkNgKTN0TGpnQiphdk5rcSgKeiRvO2BuM3tLM0FKWUp2VSpMTVpw
YV4rfmY7NXB1RzV4TW8kNDdDazZDKkB0ZjVtVmxxV0V8QXJgNWxRPDdCS1coCnprTkgmdlooMz1s
JX5SRz9IJFYyKyFMaCRKYzRVQlJZNG9oT2I/WENPUElPWm5lMVBGZDRuTSFyWS1SYUxeXnojMwp6
Z3FzJDZ3eXxOdTQkUUtjdStfd0shfjdmTykyZnl9KnI+Wn4rKjd3Zy1RMCVpKGZPQmNxZ3JjZFFr
OWMjeng3YUkKeklab1I8UH5oaWdZd0E0Vk5iWWhnVTdPT0pyelhLfV4lYip2ayV0XkQlfkJ+aFUr
dnc1T0tWVXhHXjBqRCY7NUt1Cnp5VDR0YD0oJDFpaWZPeGN5WG8yU29VUH5tS0ZtNFgjTmYoQlZg
cn1vb0heSXg2dHBlTUUyfFkhWTlscyR4SU4oVQp6USlUYkZqNmNwa3pRMzY8I0wkJjFPeEJBJjh5
fERYPzB2NmlBS3FQSSpAVj19LWZnTFdLV25eMFUpejJ8dkV5QEcKektZZHleVnQmRGJxJHYrdWIz
Z1dYVWdxZkZ0fmhTQGx3VFJ3R2FXT1kjJHoqejkhdkVhWWNfZH5eWE01NWJlRW0rCnp2N0VIM0hf
MFU7I1Y8S35wNkFsYkd3ZEhHN0VkZDQ5QXtMQ00tPHJKVH4jeWRueX5EUnpMUnxZPSlwUSgmdWdx
KAp6dGE0Tkl7U3I9akgyMjhoOTZuJCZeVjFeLW1CbWRKK0wyP2JfJE92T1FaRmtraC0mbDc/WGtT
fntRWlNuQktFeCsKejVVcTFFWVFlSUheb2lhallaZi0jak5MWT4md0FaODE4QEZ6WnxgdXF1JEM/
RjdMb2YqZXdNUTtGTWlzRjQ9TmA5CnphPDJybVNJXjAtV19qSyg+RyNHYVZZYUBtWDE8OTxCV2RD
XmtBVHxQZG5LPm0jbnpuNWBtRjdFZkF1dTI9ZnwmPwp6b2ZZYW8lfn5iUDh0WV59fDliVCEhTkI1
USU5SndpRjBJVSZOcSUqcFZ5VFM5UFMqOHgzJCtnP0RVOXZeYUNAZWcKenRKJjt2dyt3aUY8PFQx
S204T2BzPzY8YGtyUVkpVTIwbEo8QkQ3ZChqfmNoKDdGdlRWQU5IQjVEd0ZLJWRldm9OClB2cmR6
ejxRbnthYF5mKFRYUE1laQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21w
YXRpYmlsaXR5LnNxbGl0ZTMtc2htIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtc2htCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjkyNDAzM2QzMjlmOGM3ZGM4YzBhMjU0MDM5OTU2MWEwZTA3YTFmMmMKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDMyNzY4CnpjbWVJKk5tNWYkNnZwdzdDTWJ9UTVXMGxXc0VERTxCN051KWZq
SS1fWXs0b3ZMOXJTMzt8TH07R2RDZFQjYH4lPQp6dXVAbyVOXn0wVj5lUl9nVWhYXkpGWX13aT9G
V1Q1V1lyPCVQT1ZRYHR1NmghRWQ5OXBkUXw+P3k3JXE7PWdzeFMKeiFkPj9GUz5acUw1QnI0YGBr
JCYqY3s5RXJVZlorUDhHQmRrLUxhPSk/fWAxSF8yKlctQHcoND9lfCgqYHAwT0g7CnoqVikpfSko
NVNVZHUjUlRKKEJNd15NJT5NOU12PUE/Sz0xa1RhOCRhVDgmdjF0Y3E2U1J3YihtdE1MNn4md3BL
NAp6S1BQLTFlaFVAPzJxMXN9MHRnXzAwMElhZ2ZCKnNyQWI8YkAycTFzfTB0Z18wMDBJYWdmQipz
ckFiPGJAMnExc30KejB0Z18wMDBJYWdmQipzckFiPGJAMnExc30wdGdfMDAwSWFnZkIqc3J3NFQ2
Zj55Nng/aTk3NShoTG9NPCZ9LSpNCnpXUjxzKjh3ekAtcVh0ZEdXMW03YD9JfHtLdX03IWc+eCt3
fGVuUEpNaVRjUS0tSX58N19JM1FvZWZXQ3cyeThVWgp6Q2B+PnxJS3p0N1VJTHIjNntuN0EhcyY2
V183VyghU0RaU2c+Qy18VGNXM0tIMnlBSWpwTE5vUk40TUJCKUIxYmoKelheVn1geEhTWmxRKVgt
MiFiY1Q+ajI0a1Z6XlRCMUp+flpLWXlAKDQzaStnX14tP29uQW1CYDMoOVlrVihoSSRFCnptWWNX
O2cjVntfNEZkdkIxJUBeMkcmISptN3x8T0w1TzY5R3spdmwpZktQIzwtZkJrJktFc3BSeHhsI1F3
NXZucwpoM2RIdip1O2VvfnNTei1OUGJlVlpSJCRwfWEpS2tVMD5KfFg/ZzJQNEd+ZlVMCgpsaXRl
cmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJCYWNrd2Fy
ZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxZDY0MzRi
OGIyOWFlNzc1YWQ4YzJlNDhjNTM5MQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5odG1s
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dh
cmRDb21wYXRpYmlsaXR5UmVhZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4ZjJmZTBlMTg1NzFjMWExY2Jm
NTYzNDdmMGFjZGYwOWFiYzA2YjMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFk
Lmh0bWwKQEAgLTAsMCArMSwxMzEgQEAKKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24gbG9nKG1zZykK
KyAgICB7CisgICAgICAgIGFsZXJ0KG1zZyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2hvdWxk
QmVUeXBlKF9hLCBfdHlwZSkKKyAgICB7CisgICAgICAgIHZhciBleGNlcHRpb247CisgICAgICAg
IHZhciBfYXY7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAg
ICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgZXhjZXB0aW9uID0gZTsKKyAgICAgICAg
fQorCisgICAgICAgIHZhciBfdHlwZXYgPSBldmFsKF90eXBlKTsKKyAgICAgICAgaWYgKF9hdiBp
bnN0YW5jZW9mIF90eXBldikgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICAvLyBWYWx1ZXMgdGhhdCBhcmUgdXNlZCB0byBpbmZlciB0aGUgdHlwZSBvZiBhIGdpdmVuIHBy
aW1pdGl2ZSB0eXBlLgorICAgIHZhciB0ZXN0VmFsdWVzID0gWworICAgICAgICB1bmRlZmluZWQs
CisgICAgICAgIG51bGwsCisgICAgICAgIDUsIC8vIEludAorICAgICAgICAwLAorICAgICAgICAx
LAorICAgICAgICBmYWxzZSwKKyAgICAgICAgdHJ1ZSwKKyAgICAgICAgNS41LCAvLyBEb3VibGUK
KyAgICAgICAgIkhlbGxvLFdvcmxkISIsCisgICAgICAgICIiCisgICAgXTsKKworICAgIC8vIFZh
bHVlcyB0aGF0IGFyZSB1c2VkIHRvIGluZmVyIHRoZSB0eXBlIG9mIGEgZ2l2ZW4gQm9vbGVhbi9T
dHJpbmcgdHlwZS4KKyAgICB2YXIgdGVzdFR5cGVWYWx1ZXMgPSBbCisgICAgICAgIHsgaXRlbTog
bmV3IEJvb2xlYW4odHJ1ZSksIHR5cGU6ICJCb29sZWFuIiwgdmFsdWU6IHRydWUgfSwKKyAgICAg
ICAgeyBpdGVtOiBuZXcgQm9vbGVhbihmYWxzZSksIHR5cGU6ICJCb29sZWFuIiwgdmFsdWU6IGZh
bHNlIH0sCisgICAgICAgIHsgaXRlbTogbmV3IFN0cmluZygpLCB0eXBlOiAiU3RyaW5nIiwgdmFs
dWU6ICIiIH0KKyAgICBdOworCisgICAgdmFyIHRlc3RDcnlwdG9LZXlzQXJyYXkgPSBbCisgICAg
ICAgIFsiUlNBRVMtUEtDUzEtdjFfNSIsIHsgbmFtZTogIlJTQUVTLVBLQ1MxLXYxXzUiLCB0eXBl
OiAicHVibGljIiwgdXNhZ2U6ICJlbmNyeXB0IiB9XSwKKyAgICAgICAgWyJSU0FTU0EtUEtDUzEt
djFfNSIsIHsgbmFtZTogIlJTQVNTQS1QS0NTMS12MV81IiwgdHlwZTogInB1YmxpYyIsIHVzYWdl
OiAidmVyaWZ5IiB9XSwKKyAgICAgICAgWyJSU0EtUFNTIiwgeyBuYW1lOiAiUlNBLVBTUyIsIHR5
cGU6ICJwcml2YXRlIiwgdXNhZ2U6ICJzaWduIiB9XSwKKyAgICAgICAgWyJSU0EtT0FFUCIsIHsg
bmFtZTogIlJTQS1PQUVQIiwgdHlwZTogInByaXZhdGUiLCB1c2FnZTogImRlY3J5cHQiIH1dLAor
ICAgICAgICBbIkVDRFNBIiwgeyBuYW1lOiAiRUNEU0EiLCB0eXBlOiAicHJpdmF0ZSIsIHVzYWdl
OiAic2lnbiIgfV0sCisgICAgICAgIFsiRUNESCIsIHsgbmFtZTogIkVDREgiLCB0eXBlOiAicHVi
bGljIiwgdXNhZ2U6IG51bGwgfV0sCisgICAgICAgIFsiQUVTLUNUUiIsIHsgbmFtZTogIkFFUy1D
VFIiLCB0eXBlOiAic2VjcmV0IiwgdXNhZ2U6ICJ3cmFwS2V5IiB9XSwKKyAgICAgICAgWyJBRVMt
Q0JDIiwgeyBuYW1lOiAiQUVTLUNCQyIsIHR5cGU6ICJzZWNyZXQiLCB1c2FnZTogInVud3JhcEtl
eSIgfV0sCisgICAgICAgIFsiQUVTLUdDTSIsIHsgbmFtZTogIkFFUy1HQ00iLCB0eXBlOiAic2Vj
cmV0IiwgdXNhZ2U6ICJlbmNyeXB0IiB9XSwKKyAgICAgICAgWyJBRVMtQ0ZCLTgiLCB7IG5hbWU6
ICJBRVMtQ0ZCLTgiLCB0eXBlOiAic2VjcmV0IiwgdXNhZ2U6ICJkZWNyeXB0IiB9XSwKKyAgICAg
ICAgWyJBRVMtS1ciLCB7IG5hbWU6ICJBRVMtS1ciLCB0eXBlOiAic2VjcmV0IiwgdXNhZ2U6ICJ3
cmFwS2V5In1dLAorICAgICAgICBbIkhNQUMiLCB7IG5hbWU6ICJITUFDIiwgdHlwZTogInNlY3Jl
dCIsIHVzYWdlOiAic2lnbiIgfV0sCisgICAgICAgIFsiSEtERiIsIHsgbmFtZTogIkhLREYiLCB0
eXBlOiAic2VjcmV0IiwgdXNhZ2U6ICJkZXJpdmVCaXRzIiB9XSwKKyAgICAgICAgWyJQQktERjIi
LCB7IG5hbWU6ICJQQktERjIiLCB0eXBlOiAic2VjcmV0IiwgdXNhZ2U6ICJkZXJpdmVLZXkiIH1d
LAorICAgIF07CisgICAgdmFyIHRlc3RDcnlwdG9LZXlzTWFwID0gbmV3IE1hcCh0ZXN0Q3J5cHRv
S2V5c0FycmF5KTsKKworICAgIHZhciBvcGVuUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKCJiYWNr
d2FyZF9jb21wYXRpYmlsaXR5Iik7CisgICAgb3BlblJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9u
KGV2ZW50KSB7CisgICAgICAgIGxvZygiRXJyb3I6ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFt
ZSk7CisgICAgfQorICAgIG9wZW5SZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgcmVhZFR5cGUoKTsK
KyAgICB9CisKKyAgICB2YXIgcmVzdWx0ID0gdHJ1ZTsKKyAgICBmdW5jdGlvbiByZWFkVHlwZSgp
CisgICAgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigidHlwZSIp
Lm9iamVjdFN0b3JlKCJ0eXBlIik7CisgICAgICAgIG9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgY3Vyc29yID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAgICAg
ICByZXN1bHQgPSByZXN1bHQgJiYgc2hvdWxkQmVUeXBlKCJjdXJzb3IudmFsdWUiLCBjdXJzb3Iu
a2V5KTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIHJlYWRWYWx1ZSgpOworICAgICAgICB9OworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHJlYWRWYWx1ZSgpCisgICAgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUg
PSBkYi50cmFuc2FjdGlvbigidmFsdWUiKS5vYmplY3RTdG9yZSgidmFsdWUiKTsKKyAgICAgICAg
b2JqZWN0U3RvcmUub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgICAgICBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgaWYg
KGN1cnNvcikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoY3Vyc29yLnZh
bHVlID09PSB0ZXN0VmFsdWVzW2N1cnNvci5rZXkgLSAxXSk7CisgICAgICAgICAgICAgICAgY3Vy
c29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICByZWFk
VHlwZVZhbHVlKCk7CisgICAgICAgIH07CisgICAgfQorCisgICAgZnVuY3Rpb24gcmVhZFR5cGVW
YWx1ZSgpCisgICAgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigi
dHlwZVZhbHVlIikub2JqZWN0U3RvcmUoInR5cGVWYWx1ZSIpOworICAgICAgICBvYmplY3RTdG9y
ZS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAg
IGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBpZiAoY3Vyc29yKSB7
CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHNob3VsZEJlVHlwZSgiY3Vyc29y
LnZhbHVlIiwgdGVzdFR5cGVWYWx1ZXNbY3Vyc29yLmtleSAtIDFdLnR5cGUpICYmIChjdXJzb3Iu
dmFsdWUgPT0gdGVzdFR5cGVWYWx1ZXNbY3Vyc29yLmtleSAtIDFdLnZhbHVlKTsKKyAgICAgICAg
ICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgcmVhZENyeXB0b0tleSgpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJlYWRDcnlwdG9LZXkoKQorICAgIHsKKyAgICAgICAgdmFyIG9i
amVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oImNyeXB0b0tleSIpLm9iamVjdFN0b3JlKCJjcnlw
dG9LZXkiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0
OworICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgIHZhciByZWZlcmVu
Y2UgPSB0ZXN0Q3J5cHRvS2V5c01hcC5nZXQoY3Vyc29yLmtleSk7CisgICAgICAgICAgICAgICAg
cmVzdWx0ID0gcmVzdWx0ICYmIChyZWZlcmVuY2UubmFtZSA9IGN1cnNvci52YWx1ZS5hbGdvcml0
aG0ubmFtZSkgJiYgKHJlZmVyZW5jZS50eXBlID09IGN1cnNvci52YWx1ZS50eXBlKSAmJiAocmVm
ZXJlbmNlLnVzYWdlID09IGN1cnNvci52YWx1ZS51c2FnZXNbMF0pOworICAgICAgICAgICAgICAg
IGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICBpZiAocmVzdWx0KQorICAgICAgICAgICAgICAgICAgICBsb2coIlBhc3MiKTsKKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGxvZygiRmFpbCIpOworICAgICAgICAg
ICAgfQorICAgICAgICB9OworICAgIH0KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmls
aXR5V3JpdGUuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0lu
ZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWVlNjFh
ZTY0NjkwNWJhNWYyYzI4YmU5ZWU0ZjM2MmZkNTI3NGYxNgotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkJhY2t3YXJkQ29t
cGF0aWJpbGl0eVdyaXRlLmh0bWwKQEAgLTAsMCArMSwyNTUgQEAKKzxzY3JpcHQ+CisgICAgZnVu
Y3Rpb24gbG9nKG1zZykKKyAgICB7CisgICAgICAgIGFsZXJ0KG1zZyk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gc2hvdWxkQmVUeXBlKF9hLCBfdHlwZSkKKyAgICB7CisgICAgICAgIHZhciBleGNl
cHRpb247CisgICAgICAgIHZhciBfYXY7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBfYXYg
PSBldmFsKF9hKTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgZXhjZXB0aW9u
ID0gZTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBfdHlwZXYgPSBldmFsKF90eXBlKTsKKyAg
ICAgICAgaWYgKF9hdiBpbnN0YW5jZW9mIF90eXBldikgeworICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICAvLyBWYWx1ZXMgdGhhdCBhcmUgdXNlZCB0byBpbmZlciB0aGUgdHlw
ZSBvZiBhIGdpdmVuIHByaW1pdGl2ZSB0eXBlLgorICAgIHZhciB0ZXN0VmFsdWVzID0gWworICAg
ICAgICB1bmRlZmluZWQsCisgICAgICAgIG51bGwsCisgICAgICAgIDUsIC8vIEludAorICAgICAg
ICAwLAorICAgICAgICAxLAorICAgICAgICBmYWxzZSwKKyAgICAgICAgdHJ1ZSwKKyAgICAgICAg
NS41LCAvLyBEb3VibGUKKyAgICAgICAgIkhlbGxvLFdvcmxkISIsCisgICAgICAgICIiCisgICAg
XTsKKworICAgIC8vIFZhbHVlcyB0aGF0IGFyZSB1c2VkIHRvIGluZmVyIHRoZSB0eXBlIG9mIGEg
Z2l2ZW4gQm9vbGVhbi9TdHJpbmcgdHlwZS4KKyAgICB2YXIgdGVzdFR5cGVWYWx1ZXMgPSBbCisg
ICAgICAgIHsgaXRlbTogbmV3IEJvb2xlYW4odHJ1ZSksIHR5cGU6ICJCb29sZWFuIiwgdmFsdWU6
IHRydWUgfSwKKyAgICAgICAgeyBpdGVtOiBuZXcgQm9vbGVhbihmYWxzZSksIHR5cGU6ICJCb29s
ZWFuIiwgdmFsdWU6IGZhbHNlIH0sCisgICAgICAgIHsgaXRlbTogbmV3IFN0cmluZygpLCB0eXBl
OiAiU3RyaW5nIiwgdmFsdWU6ICIiIH0KKyAgICBdOworCisgICAgdmFyIHRlc3RDcnlwdG9LZXlz
QXJyYXkgPSBbCisgICAgICAgIFsiUlNBRVMtUEtDUzEtdjFfNSIsIHsgbmFtZTogIlJTQUVTLVBL
Q1MxLXYxXzUiLCB0eXBlOiAicHVibGljIiwgdXNhZ2U6ICJlbmNyeXB0IiB9XSwKKyAgICAgICAg
WyJSU0FTU0EtUEtDUzEtdjFfNSIsIHsgbmFtZTogIlJTQVNTQS1QS0NTMS12MV81IiwgdHlwZTog
InB1YmxpYyIsIHVzYWdlOiAidmVyaWZ5IiB9XSwKKyAgICAgICAgWyJSU0EtUFNTIiwgeyBuYW1l
OiAiUlNBLVBTUyIsIHR5cGU6ICJwcml2YXRlIiwgdXNhZ2U6ICJzaWduIiB9XSwKKyAgICAgICAg
WyJSU0EtT0FFUCIsIHsgbmFtZTogIlJTQS1PQUVQIiwgdHlwZTogInByaXZhdGUiLCB1c2FnZTog
ImRlY3J5cHQiIH1dLAorICAgICAgICBbIkVDRFNBIiwgeyBuYW1lOiAiRUNEU0EiLCB0eXBlOiAi
cHJpdmF0ZSIsIHVzYWdlOiAic2lnbiIgfV0sCisgICAgICAgIFsiRUNESCIsIHsgbmFtZTogIkVD
REgiLCB0eXBlOiAicHVibGljIiwgdXNhZ2U6IG51bGwgfV0sCisgICAgICAgIFsiQUVTLUNUUiIs
IHsgbmFtZTogIkFFUy1DVFIiLCB0eXBlOiAic2VjcmV0IiwgdXNhZ2U6ICJ3cmFwS2V5IiB9XSwK
KyAgICAgICAgWyJBRVMtQ0JDIiwgeyBuYW1lOiAiQUVTLUNCQyIsIHR5cGU6ICJzZWNyZXQiLCB1
c2FnZTogInVud3JhcEtleSIgfV0sCisgICAgICAgIFsiQUVTLUdDTSIsIHsgbmFtZTogIkFFUy1H
Q00iLCB0eXBlOiAic2VjcmV0IiwgdXNhZ2U6ICJlbmNyeXB0IiB9XSwKKyAgICAgICAgWyJBRVMt
Q0ZCLTgiLCB7IG5hbWU6ICJBRVMtQ0ZCLTgiLCB0eXBlOiAic2VjcmV0IiwgdXNhZ2U6ICJkZWNy
eXB0IiB9XSwKKyAgICAgICAgWyJBRVMtS1ciLCB7IG5hbWU6ICJBRVMtS1ciLCB0eXBlOiAic2Vj
cmV0IiwgdXNhZ2U6ICJ3cmFwS2V5In1dLAorICAgICAgICBbIkhNQUMiLCB7IG5hbWU6ICJITUFD
IiwgdHlwZTogInNlY3JldCIsIHVzYWdlOiAic2lnbiIgfV0sCisgICAgICAgIFsiSEtERiIsIHsg
bmFtZTogIkhLREYiLCB0eXBlOiAic2VjcmV0IiwgdXNhZ2U6ICJkZXJpdmVCaXRzIiB9XSwKKyAg
ICAgICAgWyJQQktERjIiLCB7IG5hbWU6ICJQQktERjIiLCB0eXBlOiAic2VjcmV0IiwgdXNhZ2U6
ICJkZXJpdmVLZXkiIH1dLAorICAgIF07CisgICAgdmFyIHRlc3RDcnlwdG9LZXlzTWFwID0gbmV3
IE1hcCh0ZXN0Q3J5cHRvS2V5c0FycmF5KTsKKworICAgIGluZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZSgiYmFja3dhcmRfY29tcGF0aWJpbGl0eSIpOworICAgIHZhciBvcGVuUmVxdWVzdCA9IGluZGV4
ZWREQi5vcGVuKCJiYWNrd2FyZF9jb21wYXRpYmlsaXR5Iik7CisgICAgb3BlblJlcXVlc3Qub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgLy8gVGhpcyBvYmplY3RT
dG9yZSBzdG9yZXMgZWxlbWVudHMgdGhhdCB3ZSBvbmx5IG5lZWQgdG8gY2hlY2sgaXRzIHR5cGUg
dG8gZGV0ZXJtaW5lIGl0cyBzZXJpYWxpemF0aW9uIHRhZy4KKyAgICAgICAgdmFyIG9iamVjdFN0
b3JlID0gZXZlbnQudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgidHlwZSIpOworICAg
ICAgICAvLyBUaGlzIG9iamVjdFN0b3JlIHN0b3JlcyBlbGVtZW50cyB0aGF0IHdlIG5lZWQgdG8g
Y2hlY2sgaXRzIHZhbHVlIHRvIGRldGVybWluZSBpdHMgc2VyaWFsaXphdGlvbiB0YWcuCisgICAg
ICAgIHZhciBvYmplY3RTdG9yZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3Rv
cmUoInZhbHVlIiwgeyBhdXRvSW5jcmVtZW50IDogdHJ1ZSB9KTsKKyAgICAgICAgLy8gVGhpcyBv
YmplY3RTdG9yZSBzdG9yZXMgZWxlbWVudHMgdGhhdCB3ZSBuZWVkIHRvIGNoZWNrIGJvdGggaXRz
IHR5cGUgYW5kIGl0cyB2YWx1ZSB0byBkZXRlcm1pbmUgaXRzIHNlcmlhbGl6YXRpb24gdGFnLgor
ICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBldmVudC50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVj
dFN0b3JlKCJ0eXBlVmFsdWUiLCB7IGF1dG9JbmNyZW1lbnQgOiB0cnVlIH0pOworICAgICAgICAv
LyBUaGlzIE9iamVjdFN0b3JlIHN0b3JlcyBjcnlwdG8ga2V5cyB3aGljaCByZXF1aXJlIGZldyBt
b3JlIHN0ZXBzIHRvIGRldGVybWluZSBpdHMgc2VyaWFsaXphdGlvbiB0YWcuCisgICAgICAgIHZh
ciBvYmplY3RTdG9yZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoImNy
eXB0b0tleSIsIHsga2V5UGF0aDogImFsZ29yaXRobS5uYW1lIiB9KTsKKyAgICB9CisgICAgb3Bl
blJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGxvZygiRXJyb3I6
ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7CisgICAgfQorICAgIG9wZW5SZXF1ZXN0Lm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKKyAgICAgICAgc3RvcmVUeXBlKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RvcmVU
eXBlKCkKKyAgICB7CisgICAgICAgIHZhciB0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCJ0
eXBlIiwgInJlYWR3cml0ZSIpOworICAgICAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rp
b24oZXZlbnQpIHsKKyAgICAgICAgICAgIGxvZygiRXJyb3I6ICIgKyBldmVudC50YXJnZXQuZXJy
b3IubmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1
bmN0aW9uKGV2ZW50KSB7IHN0b3JlVmFsdWUoKTsgfQorCisgICAgICAgIHZhciBvYmplY3RTdG9y
ZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCJ0eXBlIik7CisgICAgICAgIC8vIFRoZSBrZXkg
b2YgYW4gaXRlbSBpcyB0aGUgdHlwZSBvZiBpdHMgdmFsdWUsIGhlbmNlIHdlIGNvdWxkIGRldGVy
bWluZSB0eXBlIG1pc21hdGNoLCBpLmUuIHNlcmlhbGl6YXRpb24gdGFnIHJlb3JkZXIKKyAgICAg
ICAgLy8gc2ltcGx5IGJ5IHVzaW5nIGFuIGl0ZW0ncyBrZXkgYW5kIHZhbHVlLgorICAgICAgICBv
YmplY3RTdG9yZS5hZGQoWzEsIDJdLCAiQXJyYXkiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRk
KHsgcHJvcGVydHk6IG51bGwgfSwgIk9iamVjdCIpOworICAgICAgICBvYmplY3RTdG9yZS5hZGQo
bmV3IERhdGUoKSwgIkRhdGUiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBGaWxlKFsi
Zm9vIl0sICJmb28udHh0IiksICJGaWxlIik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcg
SW1hZ2VEYXRhKDEwMCwgMTAwKSwgIkltYWdlRGF0YSIpOworICAgICAgICBvYmplY3RTdG9yZS5h
ZGQobmV3IEJsb2IoWyJmb28iXSksICJCbG9iIik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChu
ZXcgUmVnRXhwKCcnKSwgIlJlZ0V4cCIpOworICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IEFy
cmF5QnVmZmVyKDEpLCAiQXJyYXlCdWZmZXIiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5l
dyBTdHJpbmcoJycpLCAiU3RyaW5nIik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgTnVt
YmVyKDEyKSwgIk51bWJlciIpOworICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IFNldChbMSwg
Ml0pLCAiU2V0Iik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgTWFwKCksICJNYXAiKTsK
KyAgICAgICAgLy8gVHlwZWQgYXJyYXlzCisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgSW50
OEFycmF5KCksICJJbnQ4QXJyYXkiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBVaW50
OEFycmF5KCksICJVaW50OEFycmF5Iik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgVWlu
dDhDbGFtcGVkQXJyYXkoKSwgIlVpbnQ4Q2xhbXBlZEFycmF5Iik7CisgICAgICAgIG9iamVjdFN0
b3JlLmFkZChuZXcgSW50MTZBcnJheSgpLCAiSW50MTZBcnJheSIpOworICAgICAgICBvYmplY3RT
dG9yZS5hZGQobmV3IFVpbnQxNkFycmF5KCksICJVaW50MTZBcnJheSIpOworICAgICAgICBvYmpl
Y3RTdG9yZS5hZGQobmV3IEludDMyQXJyYXkoKSwgIkludDMyQXJyYXkiKTsKKyAgICAgICAgb2Jq
ZWN0U3RvcmUuYWRkKG5ldyBVaW50MzJBcnJheSgpLCAiVWludDMyQXJyYXkiKTsKKyAgICAgICAg
b2JqZWN0U3RvcmUuYWRkKG5ldyBGbG9hdDMyQXJyYXkoKSwgIkZsb2F0MzJBcnJheSIpOworICAg
ICAgICBvYmplY3RTdG9yZS5hZGQobmV3IEZsb2F0NjRBcnJheSgpLCAiRmxvYXQ2NEFycmF5Iik7
CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RvcmVWYWx1ZSgpCisgICAgeworICAgICAgICB2YXIg
dHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbigidmFsdWUiLCAicmVhZHdyaXRlIik7CisgICAg
ICAgIHRyYW5zYWN0aW9uLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAg
bG9nKCJFcnJvcjogIiArIGV2ZW50LnRhcmdldC5lcnJvci5uYW1lKTsKKyAgICAgICAgfQorICAg
ICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZlbnQpIHsgc3RvcmVUeXBl
VmFsdWUoKTsgfQorCisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVj
dFN0b3JlKCJ2YWx1ZSIpOworICAgICAgICAvLyBIZXJlIHdlIHN0b3JlIHZhbHVlcyBpbiB0aGUg
dGVzdCBtYXRyaXggaW4gb3JkZXIgYW5kIHJlYWQgdGhlbSBpbiBvcmRlciB0byBzZWUgaWYgYW55
IG1pc21hdGNoIGhhcHBlbnMuCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdFZhbHVl
cy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9iamVjdFN0b3JlLmFkZCh0ZXN0VmFsdWVzW2ld
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdG9yZVR5cGVWYWx1ZSgpCisgICAgeworICAgICAg
ICB2YXIgdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbigidHlwZVZhbHVlIiwgInJlYWR3cml0
ZSIpOworICAgICAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAg
ICAgICAgICAgIGxvZygiRXJyb3I6ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7CisgICAg
ICAgIH0KKyAgICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7
IHN0b3JlQ3J5cHRvS2V5KCk7IH0KKworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSB0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgidHlwZVZhbHVlIik7CisgICAgICAgIC8vIEhlcmUgd2Ugc3RvcmUg
aXRlbXMgaW4gdGhlIHRlc3QgbWF0cml4IGluIG9yZGVyIGFuZCByZWFkIHRoZW0gaW4gb3JkZXIg
dG8gc2VlIGlmIGFueSBtaXNtYXRjaGVzIGl0cyB0eXBlIGFuZCB2YWx1ZS4KKyAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB0ZXN0VHlwZVZhbHVlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAg
IG9iamVjdFN0b3JlLmFkZCh0ZXN0VHlwZVZhbHVlc1tpXS5pdGVtKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBzdG9yZUNyeXB0b0tleSgpCisgICAgeworICAgICAgICAvLyBIZXJlIHdlIGdhdGhl
ciBhbGwgdGhlIENyeXB0b0tleSBvYmplY3RzCisgICAgICAgIHZhciBwcm9taXNlcyA9IFsgXTsK
KyAgICAgICAgcHJvbWlzZXMucHVzaChjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHsgbmFtZTog
IlJTQUVTLVBLQ1MxLXYxXzUiLCBtb2R1bHVzTGVuZ3RoOiAyMDQ4LCBwdWJsaWNFeHBvbmVudDog
bmV3IFVpbnQ4QXJyYXkoWzB4MDEsIDB4MDAsIDB4MDFdKX0sIHRydWUsIFsiZGVjcnlwdCIsICJl
bmNyeXB0Il0pKTsKKyAgICAgICAgcHJvbWlzZXMucHVzaChjcnlwdG8uc3VidGxlLmdlbmVyYXRl
S2V5KHsgbmFtZTogIlJTQVNTQS1QS0NTMS12MV81IiwgbW9kdWx1c0xlbmd0aDogMjA0OCwgcHVi
bGljRXhwb25lbnQ6IG5ldyBVaW50OEFycmF5KFsweDAxLCAweDAwLCAweDAxXSksIGhhc2g6ICJz
aGEtMSIgfSwgdHJ1ZSwgWyJzaWduIiwgInZlcmlmeSJdKSk7CisgICAgICAgIHByb21pc2VzLnB1
c2goY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7IG5hbWU6ICJSU0EtUFNTIiwgbW9kdWx1c0xl
bmd0aDogMjA0OCwgcHVibGljRXhwb25lbnQ6IG5ldyBVaW50OEFycmF5KFsweDAxLCAweDAwLCAw
eDAxXSksIGhhc2g6ICJzaGEtMSIgfSwgdHJ1ZSwgWyJzaWduIiwgInZlcmlmeSJdKSk7CisgICAg
ICAgIHByb21pc2VzLnB1c2goY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7IG5hbWU6ICJSU0Et
T0FFUCIsIG1vZHVsdXNMZW5ndGg6IDIwNDgsIHB1YmxpY0V4cG9uZW50OiBuZXcgVWludDhBcnJh
eShbMHgwMSwgMHgwMCwgMHgwMV0pLCBoYXNoOiAic2hhLTEiIH0sIHRydWUsIFsiZGVjcnlwdCIs
ICJlbmNyeXB0Il0pKTsKKyAgICAgICAgcHJvbWlzZXMucHVzaChjcnlwdG8uc3VidGxlLmdlbmVy
YXRlS2V5KHsgbmFtZTogIkVDRFNBIiwgbmFtZWRDdXJ2ZTogIlAtMjU2IiB9LCB0cnVlLCBbInNp
Z24iLCAidmVyaWZ5Il0pKTsKKyAgICAgICAgcHJvbWlzZXMucHVzaChjcnlwdG8uc3VidGxlLmdl
bmVyYXRlS2V5KHsgbmFtZTogIkVDREgiLCBuYW1lZEN1cnZlOiAiUC0yNTYiIH0sIHRydWUsIFsi
ZGVyaXZlQml0cyJdKSk7CisgICAgICAgIHByb21pc2VzLnB1c2goY3J5cHRvLnN1YnRsZS5nZW5l
cmF0ZUtleSh7IG5hbWU6ICJhZXMtY3RyIiwgbGVuZ3RoOiAxMjggfSwgdHJ1ZSwgWyJ3cmFwS2V5
Il0pKTsKKyAgICAgICAgcHJvbWlzZXMucHVzaChjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHsg
bmFtZTogImFlcy1jYmMiLCBsZW5ndGg6IDEyOCB9LCB0cnVlLCBbInVud3JhcEtleSJdKSk7Cisg
ICAgICAgIHByb21pc2VzLnB1c2goY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7IG5hbWU6ICJh
ZXMtZ2NtIiwgbGVuZ3RoOiAxMjggfSwgdHJ1ZSwgWyJlbmNyeXB0Il0pKTsKKyAgICAgICAgcHJv
bWlzZXMucHVzaChjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHsgbmFtZTogImFlcy1jZmItOCIs
IGxlbmd0aDogMTI4IH0sIHRydWUsIFsiZGVjcnlwdCJdKSk7CisgICAgICAgIHByb21pc2VzLnB1
c2goY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7IG5hbWU6ICJhZXMta3ciLCBsZW5ndGg6IDEy
OCB9LCB0cnVlLCBbIndyYXBLZXkiXSkpOworICAgICAgICBwcm9taXNlcy5wdXNoKGNyeXB0by5z
dWJ0bGUuZ2VuZXJhdGVLZXkoeyBuYW1lOiAiaG1hYyIsIGhhc2g6ICJzaGEtMSIgfSwgdHJ1ZSwg
WyJzaWduIl0pKTsKKyAgICAgICAgcHJvbWlzZXMucHVzaChjcnlwdG8uc3VidGxlLmltcG9ydEtl
eSgicmF3IiwgbmV3IFVpbnQ4QXJyYXkoMTYpLCB7IG5hbWU6ICJIS0RGIiB9LCBmYWxzZSwgWyJk
ZXJpdmVCaXRzIl0pKTsKKyAgICAgICAgcHJvbWlzZXMucHVzaChjcnlwdG8uc3VidGxlLmltcG9y
dEtleSgicmF3IiwgbmV3IFVpbnQ4QXJyYXkoMTYpLCB7IG5hbWU6ICJQQktERjIiIH0sIGZhbHNl
LCBbImRlcml2ZUtleSJdKSk7CisKKyAgICAgICAgUHJvbWlzZS5hbGwocHJvbWlzZXMpLnRoZW4o
a2V5cyA9PiB7CisgICAgICAgICAgICB2YXIgdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbigi
Y3J5cHRvS2V5IiwgInJlYWR3cml0ZSIpOworICAgICAgICAgICAgdHJhbnNhY3Rpb24ub25lcnJv
ciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgbG9nKCJFcnJvcjogIiArIGV2
ZW50LnRhcmdldC5lcnJvci5uYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyYW5z
YWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbihldmVudCkgeyByZWFkVHlwZSgpOyB9CisKKyAg
ICAgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCJjcnlw
dG9LZXkiKTsKKyAgICAgICAgICAgIC8vIEhlcmUgd2Ugc3RvcmUgYWxsIHRoZSBuZWNlc3Nhcnkg
Q3J5cHRvS2V5cy4gTm90ZXMgdGhhdCBzb21lIGZ1bmN0aW9ucyB3aWxsIHJldHVybiBDcnlwdG9L
ZXlQYWlyLgorICAgICAgICAgICAgLy8gSW4gdGhvc2UgY2FzZXMsIHdlIG5lZWQgdG8gZGVjaWRl
IHdoZXRoZXIgd2UgbmVlZCB0aGUgcHVibGljIG9yIHRoZSBwcml2YXRlIGtleS4KKyAgICAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAg
ICAgIGlmIChrZXlzW2ldIGluc3RhbmNlb2YgQ3J5cHRvS2V5KQorICAgICAgICAgICAgICAgICAg
ICBvYmplY3RTdG9yZS5hZGQoa2V5c1tpXSk7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChrZXlzW2ldLnB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSA9PSAi
UlNBRVMtUEtDUzEtdjFfNSIpCisgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RTdG9yZS5h
ZGQoa2V5c1tpXS5wdWJsaWNLZXkpOworICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChrZXlz
W2ldLnB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSA9PSAiUlNBU1NBLVBLQ1MxLXYxXzUiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgb2JqZWN0U3RvcmUuYWRkKGtleXNbaV0ucHVibGljS2V5KTsK
KyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoa2V5c1tpXS5wdWJsaWNLZXkuYWxnb3JpdGht
Lm5hbWUgPT0gIlJTQS1QU1MiKQorICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0U3RvcmUu
YWRkKGtleXNbaV0ucHJpdmF0ZUtleSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGtl
eXNbaV0ucHVibGljS2V5LmFsZ29yaXRobS5uYW1lID09ICJSU0EtT0FFUCIpCisgICAgICAgICAg
ICAgICAgICAgICAgICBvYmplY3RTdG9yZS5hZGQoa2V5c1tpXS5wcml2YXRlS2V5KTsKKyAgICAg
ICAgICAgICAgICAgICAgZWxzZSBpZiAoa2V5c1tpXS5wdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUg
PT0gIkVDRFNBIikKKyAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdFN0b3JlLmFkZChrZXlz
W2ldLnByaXZhdGVLZXkpOworICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChrZXlzW2ldLnB1
YmxpY0tleS5hbGdvcml0aG0ubmFtZSA9PSAiRUNESCIpCisgICAgICAgICAgICAgICAgICAgICAg
ICBvYmplY3RTdG9yZS5hZGQoa2V5c1tpXS5wdWJsaWNLZXkpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgdmFyIHJlc3VsdCA9IHRy
dWU7CisgICAgZnVuY3Rpb24gcmVhZFR5cGUoKQorICAgIHsKKyAgICAgICAgdmFyIG9iamVjdFN0
b3JlID0gZGIudHJhbnNhY3Rpb24oInR5cGUiKS5vYmplY3RTdG9yZSgidHlwZSIpOworICAgICAg
ICBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICAgICAgICAgIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBp
ZiAoY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHNob3VsZEJl
VHlwZSgiY3Vyc29yLnZhbHVlIiwgY3Vyc29yLmtleSk7CisgICAgICAgICAgICAgICAgY3Vyc29y
LmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICByZWFkVmFs
dWUoKTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZWFkVmFsdWUoKQorICAg
IHsKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oInZhbHVlIikub2Jq
ZWN0U3RvcmUoInZhbHVlIik7CisgICAgICAgIG9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgY3Vyc29yID0gZXZlbnQudGFy
Z2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKGN1cnNvci52YWx1ZSA9PT0gdGVzdFZhbHVlc1tjdXJzb3Iua2V5
IC0gMV0pOworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICAgICAgcmVhZFR5cGVWYWx1ZSgpOworICAgICAgICB9OworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJlYWRUeXBlVmFsdWUoKQorICAgIHsKKyAgICAgICAgdmFyIG9i
amVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oInR5cGVWYWx1ZSIpLm9iamVjdFN0b3JlKCJ0eXBl
VmFsdWUiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0
OworICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiBzaG91bGRCZVR5cGUoImN1cnNvci52YWx1ZSIsIHRlc3RUeXBlVmFsdWVzW2N1cnNv
ci5rZXkgLSAxXS50eXBlKSAmJiAoY3Vyc29yLnZhbHVlID09IHRlc3RUeXBlVmFsdWVzW2N1cnNv
ci5rZXkgLSAxXS52YWx1ZSk7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7Cisg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlYWRDcnlwdG9LZXkoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZWFkQ3J5cHRv
S2V5KCkKKyAgICB7CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCJj
cnlwdG9LZXkiKS5vYmplY3RTdG9yZSgiY3J5cHRvS2V5Iik7CisgICAgICAgIG9iamVjdFN0b3Jl
Lm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAg
Y3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsK
KyAgICAgICAgICAgICAgICB2YXIgcmVmZXJlbmNlID0gdGVzdENyeXB0b0tleXNNYXAuZ2V0KGN1
cnNvci5rZXkpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAocmVmZXJlbmNl
Lm5hbWUgPSBjdXJzb3IudmFsdWUuYWxnb3JpdGhtLm5hbWUpICYmIChyZWZlcmVuY2UudHlwZSA9
PSBjdXJzb3IudmFsdWUudHlwZSkgJiYgKHJlZmVyZW5jZS51c2FnZSA9PSBjdXJzb3IudmFsdWUu
dXNhZ2VzWzBdKTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAg
ICAgICAgbG9nKCJQYXNzIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICBsb2coIkZhaWwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9Cis8L3Nj
cmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315113</attachid>
            <date>2017-07-11 08:49:34 -0700</date>
            <delta_ts>2017-07-12 15:50:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173998-20170711084938.patch</filename>
            <type>text/plain</type>
            <size>48358</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjBlZmU3N2ExMWFhZGQx
NmRhNzk3ZjMzMGE4NjFmNjJjMTQ2NWNmOC4uMDgzNWEyYWNjNzVkMWY1ZTUxMTBhMWI0ZDVkMmI4
NWZlYzM3NzAyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA2LTMwICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW5kZXhlZERCOiBlbnN1
cmUgaXRzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mzk5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZXMgb2YgYmVoYXZpb3IuCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICBBZGQgYSBj
b21tZW50LgorCiAyMDE3LTA3LTEwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4K
IAogICAgICAgICBDbGVhbnVwIGxpZmV0aW1lIGlzc3VlcyBvZiBVbmlxdWVJREJEYXRhYmFzZSBh
bmQgSURCQmFja2luZ1N0b3JlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXggNWQ4Y2U3OGFmNWZhNDhkZjJmYzc4YmNi
YzNiODc1NGZlYjEzY2UwZS4uMjg2Y2NmYzdkOGFmMjdjM2E1NzAyNmYxZDVlNTRiMDdjYmUyNDNk
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUuY3BwCkBAIC0xMTcsNiArMTE3LDcgQEAgZW51bSBXYWxrZXJTdGF0ZSB7IFN0YXRl
VW5rbm93biwgQXJyYXlTdGFydFN0YXRlLCBBcnJheVN0YXJ0VmlzaXRNZW1iZXIsIEFycmF5RW4K
ICAgICBTZXREYXRhU3RhcnRWaXNpdEVudHJ5LCBTZXREYXRhRW5kVmlzaXRLZXkgfTsKIAogLy8g
VGhlc2UgY2FuJ3QgYmUgcmVvcmRlcmVkLCBhbmQgYW55IG5ldyB0eXBlcyBtdXN0IGJlIGFkZGVk
IHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QKKy8vIFdobyBlZGl0cyB0aGlzIGxpc3QsIHBsZWFzZSB0
ZWFjaCBJbmRleGVkREIuQmFja3dhcmRDb21wYXRpYmlsaXR5IEFQSSB0ZXN0IHRvIGxlYXJuIHRo
ZSBuZXcgc3R1ZmYuCiBlbnVtIFNlcmlhbGl6YXRpb25UYWcgewogICAgIEFycmF5VGFnID0gMSwK
ICAgICBPYmplY3RUYWcgPSAyLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDU3ODM5ZDk1ODVlOWE3YTEyNmNlMWFkNGFlOTYyMDg2YWIxODI0ZGEu
LmM5M2YzYzg5NWQ5ZDI2MGUzYmFkNjU0MDFlYTEyYzc5MzllNjY1ZWMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAx
Ny0wNi0zMCAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIElu
ZGV4ZWREQjogZW5zdXJlIGl0cyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzM5OTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIHRlc3QgaXMgY29tcG9zZWQgdG8g
ZW5zdXJlIEluZGV4ZWREQidzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIFRoZSB3YXkgaXQgd29y
a3MgaXMgdG8KKyAgICAgICAgcmVhZCBmcm9tIGEgcHJlLWJha2VkIGRhdGFiYXNlIGFuZCBzZWUg
aWYgYWxsIHRoZSB2YWx1ZXMgYXJlIG1hdGNoZWQgd2l0aCB0aGUgZXhwZWN0YXRpb25zLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhl
ZERCQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OnJ1bkphdmFTY3JpcHRBbGVydCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpj
b3B5V2ViQ3J5cHRvTWFzdGVyS2V5KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICBIZXJlIGlzIHRoZSBBUEkgdGVzdCB0aGF0IG1vdmVzIHRoZSBwcmUtYmFrZWQgZGF0
YWJhc2UgdG8gdGhlIGxvY2F0aW9uIHdoZXJlIFRlc3RXZWJLaXRBUEkgY2FuIHJlYWQgZnJvbSwK
KyAgICAgICAgYW5kIGRlY3J5cHRzIENyeXB0b0tleSBzZXJpYWxpemVkIGJpbmFyaWVzIHdpdGgg
YSBoYXJkIGNvZGVkIG1hc3RlciBrZXkgd2hpY2ggd2FzIHVzZWQgdG8gZW5jcnlwdCB0aGUgZGF0
YS4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJC
YWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMzogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNx
bGl0ZTMtc2htOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWw6IEFkZGVkLgor
ICAgICAgICBUaGVzZSBhcmUgdGhlIHByZS1iYWtlZCBkYXRhYmFzZXMuCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmls
aXR5UmVhZC5odG1sOiBBZGRlZC4KKyAgICAgICAgVGhpcyBpcyB0aGUgYWN0dWFsIHRlc3QgdGhh
dCBkbyBhbGwgdGhlIHJlYWRzIGFuZCBjb21wYXJpc29ucy4KKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgVGhpcyBpcyB0aGUgcGFnZSB0aGF0IGJha2VzIHRoZSBk
YXRhYmFzZS4gSXQgbmV2ZXIgcnVucyBhdXRvbWF0aWNhbGx5LiBJdCBpcyBmb3Igc29tZW9uZSB3
aG8gbmVlZHMgdG8gdGVhY2gKKyAgICAgICAgSW5kZXhlZERCIG5ldyBzdHVmZnMuIFRoZW4gaXQg
Y2FuIGJlIHVzZWQgdG8gYmFrZSB0aGUgZGF0YWJhc2UgYWdhaW4uCisKIDIwMTctMDctMTAgIFph
biBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIEZpeCBs
YXlvdXQgdGVzdCBiYXNlbGluZSBhbmQgVGVzdEV4cGVjdGF0aW9ucyBoaWVyYXJjaHkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggZjY4NTA2MGNlYmY1OWM0NjhmMDkyYzliYTM4NWRmMzk2Yjdm
YjY5MS4uNWY3NTIyZTI3ZjIxY2ZjNjM4NjgzYzRiOThlOWE2ZTI0MjFmOTQ2YyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE5OSw2ICsxOTksMTIgQEAKIAkJNTcxNEVDQjkxQ0E4QjVCMDAw
MDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxNEVDQjgxQ0E4QjU4ODAw
MDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMLmh0bWwgKi87IH07CiAJCTU3MTRF
Q0JCMUNBOEJGRTQwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTcxNEVDQkExQ0E4QkZEMTAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJh
bWUuaHRtbCAqLzsgfTsKIAkJNTcxNEVDQkQxQ0E4QzIyQTAwMDUxQUM4IC8qIERvd25sb2FkUmVx
dWVzdE9yaWdpbmFsVVJMMi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3MTRFQ0JDMUNBOEMyMTgwMDA1MUFDOCAvKiBEb3dubG9hZFJl
cXVlc3RPcmlnaW5hbFVSTDIuaHRtbCAqLzsgfTsKKwkJNTc1OTlFMjExRjA3MTkxOTAwQTNGQjhD
IC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTk5RTIwMUYwNzE5MTcwMEEzRkI4QyAvKiBJ
bmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkubW0gKi87IH07CisJCTU3NTk5RTI3MUYwNzFB
QTAwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUy
NDFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0
ZTMgKi87IH07CisJCTU3NTk5RTI4MUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2Fy
ZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0gaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1OTlFMjYxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4
ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSAqLzsgfTsKKwkJNTc1OTlFMjkx
RjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUz
LXdhbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NzU5OUUyMjFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmls
aXR5LnNxbGl0ZTMtd2FsICovOyB9OworCQk1NzU5OUUyQTFGMDcxQUEwMDBBM0ZCOEMgLyogSW5k
ZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTk5RTI1MUYwNzE5MkMwMEEzRkI4
QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0bWwgKi87IH07CisJCTU3
NTk5RTJCMUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlX
cml0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3NTk5RTIzMUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBh
dGliaWxpdHlXcml0ZS5odG1sICovOyB9OwogCQk1NzY5QzUwQjFEOUIwMDAyMDAwODQ3RkIgLyog
U2VyaWFsaXplZENyeXB0b0tleVdyYXAubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1NzY5QzUwQTFEOUIwMDAxMDAwODQ3RkIgLyogU2VyaWFsaXplZENy
eXB0b0tleVdyYXAubW0gKi87IH07CiAJCTU3OTAxRkIxMUNBRjE0MkQwMEVENjRGOSAvKiBMb2Fk
SW52YWxpZFVSTFJlcXVlc3QuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NzkwMUZCMDFDQUYxNDFDMDBFRDY0RjkgLyogTG9hZEludmFs
aWRVUkxSZXF1ZXN0Lmh0bWwgKi87IH07CiAJCTU3OTdGRTMxMUVCMTVBNjgwMEIyRjRBMCAvKiBO
YXZpZ2F0aW9uQ2xpZW50RGVmYXVsdENyeXB0by5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Nzk3RkUyRjFFQjE1QTVGMDBCMkY0QTAgLyogTmF2aWdh
dGlvbkNsaWVudERlZmF1bHRDcnlwdG8uY3BwICovOyB9OwpAQCAtNzQzLDYgKzc0OSwxMSBAQAog
CQkJCUY0QTMyRUM0MUYwNUYzODUwMDQ3QzU0NCAvKiBkcmFnc3RhcnQtY2hhbmdlLXNlbGVjdGlv
bi1vZmZzY3JlZW4uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNEEzMkVDQjFGMDY0
MzM3MDA0N0M1NDQgLyogY29udGVudGVkaXRhYmxlLWluLWlmcmFtZS5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCUY0NjlGQjI0MUYwMTgwNEIwMDQwMTUzOSAvKiBjb250ZW50ZWRpdGFi
bGUtYW5kLXRhcmdldC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTU3NTk5RTI3MUYw
NzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyBp
biBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk1NzU5OUUyODFGMDcxQUEwMDBBM0ZCOEMgLyogSW5k
ZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtc2htIGluIENvcHkgUmVzb3VyY2Vz
ICovLAorCQkJCTU3NTk5RTI5MUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENv
bXBhdGliaWxpdHkuc3FsaXRlMy13YWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNTc1OTlF
MkExRjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk1NzU5OUUyQjFGMDcxQUEwMDBBM0ZCOEMg
LyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5V3JpdGUuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQlGNEI4MjVEODFFRjREQkZCMDA2RTQxN0YgLyogY29tcHJlc3NlZC1maWxl
cy56aXAgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjQxQUI5OUYxRUY0Njk2QjAwODNGQTA4
IC8qIGF1dG9mb2N1cy1jb250ZW50ZWRpdGFibGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQlGNDFBQjlBMDFFRjQ2OTZCMDA4M0ZBMDggLyogYmFja2dyb3VuZC1pbWFnZS1saW5rLWFu
ZC1pbnB1dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTIzOCw2ICsxMjQ5LDEyIEBA
CiAJCTU3MTRFQ0I4MUNBOEI1ODgwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVS
TC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRG93bmxvYWRSZXF1ZXN0T3JpZ2lu
YWxVUkwuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcxNEVDQkExQ0E4QkZE
MTAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9IERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRt
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcxNEVDQkMxQ0E4QzIxODAwMDUxQUM4
IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMMi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1s
OyBwYXRoID0gRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTU3NTk5RTIwMUYwNzE5MTcwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNr
d2FyZENvbXBhdGliaWxpdHkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTU3NTk5RTIyMUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2Fy
ZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gIkluZGV4ZWREQkJhY2t3YXJkQ29tcGF0
aWJpbGl0eS5zcWxpdGUzLXdhbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3NTk5
RTIzMUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0
ZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5V3JpdGUuaHRt
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc1OTlFMjQxRjA3MTkyQzAwQTNGQjhD
IC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IEluZGV4ZWRE
QkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1NzU5OUUyNTFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRp
YmlsaXR5UmVhZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5
UmVhZC5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzU5OUUyNjFGMDcxOTJD
MDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtc2htICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0
aCA9ICJJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0iOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1NzY5QzUwQTFEOUIwMDAxMDAwODQ3RkIgLyogU2VyaWFs
aXplZENyeXB0b0tleVdyYXAubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTc5MDFGQUMxQ0FGMTJDMjAwRUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJMUmVxdWVzdC5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvYWRJbnZhbGlkVVJM
UmVxdWVzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc5MDFGQUUxQ0FGMTM3
MTAwRUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NDgsNiArMTg2NSw3IEBACiAJCQkJNTFBRjIzREUxRUYx
QTM3MjAwNzJGMjgxIC8qIEljb25Mb2FkaW5nRGVsZWdhdGUubW0gKi8sCiAJCQkJNTEwNDc3NzUx
RDI5OEUwMzAwOTc0N0VCIC8qIElEQkRlbGV0ZVJlY292ZXJ5Lm1tICovLAogCQkJCTUxMTBGQ0VG
MUUwMUNCQUEwMDZGOEQwQiAvKiBJREJJbmRleFVwZ3JhZGVUb1YyLm1tICovLAorCQkJCTU3NTk5
RTIwMUYwNzE5MTcwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkubW0g
Ki8sCiAJCQkJNTFBNTg3ODQxRDI3MkVGMzAwNEJBOUFGIC8qIEluZGV4ZWREQkRhdGFiYXNlUHJv
Y2Vzc0tpbGwubW0gKi8sCiAJCQkJNTFCQ0VFNDkxQzg0RjRBRjAwNDJDODJFIC8qIEluZGV4ZWRE
Qk11bHRpUHJvY2Vzcy5tbSAqLywKIAkJCQk1MUIxRUU4RDFDODBGNTg4MDA2NEZCOTggLyogSW5k
ZXhlZERCUGVyc2lzdGVuY2UubW0gKi8sCkBAIC0yMDg5LDYgKzIxMDcsMTEgQEAKIAkJCQk1MTA0
Nzc3MDFEMjk4RDg1MDA5NzQ3RUIgLyogSURCRGVsZXRlUmVjb3Zlcnkuc3FsaXRlMy1zaG0gKi8s
CiAJCQkJNTEwNDc3NzExRDI5OEQ4NTAwOTc0N0VCIC8qIElEQkRlbGV0ZVJlY292ZXJ5LnNxbGl0
ZTMtd2FsICovLAogCQkJCTUxMTBGQ0YwMUUwMUNENTMwMDZGOEQwQiAvKiBJREJJbmRleFVwZ3Jh
ZGVUb1YyLmh0bWwgKi8sCisJCQkJNTc1OTlFMjQxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWRE
QkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzICovLAorCQkJCTU3NTk5RTI2MUYwNzE5MkMw
MEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0gKi8s
CisJCQkJNTc1OTlFMjIxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0
aWJpbGl0eS5zcWxpdGUzLXdhbCAqLywKKwkJCQk1NzU5OUUyNTFGMDcxOTJDMDBBM0ZCOEMgLyog
SW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5odG1sICovLAorCQkJCTU3NTk5RTIz
MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0ZS5o
dG1sICovLAogCQkJCTUxQTU4NzgyMUQyNzJFQjUwMDRCQTlBRiAvKiBJbmRleGVkREJEYXRhYmFz
ZVByb2Nlc3NLaWxsLTEuaHRtbCAqLywKIAkJCQk1MUJDRUU0QzFDODRGNTJDMDA0MkM4MkUgLyog
SW5kZXhlZERCTXVsdGlQcm9jZXNzLTEuaHRtbCAqLywKIAkJCQk1MUJDRUU0RDFDODRGNTJDMDA0
MkM4MkUgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLTIuaHRtbCAqLywKQEAgLTMwNDIsNiArMzA2
NSw3IEBACiAJCQkJNDQ4RDdFNDcxRUE2QzU1NTAwRUNDNzU2IC8qIEVudmlyb25tZW50VXRpbGl0
aWVzVGVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VFRjFBNDExQUU2MDA0NDdDNEMg
LyogRXBoZW1lcmFsU2Vzc2lvblB1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDQ0U3RUYwMUE0MTFBRTYwMDQ0N0M0QyAvKiBFdmFsdWF0ZUphdmFTY3Jp
cHQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTc1OTlFMjExRjA3MTkxOTAwQTNGQjhDIC8qIElu
ZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTMxNTEx
ODEwMURCMUFFNDAwMDE3NjMwNCAvKiBFeHRlbmRlZENvbG9yLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTdDQ0U3RUYxMUE0MTFBRTYwMDQ0N0M0QyAvKiBGYWlsZWRMb2FkLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDODNFMDRGMUQwQTY0MTgwMEZFQkNGMyAvKiBGaWxlU3lzdGVtLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjFkYTA2OTcxYzZlNTRlYzQ0ZGVmMWU2OTQ4MDRjNzZmMTU4Mzc0NjgKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9J
bmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkubW0KQEAgLTAsMCArMSwxMDcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMu
aCIKKyNpbXBvcnQgIlBsYXRmb3JtV2ViVmlldy5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgV0tfSEFWRV9DX1NQSQorCituYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CisKK3N0YXRpYyBib29sIHJlY2VpdmVkQWxlcnQ7CitzdGF0aWMgUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBsYXN0QWxlcnQ7CisKK3N0YXRpYyB2b2lkIHJ1bkphdmFTY3JpcHRB
bGVydChXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgYWxlcnRUZXh0LCBXS0ZyYW1lUmVmIGZy
YW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAg
IGxhc3RBbGVydCA9IGFsZXJ0VGV4dDsKKyAgICByZWNlaXZlZEFsZXJ0ID0gdHJ1ZTsKK30KKwor
c3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYsIFdL
TmF2aWdhdGlvbkFjdGlvblJlZiwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBX
S1R5cGVSZWYsIGNvbnN0IHZvaWQqKQoreworICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclVzZShs
aXN0ZW5lcik7Cit9CisKK3N0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNw
b25zZShXS1BhZ2VSZWYsIFdLTmF2aWdhdGlvblJlc3BvbnNlUmVmLCBXS0ZyYW1lUG9saWN5TGlz
dGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopCit7CisgICAgV0tGcmFt
ZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyKTsKK30KKworc3RhdGljIFdLRGF0YVJlZiBjb3B5
V2ViQ3J5cHRvTWFzdGVyS2V5KFdLUGFnZVJlZiwgY29uc3Qgdm9pZCopCit7CisgICAgLy8gQW55
IDEyOCBiaXQga2V5IHdvdWxkIGRvLCBhbGwgd2UgbmVlZCBmb3IgdGVzdGluZyBpcyB0byBpbXBs
ZW1lbnQgdGhlIGNhbGxiYWNrLgorICAgIHJldHVybiBXS0RhdGFDcmVhdGUoKGNvbnN0IHVpbnQ4
X3QqKSJceDAwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1x4MDhceDA5XHgwYVx4MGJceDBj
XHgwZFx4MGVceDBmIiwgMTYpOworfQorCisvLyBXaG8gdHJpZXMgdG8gdGVhY2ggdGhpcyBBUEkg
dGVzdCB3aXRoIG5ldyBzdHVmZiwgcGxlYXNlIHVzZSBJbmRleGVkREJCYWNrd2FyZENvbXBhdGli
aWxpdHlXcml0ZS5odG1sIHRvIGJha2UgYSBuZXcgY29weSBvZiB0aGUgZGF0YWJhc2UsCisvLyBh
bmQgcmVwbGFjZSB0aGUgZXhpc3Rpbmcgb25lcy4gVGhhdCBmaWxlIGhhcyB0byBydW4gYnkgbW9k
aWZ5aW5nIHRoaXMgVEVTVCBhcyBDcnlwdG9LZXkgb2JqZWN0cyBhcmUgZW5jcnlwdGVkLiBXZSBu
ZWVkIHRvIHVzZSB0aGUgY3J5cHRvIGtleSBhYm92ZS4KK1RFU1QoSW5kZXhlZERCLCBCYWNrd2Fy
ZENvbXBhdGliaWxpdHkpCit7CisgICAgLy8gQ29weSB0aGUgYmFrZWQgZGF0YWJhc2UgZmlsZXMg
dG8gdGhlIGRhdGFiYXNlIGRpcmVjdG9yeQorICAgIE5TVVJMICp1cmwxID0gW1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0
eSIgd2l0aEV4dGVuc2lvbjpAInNxbGl0ZTMiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl07CisgICAgTlNVUkwgKnVybDIgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAiSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5IiB3aXRoRXh0ZW5z
aW9uOkAic3FsaXRlMy1zaG0iIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CisgICAgTlNVUkwgKnVybDMgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAiSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5IiB3aXRoRXh0ZW5zaW9uOkAic3Fs
aXRlMy13YWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAg
ICAvLyBTb21laG93IH4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9XZWJzaXRlRGF0YS9J
bmRleGVkREIvIGRvZXNuJ3Qgd29yayBvbiBteSBtYWNoaW5lLiBAQnJhZHkgYW55IGlkZWE/Cisg
ICAgTlNVUkwgKnRhcmdldFVSTCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5
L1dlYktpdC9EYXRhYmFzZXMvX19fSW5kZXhlZERCL2ZpbGVfXzAvYmFja3dhcmRfY29tcGF0aWJp
bGl0eS8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdXTsKKyAgICBbW05TRmlsZU1hbmFn
ZXIgZGVmYXVsdE1hbmFnZXJdIGNyZWF0ZURpcmVjdG9yeUF0VVJMOnRhcmdldFVSTCB3aXRoSW50
ZXJtZWRpYXRlRGlyZWN0b3JpZXM6WUVTIGF0dHJpYnV0ZXM6bmlsIGVycm9yOm5pbF07CisKKyAg
ICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNvcHlJdGVtQXRVUkw6dXJsMSB0b1VS
TDpbdGFyZ2V0VVJMIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIkluZGV4ZWREQi5zcWxp
dGUzIl0gZXJyb3I6bmlsXTsKKyAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNv
cHlJdGVtQXRVUkw6dXJsMiB0b1VSTDpbdGFyZ2V0VVJMIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBv
bmVudDpAIkluZGV4ZWREQi5zcWxpdGUzLXNobSJdIGVycm9yOm5pbF07CisgICAgW1tOU0ZpbGVN
YW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjb3B5SXRlbUF0VVJMOnVybDMgdG9VUkw6W3RhcmdldFVS
TCBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMy13YWwiXSBl
cnJvcjpuaWxdOworCisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGUo
KSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisKKyAgICBX
S1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjAgbmF2aWdhdGlvbkNsaWVudDsKKyAgICBtZW1zZXQoJm5h
dmlnYXRpb25DbGllbnQsIDAsIHNpemVvZihuYXZpZ2F0aW9uQ2xpZW50KSk7CisgICAgbmF2aWdh
dGlvbkNsaWVudC5iYXNlLnZlcnNpb24gPSAwOworICAgIG5hdmlnYXRpb25DbGllbnQuZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiA9IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b247CisgICAgbmF2aWdhdGlvbkNsaWVudC5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9u
c2UgPSBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2U7CisgICAgbmF2aWdhdGlvbkNs
aWVudC5jb3B5V2ViQ3J5cHRvTWFzdGVyS2V5ID0gY29weVdlYkNyeXB0b01hc3RlcktleTsKKwor
ICAgIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmbmF2aWdh
dGlvbkNsaWVudC5iYXNlKTsKKworICAgIFdLUGFnZVVJQ2xpZW50VjUgdWlDbGllbnQ7CisgICAg
bWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CisgICAgdWlDbGllbnQuYmFz
ZS52ZXJzaW9uID0gNTsKKyAgICB1aUNsaWVudC5ydW5KYXZhU2NyaXB0QWxlcnQgPSBydW5KYXZh
U2NyaXB0QWxlcnQ7CisKKyAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCks
ICZ1aUNsaWVudC5iYXNlKTsKKworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9w
dFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJJbmRleGVkREJCYWNrd2FyZENvbXBhdGli
aWxpdHlSZWFkIiwgImh0bWwiKSk7CisgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwg
dXJsLmdldCgpKTsKKworICAgIFV0aWw6OnJ1bigmcmVjZWl2ZWRBbGVydCk7CisgICAgRVhQRUNU
X1RSVUUoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhsYXN0QWxlcnQuZ2V0KCksICJQYXNz
IikpOworfQorCit9IC8vIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIFdLX0hBVkVfQ19TUEkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4
ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNWIzZThlYWFhZTlmY2I0YzQ5ZjMwNTE2NjExNzQ5ZjY4YjViMTRiMApHSVQg
YmluYXJ5IHBhdGNoCmxpdGVyYWwgMTE4Nzg0CnpjbWVJNTJVdF9keDRgZEJCfHM4N058RGZlbTk4
dXVNWEQ0TDZmdUZJQz1pNnVZIXBGViNEV0ZJaEZ1WEdSdSY1Pwp6aVhGUlJjV3Q7UkRFOTd+bipi
Nz8/ei07I3xHKTM4WFklRThAMHBvMWJBQl4tWnFBJGxwIyVMQmduVWxDQVReMEEKejxuK2VtRmNK
eEs8OFV3eEJjWm5AZFVxc2diVkJMNEt0SiY9PWlmUmRWSFFqfHJ0Q0NLank0dSFvM01eRHIhbWNC
Cno9ZzVxZjlXMUxhSnptQzRzIzRtOEByZj5eamlveiVPOXt3PDAxeUJJSztZaipBZz9jKnU0LXRB
PVF7fHd5aE9lcQp6S2Y1MTRuVi1yUDNSMlN+RjYyQnp5eHFnUkliclN8e0B4c2tFUks8WUg7TnhD
M2BMZHJ6RnIqUHolY0tBLVhXYTgKenBmRkJneFc3THFEM0llQjZ6SnBjPmx3IUphcmdELWdhYFQj
NEVMNmhoajw3M3lMKTxAYWJuWGBRfkFrNClXVG1ZCnpHSW8tcXNSa0owU1ZEM2ZLUHpvYUI2XkMo
YU1PaFgoUkdZT0ZKcjdGRjZIeFdTIyh0YEV4YlQleGk2dT9II3VJPQp6ZEJUPmt4S3FxQU57SVhH
b3wkb3l4ay1GWm5EPTFCOzlESGJJRFpxSThEfSY8SkQ0alIkP0A8SF43dTJ3MzJFV1UKejMxaWF2
LV96NWleaDlCVGNke19gZHgrLTslZ3xMI1A0UipWKFMhLT1HViV5c3dAWDxHZ3h4WUZLbjkyUzJE
cGJyCnphe1JtX3ppcm1uPF8kNVF6Njx1WkR9T0lqVnEqQ3ckOUAtNUV9QmNrZyErIVYhUHRkS1F5
cG1mdHg0UkNUOHZGTQp6MG4wYDk/XkwoJFItS3Q9JkpZYn56UHhCYWVaNCVxeGFmP1YjdXdjVWw5
JHBGMUtPPUQjfFYtOWl6KXhMUVJ1dyYKekdxe09wI3tUJnxXOSVhUlhYYlk2UWpCI3NmbFF0UU8/
MkRteU5KeTdORUdtVjUpJTFvb2hOaCY2RmJFbUJPV1JtCno5XihIT3tyajRNO3lEX1JuaEVedE1k
NGN0aklFXztzQF9gUG5rSm5jampgIUdXbXdhe3VabmVONilFJl5CaT5rXgp6M1lEJl50QmRFUWIj
ZTtmI3xsIzhNNU5rSlk1JDg9ZHhwZCNBdy1iKkpAP0dfQGltVTcme1FxO0AkPn1vZntrdm4Kel9C
UHZCPXIwMGxkKyZTJHl9U289TUE9PTc1fDV2KkxlY2EhJlVZciRSclUySDl0Jk0td1Z6V1lFU0ZU
MUBWJDViCnprRkVkVzNGc04qP0B2NkIoZnQwP0hQZWpLPCp4ZXZOYGYhenk0ZDNIVEZIaSE1SWMx
fGsxMGElNj5Re29aMCNRYQp6IzNSJFM5NUU+RSpBakVjKkd1JjVHdExYZT44azRMYz5WO0B2fWBa
aHsofmVqQ3xfNmVKdXxVJDhUKT0tViN0NTsKenEpISN5Slk2VnVkRXl5VShHNXBwemFzOENQNDt7
Q0ReZmExOSZnNj87XmxaWUpfdldoPkRZTyExZEFwTHtPeDJUCnpNYGdJJVZBeWJDPiViUkYjKU96
UFd7PGdKc3AhU1V2TjBOeHQ5MCV1Qz0oNjF2OGp3YHFLLVZlMioobWN3SHpAfAp6RURfYTYhY3M2
azdTfiteblcjdTRrcD4lOW1zWT1NPSstSyt5Q0YpVkkjeF83IS1aJi1mbj8mSUkoQmNSYkg3N1cK
ekx0VTIyKEM0NVVNQkBSZFp6Jj5jZFREKHxObX5ZR256ZCghcUFtK1huVk5KZShKWTUzcTk7dmRT
UjBAczFjTns8Cno5b2ZjMTF5ZS1ASElOSj9CUjM1T0R5N24xRGlvPG42JWlSQkR5NDJKTVAreiVQ
XzdJcntLWTtHcSU5dTNJPHpUXgp6ZGFoNExzKkt1SWdgbXQ0bV5ZVHktZmFiPkFvbW1NN1JJQnw3
eystLUlidktxNU94OVQ3fH1eSytNdmxMbVAlKmgKemtkUTNvcnpVZH5vaD5hYm9vcFRMPDZ8OWQl
d3VFdVR5dEJWQmhURWF3QHRpeG9TaSl7LVZ3ZDVkM0hudDlwalc9Cnpva0ZFRVRuZ0dPUCV+b1VO
cj5QRylHMDZZUTs2T35nUkQ0b0FsYDBeKEUkPD0wMEtZJjJtaz5mMDBlKmw1QzglfAp6O1F5OUAh
WUImaXwyVmUkS1IoRmFOPD9sNjtmfjBuY2tWWlJBUy1AdkQ9Unkwb1ZnWHghTiVPeUY0bzR9djNH
QTkKemIxdSlwJCVlO3NoPERgak1HaDduWF45c0lFUUREPzR3PWRASGZWMjM/RD5lQmxFRkNWK3Ax
NWVkemgxdSg/KWNMCno9cyp5MSM3M2RjI0owUFdCKHo8WW8wMkw+O2luMy1EVEdzTGc7Tj5rOTtp
NnMpXy12YmlPUDZ+ISVHK1l1XlJlRgp6czRobyU9MmtLVEYhbSQxRD82S0ElZFRXeldeUTlvWFRg
OElTKktXISpsaE5CSGtiOTBaT0MkQXpHclBAPHVGJDsKek9QSU0jMGRwOExmWjNPNiUyWj1BV1ol
ZCgkekdEVkV3ZWBFejA2Xm0+OVEpYXJaVFpJU3V6NztKIUU1S0RgZHhfCnpXKmA5cEFPSGtfMDF5
QklLbVo1O2ZxeE4hOXUoWGZyLShuUDJjeTc9QUJ0dThVXmJZUTUoUElWR0toRmV8OH12Wgp6cSVa
KHxTb2cjJXh+Z3pUKFYwLXA5Rj5wMiV6SUlBN2VXT1FFOXVEYU1BfCkyMFl9VkNqZV4/fCp+cW8l
JTxoTDIKejI0SlJOJWtvNl5KVGE1NlhONiVRbX5xJE1kODR2a3NOK1R8NnheST5oNDN4SiFjZiRq
cCN9di0zNllxSC1HYHRxCnp5UTRrQGlNa1B0OEZYITxCUXFFazNkUXMtRDBubmNrQklZJHZqe08h
SX5XPTVpTyNMamM/TFNoVjBNX0U4M202ZAp6aXB6QnQ3eFZkQVZPPT4ydThvczE0bDBZMWwkKHlF
MENVcnA2ZytrMWh5PGpMRHRjfk9rXiZ2S1VYbFdpbzJIfmQKeiElYWd7KDhFbiNRbFI5ZkNNbDN9
Pm5TT2FhX2I9fXp9IT9OMXk1YTdiU1ZzOTkyLXUhcWR1Ylc5MSRfSSQ3flYxCnpqPH5Bd1NJaEs5
disrd0FDMmIxQjh8ZmlwaGFGSzskcjZmTTZveHgwQGc7Z0luWG04XzRVK0wpYFR3T3NHR0VTfAp6
IWlZdktkfCN9Vy05PWtSa0duPWBTKCs0djMpMSVXNyVvJHUhcTcqI1UqZmcwVF9vWmx0JkEjI1ZV
NVpWNHMrTC0KenRhS043KkM7SGIzeE98V3lUKUlveTQzNiViZnFnJjd7O2gyaTZFOyl8R1AmLXNh
PE14WSllcU8kVTYyOSRYIzBPCnp4P0AwNnFBPClFLU0wcHEkV3J2QmVASCs4Mm1rPmYwMGUqbDVD
OCV8MDA7bTlBT0hrX3pgdkxQdjl8O018RyMqRQp6ITg5Tk0xYl9lIzAwS1kmMm1rPmYwMGUqbDVD
OCYqMDFeS3V2R1h6WjBkIy1fMWJfZSMwMEtZJjJtaz5mMDBlKmwKejVDOCV8MDB7aHQyKUt+UWNu
PEF7fEVgKH5qO2QzPlRLIytlQiFTcmYmJSlTeSpqZkp9MTNAaGkwMEtZJjJtaz5mCnowMGUqbDVD
OCV8MDA7bnFwTyUwSmlKYTUodDZ1eH17NHNTSzMhPHRBe3cqRWY8TX5eUWJQKFZGQyRTNExieyNy
RQp6MHM9cSkybWs+ZjAwZSpsNUM4JXwwMDttOUFPSG1aYXxCJC1JcnRDbjEoNW9aYX5OTih7WE0k
P1YqbWRVIyh1P3EKel5xKF5qR3k/JTMwMGUqbDVDOCV8MDA7bTlBT0hrXzAxeUJJfDBNI188ZXM/
cml2dUpFeGhGIyR8MGxseFBocG80Cnp8TnJrMGRvd3pMMU8kS3A1QzglfDAwO205QU9Ia18wMXlC
SUttWjgqX1hzRmEkbVorLVpkTVIpNmhCck5EaW95aAp6ZVo4eXwkeilUdTdneHlUYW50eU5fXkR8
TGZARXViNT9TQT1MbTA/UztgNnclcWNnZHdhV1MhaXEhZ3wmZnRRZSYKekFrMD84UVFaSyhrUTt+
VWNobmB+e31sRSVqRDRNYmwpYTdKXjR+S01TXkAkPDAwO205QU9Ia18wMXlCSUttWjU7CnowVSFW
YnspQilNKiZPZV9GK2ZveW84bGM/MFBWZyNTJnBwVkRJPk44TkQ1P0FNejsrQlFUKDVFMzFpbz9D
JEpzUgp6Ml96ckAxYl9lIzAwS1kmMm1rPmYwMGUqbDVDOClJWndTT3Q9JEtaWGlJaH1xWUljZkg7
SyRHQXI2ZVkjMzlZUW8KejtVcUY4T3FpWCpBQ3g5Y08tTFJnaFkjWj5qdTUwSzJ1Q0phQnFKfGJp
bUF8M1UyR3xpd184bEBYMVIkTW5UQmEpCnpGci05XnhRWGZmNCpoM3dsMVJIOENNNkArTyQpaTM3
Nm1zRjRPMnkwR0phVHREXkEwZEdvKGNRX0BPUns8TndWVgp6YHZkdzUwOGlQPy1NUj51S21aNTsw
VSFWYmZCK0J4MHpkIT0wMEFIWDFjMVEqRCp7dzlqI0RWYWt4Vjl6Qm9kai0KelYySih5YX5TJl5g
d2pheHlZPkgtTnpocCEwMGUqbDVDOCV8MDA7bTlBT0hrXzAxeUJJS1A+PyFTcXR5eys1PzVTCno+
aW0pZG5MJD4/TVBEYGAoYUZqVExRWmBEQThZQGohY1U2fjM8bTswMDA7bTlBT0hrXzAxeUJJS21a
NTswVSs9JQp6QyV8TXNMNFdgNjQjc31aeykyc297by1HNEV8Pj1kZkIrQngwemQhPTAwQUhYMWJf
ZSMwMEtiWlVySzw9QkVJWXwKek9gKHUrREdJV1lEbipxU3tTcDhmQ29gbnJfeTdOOyF3ek52MFUh
VmJmQitCeDB6ZCE9MDBBSFgxYzFPI059JFd7Cnp8STNTaHxEUSR0e3kmMURfPiUkd3Z3OzgqMDBL
WSYybWs+ZjAwZSpsNUM4JXwwMHtnezFlQVV6VzVIRyswMGUqbAp6NUM4JXwwMDttOUFPSGtfMDF5
QklLUGRzX3BWViRKOHdkYWFBT0hrXzAxeUJJS21aNTswVSFWYmZXWGcwSzs+c0wKejdIa0NxS21a
NTswVSFWYmZCK0J4MHpkIT0wMEFLSWxNK3o8TiRtIStmZENLeTB6ZCE9MDBBSFgxYl9lIzAwS1km
CnoyPmVWMGRpK2VyZn5gT1IybWs+ZjAwZSpsNUM4JXwwMDttOUFPSGtAUVVYMUhRb0YleUFPSGtf
MDF5QklLbVo1Owp6MFUhVmJmQitCeDB6VlQwd1YlbVl1b1ZhWjBVIVZiZkIrQngwemQhPTAwQUhY
MWJfZSMwMEtZJjJtaz5mMDBlKmwKejVDOCV8MDA7bTlBT0hrX3pgdjBJNkIjOWtNUHV2K2J+JD9q
VGJgNm9sRTw2enk/OG1FalNzP3xhNXtEI0Q/dFQqCnpCLXpNTzhTWFkxSGU0RmpfUWpHaEEhZCEp
V0EwY2dkVTNJQWpFM1lZbG4mTFJlPztpVXJaUz81SWBUKnlqd09newp6SWJ4bnpCQzMmdXJDQHc0
dURiQFpnYSNXe21zWT1NPSstSnBxSyp9bCU1V2lDV2d4TSpyO2dvUSE2ajtfJVRnS28Kejk4YG03
Sk9LNEFNUHlBY3Q8TlpGJWItbE5fUkxWIVd1WWlqbFRJYT88cSQ+bXFeUyZSMTV8YHk1UXdFQytq
eXY4CnpzO0htX2xBJmJlcm9sal4mXzhHcGw/cHtfUWJqflloKVN1T04+TGYhOUYhfUEzVipUQjE4
SXYjdU1UYT5xTXF5MQp6a3QoQmhSVXMmSTFtPXhwd1JjK3FEYWllVnhgcHYqRz1efj1RSH5mRjR9
QEtTSSExSm8/UyN0azUoUFlHOypnTG0Kejxma1RjNlArekJFdUN4fj9jLXd8Wk9taDFgQ01+Ym8r
SG9Qc2tjcU1kN1BhK0ZXd1FvdGEpfXMxMENhKFUhNmp3CnpHaDdQVkVLb0NJO3pAfCQyLUdQcl5p
em81TTEhbjJiUmdidGlfcmxSNUM4JXwwMDttOUFPSGtfMDF5QklLO1p3RAp6ZldqeVc7cn0/Y2Aj
KE8mLUFZN20zRV9eJnFJZDIkZUlQNC1aITBUMVprKUxsJiV3c3IpLUtrQCtfODZXOCo/dHQKeiFP
NGNsYkJLNTNAPGszNzljaFVkMnJQdElMSnBiQUZnOXAhTzY+V0ZvMDdwZT1pOTFKcitiKV9ra2R3
VmhVaD5MCnphPlBjViZjd0Y2bE8hcG1Ea1c4ciFjUEB1UXdYUWgzYTJ2Nkp5M0JmRCpuWUdCcjQr
XzRsa1lYMjFSfS1RR0BYUgp6bF9+WlpgIzhJbEopQ1hDZGRqLU9JPj1oZm4jSWF5QG1QSz1HWnZO
RSVEbHxuJiNhS3klQlYmfkFwcnAoQEtYfmcKeiVGKENjY0pzbjgzTns/QVhJS2FwaWsySTVFRXhS
XjYpbCQ5TChtZSRPRyEqZjZJeGtheik1NVpsfTQ4dSUxQDM+CnolfXg+VzxOV3k5UUpKYVNsb1dM
OD9INE5Laik9KE1yPX0kY2w3cithYDtZRSgtTTNAb3gmMWVzdGFRZXxqPnZEVQp6UlpsRWpPcXYq
JW5Fc0FDYHErbEtqQkJ8QWF7Z2VISG55SEIoVkI2NVl1TnRyQml+ZTFFU08jJHpIOU5iNjA8ezkK
elRHYjA7OCNuQl56R1VqIWA/SD1jSlpQTF9BNkVObzVwYCg4cmVoKUE/bCRmd2J+N2Z7UCMjdEpo
QWM2eShGYGBTCnpwUXFZJXZfKkFuI15jdzhRVipUO0BGcE02USt1fDE7SXdWXzd2KUZ3a3lAXjhu
QVZTVGM5SCt5eGo5fmUpJTdRMgp6bCUzd2JfcWoxPV8+T2ZCR203dW44clIoQnlxcjBFWk1KRGRE
eD4rPWEmSnxCPFI0ZCRUfVlraUlyfkpJdGV3JVMKel4rbjZwVChXNj90Yk9JT2traitWbiN2dT0y
Yzxybl8odWBmWHVaakhESWV6enkkYXR1antDNSM9Rk9DdUYkZGwzCnp7aUx0JGB8WHFOJkNJOEB7
anUhIys2JDczSG0xIUJVUmdZez8kallOVy1ZKntqSzYwNWBfU343K0tFZjhZXnIwNQp6bnE4X2df
cyowKnprVDVGazJQdTIyNWE1SWl5fChXaEYjdUJ1ZGN+VW9LRXRlejQoVWZzUVU4OTY8SHNyc1ch
NDYKejYoayVUWGtkNzRZU2M5Z0BfM2B0cmJ8QTEmLXFWbDNaNXsoPT03Y2lRT1VVSDxiZ3EoUHlS
QSheWkNPaXZUb30mCnpIdVNRez0qalpjQihhXigxdUgjTip7dzhWQCMpdm91N3tAVyYwaUdMUiZu
bE9iNSM4MnhocXZTenlDZFA/I0BGcQp6dWNpLWNRT0ZIallrbEV9aV84ZEsmMDNGRnR1Xnk2Rj5X
NXl3Kytpbnh4UE4tVDZ4cSluTjVyYT9hPDBkRDtvTG8KelY0aVRtcVgkZXlvIypPYFg5Zio2R1BH
KVdCWGpIaTwyfS16WXlHVWZueDNSREduX29RdlpZazZKWSo8dSZYZThGCno4UnVpUmp2SiNMK3NJ
b3lEPUlmPVZnRnUtZEQpSmhKKks+UWMlYnhuO35aMEU5czJ+d19malRWSSlsfj8/ZURIVAp6Q0Uo
Q0deMzx6S1RyPU0lWDxXKkJ5Qz44NVI3U3NtKTJCMTlvUlojdVJyb0hEcmFqKzVZVG5VMypPb2ZT
NFZfbisKenhuMUAwVmFMPmFBQnI2bVg2cWZBcmhhK2tOcW9pdiYoZSZGLSl0Tz9PKTgjZXUpcHQl
eWdOSk1ob19ZbThNKE0hCnpvOzExcWYhUXgtdGl5JFNNOyFLKEA1eUxkUkF6c256ZmFDdkpAd1V9
QTBGN15tPlo8ST1UVHJgQllXSmZsZGJPdAp6K21HKl50b3lkK1p2QWNZI2c+YD0xdGUqPXU/ZShg
dUNrMl5geEA4WnMkNkJHSXozUEtrYyFgdnQkR1F6Z15CKzIKeiEhOC1DZylVbzhUUzJ9fUokUFg2
c3w0QkJwbGMlelQwTGVBYEt8QjZeX2JkfVZhaDVtKipBa0daIzQqUzNjUz9zCnoqVyEkfVA9ajJy
ZWNLUCtKazghYHhKeUAtYFpoZkBjV3IpYiF9enBZPnFsTiZtczR+fUVCMW9AclhEKkIqV0JORQp6
QVg8Tk9sSV5pRUV4SlE5UzlgQH5NTklqbW5WZmZLVzMtLWNTLXNhSkU2eUZwQ0JkP01adDFQRmsr
Wm52Wj5OcT0Kelg/ckgpbFhsfV5qbmUoc1p3e3REX2NaSDJfajQla29XMj0laH5wXkRpfW9eU09+
UzkwYTBmbjV6QENPbz83I1ExCnpMRU9nU3tiR3Z4UmM2a3FHRlV1S2hSJU45VXRlWlZLWUQ3KyN7
UjhKIVohOHdxeytWKyZZdDdBVEQ4dTFnMEAxJQp6bVJfbzw0bXJtJnRuMlB2OWJkM3RkLWZ9KihT
WmVQb0NZYHhvO0R1N19MZnlZTnFePFNMc2djK1J9VGJ4YGFBaVQKel4/VzMpY1JJVlZwMHdoV1Zu
SzBEcVN3KWI3eEZ5QDN9dFJgIUNUd0JfQTU1c2s2JUB5dH5SSzNzNzJZe3NEZTU3CnpYcUpfV1Rg
JT95YGxSOzZAYnszNSpTSHFYb19OTWZYPk4lNkhDYi1naXNofVkjd3lPX1Y+UUpXZSR7IT94PDNC
ZAp6PTwyJVhRKDB0d3VPUFZ8bThsbDc8ZTtyYTxUKjBoPmszX0Y3dyp5VkpJczM/N2JHWEFhKS03
JD08fHw/NiglSjkKej07Mm1YYXlUWjEkeiMxUlczK19ZUVFsSU9zRHxSbDMjbFhLS3h+cUNObVMh
V25SK3hsZFdyX0kwdXp4RUBkYHw9Cnp6VCRQKjRARkV1UU1BUHolUnQ4JSV1YyoyKkNLXkt4R0xq
JSFqeE0jRlghTUIwKns8LWRhfn5GJTAkPFBGUHJaJQp6eDRxaH1iaGRPKG5FZDt2YndATXMhfWch
MkRkZGxHZHY8MTEjLSZAS3A7ZE5FPTNWQytqWkAyJFJoQ1htOUdvKlUKelZFXmh2R2xxR3t0ejd6
JVBDS29BPl9xS3Y7bjZHSUtpV0xkU3o8VjMham1pYThgYkM2RX4tPjBlM1UlNyslNVhSCnplTysx
JUNIaWh1I0g2YUA+bUZvUDlYO1E9WU07aURpU3p7PEVtdDB8YTZaMW1eflRpcjQrYFRHLS1OMHU9
V288Rwp6NiFGe1FqZWg+ST4qZnpfdCpVclNSWnwpemV9REtyeXQoZFp2M2dHNGhIJkxmSj1iMnx3
cUFKTl58ZnR0ZjZZP0EKeiopVXw9diZqMlByXkg5aiV8RTxGKzJUXjEmQ20tc3leanV5aig5Wmd6
elpxaVl0Tj9sS0NePTk8S0srPF9eQmNHCnp7WERyTSMpSVdEemI2KHk5PCN4JShEPkszb0JxRjlw
cGlFeT5aY2EtWTtCPm8/eS13VDw4dXpwR1QqZ1hhYyFPfQp6OHU9MXFfcHgpNUVoRVEhMlBLLStZ
KDZiSEBfMDAhZy07VT9eUzRHR3BGVDtiT1QjMGxzMVlNQypFI2F1WHRhc3YKej8+RU1NLSMtfDQt
UlVGR0clOUNFKntXUihTQ1VXdWI+OXVnQkNmfGZlU1M7YyRuIUQ1eXJgLV8qMD4xQGNTb151Cnp1
M1QyR2I8M0ltO0xZXlcxSyZRZnVEZihocXE9YTtIMEtwb0EmMEx3P1d0UnpYPFJ3OXEtc309YHFk
QmFZeENBOAp6P2xXRklHSEVCe15SRXMhcU9ZQT13N3lqOSUlT3x5V2A0RUNjQjlga25icjJvSHts
YE1CTnZYX0hPI1EwYncoY2QKenRtbzt9PXlAKmxubklnbVNEZ003cDVWSChLeF5TSUtGWSRUPHJg
WkgmWiU5Qm9EIzc9dCEzUkItTHZaKS0jUnMyCnpTb1khRSlMQWQ0Slk8YyZUKGBBVi0qNTVVc3pQ
U0duVHpBMm9fUH5qPkJsd2lkKiFgVld5R2BNaEwrNkxnKiVlZgp6KV9jdSFsZztVIU9mSEt3Xip0
R0tNckZmPHtlcnoyWng0R1laPzdwamR0aUE/SztZdnhgNV9mQUhuZmJDZUsyPSsKemZVcHFfZCRN
dW52OT9Le2RiVyh7Rn45eXc1Xz9GNnoxZkdKSExZbWFIeXc2WmRCY0QyPnMrNWEmOUdJb0N3Q2s2
CnpwP0RAPF5jVFprdGdKKUR3TilATyN1MW00YXdFSnRiIUJaeUYod2xDUk9VI0VwU2x2SWRuanYo
I0gwPS1kWk48dQp6YG57MFk5X3RrQWh7U1RwO216Jk9QZlFlO01GPig4PEZxdzNRODl4ciNXPHAz
TH5JdSY2KnB4S04jej0lWT0qTUIKenFffkdqRVR5YV9ET003Uj5CPkROI2QwRHN0IUVEOz8pOVo8
dkdyOEslfmUqRnRSV15xUUM1KUBpd1RoSm04bEcwCnpCRzV+Q15GRV5KQ0p9SjckODZFVURHYD9M
VHlqTldYP3Z4dyo2V1NnYmd6ZTthJlojWHZzRllQVEIxRTdNQjVSSgp6e3pAKDRRP3d8RllTfTFz
MzFOJUYoTzs9VTRDJDlUdyg/KFQ9X30hT2c0dmZeZyNSeXQtTiZUSUduQXhveCg+fmcKejhiYD9e
dU9jbk40PGhsdUJqclV8KFF4WllFTW16ZHBhckEyd2pUO0xgPUhTeXVDPVN0O20wMH1hKXlANE9C
eSZBCnomYVNzZ19SMjE/b1pxdThDd3tFaktIdkFsUjEwNjZxRT0xVjxtXiNOSHpBPUZxUiZDKmwz
flhPI0AtMkVxcGVhRQp6PmkpV05heCVGbj0+JUZLVWYzfm54M01hOWBkeFQ8ZkE7UjZheWVXfHpM
JkFOVUNofCY7dnZBJTB4bjlPKTNXX34Kelg1SnU2OGc0OCRqdEpUSlojVjU5ODxzKG0tI3B7WklW
TH4lVnNPTytaUzZlZi1FREdiNG1HVX52a1pMS0JYd3whCnpWJXhaSkZGem98PGY+MlE1OFU1Jkpo
SmNQX24jN2BVbVEyMCQkYWpsdGY5eS1nVVkraDJhVU80X34zZFU8SlIxdgp6V0ItTz5gN3tme3V3
LUo/I0QpYytkKEJma1ZoQHB9S1I5OSRXNXo0d1VveFlJNjtpVSZFWXUmQkR6Qzd2K1R5ZD8KemBO
byMyaDQwZXQtQEl+cntJVj9VSTZhZ2xLZUM/Y0YwKj81PlAwYlFoWi0wQSQxRlJmczR7bDslK2d5
OGNIeVEyCnpSeThDd01NbGtle2UwUCRrWUA9OSM3VEc3M2Q+QzhXZXhRNlczLTB0RzRnaHkjVSko
ci0rKH08aGxYdWA1ejxQKAp6KHp4NzNDZ09aMmg/KHA2aWJ3TEJCVjN5b1dpQnkmLU8oMn1oXk1f
RDdWKiFnQDkkSCZjbDljcjNaOEg3eHopQz4KemZ9eWR3QDc0STxGVzFlI3VWKEFKJGVkeyNkMTI0
a2dRSm1nbVdSJHFNbyN5WlM2Z3ZtKSMqTU1CWDlaJFhXUlNyCnpkeXNNMiFOKyRNV0YzM0BgZU9R
bE1veHNtLXglZSo7YnRgNE1MZDBweCFxeCRDJVFYNWtkY282K3s5ZW4jVCRwMAp6M3xWZDh4X1Ar
VSo1emdJXyoyJUBaRU59SEphZ1olXj9Bfk5jdF9aQFdkX1M0NlZGWjJIJm98Nz9iQzJeKlUqYWoK
enU0VV9yOTx1QF8teCl3bTxqS0RAOWFlWUtJLWFyNipmcl48e05GS2dzNDNibDV0flM/XkJwR2tM
ejZrK3BQVG5xCnp1a012X1M1d05wTyV0WHhffGYpazR5YFo9ekVHfU9gQHpLVWd3RGowN3Q9VElh
WFozNT1IPWJmdU8pOVIrJn1LQgp6KXdyXl8yYGNJO0lxQXUqaWQmRipxcU5pKDdrQGZ5UDtAMD4z
ckR4fl99PzxtPGc0YStxVmEzTFRtUS1XSUB0UzQKek1FYiFNRXpFdj9GRnk9O0Ztb0FhJGQhYkVD
KzlkTmlTOyo8clVxRjFzJkwta2k5cUh9ajZYZk1lRHxadGlJMyNeCnpoVXwmYyFEfU8pKUlCJHRp
cDwrRkheNnhQLUllTjUqRGs2YV5BZm9IRSVTYE9WT3wqV3k4aUpoPm02QXRxZm0mbQp6Y09NKEZ3
NXItPFpLMGltQEw9P0YlMm1WSlcwYyF1X1JzWVNBOXR2UGhSbUN4RDFBcmMmTU0wXiFCVlZyKDBV
ODwKemUxRTZtTEg7azBkSFFXVGU+b05ZY0gpakppJTdnQFlebEZ0VWNRX1dUNGY3SjlqbU4yOFok
NVM1RF4qbj84akdHCno/IzlDb2BuMzlVRkxXbFR6VlVhZVY9QzVzcyVGK18zOTY9VmY0V3R6VHJI
I3xyZj1BakBPPmZVYitybjRINFU3JQp6U3tET1ZaYnomV3ZKTnw2VVpwMGBIQjg4N0VHaGloPipk
NTFEYzJVZ2t9LU1oUj09dj4tMjRmSF50OShHXmhaYyEKelorKWlPS1JJPmFLJmE9SDVpP2N9dlI3
RHFyZFghWjdhP0ladFRUT0Umb3x5eiNEMzxPeE87Z0FsQ3RlYnskam03CnptZGBoJjtwVC0jMVFP
IVlre0FpJFMmTmB9fEZBRDVTR2l7Qz02NDx+dUdnMm9wPkRoTWQxVHxPJGxhRilkPlhsVwp6bG1E
OUsjZnZ0VVhub3ZoWWgye0QjLXdEOzFuU14oUUx7eyV0OXhNK1J6eEBDRWpvMjxvYilFbWd4bEsj
YCpIQGEKem1HUnFLUjNWK2VEJn1PV3pOMUQ+KERaOTlDZlk5QlBZNnl7MWBIY0sqMDZTM1UxSSt2
KWx2dDBBTVIxOUhYfVhmCnp7cS1UdW4xTjJTQmhSeWB4bklwQEU4UU1eXzBTYEFYWG02aEtjQk57
ZnpwfUYrKGklTSM9SHd0Yj1zNFM5Xk81WQp6dTh4ajdVcjZpcVoxQUQ3VFYpcTJqcWE+P0d+dXF9
RkAqUWIoXnNGU3pjfCpZK2RCM0J5eStRa2t9ZUgpN3lFPTAKeitZJV58elZYUWdTRGMwJCZ+UFg1
RTs4fHt4bm1iT05WR3gqaSlzSShlUHNFbnl3QGo3bGRKRUNrbk9oN0JVVTdaCnpvc3JzNndXYVV4
X3RGRCk0eW9EYF9yUGEqZndaWll8Q1hATkMldDxabkM3T09GI0RoJTVaI0xzdmE/bnJAUnVoVwp6
R0x9MG52RGprbSsqPlBXTCFpfmdnTFIqQERKRndHaVokUERSPVliP1hFPHYmdVcpZXJSJnYzU0Nr
QUt5UkdRO1cKek4jaUZAJk00WHgoV0F+SlpHbD8oTVB1I1R2dU5nUFoqR1d2elBiLVIpYmdsekx0
PUxRc0srfXExTk07R25rRkE9CnozM1BHe0piMlBPLX5LVDx5KjgxSHtTbHxNPzFmSWwpemtiJi10
TllNVGgpfXgmeEpjWjlYbyV7VzRmd28qfW5MTQp6Qkw+UmJAKUdUO2hiZ0tBckpSM3hGc0V3Q0du
M3pVSnkrUGQhTjBLYXAzeklDZmMrUTRYMDdhZnteOTlpV2hkdSgKejJJeTteNDRJbHlGKmZ8PEB8
e1E4XylgWDM5JDZSb2JlPjE4JEA5ZD94d2p7cWV8JVE9YCN8aDcqflFwPkB6cGxaCnpWUn0hbEc5
SCVJVCgxWnp6V2FXNlI4ZWYoYj91TG40WTFePEJqLTtxNz5GZ0dXbDFAfFN2eC1aWX51JjdYRD9I
ewp6RX13V0t3ZmYrSjlzK2lzaUI4IWUoaTNtaUswVTByIXtmWUNOJGF7TjMkSWRsPVUrOSM9Zio2
SikoOy1vVS18aGAKejtpPEMkWXFsODwoRTdhQj92UlM+QWV5aGstQz1LNk8kKGFQdlRXT2dzcTx7
QyVVJUBNajlweHlGKXp6OUwwTnowCnpIYUQoUVdUOVpxdTZnUkkzdFQyLXs2U2piYCl1bGEmOC07
THllKiNBWTsqZnVaXnc8dEM7N1YxJGNrQlghdEkpVgp6e2prcl5tc0l1WlMrUFEoNmVGRTtYN2BO
fk47fWtfNDZ1R19NUT02QStCeUdUKDdSSHRPVFhBJUBvdWJtR3JlOXYKenclXyZSN2pMSjxjKj5X
cDlEOSNma3krPCtXSztQQz9MSk8yWWtzQDYjX2lMKyk0P2JDYCkzdExqZ0IqYXZOa3EoCnokbztg
bjN7SzNBSllKdlUqTE1acGFeK35mOzVwdUc1eE1vJDQ3Q2s2QypAdGY1bVZscVdFfEFyYDVsUTw3
QktXKAp6a05IJnZaKDM9bCV+Ukc/SCRWMishTGgkSmM0VUJSWTRvaE9iP1hDT1BJT1puZTFQRmQ0
bk0hclktUmFMXl56IzMKemdxcyQ2d3l8TnU0JFFLY3UrX3dLIX43Zk8pMmZ5fSpyPlp+Kyo3d2ct
UTAlaShmT0JjcWdyY2RRazljI3p4N2FJCnpJWm9SPFB+aGlnWXdBNFZOYlloZ1U3T09KcnpYS31e
JWIqdmsldF5EJX5CfmhVK3Z3NU9LVlV4R14wakQmOzVLdQp6eVQ0dGA9KCQxaWlmT3hjeVhvMlNv
VVB+bUtGbTRYI05mKEJWYHJ9b29IXkl4NnRwZU1FMnxZIVk5bHMkeElOKFUKelEpVGJGajZjcGt6
UTM2PCNMJCYxT3hCQSY4eXxEWD8wdjZpQUtxUEkqQFY9fS1mZ0xXS1duXjBVKXoyfHZFeUBHCnpL
WWR5XlZ0JkRicSR2K3ViM2dXWFVncWZGdH5oU0Bsd1RSd0dhV09ZIyR6Kno5IXZFYVljX2R+XlhN
NTViZUVtKwp6djdFSDNIXzBVOyNWPEt+cDZBbGJHd2RIRzdFZGQ0OUF7TENNLTxySlR+I3lkbnl+
RFJ6TFJ8WT0pcFEoJnVncSgKenRhNE5Je1NyPWpIMjI4aDk2biQmXlYxXi1tQm1kSitMMj9iXyRP
dk9RWkZra2gtJmw3P1hrU357UVpTbkJLRXgrCno1VXExRVlRZUlIXm9pYWpZWmYtI2pOTFk+JndB
WjgxOEBGelp8YHVxdSRDP0Y3TG9mKmV3TVE7Rk1pc0Y0PU5gOQp6YTwycm1TSV4wLVdfaksoPkcj
R2FWWWFAbVgxPDk8QldkQ15rQVR8UGRuSz5tI256bjVgbUY3RWZBdXUyPWZ8Jj8Kem9mWWFvJX5+
YlA4dFlefXw5YlQhIU5CNVElOUp3aUYwSVUmTnElKnBWeVRTOVBTKjh4MyQrZz9EVTl2XmFDQGVn
Cnp0SiY7dncrd2lGPDxUMUttOE9gcz82PGBrclFZKVUyMGxKPEJEN2Qoan5jaCg3RnZUVkFOSEI1
RHdGSyVkZXZvTgpQdnJkeno8UW57YWBeZihUWFBNZWkKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4
ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxp
dGUzLXNobQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45MjQwMzNkMzI5ZjhjN2RjOGMwYTI1NDAzOTk1NjFhMGUwN2Ex
ZjJjCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzMjc2OAp6Y21lSSpObTVmJDZ2cHc3Q01ifVE1
VzBsV3NFREU8QjdOdSlmakktX1l7NG92TDlyUzM7fEx9O0dkQ2RUI2B+JT0KenV1QG8lTl59MFY+
ZVJfZ1VoWF5KRll9d2k/RldUNVdZcjwlUE9WUWB0dTZoIUVkOTlwZFF8Pj95NyVxOz1nc3hTCnoh
ZD4/RlM+WnFMNUJyNGBgayQmKmN7OUVyVWZaK1A4R0Jkay1MYT0pP31gMUhfMipXLUB3KDQ/ZXwo
KmBwME9IOwp6KlYpKX0pKDVTVWR1I1JUSihCTXdeTSU+TTlNdj1BP0s9MWtUYTgkYVQ4JnYxdGNx
NlNSd2IobXRNTDZ+JndwSzQKektQUC0xZWhVQD8ycTFzfTB0Z18wMDBJYWdmQipzckFiPGJAMnEx
c30wdGdfMDAwSWFnZkIqc3JBYjxiQDJxMXN9CnowdGdfMDAwSWFnZkIqc3JBYjxiQDJxMXN9MHRn
XzAwMElhZ2ZCKnNydzRUNmY+eTZ4P2k5NzUoaExvTTwmfS0qTQp6V1I8cyo4d3pALXFYdGRHVzFt
N2A/SXx7S3V9NyFnPngrd3xlblBKTWlUY1EtLUl+fDdfSTNRb2VmV0N3Mnk4VVoKekNgfj58SUt6
dDdVSUxyIzZ7bjdBIXMmNldfN1coIVNEWlNnPkMtfFRjVzNLSDJ5QUlqcExOb1JONE1CQilCMWJq
CnpYXlZ9YHhIU1psUSlYLTIhYmNUPmoyNGtWel5UQjFKfn5aS1l5QCg0M2krZ19eLT9vbkFtQmAz
KDlZa1YoaEkkRQp6bVljVztnI1Z7XzRGZHZCMSVAXjJHJiEqbTd8fE9MNU82OUd7KXZsKWZLUCM8
LWZCayZLRXNwUnh4bCNRdzV2bnMKaDNkSHYqdTtlb35zU3otTlBiZVZaUiQkcH1hKUtrVTA+SnxY
P2cyUDRHfmZVTAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmls
aXR5LnNxbGl0ZTMtd2FsIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
SW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtd2FsCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2
OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkJhY2t3YXJkQ29tcGF0
aWJpbGl0eVJlYWQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L0luZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOGYy
ZmUwZTE4NTcxYzFhMWNiZjU2MzQ3ZjBhY2RmMDlhYmMwNmIzCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRD
b21wYXRpYmlsaXR5UmVhZC5odG1sCkBAIC0wLDAgKzEsMTMxIEBACis8c2NyaXB0PgorICAgIGZ1
bmN0aW9uIGxvZyhtc2cpCisgICAgeworICAgICAgICBhbGVydChtc2cpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIHNob3VsZEJlVHlwZShfYSwgX3R5cGUpCisgICAgeworICAgICAgICB2YXIgZXhj
ZXB0aW9uOworICAgICAgICB2YXIgX2F2OworICAgICAgICB0cnkgeworICAgICAgICAgICAgX2F2
ID0gZXZhbChfYSk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIGV4Y2VwdGlv
biA9IGU7CisgICAgICAgIH0KKworICAgICAgICB2YXIgX3R5cGV2ID0gZXZhbChfdHlwZSk7Cisg
ICAgICAgIGlmIChfYXYgaW5zdGFuY2VvZiBfdHlwZXYpIHsKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CisgICAgfQorCisgICAgLy8gVmFsdWVzIHRoYXQgYXJlIHVzZWQgdG8gaW5mZXIgdGhlIHR5
cGUgb2YgYSBnaXZlbiBwcmltaXRpdmUgdHlwZS4KKyAgICB2YXIgdGVzdFZhbHVlcyA9IFsKKyAg
ICAgICAgdW5kZWZpbmVkLAorICAgICAgICBudWxsLAorICAgICAgICA1LCAvLyBJbnQKKyAgICAg
ICAgMCwKKyAgICAgICAgMSwKKyAgICAgICAgZmFsc2UsCisgICAgICAgIHRydWUsCisgICAgICAg
IDUuNSwgLy8gRG91YmxlCisgICAgICAgICJIZWxsbyxXb3JsZCEiLAorICAgICAgICAiIgorICAg
IF07CisKKyAgICAvLyBWYWx1ZXMgdGhhdCBhcmUgdXNlZCB0byBpbmZlciB0aGUgdHlwZSBvZiBh
IGdpdmVuIEJvb2xlYW4vU3RyaW5nIHR5cGUuCisgICAgdmFyIHRlc3RUeXBlVmFsdWVzID0gWwor
ICAgICAgICB7IGl0ZW06IG5ldyBCb29sZWFuKHRydWUpLCB0eXBlOiAiQm9vbGVhbiIsIHZhbHVl
OiB0cnVlIH0sCisgICAgICAgIHsgaXRlbTogbmV3IEJvb2xlYW4oZmFsc2UpLCB0eXBlOiAiQm9v
bGVhbiIsIHZhbHVlOiBmYWxzZSB9LAorICAgICAgICB7IGl0ZW06IG5ldyBTdHJpbmcoKSwgdHlw
ZTogIlN0cmluZyIsIHZhbHVlOiAiIiB9CisgICAgXTsKKworICAgIHZhciB0ZXN0Q3J5cHRvS2V5
c0FycmF5ID0gWworICAgICAgICBbIlJTQUVTLVBLQ1MxLXYxXzUiLCB7IG5hbWU6ICJSU0FFUy1Q
S0NTMS12MV81IiwgdHlwZTogInB1YmxpYyIsIHVzYWdlOiAiZW5jcnlwdCIgfV0sCisgICAgICAg
IFsiUlNBU1NBLVBLQ1MxLXYxXzUiLCB7IG5hbWU6ICJSU0FTU0EtUEtDUzEtdjFfNSIsIHR5cGU6
ICJwdWJsaWMiLCB1c2FnZTogInZlcmlmeSIgfV0sCisgICAgICAgIFsiUlNBLVBTUyIsIHsgbmFt
ZTogIlJTQS1QU1MiLCB0eXBlOiAicHJpdmF0ZSIsIHVzYWdlOiAic2lnbiIgfV0sCisgICAgICAg
IFsiUlNBLU9BRVAiLCB7IG5hbWU6ICJSU0EtT0FFUCIsIHR5cGU6ICJwcml2YXRlIiwgdXNhZ2U6
ICJkZWNyeXB0IiB9XSwKKyAgICAgICAgWyJFQ0RTQSIsIHsgbmFtZTogIkVDRFNBIiwgdHlwZTog
InByaXZhdGUiLCB1c2FnZTogInNpZ24iIH1dLAorICAgICAgICBbIkVDREgiLCB7IG5hbWU6ICJF
Q0RIIiwgdHlwZTogInB1YmxpYyIsIHVzYWdlOiBudWxsIH1dLAorICAgICAgICBbIkFFUy1DVFIi
LCB7IG5hbWU6ICJBRVMtQ1RSIiwgdHlwZTogInNlY3JldCIsIHVzYWdlOiAid3JhcEtleSIgfV0s
CisgICAgICAgIFsiQUVTLUNCQyIsIHsgbmFtZTogIkFFUy1DQkMiLCB0eXBlOiAic2VjcmV0Iiwg
dXNhZ2U6ICJ1bndyYXBLZXkiIH1dLAorICAgICAgICBbIkFFUy1HQ00iLCB7IG5hbWU6ICJBRVMt
R0NNIiwgdHlwZTogInNlY3JldCIsIHVzYWdlOiAiZW5jcnlwdCIgfV0sCisgICAgICAgIFsiQUVT
LUNGQi04IiwgeyBuYW1lOiAiQUVTLUNGQi04IiwgdHlwZTogInNlY3JldCIsIHVzYWdlOiAiZGVj
cnlwdCIgfV0sCisgICAgICAgIFsiQUVTLUtXIiwgeyBuYW1lOiAiQUVTLUtXIiwgdHlwZTogInNl
Y3JldCIsIHVzYWdlOiAid3JhcEtleSJ9XSwKKyAgICAgICAgWyJITUFDIiwgeyBuYW1lOiAiSE1B
QyIsIHR5cGU6ICJzZWNyZXQiLCB1c2FnZTogInNpZ24iIH1dLAorICAgICAgICBbIkhLREYiLCB7
IG5hbWU6ICJIS0RGIiwgdHlwZTogInNlY3JldCIsIHVzYWdlOiAiZGVyaXZlQml0cyIgfV0sCisg
ICAgICAgIFsiUEJLREYyIiwgeyBuYW1lOiAiUEJLREYyIiwgdHlwZTogInNlY3JldCIsIHVzYWdl
OiAiZGVyaXZlS2V5IiB9XSwKKyAgICBdOworICAgIHZhciB0ZXN0Q3J5cHRvS2V5c01hcCA9IG5l
dyBNYXAodGVzdENyeXB0b0tleXNBcnJheSk7CisKKyAgICB2YXIgb3BlblJlcXVlc3QgPSBpbmRl
eGVkREIub3BlbigiYmFja3dhcmRfY29tcGF0aWJpbGl0eSIpOworICAgIG9wZW5SZXF1ZXN0Lm9u
ZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBsb2coIkVycm9yOiAiICsgZXZlbnQu
dGFyZ2V0LmVycm9yLm5hbWUpOworICAgIH0KKyAgICBvcGVuUmVxdWVzdC5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAg
ICAgIHJlYWRUeXBlKCk7CisgICAgfQorCisgICAgdmFyIHJlc3VsdCA9IHRydWU7CisgICAgZnVu
Y3Rpb24gcmVhZFR5cGUoKQorICAgIHsKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJh
bnNhY3Rpb24oInR5cGUiKS5vYmplY3RTdG9yZSgidHlwZSIpOworICAgICAgICBvYmplY3RTdG9y
ZS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAg
IGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBpZiAoY3Vyc29yKSB7
CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHNob3VsZEJlVHlwZSgiY3Vyc29y
LnZhbHVlIiwgY3Vyc29yLmtleSk7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7
CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICByZWFkVmFsdWUoKTsKKyAgICAg
ICAgfTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZWFkVmFsdWUoKQorICAgIHsKKyAgICAgICAg
dmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oInZhbHVlIikub2JqZWN0U3RvcmUoInZh
bHVlIik7CisgICAgICAgIG9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbihldmVudCkgeworICAgICAgICAgICAgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsK
KyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1
bHQgJiYgKGN1cnNvci52YWx1ZSA9PT0gdGVzdFZhbHVlc1tjdXJzb3Iua2V5IC0gMV0pOworICAg
ICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgcmVhZFR5cGVWYWx1ZSgpOworICAgICAgICB9OworICAgIH0KKworICAgIGZ1
bmN0aW9uIHJlYWRUeXBlVmFsdWUoKQorICAgIHsKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0g
ZGIudHJhbnNhY3Rpb24oInR5cGVWYWx1ZSIpLm9iamVjdFN0b3JlKCJ0eXBlVmFsdWUiKTsKKyAg
ICAgICAgb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50
KSB7CisgICAgICAgICAgICBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAg
ICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBzaG91
bGRCZVR5cGUoImN1cnNvci52YWx1ZSIsIHRlc3RUeXBlVmFsdWVzW2N1cnNvci5rZXkgLSAxXS50
eXBlKSAmJiAoY3Vyc29yLnZhbHVlID09IHRlc3RUeXBlVmFsdWVzW2N1cnNvci5rZXkgLSAxXS52
YWx1ZSk7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgIHJlYWRDcnlwdG9LZXkoKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZWFkQ3J5cHRvS2V5KCkKKyAgICB7
CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCJjcnlwdG9LZXkiKS5v
YmplY3RTdG9yZSgiY3J5cHRvS2V5Iik7CisgICAgICAgIG9iamVjdFN0b3JlLm9wZW5DdXJzb3Io
KS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgY3Vyc29yID0gZXZl
bnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAg
ICAgICB2YXIgcmVmZXJlbmNlID0gdGVzdENyeXB0b0tleXNNYXAuZ2V0KGN1cnNvci5rZXkpOwor
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAocmVmZXJlbmNlLm5hbWUgPSBjdXJz
b3IudmFsdWUuYWxnb3JpdGhtLm5hbWUpICYmIChyZWZlcmVuY2UudHlwZSA9PSBjdXJzb3IudmFs
dWUudHlwZSkgJiYgKHJlZmVyZW5jZS51c2FnZSA9PSBjdXJzb3IudmFsdWUudXNhZ2VzWzBdKTsK
KyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJQ
YXNzIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBsb2coIkZh
aWwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9Cis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkJh
Y2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0ZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjVlZTYxYWU2NDY5MDViYTVmMmMyOGJlOWVlNGYzNjJmZDUyNzRmMTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRl
eGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0ZS5odG1sCkBAIC0wLDAgKzEsMjU1IEBACis8
c2NyaXB0PgorICAgIGZ1bmN0aW9uIGxvZyhtc2cpCisgICAgeworICAgICAgICBhbGVydChtc2cp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHNob3VsZEJlVHlwZShfYSwgX3R5cGUpCisgICAgewor
ICAgICAgICB2YXIgZXhjZXB0aW9uOworICAgICAgICB2YXIgX2F2OworICAgICAgICB0cnkgewor
ICAgICAgICAgICAgX2F2ID0gZXZhbChfYSk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAg
ICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgICAgIH0KKworICAgICAgICB2YXIgX3R5cGV2ID0g
ZXZhbChfdHlwZSk7CisgICAgICAgIGlmIChfYXYgaW5zdGFuY2VvZiBfdHlwZXYpIHsKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVmFsdWVzIHRoYXQgYXJlIHVzZWQg
dG8gaW5mZXIgdGhlIHR5cGUgb2YgYSBnaXZlbiBwcmltaXRpdmUgdHlwZS4KKyAgICB2YXIgdGVz
dFZhbHVlcyA9IFsKKyAgICAgICAgdW5kZWZpbmVkLAorICAgICAgICBudWxsLAorICAgICAgICA1
LCAvLyBJbnQKKyAgICAgICAgMCwKKyAgICAgICAgMSwKKyAgICAgICAgZmFsc2UsCisgICAgICAg
IHRydWUsCisgICAgICAgIDUuNSwgLy8gRG91YmxlCisgICAgICAgICJIZWxsbyxXb3JsZCEiLAor
ICAgICAgICAiIgorICAgIF07CisKKyAgICAvLyBWYWx1ZXMgdGhhdCBhcmUgdXNlZCB0byBpbmZl
ciB0aGUgdHlwZSBvZiBhIGdpdmVuIEJvb2xlYW4vU3RyaW5nIHR5cGUuCisgICAgdmFyIHRlc3RU
eXBlVmFsdWVzID0gWworICAgICAgICB7IGl0ZW06IG5ldyBCb29sZWFuKHRydWUpLCB0eXBlOiAi
Qm9vbGVhbiIsIHZhbHVlOiB0cnVlIH0sCisgICAgICAgIHsgaXRlbTogbmV3IEJvb2xlYW4oZmFs
c2UpLCB0eXBlOiAiQm9vbGVhbiIsIHZhbHVlOiBmYWxzZSB9LAorICAgICAgICB7IGl0ZW06IG5l
dyBTdHJpbmcoKSwgdHlwZTogIlN0cmluZyIsIHZhbHVlOiAiIiB9CisgICAgXTsKKworICAgIHZh
ciB0ZXN0Q3J5cHRvS2V5c0FycmF5ID0gWworICAgICAgICBbIlJTQUVTLVBLQ1MxLXYxXzUiLCB7
IG5hbWU6ICJSU0FFUy1QS0NTMS12MV81IiwgdHlwZTogInB1YmxpYyIsIHVzYWdlOiAiZW5jcnlw
dCIgfV0sCisgICAgICAgIFsiUlNBU1NBLVBLQ1MxLXYxXzUiLCB7IG5hbWU6ICJSU0FTU0EtUEtD
UzEtdjFfNSIsIHR5cGU6ICJwdWJsaWMiLCB1c2FnZTogInZlcmlmeSIgfV0sCisgICAgICAgIFsi
UlNBLVBTUyIsIHsgbmFtZTogIlJTQS1QU1MiLCB0eXBlOiAicHJpdmF0ZSIsIHVzYWdlOiAic2ln
biIgfV0sCisgICAgICAgIFsiUlNBLU9BRVAiLCB7IG5hbWU6ICJSU0EtT0FFUCIsIHR5cGU6ICJw
cml2YXRlIiwgdXNhZ2U6ICJkZWNyeXB0IiB9XSwKKyAgICAgICAgWyJFQ0RTQSIsIHsgbmFtZTog
IkVDRFNBIiwgdHlwZTogInByaXZhdGUiLCB1c2FnZTogInNpZ24iIH1dLAorICAgICAgICBbIkVD
REgiLCB7IG5hbWU6ICJFQ0RIIiwgdHlwZTogInB1YmxpYyIsIHVzYWdlOiBudWxsIH1dLAorICAg
ICAgICBbIkFFUy1DVFIiLCB7IG5hbWU6ICJBRVMtQ1RSIiwgdHlwZTogInNlY3JldCIsIHVzYWdl
OiAid3JhcEtleSIgfV0sCisgICAgICAgIFsiQUVTLUNCQyIsIHsgbmFtZTogIkFFUy1DQkMiLCB0
eXBlOiAic2VjcmV0IiwgdXNhZ2U6ICJ1bndyYXBLZXkiIH1dLAorICAgICAgICBbIkFFUy1HQ00i
LCB7IG5hbWU6ICJBRVMtR0NNIiwgdHlwZTogInNlY3JldCIsIHVzYWdlOiAiZW5jcnlwdCIgfV0s
CisgICAgICAgIFsiQUVTLUNGQi04IiwgeyBuYW1lOiAiQUVTLUNGQi04IiwgdHlwZTogInNlY3Jl
dCIsIHVzYWdlOiAiZGVjcnlwdCIgfV0sCisgICAgICAgIFsiQUVTLUtXIiwgeyBuYW1lOiAiQUVT
LUtXIiwgdHlwZTogInNlY3JldCIsIHVzYWdlOiAid3JhcEtleSJ9XSwKKyAgICAgICAgWyJITUFD
IiwgeyBuYW1lOiAiSE1BQyIsIHR5cGU6ICJzZWNyZXQiLCB1c2FnZTogInNpZ24iIH1dLAorICAg
ICAgICBbIkhLREYiLCB7IG5hbWU6ICJIS0RGIiwgdHlwZTogInNlY3JldCIsIHVzYWdlOiAiZGVy
aXZlQml0cyIgfV0sCisgICAgICAgIFsiUEJLREYyIiwgeyBuYW1lOiAiUEJLREYyIiwgdHlwZTog
InNlY3JldCIsIHVzYWdlOiAiZGVyaXZlS2V5IiB9XSwKKyAgICBdOworICAgIHZhciB0ZXN0Q3J5
cHRvS2V5c01hcCA9IG5ldyBNYXAodGVzdENyeXB0b0tleXNBcnJheSk7CisKKyAgICBpbmRleGVk
REIuZGVsZXRlRGF0YWJhc2UoImJhY2t3YXJkX2NvbXBhdGliaWxpdHkiKTsKKyAgICB2YXIgb3Bl
blJlcXVlc3QgPSBpbmRleGVkREIub3BlbigiYmFja3dhcmRfY29tcGF0aWJpbGl0eSIpOworICAg
IG9wZW5SZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAg
IC8vIFRoaXMgb2JqZWN0U3RvcmUgc3RvcmVzIGVsZW1lbnRzIHRoYXQgd2Ugb25seSBuZWVkIHRv
IGNoZWNrIGl0cyB0eXBlIHRvIGRldGVybWluZSBpdHMgc2VyaWFsaXphdGlvbiB0YWcuCisgICAg
ICAgIHZhciBvYmplY3RTdG9yZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3Rv
cmUoInR5cGUiKTsKKyAgICAgICAgLy8gVGhpcyBvYmplY3RTdG9yZSBzdG9yZXMgZWxlbWVudHMg
dGhhdCB3ZSBuZWVkIHRvIGNoZWNrIGl0cyB2YWx1ZSB0byBkZXRlcm1pbmUgaXRzIHNlcmlhbGl6
YXRpb24gdGFnLgorICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBldmVudC50YXJnZXQucmVzdWx0
LmNyZWF0ZU9iamVjdFN0b3JlKCJ2YWx1ZSIsIHsgYXV0b0luY3JlbWVudCA6IHRydWUgfSk7Cisg
ICAgICAgIC8vIFRoaXMgb2JqZWN0U3RvcmUgc3RvcmVzIGVsZW1lbnRzIHRoYXQgd2UgbmVlZCB0
byBjaGVjayBib3RoIGl0cyB0eXBlIGFuZCBpdHMgdmFsdWUgdG8gZGV0ZXJtaW5lIGl0cyBzZXJp
YWxpemF0aW9uIHRhZy4KKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZXZlbnQudGFyZ2V0LnJl
c3VsdC5jcmVhdGVPYmplY3RTdG9yZSgidHlwZVZhbHVlIiwgeyBhdXRvSW5jcmVtZW50IDogdHJ1
ZSB9KTsKKyAgICAgICAgLy8gVGhpcyBPYmplY3RTdG9yZSBzdG9yZXMgY3J5cHRvIGtleXMgd2hp
Y2ggcmVxdWlyZSBmZXcgbW9yZSBzdGVwcyB0byBkZXRlcm1pbmUgaXRzIHNlcmlhbGl6YXRpb24g
dGFnLgorICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBldmVudC50YXJnZXQucmVzdWx0LmNyZWF0
ZU9iamVjdFN0b3JlKCJjcnlwdG9LZXkiLCB7IGtleVBhdGg6ICJhbGdvcml0aG0ubmFtZSIgfSk7
CisgICAgfQorICAgIG9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeworICAg
ICAgICBsb2coIkVycm9yOiAiICsgZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUpOworICAgIH0KKyAg
ICBvcGVuUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBkYiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHN0b3JlVHlwZSgpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIHN0b3JlVHlwZSgpCisgICAgeworICAgICAgICB2YXIgdHJhbnNhY3Rpb24gPSBk
Yi50cmFuc2FjdGlvbigidHlwZSIsICJyZWFkd3JpdGUiKTsKKyAgICAgICAgdHJhbnNhY3Rpb24u
b25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBsb2coIkVycm9yOiAiICsg
ZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUpOworICAgICAgICB9CisgICAgICAgIHRyYW5zYWN0aW9u
Lm9uY29tcGxldGUgPSBmdW5jdGlvbihldmVudCkgeyBzdG9yZVZhbHVlKCk7IH0KKworICAgICAg
ICB2YXIgb2JqZWN0U3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgidHlwZSIpOworICAg
ICAgICAvLyBUaGUga2V5IG9mIGFuIGl0ZW0gaXMgdGhlIHR5cGUgb2YgaXRzIHZhbHVlLCBoZW5j
ZSB3ZSBjb3VsZCBkZXRlcm1pbmUgdHlwZSBtaXNtYXRjaCwgaS5lLiBzZXJpYWxpemF0aW9uIHRh
ZyByZW9yZGVyCisgICAgICAgIC8vIHNpbXBseSBieSB1c2luZyBhbiBpdGVtJ3Mga2V5IGFuZCB2
YWx1ZS4KKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKFsxLCAyXSwgIkFycmF5Iik7CisgICAgICAg
IG9iamVjdFN0b3JlLmFkZCh7IHByb3BlcnR5OiBudWxsIH0sICJPYmplY3QiKTsKKyAgICAgICAg
b2JqZWN0U3RvcmUuYWRkKG5ldyBEYXRlKCksICJEYXRlIik7CisgICAgICAgIG9iamVjdFN0b3Jl
LmFkZChuZXcgRmlsZShbImZvbyJdLCAiZm9vLnR4dCIpLCAiRmlsZSIpOworICAgICAgICBvYmpl
Y3RTdG9yZS5hZGQobmV3IEltYWdlRGF0YSgxMDAsIDEwMCksICJJbWFnZURhdGEiKTsKKyAgICAg
ICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBCbG9iKFsiZm9vIl0pLCAiQmxvYiIpOworICAgICAgICBv
YmplY3RTdG9yZS5hZGQobmV3IFJlZ0V4cCgnJyksICJSZWdFeHAiKTsKKyAgICAgICAgb2JqZWN0
U3RvcmUuYWRkKG5ldyBBcnJheUJ1ZmZlcigxKSwgIkFycmF5QnVmZmVyIik7CisgICAgICAgIG9i
amVjdFN0b3JlLmFkZChuZXcgU3RyaW5nKCcnKSwgIlN0cmluZyIpOworICAgICAgICBvYmplY3RT
dG9yZS5hZGQobmV3IE51bWJlcigxMiksICJOdW1iZXIiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUu
YWRkKG5ldyBTZXQoWzEsIDJdKSwgIlNldCIpOworICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3
IE1hcCgpLCAiTWFwIik7CisgICAgICAgIC8vIFR5cGVkIGFycmF5cworICAgICAgICBvYmplY3RT
dG9yZS5hZGQobmV3IEludDhBcnJheSgpLCAiSW50OEFycmF5Iik7CisgICAgICAgIG9iamVjdFN0
b3JlLmFkZChuZXcgVWludDhBcnJheSgpLCAiVWludDhBcnJheSIpOworICAgICAgICBvYmplY3RT
dG9yZS5hZGQobmV3IFVpbnQ4Q2xhbXBlZEFycmF5KCksICJVaW50OENsYW1wZWRBcnJheSIpOwor
ICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IEludDE2QXJyYXkoKSwgIkludDE2QXJyYXkiKTsK
KyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBVaW50MTZBcnJheSgpLCAiVWludDE2QXJyYXki
KTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBJbnQzMkFycmF5KCksICJJbnQzMkFycmF5
Iik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgVWludDMyQXJyYXkoKSwgIlVpbnQzMkFy
cmF5Iik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgRmxvYXQzMkFycmF5KCksICJGbG9h
dDMyQXJyYXkiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBGbG9hdDY0QXJyYXkoKSwg
IkZsb2F0NjRBcnJheSIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0b3JlVmFsdWUoKQorICAg
IHsKKyAgICAgICAgdmFyIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oInZhbHVlIiwgInJl
YWR3cml0ZSIpOworICAgICAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICAgICAgICAgIGxvZygiRXJyb3I6ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7
CisgICAgICAgIH0KKyAgICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGV2
ZW50KSB7IHN0b3JlVHlwZVZhbHVlKCk7IH0KKworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSB0
cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgidmFsdWUiKTsKKyAgICAgICAgLy8gSGVyZSB3ZSBzdG9y
ZSB2YWx1ZXMgaW4gdGhlIHRlc3QgbWF0cml4IGluIG9yZGVyIGFuZCByZWFkIHRoZW0gaW4gb3Jk
ZXIgdG8gc2VlIGlmIGFueSBtaXNtYXRjaCBoYXBwZW5zLgorICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHRlc3RWYWx1ZXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmplY3RTdG9yZS5h
ZGQodGVzdFZhbHVlc1tpXSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RvcmVUeXBlVmFsdWUo
KQorICAgIHsKKyAgICAgICAgdmFyIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oInR5cGVW
YWx1ZSIsICJyZWFkd3JpdGUiKTsKKyAgICAgICAgdHJhbnNhY3Rpb24ub25lcnJvciA9IGZ1bmN0
aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBsb2coIkVycm9yOiAiICsgZXZlbnQudGFyZ2V0LmVy
cm9yLm5hbWUpOworICAgICAgICB9CisgICAgICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBm
dW5jdGlvbihldmVudCkgeyBzdG9yZUNyeXB0b0tleSgpOyB9CisKKyAgICAgICAgdmFyIG9iamVj
dFN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoInR5cGVWYWx1ZSIpOworICAgICAgICAv
LyBIZXJlIHdlIHN0b3JlIGl0ZW1zIGluIHRoZSB0ZXN0IG1hdHJpeCBpbiBvcmRlciBhbmQgcmVh
ZCB0aGVtIGluIG9yZGVyIHRvIHNlZSBpZiBhbnkgbWlzbWF0Y2hlcyBpdHMgdHlwZSBhbmQgdmFs
dWUuCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdFR5cGVWYWx1ZXMubGVuZ3RoOyBp
KyspCisgICAgICAgICAgICBvYmplY3RTdG9yZS5hZGQodGVzdFR5cGVWYWx1ZXNbaV0uaXRlbSk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RvcmVDcnlwdG9LZXkoKQorICAgIHsKKyAgICAgICAg
Ly8gSGVyZSB3ZSBnYXRoZXIgYWxsIHRoZSBDcnlwdG9LZXkgb2JqZWN0cworICAgICAgICB2YXIg
cHJvbWlzZXMgPSBbIF07CisgICAgICAgIHByb21pc2VzLnB1c2goY3J5cHRvLnN1YnRsZS5nZW5l
cmF0ZUtleSh7IG5hbWU6ICJSU0FFUy1QS0NTMS12MV81IiwgbW9kdWx1c0xlbmd0aDogMjA0OCwg
cHVibGljRXhwb25lbnQ6IG5ldyBVaW50OEFycmF5KFsweDAxLCAweDAwLCAweDAxXSl9LCB0cnVl
LCBbImRlY3J5cHQiLCAiZW5jcnlwdCJdKSk7CisgICAgICAgIHByb21pc2VzLnB1c2goY3J5cHRv
LnN1YnRsZS5nZW5lcmF0ZUtleSh7IG5hbWU6ICJSU0FTU0EtUEtDUzEtdjFfNSIsIG1vZHVsdXNM
ZW5ndGg6IDIwNDgsIHB1YmxpY0V4cG9uZW50OiBuZXcgVWludDhBcnJheShbMHgwMSwgMHgwMCwg
MHgwMV0pLCBoYXNoOiAic2hhLTEiIH0sIHRydWUsIFsic2lnbiIsICJ2ZXJpZnkiXSkpOworICAg
ICAgICBwcm9taXNlcy5wdXNoKGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoeyBuYW1lOiAiUlNB
LVBTUyIsIG1vZHVsdXNMZW5ndGg6IDIwNDgsIHB1YmxpY0V4cG9uZW50OiBuZXcgVWludDhBcnJh
eShbMHgwMSwgMHgwMCwgMHgwMV0pLCBoYXNoOiAic2hhLTEiIH0sIHRydWUsIFsic2lnbiIsICJ2
ZXJpZnkiXSkpOworICAgICAgICBwcm9taXNlcy5wdXNoKGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVL
ZXkoeyBuYW1lOiAiUlNBLU9BRVAiLCBtb2R1bHVzTGVuZ3RoOiAyMDQ4LCBwdWJsaWNFeHBvbmVu
dDogbmV3IFVpbnQ4QXJyYXkoWzB4MDEsIDB4MDAsIDB4MDFdKSwgaGFzaDogInNoYS0xIiB9LCB0
cnVlLCBbImRlY3J5cHQiLCAiZW5jcnlwdCJdKSk7CisgICAgICAgIHByb21pc2VzLnB1c2goY3J5
cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7IG5hbWU6ICJFQ0RTQSIsIG5hbWVkQ3VydmU6ICJQLTI1
NiIgfSwgdHJ1ZSwgWyJzaWduIiwgInZlcmlmeSJdKSk7CisgICAgICAgIHByb21pc2VzLnB1c2go
Y3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7IG5hbWU6ICJFQ0RIIiwgbmFtZWRDdXJ2ZTogIlAt
MjU2IiB9LCB0cnVlLCBbImRlcml2ZUJpdHMiXSkpOworICAgICAgICBwcm9taXNlcy5wdXNoKGNy
eXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoeyBuYW1lOiAiYWVzLWN0ciIsIGxlbmd0aDogMTI4IH0s
IHRydWUsIFsid3JhcEtleSJdKSk7CisgICAgICAgIHByb21pc2VzLnB1c2goY3J5cHRvLnN1YnRs
ZS5nZW5lcmF0ZUtleSh7IG5hbWU6ICJhZXMtY2JjIiwgbGVuZ3RoOiAxMjggfSwgdHJ1ZSwgWyJ1
bndyYXBLZXkiXSkpOworICAgICAgICBwcm9taXNlcy5wdXNoKGNyeXB0by5zdWJ0bGUuZ2VuZXJh
dGVLZXkoeyBuYW1lOiAiYWVzLWdjbSIsIGxlbmd0aDogMTI4IH0sIHRydWUsIFsiZW5jcnlwdCJd
KSk7CisgICAgICAgIHByb21pc2VzLnB1c2goY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7IG5h
bWU6ICJhZXMtY2ZiLTgiLCBsZW5ndGg6IDEyOCB9LCB0cnVlLCBbImRlY3J5cHQiXSkpOworICAg
ICAgICBwcm9taXNlcy5wdXNoKGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoeyBuYW1lOiAiYWVz
LWt3IiwgbGVuZ3RoOiAxMjggfSwgdHJ1ZSwgWyJ3cmFwS2V5Il0pKTsKKyAgICAgICAgcHJvbWlz
ZXMucHVzaChjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHsgbmFtZTogImhtYWMiLCBoYXNoOiAi
c2hhLTEiIH0sIHRydWUsIFsic2lnbiJdKSk7CisgICAgICAgIHByb21pc2VzLnB1c2goY3J5cHRv
LnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIG5ldyBVaW50OEFycmF5KDE2KSwgeyBuYW1lOiAiSEtE
RiIgfSwgZmFsc2UsIFsiZGVyaXZlQml0cyJdKSk7CisgICAgICAgIHByb21pc2VzLnB1c2goY3J5
cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIG5ldyBVaW50OEFycmF5KDE2KSwgeyBuYW1lOiAi
UEJLREYyIiB9LCBmYWxzZSwgWyJkZXJpdmVLZXkiXSkpOworCisgICAgICAgIFByb21pc2UuYWxs
KHByb21pc2VzKS50aGVuKGtleXMgPT4geworICAgICAgICAgICAgdmFyIHRyYW5zYWN0aW9uID0g
ZGIudHJhbnNhY3Rpb24oImNyeXB0b0tleSIsICJyZWFkd3JpdGUiKTsKKyAgICAgICAgICAgIHRy
YW5zYWN0aW9uLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgICAgIGxv
ZygiRXJyb3I6ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZlbnQpIHsgcmVh
ZFR5cGUoKTsgfQorCisgICAgICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSB0cmFuc2FjdGlvbi5v
YmplY3RTdG9yZSgiY3J5cHRvS2V5Iik7CisgICAgICAgICAgICAvLyBIZXJlIHdlIHN0b3JlIGFs
bCB0aGUgbmVjZXNzYXJ5IENyeXB0b0tleXMuIE5vdGVzIHRoYXQgc29tZSBmdW5jdGlvbnMgd2ls
bCByZXR1cm4gQ3J5cHRvS2V5UGFpci4KKyAgICAgICAgICAgIC8vIEluIHRob3NlIGNhc2VzLCB3
ZSBuZWVkIHRvIGRlY2lkZSB3aGV0aGVyIHdlIG5lZWQgdGhlIHB1YmxpYyBvciB0aGUgcHJpdmF0
ZSBrZXkuCisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKysp
IHsKKyAgICAgICAgICAgICAgICBpZiAoa2V5c1tpXSBpbnN0YW5jZW9mIENyeXB0b0tleSkKKyAg
ICAgICAgICAgICAgICAgICAgb2JqZWN0U3RvcmUuYWRkKGtleXNbaV0pOworICAgICAgICAgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoa2V5c1tpXS5wdWJsaWNLZXkuYWxn
b3JpdGhtLm5hbWUgPT0gIlJTQUVTLVBLQ1MxLXYxXzUiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgb2JqZWN0U3RvcmUuYWRkKGtleXNbaV0ucHVibGljS2V5KTsKKyAgICAgICAgICAgICAgICAg
ICAgZWxzZSBpZiAoa2V5c1tpXS5wdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUgPT0gIlJTQVNTQS1Q
S0NTMS12MV81IikKKyAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdFN0b3JlLmFkZChrZXlz
W2ldLnB1YmxpY0tleSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGtleXNbaV0ucHVi
bGljS2V5LmFsZ29yaXRobS5uYW1lID09ICJSU0EtUFNTIikKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG9iamVjdFN0b3JlLmFkZChrZXlzW2ldLnByaXZhdGVLZXkpOworICAgICAgICAgICAgICAg
ICAgICBlbHNlIGlmIChrZXlzW2ldLnB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSA9PSAiUlNBLU9B
RVAiKQorICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0U3RvcmUuYWRkKGtleXNbaV0ucHJp
dmF0ZUtleSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGtleXNbaV0ucHVibGljS2V5
LmFsZ29yaXRobS5uYW1lID09ICJFQ0RTQSIpCisgICAgICAgICAgICAgICAgICAgICAgICBvYmpl
Y3RTdG9yZS5hZGQoa2V5c1tpXS5wcml2YXRlS2V5KTsKKyAgICAgICAgICAgICAgICAgICAgZWxz
ZSBpZiAoa2V5c1tpXS5wdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUgPT0gIkVDREgiKQorICAgICAg
ICAgICAgICAgICAgICAgICAgb2JqZWN0U3RvcmUuYWRkKGtleXNbaV0ucHVibGljS2V5KTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAg
IHZhciByZXN1bHQgPSB0cnVlOworICAgIGZ1bmN0aW9uIHJlYWRUeXBlKCkKKyAgICB7CisgICAg
ICAgIHZhciBvYmplY3RTdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCJ0eXBlIikub2JqZWN0U3RvcmUo
InR5cGUiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0
OworICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiBzaG91bGRCZVR5cGUoImN1cnNvci52YWx1ZSIsIGN1cnNvci5rZXkpOworICAgICAg
ICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICAgICAgcmVhZFZhbHVlKCk7CisgICAgICAgIH07CisgICAgfQorCisgICAgZnVuY3Rpb24g
cmVhZFZhbHVlKCkKKyAgICB7CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGRiLnRyYW5zYWN0
aW9uKCJ2YWx1ZSIpLm9iamVjdFN0b3JlKCJ2YWx1ZSIpOworICAgICAgICBvYmplY3RTdG9yZS5v
cGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGN1
cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBpZiAoY3Vyc29yKSB7Cisg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIChjdXJzb3IudmFsdWUgPT09IHRlc3RW
YWx1ZXNbY3Vyc29yLmtleSAtIDFdKTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUo
KTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHJlYWRUeXBlVmFsdWUoKTsK
KyAgICAgICAgfTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZWFkVHlwZVZhbHVlKCkKKyAgICB7
CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCJ0eXBlVmFsdWUiKS5v
YmplY3RTdG9yZSgidHlwZVZhbHVlIik7CisgICAgICAgIG9iamVjdFN0b3JlLm9wZW5DdXJzb3Io
KS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgY3Vyc29yID0gZXZl
bnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAg
ICAgICByZXN1bHQgPSByZXN1bHQgJiYgc2hvdWxkQmVUeXBlKCJjdXJzb3IudmFsdWUiLCB0ZXN0
VHlwZVZhbHVlc1tjdXJzb3Iua2V5IC0gMV0udHlwZSkgJiYgKGN1cnNvci52YWx1ZSA9PSB0ZXN0
VHlwZVZhbHVlc1tjdXJzb3Iua2V5IC0gMV0udmFsdWUpOworICAgICAgICAgICAgICAgIGN1cnNv
ci5jb250aW51ZSgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZWFk
Q3J5cHRvS2V5KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCisgICAgZnVu
Y3Rpb24gcmVhZENyeXB0b0tleSgpCisgICAgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBk
Yi50cmFuc2FjdGlvbigiY3J5cHRvS2V5Iikub2JqZWN0U3RvcmUoImNyeXB0b0tleSIpOworICAg
ICAgICBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICAgICAgICAgIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAg
ICBpZiAoY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgdmFyIHJlZmVyZW5jZSA9IHRlc3RDcnlw
dG9LZXlzTWFwLmdldChjdXJzb3Iua2V5KTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHJlZmVyZW5jZS5uYW1lID0gY3Vyc29yLnZhbHVlLmFsZ29yaXRobS5uYW1lKSAmJiAo
cmVmZXJlbmNlLnR5cGUgPT0gY3Vyc29yLnZhbHVlLnR5cGUpICYmIChyZWZlcmVuY2UudXNhZ2Ug
PT0gY3Vyc29yLnZhbHVlLnVzYWdlc1swXSk7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRp
bnVlKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQp
CisgICAgICAgICAgICAgICAgICAgIGxvZygiUGFzcyIpOworICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgbG9nKCJGYWlsIik7CisgICAgICAgICAgICB9CisgICAgICAg
IH07CisgICAgfQorPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315291</attachid>
            <date>2017-07-12 15:50:56 -0700</date>
            <delta_ts>2017-07-12 15:56:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173998-20170712155105.patch</filename>
            <type>text/plain</type>
            <size>47151</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5MzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDgzZTM0ZThjNzViMDE1
ZTE4OTBkOTBhMTllNjIxNWY1MDg5YmEyYS4uYjE1NmYyMjA4OGU2MmNkMTc1ZTc5NWQxZGU2MTIz
NzhjOGZmNzY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA2LTMwICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW5kZXhlZERCOiBlbnN1
cmUgaXRzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mzk5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZXMgb2YgYmVoYXZpb3IuCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICBBZGQgYSBj
b21tZW50LgorCiAyMDE3LTA3LTExICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjE5MDQ1KTogVGhlIDxib2R5PiBlbGVt
ZW50IGRvZXMgbm90IGdldCByZXBhaW50ZWQgd2hlbiBpdHMgYmFja2dyb3VuZCBpbWFnZSBmaW5p
c2hlcyBkZWNvZGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXggNWQ4Y2U3OGFmNWZhNDhkZjJmYzc4YmNiYzNiODc1
NGZlYjEzY2UwZS4uMjg2Y2NmYzdkOGFmMjdjM2E1NzAyNmYxZDVlNTRiMDdjYmUyNDNkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFs
dWUuY3BwCkBAIC0xMTcsNiArMTE3LDcgQEAgZW51bSBXYWxrZXJTdGF0ZSB7IFN0YXRlVW5rbm93
biwgQXJyYXlTdGFydFN0YXRlLCBBcnJheVN0YXJ0VmlzaXRNZW1iZXIsIEFycmF5RW4KICAgICBT
ZXREYXRhU3RhcnRWaXNpdEVudHJ5LCBTZXREYXRhRW5kVmlzaXRLZXkgfTsKIAogLy8gVGhlc2Ug
Y2FuJ3QgYmUgcmVvcmRlcmVkLCBhbmQgYW55IG5ldyB0eXBlcyBtdXN0IGJlIGFkZGVkIHRvIHRo
ZSBlbmQgb2YgdGhlIGxpc3QKKy8vIFdobyBlZGl0cyB0aGlzIGxpc3QsIHBsZWFzZSB0ZWFjaCBJ
bmRleGVkREIuQmFja3dhcmRDb21wYXRpYmlsaXR5IEFQSSB0ZXN0IHRvIGxlYXJuIHRoZSBuZXcg
c3R1ZmYuCiBlbnVtIFNlcmlhbGl6YXRpb25UYWcgewogICAgIEFycmF5VGFnID0gMSwKICAgICBP
YmplY3RUYWcgPSAyLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGMzOWQyNGY2NDgxN2Q0YWU1NDEyMGNlMWE4Y2RjZWQ2NzY0ZjkxZDQuLjU0MWJj
ZGYyMTc4NmZhZjA0YzA4ZDBmZDBlNDY3MDhjZTY5NTQyMGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxNy0wNi0z
MCAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIEluZGV4ZWRE
QjogZW5zdXJlIGl0cyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzM5OTgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIHRlc3QgaXMgY29tcG9zZWQgdG8gZW5zdXJl
IEluZGV4ZWREQidzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIFRoZSB3YXkgaXQgd29ya3MgaXMg
dG8KKyAgICAgICAgcmVhZCBmcm9tIGEgcHJlLWJha2VkIGRhdGFiYXNlIGFuZCBzZWUgaWYgYWxs
IHRoZSB2YWx1ZXMgYXJlIG1hdGNoZWQgd2l0aCB0aGUgZXhwZWN0YXRpb25zLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFj
a3dhcmRDb21wYXRpYmlsaXR5Lm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnJ1
bkphdmFTY3JpcHRBbGVydCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25SZXNwb25zZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpjb3B5V2Vi
Q3J5cHRvTWFzdGVyS2V5KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICBIZXJlIGlzIHRoZSBBUEkgdGVzdCB0aGF0IG1vdmVzIHRoZSBwcmUtYmFrZWQgZGF0YWJhc2Ug
dG8gdGhlIGxvY2F0aW9uIHdoZXJlIFRlc3RXZWJLaXRBUEkgY2FuIHJlYWQgZnJvbSwKKyAgICAg
ICAgYW5kIGRlY3J5cHRzIENyeXB0b0tleSBzZXJpYWxpemVkIGJpbmFyaWVzIHdpdGggYSBoYXJk
IGNvZGVkIG1hc3RlciBrZXkgd2hpY2ggd2FzIHVzZWQgdG8gZW5jcnlwdCB0aGUgZGF0YS4KKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJCYWNrd2Fy
ZENvbXBhdGliaWxpdHkuc3FsaXRlMzogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMt
c2htOiBBZGRlZC4KKyAgICAgICAgVGhlc2UgYXJlIHRoZSBwcmUtYmFrZWQgZGF0YWJhc2VzLgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkJhY2t3
YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbDogQWRkZWQuCisgICAgICAgIFRoaXMgaXMgdGhlIGFj
dHVhbCB0ZXN0IHRoYXQgZG8gYWxsIHRoZSByZWFkcyBhbmQgY29tcGFyaXNvbnMuCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21w
YXRpYmlsaXR5V3JpdGUuaHRtbDogQWRkZWQuCisgICAgICAgIFRoaXMgaXMgdGhlIHBhZ2UgdGhh
dCBiYWtlcyB0aGUgZGF0YWJhc2UuIEl0IG5ldmVyIHJ1bnMgYXV0b21hdGljYWxseS4gSXQgaXMg
Zm9yIHNvbWVvbmUgd2hvIG5lZWRzIHRvIHRlYWNoCisgICAgICAgIEluZGV4ZWREQiBuZXcgc3R1
ZmZzLiBUaGVuIGl0IGNhbiBiZSB1c2VkIHRvIGJha2UgdGhlIGRhdGFiYXNlIGFnYWluLgorCiAy
MDE3LTA3LTExICBMdWNhcyBGb3JzY2hsZXIgIDxsZm9yc2NobGVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBUZWFjaCBidWlsZCB3b3JrZXJzIHRvIGZldGNoIGFyY2hpdmVzIGZyb20gUzMuCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGY2ODUwNjBjZWJmNTljNDY4ZjA5MmM5YmEzODVkZjM5NmI3
ZmI2OTEuLjdhNjNiZmY1NGRiNDM0ZDlhZmRiNGIwOGU5MGM5ZGRjYTc5MjdmZTAgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xOTksNiArMTk5LDExIEBACiAJCTU3MTRFQ0I5MUNBOEI1QjAw
MDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTC5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MTRFQ0I4MUNBOEI1ODgw
MDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTC5odG1sICovOyB9OwogCQk1NzE0
RUNCQjFDQThCRkU0MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3MTRFQ0JBMUNBOEJGRDEwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZy
YW1lLmh0bWwgKi87IH07CiAJCTU3MTRFQ0JEMUNBOEMyMkEwMDA1MUFDOCAvKiBEb3dubG9hZFJl
cXVlc3RPcmlnaW5hbFVSTDIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NzE0RUNCQzFDQThDMjE4MDAwNTFBQzggLyogRG93bmxvYWRS
ZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgKi87IH07CisJCTU3NTk5RTIxMUYwNzE5MTkwMEEzRkI4
QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUyMDFGMDcxOTE3MDBBM0ZCOEMgLyog
SW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tICovOyB9OworCQk1NzU5OUUyNzFGMDcx
QUEwMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1OTlF
MjQxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxp
dGUzICovOyB9OworCQk1NzU5OUUyODFGMDcxQUEwMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dh
cmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtc2htIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTk5RTI2MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRl
eGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0gKi87IH07CisJCTU3NTk5RTJB
MUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTc1OTlFMjUxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0
eVJlYWQuaHRtbCAqLzsgfTsKKwkJNTc1OTlFMkIxRjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4ZWRE
QkJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1OTlFMjMxRjA3MTkyQzAwQTNGQjhDIC8q
IEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwgKi87IH07CiAJCTU3NjlD
NTBCMUQ5QjAwMDIwMDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NjlDNTBBMUQ5QjAwMDEw
MDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSAqLzsgfTsKIAkJNTc5MDFGQjEx
Q0FGMTQyRDAwRUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJMUmVxdWVzdC5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3OTAxRkIwMUNBRjE0
MUMwMEVENjRGOSAvKiBMb2FkSW52YWxpZFVSTFJlcXVlc3QuaHRtbCAqLzsgfTsKIAkJNTc5N0ZF
MzExRUIxNUE2ODAwQjJGNEEwIC8qIE5hdmlnYXRpb25DbGllbnREZWZhdWx0Q3J5cHRvLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3OTdGRTJGMUVC
MTVBNUYwMEIyRjRBMCAvKiBOYXZpZ2F0aW9uQ2xpZW50RGVmYXVsdENyeXB0by5jcHAgKi87IH07
CkBAIC03NDMsNiArNzQ4LDEwIEBACiAJCQkJRjRBMzJFQzQxRjA1RjM4NTAwNDdDNTQ0IC8qIGRy
YWdzdGFydC1jaGFuZ2Utc2VsZWN0aW9uLW9mZnNjcmVlbi5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCUY0QTMyRUNCMUYwNjQzMzcwMDQ3QzU0NCAvKiBjb250ZW50ZWRpdGFibGUtaW4t
aWZyYW1lLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjQ2OUZCMjQxRjAxODA0QjAw
NDAxNTM5IC8qIGNvbnRlbnRlZGl0YWJsZS1hbmQtdGFyZ2V0Lmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCisJCQkJNTc1OTlFMjcxRjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJk
Q29tcGF0aWJpbGl0eS5zcWxpdGUzIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTU3NTk5RTI4
MUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRl
My1zaG0gaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNTc1OTlFMkExRjA3MUFBMDAwQTNGQjhD
IC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKKwkJCQk1NzU5OUUyQjFGMDcxQUEwMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dh
cmRDb21wYXRpYmlsaXR5V3JpdGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNEI4
MjVEODFFRjREQkZCMDA2RTQxN0YgLyogY29tcHJlc3NlZC1maWxlcy56aXAgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJRjQxQUI5OUYxRUY0Njk2QjAwODNGQTA4IC8qIGF1dG9mb2N1cy1jb250
ZW50ZWRpdGFibGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDFBQjlBMDFFRjQ2
OTZCMDA4M0ZBMDggLyogYmFja2dyb3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1dC5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLApAQCAtMTIzOCw2ICsxMjQ3LDExIEBACiAJCTU3MTRFQ0I4MUNBOEI1
ODgwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTC5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwuaHRtbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcxNEVDQkExQ0E4QkZEMTAwMDUxQUM4IC8qIERvd25s
b2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9IERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRtbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTcxNEVDQkMxQ0E4QzIxODAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVz
dE9yaWdpbmFsVVJMMi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRG93bmxvYWRS
ZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3
NTk5RTIwMUYwNzE5MTcwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHku
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbmRleGVkREJCYWNr
d2FyZENvbXBhdGliaWxpdHkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3NTk5
RTIzMUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0
ZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5V3JpdGUuaHRt
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc1OTlFMjQxRjA3MTkyQzAwQTNGQjhD
IC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IEluZGV4ZWRE
QkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1NzU5OUUyNTFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRp
YmlsaXR5UmVhZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5
UmVhZC5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzU5OUUyNjFGMDcxOTJD
MDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtc2htICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0
aCA9ICJJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0iOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1NzY5QzUwQTFEOUIwMDAxMDAwODQ3RkIgLyogU2VyaWFs
aXplZENyeXB0b0tleVdyYXAubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTc5MDFGQUMxQ0FGMTJDMjAwRUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJMUmVxdWVzdC5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvYWRJbnZhbGlkVVJM
UmVxdWVzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc5MDFGQUUxQ0FGMTM3
MTAwRUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NDgsNiArMTg2Miw3IEBACiAJCQkJNTFBRjIzREUxRUYx
QTM3MjAwNzJGMjgxIC8qIEljb25Mb2FkaW5nRGVsZWdhdGUubW0gKi8sCiAJCQkJNTEwNDc3NzUx
RDI5OEUwMzAwOTc0N0VCIC8qIElEQkRlbGV0ZVJlY292ZXJ5Lm1tICovLAogCQkJCTUxMTBGQ0VG
MUUwMUNCQUEwMDZGOEQwQiAvKiBJREJJbmRleFVwZ3JhZGVUb1YyLm1tICovLAorCQkJCTU3NTk5
RTIwMUYwNzE5MTcwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkubW0g
Ki8sCiAJCQkJNTFBNTg3ODQxRDI3MkVGMzAwNEJBOUFGIC8qIEluZGV4ZWREQkRhdGFiYXNlUHJv
Y2Vzc0tpbGwubW0gKi8sCiAJCQkJNTFCQ0VFNDkxQzg0RjRBRjAwNDJDODJFIC8qIEluZGV4ZWRE
Qk11bHRpUHJvY2Vzcy5tbSAqLywKIAkJCQk1MUIxRUU4RDFDODBGNTg4MDA2NEZCOTggLyogSW5k
ZXhlZERCUGVyc2lzdGVuY2UubW0gKi8sCkBAIC0yMDg5LDYgKzIxMDQsMTAgQEAKIAkJCQk1MTA0
Nzc3MDFEMjk4RDg1MDA5NzQ3RUIgLyogSURCRGVsZXRlUmVjb3Zlcnkuc3FsaXRlMy1zaG0gKi8s
CiAJCQkJNTEwNDc3NzExRDI5OEQ4NTAwOTc0N0VCIC8qIElEQkRlbGV0ZVJlY292ZXJ5LnNxbGl0
ZTMtd2FsICovLAogCQkJCTUxMTBGQ0YwMUUwMUNENTMwMDZGOEQwQiAvKiBJREJJbmRleFVwZ3Jh
ZGVUb1YyLmh0bWwgKi8sCisJCQkJNTc1OTlFMjQxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWRE
QkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzICovLAorCQkJCTU3NTk5RTI2MUYwNzE5MkMw
MEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0gKi8s
CisJCQkJNTc1OTlFMjUxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0
aWJpbGl0eVJlYWQuaHRtbCAqLywKKwkJCQk1NzU5OUUyMzFGMDcxOTJDMDBBM0ZCOEMgLyogSW5k
ZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5V3JpdGUuaHRtbCAqLywKIAkJCQk1MUE1ODc4MjFE
MjcyRUI1MDA0QkE5QUYgLyogSW5kZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC0xLmh0bWwgKi8s
CiAJCQkJNTFCQ0VFNEMxQzg0RjUyQzAwNDJDODJFIC8qIEluZGV4ZWREQk11bHRpUHJvY2Vzcy0x
Lmh0bWwgKi8sCiAJCQkJNTFCQ0VFNEQxQzg0RjUyQzAwNDJDODJFIC8qIEluZGV4ZWREQk11bHRp
UHJvY2Vzcy0yLmh0bWwgKi8sCkBAIC0zMDQyLDYgKzMwNjEsNyBAQAogCQkJCTQ0OEQ3RTQ3MUVB
NkM1NTUwMEVDQzc1NiAvKiBFbnZpcm9ubWVudFV0aWxpdGllc1Rlc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0NDRTdFRUYxQTQxMUFFNjAwNDQ3QzRDIC8qIEVwaGVtZXJhbFNlc3Npb25QdXNo
U3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VGMDFB
NDExQUU2MDA0NDdDNEMgLyogRXZhbHVhdGVKYXZhU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTU3NTk5RTIxMUYwNzE5MTkwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGli
aWxpdHkubW0gaW4gU291cmNlcyAqLywKIAkJCQkzMTUxMTgxMDFEQjFBRTQwMDAxNzYzMDQgLyog
RXh0ZW5kZWRDb2xvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VGMTFBNDExQUU2MDA0
NDdDNEMgLyogRmFpbGVkTG9hZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTA0RjFEMEE2
NDE4MDBGRUJDRjMgLyogRmlsZVN5c3RlbS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkJhY2t3YXJk
Q29tcGF0aWJpbGl0eS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L0luZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDMzYTU2MTUz
ZjZkOWEwMjg3YTY2ZjJiZDJlZjAyYTBjNGRmNGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRp
YmlsaXR5Lm1tCkBAIC0wLDAgKzEsMTA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBXS19IQVZFX0NfU1BJ
CisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVdlYlZp
ZXcuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0aWMgYm9vbCByZWNlaXZlZEFsZXJ0Oworc3Rh
dGljIFJldGFpblB0cjxXS1N0cmluZ1JlZj4gbGFzdEFsZXJ0OworCitzdGF0aWMgdm9pZCBydW5K
YXZhU2NyaXB0QWxlcnQoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIGFsZXJ0VGV4dCwgV0tG
cmFtZVJlZiBmcmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKK3sKKyAgICBsYXN0QWxlcnQgPSBhbGVydFRleHQ7CisgICAgcmVjZWl2ZWRBbGVydCA9IHRy
dWU7Cit9CisKK3N0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tQ
YWdlUmVmLCBXS05hdmlnYXRpb25BY3Rpb25SZWYsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBs
aXN0ZW5lciwgV0tUeXBlUmVmLCBjb25zdCB2b2lkKikKK3sKKyAgICBXS0ZyYW1lUG9saWN5TGlz
dGVuZXJVc2UobGlzdGVuZXIpOworfQorCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uUmVzcG9uc2UoV0tQYWdlUmVmLCBXS05hdmlnYXRpb25SZXNwb25zZVJlZiwgV0tGcmFt
ZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqKQorewor
ICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0ZW5lcik7Cit9CisKK3N0YXRpYyBXS0Rh
dGFSZWYgY29weVdlYkNyeXB0b01hc3RlcktleShXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqKQorewor
ICAgIC8vIEFueSAxMjggYml0IGtleSB3b3VsZCBkbywgYWxsIHdlIG5lZWQgZm9yIHRlc3Rpbmcg
aXMgdG8gaW1wbGVtZW50IHRoZSBjYWxsYmFjay4KKyAgICByZXR1cm4gV0tEYXRhQ3JlYXRlKChj
b25zdCB1aW50OF90KikiXHgwMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdceDA4XHgwOVx4
MGFceDBiXHgwY1x4MGRceDBlXHgwZiIsIDE2KTsKK30KKworLy8gV2hvIHRyaWVzIHRvIHRlYWNo
IHRoaXMgQVBJIHRlc3Qgd2l0aCBuZXcgc3R1ZmYsIHBsZWFzZSB1c2UgSW5kZXhlZERCQmFja3dh
cmRDb21wYXRpYmlsaXR5V3JpdGUuaHRtbCB0byBiYWtlIGEgbmV3IGNvcHkgb2YgdGhlIGRhdGFi
YXNlLAorLy8gYW5kIHJlcGxhY2UgdGhlIGV4aXN0aW5nIG9uZXMuIFRoYXQgZmlsZSBoYXMgdG8g
cnVuIGJ5IG1vZGlmeWluZyB0aGlzIFRFU1QgYXMgQ3J5cHRvS2V5IG9iamVjdHMgYXJlIGVuY3J5
cHRlZC4gV2UgbmVlZCB0byB1c2UgdGhlIGNyeXB0byBrZXkgYWJvdmUuCitURVNUKEluZGV4ZWRE
QiwgQmFja3dhcmRDb21wYXRpYmlsaXR5KQoreworICAgIC8vIENvcHkgdGhlIGJha2VkIGRhdGFi
YXNlIGZpbGVzIHRvIHRoZSBkYXRhYmFzZSBkaXJlY3RvcnkKKyAgICBOU1VSTCAqdXJsMSA9IFtb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJJbmRleGVkREJCYWNrd2FyZENv
bXBhdGliaWxpdHkiIHdpdGhFeHRlbnNpb246QCJzcWxpdGUzIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdOworICAgIE5TVVJMICp1cmwyID0gW1tOU0J1bmRsZSBtYWlu
QnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eSIg
d2l0aEV4dGVuc2lvbjpAInNxbGl0ZTMtc2htIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdOworCisgICAgLy8gU29tZWhvdyB+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJL
aXRBUEkvV2Vic2l0ZURhdGEvSW5kZXhlZERCLyBkb2Vzbid0IHdvcmsgb24gbXkgbWFjaGluZS4g
QEJyYWR5IGFueSBpZGVhPworICAgIE5TVVJMICp0YXJnZXRVUkwgPSBbTlNVUkwgZmlsZVVSTFdp
dGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvRGF0YWJhc2VzL19fX0luZGV4ZWREQi9maWxlX18w
L2JhY2t3YXJkX2NvbXBhdGliaWxpdHkvIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXV07
CisgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjcmVhdGVEaXJlY3RvcnlBdFVS
TDp0YXJnZXRVUkwgd2l0aEludGVybWVkaWF0ZURpcmVjdG9yaWVzOllFUyBhdHRyaWJ1dGVzOm5p
bCBlcnJvcjpuaWxdOworCisgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjb3B5
SXRlbUF0VVJMOnVybDEgdG9VUkw6W3RhcmdldFVSTCBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25l
bnQ6QCJJbmRleGVkREIuc3FsaXRlMyJdIGVycm9yOm5pbF07CisgICAgW1tOU0ZpbGVNYW5hZ2Vy
IGRlZmF1bHRNYW5hZ2VyXSBjb3B5SXRlbUF0VVJMOnVybDIgdG9VUkw6W3RhcmdldFVSTCBVUkxC
eUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMy1zaG0iXSBlcnJvcjpu
aWxdOworCisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGUoKSk7Cisg
ICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisKKyAgICBXS1BhZ2VO
YXZpZ2F0aW9uQ2xpZW50VjAgbmF2aWdhdGlvbkNsaWVudDsKKyAgICBtZW1zZXQoJm5hdmlnYXRp
b25DbGllbnQsIDAsIHNpemVvZihuYXZpZ2F0aW9uQ2xpZW50KSk7CisgICAgbmF2aWdhdGlvbkNs
aWVudC5iYXNlLnZlcnNpb24gPSAwOworICAgIG5hdmlnYXRpb25DbGllbnQuZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbiA9IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb247Cisg
ICAgbmF2aWdhdGlvbkNsaWVudC5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2UgPSBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2U7CisgICAgbmF2aWdhdGlvbkNsaWVudC5j
b3B5V2ViQ3J5cHRvTWFzdGVyS2V5ID0gY29weVdlYkNyeXB0b01hc3RlcktleTsKKworICAgIFdL
UGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmbmF2aWdhdGlvbkNs
aWVudC5iYXNlKTsKKworICAgIFdLUGFnZVVJQ2xpZW50VjUgdWlDbGllbnQ7CisgICAgbWVtc2V0
KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CisgICAgdWlDbGllbnQuYmFzZS52ZXJz
aW9uID0gNTsKKyAgICB1aUNsaWVudC5ydW5KYXZhU2NyaXB0QWxlcnQgPSBydW5KYXZhU2NyaXB0
QWxlcnQ7CisKKyAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNs
aWVudC5iYXNlKTsKKworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0
aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlS
ZWFkIiwgImh0bWwiKSk7CisgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdl
dCgpKTsKKworICAgIFV0aWw6OnJ1bigmcmVjZWl2ZWRBbGVydCk7CisgICAgRVhQRUNUX1RSVUUo
V0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhsYXN0QWxlcnQuZ2V0KCksICJQYXNzIikpOwor
fQorCit9IC8vIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIFdLX0hBVkVfQ19TUEkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkJh
Y2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWIzZThlYWFhZTlmY2I0YzQ5ZjMwNTE2NjExNzQ5ZjY4YjViMTRiMApHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgMTE4Nzg0CnpjbWVJNTJVdF9keDRgZEJCfHM4N058RGZlbTk4dXVNWEQ0
TDZmdUZJQz1pNnVZIXBGViNEV0ZJaEZ1WEdSdSY1Pwp6aVhGUlJjV3Q7UkRFOTd+bipiNz8/ei07
I3xHKTM4WFklRThAMHBvMWJBQl4tWnFBJGxwIyVMQmduVWxDQVReMEEKejxuK2VtRmNKeEs8OFV3
eEJjWm5AZFVxc2diVkJMNEt0SiY9PWlmUmRWSFFqfHJ0Q0NLank0dSFvM01eRHIhbWNCCno9ZzVx
ZjlXMUxhSnptQzRzIzRtOEByZj5eamlveiVPOXt3PDAxeUJJSztZaipBZz9jKnU0LXRBPVF7fHd5
aE9lcQp6S2Y1MTRuVi1yUDNSMlN+RjYyQnp5eHFnUkliclN8e0B4c2tFUks8WUg7TnhDM2BMZHJ6
RnIqUHolY0tBLVhXYTgKenBmRkJneFc3THFEM0llQjZ6SnBjPmx3IUphcmdELWdhYFQjNEVMNmho
ajw3M3lMKTxAYWJuWGBRfkFrNClXVG1ZCnpHSW8tcXNSa0owU1ZEM2ZLUHpvYUI2XkMoYU1PaFgo
UkdZT0ZKcjdGRjZIeFdTIyh0YEV4YlQleGk2dT9II3VJPQp6ZEJUPmt4S3FxQU57SVhHb3wkb3l4
ay1GWm5EPTFCOzlESGJJRFpxSThEfSY8SkQ0alIkP0A8SF43dTJ3MzJFV1UKejMxaWF2LV96NWle
aDlCVGNke19gZHgrLTslZ3xMI1A0UipWKFMhLT1HViV5c3dAWDxHZ3h4WUZLbjkyUzJEcGJyCnph
e1JtX3ppcm1uPF8kNVF6Njx1WkR9T0lqVnEqQ3ckOUAtNUV9QmNrZyErIVYhUHRkS1F5cG1mdHg0
UkNUOHZGTQp6MG4wYDk/XkwoJFItS3Q9JkpZYn56UHhCYWVaNCVxeGFmP1YjdXdjVWw5JHBGMUtP
PUQjfFYtOWl6KXhMUVJ1dyYKekdxe09wI3tUJnxXOSVhUlhYYlk2UWpCI3NmbFF0UU8/MkRteU5K
eTdORUdtVjUpJTFvb2hOaCY2RmJFbUJPV1JtCno5XihIT3tyajRNO3lEX1JuaEVedE1kNGN0aklF
XztzQF9gUG5rSm5jampgIUdXbXdhe3VabmVONilFJl5CaT5rXgp6M1lEJl50QmRFUWIjZTtmI3xs
IzhNNU5rSlk1JDg9ZHhwZCNBdy1iKkpAP0dfQGltVTcme1FxO0AkPn1vZntrdm4Kel9CUHZCPXIw
MGxkKyZTJHl9U289TUE9PTc1fDV2KkxlY2EhJlVZciRSclUySDl0Jk0td1Z6V1lFU0ZUMUBWJDVi
CnprRkVkVzNGc04qP0B2NkIoZnQwP0hQZWpLPCp4ZXZOYGYhenk0ZDNIVEZIaSE1SWMxfGsxMGEl
Nj5Re29aMCNRYQp6IzNSJFM5NUU+RSpBakVjKkd1JjVHdExYZT44azRMYz5WO0B2fWBaaHsofmVq
Q3xfNmVKdXxVJDhUKT0tViN0NTsKenEpISN5Slk2VnVkRXl5VShHNXBwemFzOENQNDt7Q0ReZmEx
OSZnNj87XmxaWUpfdldoPkRZTyExZEFwTHtPeDJUCnpNYGdJJVZBeWJDPiViUkYjKU96UFd7PGdK
c3AhU1V2TjBOeHQ5MCV1Qz0oNjF2OGp3YHFLLVZlMioobWN3SHpAfAp6RURfYTYhY3M2azdTfite
blcjdTRrcD4lOW1zWT1NPSstSyt5Q0YpVkkjeF83IS1aJi1mbj8mSUkoQmNSYkg3N1cKekx0VTIy
KEM0NVVNQkBSZFp6Jj5jZFREKHxObX5ZR256ZCghcUFtK1huVk5KZShKWTUzcTk7dmRTUjBAczFj
Tns8Cno5b2ZjMTF5ZS1ASElOSj9CUjM1T0R5N24xRGlvPG42JWlSQkR5NDJKTVAreiVQXzdJcntL
WTtHcSU5dTNJPHpUXgp6ZGFoNExzKkt1SWdgbXQ0bV5ZVHktZmFiPkFvbW1NN1JJQnw3eystLUli
dktxNU94OVQ3fH1eSytNdmxMbVAlKmgKemtkUTNvcnpVZH5vaD5hYm9vcFRMPDZ8OWQld3VFdVR5
dEJWQmhURWF3QHRpeG9TaSl7LVZ3ZDVkM0hudDlwalc9Cnpva0ZFRVRuZ0dPUCV+b1VOcj5QRylH
MDZZUTs2T35nUkQ0b0FsYDBeKEUkPD0wMEtZJjJtaz5mMDBlKmw1QzglfAp6O1F5OUAhWUImaXwy
VmUkS1IoRmFOPD9sNjtmfjBuY2tWWlJBUy1AdkQ9Unkwb1ZnWHghTiVPeUY0bzR9djNHQTkKemIx
dSlwJCVlO3NoPERgak1HaDduWF45c0lFUUREPzR3PWRASGZWMjM/RD5lQmxFRkNWK3AxNWVkemgx
dSg/KWNMCno9cyp5MSM3M2RjI0owUFdCKHo8WW8wMkw+O2luMy1EVEdzTGc7Tj5rOTtpNnMpXy12
YmlPUDZ+ISVHK1l1XlJlRgp6czRobyU9MmtLVEYhbSQxRD82S0ElZFRXeldeUTlvWFRgOElTKktX
ISpsaE5CSGtiOTBaT0MkQXpHclBAPHVGJDsKek9QSU0jMGRwOExmWjNPNiUyWj1BV1olZCgkekdE
VkV3ZWBFejA2Xm0+OVEpYXJaVFpJU3V6NztKIUU1S0RgZHhfCnpXKmA5cEFPSGtfMDF5QklLbVo1
O2ZxeE4hOXUoWGZyLShuUDJjeTc9QUJ0dThVXmJZUTUoUElWR0toRmV8OH12Wgp6cSVaKHxTb2cj
JXh+Z3pUKFYwLXA5Rj5wMiV6SUlBN2VXT1FFOXVEYU1BfCkyMFl9VkNqZV4/fCp+cW8lJTxoTDIK
ejI0SlJOJWtvNl5KVGE1NlhONiVRbX5xJE1kODR2a3NOK1R8NnheST5oNDN4SiFjZiRqcCN9di0z
NllxSC1HYHRxCnp5UTRrQGlNa1B0OEZYITxCUXFFazNkUXMtRDBubmNrQklZJHZqe08hSX5XPTVp
TyNMamM/TFNoVjBNX0U4M202ZAp6aXB6QnQ3eFZkQVZPPT4ydThvczE0bDBZMWwkKHlFMENVcnA2
ZytrMWh5PGpMRHRjfk9rXiZ2S1VYbFdpbzJIfmQKeiElYWd7KDhFbiNRbFI5ZkNNbDN9Pm5TT2Fh
X2I9fXp9IT9OMXk1YTdiU1ZzOTkyLXUhcWR1Ylc5MSRfSSQ3flYxCnpqPH5Bd1NJaEs5disrd0FD
MmIxQjh8ZmlwaGFGSzskcjZmTTZveHgwQGc7Z0luWG04XzRVK0wpYFR3T3NHR0VTfAp6IWlZdktk
fCN9Vy05PWtSa0duPWBTKCs0djMpMSVXNyVvJHUhcTcqI1UqZmcwVF9vWmx0JkEjI1ZVNVpWNHMr
TC0KenRhS043KkM7SGIzeE98V3lUKUlveTQzNiViZnFnJjd7O2gyaTZFOyl8R1AmLXNhPE14WSll
cU8kVTYyOSRYIzBPCnp4P0AwNnFBPClFLU0wcHEkV3J2QmVASCs4Mm1rPmYwMGUqbDVDOCV8MDA7
bTlBT0hrX3pgdkxQdjl8O018RyMqRQp6ITg5Tk0xYl9lIzAwS1kmMm1rPmYwMGUqbDVDOCYqMDFe
S3V2R1h6WjBkIy1fMWJfZSMwMEtZJjJtaz5mMDBlKmwKejVDOCV8MDB7aHQyKUt+UWNuPEF7fEVg
KH5qO2QzPlRLIytlQiFTcmYmJSlTeSpqZkp9MTNAaGkwMEtZJjJtaz5mCnowMGUqbDVDOCV8MDA7
bnFwTyUwSmlKYTUodDZ1eH17NHNTSzMhPHRBe3cqRWY8TX5eUWJQKFZGQyRTNExieyNyRQp6MHM9
cSkybWs+ZjAwZSpsNUM4JXwwMDttOUFPSG1aYXxCJC1JcnRDbjEoNW9aYX5OTih7WE0kP1YqbWRV
Iyh1P3EKel5xKF5qR3k/JTMwMGUqbDVDOCV8MDA7bTlBT0hrXzAxeUJJfDBNI188ZXM/cml2dUpF
eGhGIyR8MGxseFBocG80Cnp8TnJrMGRvd3pMMU8kS3A1QzglfDAwO205QU9Ia18wMXlCSUttWjgq
X1hzRmEkbVorLVpkTVIpNmhCck5EaW95aAp6ZVo4eXwkeilUdTdneHlUYW50eU5fXkR8TGZARXVi
NT9TQT1MbTA/UztgNnclcWNnZHdhV1MhaXEhZ3wmZnRRZSYKekFrMD84UVFaSyhrUTt+VWNobmB+
e31sRSVqRDRNYmwpYTdKXjR+S01TXkAkPDAwO205QU9Ia18wMXlCSUttWjU7CnowVSFWYnspQilN
KiZPZV9GK2ZveW84bGM/MFBWZyNTJnBwVkRJPk44TkQ1P0FNejsrQlFUKDVFMzFpbz9DJEpzUgp6
Ml96ckAxYl9lIzAwS1kmMm1rPmYwMGUqbDVDOClJWndTT3Q9JEtaWGlJaH1xWUljZkg7SyRHQXI2
ZVkjMzlZUW8KejtVcUY4T3FpWCpBQ3g5Y08tTFJnaFkjWj5qdTUwSzJ1Q0phQnFKfGJpbUF8M1Uy
R3xpd184bEBYMVIkTW5UQmEpCnpGci05XnhRWGZmNCpoM3dsMVJIOENNNkArTyQpaTM3Nm1zRjRP
MnkwR0phVHREXkEwZEdvKGNRX0BPUns8TndWVgp6YHZkdzUwOGlQPy1NUj51S21aNTswVSFWYmZC
K0J4MHpkIT0wMEFIWDFjMVEqRCp7dzlqI0RWYWt4Vjl6Qm9kai0KelYySih5YX5TJl5gd2pheHlZ
PkgtTnpocCEwMGUqbDVDOCV8MDA7bTlBT0hrXzAxeUJJS1A+PyFTcXR5eys1PzVTCno+aW0pZG5M
JD4/TVBEYGAoYUZqVExRWmBEQThZQGohY1U2fjM8bTswMDA7bTlBT0hrXzAxeUJJS21aNTswVSs9
JQp6QyV8TXNMNFdgNjQjc31aeykyc297by1HNEV8Pj1kZkIrQngwemQhPTAwQUhYMWJfZSMwMEti
WlVySzw9QkVJWXwKek9gKHUrREdJV1lEbipxU3tTcDhmQ29gbnJfeTdOOyF3ek52MFUhVmJmQitC
eDB6ZCE9MDBBSFgxYzFPI059JFd7Cnp8STNTaHxEUSR0e3kmMURfPiUkd3Z3OzgqMDBLWSYybWs+
ZjAwZSpsNUM4JXwwMHtnezFlQVV6VzVIRyswMGUqbAp6NUM4JXwwMDttOUFPSGtfMDF5QklLUGRz
X3BWViRKOHdkYWFBT0hrXzAxeUJJS21aNTswVSFWYmZXWGcwSzs+c0wKejdIa0NxS21aNTswVSFW
YmZCK0J4MHpkIT0wMEFLSWxNK3o8TiRtIStmZENLeTB6ZCE9MDBBSFgxYl9lIzAwS1kmCnoyPmVW
MGRpK2VyZn5gT1IybWs+ZjAwZSpsNUM4JXwwMDttOUFPSGtAUVVYMUhRb0YleUFPSGtfMDF5QklL
bVo1Owp6MFUhVmJmQitCeDB6VlQwd1YlbVl1b1ZhWjBVIVZiZkIrQngwemQhPTAwQUhYMWJfZSMw
MEtZJjJtaz5mMDBlKmwKejVDOCV8MDA7bTlBT0hrX3pgdjBJNkIjOWtNUHV2K2J+JD9qVGJgNm9s
RTw2enk/OG1FalNzP3xhNXtEI0Q/dFQqCnpCLXpNTzhTWFkxSGU0RmpfUWpHaEEhZCEpV0EwY2dk
VTNJQWpFM1lZbG4mTFJlPztpVXJaUz81SWBUKnlqd09newp6SWJ4bnpCQzMmdXJDQHc0dURiQFpn
YSNXe21zWT1NPSstSnBxSyp9bCU1V2lDV2d4TSpyO2dvUSE2ajtfJVRnS28Kejk4YG03Sk9LNEFN
UHlBY3Q8TlpGJWItbE5fUkxWIVd1WWlqbFRJYT88cSQ+bXFeUyZSMTV8YHk1UXdFQytqeXY4Cnpz
O0htX2xBJmJlcm9sal4mXzhHcGw/cHtfUWJqflloKVN1T04+TGYhOUYhfUEzVipUQjE4SXYjdU1U
YT5xTXF5MQp6a3QoQmhSVXMmSTFtPXhwd1JjK3FEYWllVnhgcHYqRz1efj1RSH5mRjR9QEtTSSEx
Sm8/UyN0azUoUFlHOypnTG0Kejxma1RjNlArekJFdUN4fj9jLXd8Wk9taDFgQ01+Ym8rSG9Qc2tj
cU1kN1BhK0ZXd1FvdGEpfXMxMENhKFUhNmp3CnpHaDdQVkVLb0NJO3pAfCQyLUdQcl5pem81TTEh
bjJiUmdidGlfcmxSNUM4JXwwMDttOUFPSGtfMDF5QklLO1p3RAp6ZldqeVc7cn0/Y2AjKE8mLUFZ
N20zRV9eJnFJZDIkZUlQNC1aITBUMVprKUxsJiV3c3IpLUtrQCtfODZXOCo/dHQKeiFPNGNsYkJL
NTNAPGszNzljaFVkMnJQdElMSnBiQUZnOXAhTzY+V0ZvMDdwZT1pOTFKcitiKV9ra2R3VmhVaD5M
CnphPlBjViZjd0Y2bE8hcG1Ea1c4ciFjUEB1UXdYUWgzYTJ2Nkp5M0JmRCpuWUdCcjQrXzRsa1lY
MjFSfS1RR0BYUgp6bF9+WlpgIzhJbEopQ1hDZGRqLU9JPj1oZm4jSWF5QG1QSz1HWnZORSVEbHxu
JiNhS3klQlYmfkFwcnAoQEtYfmcKeiVGKENjY0pzbjgzTns/QVhJS2FwaWsySTVFRXhSXjYpbCQ5
TChtZSRPRyEqZjZJeGtheik1NVpsfTQ4dSUxQDM+CnolfXg+VzxOV3k5UUpKYVNsb1dMOD9INE5L
aik9KE1yPX0kY2w3cithYDtZRSgtTTNAb3gmMWVzdGFRZXxqPnZEVQp6UlpsRWpPcXYqJW5Fc0FD
YHErbEtqQkJ8QWF7Z2VISG55SEIoVkI2NVl1TnRyQml+ZTFFU08jJHpIOU5iNjA8ezkKelRHYjA7
OCNuQl56R1VqIWA/SD1jSlpQTF9BNkVObzVwYCg4cmVoKUE/bCRmd2J+N2Z7UCMjdEpoQWM2eShG
YGBTCnpwUXFZJXZfKkFuI15jdzhRVipUO0BGcE02USt1fDE7SXdWXzd2KUZ3a3lAXjhuQVZTVGM5
SCt5eGo5fmUpJTdRMgp6bCUzd2JfcWoxPV8+T2ZCR203dW44clIoQnlxcjBFWk1KRGREeD4rPWEm
SnxCPFI0ZCRUfVlraUlyfkpJdGV3JVMKel4rbjZwVChXNj90Yk9JT2traitWbiN2dT0yYzxybl8o
dWBmWHVaakhESWV6enkkYXR1antDNSM9Rk9DdUYkZGwzCnp7aUx0JGB8WHFOJkNJOEB7anUhIys2
JDczSG0xIUJVUmdZez8kallOVy1ZKntqSzYwNWBfU343K0tFZjhZXnIwNQp6bnE4X2dfcyowKnpr
VDVGazJQdTIyNWE1SWl5fChXaEYjdUJ1ZGN+VW9LRXRlejQoVWZzUVU4OTY8SHNyc1chNDYKejYo
ayVUWGtkNzRZU2M5Z0BfM2B0cmJ8QTEmLXFWbDNaNXsoPT03Y2lRT1VVSDxiZ3EoUHlSQSheWkNP
aXZUb30mCnpIdVNRez0qalpjQihhXigxdUgjTip7dzhWQCMpdm91N3tAVyYwaUdMUiZubE9iNSM4
MnhocXZTenlDZFA/I0BGcQp6dWNpLWNRT0ZIallrbEV9aV84ZEsmMDNGRnR1Xnk2Rj5XNXl3Kytp
bnh4UE4tVDZ4cSluTjVyYT9hPDBkRDtvTG8KelY0aVRtcVgkZXlvIypPYFg5Zio2R1BHKVdCWGpI
aTwyfS16WXlHVWZueDNSREduX29RdlpZazZKWSo8dSZYZThGCno4UnVpUmp2SiNMK3NJb3lEPUlm
PVZnRnUtZEQpSmhKKks+UWMlYnhuO35aMEU5czJ+d19malRWSSlsfj8/ZURIVAp6Q0UoQ0deMzx6
S1RyPU0lWDxXKkJ5Qz44NVI3U3NtKTJCMTlvUlojdVJyb0hEcmFqKzVZVG5VMypPb2ZTNFZfbisK
enhuMUAwVmFMPmFBQnI2bVg2cWZBcmhhK2tOcW9pdiYoZSZGLSl0Tz9PKTgjZXUpcHQleWdOSk1o
b19ZbThNKE0hCnpvOzExcWYhUXgtdGl5JFNNOyFLKEA1eUxkUkF6c256ZmFDdkpAd1V9QTBGN15t
Plo8ST1UVHJgQllXSmZsZGJPdAp6K21HKl50b3lkK1p2QWNZI2c+YD0xdGUqPXU/ZShgdUNrMl5g
eEA4WnMkNkJHSXozUEtrYyFgdnQkR1F6Z15CKzIKeiEhOC1DZylVbzhUUzJ9fUokUFg2c3w0QkJw
bGMlelQwTGVBYEt8QjZeX2JkfVZhaDVtKipBa0daIzQqUzNjUz9zCnoqVyEkfVA9ajJyZWNLUCtK
azghYHhKeUAtYFpoZkBjV3IpYiF9enBZPnFsTiZtczR+fUVCMW9AclhEKkIqV0JORQp6QVg8Tk9s
SV5pRUV4SlE5UzlgQH5NTklqbW5WZmZLVzMtLWNTLXNhSkU2eUZwQ0JkP01adDFQRmsrWm52Wj5O
cT0Kelg/ckgpbFhsfV5qbmUoc1p3e3REX2NaSDJfajQla29XMj0laH5wXkRpfW9eU09+UzkwYTBm
bjV6QENPbz83I1ExCnpMRU9nU3tiR3Z4UmM2a3FHRlV1S2hSJU45VXRlWlZLWUQ3KyN7UjhKIVoh
OHdxeytWKyZZdDdBVEQ4dTFnMEAxJQp6bVJfbzw0bXJtJnRuMlB2OWJkM3RkLWZ9KihTWmVQb0NZ
YHhvO0R1N19MZnlZTnFePFNMc2djK1J9VGJ4YGFBaVQKel4/VzMpY1JJVlZwMHdoV1ZuSzBEcVN3
KWI3eEZ5QDN9dFJgIUNUd0JfQTU1c2s2JUB5dH5SSzNzNzJZe3NEZTU3CnpYcUpfV1RgJT95YGxS
OzZAYnszNSpTSHFYb19OTWZYPk4lNkhDYi1naXNofVkjd3lPX1Y+UUpXZSR7IT94PDNCZAp6PTwy
JVhRKDB0d3VPUFZ8bThsbDc8ZTtyYTxUKjBoPmszX0Y3dyp5VkpJczM/N2JHWEFhKS03JD08fHw/
NiglSjkKej07Mm1YYXlUWjEkeiMxUlczK19ZUVFsSU9zRHxSbDMjbFhLS3h+cUNObVMhV25SK3hs
ZFdyX0kwdXp4RUBkYHw9Cnp6VCRQKjRARkV1UU1BUHolUnQ4JSV1YyoyKkNLXkt4R0xqJSFqeE0j
RlghTUIwKns8LWRhfn5GJTAkPFBGUHJaJQp6eDRxaH1iaGRPKG5FZDt2YndATXMhfWchMkRkZGxH
ZHY8MTEjLSZAS3A7ZE5FPTNWQytqWkAyJFJoQ1htOUdvKlUKelZFXmh2R2xxR3t0ejd6JVBDS29B
Pl9xS3Y7bjZHSUtpV0xkU3o8VjMham1pYThgYkM2RX4tPjBlM1UlNyslNVhSCnplTysxJUNIaWh1
I0g2YUA+bUZvUDlYO1E9WU07aURpU3p7PEVtdDB8YTZaMW1eflRpcjQrYFRHLS1OMHU9V288Rwp6
NiFGe1FqZWg+ST4qZnpfdCpVclNSWnwpemV9REtyeXQoZFp2M2dHNGhIJkxmSj1iMnx3cUFKTl58
ZnR0ZjZZP0EKeiopVXw9diZqMlByXkg5aiV8RTxGKzJUXjEmQ20tc3leanV5aig5Wmd6elpxaVl0
Tj9sS0NePTk8S0srPF9eQmNHCnp7WERyTSMpSVdEemI2KHk5PCN4JShEPkszb0JxRjlwcGlFeT5a
Y2EtWTtCPm8/eS13VDw4dXpwR1QqZ1hhYyFPfQp6OHU9MXFfcHgpNUVoRVEhMlBLLStZKDZiSEBf
MDAhZy07VT9eUzRHR3BGVDtiT1QjMGxzMVlNQypFI2F1WHRhc3YKej8+RU1NLSMtfDQtUlVGR0cl
OUNFKntXUihTQ1VXdWI+OXVnQkNmfGZlU1M7YyRuIUQ1eXJgLV8qMD4xQGNTb151Cnp1M1QyR2I8
M0ltO0xZXlcxSyZRZnVEZihocXE9YTtIMEtwb0EmMEx3P1d0UnpYPFJ3OXEtc309YHFkQmFZeENB
OAp6P2xXRklHSEVCe15SRXMhcU9ZQT13N3lqOSUlT3x5V2A0RUNjQjlga25icjJvSHtsYE1CTnZY
X0hPI1EwYncoY2QKenRtbzt9PXlAKmxubklnbVNEZ003cDVWSChLeF5TSUtGWSRUPHJgWkgmWiU5
Qm9EIzc9dCEzUkItTHZaKS0jUnMyCnpTb1khRSlMQWQ0Slk8YyZUKGBBVi0qNTVVc3pQU0duVHpB
Mm9fUH5qPkJsd2lkKiFgVld5R2BNaEwrNkxnKiVlZgp6KV9jdSFsZztVIU9mSEt3Xip0R0tNckZm
PHtlcnoyWng0R1laPzdwamR0aUE/SztZdnhgNV9mQUhuZmJDZUsyPSsKemZVcHFfZCRNdW52OT9L
e2RiVyh7Rn45eXc1Xz9GNnoxZkdKSExZbWFIeXc2WmRCY0QyPnMrNWEmOUdJb0N3Q2s2CnpwP0RA
PF5jVFprdGdKKUR3TilATyN1MW00YXdFSnRiIUJaeUYod2xDUk9VI0VwU2x2SWRuanYoI0gwPS1k
Wk48dQp6YG57MFk5X3RrQWh7U1RwO216Jk9QZlFlO01GPig4PEZxdzNRODl4ciNXPHAzTH5JdSY2
KnB4S04jej0lWT0qTUIKenFffkdqRVR5YV9ET003Uj5CPkROI2QwRHN0IUVEOz8pOVo8dkdyOEsl
fmUqRnRSV15xUUM1KUBpd1RoSm04bEcwCnpCRzV+Q15GRV5KQ0p9SjckODZFVURHYD9MVHlqTldY
P3Z4dyo2V1NnYmd6ZTthJlojWHZzRllQVEIxRTdNQjVSSgp6e3pAKDRRP3d8RllTfTFzMzFOJUYo
Tzs9VTRDJDlUdyg/KFQ9X30hT2c0dmZeZyNSeXQtTiZUSUduQXhveCg+fmcKejhiYD9edU9jbk40
PGhsdUJqclV8KFF4WllFTW16ZHBhckEyd2pUO0xgPUhTeXVDPVN0O20wMH1hKXlANE9CeSZBCnom
YVNzZ19SMjE/b1pxdThDd3tFaktIdkFsUjEwNjZxRT0xVjxtXiNOSHpBPUZxUiZDKmwzflhPI0At
MkVxcGVhRQp6PmkpV05heCVGbj0+JUZLVWYzfm54M01hOWBkeFQ8ZkE7UjZheWVXfHpMJkFOVUNo
fCY7dnZBJTB4bjlPKTNXX34Kelg1SnU2OGc0OCRqdEpUSlojVjU5ODxzKG0tI3B7WklWTH4lVnNP
TytaUzZlZi1FREdiNG1HVX52a1pMS0JYd3whCnpWJXhaSkZGem98PGY+MlE1OFU1JkpoSmNQX24j
N2BVbVEyMCQkYWpsdGY5eS1nVVkraDJhVU80X34zZFU8SlIxdgp6V0ItTz5gN3tme3V3LUo/I0Qp
YytkKEJma1ZoQHB9S1I5OSRXNXo0d1VveFlJNjtpVSZFWXUmQkR6Qzd2K1R5ZD8KemBObyMyaDQw
ZXQtQEl+cntJVj9VSTZhZ2xLZUM/Y0YwKj81PlAwYlFoWi0wQSQxRlJmczR7bDslK2d5OGNIeVEy
CnpSeThDd01NbGtle2UwUCRrWUA9OSM3VEc3M2Q+QzhXZXhRNlczLTB0RzRnaHkjVSkoci0rKH08
aGxYdWA1ejxQKAp6KHp4NzNDZ09aMmg/KHA2aWJ3TEJCVjN5b1dpQnkmLU8oMn1oXk1fRDdWKiFn
QDkkSCZjbDljcjNaOEg3eHopQz4KemZ9eWR3QDc0STxGVzFlI3VWKEFKJGVkeyNkMTI0a2dRSm1n
bVdSJHFNbyN5WlM2Z3ZtKSMqTU1CWDlaJFhXUlNyCnpkeXNNMiFOKyRNV0YzM0BgZU9RbE1veHNt
LXglZSo7YnRgNE1MZDBweCFxeCRDJVFYNWtkY282K3s5ZW4jVCRwMAp6M3xWZDh4X1ArVSo1emdJ
XyoyJUBaRU59SEphZ1olXj9Bfk5jdF9aQFdkX1M0NlZGWjJIJm98Nz9iQzJeKlUqYWoKenU0VV9y
OTx1QF8teCl3bTxqS0RAOWFlWUtJLWFyNipmcl48e05GS2dzNDNibDV0flM/XkJwR2tMejZrK3BQ
VG5xCnp1a012X1M1d05wTyV0WHhffGYpazR5YFo9ekVHfU9gQHpLVWd3RGowN3Q9VElhWFozNT1I
PWJmdU8pOVIrJn1LQgp6KXdyXl8yYGNJO0lxQXUqaWQmRipxcU5pKDdrQGZ5UDtAMD4zckR4fl99
PzxtPGc0YStxVmEzTFRtUS1XSUB0UzQKek1FYiFNRXpFdj9GRnk9O0Ztb0FhJGQhYkVDKzlkTmlT
Oyo8clVxRjFzJkwta2k5cUh9ajZYZk1lRHxadGlJMyNeCnpoVXwmYyFEfU8pKUlCJHRpcDwrRkhe
NnhQLUllTjUqRGs2YV5BZm9IRSVTYE9WT3wqV3k4aUpoPm02QXRxZm0mbQp6Y09NKEZ3NXItPFpL
MGltQEw9P0YlMm1WSlcwYyF1X1JzWVNBOXR2UGhSbUN4RDFBcmMmTU0wXiFCVlZyKDBVODwKemUx
RTZtTEg7azBkSFFXVGU+b05ZY0gpakppJTdnQFlebEZ0VWNRX1dUNGY3SjlqbU4yOFokNVM1RF4q
bj84akdHCno/IzlDb2BuMzlVRkxXbFR6VlVhZVY9QzVzcyVGK18zOTY9VmY0V3R6VHJII3xyZj1B
akBPPmZVYitybjRINFU3JQp6U3tET1ZaYnomV3ZKTnw2VVpwMGBIQjg4N0VHaGloPipkNTFEYzJV
Z2t9LU1oUj09dj4tMjRmSF50OShHXmhaYyEKelorKWlPS1JJPmFLJmE9SDVpP2N9dlI3RHFyZFgh
WjdhP0ladFRUT0Umb3x5eiNEMzxPeE87Z0FsQ3RlYnskam03CnptZGBoJjtwVC0jMVFPIVlre0Fp
JFMmTmB9fEZBRDVTR2l7Qz02NDx+dUdnMm9wPkRoTWQxVHxPJGxhRilkPlhsVwp6bG1EOUsjZnZ0
VVhub3ZoWWgye0QjLXdEOzFuU14oUUx7eyV0OXhNK1J6eEBDRWpvMjxvYilFbWd4bEsjYCpIQGEK
em1HUnFLUjNWK2VEJn1PV3pOMUQ+KERaOTlDZlk5QlBZNnl7MWBIY0sqMDZTM1UxSSt2KWx2dDBB
TVIxOUhYfVhmCnp7cS1UdW4xTjJTQmhSeWB4bklwQEU4UU1eXzBTYEFYWG02aEtjQk57ZnpwfUYr
KGklTSM9SHd0Yj1zNFM5Xk81WQp6dTh4ajdVcjZpcVoxQUQ3VFYpcTJqcWE+P0d+dXF9RkAqUWIo
XnNGU3pjfCpZK2RCM0J5eStRa2t9ZUgpN3lFPTAKeitZJV58elZYUWdTRGMwJCZ+UFg1RTs4fHt4
bm1iT05WR3gqaSlzSShlUHNFbnl3QGo3bGRKRUNrbk9oN0JVVTdaCnpvc3JzNndXYVV4X3RGRCk0
eW9EYF9yUGEqZndaWll8Q1hATkMldDxabkM3T09GI0RoJTVaI0xzdmE/bnJAUnVoVwp6R0x9MG52
RGprbSsqPlBXTCFpfmdnTFIqQERKRndHaVokUERSPVliP1hFPHYmdVcpZXJSJnYzU0NrQUt5UkdR
O1cKek4jaUZAJk00WHgoV0F+SlpHbD8oTVB1I1R2dU5nUFoqR1d2elBiLVIpYmdsekx0PUxRc0sr
fXExTk07R25rRkE9CnozM1BHe0piMlBPLX5LVDx5KjgxSHtTbHxNPzFmSWwpemtiJi10TllNVGgp
fXgmeEpjWjlYbyV7VzRmd28qfW5MTQp6Qkw+UmJAKUdUO2hiZ0tBckpSM3hGc0V3Q0duM3pVSnkr
UGQhTjBLYXAzeklDZmMrUTRYMDdhZnteOTlpV2hkdSgKejJJeTteNDRJbHlGKmZ8PEB8e1E4Xylg
WDM5JDZSb2JlPjE4JEA5ZD94d2p7cWV8JVE9YCN8aDcqflFwPkB6cGxaCnpWUn0hbEc5SCVJVCgx
Wnp6V2FXNlI4ZWYoYj91TG40WTFePEJqLTtxNz5GZ0dXbDFAfFN2eC1aWX51JjdYRD9Iewp6RX13
V0t3ZmYrSjlzK2lzaUI4IWUoaTNtaUswVTByIXtmWUNOJGF7TjMkSWRsPVUrOSM9Zio2SikoOy1v
VS18aGAKejtpPEMkWXFsODwoRTdhQj92UlM+QWV5aGstQz1LNk8kKGFQdlRXT2dzcTx7QyVVJUBN
ajlweHlGKXp6OUwwTnowCnpIYUQoUVdUOVpxdTZnUkkzdFQyLXs2U2piYCl1bGEmOC07THllKiNB
WTsqZnVaXnc8dEM7N1YxJGNrQlghdEkpVgp6e2prcl5tc0l1WlMrUFEoNmVGRTtYN2BOfk47fWtf
NDZ1R19NUT02QStCeUdUKDdSSHRPVFhBJUBvdWJtR3JlOXYKenclXyZSN2pMSjxjKj5XcDlEOSNm
a3krPCtXSztQQz9MSk8yWWtzQDYjX2lMKyk0P2JDYCkzdExqZ0IqYXZOa3EoCnokbztgbjN7SzNB
SllKdlUqTE1acGFeK35mOzVwdUc1eE1vJDQ3Q2s2QypAdGY1bVZscVdFfEFyYDVsUTw3QktXKAp6
a05IJnZaKDM9bCV+Ukc/SCRWMishTGgkSmM0VUJSWTRvaE9iP1hDT1BJT1puZTFQRmQ0bk0hclkt
UmFMXl56IzMKemdxcyQ2d3l8TnU0JFFLY3UrX3dLIX43Zk8pMmZ5fSpyPlp+Kyo3d2ctUTAlaShm
T0JjcWdyY2RRazljI3p4N2FJCnpJWm9SPFB+aGlnWXdBNFZOYlloZ1U3T09KcnpYS31eJWIqdmsl
dF5EJX5CfmhVK3Z3NU9LVlV4R14wakQmOzVLdQp6eVQ0dGA9KCQxaWlmT3hjeVhvMlNvVVB+bUtG
bTRYI05mKEJWYHJ9b29IXkl4NnRwZU1FMnxZIVk5bHMkeElOKFUKelEpVGJGajZjcGt6UTM2PCNM
JCYxT3hCQSY4eXxEWD8wdjZpQUtxUEkqQFY9fS1mZ0xXS1duXjBVKXoyfHZFeUBHCnpLWWR5XlZ0
JkRicSR2K3ViM2dXWFVncWZGdH5oU0Bsd1RSd0dhV09ZIyR6Kno5IXZFYVljX2R+XlhNNTViZUVt
Kwp6djdFSDNIXzBVOyNWPEt+cDZBbGJHd2RIRzdFZGQ0OUF7TENNLTxySlR+I3lkbnl+RFJ6TFJ8
WT0pcFEoJnVncSgKenRhNE5Je1NyPWpIMjI4aDk2biQmXlYxXi1tQm1kSitMMj9iXyRPdk9RWkZr
a2gtJmw3P1hrU357UVpTbkJLRXgrCno1VXExRVlRZUlIXm9pYWpZWmYtI2pOTFk+JndBWjgxOEBG
elp8YHVxdSRDP0Y3TG9mKmV3TVE7Rk1pc0Y0PU5gOQp6YTwycm1TSV4wLVdfaksoPkcjR2FWWWFA
bVgxPDk8QldkQ15rQVR8UGRuSz5tI256bjVgbUY3RWZBdXUyPWZ8Jj8Kem9mWWFvJX5+YlA4dFle
fXw5YlQhIU5CNVElOUp3aUYwSVUmTnElKnBWeVRTOVBTKjh4MyQrZz9EVTl2XmFDQGVnCnp0SiY7
dncrd2lGPDxUMUttOE9gcz82PGBrclFZKVUyMGxKPEJEN2Qoan5jaCg3RnZUVkFOSEI1RHdGSyVk
ZXZvTgpQdnJkeno8UW57YWBeZihUWFBNZWkKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkJh
Y2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNo
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45MjQwMzNkMzI5ZjhjN2RjOGMwYTI1NDAzOTk1NjFhMGUwN2ExZjJjCkdJ
VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzMjc2OAp6Y21lSSpObTVmJDZ2cHc3Q01ifVE1VzBsV3NF
REU8QjdOdSlmakktX1l7NG92TDlyUzM7fEx9O0dkQ2RUI2B+JT0KenV1QG8lTl59MFY+ZVJfZ1Vo
WF5KRll9d2k/RldUNVdZcjwlUE9WUWB0dTZoIUVkOTlwZFF8Pj95NyVxOz1nc3hTCnohZD4/RlM+
WnFMNUJyNGBgayQmKmN7OUVyVWZaK1A4R0Jkay1MYT0pP31gMUhfMipXLUB3KDQ/ZXwoKmBwME9I
Owp6KlYpKX0pKDVTVWR1I1JUSihCTXdeTSU+TTlNdj1BP0s9MWtUYTgkYVQ4JnYxdGNxNlNSd2Io
bXRNTDZ+JndwSzQKektQUC0xZWhVQD8ycTFzfTB0Z18wMDBJYWdmQipzckFiPGJAMnExc30wdGdf
MDAwSWFnZkIqc3JBYjxiQDJxMXN9CnowdGdfMDAwSWFnZkIqc3JBYjxiQDJxMXN9MHRnXzAwMElh
Z2ZCKnNydzRUNmY+eTZ4P2k5NzUoaExvTTwmfS0qTQp6V1I8cyo4d3pALXFYdGRHVzFtN2A/SXx7
S3V9NyFnPngrd3xlblBKTWlUY1EtLUl+fDdfSTNRb2VmV0N3Mnk4VVoKekNgfj58SUt6dDdVSUxy
IzZ7bjdBIXMmNldfN1coIVNEWlNnPkMtfFRjVzNLSDJ5QUlqcExOb1JONE1CQilCMWJqCnpYXlZ9
YHhIU1psUSlYLTIhYmNUPmoyNGtWel5UQjFKfn5aS1l5QCg0M2krZ19eLT9vbkFtQmAzKDlZa1Yo
aEkkRQp6bVljVztnI1Z7XzRGZHZCMSVAXjJHJiEqbTd8fE9MNU82OUd7KXZsKWZLUCM8LWZCayZL
RXNwUnh4bCNRdzV2bnMKaDNkSHYqdTtlb35zU3otTlBiZVZaUiQkcH1hKUtrVTA+SnxYP2cyUDRH
fmZVTAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5UmVh
ZC5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERC
QmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4ZjJmZTBlMTg1NzFj
MWExY2JmNTYzNDdmMGFjZGYwOWFiYzA2YjMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxp
dHlSZWFkLmh0bWwKQEAgLTAsMCArMSwxMzEgQEAKKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24gbG9n
KG1zZykKKyAgICB7CisgICAgICAgIGFsZXJ0KG1zZyk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c2hvdWxkQmVUeXBlKF9hLCBfdHlwZSkKKyAgICB7CisgICAgICAgIHZhciBleGNlcHRpb247Cisg
ICAgICAgIHZhciBfYXY7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBfYXYgPSBldmFsKF9h
KTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgZXhjZXB0aW9uID0gZTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZhciBfdHlwZXYgPSBldmFsKF90eXBlKTsKKyAgICAgICAgaWYg
KF9hdiBpbnN0YW5jZW9mIF90eXBldikgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICAvLyBWYWx1ZXMgdGhhdCBhcmUgdXNlZCB0byBpbmZlciB0aGUgdHlwZSBvZiBhIGdp
dmVuIHByaW1pdGl2ZSB0eXBlLgorICAgIHZhciB0ZXN0VmFsdWVzID0gWworICAgICAgICB1bmRl
ZmluZWQsCisgICAgICAgIG51bGwsCisgICAgICAgIDUsIC8vIEludAorICAgICAgICAwLAorICAg
ICAgICAxLAorICAgICAgICBmYWxzZSwKKyAgICAgICAgdHJ1ZSwKKyAgICAgICAgNS41LCAvLyBE
b3VibGUKKyAgICAgICAgIkhlbGxvLFdvcmxkISIsCisgICAgICAgICIiCisgICAgXTsKKworICAg
IC8vIFZhbHVlcyB0aGF0IGFyZSB1c2VkIHRvIGluZmVyIHRoZSB0eXBlIG9mIGEgZ2l2ZW4gQm9v
bGVhbi9TdHJpbmcgdHlwZS4KKyAgICB2YXIgdGVzdFR5cGVWYWx1ZXMgPSBbCisgICAgICAgIHsg
aXRlbTogbmV3IEJvb2xlYW4odHJ1ZSksIHR5cGU6ICJCb29sZWFuIiwgdmFsdWU6IHRydWUgfSwK
KyAgICAgICAgeyBpdGVtOiBuZXcgQm9vbGVhbihmYWxzZSksIHR5cGU6ICJCb29sZWFuIiwgdmFs
dWU6IGZhbHNlIH0sCisgICAgICAgIHsgaXRlbTogbmV3IFN0cmluZygpLCB0eXBlOiAiU3RyaW5n
IiwgdmFsdWU6ICIiIH0KKyAgICBdOworCisgICAgdmFyIHRlc3RDcnlwdG9LZXlzQXJyYXkgPSBb
CisgICAgICAgIFsiUlNBRVMtUEtDUzEtdjFfNSIsIHsgbmFtZTogIlJTQUVTLVBLQ1MxLXYxXzUi
LCB0eXBlOiAicHVibGljIiwgdXNhZ2U6ICJlbmNyeXB0IiB9XSwKKyAgICAgICAgWyJSU0FTU0Et
UEtDUzEtdjFfNSIsIHsgbmFtZTogIlJTQVNTQS1QS0NTMS12MV81IiwgdHlwZTogInB1YmxpYyIs
IHVzYWdlOiAidmVyaWZ5IiB9XSwKKyAgICAgICAgWyJSU0EtUFNTIiwgeyBuYW1lOiAiUlNBLVBT
UyIsIHR5cGU6ICJwcml2YXRlIiwgdXNhZ2U6ICJzaWduIiB9XSwKKyAgICAgICAgWyJSU0EtT0FF
UCIsIHsgbmFtZTogIlJTQS1PQUVQIiwgdHlwZTogInByaXZhdGUiLCB1c2FnZTogImRlY3J5cHQi
IH1dLAorICAgICAgICBbIkVDRFNBIiwgeyBuYW1lOiAiRUNEU0EiLCB0eXBlOiAicHJpdmF0ZSIs
IHVzYWdlOiAic2lnbiIgfV0sCisgICAgICAgIFsiRUNESCIsIHsgbmFtZTogIkVDREgiLCB0eXBl
OiAicHVibGljIiwgdXNhZ2U6IG51bGwgfV0sCisgICAgICAgIFsiQUVTLUNUUiIsIHsgbmFtZTog
IkFFUy1DVFIiLCB0eXBlOiAic2VjcmV0IiwgdXNhZ2U6ICJ3cmFwS2V5IiB9XSwKKyAgICAgICAg
WyJBRVMtQ0JDIiwgeyBuYW1lOiAiQUVTLUNCQyIsIHR5cGU6ICJzZWNyZXQiLCB1c2FnZTogInVu
d3JhcEtleSIgfV0sCisgICAgICAgIFsiQUVTLUdDTSIsIHsgbmFtZTogIkFFUy1HQ00iLCB0eXBl
OiAic2VjcmV0IiwgdXNhZ2U6ICJlbmNyeXB0IiB9XSwKKyAgICAgICAgWyJBRVMtQ0ZCLTgiLCB7
IG5hbWU6ICJBRVMtQ0ZCLTgiLCB0eXBlOiAic2VjcmV0IiwgdXNhZ2U6ICJkZWNyeXB0IiB9XSwK
KyAgICAgICAgWyJBRVMtS1ciLCB7IG5hbWU6ICJBRVMtS1ciLCB0eXBlOiAic2VjcmV0IiwgdXNh
Z2U6ICJ3cmFwS2V5In1dLAorICAgICAgICBbIkhNQUMiLCB7IG5hbWU6ICJITUFDIiwgdHlwZTog
InNlY3JldCIsIHVzYWdlOiAic2lnbiIgfV0sCisgICAgICAgIFsiSEtERiIsIHsgbmFtZTogIkhL
REYiLCB0eXBlOiAic2VjcmV0IiwgdXNhZ2U6ICJkZXJpdmVCaXRzIiB9XSwKKyAgICAgICAgWyJQ
QktERjIiLCB7IG5hbWU6ICJQQktERjIiLCB0eXBlOiAic2VjcmV0IiwgdXNhZ2U6ICJkZXJpdmVL
ZXkiIH1dLAorICAgIF07CisgICAgdmFyIHRlc3RDcnlwdG9LZXlzTWFwID0gbmV3IE1hcCh0ZXN0
Q3J5cHRvS2V5c0FycmF5KTsKKworICAgIHZhciBvcGVuUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVu
KCJiYWNrd2FyZF9jb21wYXRpYmlsaXR5Iik7CisgICAgb3BlblJlcXVlc3Qub25lcnJvciA9IGZ1
bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGxvZygiRXJyb3I6ICIgKyBldmVudC50YXJnZXQuZXJy
b3IubmFtZSk7CisgICAgfQorICAgIG9wZW5SZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2
ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgcmVhZFR5
cGUoKTsKKyAgICB9CisKKyAgICB2YXIgcmVzdWx0ID0gdHJ1ZTsKKyAgICBmdW5jdGlvbiByZWFk
VHlwZSgpCisgICAgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigi
dHlwZSIpLm9iamVjdFN0b3JlKCJ0eXBlIik7CisgICAgICAgIG9iamVjdFN0b3JlLm9wZW5DdXJz
b3IoKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgY3Vyc29yID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAg
ICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgc2hvdWxkQmVUeXBlKCJjdXJzb3IudmFsdWUiLCBj
dXJzb3Iua2V5KTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHJlYWRWYWx1ZSgpOworICAgICAgICB9OworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJlYWRWYWx1ZSgpCisgICAgeworICAgICAgICB2YXIgb2JqZWN0
U3RvcmUgPSBkYi50cmFuc2FjdGlvbigidmFsdWUiKS5vYmplY3RTdG9yZSgidmFsdWUiKTsKKyAg
ICAgICAgb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50
KSB7CisgICAgICAgICAgICBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAg
ICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoY3Vy
c29yLnZhbHVlID09PSB0ZXN0VmFsdWVzW2N1cnNvci5rZXkgLSAxXSk7CisgICAgICAgICAgICAg
ICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICByZWFkVHlwZVZhbHVlKCk7CisgICAgICAgIH07CisgICAgfQorCisgICAgZnVuY3Rpb24gcmVh
ZFR5cGVWYWx1ZSgpCisgICAgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2Fj
dGlvbigidHlwZVZhbHVlIikub2JqZWN0U3RvcmUoInR5cGVWYWx1ZSIpOworICAgICAgICBvYmpl
Y3RTdG9yZS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAg
ICAgICAgIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBpZiAoY3Vy
c29yKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHNob3VsZEJlVHlwZSgi
Y3Vyc29yLnZhbHVlIiwgdGVzdFR5cGVWYWx1ZXNbY3Vyc29yLmtleSAtIDFdLnR5cGUpICYmIChj
dXJzb3IudmFsdWUgPT0gdGVzdFR5cGVWYWx1ZXNbY3Vyc29yLmtleSAtIDFdLnZhbHVlKTsKKyAg
ICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgcmVhZENyeXB0b0tleSgpOworICAgICAgICAgICAgfQorICAgICAgICB9
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlYWRDcnlwdG9LZXkoKQorICAgIHsKKyAgICAgICAg
dmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oImNyeXB0b0tleSIpLm9iamVjdFN0b3Jl
KCJjcnlwdG9LZXkiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBjdXJzb3IgPSBldmVudC50YXJnZXQu
cmVzdWx0OworICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgIHZhciBy
ZWZlcmVuY2UgPSB0ZXN0Q3J5cHRvS2V5c01hcC5nZXQoY3Vyc29yLmtleSk7CisgICAgICAgICAg
ICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIChyZWZlcmVuY2UubmFtZSA9IGN1cnNvci52YWx1ZS5h
bGdvcml0aG0ubmFtZSkgJiYgKHJlZmVyZW5jZS50eXBlID09IGN1cnNvci52YWx1ZS50eXBlKSAm
JiAocmVmZXJlbmNlLnVzYWdlID09IGN1cnNvci52YWx1ZS51c2FnZXNbMF0pOworICAgICAgICAg
ICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAgICAgICAgICAgICBsb2coIlBhc3MiKTsKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGxvZygiRmFpbCIpOworICAg
ICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21w
YXRpYmlsaXR5V3JpdGUuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL0luZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWVlNjFhZTY0NjkwNWJhNWYyYzI4YmU5ZWU0ZjM2MmZkNTI3NGYxNgotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkJhY2t3
YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwKQEAgLTAsMCArMSwyNTUgQEAKKzxzY3JpcHQ+Cisg
ICAgZnVuY3Rpb24gbG9nKG1zZykKKyAgICB7CisgICAgICAgIGFsZXJ0KG1zZyk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gc2hvdWxkQmVUeXBlKF9hLCBfdHlwZSkKKyAgICB7CisgICAgICAgIHZh
ciBleGNlcHRpb247CisgICAgICAgIHZhciBfYXY7CisgICAgICAgIHRyeSB7CisgICAgICAgICAg
ICBfYXYgPSBldmFsKF9hKTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgZXhj
ZXB0aW9uID0gZTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBfdHlwZXYgPSBldmFsKF90eXBl
KTsKKyAgICAgICAgaWYgKF9hdiBpbnN0YW5jZW9mIF90eXBldikgeworICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBWYWx1ZXMgdGhhdCBhcmUgdXNlZCB0byBpbmZlciB0
aGUgdHlwZSBvZiBhIGdpdmVuIHByaW1pdGl2ZSB0eXBlLgorICAgIHZhciB0ZXN0VmFsdWVzID0g
WworICAgICAgICB1bmRlZmluZWQsCisgICAgICAgIG51bGwsCisgICAgICAgIDUsIC8vIEludAor
ICAgICAgICAwLAorICAgICAgICAxLAorICAgICAgICBmYWxzZSwKKyAgICAgICAgdHJ1ZSwKKyAg
ICAgICAgNS41LCAvLyBEb3VibGUKKyAgICAgICAgIkhlbGxvLFdvcmxkISIsCisgICAgICAgICIi
CisgICAgXTsKKworICAgIC8vIFZhbHVlcyB0aGF0IGFyZSB1c2VkIHRvIGluZmVyIHRoZSB0eXBl
IG9mIGEgZ2l2ZW4gQm9vbGVhbi9TdHJpbmcgdHlwZS4KKyAgICB2YXIgdGVzdFR5cGVWYWx1ZXMg
PSBbCisgICAgICAgIHsgaXRlbTogbmV3IEJvb2xlYW4odHJ1ZSksIHR5cGU6ICJCb29sZWFuIiwg
dmFsdWU6IHRydWUgfSwKKyAgICAgICAgeyBpdGVtOiBuZXcgQm9vbGVhbihmYWxzZSksIHR5cGU6
ICJCb29sZWFuIiwgdmFsdWU6IGZhbHNlIH0sCisgICAgICAgIHsgaXRlbTogbmV3IFN0cmluZygp
LCB0eXBlOiAiU3RyaW5nIiwgdmFsdWU6ICIiIH0KKyAgICBdOworCisgICAgdmFyIHRlc3RDcnlw
dG9LZXlzQXJyYXkgPSBbCisgICAgICAgIFsiUlNBRVMtUEtDUzEtdjFfNSIsIHsgbmFtZTogIlJT
QUVTLVBLQ1MxLXYxXzUiLCB0eXBlOiAicHVibGljIiwgdXNhZ2U6ICJlbmNyeXB0IiB9XSwKKyAg
ICAgICAgWyJSU0FTU0EtUEtDUzEtdjFfNSIsIHsgbmFtZTogIlJTQVNTQS1QS0NTMS12MV81Iiwg
dHlwZTogInB1YmxpYyIsIHVzYWdlOiAidmVyaWZ5IiB9XSwKKyAgICAgICAgWyJSU0EtUFNTIiwg
eyBuYW1lOiAiUlNBLVBTUyIsIHR5cGU6ICJwcml2YXRlIiwgdXNhZ2U6ICJzaWduIiB9XSwKKyAg
ICAgICAgWyJSU0EtT0FFUCIsIHsgbmFtZTogIlJTQS1PQUVQIiwgdHlwZTogInByaXZhdGUiLCB1
c2FnZTogImRlY3J5cHQiIH1dLAorICAgICAgICBbIkVDRFNBIiwgeyBuYW1lOiAiRUNEU0EiLCB0
eXBlOiAicHJpdmF0ZSIsIHVzYWdlOiAic2lnbiIgfV0sCisgICAgICAgIFsiRUNESCIsIHsgbmFt
ZTogIkVDREgiLCB0eXBlOiAicHVibGljIiwgdXNhZ2U6IG51bGwgfV0sCisgICAgICAgIFsiQUVT
LUNUUiIsIHsgbmFtZTogIkFFUy1DVFIiLCB0eXBlOiAic2VjcmV0IiwgdXNhZ2U6ICJ3cmFwS2V5
IiB9XSwKKyAgICAgICAgWyJBRVMtQ0JDIiwgeyBuYW1lOiAiQUVTLUNCQyIsIHR5cGU6ICJzZWNy
ZXQiLCB1c2FnZTogInVud3JhcEtleSIgfV0sCisgICAgICAgIFsiQUVTLUdDTSIsIHsgbmFtZTog
IkFFUy1HQ00iLCB0eXBlOiAic2VjcmV0IiwgdXNhZ2U6ICJlbmNyeXB0IiB9XSwKKyAgICAgICAg
WyJBRVMtQ0ZCLTgiLCB7IG5hbWU6ICJBRVMtQ0ZCLTgiLCB0eXBlOiAic2VjcmV0IiwgdXNhZ2U6
ICJkZWNyeXB0IiB9XSwKKyAgICAgICAgWyJBRVMtS1ciLCB7IG5hbWU6ICJBRVMtS1ciLCB0eXBl
OiAic2VjcmV0IiwgdXNhZ2U6ICJ3cmFwS2V5In1dLAorICAgICAgICBbIkhNQUMiLCB7IG5hbWU6
ICJITUFDIiwgdHlwZTogInNlY3JldCIsIHVzYWdlOiAic2lnbiIgfV0sCisgICAgICAgIFsiSEtE
RiIsIHsgbmFtZTogIkhLREYiLCB0eXBlOiAic2VjcmV0IiwgdXNhZ2U6ICJkZXJpdmVCaXRzIiB9
XSwKKyAgICAgICAgWyJQQktERjIiLCB7IG5hbWU6ICJQQktERjIiLCB0eXBlOiAic2VjcmV0Iiwg
dXNhZ2U6ICJkZXJpdmVLZXkiIH1dLAorICAgIF07CisgICAgdmFyIHRlc3RDcnlwdG9LZXlzTWFw
ID0gbmV3IE1hcCh0ZXN0Q3J5cHRvS2V5c0FycmF5KTsKKworICAgIGluZGV4ZWREQi5kZWxldGVE
YXRhYmFzZSgiYmFja3dhcmRfY29tcGF0aWJpbGl0eSIpOworICAgIHZhciBvcGVuUmVxdWVzdCA9
IGluZGV4ZWREQi5vcGVuKCJiYWNrd2FyZF9jb21wYXRpYmlsaXR5Iik7CisgICAgb3BlblJlcXVl
c3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgLy8gVGhpcyBv
YmplY3RTdG9yZSBzdG9yZXMgZWxlbWVudHMgdGhhdCB3ZSBvbmx5IG5lZWQgdG8gY2hlY2sgaXRz
IHR5cGUgdG8gZGV0ZXJtaW5lIGl0cyBzZXJpYWxpemF0aW9uIHRhZy4KKyAgICAgICAgdmFyIG9i
amVjdFN0b3JlID0gZXZlbnQudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgidHlwZSIp
OworICAgICAgICAvLyBUaGlzIG9iamVjdFN0b3JlIHN0b3JlcyBlbGVtZW50cyB0aGF0IHdlIG5l
ZWQgdG8gY2hlY2sgaXRzIHZhbHVlIHRvIGRldGVybWluZSBpdHMgc2VyaWFsaXphdGlvbiB0YWcu
CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQuY3JlYXRlT2Jq
ZWN0U3RvcmUoInZhbHVlIiwgeyBhdXRvSW5jcmVtZW50IDogdHJ1ZSB9KTsKKyAgICAgICAgLy8g
VGhpcyBvYmplY3RTdG9yZSBzdG9yZXMgZWxlbWVudHMgdGhhdCB3ZSBuZWVkIHRvIGNoZWNrIGJv
dGggaXRzIHR5cGUgYW5kIGl0cyB2YWx1ZSB0byBkZXRlcm1pbmUgaXRzIHNlcmlhbGl6YXRpb24g
dGFnLgorICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBldmVudC50YXJnZXQucmVzdWx0LmNyZWF0
ZU9iamVjdFN0b3JlKCJ0eXBlVmFsdWUiLCB7IGF1dG9JbmNyZW1lbnQgOiB0cnVlIH0pOworICAg
ICAgICAvLyBUaGlzIE9iamVjdFN0b3JlIHN0b3JlcyBjcnlwdG8ga2V5cyB3aGljaCByZXF1aXJl
IGZldyBtb3JlIHN0ZXBzIHRvIGRldGVybWluZSBpdHMgc2VyaWFsaXphdGlvbiB0YWcuCisgICAg
ICAgIHZhciBvYmplY3RTdG9yZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3Rv
cmUoImNyeXB0b0tleSIsIHsga2V5UGF0aDogImFsZ29yaXRobS5uYW1lIiB9KTsKKyAgICB9Cisg
ICAgb3BlblJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGxvZygi
RXJyb3I6ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7CisgICAgfQorICAgIG9wZW5SZXF1
ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdDsKKyAgICAgICAgc3RvcmVUeXBlKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c3RvcmVUeXBlKCkKKyAgICB7CisgICAgICAgIHZhciB0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0
aW9uKCJ0eXBlIiwgInJlYWR3cml0ZSIpOworICAgICAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0g
ZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGxvZygiRXJyb3I6ICIgKyBldmVudC50YXJn
ZXQuZXJyb3IubmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0
ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7IHN0b3JlVmFsdWUoKTsgfQorCisgICAgICAgIHZhciBvYmpl
Y3RTdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCJ0eXBlIik7CisgICAgICAgIC8vIFRo
ZSBrZXkgb2YgYW4gaXRlbSBpcyB0aGUgdHlwZSBvZiBpdHMgdmFsdWUsIGhlbmNlIHdlIGNvdWxk
IGRldGVybWluZSB0eXBlIG1pc21hdGNoLCBpLmUuIHNlcmlhbGl6YXRpb24gdGFnIHJlb3JkZXIK
KyAgICAgICAgLy8gc2ltcGx5IGJ5IHVzaW5nIGFuIGl0ZW0ncyBrZXkgYW5kIHZhbHVlLgorICAg
ICAgICBvYmplY3RTdG9yZS5hZGQoWzEsIDJdLCAiQXJyYXkiKTsKKyAgICAgICAgb2JqZWN0U3Rv
cmUuYWRkKHsgcHJvcGVydHk6IG51bGwgfSwgIk9iamVjdCIpOworICAgICAgICBvYmplY3RTdG9y
ZS5hZGQobmV3IERhdGUoKSwgIkRhdGUiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBG
aWxlKFsiZm9vIl0sICJmb28udHh0IiksICJGaWxlIik7CisgICAgICAgIG9iamVjdFN0b3JlLmFk
ZChuZXcgSW1hZ2VEYXRhKDEwMCwgMTAwKSwgIkltYWdlRGF0YSIpOworICAgICAgICBvYmplY3RT
dG9yZS5hZGQobmV3IEJsb2IoWyJmb28iXSksICJCbG9iIik7CisgICAgICAgIG9iamVjdFN0b3Jl
LmFkZChuZXcgUmVnRXhwKCcnKSwgIlJlZ0V4cCIpOworICAgICAgICBvYmplY3RTdG9yZS5hZGQo
bmV3IEFycmF5QnVmZmVyKDEpLCAiQXJyYXlCdWZmZXIiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUu
YWRkKG5ldyBTdHJpbmcoJycpLCAiU3RyaW5nIik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChu
ZXcgTnVtYmVyKDEyKSwgIk51bWJlciIpOworICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IFNl
dChbMSwgMl0pLCAiU2V0Iik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgTWFwKCksICJN
YXAiKTsKKyAgICAgICAgLy8gVHlwZWQgYXJyYXlzCisgICAgICAgIG9iamVjdFN0b3JlLmFkZChu
ZXcgSW50OEFycmF5KCksICJJbnQ4QXJyYXkiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5l
dyBVaW50OEFycmF5KCksICJVaW50OEFycmF5Iik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChu
ZXcgVWludDhDbGFtcGVkQXJyYXkoKSwgIlVpbnQ4Q2xhbXBlZEFycmF5Iik7CisgICAgICAgIG9i
amVjdFN0b3JlLmFkZChuZXcgSW50MTZBcnJheSgpLCAiSW50MTZBcnJheSIpOworICAgICAgICBv
YmplY3RTdG9yZS5hZGQobmV3IFVpbnQxNkFycmF5KCksICJVaW50MTZBcnJheSIpOworICAgICAg
ICBvYmplY3RTdG9yZS5hZGQobmV3IEludDMyQXJyYXkoKSwgIkludDMyQXJyYXkiKTsKKyAgICAg
ICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBVaW50MzJBcnJheSgpLCAiVWludDMyQXJyYXkiKTsKKyAg
ICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBGbG9hdDMyQXJyYXkoKSwgIkZsb2F0MzJBcnJheSIp
OworICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IEZsb2F0NjRBcnJheSgpLCAiRmxvYXQ2NEFy
cmF5Iik7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RvcmVWYWx1ZSgpCisgICAgeworICAgICAg
ICB2YXIgdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbigidmFsdWUiLCAicmVhZHdyaXRlIik7
CisgICAgICAgIHRyYW5zYWN0aW9uLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeworICAgICAg
ICAgICAgbG9nKCJFcnJvcjogIiArIGV2ZW50LnRhcmdldC5lcnJvci5uYW1lKTsKKyAgICAgICAg
fQorICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZlbnQpIHsgc3Rv
cmVUeXBlVmFsdWUoKTsgfQorCisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IHRyYW5zYWN0aW9u
Lm9iamVjdFN0b3JlKCJ2YWx1ZSIpOworICAgICAgICAvLyBIZXJlIHdlIHN0b3JlIHZhbHVlcyBp
biB0aGUgdGVzdCBtYXRyaXggaW4gb3JkZXIgYW5kIHJlYWQgdGhlbSBpbiBvcmRlciB0byBzZWUg
aWYgYW55IG1pc21hdGNoIGhhcHBlbnMuCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVz
dFZhbHVlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9iamVjdFN0b3JlLmFkZCh0ZXN0VmFs
dWVzW2ldKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdG9yZVR5cGVWYWx1ZSgpCisgICAgewor
ICAgICAgICB2YXIgdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbigidHlwZVZhbHVlIiwgInJl
YWR3cml0ZSIpOworICAgICAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICAgICAgICAgIGxvZygiRXJyb3I6ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7
CisgICAgICAgIH0KKyAgICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGV2
ZW50KSB7IHN0b3JlQ3J5cHRvS2V5KCk7IH0KKworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSB0
cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgidHlwZVZhbHVlIik7CisgICAgICAgIC8vIEhlcmUgd2Ug
c3RvcmUgaXRlbXMgaW4gdGhlIHRlc3QgbWF0cml4IGluIG9yZGVyIGFuZCByZWFkIHRoZW0gaW4g
b3JkZXIgdG8gc2VlIGlmIGFueSBtaXNtYXRjaGVzIGl0cyB0eXBlIGFuZCB2YWx1ZS4KKyAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0VHlwZVZhbHVlcy5sZW5ndGg7IGkrKykKKyAgICAg
ICAgICAgIG9iamVjdFN0b3JlLmFkZCh0ZXN0VHlwZVZhbHVlc1tpXS5pdGVtKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBzdG9yZUNyeXB0b0tleSgpCisgICAgeworICAgICAgICAvLyBIZXJlIHdl
IGdhdGhlciBhbGwgdGhlIENyeXB0b0tleSBvYmplY3RzCisgICAgICAgIHZhciBwcm9taXNlcyA9
IFsgXTsKKyAgICAgICAgcHJvbWlzZXMucHVzaChjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHsg
bmFtZTogIlJTQUVTLVBLQ1MxLXYxXzUiLCBtb2R1bHVzTGVuZ3RoOiAyMDQ4LCBwdWJsaWNFeHBv
bmVudDogbmV3IFVpbnQ4QXJyYXkoWzB4MDEsIDB4MDAsIDB4MDFdKX0sIHRydWUsIFsiZGVjcnlw
dCIsICJlbmNyeXB0Il0pKTsKKyAgICAgICAgcHJvbWlzZXMucHVzaChjcnlwdG8uc3VidGxlLmdl
bmVyYXRlS2V5KHsgbmFtZTogIlJTQVNTQS1QS0NTMS12MV81IiwgbW9kdWx1c0xlbmd0aDogMjA0
OCwgcHVibGljRXhwb25lbnQ6IG5ldyBVaW50OEFycmF5KFsweDAxLCAweDAwLCAweDAxXSksIGhh
c2g6ICJzaGEtMSIgfSwgdHJ1ZSwgWyJzaWduIiwgInZlcmlmeSJdKSk7CisgICAgICAgIHByb21p
c2VzLnB1c2goY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7IG5hbWU6ICJSU0EtUFNTIiwgbW9k
dWx1c0xlbmd0aDogMjA0OCwgcHVibGljRXhwb25lbnQ6IG5ldyBVaW50OEFycmF5KFsweDAxLCAw
eDAwLCAweDAxXSksIGhhc2g6ICJzaGEtMSIgfSwgdHJ1ZSwgWyJzaWduIiwgInZlcmlmeSJdKSk7
CisgICAgICAgIHByb21pc2VzLnB1c2goY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7IG5hbWU6
ICJSU0EtT0FFUCIsIG1vZHVsdXNMZW5ndGg6IDIwNDgsIHB1YmxpY0V4cG9uZW50OiBuZXcgVWlu
dDhBcnJheShbMHgwMSwgMHgwMCwgMHgwMV0pLCBoYXNoOiAic2hhLTEiIH0sIHRydWUsIFsiZGVj
cnlwdCIsICJlbmNyeXB0Il0pKTsKKyAgICAgICAgcHJvbWlzZXMucHVzaChjcnlwdG8uc3VidGxl
LmdlbmVyYXRlS2V5KHsgbmFtZTogIkVDRFNBIiwgbmFtZWRDdXJ2ZTogIlAtMjU2IiB9LCB0cnVl
LCBbInNpZ24iLCAidmVyaWZ5Il0pKTsKKyAgICAgICAgcHJvbWlzZXMucHVzaChjcnlwdG8uc3Vi
dGxlLmdlbmVyYXRlS2V5KHsgbmFtZTogIkVDREgiLCBuYW1lZEN1cnZlOiAiUC0yNTYiIH0sIHRy
dWUsIFsiZGVyaXZlQml0cyJdKSk7CisgICAgICAgIHByb21pc2VzLnB1c2goY3J5cHRvLnN1YnRs
ZS5nZW5lcmF0ZUtleSh7IG5hbWU6ICJhZXMtY3RyIiwgbGVuZ3RoOiAxMjggfSwgdHJ1ZSwgWyJ3
cmFwS2V5Il0pKTsKKyAgICAgICAgcHJvbWlzZXMucHVzaChjcnlwdG8uc3VidGxlLmdlbmVyYXRl
S2V5KHsgbmFtZTogImFlcy1jYmMiLCBsZW5ndGg6IDEyOCB9LCB0cnVlLCBbInVud3JhcEtleSJd
KSk7CisgICAgICAgIHByb21pc2VzLnB1c2goY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7IG5h
bWU6ICJhZXMtZ2NtIiwgbGVuZ3RoOiAxMjggfSwgdHJ1ZSwgWyJlbmNyeXB0Il0pKTsKKyAgICAg
ICAgcHJvbWlzZXMucHVzaChjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHsgbmFtZTogImFlcy1j
ZmItOCIsIGxlbmd0aDogMTI4IH0sIHRydWUsIFsiZGVjcnlwdCJdKSk7CisgICAgICAgIHByb21p
c2VzLnB1c2goY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7IG5hbWU6ICJhZXMta3ciLCBsZW5n
dGg6IDEyOCB9LCB0cnVlLCBbIndyYXBLZXkiXSkpOworICAgICAgICBwcm9taXNlcy5wdXNoKGNy
eXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoeyBuYW1lOiAiaG1hYyIsIGhhc2g6ICJzaGEtMSIgfSwg
dHJ1ZSwgWyJzaWduIl0pKTsKKyAgICAgICAgcHJvbWlzZXMucHVzaChjcnlwdG8uc3VidGxlLmlt
cG9ydEtleSgicmF3IiwgbmV3IFVpbnQ4QXJyYXkoMTYpLCB7IG5hbWU6ICJIS0RGIiB9LCBmYWxz
ZSwgWyJkZXJpdmVCaXRzIl0pKTsKKyAgICAgICAgcHJvbWlzZXMucHVzaChjcnlwdG8uc3VidGxl
LmltcG9ydEtleSgicmF3IiwgbmV3IFVpbnQ4QXJyYXkoMTYpLCB7IG5hbWU6ICJQQktERjIiIH0s
IGZhbHNlLCBbImRlcml2ZUtleSJdKSk7CisKKyAgICAgICAgUHJvbWlzZS5hbGwocHJvbWlzZXMp
LnRoZW4oa2V5cyA9PiB7CisgICAgICAgICAgICB2YXIgdHJhbnNhY3Rpb24gPSBkYi50cmFuc2Fj
dGlvbigiY3J5cHRvS2V5IiwgInJlYWR3cml0ZSIpOworICAgICAgICAgICAgdHJhbnNhY3Rpb24u
b25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgbG9nKCJFcnJvcjog
IiArIGV2ZW50LnRhcmdldC5lcnJvci5uYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbihldmVudCkgeyByZWFkVHlwZSgpOyB9
CisKKyAgICAgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3Jl
KCJjcnlwdG9LZXkiKTsKKyAgICAgICAgICAgIC8vIEhlcmUgd2Ugc3RvcmUgYWxsIHRoZSBuZWNl
c3NhcnkgQ3J5cHRvS2V5cy4gTm90ZXMgdGhhdCBzb21lIGZ1bmN0aW9ucyB3aWxsIHJldHVybiBD
cnlwdG9LZXlQYWlyLgorICAgICAgICAgICAgLy8gSW4gdGhvc2UgY2FzZXMsIHdlIG5lZWQgdG8g
ZGVjaWRlIHdoZXRoZXIgd2UgbmVlZCB0aGUgcHVibGljIG9yIHRoZSBwcml2YXRlIGtleS4KKyAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgeworICAgICAg
ICAgICAgICAgIGlmIChrZXlzW2ldIGluc3RhbmNlb2YgQ3J5cHRvS2V5KQorICAgICAgICAgICAg
ICAgICAgICBvYmplY3RTdG9yZS5hZGQoa2V5c1tpXSk7CisgICAgICAgICAgICAgICAgZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgIGlmIChrZXlzW2ldLnB1YmxpY0tleS5hbGdvcml0aG0ubmFt
ZSA9PSAiUlNBRVMtUEtDUzEtdjFfNSIpCisgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RT
dG9yZS5hZGQoa2V5c1tpXS5wdWJsaWNLZXkpOworICAgICAgICAgICAgICAgICAgICBlbHNlIGlm
IChrZXlzW2ldLnB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSA9PSAiUlNBU1NBLVBLQ1MxLXYxXzUi
KQorICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0U3RvcmUuYWRkKGtleXNbaV0ucHVibGlj
S2V5KTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoa2V5c1tpXS5wdWJsaWNLZXkuYWxn
b3JpdGhtLm5hbWUgPT0gIlJTQS1QU1MiKQorICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0
U3RvcmUuYWRkKGtleXNbaV0ucHJpdmF0ZUtleSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2Ug
aWYgKGtleXNbaV0ucHVibGljS2V5LmFsZ29yaXRobS5uYW1lID09ICJSU0EtT0FFUCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICBvYmplY3RTdG9yZS5hZGQoa2V5c1tpXS5wcml2YXRlS2V5KTsK
KyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoa2V5c1tpXS5wdWJsaWNLZXkuYWxnb3JpdGht
Lm5hbWUgPT0gIkVDRFNBIikKKyAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdFN0b3JlLmFk
ZChrZXlzW2ldLnByaXZhdGVLZXkpOworICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChrZXlz
W2ldLnB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSA9PSAiRUNESCIpCisgICAgICAgICAgICAgICAg
ICAgICAgICBvYmplY3RTdG9yZS5hZGQoa2V5c1tpXS5wdWJsaWNLZXkpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgdmFyIHJlc3Vs
dCA9IHRydWU7CisgICAgZnVuY3Rpb24gcmVhZFR5cGUoKQorICAgIHsKKyAgICAgICAgdmFyIG9i
amVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oInR5cGUiKS5vYmplY3RTdG9yZSgidHlwZSIpOwor
ICAgICAgICBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICAgICAgICAgIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAg
ICAgICBpZiAoY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHNo
b3VsZEJlVHlwZSgiY3Vyc29yLnZhbHVlIiwgY3Vyc29yLmtleSk7CisgICAgICAgICAgICAgICAg
Y3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBy
ZWFkVmFsdWUoKTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZWFkVmFsdWUo
KQorICAgIHsKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oInZhbHVl
Iikub2JqZWN0U3RvcmUoInZhbHVlIik7CisgICAgICAgIG9iamVjdFN0b3JlLm9wZW5DdXJzb3Io
KS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgY3Vyc29yID0gZXZl
bnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAg
ICAgICByZXN1bHQgPSByZXN1bHQgJiYgKGN1cnNvci52YWx1ZSA9PT0gdGVzdFZhbHVlc1tjdXJz
b3Iua2V5IC0gMV0pOworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcmVhZFR5cGVWYWx1ZSgpOworICAgICAgICB9
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlYWRUeXBlVmFsdWUoKQorICAgIHsKKyAgICAgICAg
dmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oInR5cGVWYWx1ZSIpLm9iamVjdFN0b3Jl
KCJ0eXBlVmFsdWUiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBjdXJzb3IgPSBldmVudC50YXJnZXQu
cmVzdWx0OworICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiBzaG91bGRCZVR5cGUoImN1cnNvci52YWx1ZSIsIHRlc3RUeXBlVmFsdWVz
W2N1cnNvci5rZXkgLSAxXS50eXBlKSAmJiAoY3Vyc29yLnZhbHVlID09IHRlc3RUeXBlVmFsdWVz
W2N1cnNvci5rZXkgLSAxXS52YWx1ZSk7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVl
KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlYWRDcnlwdG9LZXko
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZWFk
Q3J5cHRvS2V5KCkKKyAgICB7CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGRiLnRyYW5zYWN0
aW9uKCJjcnlwdG9LZXkiKS5vYmplY3RTdG9yZSgiY3J5cHRvS2V5Iik7CisgICAgICAgIG9iamVj
dFN0b3JlLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAg
ICAgICAgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmIChjdXJz
b3IpIHsKKyAgICAgICAgICAgICAgICB2YXIgcmVmZXJlbmNlID0gdGVzdENyeXB0b0tleXNNYXAu
Z2V0KGN1cnNvci5rZXkpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAocmVm
ZXJlbmNlLm5hbWUgPSBjdXJzb3IudmFsdWUuYWxnb3JpdGhtLm5hbWUpICYmIChyZWZlcmVuY2Uu
dHlwZSA9PSBjdXJzb3IudmFsdWUudHlwZSkgJiYgKHJlZmVyZW5jZS51c2FnZSA9PSBjdXJzb3Iu
dmFsdWUudXNhZ2VzWzBdKTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAg
ICAgICAgICAgICAgbG9nKCJQYXNzIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICBsb2coIkZhaWwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9
Cis8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315294</attachid>
            <date>2017-07-12 15:56:31 -0700</date>
            <delta_ts>2017-07-26 21:13:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173998-20170712155640.patch</filename>
            <type>text/plain</type>
            <size>47173</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5NDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY5YmNhYTczZmFlNDI2
MzZlOWUzNzc3NTM0ZDhkNWVjNTE2MDJhMi4uYWZlYWEyZjk0NDg1NWI4MWE2MmYzOGY4ZmE5OTcy
YjE5YTBjY2Y5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA2LTMwICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW5kZXhlZERCOiBlbnN1
cmUgaXRzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mzk5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZXMgb2YgYmVoYXZpb3IuCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICBBZGQgYSBj
b21tZW50LgorCiAyMDE3LTA3LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBBY2Nlc3NpbmcgbG9jYWxEZXNjcmlwdGlvbiwgcmVtb3RlRGVzY3JpcHRpb24s
IGV0Yy4gYWZ0ZXIgc2V0VGltZW91dCByYWlzZXMgRVhDX0JBRF9BQ0NFU1MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4
IDVkOGNlNzhhZjVmYTQ4ZGYyZmM3OGJjYmMzYjg3NTRmZWIxM2NlMGUuLjI4NmNjZmM3ZDhhZjI3
YzNhNTcwMjZmMWQ1ZTU0YjA3Y2JlMjQzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMTE3LDYgKzExNyw3IEBA
IGVudW0gV2Fsa2VyU3RhdGUgeyBTdGF0ZVVua25vd24sIEFycmF5U3RhcnRTdGF0ZSwgQXJyYXlT
dGFydFZpc2l0TWVtYmVyLCBBcnJheUVuCiAgICAgU2V0RGF0YVN0YXJ0VmlzaXRFbnRyeSwgU2V0
RGF0YUVuZFZpc2l0S2V5IH07CiAKIC8vIFRoZXNlIGNhbid0IGJlIHJlb3JkZXJlZCwgYW5kIGFu
eSBuZXcgdHlwZXMgbXVzdCBiZSBhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBsaXN0CisvLyBXaG8g
ZWRpdHMgdGhpcyBsaXN0LCBwbGVhc2UgdGVhY2ggSW5kZXhlZERCLkJhY2t3YXJkQ29tcGF0aWJp
bGl0eSBBUEkgdGVzdCB0byBsZWFybiB0aGUgbmV3IHN0dWZmLgogZW51bSBTZXJpYWxpemF0aW9u
VGFnIHsKICAgICBBcnJheVRhZyA9IDEsCiAgICAgT2JqZWN0VGFnID0gMiwKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlOTE4OTk5NTdiZjA1MjNm
ZmNkOGYxNGFiMzBhMDUzN2FmNjNkNzdiLi4wYjkyYWNmNDhmZWYzYWQxZjEyM2FjZGIzMGY3ZmM1
MjgyZTliNDA0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTctMDYtMzAgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBJbmRleGVkREI6IGVuc3VyZSBpdHMgYmFja3dhcmQgY29t
cGF0aWJpbGl0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTczOTk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQSB0ZXN0IGlzIGNvbXBvc2VkIHRvIGVuc3VyZSBJbmRleGVkREIncyBiYWNrd2FyZCBjb21w
YXRpYmlsaXR5LiBUaGUgd2F5IGl0IHdvcmtzIGlzIHRvCisgICAgICAgIHJlYWQgZnJvbSBhIHBy
ZS1iYWtlZCBkYXRhYmFzZSBhbmQgc2VlIGlmIGFsbCB0aGUgdmFsdWVzIGFyZSBtYXRjaGVkIHdp
dGggdGhlIGV4cGVjdGF0aW9ucy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbTogQWRk
ZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpydW5KYXZhU2NyaXB0QWxlcnQpOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2UpOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y29weVdlYkNyeXB0b01hc3RlcktleSk6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgSGVyZSBpcyB0aGUgQVBJIHRlc3QgdGhh
dCBtb3ZlcyB0aGUgcHJlLWJha2VkIGRhdGFiYXNlIHRvIHRoZSBsb2NhdGlvbiB3aGVyZSBUZXN0
V2ViS2l0QVBJIGNhbiByZWFkIGZyb20sCisgICAgICAgIGFuZCBkZWNyeXB0cyBDcnlwdG9LZXkg
c2VyaWFsaXplZCBiaW5hcmllcyB3aXRoIGEgaGFyZCBjb2RlZCBtYXN0ZXIga2V5IHdoaWNoIHdh
cyB1c2VkIHRvIGVuY3J5cHQgdGhlIGRhdGEuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTM6IEFk
ZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWRE
QkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobTogQWRkZWQuCisgICAgICAgIFRoZXNl
IGFyZSB0aGUgcHJlLWJha2VkIGRhdGFiYXNlcy4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0bWw6
IEFkZGVkLgorICAgICAgICBUaGlzIGlzIHRoZSBhY3R1YWwgdGVzdCB0aGF0IGRvIGFsbCB0aGUg
cmVhZHMgYW5kIGNvbXBhcmlzb25zLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL0luZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWw6IEFkZGVk
LgorICAgICAgICBUaGlzIGlzIHRoZSBwYWdlIHRoYXQgYmFrZXMgdGhlIGRhdGFiYXNlLiBJdCBu
ZXZlciBydW5zIGF1dG9tYXRpY2FsbHkuIEl0IGlzIGZvciBzb21lb25lIHdobyBuZWVkcyB0byB0
ZWFjaAorICAgICAgICBJbmRleGVkREIgbmV3IHN0dWZmcy4gVGhlbiBpdCBjYW4gYmUgdXNlZCB0
byBiYWtlIHRoZSBkYXRhYmFzZSBhZ2Fpbi4KKwogMjAxNy0wNy0xMiAgTmFuIFdhbmcgIDxuX3dh
bmdAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBbaU9TXSBJbXBsZW1lbnQgYSB3YXkgdG8gcmV0
cmlldmUgYSB0ZXh0IG1hcmtlciByYW5nZSB3aXRoIGRlc2lyZWQgdGV4dCB0aGF0IGlzIGNsb3Nl
c3QgdG8gYSBwb3NpdGlvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmNjg1MDYwY2ViZjU5
YzQ2OGYwOTJjOWJhMzg1ZGYzOTZiN2ZiNjkxLi43YTYzYmZmNTRkYjQzNGQ5YWZkYjRiMDhlOTBj
OWRkY2E3OTI3ZmUwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTk5LDYgKzE5OSwxMSBA
QAogCQk1NzE0RUNCOTFDQThCNUIwMDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxV
UkwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NzE0RUNCODFDQThCNTg4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxV
UkwuaHRtbCAqLzsgfTsKIAkJNTcxNEVDQkIxQ0E4QkZFNDAwMDUxQUM4IC8qIERvd25sb2FkUmVx
dWVzdE9yaWdpbmFsVVJMRnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzE0RUNCQTFDQThCRkQxMDAwNTFBQzggLyogRG93bmxv
YWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sICovOyB9OwogCQk1NzE0RUNCRDFDQThDMjJB
MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxNEVDQkMxQ0E4QzIx
ODAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMMi5odG1sICovOyB9OworCQk1
NzU5OUUyMTFGMDcxOTE5MDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1OTlF
MjAxRjA3MTkxNzAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbSAq
LzsgfTsKKwkJNTc1OTlFMjcxRjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29t
cGF0aWJpbGl0eS5zcWxpdGUzIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3NTk5RTI0MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNr
d2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyAqLzsgfTsKKwkJNTc1OTlFMjgxRjA3MUFBMDAwQTNG
QjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUyNjFG
MDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMt
c2htICovOyB9OworCQk1NzU5OUUyQTFGMDcxQUEwMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dh
cmRDb21wYXRpYmlsaXR5UmVhZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTk5RTI1MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVk
REJCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0bWwgKi87IH07CisJCTU3NTk5RTJCMUYwNzFB
QTAwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0ZS5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTk5
RTIzMUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0
ZS5odG1sICovOyB9OwogCQk1NzY5QzUwQjFEOUIwMDAyMDAwODQ3RkIgLyogU2VyaWFsaXplZENy
eXB0b0tleVdyYXAubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NzY5QzUwQTFEOUIwMDAxMDAwODQ3RkIgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAu
bW0gKi87IH07CiAJCTU3OTAxRkIxMUNBRjE0MkQwMEVENjRGOSAvKiBMb2FkSW52YWxpZFVSTFJl
cXVlc3QuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzkwMUZCMDFDQUYxNDFDMDBFRDY0RjkgLyogTG9hZEludmFsaWRVUkxSZXF1ZXN0
Lmh0bWwgKi87IH07CiAJCTU3OTdGRTMxMUVCMTVBNjgwMEIyRjRBMCAvKiBOYXZpZ2F0aW9uQ2xp
ZW50RGVmYXVsdENyeXB0by5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1Nzk3RkUyRjFFQjE1QTVGMDBCMkY0QTAgLyogTmF2aWdhdGlvbkNsaWVudERl
ZmF1bHRDcnlwdG8uY3BwICovOyB9OwpAQCAtNzQzLDYgKzc0OCwxMCBAQAogCQkJCUY0QTMyRUM0
MUYwNUYzODUwMDQ3QzU0NCAvKiBkcmFnc3RhcnQtY2hhbmdlLXNlbGVjdGlvbi1vZmZzY3JlZW4u
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNEEzMkVDQjFGMDY0MzM3MDA0N0M1NDQg
LyogY29udGVudGVkaXRhYmxlLWluLWlmcmFtZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCUY0NjlGQjI0MUYwMTgwNEIwMDQwMTUzOSAvKiBjb250ZW50ZWRpdGFibGUtYW5kLXRhcmdl
dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTU3NTk5RTI3MUYwNzFBQTAwMEEzRkI4
QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyBpbiBDb3B5IFJlc291
cmNlcyAqLywKKwkJCQk1NzU5OUUyODFGMDcxQUEwMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dh
cmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtc2htIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTU3
NTk5RTJBMUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlS
ZWFkLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNTc1OTlFMkIxRjA3MUFBMDAwQTNG
QjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJRjRCODI1RDgxRUY0REJGQjAwNkU0MTdGIC8qIGNvbXByZXNzZWQt
ZmlsZXMuemlwIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0MUFCOTlGMUVGNDY5NkIwMDgz
RkEwOCAvKiBhdXRvZm9jdXMtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJRjQxQUI5QTAxRUY0Njk2QjAwODNGQTA4IC8qIGJhY2tncm91bmQtaW1hZ2UtbGlu
ay1hbmQtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTEyMzgsNiArMTI0Nywx
MSBAQAogCQk1NzE0RUNCODFDQThCNTg4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2lu
YWxVUkwuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IERvd25sb2FkUmVxdWVzdE9y
aWdpbmFsVVJMLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MTRFQ0JBMUNB
OEJGRDEwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1l
Lmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MTRFQ0JDMUNBOEMyMTgwMDA1
MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTDIuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9IERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMMi5odG1sOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1NzU5OUUyMDFGMDcxOTE3MDBBM0ZCOEMgLyogSW5kZXhlZERC
QmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1NzU5OUUyMzFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFj
a3dhcmRDb21wYXRpYmlsaXR5V3JpdGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEluZGV4ZWREQkJhY2t3YXJk
Q29tcGF0aWJpbGl0eVdyaXRlLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3
NTk5RTI0MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHku
c3FsaXRlMyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IGZpbGU7IHBhdGggPSBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc1OTlFMjUxRjA3MTkyQzAwQTNGQjhDIC8qIElu
ZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEluZGV4ZWRE
QkJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTc1OTlFMjYxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0
aWJpbGl0eS5zcWxpdGUzLXNobSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5
LnNxbGl0ZTMtc2htIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc2OUM1MEExRDlC
MDAwMTAwMDg0N0ZCIC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2VyaWFsaXplZENyeXB0b0tleVdyYXAubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3OTAxRkFDMUNBRjEyQzIwMEVENjRGOSAvKiBM
b2FkSW52YWxpZFVSTFJlcXVlc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBMb2FkSW52YWxpZFVSTFJlcXVlc3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3OTAxRkFFMUNBRjEzNzEwMEVENjRGOSAvKiBMb2FkSW52YWxpZFVSTFJlcXVlc3Qu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2FkSW52YWxpZFVS
TFJlcXVlc3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODQ4LDYgKzE4NjIs
NyBAQAogCQkJCTUxQUYyM0RFMUVGMUEzNzIwMDcyRjI4MSAvKiBJY29uTG9hZGluZ0RlbGVnYXRl
Lm1tICovLAogCQkJCTUxMDQ3Nzc1MUQyOThFMDMwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVy
eS5tbSAqLywKIAkJCQk1MTEwRkNFRjFFMDFDQkFBMDA2RjhEMEIgLyogSURCSW5kZXhVcGdyYWRl
VG9WMi5tbSAqLywKKwkJCQk1NzU5OUUyMDFGMDcxOTE3MDBBM0ZCOEMgLyogSW5kZXhlZERCQmFj
a3dhcmRDb21wYXRpYmlsaXR5Lm1tICovLAogCQkJCTUxQTU4Nzg0MUQyNzJFRjMwMDRCQTlBRiAv
KiBJbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLm1tICovLAogCQkJCTUxQkNFRTQ5MUM4NEY0
QUYwMDQyQzgyRSAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MubW0gKi8sCiAJCQkJNTFCMUVFOEQx
QzgwRjU4ODAwNjRGQjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLm1tICovLApAQCAtMjA4OSw2
ICsyMTA0LDEwIEBACiAJCQkJNTEwNDc3NzAxRDI5OEQ4NTAwOTc0N0VCIC8qIElEQkRlbGV0ZVJl
Y292ZXJ5LnNxbGl0ZTMtc2htICovLAogCQkJCTUxMDQ3NzcxMUQyOThEODUwMDk3NDdFQiAvKiBJ
REJEZWxldGVSZWNvdmVyeS5zcWxpdGUzLXdhbCAqLywKIAkJCQk1MTEwRkNGMDFFMDFDRDUzMDA2
RjhEMEIgLyogSURCSW5kZXhVcGdyYWRlVG9WMi5odG1sICovLAorCQkJCTU3NTk5RTI0MUYwNzE5
MkMwMEEzRkI4QyAvKiBJbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyAqLywK
KwkJCQk1NzU5OUUyNjFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCQmFja3dhcmRDb21wYXRp
YmlsaXR5LnNxbGl0ZTMtc2htICovLAorCQkJCTU3NTk5RTI1MUYwNzE5MkMwMEEzRkI4QyAvKiBJ
bmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0bWwgKi8sCisJCQkJNTc1OTlFMjMx
RjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0
bWwgKi8sCiAJCQkJNTFBNTg3ODIxRDI3MkVCNTAwNEJBOUFGIC8qIEluZGV4ZWREQkRhdGFiYXNl
UHJvY2Vzc0tpbGwtMS5odG1sICovLAogCQkJCTUxQkNFRTRDMUM4NEY1MkMwMDQyQzgyRSAvKiBJ
bmRleGVkREJNdWx0aVByb2Nlc3MtMS5odG1sICovLAogCQkJCTUxQkNFRTREMUM4NEY1MkMwMDQy
QzgyRSAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MtMi5odG1sICovLApAQCAtMzA0Miw2ICszMDYx
LDcgQEAKIAkJCQk0NDhEN0U0NzFFQTZDNTU1MDBFQ0M3NTYgLyogRW52aXJvbm1lbnRVdGlsaXRp
ZXNUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUVGMUE0MTFBRTYwMDQ0N0M0QyAv
KiBFcGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0NDRTdFRjAxQTQxMUFFNjAwNDQ3QzRDIC8qIEV2YWx1YXRlSmF2YVNjcmlw
dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1NzU5OUUyMTFGMDcxOTE5MDBBM0ZCOEMgLyogSW5k
ZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE1MTE4
MTAxREIxQUU0MDAwMTc2MzA0IC8qIEV4dGVuZGVkQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0NDRTdFRjExQTQxMUFFNjAwNDQ3QzRDIC8qIEZhaWxlZExvYWQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0M4M0UwNEYxRDBBNjQxODAwRkVCQ0YzIC8qIEZpbGVTeXN0ZW0uY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOWQzM2E1NjE1M2Y2ZDlhMDI4N2E2NmYyYmQyZWYwMmEwYzRkZjRkNgotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0lu
ZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbQpAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5o
PgorCisjaWYgV0tfSEFWRV9DX1NQSQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgor
I2ltcG9ydCAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIGJv
b2wgcmVjZWl2ZWRBbGVydDsKK3N0YXRpYyBSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGxhc3RBbGVy
dDsKKworc3RhdGljIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdLUGFnZVJlZiBwYWdlLCBXS1N0
cmluZ1JlZiBhbGVydFRleHQsIFdLRnJhbWVSZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmlnaW5SZWYs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgbGFzdEFsZXJ0ID0gYWxlcnRUZXh0Owor
ICAgIHJlY2VpdmVkQWxlcnQgPSB0cnVlOworfQorCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKFdLUGFnZVJlZiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLCBXS0Zy
YW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopCit7
CisgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyKTsKK30KKworc3RhdGljIHZv
aWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlKFdLUGFnZVJlZiwgV0tOYXZpZ2F0
aW9uUmVzcG9uc2VSZWYsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBl
UmVmLCBjb25zdCB2b2lkKikKK3sKKyAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2UobGlzdGVu
ZXIpOworfQorCitzdGF0aWMgV0tEYXRhUmVmIGNvcHlXZWJDcnlwdG9NYXN0ZXJLZXkoV0tQYWdl
UmVmLCBjb25zdCB2b2lkKikKK3sKKyAgICAvLyBBbnkgMTI4IGJpdCBrZXkgd291bGQgZG8sIGFs
bCB3ZSBuZWVkIGZvciB0ZXN0aW5nIGlzIHRvIGltcGxlbWVudCB0aGUgY2FsbGJhY2suCisgICAg
cmV0dXJuIFdLRGF0YUNyZWF0ZSgoY29uc3QgdWludDhfdCopIlx4MDBceDAxXHgwMlx4MDNceDA0
XHgwNVx4MDZceDA3XHgwOFx4MDlceDBhXHgwYlx4MGNceDBkXHgwZVx4MGYiLCAxNik7Cit9CisK
Ky8vIFdobyB0cmllcyB0byB0ZWFjaCB0aGlzIEFQSSB0ZXN0IHdpdGggbmV3IHN0dWZmLCBwbGVh
c2UgdXNlIEluZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwgdG8gYmFrZSBh
IG5ldyBjb3B5IG9mIHRoZSBkYXRhYmFzZSwKKy8vIGFuZCByZXBsYWNlIHRoZSBleGlzdGluZyBv
bmVzLiBUaGF0IGZpbGUgaGFzIHRvIHJ1biBieSBtb2RpZnlpbmcgdGhpcyBURVNUIGFzIENyeXB0
b0tleSBvYmplY3RzIGFyZSBlbmNyeXB0ZWQuIFdlIG5lZWQgdG8gdXNlIHRoZSBjcnlwdG8ga2V5
IGFib3ZlLgorVEVTVChJbmRleGVkREIsIEJhY2t3YXJkQ29tcGF0aWJpbGl0eSkKK3sKKyAgICAv
LyBDb3B5IHRoZSBiYWtlZCBkYXRhYmFzZSBmaWxlcyB0byB0aGUgZGF0YWJhc2UgZGlyZWN0b3J5
CisgICAgTlNVUkwgKnVybDEgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAiSW5kZXhlZERCQmFja3dhcmRDb21wYXRpYmlsaXR5IiB3aXRoRXh0ZW5zaW9uOkAic3FsaXRl
MyIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKyAgICBOU1VSTCAq
dXJsMiA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJJbmRleGVkREJC
YWNrd2FyZENvbXBhdGliaWxpdHkiIHdpdGhFeHRlbnNpb246QCJzcWxpdGUzLXNobSIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKworICAgIC8vIFNvbWVob3cgfi9M
aWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL1dlYnNpdGVEYXRhL0luZGV4ZWREQi8gZG9lc24n
dCB3b3JrIG9uIG15IG1hY2hpbmUuIEBCcmFkeSBhbnkgaWRlYT8KKyAgICBOU1VSTCAqdGFyZ2V0
VVJMID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L0RhdGFiYXNl
cy9fX19JbmRleGVkREIvZmlsZV9fMC9iYWNrd2FyZF9jb21wYXRpYmlsaXR5LyIgc3RyaW5nQnlF
eHBhbmRpbmdUaWxkZUluUGF0aF1dOworICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdl
cl0gY3JlYXRlRGlyZWN0b3J5QXRVUkw6dGFyZ2V0VVJMIHdpdGhJbnRlcm1lZGlhdGVEaXJlY3Rv
cmllczpZRVMgYXR0cmlidXRlczpuaWwgZXJyb3I6bmlsXTsKKworICAgIFtbTlNGaWxlTWFuYWdl
ciBkZWZhdWx0TWFuYWdlcl0gY29weUl0ZW1BdFVSTDp1cmwxIHRvVVJMOlt0YXJnZXRVUkwgVVJM
QnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5kZXhlZERCLnNxbGl0ZTMiXSBlcnJvcjpuaWxd
OworICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY29weUl0ZW1BdFVSTDp1cmwy
IHRvVVJMOlt0YXJnZXRVUkwgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5kZXhlZERC
LnNxbGl0ZTMtc2htIl0gZXJyb3I6bmlsXTsKKworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0V0so
V0tDb250ZXh0Q3JlYXRlKCkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQu
Z2V0KCkpOworCisgICAgV0tQYWdlTmF2aWdhdGlvbkNsaWVudFYwIG5hdmlnYXRpb25DbGllbnQ7
CisgICAgbWVtc2V0KCZuYXZpZ2F0aW9uQ2xpZW50LCAwLCBzaXplb2YobmF2aWdhdGlvbkNsaWVu
dCkpOworICAgIG5hdmlnYXRpb25DbGllbnQuYmFzZS52ZXJzaW9uID0gMDsKKyAgICBuYXZpZ2F0
aW9uQ2xpZW50LmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gPSBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uOworICAgIG5hdmlnYXRpb25DbGllbnQuZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvblJlc3BvbnNlID0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOwor
ICAgIG5hdmlnYXRpb25DbGllbnQuY29weVdlYkNyeXB0b01hc3RlcktleSA9IGNvcHlXZWJDcnlw
dG9NYXN0ZXJLZXk7CisKKyAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudCh3ZWJWaWV3
LnBhZ2UoKSwgJm5hdmlnYXRpb25DbGllbnQuYmFzZSk7CisKKyAgICBXS1BhZ2VVSUNsaWVudFY1
IHVpQ2xpZW50OworICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOwor
ICAgIHVpQ2xpZW50LmJhc2UudmVyc2lvbiA9IDU7CisgICAgdWlDbGllbnQucnVuSmF2YVNjcmlw
dEFsZXJ0ID0gcnVuSmF2YVNjcmlwdEFsZXJ0OworCisgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50
KHdlYlZpZXcucGFnZSgpLCAmdWlDbGllbnQuYmFzZSk7CisKKyAgICBXS1JldGFpblB0cjxXS1VS
TFJlZj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiSW5kZXhlZERC
QmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZCIsICJodG1sIikpOworICAgIFdLUGFnZUxvYWRVUkwo
d2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CisKKyAgICBVdGlsOjpydW4oJnJlY2VpdmVkQWxl
cnQpOworICAgIEVYUEVDVF9UUlVFKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobGFzdEFs
ZXJ0LmdldCgpLCAiUGFzcyIpKTsKK30KKworfSAvLyBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAv
LyBXS19IQVZFX0NfU1BJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkJhY2t3YXJkQ29tcGF0
aWJpbGl0eS5zcWxpdGUzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViM2U4ZWFhYWU5ZmNiNGM0OWYzMDUxNjYxMTc0
OWY2OGI1YjE0YjAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDExODc4NAp6Y21lSTUyVXRfZHg0
YGRCQnxzODdOfERmZW05OHV1TVhENEw2ZnVGSUM9aTZ1WSFwRlYjRFdGSWhGdVhHUnUmNT8KemlY
RlJSY1d0O1JERTk3fm4qYjc/P3otOyN8RykzOFhZJUU4QDBwbzFiQUJeLVpxQSRscCMlTEJnblVs
Q0FUXjBBCno8bitlbUZjSnhLPDhVd3hCY1puQGRVcXNnYlZCTDRLdEomPT1pZlJkVkhRanxydEND
S2p5NHUhbzNNXkRyIW1jQgp6PWc1cWY5VzFMYUp6bUM0cyM0bThAcmY+Xmppb3olTzl7dzwwMXlC
SUs7WWoqQWc/Yyp1NC10QT1Re3x3eWhPZXEKektmNTE0blYtclAzUjJTfkY2MkJ6eXhxZ1JJYnJT
fHtAeHNrRVJLPFlIO054QzNgTGRyekZyKlB6JWNLQS1YV2E4CnpwZkZCZ3hXN0xxRDNJZUI2ekpw
Yz5sdyFKYXJnRC1nYWBUIzRFTDZoaGo8NzN5TCk8QGFiblhgUX5BazQpV1RtWQp6R0lvLXFzUmtK
MFNWRDNmS1B6b2FCNl5DKGFNT2hYKFJHWU9GSnI3RkY2SHhXUyModGBFeGJUJXhpNnU/SCN1ST0K
emRCVD5reEtxcUFOe0lYR298JG95eGstRlpuRD0xQjs5REhiSURacUk4RH0mPEpENGpSJD9APEhe
N3UydzMyRVdVCnozMWlhdi1fejVpXmg5QlRjZHtfYGR4Ky07JWd8TCNQNFIqVihTIS09R1YleXN3
QFg8R2d4eFlGS245MlMyRHBicgp6YXtSbV96aXJtbjxfJDVRejY8dVpEfU9JalZxKkN3JDlALTVF
fUJja2chKyFWIVB0ZEtReXBtZnR4NFJDVDh2Rk0KejBuMGA5P15MKCRSLUt0PSZKWWJ+elB4QmFl
WjQlcXhhZj9WI3V3Y1VsOSRwRjFLTz1EI3xWLTlpeil4TFFSdXcmCnpHcXtPcCN7VCZ8VzklYVJY
WGJZNlFqQiNzZmxRdFFPPzJEbXlOSnk3TkVHbVY1KSUxb29oTmgmNkZiRW1CT1dSbQp6OV4oSE97
cmo0TTt5RF9SbmhFXnRNZDRjdGpJRV87c0BfYFBua0puY2pqYCFHV213YXt1Wm5lTjYpRSZeQmk+
a14KejNZRCZedEJkRVFiI2U7ZiN8bCM4TTVOa0pZNSQ4PWR4cGQjQXctYipKQD9HX0BpbVU3JntR
cTtAJD59b2Z7a3ZuCnpfQlB2Qj1yMDBsZCsmUyR5fVNvPU1BPT03NXw1dipMZWNhISZVWXIkUnJV
Mkg5dCZNLXdWeldZRVNGVDFAViQ1Ygp6a0ZFZFczRnNOKj9AdjZCKGZ0MD9IUGVqSzwqeGV2TmBm
IXp5NGQzSFRGSGkhNUljMXxrMTBhJTY+UXtvWjAjUWEKeiMzUiRTOTVFPkUqQWpFYypHdSY1R3RM
WGU+OGs0TGM+VjtAdn1gWmh7KH5lakN8XzZlSnV8VSQ4VCk9LVYjdDU7CnpxKSEjeUpZNlZ1ZEV5
eVUoRzVwcHphczhDUDQ7e0NEXmZhMTkmZzY/O15sWllKX3ZXaD5EWU8hMWRBcEx7T3gyVAp6TWBn
SSVWQXliQz4lYlJGIylPelBXezxnSnNwIVNVdk4wTnh0OTAldUM9KDYxdjhqd2BxSy1WZTIqKG1j
d0h6QHwKekVEX2E2IWNzNms3U34rXm5XI3U0a3A+JTltc1k9TT0rLUsreUNGKVZJI3hfNyEtWiYt
Zm4/JklJKEJjUmJINzdXCnpMdFUyMihDNDVVTUJAUmRaeiY+Y2RURCh8Tm1+WUduemQoIXFBbStY
blZOSmUoSlk1M3E5O3ZkU1IwQHMxY057PAp6OW9mYzExeWUtQEhJTko/QlIzNU9EeTduMURpbzxu
NiVpUkJEeTQySk1QK3olUF83SXJ7S1k7R3ElOXUzSTx6VF4KemRhaDRMcypLdUlnYG10NG1eWVR5
LWZhYj5Bb21tTTdSSUJ8N3srLS1JYnZLcTVPeDlUN3x9XksrTXZsTG1QJSpoCnprZFEzb3J6VWR+
b2g+YWJvb3BUTDw2fDlkJXd1RXVUeXRCVkJoVEVhd0B0aXhvU2kpey1Wd2Q1ZDNIbnQ5cGpXPQp6
b2tGRUVUbmdHT1Alfm9VTnI+UEcpRzA2WVE7Nk9+Z1JENG9BbGAwXihFJDw9MDBLWSYybWs+ZjAw
ZSpsNUM4JXwKejtReTlAIVlCJml8MlZlJEtSKEZhTjw/bDY7Zn4wbmNrVlpSQVMtQHZEPVJ5MG9W
Z1h4IU4lT3lGNG80fXYzR0E5CnpiMXUpcCQlZTtzaDxEYGpNR2g3blheOXNJRVFERD80dz1kQEhm
VjIzP0Q+ZUJsRUZDVitwMTVlZHpoMXUoPyljTAp6PXMqeTEjNzNkYyNKMFBXQih6PFlvMDJMPjtp
bjMtRFRHc0xnO04+azk7aTZzKV8tdmJpT1A2fiElRytZdV5SZUYKenM0aG8lPTJrS1RGIW0kMUQ/
NktBJWRUV3pXXlE5b1hUYDhJUypLVyEqbGhOQkhrYjkwWk9DJEF6R3JQQDx1RiQ7CnpPUElNIzBk
cDhMZlozTzYlMlo9QVdaJWQoJHpHRFZFd2VgRXowNl5tPjlRKWFyWlRaSVN1ejc7SiFFNUtEYGR4
Xwp6VypgOXBBT0hrXzAxeUJJS21aNTtmcXhOITl1KFhmci0oblAyY3k3PUFCdHU4VV5iWVE1KFBJ
VkdLaEZlfDh9dloKenElWih8U29nIyV4fmd6VChWMC1wOUY+cDIleklJQTdlV09RRTl1RGFNQXwp
MjBZfVZDamVeP3wqfnFvJSU8aEwyCnoyNEpSTiVrbzZeSlRhNTZYTjYlUW1+cSRNZDg0dmtzTitU
fDZ4Xkk+aDQzeEohY2YkanAjfXYtMzZZcUgtR2B0cQp6eVE0a0BpTWtQdDhGWCE8QlFxRWszZFFz
LUQwbm5ja0JJWSR2antPIUl+Vz01aU8jTGpjP0xTaFYwTV9FODNtNmQKemlwekJ0N3hWZEFWTz0+
MnU4b3MxNGwwWTFsJCh5RTBDVXJwNmcrazFoeTxqTER0Y35Pa14mdktVWGxXaW8ySH5kCnohJWFn
eyg4RW4jUWxSOWZDTWwzfT5uU09hYV9iPX16fSE/TjF5NWE3YlNWczk5Mi11IXFkdWJXOTEkX0kk
N35WMQp6ajx+QXdTSWhLOXYrK3dBQzJiMUI4fGZpcGhhRks7JHI2Zk02b3h4MEBnO2dJblhtOF80
VStMKWBUd09zR0dFU3wKeiFpWXZLZHwjfVctOT1rUmtHbj1gUygrNHYzKTElVzclbyR1IXE3KiNV
KmZnMFRfb1psdCZBIyNWVTVaVjRzK0wtCnp0YUtONypDO0hiM3hPfFd5VClJb3k0MzYlYmZxZyY3
eztoMmk2RTspfEdQJi1zYTxNeFkpZXFPJFU2MjkkWCMwTwp6eD9AMDZxQTwpRS1NMHBxJFdydkJl
QEgrODJtaz5mMDBlKmw1QzglfDAwO205QU9Ia196YHZMUHY5fDtNfEcjKkUKeiE4OU5NMWJfZSMw
MEtZJjJtaz5mMDBlKmw1QzgmKjAxXkt1dkdYelowZCMtXzFiX2UjMDBLWSYybWs+ZjAwZSpsCno1
QzglfDAwe2h0MilLflFjbjxBe3xFYCh+ajtkMz5USyMrZUIhU3JmJiUpU3kqamZKfTEzQGhpMDBL
WSYybWs+Zgp6MDBlKmw1QzglfDAwO25xcE8lMEppSmE1KHQ2dXh9ezRzU0szITx0QXt3KkVmPE1+
XlFiUChWRkMkUzRMYnsjckUKejBzPXEpMm1rPmYwMGUqbDVDOCV8MDA7bTlBT0htWmF8QiQtSXJ0
Q24xKDVvWmF+Tk4oe1hNJD9WKm1kVSModT9xCnpecSheakd5PyUzMDBlKmw1QzglfDAwO205QU9I
a18wMXlCSXwwTSNfPGVzP3JpdnVKRXhoRiMkfDBsbHhQaHBvNAp6fE5yazBkb3d6TDFPJEtwNUM4
JXwwMDttOUFPSGtfMDF5QklLbVo4Kl9Yc0ZhJG1aKy1aZE1SKTZoQnJORGlveWgKemVaOHl8JHop
VHU3Z3h5VGFudHlOX15EfExmQEV1YjU/U0E9TG0wP1M7YDZ3JXFjZ2R3YVdTIWlxIWd8JmZ0UWUm
CnpBazA/OFFRWksoa1E7flVjaG5gfnt9bEUlakQ0TWJsKWE3Sl40fktNU15AJDwwMDttOUFPSGtf
MDF5QklLbVo1Owp6MFUhVmJ7KUIpTSomT2VfRitmb3lvOGxjPzBQVmcjUyZwcFZEST5OOE5ENT9B
TXo7K0JRVCg1RTMxaW8/QyRKc1IKejJfenJAMWJfZSMwMEtZJjJtaz5mMDBlKmw1QzgpSVp3U090
PSRLWlhpSWh9cVlJY2ZIO0skR0FyNmVZIzM5WVFvCno7VXFGOE9xaVgqQUN4OWNPLUxSZ2hZI1o+
anU1MEsydUNKYUJxSnxiaW1BfDNVMkd8aXdfOGxAWDFSJE1uVEJhKQp6RnItOV54UVhmZjQqaDN3
bDFSSDhDTTZAK08kKWkzNzZtc0Y0TzJ5MEdKYVR0RF5BMGRHbyhjUV9AT1J7PE53VlYKemB2ZHc1
MDhpUD8tTVI+dUttWjU7MFUhVmJmQitCeDB6ZCE9MDBBSFgxYzFRKkQqe3c5aiNEVmFreFY5ekJv
ZGotCnpWMkooeWF+UyZeYHdqYXh5WT5ILU56aHAhMDBlKmw1QzglfDAwO205QU9Ia18wMXlCSUtQ
Pj8hU3F0eXsrNT81Uwp6PmltKWRuTCQ+P01QRGBgKGFGalRMUVpgREE4WUBqIWNVNn4zPG07MDAw
O205QU9Ia18wMXlCSUttWjU7MFUrPSUKekMlfE1zTDRXYDY0I3N9WnspMnNve28tRzRFfD49ZGZC
K0J4MHpkIT0wMEFIWDFiX2UjMDBLYlpVcks8PUJFSVl8CnpPYCh1K0RHSVdZRG4qcVN7U3A4ZkNv
YG5yX3k3Tjshd3pOdjBVIVZiZkIrQngwemQhPTAwQUhYMWMxTyNOfSRXewp6fEkzU2h8RFEkdHt5
JjFEXz4lJHd2dzs4KjAwS1kmMm1rPmYwMGUqbDVDOCV8MDB7Z3sxZUFVelc1SEcrMDBlKmwKejVD
OCV8MDA7bTlBT0hrXzAxeUJJS1Bkc19wVlYkSjh3ZGFhQU9Ia18wMXlCSUttWjU7MFUhVmJmV1hn
MEs7PnNMCno3SGtDcUttWjU7MFUhVmJmQitCeDB6ZCE9MDBBS0lsTSt6PE4kbSErZmRDS3kwemQh
PTAwQUhYMWJfZSMwMEtZJgp6Mj5lVjBkaStlcmZ+YE9SMm1rPmYwMGUqbDVDOCV8MDA7bTlBT0hr
QFFVWDFIUW9GJXlBT0hrXzAxeUJJS21aNTsKejBVIVZiZkIrQngwelZUMHdWJW1ZdW9WYVowVSFW
YmZCK0J4MHpkIT0wMEFIWDFiX2UjMDBLWSYybWs+ZjAwZSpsCno1QzglfDAwO205QU9Ia196YHYw
STZCIzlrTVB1ditifiQ/alRiYDZvbEU8Nnp5PzhtRWpTcz98YTV7RCNEP3RUKgp6Qi16TU84U1hZ
MUhlNEZqX1FqR2hBIWQhKVdBMGNnZFUzSUFqRTNZWWxuJkxSZT87aVVyWlM/NUlgVCp5andPZ3sK
eklieG56QkMzJnVyQ0B3NHVEYkBaZ2EjV3ttc1k9TT0rLUpwcUsqfWwlNVdpQ1dneE0qcjtnb1Eh
Nmo7XyVUZ0tvCno5OGBtN0pPSzRBTVB5QWN0PE5aRiViLWxOX1JMViFXdVlpamxUSWE/PHEkPm1x
XlMmUjE1fGB5NVF3RUMranl2OAp6cztIbV9sQSZiZXJvbGpeJl84R3BsP3B7X1Fian5ZaClTdU9O
PkxmITlGIX1BM1YqVEIxOEl2I3VNVGE+cU1xeTEKemt0KEJoUlVzJkkxbT14cHdSYytxRGFpZVZ4
YHB2Kkc9Xn49UUh+ZkY0fUBLU0khMUpvP1MjdGs1KFBZRzsqZ0xtCno8ZmtUYzZQK3pCRXVDeH4/
Yy13fFpPbWgxYENNfmJvK0hvUHNrY3FNZDdQYStGV3dRb3RhKX1zMTBDYShVITZqdwp6R2g3UFZF
S29DSTt6QHwkMi1HUHJeaXpvNU0xIW4yYlJnYnRpX3JsUjVDOCV8MDA7bTlBT0hrXzAxeUJJSzta
d0QKemZXanlXO3J9P2NgIyhPJi1BWTdtM0VfXiZxSWQyJGVJUDQtWiEwVDFaaylMbCYld3NyKS1L
a0ArXzg2VzgqP3R0CnohTzRjbGJCSzUzQDxrMzc5Y2hVZDJyUHRJTEpwYkFGZzlwIU82PldGbzA3
cGU9aTkxSnIrYilfa2tkd1ZoVWg+TAp6YT5QY1YmY3dGNmxPIXBtRGtXOHIhY1BAdVF3WFFoM2Ey
djZKeTNCZkQqbllHQnI0K180bGtZWDIxUn0tUUdAWFIKemxfflpaYCM4SWxKKUNYQ2Rkai1PST49
aGZuI0lheUBtUEs9R1p2TkUlRGx8biYjYUt5JUJWJn5BcHJwKEBLWH5nCnolRihDY2NKc244M057
P0FYSUthcGlrMkk1RUV4Ul42KWwkOUwobWUkT0chKmY2SXhrYXopNTVabH00OHUlMUAzPgp6JX14
Plc8Tld5OVFKSmFTbG9XTDg/SDROS2opPShNcj19JGNsN3IrYWA7WUUoLU0zQG94JjFlc3RhUWV8
aj52RFUKelJabEVqT3F2KiVuRXNBQ2BxK2xLakJCfEFhe2dlSEhueUhCKFZCNjVZdU50ckJpfmUx
RVNPIyR6SDlOYjYwPHs5CnpUR2IwOzgjbkJeekdVaiFgP0g9Y0paUExfQTZFTm81cGAoOHJlaClB
P2wkZndifjdme1AjI3RKaEFjNnkoRmBgUwp6cFFxWSV2XypBbiNeY3c4UVYqVDtARnBNNlErdXwx
O0l3Vl83dilGd2t5QF44bkFWU1RjOUgreXhqOX5lKSU3UTIKemwlM3diX3FqMT1fPk9mQkdtN3Vu
OHJSKEJ5cXIwRVpNSkRkRHg+Kz1hJkp8QjxSNGQkVH1Za2lJcn5KSXRldyVTCnpeK242cFQoVzY/
dGJPSU9ra2orVm4jdnU9MmM8cm5fKHVgZlh1WmpIREllenp5JGF0dWp7QzUjPUZPQ3VGJGRsMwp6
e2lMdCRgfFhxTiZDSThAe2p1ISMrNiQ3M0htMSFCVVJnWXs/JGpZTlctWSp7aks2MDVgX1N+NytL
RWY4WV5yMDUKem5xOF9nX3MqMCp6a1Q1RmsyUHUyMjVhNUlpeXwoV2hGI3VCdWRjflVvS0V0ZXo0
KFVmc1FVODk2PEhzcnNXITQ2Cno2KGslVFhrZDc0WVNjOWdAXzNgdHJifEExJi1xVmwzWjV7KD09
N2NpUU9VVUg8YmdxKFB5UkEoXlpDT2l2VG99Jgp6SHVTUXs9KmpaY0IoYV4oMXVII04qe3c4VkAj
KXZvdTd7QFcmMGlHTFImbmxPYjUjODJ4aHF2U3p5Q2RQPyNARnEKenVjaS1jUU9GSGpZa2xFfWlf
OGRLJjAzRkZ0dV55NkY+VzV5dysraW54eFBOLVQ2eHEpbk41cmE/YTwwZEQ7b0xvCnpWNGlUbXFY
JGV5byMqT2BYOWYqNkdQRylXQlhqSGk8Mn0tell5R1VmbngzUkRHbl9vUXZaWWs2SlkqPHUmWGU4
Rgp6OFJ1aVJqdkojTCtzSW95RD1JZj1WZ0Z1LWREKUpoSipLPlFjJWJ4bjt+WjBFOXMyfndfZmpU
VkkpbH4/P2VESFQKekNFKENHXjM8ektUcj1NJVg8VypCeUM+ODVSN1NzbSkyQjE5b1JaI3VScm9I
RHJhais1WVRuVTMqT29mUzRWX24rCnp4bjFAMFZhTD5hQUJyNm1YNnFmQXJoYStrTnFvaXYmKGUm
Ri0pdE8/Tyk4I2V1KXB0JXlnTkpNaG9fWW04TShNIQp6bzsxMXFmIVF4LXRpeSRTTTshSyhANXlM
ZFJBenNuemZhQ3ZKQHdVfUEwRjdebT5aPEk9VFRyYEJZV0pmbGRiT3QKeittRypedG95ZCtadkFj
WSNnPmA9MXRlKj11P2UoYHVDazJeYHhAOFpzJDZCR0l6M1BLa2MhYHZ0JEdRemdeQisyCnohITgt
Q2cpVW84VFMyfX1KJFBYNnN8NEJCcGxjJXpUMExlQWBLfEI2Xl9iZH1WYWg1bSoqQWtHWiM0KlMz
Y1M/cwp6KlchJH1QPWoycmVjS1ArSms4IWB4SnlALWBaaGZAY1dyKWIhfXpwWT5xbE4mbXM0fn1F
QjFvQHJYRCpCKldCTkUKekFYPE5PbEleaUVFeEpROVM5YEB+TU5Jam1uVmZmS1czLS1jUy1zYUpF
NnlGcENCZD9NWnQxUEZrK1pudlo+TnE9CnpYP3JIKWxYbH1eam5lKHNad3t0RF9jWkgyX2o0JWtv
VzI9JWh+cF5EaX1vXlNPflM5MGEwZm41ekBDT28/NyNRMQp6TEVPZ1N7Ykd2eFJjNmtxR0ZVdUto
UiVOOVV0ZVpWS1lENysje1I4SiFaITh3cXsrVismWXQ3QVREOHUxZzBAMSUKem1SX288NG1ybSZ0
bjJQdjliZDN0ZC1mfSooU1plUG9DWWB4bztEdTdfTGZ5WU5xXjxTTHNnYytSfVRieGBhQWlUCnpe
P1czKWNSSVZWcDB3aFdWbkswRHFTdyliN3hGeUAzfXRSYCFDVHdCX0E1NXNrNiVAeXR+Ukszczcy
WXtzRGU1Nwp6WHFKX1dUYCU/eWBsUjs2QGJ7MzUqU0hxWG9fTk1mWD5OJTZIQ2ItZ2lzaH1ZI3d5
T19WPlFKV2UkeyE/eDwzQmQKej08MiVYUSgwdHd1T1BWfG04bGw3PGU7cmE8VCowaD5rM19GN3cq
eVZKSXMzPzdiR1hBYSktNyQ9PHx8PzYoJUo5Cno9OzJtWGF5VFoxJHojMVJXMytfWVFRbElPc0R8
UmwzI2xYS0t4fnFDTm1TIVduUit4bGRXcl9JMHV6eEVAZGB8PQp6elQkUCo0QEZFdVFNQVB6JVJ0
OCUldWMqMipDS15LeEdMaiUhanhNI0ZYIU1CMCp7PC1kYX5+RiUwJDxQRlByWiUKeng0cWh9Ymhk
TyhuRWQ7dmJ3QE1zIX1nITJEZGRsR2R2PDExIy0mQEtwO2RORT0zVkMralpAMiRSaENYbTlHbypV
CnpWRV5odkdscUd7dHo3eiVQQ0tvQT5fcUt2O242R0lLaVdMZFN6PFYzIWptaWE4YGJDNkV+LT4w
ZTNVJTcrJTVYUgp6ZU8rMSVDSGlodSNINmFAPm1Gb1A5WDtRPVlNO2lEaVN6ezxFbXQwfGE2WjFt
Xn5UaXI0K2BURy0tTjB1PVdvPEcKejYhRntRamVoPkk+KmZ6X3QqVXJTUlp8KXplfURLcnl0KGRa
djNnRzRoSCZMZko9YjJ8d3FBSk5efGZ0dGY2WT9BCnoqKVV8PXYmajJQcl5IOWolfEU8RisyVF4x
JkNtLXN5Xmp1eWooOVpnenpacWlZdE4/bEtDXj05PEtLKzxfXkJjRwp6e1hEck0jKUlXRHpiNih5
OTwjeCUoRD5LM29CcUY5cHBpRXk+WmNhLVk7Qj5vP3ktd1Q8OHV6cEdUKmdYYWMhT30Kejh1PTFx
X3B4KTVFaEVRITJQSy0rWSg2YkhAXzAwIWctO1U/XlM0R0dwRlQ7Yk9UIzBsczFZTUMqRSNhdVh0
YXN2Cno/PkVNTS0jLXw0LVJVRkdHJTlDRSp7V1IoU0NVV3ViPjl1Z0JDZnxmZVNTO2MkbiFENXly
YC1fKjA+MUBjU29edQp6dTNUMkdiPDNJbTtMWV5XMUsmUWZ1RGYoaHFxPWE7SDBLcG9BJjBMdz9X
dFJ6WDxSdzlxLXN9PWBxZEJhWXhDQTgKej9sV0ZJR0hFQnteUkVzIXFPWUE9dzd5ajklJU98eVdg
NEVDY0I5YGtuYnIyb0h7bGBNQk52WF9ITyNRMGJ3KGNkCnp0bW87fT15QCpsbm5JZ21TRGdNN3A1
VkgoS3heU0lLRlkkVDxyYFpIJlolOUJvRCM3PXQhM1JCLUx2WiktI1JzMgp6U29ZIUUpTEFkNEpZ
PGMmVChgQVYtKjU1VXN6UFNHblR6QTJvX1B+aj5CbHdpZCohYFZXeUdgTWhMKzZMZyolZWYKeilf
Y3UhbGc7VSFPZkhLd14qdEdLTXJGZjx7ZXJ6Mlp4NEdZWj83cGpkdGlBP0s7WXZ4YDVfZkFIbmZi
Q2VLMj0rCnpmVXBxX2QkTXVudjk/S3tkYlcoe0Z+OXl3NV8/RjZ6MWZHSkhMWW1hSHl3NlpkQmNE
Mj5zKzVhJjlHSW9Dd0NrNgp6cD9EQDxeY1Raa3RnSilEd04pQE8jdTFtNGF3RUp0YiFCWnlGKHds
Q1JPVSNFcFNsdklkbmp2KCNIMD0tZFpOPHUKemBuezBZOV90a0Foe1NUcDtteiZPUGZRZTtNRj4o
ODxGcXczUTg5eHIjVzxwM0x+SXUmNipweEtOI3o9JVk9Kk1CCnpxX35HakVUeWFfRE9NN1I+Qj5E
TiNkMERzdCFFRDs/KTlaPHZHcjhLJX5lKkZ0UldecVFDNSlAaXdUaEptOGxHMAp6Qkc1fkNeRkVe
SkNKfUo3JDg2RVVER2A/TFR5ak5XWD92eHcqNldTZ2JnemU7YSZaI1h2c0ZZUFRCMUU3TUI1UkoK
ent6QCg0UT93fEZZU30xczMxTiVGKE87PVU0QyQ5VHcoPyhUPV99IU9nNHZmXmcjUnl0LU4mVElH
bkF4b3goPn5nCno4YmA/XnVPY25ONDxobHVCanJVfChReFpZRU1temRwYXJBMndqVDtMYD1IU3l1
Qz1TdDttMDB9YSl5QDRPQnkmQQp6JmFTc2dfUjIxP29acXU4Q3d7RWpLSHZBbFIxMDY2cUU9MVY8
bV4jTkh6QT1GcVImQypsM35YTyNALTJFcXBlYUUKej5pKVdOYXglRm49PiVGS1VmM35ueDNNYTlg
ZHhUPGZBO1I2YXllV3x6TCZBTlVDaHwmO3Z2QSUweG45TykzV19+CnpYNUp1NjhnNDgkanRKVEpa
I1Y1OTg8cyhtLSNwe1pJVkx+JVZzT08rWlM2ZWYtRURHYjRtR1V+dmtaTEtCWHd8IQp6ViV4WkpG
RnpvfDxmPjJRNThVNSZKaEpjUF9uIzdgVW1RMjAkJGFqbHRmOXktZ1VZK2gyYVVPNF9+M2RVPEpS
MXYKeldCLU8+YDd7Znt1dy1KPyNEKWMrZChCZmtWaEBwfUtSOTkkVzV6NHdVb3hZSTY7aVUmRVl1
JkJEekM3ditUeWQ/CnpgTm8jMmg0MGV0LUBJfnJ7SVY/VUk2YWdsS2VDP2NGMCo/NT5QMGJRaFot
MEEkMUZSZnM0e2w7JStneThjSHlRMgp6Unk4Q3dNTWxrZXtlMFAka1lAPTkjN1RHNzNkPkM4V2V4
UTZXMy0wdEc0Z2h5I1UpKHItKyh9PGhsWHVgNXo8UCgKeih6eDczQ2dPWjJoPyhwNmlid0xCQlYz
eW9XaUJ5Ji1PKDJ9aF5NX0Q3ViohZ0A5JEgmY2w5Y3IzWjhIN3h6KUM+CnpmfXlkd0A3NEk8Rlcx
ZSN1VihBSiRlZHsjZDEyNGtnUUptZ21XUiRxTW8jeVpTNmd2bSkjKk1NQlg5WiRYV1JTcgp6ZHlz
TTIhTiskTVdGMzNAYGVPUWxNb3hzbS14JWUqO2J0YDRNTGQwcHghcXgkQyVRWDVrZGNvNit7OWVu
I1QkcDAKejN8VmQ4eF9QK1UqNXpnSV8qMiVAWkVOfUhKYWdaJV4/QX5OY3RfWkBXZF9TNDZWRloy
SCZvfDc/YkMyXipVKmFqCnp1NFVfcjk8dUBfLXgpd208aktEQDlhZVlLSS1hcjYqZnJePHtORktn
czQzYmw1dH5TP15CcEdrTHo2aytwUFRucQp6dWtNdl9TNXdOcE8ldFh4X3xmKWs0eWBaPXpFR31P
YEB6S1Vnd0RqMDd0PVRJYVhaMzU9SD1iZnVPKTlSKyZ9S0IKeil3cl5fMmBjSTtJcUF1KmlkJkYq
cXFOaSg3a0BmeVA7QDA+M3JEeH5ffT88bTxnNGErcVZhM0xUbVEtV0lAdFM0CnpNRWIhTUV6RXY/
RkZ5PTtGbW9BYSRkIWJFQys5ZE5pUzsqPHJVcUYxcyZMLWtpOXFIfWo2WGZNZUR8WnRpSTMjXgp6
aFV8JmMhRH1PKSlJQiR0aXA8K0ZIXjZ4UC1JZU41KkRrNmFeQWZvSEUlU2BPVk98Kld5OGlKaD5t
NkF0cWZtJm0KemNPTShGdzVyLTxaSzBpbUBMPT9GJTJtVkpXMGMhdV9Sc1lTQTl0dlBoUm1DeEQx
QXJjJk1NMF4hQlZWcigwVTg8CnplMUU2bUxIO2swZEhRV1RlPm9OWWNIKWpKaSU3Z0BZXmxGdFVj
UV9XVDRmN0o5am1OMjhaJDVTNUReKm4/OGpHRwp6PyM5Q29gbjM5VUZMV2xUelZVYWVWPUM1c3Ml
RitfMzk2PVZmNFd0elRySCN8cmY9QWpATz5mVWIrcm40SDRVNyUKelN7RE9WWmJ6Jld2Sk58NlVa
cDBgSEI4ODdFR2hpaD4qZDUxRGMyVWdrfS1NaFI9PXY+LTI0ZkhedDkoR15oWmMhCnpaKylpT0tS
ST5hSyZhPUg1aT9jfXZSN0RxcmRYIVo3YT9JWnRUVE9FJm98eXojRDM8T3hPO2dBbEN0ZWJ7JGpt
Nwp6bWRgaCY7cFQtIzFRTyFZa3tBaSRTJk5gfXxGQUQ1U0dpe0M9NjQ8fnVHZzJvcD5EaE1kMVR8
TyRsYUYpZD5YbFcKemxtRDlLI2Z2dFVYbm92aFloMntEIy13RDsxblNeKFFMe3sldDl4TStSenhA
Q0VqbzI8b2IpRW1neGxLI2AqSEBhCnptR1JxS1IzVitlRCZ9T1d6TjFEPihEWjk5Q2ZZOUJQWTZ5
ezFgSGNLKjA2UzNVMUkrdilsdnQwQU1SMTlIWH1YZgp6e3EtVHVuMU4yU0JoUnlgeG5JcEBFOFFN
Xl8wU2BBWFhtNmhLY0JOe2Z6cH1GKyhpJU0jPUh3dGI9czRTOV5PNVkKenU4eGo3VXI2aXFaMUFE
N1RWKXEyanFhPj9HfnVxfUZAKlFiKF5zRlN6Y3wqWStkQjNCeXkrUWtrfWVIKTd5RT0wCnorWSVe
fHpWWFFnU0RjMCQmflBYNUU7OHx7eG5tYk9OVkd4Kmkpc0koZVBzRW55d0BqN2xkSkVDa25PaDdC
VVU3Wgp6b3NyczZ3V2FVeF90RkQpNHlvRGBfclBhKmZ3WlpZfENYQE5DJXQ8Wm5DN09PRiNEaCU1
WiNMc3ZhP25yQFJ1aFcKekdMfTBudkRqa20rKj5QV0whaX5nZ0xSKkBESkZ3R2laJFBEUj1ZYj9Y
RTx2JnVXKWVyUiZ2M1NDa0FLeVJHUTtXCnpOI2lGQCZNNFh4KFdBfkpaR2w/KE1QdSNUdnVOZ1Ba
KkdXdnpQYi1SKWJnbHpMdD1MUXNLK31xMU5NO0dua0ZBPQp6MzNQR3tKYjJQTy1+S1Q8eSo4MUh7
U2x8TT8xZklsKXprYiYtdE5ZTVRoKX14JnhKY1o5WG8le1c0ZndvKn1uTE0KekJMPlJiQClHVDto
YmdLQXJKUjN4RnNFd0NHbjN6VUp5K1BkIU4wS2FwM3pJQ2ZjK1E0WDA3YWZ7Xjk5aVdoZHUoCnoy
SXk7XjQ0SWx5RipmfDxAfHtROF8pYFgzOSQ2Um9iZT4xOCRAOWQ/eHdqe3FlfCVRPWAjfGg3Kn5R
cD5AenBsWgp6VlJ9IWxHOUglSVQoMVp6eldhVzZSOGVmKGI/dUxuNFkxXjxCai07cTc+RmdHV2wx
QHxTdngtWll+dSY3WEQ/SHsKekV9d1dLd2ZmK0o5cytpc2lCOCFlKGkzbWlLMFUwciF7ZllDTiRh
e04zJElkbD1VKzkjPWYqNkopKDstb1UtfGhgCno7aTxDJFlxbDg8KEU3YUI/dlJTPkFleWhrLUM9
SzZPJChhUHZUV09nc3E8e0MlVSVATWo5cHh5Ril6ejlMME56MAp6SGFEKFFXVDlacXU2Z1JJM3RU
Mi17NlNqYmApdWxhJjgtO0x5ZSojQVk7KmZ1Wl53PHRDOzdWMSRja0JYIXRJKVYKentqa3JebXNJ
dVpTK1BRKDZlRkU7WDdgTn5OO31rXzQ2dUdfTVE9NkErQnlHVCg3Ukh0T1RYQSVAb3VibUdyZTl2
Cnp3JV8mUjdqTEo8Yyo+V3A5RDkjZmt5KzwrV0s7UEM/TEpPMllrc0A2I19pTCspND9iQ2ApM3RM
amdCKmF2TmtxKAp6JG87YG4ze0szQUpZSnZVKkxNWnBhXit+Zjs1cHVHNXhNbyQ0N0NrNkMqQHRm
NW1WbHFXRXxBcmA1bFE8N0JLVygKemtOSCZ2WigzPWwlflJHP0gkVjIrIUxoJEpjNFVCUlk0b2hP
Yj9YQ09QSU9abmUxUEZkNG5NIXJZLVJhTF5eeiMzCnpncXMkNnd5fE51NCRRS2N1K193SyF+N2ZP
KTJmeX0qcj5afisqN3dnLVEwJWkoZk9CY3FncmNkUWs5YyN6eDdhSQp6SVpvUjxQfmhpZ1l3QTRW
TmJZaGdVN09PSnJ6WEt9XiViKnZrJXReRCV+Qn5oVSt2dzVPS1ZVeEdeMGpEJjs1S3UKenlUNHRg
PSgkMWlpZk94Y3lYbzJTb1VQfm1LRm00WCNOZihCVmByfW9vSF5JeDZ0cGVNRTJ8WSFZOWxzJHhJ
TihVCnpRKVRiRmo2Y3BrelEzNjwjTCQmMU94QkEmOHl8RFg/MHY2aUFLcVBJKkBWPX0tZmdMV0tX
bl4wVSl6Mnx2RXlARwp6S1lkeV5WdCZEYnEkdit1YjNnV1hVZ3FmRnR+aFNAbHdUUndHYVdPWSMk
eip6OSF2RWFZY19kfl5YTTU1YmVFbSsKenY3RUgzSF8wVTsjVjxLfnA2QWxiR3dkSEc3RWRkNDlB
e0xDTS08ckpUfiN5ZG55fkRSekxSfFk9KXBRKCZ1Z3EoCnp0YTROSXtTcj1qSDIyOGg5Nm4kJl5W
MV4tbUJtZEorTDI/Yl8kT3ZPUVpGa2toLSZsNz9Ya1N+e1FaU25CS0V4Kwp6NVVxMUVZUWVJSF5v
aWFqWVpmLSNqTkxZPiZ3QVo4MThARnpafGB1cXUkQz9GN0xvZipld01RO0ZNaXNGND1OYDkKemE8
MnJtU0leMC1XX2pLKD5HI0dhVllhQG1YMTw5PEJXZENea0FUfFBkbks+bSNuem41YG1GN0VmQXV1
Mj1mfCY/CnpvZllhbyV+fmJQOHRZXn18OWJUISFOQjVRJTlKd2lGMElVJk5xJSpwVnlUUzlQUyo4
eDMkK2c/RFU5dl5hQ0BlZwp6dEomO3Z3K3dpRjw8VDFLbThPYHM/Njxga3JRWSlVMjBsSjxCRDdk
KGp+Y2goN0Z2VFZBTkhCNUR3RkslZGV2b04KUHZyZHp6PFFue2FgXmYoVFhQTWVpCgpsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJCYWNrd2FyZENv
bXBhdGliaWxpdHkuc3FsaXRlMy1zaG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTI0MDMzZDMyOWY4YzdkYzhjMGEy
NTQwMzk5NTYxYTBlMDdhMWYyYwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzI3NjgKemNtZUkq
Tm01ZiQ2dnB3N0NNYn1RNVcwbFdzRURFPEI3TnUpZmpJLV9ZezRvdkw5clMzO3xMfTtHZENkVCNg
fiU9Cnp1dUBvJU5efTBWPmVSX2dVaFheSkZZfXdpP0ZXVDVXWXI8JVBPVlFgdHU2aCFFZDk5cGRR
fD4/eTclcTs9Z3N4Uwp6IWQ+P0ZTPlpxTDVCcjRgYGskJipjezlFclVmWitQOEdCZGstTGE9KT99
YDFIXzIqVy1Adyg0P2V8KCpgcDBPSDsKeipWKSl9KSg1U1VkdSNSVEooQk13Xk0lPk05TXY9QT9L
PTFrVGE4JGFUOCZ2MXRjcTZTUndiKG10TUw2fiZ3cEs0CnpLUFAtMWVoVUA/MnExc30wdGdfMDAw
SWFnZkIqc3JBYjxiQDJxMXN9MHRnXzAwMElhZ2ZCKnNyQWI8YkAycTFzfQp6MHRnXzAwMElhZ2ZC
KnNyQWI8YkAycTFzfTB0Z18wMDBJYWdmQipzcnc0VDZmPnk2eD9pOTc1KGhMb008Jn0tKk0KeldS
PHMqOHd6QC1xWHRkR1cxbTdgP0l8e0t1fTchZz54K3d8ZW5QSk1pVGNRLS1Jfnw3X0kzUW9lZldD
dzJ5OFVaCnpDYH4+fElLenQ3VUlMciM2e243QSFzJjZXXzdXKCFTRFpTZz5DLXxUY1czS0gyeUFJ
anBMTm9STjRNQkIpQjFiagp6WF5WfWB4SFNabFEpWC0yIWJjVD5qMjRrVnpeVEIxSn5+WktZeUAo
NDNpK2dfXi0/b25BbUJgMyg5WWtWKGhJJEUKem1ZY1c7ZyNWe180RmR2QjElQF4yRyYhKm03fHxP
TDVPNjlHeyl2bClmS1AjPC1mQmsmS0VzcFJ4eGwjUXc1dm5zCmgzZEh2KnU7ZW9+c1N6LU5QYmVW
WlIkJHB9YSlLa1UwPkp8WD9nMlA0R35mVUwKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkJh
Y2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL0luZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yOGYyZmUwZTE4NTcxYzFhMWNiZjU2MzQ3ZjBhY2RmMDlhYmMwNmIzCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhl
ZERCQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5odG1sCkBAIC0wLDAgKzEsMTMxIEBACis8c2Ny
aXB0PgorICAgIGZ1bmN0aW9uIGxvZyhtc2cpCisgICAgeworICAgICAgICBhbGVydChtc2cpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHNob3VsZEJlVHlwZShfYSwgX3R5cGUpCisgICAgeworICAg
ICAgICB2YXIgZXhjZXB0aW9uOworICAgICAgICB2YXIgX2F2OworICAgICAgICB0cnkgeworICAg
ICAgICAgICAgX2F2ID0gZXZhbChfYSk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAg
ICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgICAgIH0KKworICAgICAgICB2YXIgX3R5cGV2ID0gZXZh
bChfdHlwZSk7CisgICAgICAgIGlmIChfYXYgaW5zdGFuY2VvZiBfdHlwZXYpIHsKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVmFsdWVzIHRoYXQgYXJlIHVzZWQgdG8g
aW5mZXIgdGhlIHR5cGUgb2YgYSBnaXZlbiBwcmltaXRpdmUgdHlwZS4KKyAgICB2YXIgdGVzdFZh
bHVlcyA9IFsKKyAgICAgICAgdW5kZWZpbmVkLAorICAgICAgICBudWxsLAorICAgICAgICA1LCAv
LyBJbnQKKyAgICAgICAgMCwKKyAgICAgICAgMSwKKyAgICAgICAgZmFsc2UsCisgICAgICAgIHRy
dWUsCisgICAgICAgIDUuNSwgLy8gRG91YmxlCisgICAgICAgICJIZWxsbyxXb3JsZCEiLAorICAg
ICAgICAiIgorICAgIF07CisKKyAgICAvLyBWYWx1ZXMgdGhhdCBhcmUgdXNlZCB0byBpbmZlciB0
aGUgdHlwZSBvZiBhIGdpdmVuIEJvb2xlYW4vU3RyaW5nIHR5cGUuCisgICAgdmFyIHRlc3RUeXBl
VmFsdWVzID0gWworICAgICAgICB7IGl0ZW06IG5ldyBCb29sZWFuKHRydWUpLCB0eXBlOiAiQm9v
bGVhbiIsIHZhbHVlOiB0cnVlIH0sCisgICAgICAgIHsgaXRlbTogbmV3IEJvb2xlYW4oZmFsc2Up
LCB0eXBlOiAiQm9vbGVhbiIsIHZhbHVlOiBmYWxzZSB9LAorICAgICAgICB7IGl0ZW06IG5ldyBT
dHJpbmcoKSwgdHlwZTogIlN0cmluZyIsIHZhbHVlOiAiIiB9CisgICAgXTsKKworICAgIHZhciB0
ZXN0Q3J5cHRvS2V5c0FycmF5ID0gWworICAgICAgICBbIlJTQUVTLVBLQ1MxLXYxXzUiLCB7IG5h
bWU6ICJSU0FFUy1QS0NTMS12MV81IiwgdHlwZTogInB1YmxpYyIsIHVzYWdlOiAiZW5jcnlwdCIg
fV0sCisgICAgICAgIFsiUlNBU1NBLVBLQ1MxLXYxXzUiLCB7IG5hbWU6ICJSU0FTU0EtUEtDUzEt
djFfNSIsIHR5cGU6ICJwdWJsaWMiLCB1c2FnZTogInZlcmlmeSIgfV0sCisgICAgICAgIFsiUlNB
LVBTUyIsIHsgbmFtZTogIlJTQS1QU1MiLCB0eXBlOiAicHJpdmF0ZSIsIHVzYWdlOiAic2lnbiIg
fV0sCisgICAgICAgIFsiUlNBLU9BRVAiLCB7IG5hbWU6ICJSU0EtT0FFUCIsIHR5cGU6ICJwcml2
YXRlIiwgdXNhZ2U6ICJkZWNyeXB0IiB9XSwKKyAgICAgICAgWyJFQ0RTQSIsIHsgbmFtZTogIkVD
RFNBIiwgdHlwZTogInByaXZhdGUiLCB1c2FnZTogInNpZ24iIH1dLAorICAgICAgICBbIkVDREgi
LCB7IG5hbWU6ICJFQ0RIIiwgdHlwZTogInB1YmxpYyIsIHVzYWdlOiBudWxsIH1dLAorICAgICAg
ICBbIkFFUy1DVFIiLCB7IG5hbWU6ICJBRVMtQ1RSIiwgdHlwZTogInNlY3JldCIsIHVzYWdlOiAi
d3JhcEtleSIgfV0sCisgICAgICAgIFsiQUVTLUNCQyIsIHsgbmFtZTogIkFFUy1DQkMiLCB0eXBl
OiAic2VjcmV0IiwgdXNhZ2U6ICJ1bndyYXBLZXkiIH1dLAorICAgICAgICBbIkFFUy1HQ00iLCB7
IG5hbWU6ICJBRVMtR0NNIiwgdHlwZTogInNlY3JldCIsIHVzYWdlOiAiZW5jcnlwdCIgfV0sCisg
ICAgICAgIFsiQUVTLUNGQi04IiwgeyBuYW1lOiAiQUVTLUNGQi04IiwgdHlwZTogInNlY3JldCIs
IHVzYWdlOiAiZGVjcnlwdCIgfV0sCisgICAgICAgIFsiQUVTLUtXIiwgeyBuYW1lOiAiQUVTLUtX
IiwgdHlwZTogInNlY3JldCIsIHVzYWdlOiAid3JhcEtleSJ9XSwKKyAgICAgICAgWyJITUFDIiwg
eyBuYW1lOiAiSE1BQyIsIHR5cGU6ICJzZWNyZXQiLCB1c2FnZTogInNpZ24iIH1dLAorICAgICAg
ICBbIkhLREYiLCB7IG5hbWU6ICJIS0RGIiwgdHlwZTogInNlY3JldCIsIHVzYWdlOiAiZGVyaXZl
Qml0cyIgfV0sCisgICAgICAgIFsiUEJLREYyIiwgeyBuYW1lOiAiUEJLREYyIiwgdHlwZTogInNl
Y3JldCIsIHVzYWdlOiAiZGVyaXZlS2V5IiB9XSwKKyAgICBdOworICAgIHZhciB0ZXN0Q3J5cHRv
S2V5c01hcCA9IG5ldyBNYXAodGVzdENyeXB0b0tleXNBcnJheSk7CisKKyAgICB2YXIgb3BlblJl
cXVlc3QgPSBpbmRleGVkREIub3BlbigiYmFja3dhcmRfY29tcGF0aWJpbGl0eSIpOworICAgIG9w
ZW5SZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBsb2coIkVycm9y
OiAiICsgZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUpOworICAgIH0KKyAgICBvcGVuUmVxdWVzdC5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQ7CisgICAgICAgIHJlYWRUeXBlKCk7CisgICAgfQorCisgICAgdmFyIHJlc3VsdCA9IHRy
dWU7CisgICAgZnVuY3Rpb24gcmVhZFR5cGUoKQorICAgIHsKKyAgICAgICAgdmFyIG9iamVjdFN0
b3JlID0gZGIudHJhbnNhY3Rpb24oInR5cGUiKS5vYmplY3RTdG9yZSgidHlwZSIpOworICAgICAg
ICBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICAgICAgICAgIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBp
ZiAoY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHNob3VsZEJl
VHlwZSgiY3Vyc29yLnZhbHVlIiwgY3Vyc29yLmtleSk7CisgICAgICAgICAgICAgICAgY3Vyc29y
LmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICByZWFkVmFs
dWUoKTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZWFkVmFsdWUoKQorICAg
IHsKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oInZhbHVlIikub2Jq
ZWN0U3RvcmUoInZhbHVlIik7CisgICAgICAgIG9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgY3Vyc29yID0gZXZlbnQudGFy
Z2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKGN1cnNvci52YWx1ZSA9PT0gdGVzdFZhbHVlc1tjdXJzb3Iua2V5
IC0gMV0pOworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICAgICAgcmVhZFR5cGVWYWx1ZSgpOworICAgICAgICB9OworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJlYWRUeXBlVmFsdWUoKQorICAgIHsKKyAgICAgICAgdmFyIG9i
amVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oInR5cGVWYWx1ZSIpLm9iamVjdFN0b3JlKCJ0eXBl
VmFsdWUiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0
OworICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiBzaG91bGRCZVR5cGUoImN1cnNvci52YWx1ZSIsIHRlc3RUeXBlVmFsdWVzW2N1cnNv
ci5rZXkgLSAxXS50eXBlKSAmJiAoY3Vyc29yLnZhbHVlID09IHRlc3RUeXBlVmFsdWVzW2N1cnNv
ci5rZXkgLSAxXS52YWx1ZSk7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7Cisg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlYWRDcnlwdG9LZXkoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZWFkQ3J5cHRv
S2V5KCkKKyAgICB7CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCJj
cnlwdG9LZXkiKS5vYmplY3RTdG9yZSgiY3J5cHRvS2V5Iik7CisgICAgICAgIG9iamVjdFN0b3Jl
Lm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAg
Y3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsK
KyAgICAgICAgICAgICAgICB2YXIgcmVmZXJlbmNlID0gdGVzdENyeXB0b0tleXNNYXAuZ2V0KGN1
cnNvci5rZXkpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAocmVmZXJlbmNl
Lm5hbWUgPSBjdXJzb3IudmFsdWUuYWxnb3JpdGhtLm5hbWUpICYmIChyZWZlcmVuY2UudHlwZSA9
PSBjdXJzb3IudmFsdWUudHlwZSkgJiYgKHJlZmVyZW5jZS51c2FnZSA9PSBjdXJzb3IudmFsdWUu
dXNhZ2VzWzBdKTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAg
ICAgICAgbG9nKCJQYXNzIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICBsb2coIkZhaWwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9Cis8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L0luZGV4ZWREQkJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlX
cml0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlZTYxYWU2NDY5MDViYTVmMmMyOGJlOWVlNGYzNjJmZDUy
NzRmMTYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9JbmRleGVkREJCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0ZS5odG1sCkBAIC0wLDAg
KzEsMjU1IEBACis8c2NyaXB0PgorICAgIGZ1bmN0aW9uIGxvZyhtc2cpCisgICAgeworICAgICAg
ICBhbGVydChtc2cpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNob3VsZEJlVHlwZShfYSwgX3R5
cGUpCisgICAgeworICAgICAgICB2YXIgZXhjZXB0aW9uOworICAgICAgICB2YXIgX2F2OworICAg
ICAgICB0cnkgeworICAgICAgICAgICAgX2F2ID0gZXZhbChfYSk7CisgICAgICAgIH0gY2F0Y2gg
KGUpIHsKKyAgICAgICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgICAgIH0KKworICAgICAgICB2
YXIgX3R5cGV2ID0gZXZhbChfdHlwZSk7CisgICAgICAgIGlmIChfYXYgaW5zdGFuY2VvZiBfdHlw
ZXYpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVmFsdWVzIHRo
YXQgYXJlIHVzZWQgdG8gaW5mZXIgdGhlIHR5cGUgb2YgYSBnaXZlbiBwcmltaXRpdmUgdHlwZS4K
KyAgICB2YXIgdGVzdFZhbHVlcyA9IFsKKyAgICAgICAgdW5kZWZpbmVkLAorICAgICAgICBudWxs
LAorICAgICAgICA1LCAvLyBJbnQKKyAgICAgICAgMCwKKyAgICAgICAgMSwKKyAgICAgICAgZmFs
c2UsCisgICAgICAgIHRydWUsCisgICAgICAgIDUuNSwgLy8gRG91YmxlCisgICAgICAgICJIZWxs
byxXb3JsZCEiLAorICAgICAgICAiIgorICAgIF07CisKKyAgICAvLyBWYWx1ZXMgdGhhdCBhcmUg
dXNlZCB0byBpbmZlciB0aGUgdHlwZSBvZiBhIGdpdmVuIEJvb2xlYW4vU3RyaW5nIHR5cGUuCisg
ICAgdmFyIHRlc3RUeXBlVmFsdWVzID0gWworICAgICAgICB7IGl0ZW06IG5ldyBCb29sZWFuKHRy
dWUpLCB0eXBlOiAiQm9vbGVhbiIsIHZhbHVlOiB0cnVlIH0sCisgICAgICAgIHsgaXRlbTogbmV3
IEJvb2xlYW4oZmFsc2UpLCB0eXBlOiAiQm9vbGVhbiIsIHZhbHVlOiBmYWxzZSB9LAorICAgICAg
ICB7IGl0ZW06IG5ldyBTdHJpbmcoKSwgdHlwZTogIlN0cmluZyIsIHZhbHVlOiAiIiB9CisgICAg
XTsKKworICAgIHZhciB0ZXN0Q3J5cHRvS2V5c0FycmF5ID0gWworICAgICAgICBbIlJTQUVTLVBL
Q1MxLXYxXzUiLCB7IG5hbWU6ICJSU0FFUy1QS0NTMS12MV81IiwgdHlwZTogInB1YmxpYyIsIHVz
YWdlOiAiZW5jcnlwdCIgfV0sCisgICAgICAgIFsiUlNBU1NBLVBLQ1MxLXYxXzUiLCB7IG5hbWU6
ICJSU0FTU0EtUEtDUzEtdjFfNSIsIHR5cGU6ICJwdWJsaWMiLCB1c2FnZTogInZlcmlmeSIgfV0s
CisgICAgICAgIFsiUlNBLVBTUyIsIHsgbmFtZTogIlJTQS1QU1MiLCB0eXBlOiAicHJpdmF0ZSIs
IHVzYWdlOiAic2lnbiIgfV0sCisgICAgICAgIFsiUlNBLU9BRVAiLCB7IG5hbWU6ICJSU0EtT0FF
UCIsIHR5cGU6ICJwcml2YXRlIiwgdXNhZ2U6ICJkZWNyeXB0IiB9XSwKKyAgICAgICAgWyJFQ0RT
QSIsIHsgbmFtZTogIkVDRFNBIiwgdHlwZTogInByaXZhdGUiLCB1c2FnZTogInNpZ24iIH1dLAor
ICAgICAgICBbIkVDREgiLCB7IG5hbWU6ICJFQ0RIIiwgdHlwZTogInB1YmxpYyIsIHVzYWdlOiBu
dWxsIH1dLAorICAgICAgICBbIkFFUy1DVFIiLCB7IG5hbWU6ICJBRVMtQ1RSIiwgdHlwZTogInNl
Y3JldCIsIHVzYWdlOiAid3JhcEtleSIgfV0sCisgICAgICAgIFsiQUVTLUNCQyIsIHsgbmFtZTog
IkFFUy1DQkMiLCB0eXBlOiAic2VjcmV0IiwgdXNhZ2U6ICJ1bndyYXBLZXkiIH1dLAorICAgICAg
ICBbIkFFUy1HQ00iLCB7IG5hbWU6ICJBRVMtR0NNIiwgdHlwZTogInNlY3JldCIsIHVzYWdlOiAi
ZW5jcnlwdCIgfV0sCisgICAgICAgIFsiQUVTLUNGQi04IiwgeyBuYW1lOiAiQUVTLUNGQi04Iiwg
dHlwZTogInNlY3JldCIsIHVzYWdlOiAiZGVjcnlwdCIgfV0sCisgICAgICAgIFsiQUVTLUtXIiwg
eyBuYW1lOiAiQUVTLUtXIiwgdHlwZTogInNlY3JldCIsIHVzYWdlOiAid3JhcEtleSJ9XSwKKyAg
ICAgICAgWyJITUFDIiwgeyBuYW1lOiAiSE1BQyIsIHR5cGU6ICJzZWNyZXQiLCB1c2FnZTogInNp
Z24iIH1dLAorICAgICAgICBbIkhLREYiLCB7IG5hbWU6ICJIS0RGIiwgdHlwZTogInNlY3JldCIs
IHVzYWdlOiAiZGVyaXZlQml0cyIgfV0sCisgICAgICAgIFsiUEJLREYyIiwgeyBuYW1lOiAiUEJL
REYyIiwgdHlwZTogInNlY3JldCIsIHVzYWdlOiAiZGVyaXZlS2V5IiB9XSwKKyAgICBdOworICAg
IHZhciB0ZXN0Q3J5cHRvS2V5c01hcCA9IG5ldyBNYXAodGVzdENyeXB0b0tleXNBcnJheSk7CisK
KyAgICBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoImJhY2t3YXJkX2NvbXBhdGliaWxpdHkiKTsK
KyAgICB2YXIgb3BlblJlcXVlc3QgPSBpbmRleGVkREIub3BlbigiYmFja3dhcmRfY29tcGF0aWJp
bGl0eSIpOworICAgIG9wZW5SZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50
KSB7CisgICAgICAgIC8vIFRoaXMgb2JqZWN0U3RvcmUgc3RvcmVzIGVsZW1lbnRzIHRoYXQgd2Ug
b25seSBuZWVkIHRvIGNoZWNrIGl0cyB0eXBlIHRvIGRldGVybWluZSBpdHMgc2VyaWFsaXphdGlv
biB0YWcuCisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQuY3Jl
YXRlT2JqZWN0U3RvcmUoInR5cGUiKTsKKyAgICAgICAgLy8gVGhpcyBvYmplY3RTdG9yZSBzdG9y
ZXMgZWxlbWVudHMgdGhhdCB3ZSBuZWVkIHRvIGNoZWNrIGl0cyB2YWx1ZSB0byBkZXRlcm1pbmUg
aXRzIHNlcmlhbGl6YXRpb24gdGFnLgorICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBldmVudC50
YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJ2YWx1ZSIsIHsgYXV0b0luY3JlbWVudCA6
IHRydWUgfSk7CisgICAgICAgIC8vIFRoaXMgb2JqZWN0U3RvcmUgc3RvcmVzIGVsZW1lbnRzIHRo
YXQgd2UgbmVlZCB0byBjaGVjayBib3RoIGl0cyB0eXBlIGFuZCBpdHMgdmFsdWUgdG8gZGV0ZXJt
aW5lIGl0cyBzZXJpYWxpemF0aW9uIHRhZy4KKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZXZl
bnQudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgidHlwZVZhbHVlIiwgeyBhdXRvSW5j
cmVtZW50IDogdHJ1ZSB9KTsKKyAgICAgICAgLy8gVGhpcyBPYmplY3RTdG9yZSBzdG9yZXMgY3J5
cHRvIGtleXMgd2hpY2ggcmVxdWlyZSBmZXcgbW9yZSBzdGVwcyB0byBkZXRlcm1pbmUgaXRzIHNl
cmlhbGl6YXRpb24gdGFnLgorICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBldmVudC50YXJnZXQu
cmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJjcnlwdG9LZXkiLCB7IGtleVBhdGg6ICJhbGdvcml0
aG0ubmFtZSIgfSk7CisgICAgfQorICAgIG9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbihl
dmVudCkgeworICAgICAgICBsb2coIkVycm9yOiAiICsgZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUp
OworICAgIH0KKyAgICBvcGVuUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgewor
ICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHN0b3JlVHlwZSgpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHN0b3JlVHlwZSgpCisgICAgeworICAgICAgICB2YXIgdHJh
bnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbigidHlwZSIsICJyZWFkd3JpdGUiKTsKKyAgICAgICAg
dHJhbnNhY3Rpb24ub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBsb2co
IkVycm9yOiAiICsgZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUpOworICAgICAgICB9CisgICAgICAg
IHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbihldmVudCkgeyBzdG9yZVZhbHVlKCk7
IH0KKworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgi
dHlwZSIpOworICAgICAgICAvLyBUaGUga2V5IG9mIGFuIGl0ZW0gaXMgdGhlIHR5cGUgb2YgaXRz
IHZhbHVlLCBoZW5jZSB3ZSBjb3VsZCBkZXRlcm1pbmUgdHlwZSBtaXNtYXRjaCwgaS5lLiBzZXJp
YWxpemF0aW9uIHRhZyByZW9yZGVyCisgICAgICAgIC8vIHNpbXBseSBieSB1c2luZyBhbiBpdGVt
J3Mga2V5IGFuZCB2YWx1ZS4KKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKFsxLCAyXSwgIkFycmF5
Iik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZCh7IHByb3BlcnR5OiBudWxsIH0sICJPYmplY3Qi
KTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBEYXRlKCksICJEYXRlIik7CisgICAgICAg
IG9iamVjdFN0b3JlLmFkZChuZXcgRmlsZShbImZvbyJdLCAiZm9vLnR4dCIpLCAiRmlsZSIpOwor
ICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IEltYWdlRGF0YSgxMDAsIDEwMCksICJJbWFnZURh
dGEiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBCbG9iKFsiZm9vIl0pLCAiQmxvYiIp
OworICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IFJlZ0V4cCgnJyksICJSZWdFeHAiKTsKKyAg
ICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBBcnJheUJ1ZmZlcigxKSwgIkFycmF5QnVmZmVyIik7
CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgU3RyaW5nKCcnKSwgIlN0cmluZyIpOworICAg
ICAgICBvYmplY3RTdG9yZS5hZGQobmV3IE51bWJlcigxMiksICJOdW1iZXIiKTsKKyAgICAgICAg
b2JqZWN0U3RvcmUuYWRkKG5ldyBTZXQoWzEsIDJdKSwgIlNldCIpOworICAgICAgICBvYmplY3RT
dG9yZS5hZGQobmV3IE1hcCgpLCAiTWFwIik7CisgICAgICAgIC8vIFR5cGVkIGFycmF5cworICAg
ICAgICBvYmplY3RTdG9yZS5hZGQobmV3IEludDhBcnJheSgpLCAiSW50OEFycmF5Iik7CisgICAg
ICAgIG9iamVjdFN0b3JlLmFkZChuZXcgVWludDhBcnJheSgpLCAiVWludDhBcnJheSIpOworICAg
ICAgICBvYmplY3RTdG9yZS5hZGQobmV3IFVpbnQ4Q2xhbXBlZEFycmF5KCksICJVaW50OENsYW1w
ZWRBcnJheSIpOworICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IEludDE2QXJyYXkoKSwgIklu
dDE2QXJyYXkiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBVaW50MTZBcnJheSgpLCAi
VWludDE2QXJyYXkiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBJbnQzMkFycmF5KCks
ICJJbnQzMkFycmF5Iik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgVWludDMyQXJyYXko
KSwgIlVpbnQzMkFycmF5Iik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgRmxvYXQzMkFy
cmF5KCksICJGbG9hdDMyQXJyYXkiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBGbG9h
dDY0QXJyYXkoKSwgIkZsb2F0NjRBcnJheSIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0b3Jl
VmFsdWUoKQorICAgIHsKKyAgICAgICAgdmFyIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24o
InZhbHVlIiwgInJlYWR3cml0ZSIpOworICAgICAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0gZnVu
Y3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGxvZygiRXJyb3I6ICIgKyBldmVudC50YXJnZXQu
ZXJyb3IubmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9
IGZ1bmN0aW9uKGV2ZW50KSB7IHN0b3JlVHlwZVZhbHVlKCk7IH0KKworICAgICAgICB2YXIgb2Jq
ZWN0U3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgidmFsdWUiKTsKKyAgICAgICAgLy8g
SGVyZSB3ZSBzdG9yZSB2YWx1ZXMgaW4gdGhlIHRlc3QgbWF0cml4IGluIG9yZGVyIGFuZCByZWFk
IHRoZW0gaW4gb3JkZXIgdG8gc2VlIGlmIGFueSBtaXNtYXRjaCBoYXBwZW5zLgorICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHRlc3RWYWx1ZXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBv
YmplY3RTdG9yZS5hZGQodGVzdFZhbHVlc1tpXSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3Rv
cmVUeXBlVmFsdWUoKQorICAgIHsKKyAgICAgICAgdmFyIHRyYW5zYWN0aW9uID0gZGIudHJhbnNh
Y3Rpb24oInR5cGVWYWx1ZSIsICJyZWFkd3JpdGUiKTsKKyAgICAgICAgdHJhbnNhY3Rpb24ub25l
cnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBsb2coIkVycm9yOiAiICsgZXZl
bnQudGFyZ2V0LmVycm9yLm5hbWUpOworICAgICAgICB9CisgICAgICAgIHRyYW5zYWN0aW9uLm9u
Y29tcGxldGUgPSBmdW5jdGlvbihldmVudCkgeyBzdG9yZUNyeXB0b0tleSgpOyB9CisKKyAgICAg
ICAgdmFyIG9iamVjdFN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoInR5cGVWYWx1ZSIp
OworICAgICAgICAvLyBIZXJlIHdlIHN0b3JlIGl0ZW1zIGluIHRoZSB0ZXN0IG1hdHJpeCBpbiBv
cmRlciBhbmQgcmVhZCB0aGVtIGluIG9yZGVyIHRvIHNlZSBpZiBhbnkgbWlzbWF0Y2hlcyBpdHMg
dHlwZSBhbmQgdmFsdWUuCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdFR5cGVWYWx1
ZXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmplY3RTdG9yZS5hZGQodGVzdFR5cGVWYWx1
ZXNbaV0uaXRlbSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RvcmVDcnlwdG9LZXkoKQorICAg
IHsKKyAgICAgICAgLy8gSGVyZSB3ZSBnYXRoZXIgYWxsIHRoZSBDcnlwdG9LZXkgb2JqZWN0cwor
ICAgICAgICB2YXIgcHJvbWlzZXMgPSBbIF07CisgICAgICAgIHByb21pc2VzLnB1c2goY3J5cHRv
LnN1YnRsZS5nZW5lcmF0ZUtleSh7IG5hbWU6ICJSU0FFUy1QS0NTMS12MV81IiwgbW9kdWx1c0xl
bmd0aDogMjA0OCwgcHVibGljRXhwb25lbnQ6IG5ldyBVaW50OEFycmF5KFsweDAxLCAweDAwLCAw
eDAxXSl9LCB0cnVlLCBbImRlY3J5cHQiLCAiZW5jcnlwdCJdKSk7CisgICAgICAgIHByb21pc2Vz
LnB1c2goY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7IG5hbWU6ICJSU0FTU0EtUEtDUzEtdjFf
NSIsIG1vZHVsdXNMZW5ndGg6IDIwNDgsIHB1YmxpY0V4cG9uZW50OiBuZXcgVWludDhBcnJheShb
MHgwMSwgMHgwMCwgMHgwMV0pLCBoYXNoOiAic2hhLTEiIH0sIHRydWUsIFsic2lnbiIsICJ2ZXJp
ZnkiXSkpOworICAgICAgICBwcm9taXNlcy5wdXNoKGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXko
eyBuYW1lOiAiUlNBLVBTUyIsIG1vZHVsdXNMZW5ndGg6IDIwNDgsIHB1YmxpY0V4cG9uZW50OiBu
ZXcgVWludDhBcnJheShbMHgwMSwgMHgwMCwgMHgwMV0pLCBoYXNoOiAic2hhLTEiIH0sIHRydWUs
IFsic2lnbiIsICJ2ZXJpZnkiXSkpOworICAgICAgICBwcm9taXNlcy5wdXNoKGNyeXB0by5zdWJ0
bGUuZ2VuZXJhdGVLZXkoeyBuYW1lOiAiUlNBLU9BRVAiLCBtb2R1bHVzTGVuZ3RoOiAyMDQ4LCBw
dWJsaWNFeHBvbmVudDogbmV3IFVpbnQ4QXJyYXkoWzB4MDEsIDB4MDAsIDB4MDFdKSwgaGFzaDog
InNoYS0xIiB9LCB0cnVlLCBbImRlY3J5cHQiLCAiZW5jcnlwdCJdKSk7CisgICAgICAgIHByb21p
c2VzLnB1c2goY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7IG5hbWU6ICJFQ0RTQSIsIG5hbWVk
Q3VydmU6ICJQLTI1NiIgfSwgdHJ1ZSwgWyJzaWduIiwgInZlcmlmeSJdKSk7CisgICAgICAgIHBy
b21pc2VzLnB1c2goY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7IG5hbWU6ICJFQ0RIIiwgbmFt
ZWRDdXJ2ZTogIlAtMjU2IiB9LCB0cnVlLCBbImRlcml2ZUJpdHMiXSkpOworICAgICAgICBwcm9t
aXNlcy5wdXNoKGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoeyBuYW1lOiAiYWVzLWN0ciIsIGxl
bmd0aDogMTI4IH0sIHRydWUsIFsid3JhcEtleSJdKSk7CisgICAgICAgIHByb21pc2VzLnB1c2go
Y3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7IG5hbWU6ICJhZXMtY2JjIiwgbGVuZ3RoOiAxMjgg
fSwgdHJ1ZSwgWyJ1bndyYXBLZXkiXSkpOworICAgICAgICBwcm9taXNlcy5wdXNoKGNyeXB0by5z
dWJ0bGUuZ2VuZXJhdGVLZXkoeyBuYW1lOiAiYWVzLWdjbSIsIGxlbmd0aDogMTI4IH0sIHRydWUs
IFsiZW5jcnlwdCJdKSk7CisgICAgICAgIHByb21pc2VzLnB1c2goY3J5cHRvLnN1YnRsZS5nZW5l
cmF0ZUtleSh7IG5hbWU6ICJhZXMtY2ZiLTgiLCBsZW5ndGg6IDEyOCB9LCB0cnVlLCBbImRlY3J5
cHQiXSkpOworICAgICAgICBwcm9taXNlcy5wdXNoKGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXko
eyBuYW1lOiAiYWVzLWt3IiwgbGVuZ3RoOiAxMjggfSwgdHJ1ZSwgWyJ3cmFwS2V5Il0pKTsKKyAg
ICAgICAgcHJvbWlzZXMucHVzaChjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHsgbmFtZTogImht
YWMiLCBoYXNoOiAic2hhLTEiIH0sIHRydWUsIFsic2lnbiJdKSk7CisgICAgICAgIHByb21pc2Vz
LnB1c2goY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIG5ldyBVaW50OEFycmF5KDE2KSwg
eyBuYW1lOiAiSEtERiIgfSwgZmFsc2UsIFsiZGVyaXZlQml0cyJdKSk7CisgICAgICAgIHByb21p
c2VzLnB1c2goY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIG5ldyBVaW50OEFycmF5KDE2
KSwgeyBuYW1lOiAiUEJLREYyIiB9LCBmYWxzZSwgWyJkZXJpdmVLZXkiXSkpOworCisgICAgICAg
IFByb21pc2UuYWxsKHByb21pc2VzKS50aGVuKGtleXMgPT4geworICAgICAgICAgICAgdmFyIHRy
YW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oImNyeXB0b0tleSIsICJyZWFkd3JpdGUiKTsKKyAg
ICAgICAgICAgIHRyYW5zYWN0aW9uLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeworICAgICAg
ICAgICAgICAgIGxvZygiRXJyb3I6ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24o
ZXZlbnQpIHsgcmVhZFR5cGUoKTsgfQorCisgICAgICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSB0
cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgiY3J5cHRvS2V5Iik7CisgICAgICAgICAgICAvLyBIZXJl
IHdlIHN0b3JlIGFsbCB0aGUgbmVjZXNzYXJ5IENyeXB0b0tleXMuIE5vdGVzIHRoYXQgc29tZSBm
dW5jdGlvbnMgd2lsbCByZXR1cm4gQ3J5cHRvS2V5UGFpci4KKyAgICAgICAgICAgIC8vIEluIHRo
b3NlIGNhc2VzLCB3ZSBuZWVkIHRvIGRlY2lkZSB3aGV0aGVyIHdlIG5lZWQgdGhlIHB1YmxpYyBv
ciB0aGUgcHJpdmF0ZSBrZXkuCisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMu
bGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoa2V5c1tpXSBpbnN0YW5jZW9mIENy
eXB0b0tleSkKKyAgICAgICAgICAgICAgICAgICAgb2JqZWN0U3RvcmUuYWRkKGtleXNbaV0pOwor
ICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoa2V5c1tpXS5w
dWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUgPT0gIlJTQUVTLVBLQ1MxLXYxXzUiKQorICAgICAgICAg
ICAgICAgICAgICAgICAgb2JqZWN0U3RvcmUuYWRkKGtleXNbaV0ucHVibGljS2V5KTsKKyAgICAg
ICAgICAgICAgICAgICAgZWxzZSBpZiAoa2V5c1tpXS5wdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUg
PT0gIlJTQVNTQS1QS0NTMS12MV81IikKKyAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdFN0
b3JlLmFkZChrZXlzW2ldLnB1YmxpY0tleSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYg
KGtleXNbaV0ucHVibGljS2V5LmFsZ29yaXRobS5uYW1lID09ICJSU0EtUFNTIikKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG9iamVjdFN0b3JlLmFkZChrZXlzW2ldLnByaXZhdGVLZXkpOworICAg
ICAgICAgICAgICAgICAgICBlbHNlIGlmIChrZXlzW2ldLnB1YmxpY0tleS5hbGdvcml0aG0ubmFt
ZSA9PSAiUlNBLU9BRVAiKQorICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0U3RvcmUuYWRk
KGtleXNbaV0ucHJpdmF0ZUtleSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGtleXNb
aV0ucHVibGljS2V5LmFsZ29yaXRobS5uYW1lID09ICJFQ0RTQSIpCisgICAgICAgICAgICAgICAg
ICAgICAgICBvYmplY3RTdG9yZS5hZGQoa2V5c1tpXS5wcml2YXRlS2V5KTsKKyAgICAgICAgICAg
ICAgICAgICAgZWxzZSBpZiAoa2V5c1tpXS5wdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUgPT0gIkVD
REgiKQorICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0U3RvcmUuYWRkKGtleXNbaV0ucHVi
bGljS2V5KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0pOwor
ICAgIH0KKworICAgIHZhciByZXN1bHQgPSB0cnVlOworICAgIGZ1bmN0aW9uIHJlYWRUeXBlKCkK
KyAgICB7CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCJ0eXBlIiku
b2JqZWN0U3RvcmUoInR5cGUiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpLm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBjdXJzb3IgPSBldmVudC50
YXJnZXQucmVzdWx0OworICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiBzaG91bGRCZVR5cGUoImN1cnNvci52YWx1ZSIsIGN1cnNvci5r
ZXkpOworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICAgICAgcmVhZFZhbHVlKCk7CisgICAgICAgIH07CisgICAgfQorCisg
ICAgZnVuY3Rpb24gcmVhZFZhbHVlKCkKKyAgICB7CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9
IGRiLnRyYW5zYWN0aW9uKCJ2YWx1ZSIpLm9iamVjdFN0b3JlKCJ2YWx1ZSIpOworICAgICAgICBv
YmplY3RTdG9yZS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAg
ICAgICAgICAgIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBpZiAo
Y3Vyc29yKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIChjdXJzb3IudmFs
dWUgPT09IHRlc3RWYWx1ZXNbY3Vyc29yLmtleSAtIDFdKTsKKyAgICAgICAgICAgICAgICBjdXJz
b3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHJlYWRU
eXBlVmFsdWUoKTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZWFkVHlwZVZh
bHVlKCkKKyAgICB7CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCJ0
eXBlVmFsdWUiKS5vYmplY3RTdG9yZSgidHlwZVZhbHVlIik7CisgICAgICAgIG9iamVjdFN0b3Jl
Lm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAg
Y3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsK
KyAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgc2hvdWxkQmVUeXBlKCJjdXJzb3Iu
dmFsdWUiLCB0ZXN0VHlwZVZhbHVlc1tjdXJzb3Iua2V5IC0gMV0udHlwZSkgJiYgKGN1cnNvci52
YWx1ZSA9PSB0ZXN0VHlwZVZhbHVlc1tjdXJzb3Iua2V5IC0gMV0udmFsdWUpOworICAgICAgICAg
ICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICByZWFkQ3J5cHRvS2V5KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAg
fQorCisgICAgZnVuY3Rpb24gcmVhZENyeXB0b0tleSgpCisgICAgeworICAgICAgICB2YXIgb2Jq
ZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigiY3J5cHRvS2V5Iikub2JqZWN0U3RvcmUoImNyeXB0
b0tleSIpOworICAgICAgICBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVu
Y3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7
CisgICAgICAgICAgICBpZiAoY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgdmFyIHJlZmVyZW5j
ZSA9IHRlc3RDcnlwdG9LZXlzTWFwLmdldChjdXJzb3Iua2V5KTsKKyAgICAgICAgICAgICAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHJlZmVyZW5jZS5uYW1lID0gY3Vyc29yLnZhbHVlLmFsZ29yaXRo
bS5uYW1lKSAmJiAocmVmZXJlbmNlLnR5cGUgPT0gY3Vyc29yLnZhbHVlLnR5cGUpICYmIChyZWZl
cmVuY2UudXNhZ2UgPT0gY3Vyc29yLnZhbHVlLnVzYWdlc1swXSk7CisgICAgICAgICAgICAgICAg
Y3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IGlmIChyZXN1bHQpCisgICAgICAgICAgICAgICAgICAgIGxvZygiUGFzcyIpOworICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJGYWlsIik7CisgICAgICAgICAg
ICB9CisgICAgICAgIH07CisgICAgfQorPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316516</attachid>
            <date>2017-07-26 21:13:42 -0700</date>
            <delta_ts>2017-07-28 11:45:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173998-20170726211454.patch</filename>
            <type>text/plain</type>
            <size>43087</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE5ODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDlkMzkyZDdiODg4MTZi
MjIzNDYwNGFkMjdkZWY1NzY0OWI2MDc4ZC4uMDQ3M2FmZjk1NjljMDJiZjc0Mjc3OTVmODdhODBk
NGVjMjJlMWZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA3LTI2ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRW5zdXJlIGJhY2t3YXJk
IGNvbXBhdGliaWxpdHkgaW4gdGhlIHNlcmlhbGl6YXRpb24gZm9ybWF0IG9mIHN0cnVjdHVyZWQg
Y2xvbmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzM5OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
byBjaGFuZ2VzIG9mIGJlaGF2aW9yLgorCisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgQWRkIGEgY29tbWVudC4KKwogMjAxNy0wNy0yNSAg
TWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogUmVmYWN0b3Jpbmc6IGV4dHJhY3QgYXN5bmMgc3RhY2sgdHJhY2UgbG9naWMgZnJvbSBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDQ0Y2U5Y2QzMzNjYzZhNjU3YTgxZTAz
YzQyNGMzNWZiYmY3NDJiMzAuLjNjYWVjY2I4NzJmNjNiMjIzM2JkYTg0ZDc1ZmI3NTkzYmI3OWJj
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcApAQCAtMTE3LDYgKzExNyw3IEBAIGVudW0gV2Fsa2VyU3RhdGUgeyBTdGF0
ZVVua25vd24sIEFycmF5U3RhcnRTdGF0ZSwgQXJyYXlTdGFydFZpc2l0TWVtYmVyLCBBcnJheUVu
CiAgICAgU2V0RGF0YVN0YXJ0VmlzaXRFbnRyeSwgU2V0RGF0YUVuZFZpc2l0S2V5IH07CiAKIC8v
IFRoZXNlIGNhbid0IGJlIHJlb3JkZXJlZCwgYW5kIGFueSBuZXcgdHlwZXMgbXVzdCBiZSBhZGRl
ZCB0byB0aGUgZW5kIG9mIHRoZSBsaXN0CisvLyBXaGVuIG1ha2luZyBjaGFuZ2VzIHRvIHRoaXMg
bGlzdCBwbGVhc2UgY292ZXIgeW91ciBuZXcgdHlwZShzKSBpbiB0aGUgQVBJIHRlc3QgIkluZGV4
ZWREQi5CYWNrd2FyZENvbXBhdGliaWxpdHkiCiBlbnVtIFNlcmlhbGl6YXRpb25UYWcgewogICAg
IEFycmF5VGFnID0gMSwKICAgICBPYmplY3RUYWcgPSAyLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDIyNzM5NWU1NWIzMDRkYjc1YzAwNWJhYmE1
NGQ5MDU2MDVhM2Y3MTUuLjc4YzZjNTQ2YzEyOTQzMTdmMTUxMzViODYwN2E4YjZhZTdiYWJmMzUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxNy0wNy0yNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29t
PgorCisgICAgICAgIEVuc3VyZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGluIHRoZSBzZXJpYWxp
emF0aW9uIGZvcm1hdCBvZiBzdHJ1Y3R1cmVkIGNsb25lcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczOTk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSB0ZXN0IGlzIGNvbXBvc2VkIHRvIGVuc3VyZSBi
YWNrd2FyZCBjb21wYXRpYmlsaXR5IGluIHRoZSBzZXJpYWxpemF0aW9uIGZvcm1hdCBvZiBzdHJ1
Y3R1cmVkIGNsb25lcy4KKyAgICAgICAgVGhlIHdheSBpdCB3b3JrcyBpcyB0byByZWFkIGZyb20g
YSBwcmUtYmFrZWQgZGF0YWJhc2UgYW5kIHNlZSBpZiBhbGwgdGhlIHZhbHVlcyBhcmUgbWF0Y2hl
ZCB3aXRoIHRoZSBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENv
bXBhdGliaWxpdHkubW06IEFkZGVkLgorICAgICAgICAoLVtJbmRleGVkREJTdHJ1Y3R1cmVkQ2xv
bmVCYWNrd2FyZENvbXBhdGliaWxpdHlNZXNzYWdlSGFuZGxlciB1c2VyQ29udGVudENvbnRyb2xs
ZXI6ZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6XSk6CisgICAgICAgIChnZXROZXh0TWVzc2FnZSk6
CisgICAgICAgIChURVNUKToKKyAgICAgICAgSGVyZSBpcyB0aGUgQVBJIHRlc3QgdGhhdCBtb3Zl
cyB0aGUgcHJlLWJha2VkIGRhdGFiYXNlIHRvIHRoZSBsb2NhdGlvbiB3aGVyZSBUZXN0V2ViS2l0
QVBJIGNhbiByZWFkIGZyb20uCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0
ZTM6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0lu
ZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobTog
QWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhl
ZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtd2FsOiBBZGRl
ZC4KKyAgICAgICAgVGhlc2UgYXJlIHRoZSBwcmUtYmFrZWQgZGF0YWJhc2VzLgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQlN0cnVjdHVyZWRDbG9u
ZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbDogQWRkZWQuCisgICAgICAgIFRoaXMgaXMg
dGhlIGFjdHVhbCB0ZXN0IHRoYXQgZG8gYWxsIHRoZSByZWFkcyBhbmQgY29tcGFyaXNvbnMuCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCU3RydWN0
dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5V3JpdGUuaHRtbDogQWRkZWQuCisgICAgICAg
IFRoaXMgaXMgdGhlIHBhZ2UgdGhhdCBiYWtlcyB0aGUgZGF0YWJhc2UuIEl0IG5ldmVyIHJ1bnMg
YXV0b21hdGljYWxseS4gSXQgaXMgZm9yIHNvbWVvbmUgd2hvIG5lZWRzIHRvIHRlYWNoCisgICAg
ICAgIEluZGV4ZWREQiBuZXcgc3R1ZmZzLiBUaGVuIGl0IGNhbiBiZSB1c2VkIHRvIGJha2UgdGhl
IGRhdGFiYXNlIGFnYWluLgorCiAyMDE3LTA3LTI1ICBNYXR0aGV3IFN0ZXdhcnQgIDxtYXR0aGV3
X3Jfc3Rld2FydEBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGF1dG9pbnN0YWxsZXIgZmFpbGlu
ZyBvbiBhdXRvaW5zdGFsbF9ldmVyeXRoaW5nCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ3
M2MzODBhZDkzNjUyYjU0MjJiYzAzOTQ1NWQxZGFlZDJhNzZjODUuLmJkYjhiYjFhOWEwYmI2ZTdl
OWIxMTkxNWVhYjA3NjBjNjI5OWMxMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTks
NiArMTk5LDEyIEBACiAJCTU3MTRFQ0I5MUNBOEI1QjAwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVl
c3RPcmlnaW5hbFVSTC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3MTRFQ0I4MUNBOEI1ODgwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVl
c3RPcmlnaW5hbFVSTC5odG1sICovOyB9OwogCQk1NzE0RUNCQjFDQThCRkU0MDAwNTFBQzggLyog
RG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MTRFQ0JBMUNBOEJGRDEwMDA1MUFD
OCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0bWwgKi87IH07CiAJCTU3MTRF
Q0JEMUNBOEMyMkEwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTDIuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzE0
RUNCQzFDQThDMjE4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwyLmh0bWwg
Ki87IH07CisJCTU3MUY3RkQwMUYyOTYxRkIwMDk0NjY0OCAvKiBJbmRleGVkREJTdHJ1Y3R1cmVk
Q2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxRjdGQ0YxRjI5NjFFMTAwOTQ2
NjQ4IC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxp
dGUzLXdhbCAqLzsgfTsKKwkJNTc1OTlFMjExRjA3MTkxOTAwQTNGQjhDIC8qIEluZGV4ZWREQlN0
cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTk5RTIwMUYwNzE5MTcwMEEzRkI4QyAvKiBJ
bmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkubW0gKi87IH07CisJ
CTU3NTk5RTI3MUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNr
d2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUyNDFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhl
ZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMgKi87IH07CisJ
CTU3NTk5RTI4MUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNr
d2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0gaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1OTlFMjYxRjA3MTkyQzAwQTNGQjhDIC8qIElu
ZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSAq
LzsgfTsKKwkJNTc1OTlFMkExRjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRD
bG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUyNTFGMDcxOTJDMDBBM0ZCOEMg
LyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5odG1s
ICovOyB9OworCQk1NzU5OUUyQjFGMDcxQUEwMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJl
ZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5V3JpdGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUyMzFGMDcxOTJDMDBBM0ZC
OEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5V3JpdGUu
aHRtbCAqLzsgfTsKIAkJNTc2OUM1MEIxRDlCMDAwMjAwMDg0N0ZCIC8qIFNlcmlhbGl6ZWRDcnlw
dG9LZXlXcmFwLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTc2OUM1MEExRDlCMDAwMTAwMDg0N0ZCIC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLm1t
ICovOyB9OwogCQk1NzkwMUZCMTFDQUYxNDJEMDBFRDY0RjkgLyogTG9hZEludmFsaWRVUkxSZXF1
ZXN0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTc5MDFGQjAxQ0FGMTQxQzAwRUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJMUmVxdWVzdC5o
dG1sICovOyB9OwogCQk1Nzk3RkUzMTFFQjE1QTY4MDBCMkY0QTAgLyogTmF2aWdhdGlvbkNsaWVu
dERlZmF1bHRDcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTc5N0ZFMkYxRUIxNUE1RjAwQjJGNEEwIC8qIE5hdmlnYXRpb25DbGllbnREZWZh
dWx0Q3J5cHRvLmNwcCAqLzsgfTsKQEAgLTUxMiw2ICs1MTgsNyBAQAogCQk5M0Y1NkRBNzFFNUY5
MTc0MDAzRURFODQgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDODNFMDMzMUQwQTVGMjcwMEZFQkNGMyAvKiBsaWJp
Y3Vjb3JlLmR5bGliICovOyB9OwogCQk5M0Y1NkRBOTFFNUY5MTlEMDAzRURFODQgLyogV0tXZWJW
aWV3U25hcHNob3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0Y1NkRBODFFNUY5MTgxMDAzRURFODQgLyogV0tXZWJWaWV3U25hcHNob3QubW0gKi87
IH07CiAJCTkzRjdFODZGMTREQzhFNUMwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1w
dHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzRjdFODZFMTREQzhFNUIwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCAqLzsgfTsKKwkJOTU2NDZFNUIxRjFE
QjYwRTAwREUwRUI5IC8qIEluc3BlY3RvclZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1M0Y0NzkxMUYxREI0MDMwMEUzRDFFMyAvKiBJbnNw
ZWN0b3JWYWx1ZS5jcHAgKi87IH07CiAJCTk5ODRGQUNDMUNGRkFGNjAwMDhEMTk4QyAvKiBXS1dl
YlZpZXdUZXh0SW5wdXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5OTg0RkFDQTFDRkZBRUVFMDA4RDE5OEMgLyogV0tXZWJWaWV3VGV4dElucHV0Lm1t
ICovOyB9OwogCQk5OTg0RkFDRTFDRkZCMDkwMDA4RDE5OEMgLyogZWRpdGFibGUtYm9keS5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5
ODRGQUNEMUNGRkIwMzgwMDhEMTk4QyAvKiBlZGl0YWJsZS1ib2R5Lmh0bWwgKi87IH07CiAJCTlC
MDc4NkE1MUM1ODg1QzMwMEQxNTlFMyAvKiBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290
c09wZW5fQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlCMDc4NkE0MUM1ODg1QzMwMEQxNTlFMyAvKiBJbmplY3RlZEJ1bmRsZU1ha2VBbGxT
aGFkb3dSb290c09wZW5fQnVuZGxlLmNwcCAqLzsgfTsKQEAgLTc0MywxMiArNzUwLDE3IEBACiAJ
CQlkc3RQYXRoID0gVGVzdFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJmb2xkZXJTcGVj
ID0gNzsKIAkJCWZpbGVzID0gKAorCQkJCTU3MUY3RkQwMUYyOTYxRkIwMDk0NjY0OCAvKiBJbmRl
eGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjQ1QjYzRkIxRjE5N0Y0QTAwOUQzOEI5IC8qIGltYWdl
LW1hcC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0MDdGRTM5MUYxRDBERkMwMDE3
Q0YyNSAvKiBlbm9ybW91cy5zdmcgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjRENUU0RTgx
RjBDNUQzODAwOEMxQTQ5IC8qIGRyYWdzdGFydC1jbGVhci1zZWxlY3Rpb24uaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQlGNEEzMkVDNDFGMDVGMzg1MDA0N0M1NDQgLyogZHJhZ3N0YXJ0
LWNoYW5nZS1zZWxlY3Rpb24tb2Zmc2NyZWVuLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJ
CQkJRjRBMzJFQ0IxRjA2NDMzNzAwNDdDNTQ0IC8qIGNvbnRlbnRlZGl0YWJsZS1pbi1pZnJhbWUu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDY5RkIyNDFGMDE4MDRCMDA0MDE1Mzkg
LyogY29udGVudGVkaXRhYmxlLWFuZC10YXJnZXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
KwkJCQk1NzU5OUUyNzFGMDcxQUEwMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25l
QmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJ
NTc1OTlFMjgxRjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3
YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk1
NzU5OUUyQTFGMDcxQUEwMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dh
cmRDb21wYXRpYmlsaXR5UmVhZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTU3NTk5
RTJCMUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENv
bXBhdGliaWxpdHlXcml0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0QjgyNUQ4
MUVGNERCRkIwMDZFNDE3RiAvKiBjb21wcmVzc2VkLWZpbGVzLnppcCBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQlGNDFBQjk5RjFFRjQ2OTZCMDA4M0ZBMDggLyogYXV0b2ZvY3VzLWNvbnRlbnRl
ZGl0YWJsZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0MUFCOUEwMUVGNDY5NkIw
MDgzRkEwOCAvKiBiYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCkBAIC0xMjQ1LDYgKzEyNTcsMTIgQEAKIAkJNTcxNEVDQjgxQ0E4QjU4ODAw
MDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTC5odG1sOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NzE0RUNCQTFDQThCRkQxMDAwNTFBQzggLyogRG93bmxvYWRS
ZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
RG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NzE0RUNCQzFDQThDMjE4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3Jp
Z2luYWxVUkwyLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBEb3dubG9hZFJlcXVl
c3RPcmlnaW5hbFVSTDIuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcxRjdG
Q0YxRjI5NjFFMTAwOTQ2NjQ4IC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29t
cGF0aWJpbGl0eS5zcWxpdGUzLXdhbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFj
a3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtd2FsIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTc1OTlFMjAxRjA3MTkxNzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9u
ZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc1OTlFMjMxRjA3MTkyQzAwQTNGQjhD
IC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxp
dHlXcml0ZS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzU5OUUyNDFGMDcx
OTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmls
aXR5LnNxbGl0ZTMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBmaWxlOyBwYXRoID0gSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRp
YmlsaXR5LnNxbGl0ZTM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3NTk5RTI1MUYw
NzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGli
aWxpdHlSZWFkLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2Fy
ZENvbXBhdGliaWxpdHlSZWFkLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3
NTk5RTI2MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2Fy
ZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gIkluZGV4ZWREQlN0cnVjdHVyZWRDbG9u
ZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU3NjlDNTBBMUQ5QjAwMDEwMDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5
V3JhcC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNlcmlhbGl6
ZWRDcnlwdG9LZXlXcmFwLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzkwMUZB
QzFDQUYxMkMyMDBFRDY0RjkgLyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzkwMUZBRTFDQUYxMzcxMDBFRDY0RjkgLyog
TG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTM5OCw2ICsxNDE2LDcgQEAKIAkJOTNGNTZEQTgxRTVGOTE4MTAwM0VERTg0IC8q
IFdLV2ViVmlld1NuYXBzaG90Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV0tXZWJWaWV3U25hcHNob3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzRjdFODZCMTREQzhFNEQwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGcmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV3Rmly
c3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNGN0U4NkUxNERDOEU1QjAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25F
bXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1M0Y0NzkxMUYxREI0MDMwMEUzRDFFMyAv
KiBJbnNwZWN0b3JWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JWYWx1ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5ODRGQUNBMUNGRkFFRUUwMDhEMTk4
QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXS1dlYlZpZXdUZXh0SW5wdXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk5ODRGQUNEMUNGRkIwMzgwMDhEMTk4QyAvKiBlZGl0YWJsZS1ib2R5Lmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZWRpdGFibGUtYm9keS5odG1sIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwNzg2QTIxQzU4ODMwRjAwRDE1OUUzIC8qIEluamVjdGVk
QnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg1OSw2ICsxODc4LDcgQEAKIAkJCQk1MUFG
MjNERTFFRjFBMzcyMDA3MkYyODEgLyogSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbSAqLywKIAkJCQk1
MTA0Nzc3NTFEMjk4RTAzMDA5NzQ3RUIgLyogSURCRGVsZXRlUmVjb3ZlcnkubW0gKi8sCiAJCQkJ
NTExMEZDRUYxRTAxQ0JBQTAwNkY4RDBCIC8qIElEQkluZGV4VXBncmFkZVRvVjIubW0gKi8sCisJ
CQkJNTc1OTlFMjAxRjA3MTkxNzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJh
Y2t3YXJkQ29tcGF0aWJpbGl0eS5tbSAqLywKIAkJCQk1MUE1ODc4NDFEMjcyRUYzMDA0QkE5QUYg
LyogSW5kZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC5tbSAqLywKIAkJCQk1MUJDRUU0OTFDODRG
NEFGMDA0MkM4MkUgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLm1tICovLAogCQkJCTUxQjFFRThE
MUM4MEY1ODgwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS5tbSAqLywKQEAgLTIxMDgs
NiArMjEyOCwxMSBAQAogCQkJCTUxQTU4NzdDMUQxQjNEOEQwMDRCQTlBRiAvKiBJbmRleGVkREJN
dWx0aVByb2Nlc3MtMy5odG1sICovLAogCQkJCTUxQjFFRTk0MUM4MEZBREQwMDY0RkI5OCAvKiBJ
bmRleGVkREJQZXJzaXN0ZW5jZS0xLmh0bWwgKi8sCiAJCQkJNTFCMUVFOTUxQzgwRkFERDAwNjRG
Qjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLTIuaHRtbCAqLywKKwkJCQk1NzU5OUUyNDFGMDcx
OTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmls
aXR5LnNxbGl0ZTMgKi8sCisJCQkJNTc1OTlFMjYxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWRE
QlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSAqLywKKwkJ
CQk1NzFGN0ZDRjFGMjk2MUUxMDA5NDY2NDggLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFj
a3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtd2FsICovLAorCQkJCTU3NTk5RTI1MUYwNzE5MkMw
MEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlS
ZWFkLmh0bWwgKi8sCisJCQkJNTc1OTlFMjMxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0
cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwgKi8sCiAJCQkJNTEx
MEZDRjIxRTAxQ0Q3NzAwNkY4RDBCIC8qIEluZGV4VXBncmFkZS5ibG9iICovLAogCQkJCTUxMTBG
Q0YzMUUwMUNENzcwMDZGOEQwQiAvKiBJbmRleFVwZ3JhZGUuc3FsaXRlMyAqLywKIAkJCQkyRUZG
MDZDQzFEOEE0MjkxMDAwNEJCMzAgLyogaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVu
dC5odG1sICovLApAQCAtMzA2MCw2ICszMDg1LDcgQEAKIAkJCQk3Q0NFN0VFRjFBNDExQUU2MDA0
NDdDNEMgLyogRXBoZW1lcmFsU2Vzc2lvblB1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUY0NUI2M0ZFMUYxOUQ0MTAwMDlEMzhCOSAvKiBBY3Rpb25TaGVl
dFRlc3RzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRjAxQTQxMUFFNjAwNDQ3QzRDIC8q
IEV2YWx1YXRlSmF2YVNjcmlwdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1NzU5OUUyMTFGMDcx
OTE5MDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmls
aXR5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE1MTE4MTAxREIxQUU0MDAwMTc2MzA0IC8qIEV4
dGVuZGVkQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRjExQTQxMUFFNjAwNDQ3
QzRDIC8qIEZhaWxlZExvYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwNEYxRDBBNjQx
ODAwRkVCQ0YzIC8qIEZpbGVTeXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVk
Q2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxp
dHkubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTk2MjIyZTcyNTU2ZTBmNjVmNTRhMjM3OGVlNmQ4ZGU2MWZhNGMy
ZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbQpAQCAt
MCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0
ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdC5oIgorCisjaW1wb3J0IDxXZWJL
aXQvV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQ
cml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oPgor
I2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1dlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLmg+CisjaW1wb3J0IDx3dGYvRGVxdWUuaD4KKyNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKK3N0YXRpYyBib29sIHJlY2Vp
dmVkU2NyaXB0TWVzc2FnZTsKK3N0YXRpYyBEZXF1ZTxSZXRhaW5QdHI8V0tTY3JpcHRNZXNzYWdl
Pj4gc2NyaXB0TWVzc2FnZXM7CisKK0BpbnRlcmZhY2UgSW5kZXhlZERCU3RydWN0dXJlZENsb25l
QmFja3dhcmRDb21wYXRpYmlsaXR5TWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3JpcHRN
ZXNzYWdlSGFuZGxlcj4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIEluZGV4ZWREQlN0cnVjdHVy
ZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eU1lc3NhZ2VIYW5kbGVyCisKKy0gKHZvaWQpdXNl
ckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50
Q29udHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRNZXNzYWdlICopbWVz
c2FnZQoreworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IHRydWU7CisgICAgc2NyaXB0TWVz
c2FnZXMuYXBwZW5kKG1lc3NhZ2UpOworfQorCitAZW5kCisKK3N0YXRpYyBXS1NjcmlwdE1lc3Nh
Z2UgKmdldE5leHRNZXNzYWdlKCkKK3sKKyAgICBpZiAoc2NyaXB0TWVzc2FnZXMuaXNFbXB0eSgp
KSB7CisgICAgICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgICAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgfQorICAg
IAorICAgIHJldHVybiBbW3NjcmlwdE1lc3NhZ2VzLnRha2VGaXJzdCgpIHJldGFpbl0gYXV0b3Jl
bGVhc2VdOworfQorCitURVNUKEluZGV4ZWREQiwgU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21w
YXRpYmlsaXR5KQoreworICAgIFJldGFpblB0cjxJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNr
d2FyZENvbXBhdGliaWxpdHlNZXNzYWdlSGFuZGxlcj4gaGFuZGxlcgorICAgICAgICA9IGFkb3B0
TlMoW1tJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlNZXNzYWdl
SGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0
aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBh
ZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJd
OworCisgICAgLy8gQ29weSB0aGUgYmFrZWQgZGF0YWJhc2UgZmlsZXMgdG8gdGhlIGRhdGFiYXNl
IGRpcmVjdG9yeQorICAgIE5TVVJMICp1cmwxID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAIkluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0
eSIgd2l0aEV4dGVuc2lvbjpAInNxbGl0ZTMiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl07CisgICAgTlNVUkwgKnVybDIgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAiSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmls
aXR5IiB3aXRoRXh0ZW5zaW9uOkAic3FsaXRlMy1zaG0iIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl07CisgICAgTlNVUkwgKnVybDMgPSBbW05TQnVuZGxlIG1haW5CdW5k
bGVdIFVSTEZvclJlc291cmNlOkAiSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21w
YXRpYmlsaXR5IiB3aXRoRXh0ZW5zaW9uOkAic3FsaXRlMy13YWwiIHN1YmRpcmVjdG9yeTpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBOU1VSTCAqaWRiUGF0aCA9IFtOU1VSTCBm
aWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdl
YnNpdGVEYXRhL0luZGV4ZWREQi8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdXTsKKyAg
ICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIHJlbW92ZUl0ZW1BdFVSTDppZGJQYXRo
IGVycm9yOm5pbF07CisgICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFu
YWdlcl0gZmlsZUV4aXN0c0F0UGF0aDppZGJQYXRoLnBhdGhdKTsKKworICAgIFJldGFpblB0cjxf
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4gd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24gPSBhZG9wdE5TKFtbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKKyAgICB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKS5faW5kZXhl
ZERCRGF0YWJhc2VEaXJlY3RvcnkgPSBpZGJQYXRoOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCku
d2Vic2l0ZURhdGFTdG9yZSA9IFtbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRo
Q29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0gYXV0b3Jl
bGVhc2VdOworCisgICAgaWRiUGF0aCA9IFtpZGJQYXRoIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBv
bmVudDpAImZpbGVfXzAiXTsKKyAgICBpZGJQYXRoID0gW2lkYlBhdGggVVJMQnlBcHBlbmRpbmdQ
YXRoQ29tcG9uZW50OkAiYmFja3dhcmRfY29tcGF0aWJpbGl0eSJdOworICAgIFtbTlNGaWxlTWFu
YWdlciBkZWZhdWx0TWFuYWdlcl0gY3JlYXRlRGlyZWN0b3J5QXRVUkw6aWRiUGF0aCB3aXRoSW50
ZXJtZWRpYXRlRGlyZWN0b3JpZXM6WUVTIGF0dHJpYnV0ZXM6bmlsIGVycm9yOm5pbF07CisgICAg
W1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjb3B5SXRlbUF0VVJMOnVybDEgdG9VUkw6
W2lkYlBhdGggVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5kZXhlZERCLnNxbGl0ZTMi
XSBlcnJvcjpuaWxdOworICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY29weUl0
ZW1BdFVSTDp1cmwyIHRvVVJMOltpZGJQYXRoIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpA
IkluZGV4ZWREQi5zcWxpdGUzLXNobSJdIGVycm9yOm5pbF07CisgICAgW1tOU0ZpbGVNYW5hZ2Vy
IGRlZmF1bHRNYW5hZ2VyXSBjb3B5SXRlbUF0VVJMOnVybDMgdG9VUkw6W2lkYlBhdGggVVJMQnlB
cHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5kZXhlZERCLnNxbGl0ZTMtd2FsIl0gZXJyb3I6bmls
XTsKKworICAgIC8vIFJ1biB0aGUgdGVzdAorICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZp
ZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAg
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4ZWREQlN0cnVjdHVyZWRD
bG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJk
aXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKKyAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIEVYUEVDVF9TVFJFUShbZ2V0TmV4dE1lc3NhZ2UoKS5i
b2R5IFVURjhTdHJpbmddLCAiUGFzcyIpOworfQorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4
ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCU3RydWN0dXJlZENsb25l
QmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQyMGNkODA4Zjg5NmRi
ZTU4ZDZhMzdhZjk2MjU1M2Q4MjUxNGZhOApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNDA5Ngp6
Y21XRnpedk50cVJZPVAoJTF0YSRGbEc+N1V9OW8kUCo3bENVfEB0fEFWb0d7V1k4MSUlP3J7bEso
LW05OGI/RTUKbkd6M09OVV5FMHFMdHIhbk1uaG1VMVYlJChHejNPTlVeRTBxTHRyIW5DPTNBcjVA
ODElCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENv
bXBhdGliaWxpdHkuc3FsaXRlMy1zaG0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3Fs
aXRlMy1zaG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTc4MTU4ZDMzZTU2OTdkMjZiYjI5YjI0YTg3YjM1MWFiMWZj
NGU2OQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzI3NjgKemNtZUkqJHgjQTk2dnB1PGczMmxp
REJ5PHN6Vkd7emZlQmRWVkdRMCl6YEs/USVSfiRTUX1De0B3WHJ4QEZkaGJ9Cno/dGZRM3BYMm9P
JT1aaTZTKiRMTFNeWmlhQkgwVj0hJjtmPSVHR2BIdTl+e09lMCskJXp1ZGxFeXh0cj9PJT95Ugp6
VXl1NCkybTE0KVpyTU5vRzx+OzN2YHBgYEohKlQqX0FjQUl3ZkFWbj9SNyRYKCpCOyhwNFE2UD50
NVRsK1dXTD4KemRtSHVvR2l1TSh6UiFHe2BIdVE7Rm1eZXV5akRTTEt4PEh8czghTWBZWWt9YFNN
ei1CJS1eb3tIVlhqKzVJX0l7CnoxUTAqfjBSI3wwMDA5SUxLbVkqKjVJX0l7MVEwKn4wUiN8MDAw
OUlMS21ZKio1SV9JezFRMCp+MFIjfDAwMDlJTAp6S21ZKio1SV9JezFRMCp+MFIjfDAwMDlJWDVa
SDFjTHUoPio9c2JwKSZUQCRCe0RAd2lmaWEqbjh8R1d7WVRnbygKeno7O09JeF80fHU3VGdRdmQ3
PlQ5XjlQUn5sfD95fSk4RyVWditWX1QreGBwTjxwYSRPRTAkWFZkdjMpRUZeIW9YCnokOHQreC0+
bzx5cmIpPEJoXktTKGUrVjROaUl+fSl0WSFpIWBKUTslWSM7WCNhOERwREVBRTlONWR3aChHT2Ar
SQp6QURhK3hQYXZ5UCRWWCZNIyUwcElhM24mWXArS0xgLXlmQlZPZj1sWk8kMXlOJGpPdzh2Qi1v
IzBELShyMmlWMEgKejFZOHMtJGMmNHokYj4pdTByUWBAU1Axd2pQP0F8V2t+MlRVbGlHOEV2ZHFi
YG9PYFo3ZF9NKSZ7RVNVJTFYTiVoClQxcThlbSp6aCh2ITRjU21BZlVofVBHQiorCgpsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHku
c3FsaXRlMy13YWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRl
eGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzc1YWY1N2VlYjljZTZhMmNmYTlkYzNiMGY2MzA5ZGY0MGJjY2VmZApHSVQgYmlu
YXJ5IHBhdGNoCmxpdGVyYWwgMjcxOTUyCnpjbWVJKjRTVz5rb2RAdWxvcWZxPHZwWSNoU1RNbTFV
P2VMRXV0Xnw8bnYlQi1aZG5xQGl2bXt+YzlSVipnbHlidwp6a2Ercm1xX3BSaV9POEJNP09weFUq
ODg7RHFraHoqRk00O2pUM2Z8aD8+PzQwVGQhfjB2KD1OTVZ2RSowdGxzfjUKemM0c3JRWT8zOEhm
YmJoZ0dXKlFUR3RZZVlDMyY5YnwyJEsoJnBJWWx7Q2JgczxPKiFiKn1tIUZodmJ1d2VzWG5CCnok
dlh3akYtajhrPkhwbUpvMmBwaC1nfmxSbFJxMl9zZU9ePz9tJGVmcU43YkZwPFkjS1VzS3xYOW1X
PVJ5cVR9WAp6enchS1prSkdLMWdrYHk+OUpFREx0YGdgITc2P0U5MHVYPXoxUnd3YjJ0V1Y9NVAt
bDFFLT4wNStGVjZOO0BCOyoKeksoSWc1OV9vb2lkeHNKfk9pa19IaEVBe0ErMGZ8c3MpPENrRUUz
IXE+V092NEJHSGhxU0BwR2NkZT9jfCl6LUY3Cnp3WUFJZFNLQ19Fcm5jND16cHRyTlpFNWlOJWhn
Pz41dys5MXhzJWZVZXdMeEh4cEJSQiVWZFlfM0dAJCNDZmd5KAp6T1I3OG4jJitMXmhXMEhnVyRZ
JCZVZURMczM7cj94bSFFZTBgMHg7YHZuUUdvRjdXM0MjZSlDQEFPSGFmS21ZO3wKemZCKnlfMDA5
VTwtfiRMNDtzcmtUPGt3I00jPj53P0sxSUJNcSZwdkxTRDFGWmZYUjc7O3N4aiU3Nj9FOTB1WD16
CnoxUnd3YjJ0V1Y9NVAtbDM1Wkc/QXhrYCh+UUFjPjdIPyVqPVZlaXdlT05rISt1MiRjc0Y2eEpH
WlQ0PX5JYDtXfgp6dG9KXkJNP2RlemNoQX4qMGFuTUN3ME1EPHNINkk7Wns2ejVYM3NAQD0pbmhn
UiZYYztBT0hhZkttWTt8ZkIqeV8KejAwOVU8MDBJfWRmRldNczxtY3t4WDdrc0BqdyN7PV56aXwj
VHx4aSZqT0dgUjkweiY0MFI2eE0wU0dfPDB1WD16CnoxUnd3YjJ0ZVJjN1pfVjNRSjs2SWMlWCg0
VkFwcWM+KHxZT3EzcnJDWUZVX2RrbjJYMFBjbzh5PTd6cVg7ZHBzbgp6IVEkUWJuT3UoPkBkNlho
U3VvWjcwPDJETio1VT4zYHE1WFB1NSowVWl1bmFEXl5ZVDVLTGo4RTBTR188MHVYPXoKejFSd3di
MndXbHBoSW9PYWhtUk5VZVdtenNyaWQ0Pz14bGhxZzZ7RGQjUzU0bjwleEkhVEVQTVYydFdWPTVQ
JCMjCnpBT0hhZks7UXh3KmstbzZtWTBnZEBtX2h8Km1kNCV1a1gzSEI+TUVAcXVCTFpfJk9XUHUx
ezNVWGRaZXU7c3lBVwp6e0Q+RXI7cmtKPUk9KTRWN2tLeWNjZGFoRl4ke0U5N3I0TWJqOEhyWEtt
WTt8ZkIqeV8wMDlVPDAwSXp6en1YUW4KeiMweGFzSXE+d184QDg1QjVpZWxYb3Rte1BPblpJLU9V
QG4xY21aMCkwcyNtPjAwSXp6MDBiWmEwU0d7VjM1P0ZRCnoqaiRTamk9I3Qpb1BBP3xCJCR7ZFVi
a3ZCakkhNWxGeClpMEojdTN2Y2EwQ3lEWjFNSUBqSiYpSTQwa1hjITR2Vgp6RHF2NWJlPmZDWlpF
RXhUOCM/SmUwTF9pLXk8NX0/aztfJVkzKFJvNTBJVEMkd1JuTzFmMFh9JlhEaGNwaTFgS1oKelZH
SUVYS21ZO3xmQip5XzAwOVU8MDBJIVdCbUBsYzB6Y21PeHFGWk4mJEVeKDtzcz0jM35OYElVYzVs
Z0tfU2ImCnpPQlhMLS08N2pEciZPMFdSdmBjWjJ0V1Y9NVAkIyNBVFprbU1yKjcjUzRvTERSK3NE
dFp3ZEVAaEZFN2VVJExGbQp6MmhOayN2ZHNGayl4QHBZWTRDYmVUV2dFbypWTClEQEZDbE1iZWgo
ez9uS3deZ25oTFdXI0lOP1N6WD18UTMkZyEKel4rUHhHaGh3NGN6O0c8V0E5cDlxLSg4dHBsfDhv
MTQpRylwJCllfCplSVpAfF9hbz91YjtLZ2s1Ymo1aUwzfjkjCnpDfVlBbWItNm0je1JuTEFPe2N7
Ui0xcjZtcnl1JiZlZVdQJWZUPmBDMDBiWmEwU0dfPDB1WD16MVJ3d2IyK1ZvYAp6LVdhRX4zKmBH
Qkp+OEB0VXdqSmw0JGtgTDlUeH16MnRXVj01UCQjI0FPSGFmS21ZO3xVOz1EUmZVTEMoLTErNmoK
ejE8UEsxKFR7Y2t5ZmAyTDBTR188MHVYPXoxUnd3YjJ0V1Y9bXhPPn1ldTNQKFBmOXpFMWdARTRl
Z1Y1cWhLKW0qCnpfV1QwYioqQmp5emQtaVFfSHRlUlNjTCF0QU9IYWZLbVk7fG5CQFlhNnwmOD5i
ZzRMJiN8UFpnUk9RVjlTXz0kPwp6ZDtAKXZsIXdgZCFTXld9YDM+TndtYCo8Mz09cFo8TXQ/KC13
X01mRG9JY0A1VTNYbyEpd09CcU04b1Y7aXEhMiUKek53OHluZml6UFJWMTl2VT8rfTBheTJzVz9I
ZGtxPmNtVlNZVjE5d2pAODlyJj1OSTZpMGIwRGtVbVUydD9XKT9WCnotQHlDPXY7M0RZRSlOMF9m
Qip5XzAwOVU8MDBJenowMGJacTdocnc9Y0NCNkQrMUs7S194PTRsMGdOTlMlTDQpcwp6ZkIqeV8w
MDlVPDAwSXp6MDBiYSNOZUNGbTVtO1ptUmJCNlI+eTliTDVqYkArWX5JM1lrMFdxbzlaRVpuQW5R
PGUKem8mMjhlRUxlcEExUnd3YjJ0V1Y9O3tzekY/TDYlS3o7IShBeWUrc2hsISFORlZkcDZpYXx+
aFVESTMrWWFJZmxYCno/ZXdubXd5UFc0ZUgkOXV4MldzQVRoc3wtJGtQUigkTHwzKkYjWT8jbTgt
aSNCTzMjOz4oeGVvVGpSdGhGSVUtMwp6O2R9ITwkdWR0XiZUQDVrVjZUdGVQUmBkbl8xXjl9JDdH
VDVEUWV4N0RHQVFIb0hJR3hsWEFFTjt8T3F7TFgwRTgKekkwRUJNSDYhRG4+JHAkaE94JmsxaHk5
QXg7c3QoUlR6fkpiWndAWlFJRCt2JUpnXjE8MnRXVj01UCQjI0FPSGFmCnpLbVk7fG44Z0NUMnwj
TlhEQkt1KnVWJnY5V3tlfTQjbV9oezRGVjg9MDBiWmEwU0dfPDB1WD16MVJ5WGp6e1VoUAp6d1JW
QSk1QzhLMnh9MEIocUZyRGQyeH0wNDAwYlphMFNHXzwwdVg9ejFSd3hgU3U5fGZVJT52V0VwYDZx
ZXBOQlcKemB+ciYzTCNGajwmb0FKIyNVYDB3ZkhxPSowMGJaYTBTTEA7Znc1fColfmV1anhGSHE0
R2FEWmxQR2pYMiF7R1MlCnphQilnRDQyeiMraDxPRz4tcGZfcEZ3UlZkcUd2dTlLME1TbDVXWm5K
SDErVXk4Vm88Jjl9OWEyViRxU1Ffalk0YAp6ZnZKJSZ6cmNqPWkqIT4mOzY4PT12RUF1fSpkIVdt
UG5PbD9FdCUqQmpnOUAwQWZHNnF5RTNeZGR1Kjg8ZzgybjcKenprdlFWWCF5bTFgMn1XVGVnUmc7
U0cwSjY1M1NxJHZ3NHJhZG5ASl9uQnsrajtfQEg+MFNHXzwwdVg9ejFSd3diCnoydFdWPWFSRWNU
ej1sdEclNUoqKGgzQlY7N3MlNyR1XnxXM2p1KihhLVpXe3ZmYn1MQHQ/cGJ7ZyNaS34wRClPNgp6
Rm5ZQ09iMWhqU2pAOXQjPD0yTnMpYGJRXyhMZ0tgOVdwJH5IVDBldkhtUE4yKnpLTEpPRHglRypm
U2lCaDZaQUUKemhOKE1kLUw8KF4qTT1uJV5gUkxgKzNoaHIldE8zRHJ5OEhrQU1wYVhBSGg7X0VS
VE56Xz9qRD0xR0UreDNpMFJ9Cno8SEt5anIkRVpTWVN9SiYoe18ze2NUUmopaGVfWjFkamtDdztX
QnYhP3otJkJab2lPSHE7NX0yZl89MmMlRU5AbAp6PmlGZCpgX197eUhwMysqbGh2e3lefmlVJWA9
PTtoeChrZkkmSEJScXExTmYmSHZ7bmt7TnV7SyYxYGlvRkJPTncKekB3aEkhPXx7WG5kbmdnbkhK
KUhlSmQ/aUdYNzZUfFpgU1hzd3pWMShgT0RXbXdubm5LTj1wcjRXY3M1TD50QDVOCnpNNHZhc2xW
eTQqNTx8Q3EjXz9rRDdocUdILWB+KmImQTJPQHpwRkFvTmNTNShlI015LSYlTkQ1YzE3Wi1nQT00
LQp6bE0teFF0LWVpTlJDeFooPT1XbiFPNSQ8S3BBfGUtJk9PPjgrRlY2TjtAQjx4P1ZIIyZAeHg/
elFxcEhMXiZiYGQKek1BSmlfRmlmZ2tqZlEkNihPI1hSP2haVXxgdHZmRXtmVmk/M3B+MHBecT05
WT9ydWlCel53aGw4eTV4djJ0V1Y9Cno1UCQjI0FPSGFmS21ZO3wmPG43PnwyKFotcHgqcHZ6eHw8
ZXRSMz9YPldRIXAwU0dfPDB1WD16MVJ3d2IydFdWPQp6NVNYPEJ5YV87UzdaXz1KSWBhTygteGpp
WDBafTw3KDA/b3RmQip5XzAwOVU8MDBJenowMGJaYTBTSHxEMCZfJVoKenNqP3Z5My1yPXh0IXFR
a3A+U2x0THppV3p1VmxReWAqVTc5eTVePFpVdTJDMXFIPGlJfDV6WFowU0dfPDB1WD16CnoxUnd3
YjJ0V1Y9NVNSQERgTztFM3JEMT9CJU1kVHslPG0yO2AmUkMzVmV0WWM8QCojYks7TilIMDBJenow
MGJaYQp6MFNHXzwwdVg9ejFSIXcxM1k0MHAocHFpR1J5TXpBRnduRT4jejNeVXlDPEBIRmMxcHwh
fk5tZE5KakFqfDk8b1AKejJhZjtaZm9vVn1mbDJ3ZnAhXiZXMH5oUVFrQWd0fTB1WD16MVJ3d2Iy
dFdWPTVQJCMjQ0sxUyROPTFFaGZobUp7CnpmIzh1bEtsMF5RLW5wRWAzck5hP0pZSWwpVjFXUHhB
T0hhZkttWTt8ZkIqeV8wMDlVPDtRUn5CayFYJHB0KilQIwp6QlZmaFpqMkhOK3dCRUF4O3sjdHxA
ZEE9Xmd2QVJTTEJ6b01mOHRSQjJ0V1Y9NVAkIyNBT0hhZkttWTt8ZldUd3wKemJFS3VvKm5tV1Bm
aSNfWGZmdSQ3WjllaHJ7ZVF7ZzE8Y0NkQ2dLSFgxcSVjcTAwOVU8MDBJenowMGJaYTBTR188Cnow
eThJMlYzc1BCNFN+SUYhSlZPPVNWdEBwNGYmY3E9Ujk3WmBtKkVnY1lmb0VNaXd0JVJ1MEdHMXI4
JShWQ0o1OQp6b0N5TERmQip5XzAwOVU8MDBJenowMGJafnNYJjJMQSpNRE1uOW8rY0soRHgyZXph
KXFfWWZ+ST4yclhNNVAkIyMKekFPSGFmS21ZO3xmQip5XzBEKkhXa2FAZy09TDYwIWtpI3d7WFp4
bXlBQ2daI2BvektTI0djLUV3SWU/N1Yyei1CCnpTR2gmMElrJVVKKyN2dH4ydFdWPTVQJCMjQU9I
YWZLbVk8NG5MeDgtNi14SFZTK1NBOSg2eGQ3O1pTZ31LUmdzJAp6dkVxNXIpWDVUYWcpRG4re0d2
b0xhZEFAME1kc0k9dGImVmoqKSMxTil7MGk0YThETDUkRnp6LU1QZnw9PEx2X0cKekJhYV9oeyRf
RH0tb1g9c0B+LWw+YXc0VlJjbkFScUttWTt8ZkIqeV8wMDlVPDAwSXp6eihweHdrd2o2Riptc2pq
CnpsNE99SyFwU1p+aXg9cDRkcl9VRyYwWmFFN2tFaWYtY2Vwc2VzQHRgRGhkcSYydFdWPTVQJCMj
QU9IYWZLbVk7fAp6eGEwKktRaSslaFlMSH5mQ0d5fHxsVDlqPVN2bXBudW0tSk47TUxkdTxGRF4p
elY0eTtJRCQ2PjwmXlQ0XjJSMDQKejJtbEJgMDBJenowMGJaYTBTR188MHVYP31ZIUVPQGw5KGwj
UDR1MDxCc3EmTkR2eTA+P0UtSlR8TkVhantlezgqCnohWj9FMkBPMHhFQU9IYWZLbVk7fGZCKnlf
MDA5VTwwMEtzVkd+KT5QXmFvbklLLVBgbGRpVHtFS2F8ejYkc2RrfAp6KVZAZWBjT2ElI1FCWi0m
Qi1FPWE8en1MPFZxTEVNbVdIfj0rSD94S3F8O1ZTIW1ge2BqK30hK3VKdEJDeHlwSU8KemFuTW5v
YkJCRmImZ1B1Yj8zP1o3UyU8Umc8bzllYj5ySi1XKH5kPzAxUnd3YjIrVHIoKFdAMWtZc25JRXRS
QHgrCnpfSmBKb00lSU19TGVUKS1zZHZjbUFoKVVBK3RCRyVJfnlBUFVlJk5rRXNOLUhAMm1QK0pI
Nnw/P1BfYVZyYHA9KAp6X3A1RUtZRXhUbGl7SURPc2tTdXV7QXlSTFomUjFva2x5YXk9eD1FOW1h
OUYoKFAoSE9Nclc4aEJYQDFDKXdOLVgKekQxLS1rTHdrcEE9JT9TSi1HU2opZ2dAPiFsKE80bmMk
aGE8P1g8WntPMmg7NEVCQ1ArZDtAKXY8Y2VhcjskKlR+Cno3VmUkOFdhYThXVjBURkVebG0xRGk1
JHcrR2xWTndjWkVoYTI0ZEglanNDWEEkdWJUUGJxJDFYNyFHQXAoJXItVAp6djlOYV83Ul5MX1lA
Xi1nVERudmBhMjxjYT14Xip5Y3F0RWE0MV81ZzRVaWsjZUgkOXV4MldzQVRQRDcmYmd2dXMKemRk
ZGlVOyk2M2FXaUtxPkt1PD1iMGVVVTU3Z1kxcWQlTm8jUkBiSmI2VE9JMilWZUVFNX1iODhYTDdo
RjwjNU1uCnpoMExHT3V7ezJTYGtFVj8xR0UreDNoe1M/QG5OPiUyfkY4b0VoRVYoVWg/VWxoMiZl
RzJpSCFLZng5a3l2ZGN7PQp6UW54MjEhOUg0SjwhfTQzSSkxczB7Z0dmeHhJWitNVChLRTBGYDJC
RTEhPm89Y0s7T1JPTHV8cypKdk18cmdpRU0KemdeNG43ZCRPITlaXj1ZMmxWbX09RTBlM1QkQ2xZ
NHA1ITV7PnltdjVxak4xYipXJChFPXVwekJKPTdENF9Id0RqCnpzYFdJaCMwSkIhZyFhZ2RRQDt6
ISl5I2F8K3NzemlAPXxkKTlSSStrSChCREdpQklWOTFXVGZIelNkXiVXfGVRJgp6QDUrQXQ9bzko
TipGQ21JdmJqbzI0Wmp4ak08diRIaEFUSF82VkNMVktmVFpZX3pTUzkmRl5Rd2tMbVMyPjFTclMK
enMoVip1ZW8kb21IK3VZdkd4e1hrWlgmeFBhbiEqSCh5JlBodyF8TCpAbj1UQUFBMz5+an01T09V
by0jUj1OfDE0CnpaTFhwc2FxSmZVdlB8cm5fK2NfVURlMUd4PGR2Qkc3fFl4JWp5JWI0YFkzPCU9
b0VGb0AhYSUmV0EqJnhgfnQ1cAp6PT0jJjEtI29MJExUUkZNaWZ0O1V1Pl5VaFZOOyY/eTctdVFr
Mm9TO0U3cG9PO2l6eiV1I04zLSMhRj9jTVEqNFIKemd6YzxKITZ5c3xGfks5TzUqbWFre1I7PnFm
fGIoZW56ZWlqKi1FYClrKy1wOVNhP0kxNWF2ZyU3TWdeOUklMm1sCnpEMT9PRylFdHIlSkBPblhv
d35EKj1hNnoldUU5Pm9rNkdjYyRhVTxqWSRBcXVObXIreUNEeyhiazB7RXEkZllWQgp6IUFgemAk
fk1UYT1KSnlGWDwyQmVqcGQxcjlhUThQLT8rZUxWVyhCdUU+fm4qV1kza2Yzb35kSGhVd2Fadn0y
VS0Kem19cmhFdDFwJm11ZXBpNkl3K2VjN3VtdTBEcTVPbGstZS04Y0ZKUz9gV2gqPktLaUhTUj4o
X1VZTk0+bTU/UXM9Cnojdk91SipxYlBKSzRxfX5KdH4kRXZ8NDVOREJGKWNGTzk/PXBAT2tPRCU1
YlpwTThYYFZjKV83dX4yaiUoNyRIKwp6XjVyWTVKZjc7RnNfS2dCVWA/b15JIzlFK1ZzI313NER7
OTEqNEZrMGYtOEUrUkBrcFNQaCpiXlQ1TkxOZmo1YFkKelkyeEMkTnBKQGhzK29TcT0hPjF1Ki1Q
S3BTTit9ZTRHUlB5MDA5VTwwMEl6ejAwYlphZndMPSt6dGhhPktkVGU8CnpwQkFjYV47NU5rUlkl
elV7UHNeKzJkYipBPjxpWlBkTVp9ZCk+MXtOeEBUMkl1eVNSdnFOPXdxUGB6VCtzO2E3Qgp6Nnxa
Mn5EM2B1U1dMYSEpT3FERk1gXnY8cjt4KFc2c3FEaHp7d0U4NUleMC1jcURtVnAzQGJuelJtNjV1
VlJ7blAKek5mUn1yP0hgT3IyMUMpPGg/IUw/U0JNdDVxTEZySSkleClZQXY7KnFEIWV2VTh8M3Yr
S2AzSCMzLURUKjdCQXJMCnp6M1lrfUVWPXktUiUwKTg5MlMmZyUzNVdGP3BBb25AZXt7azx1bEgx
PUt8KyomU1EkQTk5MDYmS1BnTGBiJmdaYwp6MmJ9eHAwNHh4STAwYlphMFNHXzwwdVg9ejFSeVhJ
MCpsU0VQWllNWllIQURid3FyZU10QXVKQE1YKWdLSzI8YGMKelpsOGpNWDR5O211cyVodF90ZHpA
b0QjRiNLem9lJD5LZURfcl4mKENAMClqODQjd0BkNj1yIUdvZ3VTNlVgM2FrCnpSJF9oY3QjZzR7
dUF8KTJfdzczSiV5S0RoOXEtNEAoV1MmWVp8eUYjPzRmO0ZNT3hvaW8yXlVOX3MrXlhmJD9nJQp6
ekYjJj1jY2l7RSk7N20xeVhqMVomUjBZRVErckEreCtBcGEzYlFVdllnZHFUWFZrWU9tPHI1dGdg
Qz1DS29gbWAKekhXQEVhX2A+ekt0I0xiIXZVdndoJTl4LSRMRW9ASTAwSXp6MDBiWmEwU0dfPDB1
WD16MVIhdloxbk91NHo8dChmCnokNj9vcmJodFV+O2hCVW0mX3opSSErNSpFQGVoWHtlQzRqPzU2
MFVDXzZvfHNEMHxQKmcoRilDS21ZO3xmQip5Xwp6MDA5VTwwMEl6enokR2l0WHA7OExQZ3xTTVdL
ZWVIR0luVUFJOGgjJXY8UF4zOWBwcThOajxjMjFrWVU3YHEqPkYKenVsZnYmNWl1I0I1UkBuQjh4
e3lhMDBJenowMGJaYTBTR188MHVYPXoxa1JtNm93UUchYnttMXxZSDZSR19VS0duCnoyazReTXUj
NG40Zzc1I352I296UElRTFdXYzdiRHBeMHNwOSsrOD93aDUhVTAwMDlVPDAwSXp6MDBiWmEwU0dg
fgp6aDZKKnVgQz5mS3okOG9hPHomMTdue3ooZEVAMXk9dG1TdDVxcmF4NElXdHIpb0NYM0FmQip5
XzAwOVU8MDBJenoKejAwYlphZiU3Tjg+O0t2fmc1M0hDeklld1VLZT81UFEqaSFAZ2ZsfGAwdVg9
ejFSd3diMnRXVj01UCQjI0FUVUQkCnp5I0JBWDNwYGRae0tFZypUflJ1QjtTOE4wci0xK2pBT0hh
ZkttWTt8ZkIqeV8wMDlVPDtRUl5qYG9HcExQISMkOAp6ej8tanI/O29mKmJJKUlxYUFwV1YwMEl6
ejAwYlphMFNHXzwwdVg9ejFaR0hwKlo7TTQwb1BPMy0rdWskJWc1OzQKenR7Rk4lUDZHaTVLbVk7
fGZCKnlfMDA5VTwwMEl6eiExKXY0Xj8kOGg7TFU+Ny0rOGBHeHJ2SDFAQjlAQlhOQ1gtCnpBT0hh
ZkttWTt8ZkIqeV8wMDlVPFYxQCpFe2E8U3JjPFJ2NF9TbWwzIXxxV3FlfT5NRig/OT9NNVAkIyNB
T0hhZgp6S21ZO3xmQip5X2FRKn4le2E8U3JJUWl8P3pwQjE8O301QWdten0+TjttaTwjMDBiWmEw
U0dfPDB1WD16MVJ3d2IKejIrV1dHdW01WjkwdDtXWmVlJmZNYHhlZDZ4cDVpQEttWTt8ZkIqeV8w
MDlVPDAwSXp6MDBocGpLb0w4PSktS1NvCnohdjJlVUxpUnM4Q0Bvam1DTWZAXitAc3YwPGU3I3xk
RSlFaFc4eXZIaDxMNDdFODJ2ayFmbXZ9YmU3Nm9pYC1CdAp6Mi1+eWlYckN9MyF+fkQ5TkB4KEde
ZS1UYzJ2JG07WXUyKm5IJXpFa0ViPXlYT2RjaDczMU5RSllOMUshcnozVT8KemdGO0I/UDBjfHY8
V1Q5PG9wbjVpbChVKSkkRTxLejxUYGQlblVkb3JVN2RPcyhRcmdqanp1bjI9P0hmNjRPRiY0Cnpl
bD9ldXlpZHpRSjhkamFaMHcqUyROMHR0SFZacWclNjdSVCthaTBlcStPVW50MXdMMDdOaX1jZTgq
eCtxb3U2QQp6U2Y7JmIhYnJZWDJXMW9HQjBLbkFNTjZ8UnZSOT84Y0dgTFRgV2gqPktLaUhTUj4o
X1VZTk0+bTU/UXM9I3ZPdUoKeipxYk9lOCY5KFRKdH4kRXZ8NDVOREJGKWNGTzk/PXBAT2tPRHom
c3Z1czslOSFAaCtGVnhqMGpwbnVLczw7eiFBCnpjfDZyVVJuLTtNIUoxRy1iKWFUdCNwKzZXODBm
MzF0Knp9MTFYdUtzdCp+RXZwMmkqLXdBa2RqMTgqKikpNU9KaAp6bGkmXzJSNVNnSShIQT9SdnpO
Wkh1bGw+YDh4e3lhMDBJenowMGJaYTBTR188MCV1bnNmMld6JWVed3t6S1BePDwKej5aZlc2dEIm
TioqWnY5WEt2bEpzZVppVnVQc1BnR1RCLTxEX3BHVzJSO348SVJRMmArcyNtTzlSYUYoTjt1UzAj
Cno8PGJ8NEVRe0Bwc2dneEBVenM+bnl5Zz0+bTBmdDt8NzV7V2haYCRRUkIyO3tWRmhUVGlyN3Zu
T2khWFpZMDlGawp6MkJWUnxQJjc3VFd8aGhucUQ4Sn5xfT9zRmAqPytyOVZ9YFVVS15fb0BfSHlj
ZzRTN092c2h+dkZzLWlxXld3bm0KeipSeXMzaX1RcV97ODBJdnZSeF5vUlYpeUkwMGJaYTBTR188
MHVYPXoxUnd4YGkoWCg9cCspd3c0cSNUeFp7ZlkzCnp0UnIlalBAUGhicDNDfHhgTkYlYVJ+NGle
dTFjcyhKJnIydHk1cCtuUH1lT3hBTTNpK0k7cW5mTVhkJDhxYmw9dAp6VUVBPyk+TkxsJj5PTm4x
MzlJd2NvR0RFPUpabXgtS1pAM1BaPmBvWUBOWD9nenc/blY8ITdePXsxUyZPRDk0bncKeiU4MnFe
PCZmaGlqPkYxbG9aWmReJmdZIVI2aCUzejFlfHxUbU5AR2lyPEBOc19jYHUkK34oTnRoJlZweCp4
PE9ACnp2RDklSDlnWVA4NVAkIyNBT0hhZkttWTt8ZldYQmdrWlRxZlFsRnxDRll5KWlDQn1xQl5f
THFIKWNPVStneVE7UQp6VzVUQHBCNGF7OXtiazA0LTFfOyhnc2wyYCNzczA+V2xUNytjSjUtYz49
UCVpKmNQVlUkNV4jMlNaSjJMbCtWTiEKeik7VDMreHE8Yz1rTT1nXmtlPzw4Vj97TFl2PmM0dmIx
VGc5SGFiSVF2RWhtP0g/NH1Ua0xxP1ZGdzFxNlRsJCE5CnpOMWo8T3JMRSlmLThzNkhjdT0/OVd0
S2coNTM2ek9XNE48Kj5INFRgU3RsXndKK0ZffiZlOSNKNTdNXkhHMFNjYAp6bE9aVkVRMnh7aVlL
IWcmRXNWamVPVmk+RkI7NlZINWVCOUx2c0B2a2g3ITwpPUNZVCgpLUpIRkByX15QZURoMEwKejQm
Xk9EUWVHMzNRXzM2azB9QktvMDA5VTwwMEl6ejAwYlphMFNHXzwwdkVBPiNVWThKRGNkWWJWaXMh
fHZDMVklCnpsdz1tJXojMyhlP0UrdFlffnFqcGRxVCVwVGFjdkNJRCZWVHg5SkJLMnRXVj01UCQj
I0FPSGFmS21ZO3xmQip6JAp6ZnE7ZFkyUEJEb0gjc0NwV315e15gMzJUfWJuQ0E5Y1lvXjxIb3Qp
NF8/PlFrMHEyWCg/Plg7dGUlM2tTM185MDQKeiViZ2I1ajBGTV5mQip5XzAwOVU8MDBJenowMGJe
N2Z4OzR0eE54cVo4IW97aj1KUUd+cntxPVIkJjJiKWF4TStRCnotK3hXMHpkdXJiVF9vRHl5S3Vu
KitVPzVtLUJpOUM+c2g4e1poY3t+RzRvPStTdVFMeENlUCFeUyVzR3dsTThzVgp6dCNIMEVJaFE5
fT1nKl8kJWcwWmgjZ2k+O3RiQyElYyFhPD1uRzVGe2xUV049KkNiKG5meXc2PSohdWFFRlVAPUEK
emxfQj01RjNOZX4xSXtteV5HP3BJbG5FOUhLbVk7fGZCKnlfMDA5VTwwMEp7RXp7bGlFK0dHSile
XjElTkxqNkt4CnohaWx4MmFUcWA1N29mWXZWU1dNYTkmd2s+YH5vWD5aaGgqJXxFY3FrTHdRNCtV
KkkrNjxjejw4YVk2X3swMEl6egp6MDBiWmEwU0dfPDB1WD16MWtSI0JWdHhWMihVTjchPCUwPiom
TSl4cyYpJX4yYHVtNStGdSVaQSM3OTtUZkIqeV8KejAwOVU8MDBJenowMGJaYWZlUz17Jm83V1dA
JSNjR1FAYCF9XzI9emhWZTw+KkpIOXI+YH5yMEUhcENWUkVEKFNJCnoxUnd3YjJ0V1Y9NVAkIyNB
YUwjbDNLI001XjE4dGhZYGxDPztYLTNfZTAyVCVMZS1jWUE2LThXXjl4e3AwcHQ3dgpGe3xgbmg0
OSktbQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRD
b21wYXRpYmlsaXR5UmVhZC5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjBmNDc2MTliNWY2NTM0MWUyNTlhZDQyYWVkNDc5MzVmZGVkOGI4MGMK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0bWwK
QEAgLTAsMCArMSw5OSBAQAorPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBsb2cobXNnKQorICAgIHsK
Ky8vICAgICAgICBhbGVydChtc2cpOworICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShtc2cpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHNob3VsZEJlVHlwZShfYSwgX3R5cGUpCisgICAgeworICAgICAgICB2YXIgZXhjZXB0aW9uOwor
ICAgICAgICB2YXIgX2F2OworICAgICAgICB0cnkgeworICAgICAgICAgICAgX2F2ID0gZXZhbChf
YSk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIGV4Y2VwdGlvbiA9IGU7Cisg
ICAgICAgIH0KKworICAgICAgICB2YXIgX3R5cGV2ID0gZXZhbChfdHlwZSk7CisgICAgICAgIGlm
IChfYXYgaW5zdGFuY2VvZiBfdHlwZXYpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAg
fQorCisgICAgLy8gVmFsdWVzIHRoYXQgYXJlIHVzZWQgdG8gaW5mZXIgdGhlIHR5cGUgb2YgYSBn
aXZlbiBwcmltaXRpdmUgdHlwZS4KKyAgICB2YXIgdGVzdFZhbHVlcyA9IFsKKyAgICAgICAgdW5k
ZWZpbmVkLAorICAgICAgICBudWxsLAorICAgICAgICA1LCAvLyBJbnQKKyAgICAgICAgMCwKKyAg
ICAgICAgMSwKKyAgICAgICAgZmFsc2UsCisgICAgICAgIHRydWUsCisgICAgICAgIDUuNSwgLy8g
RG91YmxlCisgICAgICAgICJIZWxsbyxXb3JsZCEiLAorICAgICAgICAiIgorICAgIF07CisKKyAg
ICAvLyBWYWx1ZXMgdGhhdCBhcmUgdXNlZCB0byBpbmZlciB0aGUgdHlwZSBvZiBhIGdpdmVuIEJv
b2xlYW4vU3RyaW5nIHR5cGUuCisgICAgdmFyIHRlc3RUeXBlVmFsdWVzID0gWworICAgICAgICB7
IGl0ZW06IG5ldyBCb29sZWFuKHRydWUpLCB0eXBlOiAiQm9vbGVhbiIsIHZhbHVlOiB0cnVlIH0s
CisgICAgICAgIHsgaXRlbTogbmV3IEJvb2xlYW4oZmFsc2UpLCB0eXBlOiAiQm9vbGVhbiIsIHZh
bHVlOiBmYWxzZSB9LAorICAgICAgICB7IGl0ZW06IG5ldyBTdHJpbmcoKSwgdHlwZTogIlN0cmlu
ZyIsIHZhbHVlOiAiIiB9CisgICAgXTsKKworICAgIHZhciBvcGVuUmVxdWVzdCA9IGluZGV4ZWRE
Qi5vcGVuKCJiYWNrd2FyZF9jb21wYXRpYmlsaXR5Iik7CisgICAgb3BlblJlcXVlc3Qub25lcnJv
ciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGxvZygiRXJyb3I6ICIgKyBldmVudC50YXJn
ZXQuZXJyb3IubmFtZSk7CisgICAgfQorICAgIG9wZW5SZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAg
cmVhZFR5cGUoKTsKKyAgICB9CisKKyAgICB2YXIgcmVzdWx0ID0gdHJ1ZTsKKyAgICBmdW5jdGlv
biByZWFkVHlwZSgpCisgICAgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2Fj
dGlvbigidHlwZSIpLm9iamVjdFN0b3JlKCJ0eXBlIik7CisgICAgICAgIG9iamVjdFN0b3JlLm9w
ZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgY3Vy
c29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAg
ICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgc2hvdWxkQmVUeXBlKCJjdXJzb3IudmFs
dWUiLCBjdXJzb3Iua2V5KTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHJlYWRWYWx1ZSgpOworICAgICAgICB9
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlYWRWYWx1ZSgpCisgICAgeworICAgICAgICB2YXIg
b2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigidmFsdWUiKS5vYmplY3RTdG9yZSgidmFsdWUi
KTsKKyAgICAgICAgb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGV2ZW50KSB7CisgICAgICAgICAgICBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworICAg
ICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoY3Vyc29yLnZhbHVlID09PSB0ZXN0VmFsdWVzW2N1cnNvci5rZXkgLSAxXSk7CisgICAgICAg
ICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgICAgICByZWFkVHlwZVZhbHVlKCk7CisgICAgICAgIH07CisgICAgfQorCisgICAgZnVuY3Rp
b24gcmVhZFR5cGVWYWx1ZSgpCisgICAgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50
cmFuc2FjdGlvbigidHlwZVZhbHVlIikub2JqZWN0U3RvcmUoInR5cGVWYWx1ZSIpOworICAgICAg
ICBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICAgICAgICAgIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBp
ZiAoY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHNob3VsZEJl
VHlwZSgiY3Vyc29yLnZhbHVlIiwgdGVzdFR5cGVWYWx1ZXNbY3Vyc29yLmtleSAtIDFdLnR5cGUp
ICYmIChjdXJzb3IudmFsdWUgPT0gdGVzdFR5cGVWYWx1ZXNbY3Vyc29yLmtleSAtIDFdLnZhbHVl
KTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAgICAgICAgbG9n
KCJQYXNzIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBsb2co
IkZhaWwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9Cis8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWRE
QlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVC
YWNrd2FyZENvbXBhdGliaWxpdHlXcml0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyNjZlY2M0ZWFhYjE5
Y2ZhNWZlMTliN2FiOTMzM2NhMzA0MTUzNDcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNr
d2FyZENvbXBhdGliaWxpdHlXcml0ZS5odG1sCkBAIC0wLDAgKzEsMTcxIEBACis8c2NyaXB0Pgor
ICAgIGZ1bmN0aW9uIGxvZyhtc2cpCisgICAgeworLy8gICAgICAgIGFsZXJ0KG1zZyk7CisgICAg
ICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdl
KG1zZyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2hvdWxkQmVUeXBlKF9hLCBfdHlwZSkKKyAg
ICB7CisgICAgICAgIHZhciBleGNlcHRpb247CisgICAgICAgIHZhciBfYXY7CisgICAgICAgIHRy
eSB7CisgICAgICAgICAgICBfYXYgPSBldmFsKF9hKTsKKyAgICAgICAgfSBjYXRjaCAoZSkgewor
ICAgICAgICAgICAgZXhjZXB0aW9uID0gZTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBfdHlw
ZXYgPSBldmFsKF90eXBlKTsKKyAgICAgICAgaWYgKF9hdiBpbnN0YW5jZW9mIF90eXBldikgewor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBWYWx1ZXMgdGhhdCBhcmUg
dXNlZCB0byBpbmZlciB0aGUgdHlwZSBvZiBhIGdpdmVuIHByaW1pdGl2ZSB0eXBlLgorICAgIHZh
ciB0ZXN0VmFsdWVzID0gWworICAgICAgICB1bmRlZmluZWQsCisgICAgICAgIG51bGwsCisgICAg
ICAgIDUsIC8vIEludAorICAgICAgICAwLAorICAgICAgICAxLAorICAgICAgICBmYWxzZSwKKyAg
ICAgICAgdHJ1ZSwKKyAgICAgICAgNS41LCAvLyBEb3VibGUKKyAgICAgICAgIkhlbGxvLFdvcmxk
ISIsCisgICAgICAgICIiCisgICAgXTsKKworICAgIC8vIFZhbHVlcyB0aGF0IGFyZSB1c2VkIHRv
IGluZmVyIHRoZSB0eXBlIG9mIGEgZ2l2ZW4gQm9vbGVhbi9TdHJpbmcgdHlwZS4KKyAgICB2YXIg
dGVzdFR5cGVWYWx1ZXMgPSBbCisgICAgICAgIHsgaXRlbTogbmV3IEJvb2xlYW4odHJ1ZSksIHR5
cGU6ICJCb29sZWFuIiwgdmFsdWU6IHRydWUgfSwKKyAgICAgICAgeyBpdGVtOiBuZXcgQm9vbGVh
bihmYWxzZSksIHR5cGU6ICJCb29sZWFuIiwgdmFsdWU6IGZhbHNlIH0sCisgICAgICAgIHsgaXRl
bTogbmV3IFN0cmluZygpLCB0eXBlOiAiU3RyaW5nIiwgdmFsdWU6ICIiIH0KKyAgICBdOworCisg
ICAgaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCJiYWNrd2FyZF9jb21wYXRpYmlsaXR5Iik7Cisg
ICAgdmFyIG9wZW5SZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oImJhY2t3YXJkX2NvbXBhdGliaWxp
dHkiKTsKKyAgICBvcGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkg
eworICAgICAgICAvLyBUaGlzIG9iamVjdFN0b3JlIHN0b3JlcyBlbGVtZW50cyB0aGF0IHdlIG9u
bHkgbmVlZCB0byBjaGVjayBpdHMgdHlwZSB0byBkZXRlcm1pbmUgaXRzIHNlcmlhbGl6YXRpb24g
dGFnLgorICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBldmVudC50YXJnZXQucmVzdWx0LmNyZWF0
ZU9iamVjdFN0b3JlKCJ0eXBlIik7CisgICAgICAgIC8vIFRoaXMgb2JqZWN0U3RvcmUgc3RvcmVz
IGVsZW1lbnRzIHRoYXQgd2UgbmVlZCB0byBjaGVjayBpdHMgdmFsdWUgdG8gZGV0ZXJtaW5lIGl0
cyBzZXJpYWxpemF0aW9uIHRhZy4KKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZXZlbnQudGFy
Z2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgidmFsdWUiLCB7IGF1dG9JbmNyZW1lbnQgOiB0
cnVlIH0pOworICAgICAgICAvLyBUaGlzIG9iamVjdFN0b3JlIHN0b3JlcyBlbGVtZW50cyB0aGF0
IHdlIG5lZWQgdG8gY2hlY2sgYm90aCBpdHMgdHlwZSBhbmQgaXRzIHZhbHVlIHRvIGRldGVybWlu
ZSBpdHMgc2VyaWFsaXphdGlvbiB0YWcuCisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGV2ZW50
LnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInR5cGVWYWx1ZSIsIHsgYXV0b0luY3Jl
bWVudCA6IHRydWUgfSk7CisgICAgfQorICAgIG9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlv
bihldmVudCkgeworICAgICAgICBsb2coIkVycm9yOiAiICsgZXZlbnQudGFyZ2V0LmVycm9yLm5h
bWUpOworICAgIH0KKyAgICBvcGVuUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkg
eworICAgICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHN0b3JlVHlwZSgp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0b3JlVHlwZSgpCisgICAgeworICAgICAgICB2YXIg
dHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbigidHlwZSIsICJyZWFkd3JpdGUiKTsKKyAgICAg
ICAgdHJhbnNhY3Rpb24ub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBs
b2coIkVycm9yOiAiICsgZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUpOworICAgICAgICB9CisgICAg
ICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbihldmVudCkgeyBzdG9yZVZhbHVl
KCk7IH0KKworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9y
ZSgidHlwZSIpOworICAgICAgICAvLyBUaGUga2V5IG9mIGFuIGl0ZW0gaXMgdGhlIHR5cGUgb2Yg
aXRzIHZhbHVlLCBoZW5jZSB3ZSBjb3VsZCBkZXRlcm1pbmUgdHlwZSBtaXNtYXRjaCwgaS5lLiBz
ZXJpYWxpemF0aW9uIHRhZyByZW9yZGVyCisgICAgICAgIC8vIHNpbXBseSBieSB1c2luZyBhbiBp
dGVtJ3Mga2V5IGFuZCB2YWx1ZS4KKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKFsxLCAyXSwgIkFy
cmF5Iik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZCh7IHByb3BlcnR5OiBudWxsIH0sICJPYmpl
Y3QiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBEYXRlKCksICJEYXRlIik7CisgICAg
ICAgIG9iamVjdFN0b3JlLmFkZChuZXcgRmlsZShbImZvbyJdLCAiZm9vLnR4dCIpLCAiRmlsZSIp
OworICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IEltYWdlRGF0YSgxMDAsIDEwMCksICJJbWFn
ZURhdGEiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBCbG9iKFsiZm9vIl0pLCAiQmxv
YiIpOworICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IFJlZ0V4cCgnJyksICJSZWdFeHAiKTsK
KyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBBcnJheUJ1ZmZlcigxKSwgIkFycmF5QnVmZmVy
Iik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgU3RyaW5nKCcnKSwgIlN0cmluZyIpOwor
ICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IE51bWJlcigxMiksICJOdW1iZXIiKTsKKyAgICAg
ICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBTZXQoWzEsIDJdKSwgIlNldCIpOworICAgICAgICBvYmpl
Y3RTdG9yZS5hZGQobmV3IE1hcCgpLCAiTWFwIik7CisgICAgICAgIC8vIFR5cGVkIGFycmF5cwor
ICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IEludDhBcnJheSgpLCAiSW50OEFycmF5Iik7Cisg
ICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgVWludDhBcnJheSgpLCAiVWludDhBcnJheSIpOwor
ICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IFVpbnQ4Q2xhbXBlZEFycmF5KCksICJVaW50OENs
YW1wZWRBcnJheSIpOworICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IEludDE2QXJyYXkoKSwg
IkludDE2QXJyYXkiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBVaW50MTZBcnJheSgp
LCAiVWludDE2QXJyYXkiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBJbnQzMkFycmF5
KCksICJJbnQzMkFycmF5Iik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgVWludDMyQXJy
YXkoKSwgIlVpbnQzMkFycmF5Iik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgRmxvYXQz
MkFycmF5KCksICJGbG9hdDMyQXJyYXkiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBG
bG9hdDY0QXJyYXkoKSwgIkZsb2F0NjRBcnJheSIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0
b3JlVmFsdWUoKQorICAgIHsKKyAgICAgICAgdmFyIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rp
b24oInZhbHVlIiwgInJlYWR3cml0ZSIpOworICAgICAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0g
ZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGxvZygiRXJyb3I6ICIgKyBldmVudC50YXJn
ZXQuZXJyb3IubmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0
ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7IHN0b3JlVHlwZVZhbHVlKCk7IH0KKworICAgICAgICB2YXIg
b2JqZWN0U3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgidmFsdWUiKTsKKyAgICAgICAg
Ly8gSGVyZSB3ZSBzdG9yZSB2YWx1ZXMgaW4gdGhlIHRlc3QgbWF0cml4IGluIG9yZGVyIGFuZCBy
ZWFkIHRoZW0gaW4gb3JkZXIgdG8gc2VlIGlmIGFueSBtaXNtYXRjaCBoYXBwZW5zLgorICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RWYWx1ZXMubGVuZ3RoOyBpKyspCisgICAgICAgICAg
ICBvYmplY3RTdG9yZS5hZGQodGVzdFZhbHVlc1tpXSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c3RvcmVUeXBlVmFsdWUoKQorICAgIHsKKyAgICAgICAgdmFyIHRyYW5zYWN0aW9uID0gZGIudHJh
bnNhY3Rpb24oInR5cGVWYWx1ZSIsICJyZWFkd3JpdGUiKTsKKyAgICAgICAgdHJhbnNhY3Rpb24u
b25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBsb2coIkVycm9yOiAiICsg
ZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUpOworICAgICAgICB9CisgICAgICAgIHRyYW5zYWN0aW9u
Lm9uY29tcGxldGUgPSBmdW5jdGlvbihldmVudCkgeyByZWFkVHlwZSgpOyB9CisKKyAgICAgICAg
dmFyIG9iamVjdFN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoInR5cGVWYWx1ZSIpOwor
ICAgICAgICAvLyBIZXJlIHdlIHN0b3JlIGl0ZW1zIGluIHRoZSB0ZXN0IG1hdHJpeCBpbiBvcmRl
ciBhbmQgcmVhZCB0aGVtIGluIG9yZGVyIHRvIHNlZSBpZiBhbnkgbWlzbWF0Y2hlcyBpdHMgdHlw
ZSBhbmQgdmFsdWUuCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdFR5cGVWYWx1ZXMu
bGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmplY3RTdG9yZS5hZGQodGVzdFR5cGVWYWx1ZXNb
aV0uaXRlbSk7CisgICAgfQorCisgICAgdmFyIHJlc3VsdCA9IHRydWU7CisgICAgZnVuY3Rpb24g
cmVhZFR5cGUoKQorICAgIHsKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rp
b24oInR5cGUiKS5vYmplY3RTdG9yZSgidHlwZSIpOworICAgICAgICBvYmplY3RTdG9yZS5vcGVu
Q3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGN1cnNv
ciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBpZiAoY3Vyc29yKSB7CisgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHNob3VsZEJlVHlwZSgiY3Vyc29yLnZhbHVl
IiwgY3Vyc29yLmtleSk7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAg
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICByZWFkVmFsdWUoKTsKKyAgICAgICAgfTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiByZWFkVmFsdWUoKQorICAgIHsKKyAgICAgICAgdmFyIG9i
amVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oInZhbHVlIikub2JqZWN0U3RvcmUoInZhbHVlIik7
CisgICAgICAgIG9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihl
dmVudCkgeworICAgICAgICAgICAgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYg
KGN1cnNvci52YWx1ZSA9PT0gdGVzdFZhbHVlc1tjdXJzb3Iua2V5IC0gMV0pOworICAgICAgICAg
ICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICAgICAgcmVhZFR5cGVWYWx1ZSgpOworICAgICAgICB9OworICAgIH0KKworICAgIGZ1bmN0aW9u
IHJlYWRUeXBlVmFsdWUoKQorICAgIHsKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJh
bnNhY3Rpb24oInR5cGVWYWx1ZSIpLm9iamVjdFN0b3JlKCJ0eXBlVmFsdWUiKTsKKyAgICAgICAg
b2JqZWN0U3RvcmUub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgICAgICBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgaWYg
KGN1cnNvcikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBzaG91bGRCZVR5
cGUoImN1cnNvci52YWx1ZSIsIHRlc3RUeXBlVmFsdWVzW2N1cnNvci5rZXkgLSAxXS50eXBlKSAm
JiAoY3Vyc29yLnZhbHVlID09IHRlc3RUeXBlVmFsdWVzW2N1cnNvci5rZXkgLSAxXS52YWx1ZSk7
CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpCisgICAgICAgICAgICAgICAgICAgIGxvZygi
UGFzcyIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJG
YWlsIik7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316661</attachid>
            <date>2017-07-28 11:45:18 -0700</date>
            <delta_ts>2017-07-30 10:29:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173998-20170728114522.patch</filename>
            <type>text/plain</type>
            <size>40404</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwMDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWQ2YzVjMTgwMzVlZDJl
NzQ5M2UwNDQ2ZTA1YjM5ZmJkOGZlNWEyOC4uZTJmMTNmZmRhZDVkOTZjM2Y3Mzc1ZDg1OGU3YWY3
OWU0YWFmY2M3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA3LTI2ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRW5zdXJlIGJhY2t3YXJk
IGNvbXBhdGliaWxpdHkgaW4gdGhlIHNlcmlhbGl6YXRpb24gZm9ybWF0IG9mIHN0cnVjdHVyZWQg
Y2xvbmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzM5OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
byBjaGFuZ2VzIG9mIGJlaGF2aW9yLgorCisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgQWRkIGEgY29tbWVudC4KKwogMjAxNy0wNy0yOCAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogUmVjb3JkIGFjdGlvbnMgcGVyZm9ybWVkIG9uIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5jcHAKaW5kZXggNDRjZTljZDMzM2NjNmE2NTdhODFlMDNjNDI0YzM1ZmJiZjc0MmIzMC4uM2Nh
ZWNjYjg3MmY2M2IyMjMzYmRhODRkNzVmYjc1OTNiYjc5YmM3MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC0xMTcs
NiArMTE3LDcgQEAgZW51bSBXYWxrZXJTdGF0ZSB7IFN0YXRlVW5rbm93biwgQXJyYXlTdGFydFN0
YXRlLCBBcnJheVN0YXJ0VmlzaXRNZW1iZXIsIEFycmF5RW4KICAgICBTZXREYXRhU3RhcnRWaXNp
dEVudHJ5LCBTZXREYXRhRW5kVmlzaXRLZXkgfTsKIAogLy8gVGhlc2UgY2FuJ3QgYmUgcmVvcmRl
cmVkLCBhbmQgYW55IG5ldyB0eXBlcyBtdXN0IGJlIGFkZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGxp
c3QKKy8vIFdoZW4gbWFraW5nIGNoYW5nZXMgdG8gdGhpcyBsaXN0IHBsZWFzZSBjb3ZlciB5b3Vy
IG5ldyB0eXBlKHMpIGluIHRoZSBBUEkgdGVzdCAiSW5kZXhlZERCLkJhY2t3YXJkQ29tcGF0aWJp
bGl0eSIKIGVudW0gU2VyaWFsaXphdGlvblRhZyB7CiAgICAgQXJyYXlUYWcgPSAxLAogICAgIE9i
amVjdFRhZyA9IDIsCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggZjU2NGNiOTFhZGI4NmYzN2I0MTdhMDBmNGI3YTliNDI0NmYwNzViOS4uNWZiYjA5
NzI2YjA0OWJiZDQyYmRhNTgwMzlmYzVlZjFlYzM5NTIxNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE3LTA3LTI2
ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRW5zdXJlIGJh
Y2t3YXJkIGNvbXBhdGliaWxpdHkgaW4gdGhlIHNlcmlhbGl6YXRpb24gZm9ybWF0IG9mIHN0cnVj
dHVyZWQgY2xvbmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzM5OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBIHRlc3QgaXMgY29tcG9zZWQgdG8gZW5zdXJlIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkg
aW4gdGhlIHNlcmlhbGl6YXRpb24gZm9ybWF0IG9mIHN0cnVjdHVyZWQgY2xvbmVzLgorICAgICAg
ICBUaGUgd2F5IGl0IHdvcmtzIGlzIHRvIHJlYWQgZnJvbSBhIHByZS1iYWtlZCBkYXRhYmFzZSBh
bmQgc2VlIGlmIGFsbCB0aGUgdmFsdWVzIGFyZSBtYXRjaGVkIHdpdGggdGhlIGV4cGVjdGF0aW9u
cy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbTogQWRkZWQu
CisgICAgICAgICgtW0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0
eU1lc3NhZ2VIYW5kbGVyIHVzZXJDb250ZW50Q29udHJvbGxlcjpkaWRSZWNlaXZlU2NyaXB0TWVz
c2FnZTpdKToKKyAgICAgICAgKGdldE5leHRNZXNzYWdlKToKKyAgICAgICAgKFRFU1QpOgorICAg
ICAgICBIZXJlIGlzIHRoZSBBUEkgdGVzdCB0aGF0IG1vdmVzIHRoZSBwcmUtYmFrZWQgZGF0YWJh
c2UgdG8gdGhlIGxvY2F0aW9uIHdoZXJlIFRlc3RXZWJLaXRBUEkgY2FuIHJlYWQgZnJvbS4KKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJTdHJ1Y3R1
cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMzogQWRkZWQuCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCU3RydWN0dXJlZENsb25l
QmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtc2htOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNr
d2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWw6IEFkZGVkLgorICAgICAgICBUaGVzZSBhcmUg
dGhlIHByZS1iYWtlZCBkYXRhYmFzZXMuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5
UmVhZC5odG1sOiBBZGRlZC4KKyAgICAgICAgVGhpcyBpcyB0aGUgYWN0dWFsIHRlc3QgdGhhdCBk
byBhbGwgdGhlIHJlYWRzIGFuZCBjb21wYXJpc29ucy4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBh
dGliaWxpdHlXcml0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgVGhpcyBpcyB0aGUgcGFnZSB0aGF0
IGJha2VzIHRoZSBkYXRhYmFzZS4gSXQgbmV2ZXIgcnVucyBhdXRvbWF0aWNhbGx5LiBJdCBpcyBm
b3Igc29tZW9uZSB3aG8gbmVlZHMgdG8gdGVhY2gKKyAgICAgICAgSW5kZXhlZERCIG5ldyBzdHVm
ZnMuIFRoZW4gaXQgY2FuIGJlIHVzZWQgdG8gYmFrZSB0aGUgZGF0YWJhc2UgYWdhaW4uCisKIDIw
MTctMDctMjggIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXSBCdWlsZGluZyB3aXRoIEVOQUJMRV9WSURFTz1PRkYgZmFpbHMKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYzUyZTU0NzJiN2UyNTA2OTNkYTNhMzFhZTZmYzM3OTlhNDlj
YTdkNC4uMzk3Y2ZkMzdiY2ViZmFkZjUwODdiMmQyMjZjNWUzY2FhNjBmY2FmZSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTIwMSw2ICsyMDEsMTIgQEAKIAkJNTcxNEVDQjkxQ0E4QjVCMDAw
MDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxNEVDQjgxQ0E4QjU4ODAw
MDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMLmh0bWwgKi87IH07CiAJCTU3MTRF
Q0JCMUNBOEJGRTQwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTcxNEVDQkExQ0E4QkZEMTAwMDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMRnJh
bWUuaHRtbCAqLzsgfTsKIAkJNTcxNEVDQkQxQ0E4QzIyQTAwMDUxQUM4IC8qIERvd25sb2FkUmVx
dWVzdE9yaWdpbmFsVVJMMi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3MTRFQ0JDMUNBOEMyMTgwMDA1MUFDOCAvKiBEb3dubG9hZFJl
cXVlc3RPcmlnaW5hbFVSTDIuaHRtbCAqLzsgfTsKKwkJNTcxRjdGRDAxRjI5NjFGQjAwOTQ2NjQ4
IC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUz
LXdhbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NzFGN0ZDRjFGMjk2MUUxMDA5NDY2NDggLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFj
a3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtd2FsICovOyB9OworCQk1NzU5OUUyMTFGMDcxOTE5
MDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1OTlF
MjAxRjA3MTkxNzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29t
cGF0aWJpbGl0eS5tbSAqLzsgfTsKKwkJNTc1OTlFMjcxRjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4
ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTk5RTI0MUYw
NzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGli
aWxpdHkuc3FsaXRlMyAqLzsgfTsKKwkJNTc1OTlFMjgxRjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4
ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUy
NjFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21w
YXRpYmlsaXR5LnNxbGl0ZTMtc2htICovOyB9OworCQk1NzU5OUUyQTFGMDcxQUEwMDBBM0ZCOEMg
LyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
NTk5RTI1MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2Fy
ZENvbXBhdGliaWxpdHlSZWFkLmh0bWwgKi87IH07CisJCTU3NTk5RTJCMUYwNzFBQTAwMEEzRkI4
QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0ZS5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3NTk5RTIzMUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNr
d2FyZENvbXBhdGliaWxpdHlXcml0ZS5odG1sICovOyB9OwogCQk1NzY5QzUwQjFEOUIwMDAyMDAw
ODQ3RkIgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzY5QzUwQTFEOUIwMDAxMDAwODQ3RkIgLyogU2Vy
aWFsaXplZENyeXB0b0tleVdyYXAubW0gKi87IH07CiAJCTU3OTAxRkIxMUNBRjE0MkQwMEVENjRG
OSAvKiBMb2FkSW52YWxpZFVSTFJlcXVlc3QuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzkwMUZCMDFDQUYxNDFDMDBFRDY0RjkgLyog
TG9hZEludmFsaWRVUkxSZXF1ZXN0Lmh0bWwgKi87IH07CiAJCTU3OTdGRTMxMUVCMTVBNjgwMEIy
RjRBMCAvKiBOYXZpZ2F0aW9uQ2xpZW50RGVmYXVsdENyeXB0by5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Nzk3RkUyRjFFQjE1QTVGMDBCMkY0QTAg
LyogTmF2aWdhdGlvbkNsaWVudERlZmF1bHRDcnlwdG8uY3BwICovOyB9OwpAQCAtNzQ2LDEyICs3
NTIsMTcgQEAKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSA3OwogCQkJZmlsZXMgPSAoCiAJCQkJNTFD
OEUxQTkxRjI3RjQ5NjAwQkY3MzFCIC8qIEVtcHR5R3JhbmRmYXRoZXJlZFJlc291cmNlTG9hZFN0
YXRpc3RpY3MucGxpc3QgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNTcxRjdGRDAxRjI5NjFG
QjAwOTQ2NjQ4IC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0
eS5zcWxpdGUzLXdhbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDVCNjNGQjFGMTk3RjRB
MDA5RDM4QjkgLyogaW1hZ2UtbWFwLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjQw
N0ZFMzkxRjFEMERGQzAwMTdDRjI1IC8qIGVub3Jtb3VzLnN2ZyBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQlGNEQ1RTRFODFGMEM1RDM4MDA4QzFBNDkgLyogZHJhZ3N0YXJ0LWNsZWFyLXNlbGVj
dGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0QTMyRUM0MUYwNUYzODUwMDQ3
QzU0NCAvKiBkcmFnc3RhcnQtY2hhbmdlLXNlbGVjdGlvbi1vZmZzY3JlZW4uaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQlGNEEzMkVDQjFGMDY0MzM3MDA0N0M1NDQgLyogY29udGVudGVk
aXRhYmxlLWluLWlmcmFtZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0NjlGQjI0
MUYwMTgwNEIwMDQwMTUzOSAvKiBjb250ZW50ZWRpdGFibGUtYW5kLXRhcmdldC5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAorCQkJCTU3NTk5RTI3MUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVk
REJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyBpbiBDb3B5IFJl
c291cmNlcyAqLywKKwkJCQk1NzU5OUUyODFGMDcxQUEwMDBBM0ZCOEMgLyogSW5kZXhlZERCU3Ry
dWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtc2htIGluIENvcHkgUmVz
b3VyY2VzICovLAorCQkJCTU3NTk5RTJBMUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1
Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCisJCQkJNTc1OTlFMkIxRjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVy
ZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJRjRCODI1RDgxRUY0REJGQjAwNkU0MTdGIC8qIGNvbXByZXNzZWQtZmlsZXMuemlw
IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0MUFCOTlGMUVGNDY5NkIwMDgzRkEwOCAvKiBh
dXRvZm9jdXMtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
RjQxQUI5QTAxRUY0Njk2QjAwODNGQTA4IC8qIGJhY2tncm91bmQtaW1hZ2UtbGluay1hbmQtaW5w
dXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTEyNTAsNiArMTI2MSwxMiBAQAogCQk1
NzE0RUNCODFDQThCNTg4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwuaHRt
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJM
Lmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MTRFQ0JBMUNBOEJGRDEwMDA1
MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0bWwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0Lmh0bWw7IHBhdGggPSBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0bWw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MTRFQ0JDMUNBOEMyMTgwMDA1MUFDOCAvKiBE
b3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTDIuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9IERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMMi5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1NzFGN0ZDRjFGMjk2MUUxMDA5NDY2NDggLyogSW5kZXhlZERCU3RydWN0dXJl
ZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtd2FsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9ICJJbmRleGVkREJT
dHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1NzU5OUUyMDFGMDcxOTE3MDBBM0ZCOEMgLyogSW5kZXhl
ZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dh
cmRDb21wYXRpYmlsaXR5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzU5OUUy
MzFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21w
YXRpYmlsaXR5V3JpdGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJh
Y2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTU3NTk5RTI0MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVC
YWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xv
bmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTc1OTlFMjUxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9u
ZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEluZGV4ZWREQlN0cnVj
dHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTc1OTlFMjYxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVj
dHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiSW5kZXhl
ZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtc2htIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc2OUM1MEExRDlCMDAwMTAwMDg0N0ZCIC8qIFNl
cmlhbGl6ZWRDcnlwdG9LZXlXcmFwLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gU2VyaWFsaXplZENyeXB0b0tleVdyYXAubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU3OTAxRkFDMUNBRjEyQzIwMEVENjRGOSAvKiBMb2FkSW52YWxpZFVSTFJlcXVl
c3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2FkSW52YWxp
ZFVSTFJlcXVlc3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3OTAxRkFFMUNB
RjEzNzEwMEVENjRGOSAvKiBMb2FkSW52YWxpZFVSTFJlcXVlc3QubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2FkSW52YWxpZFVSTFJlcXVlc3QubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODY0LDYgKzE4ODEsNyBAQAogCQkJCTUxQUYyM0RF
MUVGMUEzNzIwMDcyRjI4MSAvKiBJY29uTG9hZGluZ0RlbGVnYXRlLm1tICovLAogCQkJCTUxMDQ3
Nzc1MUQyOThFMDMwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVyeS5tbSAqLywKIAkJCQk1MTEw
RkNFRjFFMDFDQkFBMDA2RjhEMEIgLyogSURCSW5kZXhVcGdyYWRlVG9WMi5tbSAqLywKKwkJCQk1
NzU5OUUyMDFGMDcxOTE3MDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dh
cmRDb21wYXRpYmlsaXR5Lm1tICovLAogCQkJCTUxQTU4Nzg0MUQyNzJFRjMwMDRCQTlBRiAvKiBJ
bmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLm1tICovLAogCQkJCTUxQkNFRTQ5MUM4NEY0QUYw
MDQyQzgyRSAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MubW0gKi8sCiAJCQkJNTFCMUVFOEQxQzgw
RjU4ODAwNjRGQjk4IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLm1tICovLApAQCAtMjExNSw2ICsy
MTMzLDExIEBACiAJCQkJNTFBNTg3N0MxRDFCM0Q4RDAwNEJBOUFGIC8qIEluZGV4ZWREQk11bHRp
UHJvY2Vzcy0zLmh0bWwgKi8sCiAJCQkJNTFCMUVFOTQxQzgwRkFERDAwNjRGQjk4IC8qIEluZGV4
ZWREQlBlcnNpc3RlbmNlLTEuaHRtbCAqLywKIAkJCQk1MUIxRUU5NTFDODBGQUREMDA2NEZCOTgg
LyogSW5kZXhlZERCUGVyc2lzdGVuY2UtMi5odG1sICovLAorCQkJCTU3NTk5RTI0MUYwNzE5MkMw
MEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHku
c3FsaXRlMyAqLywKKwkJCQk1NzU5OUUyNjFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3Ry
dWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtc2htICovLAorCQkJCTU3
MUY3RkNGMUYyOTYxRTEwMDk0NjY0OCAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2Fy
ZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwgKi8sCisJCQkJNTc1OTlFMjUxRjA3MTkyQzAwQTNG
QjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQu
aHRtbCAqLywKKwkJCQk1NzU5OUUyMzFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0
dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5V3JpdGUuaHRtbCAqLywKIAkJCQk1MTEwRkNG
MjFFMDFDRDc3MDA2RjhEMEIgLyogSW5kZXhVcGdyYWRlLmJsb2IgKi8sCiAJCQkJNTExMEZDRjMx
RTAxQ0Q3NzAwNkY4RDBCIC8qIEluZGV4VXBncmFkZS5zcWxpdGUzICovLAogCQkJCTJFRkYwNkND
MUQ4QTQyOTEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0
bWwgKi8sCkBAIC0zMDY3LDYgKzMwOTAsNyBAQAogCQkJCTdDQ0U3RUVGMUE0MTFBRTYwMDQ0N0M0
QyAvKiBFcGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRjQ1QjYzRkUxRjE5RDQxMDAwOUQzOEI5IC8qIEFjdGlvblNoZWV0VGVz
dHMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VGMDFBNDExQUU2MDA0NDdDNEMgLyogRXZh
bHVhdGVKYXZhU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTU3NTk5RTIxMUYwNzE5MTkw
MEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHku
bW0gaW4gU291cmNlcyAqLywKIAkJCQkzMTUxMTgxMDFEQjFBRTQwMDAxNzYzMDQgLyogRXh0ZW5k
ZWRDb2xvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VGMTFBNDExQUU2MDA0NDdDNEMg
LyogRmFpbGVkTG9hZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTA0RjFEMEE2NDE4MDBG
RUJDRjMgLyogRmlsZVN5c3RlbS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQlN0cnVjdHVyZWRDbG9u
ZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hOTYyMjJlNzI1NTZlMGY2NWY1NGEyMzc4ZWU2ZDhkZTYxZmE0YzJkCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
SW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tCkBAIC0wLDAg
KzEsMTAzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIlBs
YXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisKKyNpbXBvcnQgPFdlYktpdC9X
S1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZp
ZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZh
dGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg+CisjaW1w
b3J0IDxXZWJLaXQvV2ViS2l0Lmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24uaD4KKyNpbXBvcnQgPHd0Zi9EZXF1ZS5oPgorI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworc3RhdGljIGJvb2wgcmVjZWl2ZWRT
Y3JpcHRNZXNzYWdlOworc3RhdGljIERlcXVlPFJldGFpblB0cjxXS1NjcmlwdE1lc3NhZ2U+PiBz
Y3JpcHRNZXNzYWdlczsKKworQGludGVyZmFjZSBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNr
d2FyZENvbXBhdGliaWxpdHlNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3Nh
Z2VIYW5kbGVyPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gSW5kZXhlZERCU3RydWN0dXJlZENs
b25lQmFja3dhcmRDb21wYXRpYmlsaXR5TWVzc2FnZUhhbmRsZXIKKworLSAodm9pZCl1c2VyQ29u
dGVudENvbnRyb2xsZXI6KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICopdXNlckNvbnRlbnRDb250
cm9sbGVyIGRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOihXS1NjcmlwdE1lc3NhZ2UgKiltZXNzYWdl
Cit7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gdHJ1ZTsKKyAgICBzY3JpcHRNZXNzYWdl
cy5hcHBlbmQobWVzc2FnZSk7Cit9CisKK0BlbmQKKworc3RhdGljIFdLU2NyaXB0TWVzc2FnZSAq
Z2V0TmV4dE1lc3NhZ2UoKQoreworICAgIGlmIChzY3JpcHRNZXNzYWdlcy5pc0VtcHR5KCkpIHsK
KyAgICAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICB9CisgICAgCisg
ICAgcmV0dXJuIFtbc2NyaXB0TWVzc2FnZXMudGFrZUZpcnN0KCkgcmV0YWluXSBhdXRvcmVsZWFz
ZV07Cit9CisKK1RFU1QoSW5kZXhlZERCLCBTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGli
aWxpdHkpCit7CisgICAgUmV0YWluUHRyPEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJk
Q29tcGF0aWJpbGl0eU1lc3NhZ2VIYW5kbGVyPiBoYW5kbGVyCisgICAgICAgID0gYWRvcHROUyhb
W0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eU1lc3NhZ2VIYW5k
bGVyIGFsbG9jXSBpbml0XSk7CisgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOworICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNj
cmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RIYW5kbGVyIl07CisK
KyAgICAvLyBDb3B5IHRoZSBiYWtlZCBkYXRhYmFzZSBmaWxlcyB0byB0aGUgZGF0YWJhc2UgZGly
ZWN0b3J5CisgICAgTlNVUkwgKnVybDEgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAiSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5IiB3
aXRoRXh0ZW5zaW9uOkAic3FsaXRlMyIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXTsKKyAgICBOU1VSTCAqdXJsMiA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9y
UmVzb3VyY2U6QCJJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHki
IHdpdGhFeHRlbnNpb246QCJzcWxpdGUzLXNobSIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQ
SS5yZXNvdXJjZXMiXTsKKyAgICBOU1VSTCAqdXJsMyA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGli
aWxpdHkiIHdpdGhFeHRlbnNpb246QCJzcWxpdGUzLXdhbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKKworICAgIE5TVVJMICppZGJQYXRoID0gW05TVVJMIGZpbGVV
UkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvQ3VzdG9tV2Vic2l0
ZURhdGEvSW5kZXhlZERCLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF1dOworICAgIFtb
TlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gcmVtb3ZlSXRlbUF0VVJMOmlkYlBhdGggZXJy
b3I6bmlsXTsKKyAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2Vy
XSBmaWxlRXhpc3RzQXRQYXRoOmlkYlBhdGgucGF0aF0pOworCisgICAgUmV0YWluUHRyPF9XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1tfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOworICAgIHdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpLl9pbmRleGVkREJE
YXRhYmFzZURpcmVjdG9yeSA9IGlkYlBhdGg7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS53ZWJz
aXRlRGF0YVN0b3JlID0gW1tbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25m
aWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSBhdXRvcmVsZWFz
ZV07CisKKyAgICBpZGJQYXRoID0gW2lkYlBhdGggVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50
OkAiZmlsZV9fMCJdOworICAgIGlkYlBhdGggPSBbaWRiUGF0aCBVUkxCeUFwcGVuZGluZ1BhdGhD
b21wb25lbnQ6QCJiYWNrd2FyZF9jb21wYXRpYmlsaXR5Il07CisgICAgW1tOU0ZpbGVNYW5hZ2Vy
IGRlZmF1bHRNYW5hZ2VyXSBjcmVhdGVEaXJlY3RvcnlBdFVSTDppZGJQYXRoIHdpdGhJbnRlcm1l
ZGlhdGVEaXJlY3RvcmllczpZRVMgYXR0cmlidXRlczpuaWwgZXJyb3I6bmlsXTsKKyAgICBbW05T
RmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGNvcHlJdGVtQXRVUkw6dXJsMSB0b1VSTDpbaWRi
UGF0aCBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMyJdIGVy
cm9yOm5pbF07CisgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjb3B5SXRlbUF0
VVJMOnVybDIgdG9VUkw6W2lkYlBhdGggVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5k
ZXhlZERCLnNxbGl0ZTMtc2htIl0gZXJyb3I6bmlsXTsKKyAgICBbW05TRmlsZU1hbmFnZXIgZGVm
YXVsdE1hbmFnZXJdIGNvcHlJdGVtQXRVUkw6dXJsMyB0b1VSTDpbaWRiUGF0aCBVUkxCeUFwcGVu
ZGluZ1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMy13YWwiXSBlcnJvcjpuaWxdOwor
CisgICAgLy8gUnVuIHRoZSB0ZXN0CisgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9
IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgTlNV
UkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVu
ZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiSW5kZXhlZERCU3RydWN0dXJlZENsb25l
QmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OnJlcXVlc3RdOworCisgICAgRVhQRUNUX1NUUkVRKFtnZXROZXh0TWVzc2FnZSgpLmJvZHkg
VVRGOFN0cmluZ10sICJQYXNzIik7Cit9CisKKyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERC
U3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNr
d2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDIwY2Q4MDhmODk2ZGJlNThk
NmEzN2FmOTYyNTUzZDgyNTE0ZmE4CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA0MDk2CnpjbVdG
el52TnRxUlk9UCglMXRhJEZsRz43VX05byRQKjdsQ1V8QHR8QVZvR3tXWTgxJSU/cntsSygtbTk4
Yj9FNQpuR3ozT05VXkUwcUx0ciFuTW5obVUxViUkKEd6M09OVV5FMHFMdHIhbkM9M0FyNUA4MSUK
CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0
aWJpbGl0eS5zcWxpdGUzLXNobSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUz
LXNobQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lNzgxNThkMzNlNTY5N2QyNmJiMjliMjRhODdiMzUxYWIxZmM0ZTY5
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzMjc2OAp6Y21lSSokeCNBOTZ2cHU8ZzMybGlEQnk8
c3pWR3t6ZmVCZFZWR1EwKXpgSz9RJVJ+JFNRfUN7QHdYcnhARmRoYn0Kej90ZlEzcFgyb08lPVpp
NlMqJExMU15aaWFCSDBWPSEmO2Y9JUdHYEh1OX57T2UwKyQlenVkbEV5eHRyP08lP3lSCnpVeXU0
KTJtMTQpWnJNTm9HPH47M3ZgcGBgSiEqVCpfQWNBSXdmQVZuP1I3JFgoKkI7KHA0UTZQPnQ1VGwr
V1dMPgp6ZG1IdW9HaXVNKHpSIUd7YEh1UTtGbV5ldXlqRFNMS3g8SHxzOCFNYFlZa31gU016LUIl
LV5ve0hWWGorNUlfSXsKejFRMCp+MFIjfDAwMDlJTEttWSoqNUlfSXsxUTAqfjBSI3wwMDA5SUxL
bVkqKjVJX0l7MVEwKn4wUiN8MDAwOUlMCnpLbVkqKjVJX0l7MVEwKn4wUiN8MDAwOUlYNVpIMWNM
dSg+Kj1zYnApJlRAJEJ7REB3aWZpYSpuOHxHV3tZVGdvKAp6ejs7T0l4XzR8dTdUZ1F2ZDc+VDle
OVBSfmx8P3l9KThHJVZ2K1ZfVCt4YHBOPHBhJE9FMCRYVmR2MylFRl4hb1gKeiQ4dCt4LT5vPHly
Yik8QmheS1MoZStWNE5pSX59KXRZIWkhYEpROyVZIztYI2E4RHBERUFFOU41ZHdoKEdPYCtJCnpB
RGEreFBhdnlQJFZYJk0jJTBwSWEzbiZZcCtLTGAteWZCVk9mPWxaTyQxeU4kak93OHZCLW8jMEQt
KHIyaVYwSAp6MVk4cy0kYyY0eiRiPil1MHJRYEBTUDF3alA/QXxXa34yVFVsaUc4RXZkcWJgb09g
WjdkX00pJntFU1UlMVhOJWgKVDFxOGVtKnpoKHYhNGNTbUFmVWh9UEdCKisKCmxpdGVyYWwgMApI
Y21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxp
dGUzLXdhbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWRE
QlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXdhbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jNzVhZjU3ZWViOWNlNmEyY2ZhOWRjM2IwZjYzMDlkZjQwYmNjZWZkCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAyNzE5NTIKemNtZUkqNFNXPmtvZEB1bG9xZnE8dnBZI2hTVE1tMVU/ZUxF
dXRefDxudiVCLVpkbnFAaXZte35jOVJWKmdseWJ3CnprYStybXFfcFJpX084Qk0/T3B4VSo4ODtE
cWtoeipGTTQ7alQzZnxoPz4/NDBUZCF+MHYoPU5NVnZFKjB0bHN+NQp6YzRzclFZPzM4SGZiYmhn
R1cqUVRHdFllWUMzJjlifDIkSygmcElZbHtDYmBzPE8qIWIqfW0hRmh2YnV3ZXNYbkIKeiR2WHdq
Ri1qOGs+SHBtSm8yYHBoLWd+bFJsUnEyX3NlT14/P20kZWZxTjdiRnA8WSNLVXNLfFg5bVc9Unlx
VH1YCnp6dyFLWmtKR0sxZ2tgeT45SkVETHRgZ2AhNzY/RTkwdVg9ejFSd3diMnRXVj01UC1sMUUt
PjA1K0ZWNk47QEI7Kgp6SyhJZzU5X29vaWR4c0p+T2lrX0hoRUF7QSswZnxzcyk8Q2tFRTMhcT5X
T3Y0QkdIaHFTQHBHY2RlP2N8KXotRjcKendZQUlkU0tDX0VybmM0PXpwdHJOWkU1aU4laGc/PjV3
KzkxeHMlZlVld0x4SHhwQlJCJVZkWV8zR0AkI0NmZ3koCnpPUjc4biMmK0xeaFcwSGdXJFkkJlVl
RExzMztyP3htIUVlMGAweDtgdm5RR29GN1czQyNlKUNAQU9IYWZLbVk7fAp6ZkIqeV8wMDlVPC1+
JEw0O3Nya1Q8a3cjTSM+Pnc/SzFJQk1xJnB2TFNEMUZaZlhSNzs7c3hqJTc2P0U5MHVYPXoKejFS
d3diMnRXVj01UC1sMzVaRz9BeGtgKH5RQWM+N0g/JWo9VmVpd2VPTmshK3UyJGNzRjZ4SkdaVDQ9
fklgO1d+Cnp0b0peQk0/ZGV6Y2hBfiowYW5NQ3cwTUQ8c0g2STtaezZ6NVgzc0BAPSluaGdSJlhj
O0FPSGFmS21ZO3xmQip5Xwp6MDA5VTwwMEl9ZGZGV01zPG1je3hYN2tzQGp3I3s9XnppfCNUfHhp
JmpPR2BSOTB6JjQwUjZ4TTBTR188MHVYPXoKejFSd3diMnRlUmM3Wl9WM1FKOzZJYyVYKDRWQXBx
Yz4ofFlPcTNyckNZRlVfZGtuMlgwUGNvOHk9N3pxWDtkcHNuCnohUSRRYm5PdSg+QGQ2WGhTdW9a
NzA8MkROKjVVPjNgcTVYUHU1KjBVaXVuYUReXllUNUtMajhFMFNHXzwwdVg9egp6MVJ3d2Iyd1ds
cGhJb09haG1STlVlV216c3JpZDQ/PXhsaHFnNntEZCNTNTRuPCV4SSFURVBNVjJ0V1Y9NVAkIyMK
ekFPSGFmSztReHcqay1vNm1ZMGdkQG1faHwqbWQ0JXVrWDNIQj5NRUBxdUJMWl8mT1dQdTF7M1VY
ZFpldTtzeUFXCnp7RD5Fcjtya0o9ST0pNFY3a0t5Y2NkYWhGXiR7RTk3cjRNYmo4SHJYS21ZO3xm
Qip5XzAwOVU8MDBJenp6fVhRbgp6IzB4YXNJcT53XzhAODVCNWllbFhvdG17UE9uWkktT1VAbjFj
bVowKTBzI20+MDBJenowMGJaYTBTR3tWMzU/RlEKeipqJFNqaT0jdClvUEE/fEIkJHtkVWJrdkJq
SSE1bEZ4KWkwSiN1M3ZjYTBDeURaMU1JQGpKJilJNDBrWGMhNHZWCnpEcXY1YmU+ZkNaWkVFeFQ4
Iz9KZTBMX2kteTw1fT9rO18lWTMoUm81MElUQyR3Um5PMWYwWH0mWERoY3BpMWBLWgp6VkdJRVhL
bVk7fGZCKnlfMDA5VTwwMEkhV0JtQGxjMHpjbU94cUZaTiYkRV4oO3NzPSMzfk5gSVVjNWxnS19T
YiYKek9CWEwtLTw3akRyJk8wV1J2YGNaMnRXVj01UCQjI0FUWmttTXIqNyNTNG9MRFIrc0R0Wndk
RUBoRkU3ZVUkTEZtCnoyaE5rI3Zkc0ZrKXhAcFlZNENiZVRXZ0VvKlZMKURARkNsTWJlaCh7P25L
d15nbmhMV1cjSU4/U3pYPXxRMyRnIQp6XitQeEdoaHc0Y3o7RzxXQTlwOXEtKDh0cGx8OG8xNClH
KXAkKWV8KmVJWkB8X2FvP3ViO0tnazViajVpTDN+OSMKekN9WUFtYi02bSN7Um5MQU97Y3tSLTFy
Nm1yeXUmJmVlV1AlZlQ+YEMwMGJaYTBTR188MHVYPXoxUnd3YjIrVm9gCnotV2FFfjMqYEdCSn44
QHRVd2pKbDQka2BMOVR4fXoydFdWPTVQJCMjQU9IYWZLbVk7fFU7PURSZlVMQygtMSs2agp6MTxQ
SzEoVHtja3lmYDJMMFNHXzwwdVg9ejFSd3diMnRXVj1teE8+fWV1M1AoUGY5ekUxZ0BFNGVnVjVx
aEspbSoKel9XVDBiKipCanl6ZC1pUV9IdGVSU2NMIXRBT0hhZkttWTt8bkJAWWE2fCY4PmJnNEwm
I3xQWmdST1FWOVNfPSQ/CnpkO0Apdmwhd2BkIVNeV31gMz5Od21gKjwzPT1wWjxNdD8oLXdfTWZE
b0ljQDVVM1hvISl3T0JxTThvVjtpcSEyJQp6Tnc4eW5maXpQUlYxOXZVPyt9MGF5MnNXP0hka3E+
Y21WU1lWMTl3akA4OXImPU5JNmkwYjBEa1VtVTJ0P1cpP1YKei1AeUM9djszRFlFKU4wX2ZCKnlf
MDA5VTwwMEl6ejAwYlpxN2hydz1jQ0I2RCsxSztLX3g9NGwwZ05OUyVMNClzCnpmQip5XzAwOVU8
MDBJenowMGJhI05lQ0ZtNW07Wm1SYkI2Uj55OWJMNWpiQCtZfkkzWWswV3FvOVpFWm5BblE8ZQp6
byYyOGVFTGVwQTFSd3diMnRXVj07e3N6Rj9MNiVLejshKEF5ZStzaGwhIU5GVmRwNmlhfH5oVURJ
MytZYUlmbFgKej9ld25td3lQVzRlSCQ5dXgyV3NBVGhzfC0ka1BSKCRMfDMqRiNZPyNtOC1pI0JP
MyM7Pih4ZW9UalJ0aEZJVS0zCno7ZH0hPCR1ZHReJlRANWtWNlR0ZVBSYGRuXzFeOX0kN0dUNURR
ZXg3REdBUUhvSElHeGxYQUVOO3xPcXtMWDBFOAp6STBFQk1INiFEbj4kcCRoT3gmazFoeTlBeDtz
dChSVHp+SmJad0BaUUlEK3YlSmdeMTwydFdWPTVQJCMjQU9IYWYKekttWTt8bjhnQ1QyfCNOWERC
S3UqdVYmdjlXe2V9NCNtX2h7NEZWOD0wMGJaYTBTR188MHVYPXoxUnlYanp7VWhQCnp3UlZBKTVD
OEsyeH0wQihxRnJEZDJ4fTA0MDBiWmEwU0dfPDB1WD16MVJ3eGBTdTl8ZlUlPnZXRXBgNnFlcE5C
Vwp6YH5yJjNMI0ZqPCZvQUojI1VgMHdmSHE9KjAwYlphMFNMQDtmdzV8KiV+ZXVqeEZIcTRHYURa
bFBHalgyIXtHUyUKemFCKWdENDJ6IytoPE9HPi1wZl9wRndSVmRxR3Z1OUswTVNsNVdabkpIMStV
eThWbzwmOX05YTJWJHFTUV9qWTRgCnpmdkolJnpyY2o9aSohPiY7Njg9PXZFQXV9KmQhV21Qbk9s
P0V0JSpCamc5QDBBZkc2cXlFM15kZHUqODxnODJuNwp6emt2UVZYIXltMWAyfVdUZWdSZztTRzBK
NjUzU3Ekdnc0cmFkbkBKX25CeytqO19ASD4wU0dfPDB1WD16MVJ3d2IKejJ0V1Y9YVJFY1R6PWx0
RyU1SiooaDNCVjs3cyU3JHVefFczanUqKGEtWld7dmZifUxAdD9wYntnI1pLfjBEKU82CnpGbllD
T2IxaGpTakA5dCM8PTJOcylgYlFfKExnS2A5V3AkfkhUMGV2SG1QTjIqektMSk9EeCVHKmZTaUJo
NlpBRQp6aE4oTWQtTDwoXipNPW4lXmBSTGArM2hociV0TzNEcnk4SGtBTXBhWEFIaDtfRVJUTnpf
P2pEPTFHRSt4M2kwUn0KejxIS3lqciRFWlNZU31KJih7XzN7Y1RSailoZV9aMWRqa0N3O1dCdiE/
ei0mQlpvaU9IcTs1fTJmXz0yYyVFTkBsCno+aUZkKmBfX3t5SHAzKypsaHZ7eV5+aVUlYD09O2h4
KGtmSSZIQlJxcTFOZiZIdntua3tOdXtLJjFgaW9GQk9Odwp6QHdoSSE9fHtYbmRuZ2duSEopSGVK
ZD9pR1g3NlR8WmBTWHN3elYxKGBPRFdtd25ubktOPXByNFdjczVMPnRANU4Kek00dmFzbFZ5NCo1
PHxDcSNfP2tEN2hxR0gtYH4qYiZBMk9AenBGQW9OY1M1KGUjTXktJiVORDVjMTdaLWdBPTQtCnps
TS14UXQtZWlOUkN4Wig9PVduIU81JDxLcEF8ZS0mT08+OCtGVjZOO0BCPHg/VkgjJkB4eD96UXFw
SExeJmJgZAp6TUFKaV9GaWZna2pmUSQ2KE8jWFI/aFpVfGB0dmZFe2ZWaT8zcH4wcF5xPTlZP3J1
aUJ6XndobDh5NXh2MnRXVj0KejVQJCMjQU9IYWZLbVk7fCY8bjc+fDIoWi1weCpwdnp4fDxldFIz
P1g+V1EhcDBTR188MHVYPXoxUnd3YjJ0V1Y9Cno1U1g8QnlhXztTN1pfPUpJYGFPKC14amlYMFp9
PDcoMD9vdGZCKnlfMDA5VTwwMEl6ejAwYlphMFNIfEQwJl8lWgp6c2o/dnkzLXI9eHQhcVFrcD5T
bHRMemlXenVWbFF5YCpVNzl5NV48WlV1MkMxcUg8aUl8NXpYWjBTR188MHVYPXoKejFSd3diMnRX
Vj01U1JARGBPO0UzckQxP0IlTWRUeyU8bTI7YCZSQzNWZXRZYzxAKiNiSztOKUgwMEl6ejAwYlph
CnowU0dfPDB1WD16MVIhdzEzWTQwcChwcWlHUnlNekFGd25FPiN6M15VeUM8QEhGYzFwfCF+Tm1k
TkpqQWp8OTxvUAp6MmFmO1pmb29WfWZsMndmcCFeJlcwfmhRUWtBZ3R9MHVYPXoxUnd3YjJ0V1Y9
NVAkIyNDSzFTJE49MUVoZmhtSnsKemYjOHVsS2wwXlEtbnBFYDNyTmE/SllJbClWMVdQeEFPSGFm
S21ZO3xmQip5XzAwOVU8O1FSfkJrIVgkcHQqKVAjCnpCVmZoWmoySE4rd0JFQXg7eyN0fEBkQT1e
Z3ZBUlNMQnpvTWY4dFJCMnRXVj01UCQjI0FPSGFmS21ZO3xmV1R3fAp6YkVLdW8qbm1XUGZpI19Y
ZmZ1JDdaOWVocntlUXtnMTxjQ2RDZ0tIWDFxJWNxMDA5VTwwMEl6ejAwYlphMFNHXzwKejB5OEky
VjNzUEI0U35JRiFKVk89U1Z0QHA0ZiZjcT1SOTdaYG0qRWdjWWZvRU1pd3QlUnUwR0cxcjglKFZD
SjU5CnpvQ3lMRGZCKnlfMDA5VTwwMEl6ejAwYlp+c1gmMkxBKk1ETW45bytjSyhEeDJlemEpcV9Z
Zn5JPjJyWE01UCQjIwp6QU9IYWZLbVk7fGZCKnlfMEQqSFdrYUBnLT1MNjAha2kjd3tYWnhteUFD
Z1ojYG96S1MjR2MtRXdJZT83VjJ6LUIKelNHaCYwSWslVUorI3Z0fjJ0V1Y9NVAkIyNBT0hhZktt
WTw0bkx4OC02LXhIVlMrU0E5KDZ4ZDc7WlNnfUtSZ3MkCnp2RXE1cilYNVRhZylEbit7R3ZvTGFk
QUAwTWRzST10YiZWaiopIzFOKXswaTRhOERMNSRGenotTVBmfD08THZfRwp6QmFhX2h7JF9EfS1v
WD1zQH4tbD5hdzRWUmNuQVJxS21ZO3xmQip5XzAwOVU8MDBJenp6KHB4d2t3ajZGKm1zamoKemw0
T31LIXBTWn5peD1wNGRyX1VHJjBaYUU3a0VpZi1jZXBzZXNAdGBEaGRxJjJ0V1Y9NVAkIyNBT0hh
ZkttWTt8Cnp4YTAqS1FpKyVoWUxIfmZDR3l8fGxUOWo9U3ZtcG51bS1KTjtNTGR1PEZEXil6VjR5
O0lEJDY+PCZeVDReMlIwNAp6Mm1sQmAwMEl6ejAwYlphMFNHXzwwdVg/fVkhRU9AbDkobCNQNHUw
PEJzcSZORHZ5MD4/RS1KVHxORWFqe2V7OCoKeiFaP0UyQE8weEVBT0hhZkttWTt8ZkIqeV8wMDlV
PDAwS3NWR34pPlBeYW9uSUstUGBsZGlUe0VLYXx6NiRzZGt8CnopVkBlYGNPYSUjUUJaLSZCLUU9
YTx6fUw8VnFMRU1tV0h+PStIP3hLcXw7VlMhbWB7YGorfSErdUp0QkN4eXBJTwp6YW5Nbm9iQkJG
YiZnUHViPzM/WjdTJTxSZzxvOWViPnJKLVcofmQ/MDFSd3diMitUcigoV0Axa1lzbklFdFJAeCsK
el9KYEpvTSVJTX1MZVQpLXNkdmNtQWgpVUErdEJHJUl+eUFQVWUmTmtFc04tSEAybVArSkg2fD8/
UF9hVnJgcD0oCnpfcDVFS1lFeFRsaXtJRE9za1N1dXtBeVJMWiZSMW9rbHlheT14PUU5bWE5Rigo
UChIT01yVzhoQlhAMUMpd04tWAp6RDEtLWtMd2twQT0lP1NKLUdTailnZ0A+IWwoTzRuYyRoYTw/
WDxae08yaDs0RUJDUCtkO0ApdjxjZWFyOyQqVH4KejdWZSQ4V2FhOFdWMFRGRV5sbTFEaTUkdytH
bFZOd2NaRWhhMjRkSCVqc0NYQSR1YlRQYnEkMVg3IUdBcCglci1UCnp2OU5hXzdSXkxfWUBeLWdU
RG52YGEyPGNhPXheKnljcXRFYTQxXzVnNFVpayNlSCQ5dXgyV3NBVFBENyZiZ3Z1cwp6ZGRkaVU7
KTYzYVdpS3E+S3U8PWIwZVVVNTdnWTFxZCVObyNSQGJKYjZUT0kyKVZlRUU1fWI4OFhMN2hGPCM1
TW4KemgwTEdPdXt7MlNga0VWPzFHRSt4M2h7Uz9Abk4+JTJ+RjhvRWhFVihVaD9VbGgyJmVHMmlI
IUtmeDlreXZkY3s9CnpRbngyMSE5SDRKPCF9NDNJKTFzMHtnR2Z4eElaK01UKEtFMEZgMkJFMSE+
bz1jSztPUk9MdXxzKkp2TXxyZ2lFTQp6Z140bjdkJE8hOVpePVkybFZtfT1FMGUzVCRDbFk0cDUh
NXs+eW12NXFqTjFiKlckKEU9dXB6Qko9N0Q0X0h3RGoKenNgV0loIzBKQiFnIWFnZFFAO3ohKXkj
YXwrc3N6aUA9fGQpOVJJK2tIKEJER2lCSVY5MVdUZkh6U2ReJVd8ZVEmCnpANStBdD1vOShOKkZD
bUl2YmpvMjRaanhqTTx2JEhoQVRIXzZWQ0xWS2ZUWllfelNTOSZGXlF3a0xtUzI+MVNyUwp6cyhW
KnVlbyRvbUgrdVl2R3h7WGtaWCZ4UGFuISpIKHkmUGh3IXxMKkBuPVRBQUEzPn5qfTVPT1VvLSNS
PU58MTQKelpMWHBzYXFKZlV2UHxybl8rY19VRGUxR3g8ZHZCRzd8WXglanklYjRgWTM8JT1vRUZv
QCFhJSZXQSomeGB+dDVwCno9PSMmMS0jb0wkTFRSRk1pZnQ7VXU+XlVoVk47Jj95Ny11UWsyb1M7
RTdwb087aXp6JXUjTjMtIyFGP2NNUSo0Ugp6Z3pjPEohNnlzfEZ+SzlPNSptYWt7Ujs+cWZ8Yihl
bnplaWoqLUVgKWsrLXA5U2E/STE1YXZnJTdNZ145SSUybWwKekQxP09HKUV0ciVKQE9uWG93fkQq
PWE2eiV1RTk+b2s2R2NjJGFVPGpZJEFxdU5tcit5Q0R7KGJrMHtFcSRmWVZCCnohQWB6YCR+TVRh
PUpKeUZYPDJCZWpwZDFyOWFROFAtPytlTFZXKEJ1RT5+bipXWTNrZjNvfmRIaFV3YVp2fTJVLQp6
bX1yaEV0MXAmbXVlcGk2SXcrZWM3dW11MERxNU9say1lLThjRkpTP2BXaCo+S0tpSFNSPihfVVlO
TT5tNT9Rcz0KeiN2T3VKKnFiUEpLNHF9fkp0fiRFdnw0NU5EQkYpY0ZPOT89cEBPa09EJTViWnBN
OFhgVmMpXzd1fjJqJSg3JEgrCnpeNXJZNUpmNztGc19LZ0JVYD9vXkkjOUUrVnMjfXc0RHs5MSo0
RmswZi04RStSQGtwU1BoKmJeVDVOTE5majVgWQp6WTJ4QyROcEpAaHMrb1NxPSE+MXUqLVBLcFNO
K31lNEdSUHkwMDlVPDAwSXp6MDBiWmFmd0w9K3p0aGE+S2RUZTwKenBCQWNhXjs1TmtSWSV6VXtQ
c14rMmRiKkE+PGlaUGRNWn1kKT4xe054QFQySXV5U1J2cU49d3FQYHpUK3M7YTdCCno2fFoyfkQz
YHVTV0xhISlPcURGTWBedjxyO3goVzZzcURoent3RTg1SV4wLWNxRG1WcDNAYm56Um02NXVWUntu
UAp6TmZSfXI/SGBPcjIxQyk8aD8hTD9TQk10NXFMRnJJKSV4KVlBdjsqcUQhZXZVOHwzditLYDNI
IzMtRFQqN0JBckwKenozWWt9RVY9eS1SJTApODkyUyZnJTM1V0Y/cEFvbkBle3trPHVsSDE9S3wr
KiZTUSRBOTkwNiZLUGdMYGImZ1pjCnoyYn14cDA0eHhJMDBiWmEwU0dfPDB1WD16MVJ5WEkwKmxT
RVBaWU1aWUhBRGJ3cXJlTXRBdUpATVgpZ0tLMjxgYwp6Wmw4ak1YNHk7bXVzJWh0X3RkekBvRCNG
I0t6b2UkPktlRF9yXiYoQ0AwKWo4NCN3QGQ2PXIhR29ndVM2VWAzYWsKelIkX2hjdCNnNHt1QXwp
Ml93NzNKJXlLRGg5cS00QChXUyZZWnx5RiM/NGY7Rk1PeG9pbzJeVU5fcyteWGYkP2clCnp6RiMm
PWNjaXtFKTs3bTF5WGoxWiZSMFlFUStyQSt4K0FwYTNiUVV2WWdkcVRYVmtZT208cjV0Z2BDPUNL
b2BtYAp6SFdARWFfYD56S3QjTGIhdlV2d2glOXgtJExFb0BJMDBJenowMGJaYTBTR188MHVYPXox
UiF2WjFuT3U0ejx0KGYKeiQ2P29yYmh0VX47aEJVbSZfeilJISs1KkVAZWhYe2VDNGo/NTYwVUNf
Nm98c0QwfFAqZyhGKUNLbVk7fGZCKnlfCnowMDlVPDAwSXp6eiRHaXRYcDs4TFBnfFNNV0tlZUhH
SW5VQUk4aCMldjxQXjM5YHBxOE5qPGMyMWtZVTdgcSo+Rgp6dWxmdiY1aXUjQjVSQG5COHh7eWEw
MEl6ejAwYlphMFNHXzwwdVg9ejFrUm02b3dRRyFie20xfFlINlJHX1VLR24KejJrNF5NdSM0bjRn
NzUjfnYjb3pQSVFMV1djN2JEcF4wc3A5Kys4P3doNSFVMDAwOVU8MDBJenowMGJaYTBTR2B+Cnpo
NkoqdWBDPmZLeiQ4b2E8eiYxN257eihkRUAxeT10bVN0NXFyYXg0SVd0cilvQ1gzQWZCKnlfMDA5
VTwwMEl6egp6MDBiWmFmJTdOOD47S3Z+ZzUzSEN6SWV3VUtlPzVQUSppIUBnZmx8YDB1WD16MVJ3
d2IydFdWPTVQJCMjQVRVRCQKenkjQkFYM3BgZFp7S0VnKlR+UnVCO1M4TjByLTErakFPSGFmS21Z
O3xmQip5XzAwOVU8O1FSXmpgb0dwTFAhIyQ4Cnp6Py1qcj87b2YqYkkpSXFhQXBXVjAwSXp6MDBi
WmEwU0dfPDB1WD16MVpHSHAqWjtNNDBvUE8zLSt1ayQlZzU7NAp6dHtGTiVQNkdpNUttWTt8ZkIq
eV8wMDlVPDAwSXp6ITEpdjRePyQ4aDtMVT43LSs4YEd4cnZIMUBCOUBCWE5DWC0KekFPSGFmS21Z
O3xmQip5XzAwOVU8VjFAKkV7YTxTcmM8UnY0X1NtbDMhfHFXcWV9Pk1GKD85P001UCQjI0FPSGFm
CnpLbVk7fGZCKnlfYVEqfiV7YTxTcklRaXw/enBCMTw7fTVBZ216fT5OO21pPCMwMGJaYTBTR188
MHVYPXoxUnd3Ygp6MitXV0d1bTVaOTB0O1daZWUmZk1geGVkNnhwNWlAS21ZO3xmQip5XzAwOVU8
MDBJenowMGhwaktvTDg9KS1LU28KeiF2MmVVTGlSczhDQG9qbUNNZkBeK0BzdjA8ZTcjfGRFKUVo
Vzh5dkhoPEw0N0U4MnZrIWZtdn1iZTc2b2lgLUJ0CnoyLX55aVhyQ30zIX5+RDlOQHgoR15lLVRj
MnYkbTtZdTIqbkglekVrRWI9eVhPZGNoNzMxTlFKWU4xSyFyejNVPwp6Z0Y7Qj9QMGN8djxXVDk8
b3BuNWlsKFUpKSRFPEt6PFRgZCVuVWRvclU3ZE9zKFFyZ2pqenVuMj0/SGY2NE9GJjQKemVsP2V1
eWlkelFKOGRqYVowdypTJE4wdHRIVlpxZyU2N1JUK2FpMGVxK09VbnQxd0wwN05pfWNlOCp4K3Fv
dTZBCnpTZjsmYiFicllYMlcxb0dCMEtuQU1ONnxSdlI5PzhjR2BMVGBXaCo+S0tpSFNSPihfVVlO
TT5tNT9Rcz0jdk91Sgp6KnFiT2U4JjkoVEp0fiRFdnw0NU5EQkYpY0ZPOT89cEBPa09EeiZzdnVz
OyU5IUBoK0ZWeGowanBudUtzPDt6IUEKemN8NnJVUm4tO00hSjFHLWIpYVR0I3ArNlc4MGYzMXQq
en0xMVh1S3N0Kn5FdnAyaSotd0FrZGoxOCoqKSk1T0poCnpsaSZfMlI1U2dJKEhBP1J2ek5aSHVs
bD5gOHh7eWEwMEl6ejAwYlphMFNHXzwwJXVuc2YyV3olZV53e3pLUF48PAp6PlpmVzZ0QiZOKipa
djlYS3ZsSnNlWmlWdVBzUGdHVEItPERfcEdXMlI7fjxJUlEyYCtzI21POVJhRihOO3VTMCMKejw8
Ynw0RVF7QHBzZ2d4QFV6cz5ueXlnPT5tMGZ0O3w3NXtXaFpgJFFSQjI7e1ZGaFRUaXI3dm5PaSFY
WlkwOUZrCnoyQlZSfFAmNzdUV3xoaG5xRDhKfnF9P3NGYCo/K3I5Vn1gVVVLXl9vQF9IeWNnNFM3
T3ZzaH52RnMtaXFeV3dubQp6KlJ5czNpfVFxX3s4MEl2dlJ4Xm9SVil5STAwYlphMFNHXzwwdVg9
ejFSd3hgaShYKD1wKyl3dzRxI1R4WntmWTMKenRSciVqUEBQaGJwM0N8eGBORiVhUn40aV51MWNz
KEomcjJ0eTVwK25QfWVPeEFNM2krSTtxbmZNWGQkOHFibD10CnpVRUE/KT5OTGwmPk9ObjEzOUl3
Y29HREU9SlpteC1LWkAzUFo+YG9ZQE5YP2d6dz9uVjwhN149ezFTJk9EOTRudwp6JTgycV48JmZo
aWo+RjFsb1paZF4mZ1khUjZoJTN6MWV8fFRtTkBHaXI8QE5zX2NgdSQrfihOdGgmVnB4Kng8T0AK
enZEOSVIOWdZUDg1UCQjI0FPSGFmS21ZO3xmV1hCZ2taVHFmUWxGfENGWXkpaUNCfXFCXl9McUgp
Y09VK2d5UTtRCnpXNVRAcEI0YXs5e2JrMDQtMV87KGdzbDJgI3NzMD5XbFQ3K2NKNS1jPj1QJWkq
Y1BWVSQ1XiMyU1pKMkxsK1ZOIQp6KTtUMyt4cTxjPWtNPWdea2U/PDhWP3tMWXY+YzR2YjFUZzlI
YWJJUXZFaG0/SD80fVRrTHE/VkZ3MXE2VGwkITkKek4xajxPckxFKWYtOHM2SGN1PT85V3RLZyg1
MzZ6T1c0TjwqPkg0VGBTdGxed0orRl9+JmU5I0o1N01eSEcwU2NgCnpsT1pWRVEyeHtpWUshZyZF
c1ZqZU9WaT5GQjs2Vkg1ZUI5THZzQHZraDchPCk9Q1lUKCktSkhGQHJfXlBlRGgwTAp6NCZeT0RR
ZUczM1FfMzZrMH1CS28wMDlVPDAwSXp6MDBiWmEwU0dfPDB2RUE+I1VZOEpEY2RZYlZpcyF8dkMx
WSUKemx3PW0leiMzKGU/RSt0WV9+cWpwZHFUJXBUYWN2Q0lEJlZUeDlKQksydFdWPTVQJCMjQU9I
YWZLbVk7fGZCKnokCnpmcTtkWTJQQkRvSCNzQ3BXfXl7XmAzMlR9Ym5DQTljWW9ePEhvdCk0Xz8+
UWswcTJYKD8+WDt0ZSUza1MzXzkwNAp6JWJnYjVqMEZNXmZCKnlfMDA5VTwwMEl6ejAwYl43Zng7
NHR4TnhxWjghb3tqPUpRR35ye3E9UiQmMmIpYXhNK1EKei0reFcwemR1cmJUX29EeXlLdW4qK1U/
NW0tQmk5Qz5zaDh7Wmhje35HNG89K1N1UUx4Q2VQIV5TJXNHd2xNOHNWCnp0I0gwRUloUTl9PWcq
XyQlZzBaaCNnaT47dGJDISVjIWE8PW5HNUZ7bFRXTj0qQ2IobmZ5dzY9KiF1YUVGVUA9QQp6bF9C
PTVGM05lfjFJe215Xkc/cElsbkU5SEttWTt8ZkIqeV8wMDlVPDAwSntFentsaUUrR0dKKV5eMSVO
TGo2S3gKeiFpbHgyYVRxYDU3b2ZZdlZTV01hOSZ3az5gfm9YPlpoaColfEVjcWtMd1E0K1UqSSs2
PGN6PDhhWTZfezAwSXp6CnowMGJaYTBTR188MHVYPXoxa1IjQlZ0eFYyKFVONyE8JTA+KiZNKXhz
JiklfjJgdW01K0Z1JVpBIzc5O1RmQip5Xwp6MDA5VTwwMEl6ejAwYlphZmVTPXsmbzdXV0AlI2NH
UUBgIX1fMj16aFZlPD4qSkg5cj5gfnIwRSFwQ1ZSRUQoU0kKejFSd3diMnRXVj01UCQjI0FhTCNs
M0sjTTVeMTh0aFlgbEM/O1gtM19lMDJUJUxlLWNZQTYtOFdeOXh7cDBwdDd2CkZ7fGBuaDQ5KS1t
CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBh
dGliaWxpdHlSZWFkLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGY0NzYxOWI1ZjY1MzQxZTI1OWFkNDJhZWQ0NzkzNWZkZWQ4YjgwYwotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0lu
ZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbApAQCAt
MCwwICsxLDk5IEBACis8c2NyaXB0PgorICAgIGZ1bmN0aW9uIGxvZyhtc2cpCisgICAgeworLy8g
ICAgICAgIGFsZXJ0KG1zZyk7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKG1zZyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2hv
dWxkQmVUeXBlKF9hLCBfdHlwZSkKKyAgICB7CisgICAgICAgIHZhciBleGNlcHRpb247CisgICAg
ICAgIHZhciBfYXY7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBfYXYgPSBldmFsKF9hKTsK
KyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgZXhjZXB0aW9uID0gZTsKKyAgICAg
ICAgfQorCisgICAgICAgIHZhciBfdHlwZXYgPSBldmFsKF90eXBlKTsKKyAgICAgICAgaWYgKF9h
diBpbnN0YW5jZW9mIF90eXBldikgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICAvLyBWYWx1ZXMgdGhhdCBhcmUgdXNlZCB0byBpbmZlciB0aGUgdHlwZSBvZiBhIGdpdmVu
IHByaW1pdGl2ZSB0eXBlLgorICAgIHZhciB0ZXN0VmFsdWVzID0gWworICAgICAgICB1bmRlZmlu
ZWQsCisgICAgICAgIG51bGwsCisgICAgICAgIDUsIC8vIEludAorICAgICAgICAwLAorICAgICAg
ICAxLAorICAgICAgICBmYWxzZSwKKyAgICAgICAgdHJ1ZSwKKyAgICAgICAgNS41LCAvLyBEb3Vi
bGUKKyAgICAgICAgIkhlbGxvLFdvcmxkISIsCisgICAgICAgICIiCisgICAgXTsKKworICAgIC8v
IFZhbHVlcyB0aGF0IGFyZSB1c2VkIHRvIGluZmVyIHRoZSB0eXBlIG9mIGEgZ2l2ZW4gQm9vbGVh
bi9TdHJpbmcgdHlwZS4KKyAgICB2YXIgdGVzdFR5cGVWYWx1ZXMgPSBbCisgICAgICAgIHsgaXRl
bTogbmV3IEJvb2xlYW4odHJ1ZSksIHR5cGU6ICJCb29sZWFuIiwgdmFsdWU6IHRydWUgfSwKKyAg
ICAgICAgeyBpdGVtOiBuZXcgQm9vbGVhbihmYWxzZSksIHR5cGU6ICJCb29sZWFuIiwgdmFsdWU6
IGZhbHNlIH0sCisgICAgICAgIHsgaXRlbTogbmV3IFN0cmluZygpLCB0eXBlOiAiU3RyaW5nIiwg
dmFsdWU6ICIiIH0KKyAgICBdOworCisgICAgdmFyIG9wZW5SZXF1ZXN0ID0gaW5kZXhlZERCLm9w
ZW4oImJhY2t3YXJkX2NvbXBhdGliaWxpdHkiKTsKKyAgICBvcGVuUmVxdWVzdC5vbmVycm9yID0g
ZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgbG9nKCJFcnJvcjogIiArIGV2ZW50LnRhcmdldC5l
cnJvci5uYW1lKTsKKyAgICB9CisgICAgb3BlblJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24o
ZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICByZWFk
VHlwZSgpOworICAgIH0KKworICAgIHZhciByZXN1bHQgPSB0cnVlOworICAgIGZ1bmN0aW9uIHJl
YWRUeXBlKCkKKyAgICB7CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGRiLnRyYW5zYWN0aW9u
KCJ0eXBlIikub2JqZWN0U3RvcmUoInR5cGUiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUub3BlbkN1
cnNvcigpLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBjdXJzb3Ig
PSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBzaG91bGRCZVR5cGUoImN1cnNvci52YWx1ZSIs
IGN1cnNvci5rZXkpOworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcmVhZFZhbHVlKCk7CisgICAgICAgIH07Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gcmVhZFZhbHVlKCkKKyAgICB7CisgICAgICAgIHZhciBvYmpl
Y3RTdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCJ2YWx1ZSIpLm9iamVjdFN0b3JlKCJ2YWx1ZSIpOwor
ICAgICAgICBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICAgICAgICAgIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAg
ICAgICBpZiAoY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIChj
dXJzb3IudmFsdWUgPT09IHRlc3RWYWx1ZXNbY3Vyc29yLmtleSAtIDFdKTsKKyAgICAgICAgICAg
ICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
ICAgIHJlYWRUeXBlVmFsdWUoKTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBy
ZWFkVHlwZVZhbHVlKCkKKyAgICB7CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGRiLnRyYW5z
YWN0aW9uKCJ0eXBlVmFsdWUiKS5vYmplY3RTdG9yZSgidHlwZVZhbHVlIik7CisgICAgICAgIG9i
amVjdFN0b3JlLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAg
ICAgICAgICAgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmIChj
dXJzb3IpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgc2hvdWxkQmVUeXBl
KCJjdXJzb3IudmFsdWUiLCB0ZXN0VHlwZVZhbHVlc1tjdXJzb3Iua2V5IC0gMV0udHlwZSkgJiYg
KGN1cnNvci52YWx1ZSA9PSB0ZXN0VHlwZVZhbHVlc1tjdXJzb3Iua2V5IC0gMV0udmFsdWUpOwor
ICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAgICAgICAgICAgICBsb2coIlBh
c3MiKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGxvZygiRmFp
bCIpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKzwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCU3Ry
dWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5V3JpdGUuaHRtbCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3
YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjI2NmVjYzRlYWFiMTljZmE1
ZmUxOWI3YWI5MzMzY2EzMDQxNTM0NwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJk
Q29tcGF0aWJpbGl0eVdyaXRlLmh0bWwKQEAgLTAsMCArMSwxNzEgQEAKKzxzY3JpcHQ+CisgICAg
ZnVuY3Rpb24gbG9nKG1zZykKKyAgICB7CisvLyAgICAgICAgYWxlcnQobXNnKTsKKyAgICAgICAg
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UobXNn
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzaG91bGRCZVR5cGUoX2EsIF90eXBlKQorICAgIHsK
KyAgICAgICAgdmFyIGV4Y2VwdGlvbjsKKyAgICAgICAgdmFyIF9hdjsKKyAgICAgICAgdHJ5IHsK
KyAgICAgICAgICAgIF9hdiA9IGV2YWwoX2EpOworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgICAgICBleGNlcHRpb24gPSBlOworICAgICAgICB9CisKKyAgICAgICAgdmFyIF90eXBldiA9
IGV2YWwoX3R5cGUpOworICAgICAgICBpZiAoX2F2IGluc3RhbmNlb2YgX3R5cGV2KSB7CisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFZhbHVlcyB0aGF0IGFyZSB1c2Vk
IHRvIGluZmVyIHRoZSB0eXBlIG9mIGEgZ2l2ZW4gcHJpbWl0aXZlIHR5cGUuCisgICAgdmFyIHRl
c3RWYWx1ZXMgPSBbCisgICAgICAgIHVuZGVmaW5lZCwKKyAgICAgICAgbnVsbCwKKyAgICAgICAg
NSwgLy8gSW50CisgICAgICAgIDAsCisgICAgICAgIDEsCisgICAgICAgIGZhbHNlLAorICAgICAg
ICB0cnVlLAorICAgICAgICA1LjUsIC8vIERvdWJsZQorICAgICAgICAiSGVsbG8sV29ybGQhIiwK
KyAgICAgICAgIiIKKyAgICBdOworCisgICAgLy8gVmFsdWVzIHRoYXQgYXJlIHVzZWQgdG8gaW5m
ZXIgdGhlIHR5cGUgb2YgYSBnaXZlbiBCb29sZWFuL1N0cmluZyB0eXBlLgorICAgIHZhciB0ZXN0
VHlwZVZhbHVlcyA9IFsKKyAgICAgICAgeyBpdGVtOiBuZXcgQm9vbGVhbih0cnVlKSwgdHlwZTog
IkJvb2xlYW4iLCB2YWx1ZTogdHJ1ZSB9LAorICAgICAgICB7IGl0ZW06IG5ldyBCb29sZWFuKGZh
bHNlKSwgdHlwZTogIkJvb2xlYW4iLCB2YWx1ZTogZmFsc2UgfSwKKyAgICAgICAgeyBpdGVtOiBu
ZXcgU3RyaW5nKCksIHR5cGU6ICJTdHJpbmciLCB2YWx1ZTogIiIgfQorICAgIF07CisKKyAgICBp
bmRleGVkREIuZGVsZXRlRGF0YWJhc2UoImJhY2t3YXJkX2NvbXBhdGliaWxpdHkiKTsKKyAgICB2
YXIgb3BlblJlcXVlc3QgPSBpbmRleGVkREIub3BlbigiYmFja3dhcmRfY29tcGF0aWJpbGl0eSIp
OworICAgIG9wZW5SZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgIC8vIFRoaXMgb2JqZWN0U3RvcmUgc3RvcmVzIGVsZW1lbnRzIHRoYXQgd2Ugb25seSBu
ZWVkIHRvIGNoZWNrIGl0cyB0eXBlIHRvIGRldGVybWluZSBpdHMgc2VyaWFsaXphdGlvbiB0YWcu
CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQuY3JlYXRlT2Jq
ZWN0U3RvcmUoInR5cGUiKTsKKyAgICAgICAgLy8gVGhpcyBvYmplY3RTdG9yZSBzdG9yZXMgZWxl
bWVudHMgdGhhdCB3ZSBuZWVkIHRvIGNoZWNrIGl0cyB2YWx1ZSB0byBkZXRlcm1pbmUgaXRzIHNl
cmlhbGl6YXRpb24gdGFnLgorICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBldmVudC50YXJnZXQu
cmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJ2YWx1ZSIsIHsgYXV0b0luY3JlbWVudCA6IHRydWUg
fSk7CisgICAgICAgIC8vIFRoaXMgb2JqZWN0U3RvcmUgc3RvcmVzIGVsZW1lbnRzIHRoYXQgd2Ug
bmVlZCB0byBjaGVjayBib3RoIGl0cyB0eXBlIGFuZCBpdHMgdmFsdWUgdG8gZGV0ZXJtaW5lIGl0
cyBzZXJpYWxpemF0aW9uIHRhZy4KKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZXZlbnQudGFy
Z2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgidHlwZVZhbHVlIiwgeyBhdXRvSW5jcmVtZW50
IDogdHJ1ZSB9KTsKKyAgICB9CisgICAgb3BlblJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKGV2
ZW50KSB7CisgICAgICAgIGxvZygiRXJyb3I6ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7
CisgICAgfQorICAgIG9wZW5SZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgc3RvcmVUeXBlKCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gc3RvcmVUeXBlKCkKKyAgICB7CisgICAgICAgIHZhciB0cmFu
c2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCJ0eXBlIiwgInJlYWR3cml0ZSIpOworICAgICAgICB0
cmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGxvZygi
RXJyb3I6ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7CisgICAgICAgIH0KKyAgICAgICAg
dHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7IHN0b3JlVmFsdWUoKTsg
fQorCisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCJ0
eXBlIik7CisgICAgICAgIC8vIFRoZSBrZXkgb2YgYW4gaXRlbSBpcyB0aGUgdHlwZSBvZiBpdHMg
dmFsdWUsIGhlbmNlIHdlIGNvdWxkIGRldGVybWluZSB0eXBlIG1pc21hdGNoLCBpLmUuIHNlcmlh
bGl6YXRpb24gdGFnIHJlb3JkZXIKKyAgICAgICAgLy8gc2ltcGx5IGJ5IHVzaW5nIGFuIGl0ZW0n
cyBrZXkgYW5kIHZhbHVlLgorICAgICAgICBvYmplY3RTdG9yZS5hZGQoWzEsIDJdLCAiQXJyYXki
KTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKHsgcHJvcGVydHk6IG51bGwgfSwgIk9iamVjdCIp
OworICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IERhdGUoKSwgIkRhdGUiKTsKKyAgICAgICAg
b2JqZWN0U3RvcmUuYWRkKG5ldyBGaWxlKFsiZm9vIl0sICJmb28udHh0IiksICJGaWxlIik7Cisg
ICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgSW1hZ2VEYXRhKDEwMCwgMTAwKSwgIkltYWdlRGF0
YSIpOworICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IEJsb2IoWyJmb28iXSksICJCbG9iIik7
CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgUmVnRXhwKCcnKSwgIlJlZ0V4cCIpOworICAg
ICAgICBvYmplY3RTdG9yZS5hZGQobmV3IEFycmF5QnVmZmVyKDEpLCAiQXJyYXlCdWZmZXIiKTsK
KyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBTdHJpbmcoJycpLCAiU3RyaW5nIik7CisgICAg
ICAgIG9iamVjdFN0b3JlLmFkZChuZXcgTnVtYmVyKDEyKSwgIk51bWJlciIpOworICAgICAgICBv
YmplY3RTdG9yZS5hZGQobmV3IFNldChbMSwgMl0pLCAiU2V0Iik7CisgICAgICAgIG9iamVjdFN0
b3JlLmFkZChuZXcgTWFwKCksICJNYXAiKTsKKyAgICAgICAgLy8gVHlwZWQgYXJyYXlzCisgICAg
ICAgIG9iamVjdFN0b3JlLmFkZChuZXcgSW50OEFycmF5KCksICJJbnQ4QXJyYXkiKTsKKyAgICAg
ICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBVaW50OEFycmF5KCksICJVaW50OEFycmF5Iik7CisgICAg
ICAgIG9iamVjdFN0b3JlLmFkZChuZXcgVWludDhDbGFtcGVkQXJyYXkoKSwgIlVpbnQ4Q2xhbXBl
ZEFycmF5Iik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgSW50MTZBcnJheSgpLCAiSW50
MTZBcnJheSIpOworICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IFVpbnQxNkFycmF5KCksICJV
aW50MTZBcnJheSIpOworICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IEludDMyQXJyYXkoKSwg
IkludDMyQXJyYXkiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBVaW50MzJBcnJheSgp
LCAiVWludDMyQXJyYXkiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBGbG9hdDMyQXJy
YXkoKSwgIkZsb2F0MzJBcnJheSIpOworICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IEZsb2F0
NjRBcnJheSgpLCAiRmxvYXQ2NEFycmF5Iik7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RvcmVW
YWx1ZSgpCisgICAgeworICAgICAgICB2YXIgdHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbigi
dmFsdWUiLCAicmVhZHdyaXRlIik7CisgICAgICAgIHRyYW5zYWN0aW9uLm9uZXJyb3IgPSBmdW5j
dGlvbihldmVudCkgeworICAgICAgICAgICAgbG9nKCJFcnJvcjogIiArIGV2ZW50LnRhcmdldC5l
cnJvci5uYW1lKTsKKyAgICAgICAgfQorICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0g
ZnVuY3Rpb24oZXZlbnQpIHsgc3RvcmVUeXBlVmFsdWUoKTsgfQorCisgICAgICAgIHZhciBvYmpl
Y3RTdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCJ2YWx1ZSIpOworICAgICAgICAvLyBI
ZXJlIHdlIHN0b3JlIHZhbHVlcyBpbiB0aGUgdGVzdCBtYXRyaXggaW4gb3JkZXIgYW5kIHJlYWQg
dGhlbSBpbiBvcmRlciB0byBzZWUgaWYgYW55IG1pc21hdGNoIGhhcHBlbnMuCisgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgdGVzdFZhbHVlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9i
amVjdFN0b3JlLmFkZCh0ZXN0VmFsdWVzW2ldKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdG9y
ZVR5cGVWYWx1ZSgpCisgICAgeworICAgICAgICB2YXIgdHJhbnNhY3Rpb24gPSBkYi50cmFuc2Fj
dGlvbigidHlwZVZhbHVlIiwgInJlYWR3cml0ZSIpOworICAgICAgICB0cmFuc2FjdGlvbi5vbmVy
cm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGxvZygiRXJyb3I6ICIgKyBldmVu
dC50YXJnZXQuZXJyb3IubmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgdHJhbnNhY3Rpb24ub25j
b21wbGV0ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7IHJlYWRUeXBlKCk7IH0KKworICAgICAgICB2YXIg
b2JqZWN0U3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgidHlwZVZhbHVlIik7CisgICAg
ICAgIC8vIEhlcmUgd2Ugc3RvcmUgaXRlbXMgaW4gdGhlIHRlc3QgbWF0cml4IGluIG9yZGVyIGFu
ZCByZWFkIHRoZW0gaW4gb3JkZXIgdG8gc2VlIGlmIGFueSBtaXNtYXRjaGVzIGl0cyB0eXBlIGFu
ZCB2YWx1ZS4KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0VHlwZVZhbHVlcy5sZW5n
dGg7IGkrKykKKyAgICAgICAgICAgIG9iamVjdFN0b3JlLmFkZCh0ZXN0VHlwZVZhbHVlc1tpXS5p
dGVtKTsKKyAgICB9CisKKyAgICB2YXIgcmVzdWx0ID0gdHJ1ZTsKKyAgICBmdW5jdGlvbiByZWFk
VHlwZSgpCisgICAgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigi
dHlwZSIpLm9iamVjdFN0b3JlKCJ0eXBlIik7CisgICAgICAgIG9iamVjdFN0b3JlLm9wZW5DdXJz
b3IoKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgY3Vyc29yID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAg
ICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgc2hvdWxkQmVUeXBlKCJjdXJzb3IudmFsdWUiLCBj
dXJzb3Iua2V5KTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHJlYWRWYWx1ZSgpOworICAgICAgICB9OworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJlYWRWYWx1ZSgpCisgICAgeworICAgICAgICB2YXIgb2JqZWN0
U3RvcmUgPSBkYi50cmFuc2FjdGlvbigidmFsdWUiKS5vYmplY3RTdG9yZSgidmFsdWUiKTsKKyAg
ICAgICAgb2JqZWN0U3RvcmUub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50
KSB7CisgICAgICAgICAgICBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAg
ICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoY3Vy
c29yLnZhbHVlID09PSB0ZXN0VmFsdWVzW2N1cnNvci5rZXkgLSAxXSk7CisgICAgICAgICAgICAg
ICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICByZWFkVHlwZVZhbHVlKCk7CisgICAgICAgIH07CisgICAgfQorCisgICAgZnVuY3Rpb24gcmVh
ZFR5cGVWYWx1ZSgpCisgICAgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2Fj
dGlvbigidHlwZVZhbHVlIikub2JqZWN0U3RvcmUoInR5cGVWYWx1ZSIpOworICAgICAgICBvYmpl
Y3RTdG9yZS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAg
ICAgICAgIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBpZiAoY3Vy
c29yKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHNob3VsZEJlVHlwZSgi
Y3Vyc29yLnZhbHVlIiwgdGVzdFR5cGVWYWx1ZXNbY3Vyc29yLmtleSAtIDFdLnR5cGUpICYmIChj
dXJzb3IudmFsdWUgPT0gdGVzdFR5cGVWYWx1ZXNbY3Vyc29yLmtleSAtIDFdLnZhbHVlKTsKKyAg
ICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJQYXNz
Iik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBsb2coIkZhaWwi
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9Cis8L3NjcmlwdD4K
</data>
<flag name="review"
          id="337316"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316825</attachid>
            <date>2017-07-31 18:42:34 -0700</date>
            <delta_ts>2017-08-01 12:50:35 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-173998-20170731184253.patch</filename>
            <type>text/plain</type>
            <size>41071</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwMDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWQ2YzVjMTgwMzVlZDJl
NzQ5M2UwNDQ2ZTA1YjM5ZmJkOGZlNWEyOC4uYzY1NDM5NDRjYjI4MGVjZjgwMzlmYTczYjlmYWE3
MjNlYjQ1NGYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA3LTI2ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRlc3RzIHRvIGRl
dGVjdCBtaXN0YWtlcyBpbiBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdoZW4gdGhlIHN0cnVjdHVy
ZWQgY2xvbmUgYWxnb3JpdGhtIGlzIGNoYW5nZWQgaW4gdGhlIGZ1dHVyZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczOTk4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICBBZGQgYSBjb21tZW50LgorCiAyMDE3LTA3LTI4
ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBSZWNvcmQgYWN0aW9ucyBwZXJmb3JtZWQgb24gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0
VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmNwcAppbmRleCA0NGNlOWNkMzMzY2M2YTY1N2E4MWUwM2M0MjRjMzVmYmJmNzQyYjMwLi45
MmNhYTIwYjdhNmQ3ZDYwNDY2NTQwZmFhYmY2NjI2Yzg2NmI4NjMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTEx
Nyw2ICsxMTcsNyBAQCBlbnVtIFdhbGtlclN0YXRlIHsgU3RhdGVVbmtub3duLCBBcnJheVN0YXJ0
U3RhdGUsIEFycmF5U3RhcnRWaXNpdE1lbWJlciwgQXJyYXlFbgogICAgIFNldERhdGFTdGFydFZp
c2l0RW50cnksIFNldERhdGFFbmRWaXNpdEtleSB9OwogCiAvLyBUaGVzZSBjYW4ndCBiZSByZW9y
ZGVyZWQsIGFuZCBhbnkgbmV3IHR5cGVzIG11c3QgYmUgYWRkZWQgdG8gdGhlIGVuZCBvZiB0aGUg
bGlzdAorLy8gV2hlbiBtYWtpbmcgY2hhbmdlcyB0byB0aGVzZSBsaXN0cyBwbGVhc2UgY292ZXIg
eW91ciBuZXcgdHlwZShzKSBpbiB0aGUgQVBJIHRlc3QgIkluZGV4ZWREQi5TdHJ1Y3R1cmVkQ2xv
bmVCYWNrd2FyZENvbXBhdGliaWxpdHkiCiBlbnVtIFNlcmlhbGl6YXRpb25UYWcgewogICAgIEFy
cmF5VGFnID0gMSwKICAgICBPYmplY3RUYWcgPSAyLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGY1NjRjYjkxYWRiODZmMzdiNDE3YTAwZjRiN2E5
YjQyNDZmMDc1YjkuLjg3ZmRjNGI0NGZkYzliODBhY2ZmYmIwMTg0YjVjZDZjNDYwYmYyZTkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNiBAQAorMjAxNy0wNy0yNiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCB0ZXN0cyB0byBkZXRlY3QgbWlzdGFrZXMgaW4gYmFja3dhcmQgY29tcGF0
aWJpbGl0eSB3aGVuIHRoZSBzdHJ1Y3R1cmVkIGNsb25lIGFsZ29yaXRobSBpcyBjaGFuZ2VkIGlu
IHRoZSBmdXR1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3Mzk5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFNpbmNlIHRoZSBzdHJ1Y3R1cmVkIGNsb25lIGFsZ29yaXRobSBpcyB1c2VkIGZvciBkYXRh
IHN0b3JlZCBpbiBwZXJzaXN0ZW50IGRhdGFiYXNlcywgd2UgbmVlZCB0ZXN0cyB0byBoZWxwIHVz
CisgICAgICAgIGRldGVjdCBtaXN0YWtlcyBpbiBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGluIHRo
ZSBmdXR1cmUgd2hlbiB3ZSBjaGFuZ2UgaXQuCisKKyAgICAgICAgVGhlIHdheSBpdCB3b3JrcyBp
cyB0byByZWFkIGZyb20gYSBwcmUtYmFrZWQgZGF0YWJhc2UgYW5kIHNlZSBpZiBhbGwgdGhlIHZh
bHVlcyBhcmUgbWF0Y2hlZCB3aXRoIHRoZSBleHBlY3RhdGlvbnMuCisgICAgICAgIFN1cnByaXNl
ZGx5LCBzb21lIG9mIHN0cnVjdHVyZWQgY2xvbmFibGUgb2JqZWN0cyBjYW5ub3QgYmUgc3RvcmVk
IGludG8gdGhlIGluZGV4ZWREQi4gVGhvc2UgYXJlIEZpbGVMaXN0LAorICAgICAgICBPYmplY3RS
ZWZlcmVuY2UsIE1lc3NhZ2VQb3J0UmVmZXJlbmNlLCBBcnJheUJ1ZmZlclZpZXcsIEFycmF5QnVm
ZmVyVHJhbnNmZXIsIE5vbk1hcFByb3BlcnRpZXMsIE5vblNldFByb3BlcnRpZXMsCisgICAgICAg
IFNoYXJlZEFycmF5QnVmZmVyLCBXYXNtTW9kdWxlLCBET01Qb2ludFJlYWRPbmx5LCBET01Qb2lu
dCwgRE9NUmVjdFJlYWRPbmx5LCBET01SZWN0LCBET01NYXRyaXhSZWFkT25seSwgRE9NTWF0cml4
LAorICAgICAgICBET01RdWFkIGFuZCBFcnJvci4gQ3J5cHRvS2V5IG9iamVjdHMgYXJlIG5vdCBp
bmNsdWRlZCBhcyB3ZWxsIGFzIHRoZXkgbmVlZCBuZXcgQVBJIGZvciBlbmNyeXB0aW5nL2RlY3J5
cHRpbmcgdGhlCisgICAgICAgIGludGVybmFsIGtleSBkYXRhIHNsb3QuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJTdHJ1Y3R1
cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkubW06IEFkZGVkLgorICAgICAgICAoLVtJbmRl
eGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlNZXNzYWdlSGFuZGxlciB1
c2VyQ29udGVudENvbnRyb2xsZXI6ZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6XSk6CisgICAgICAg
IChnZXROZXh0TWVzc2FnZSk6CisgICAgICAgIChURVNUKToKKyAgICAgICAgSGVyZSBpcyB0aGUg
QVBJIHRlc3QgdGhhdCBtb3ZlcyB0aGUgcHJlLWJha2VkIGRhdGFiYXNlIHRvIHRoZSBsb2NhdGlv
biB3aGVyZSBUZXN0V2ViS2l0QVBJIGNhbiByZWFkIGZyb20uCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRD
b21wYXRpYmlsaXR5LnNxbGl0ZTM6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJp
bGl0eS5zcWxpdGUzLXNobTogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5
LnNxbGl0ZTMtd2FsOiBBZGRlZC4KKyAgICAgICAgVGhlc2UgYXJlIHRoZSBwcmUtYmFrZWQgZGF0
YWJhc2VzLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4
ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbDogQWRkZWQu
CisgICAgICAgIFRoaXMgaXMgdGhlIGFjdHVhbCB0ZXN0IHRoYXQgZG8gYWxsIHRoZSByZWFkcyBh
bmQgY29tcGFyaXNvbnMuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5V3JpdGUuaHRt
bDogQWRkZWQuCisgICAgICAgIFRoaXMgaXMgdGhlIHBhZ2UgdGhhdCBiYWtlcyB0aGUgZGF0YWJh
c2UuIEl0IG5ldmVyIHJ1bnMgYXV0b21hdGljYWxseS4gSXQgaXMgZm9yIHNvbWVvbmUgd2hvIG5l
ZWRzIHRvIHRlYWNoCisgICAgICAgIEluZGV4ZWREQiBuZXcgc3R1ZmZzLiBUaGVuIGl0IGNhbiBi
ZSB1c2VkIHRvIGJha2UgdGhlIGRhdGFiYXNlIGFnYWluLgorCiAyMDE3LTA3LTI4ICBBZHJpYW4g
UGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQnVp
bGRpbmcgd2l0aCBFTkFCTEVfVklERU89T0ZGIGZhaWxzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGM1MmU1NDcyYjdlMjUwNjkzZGEzYTMxYWU2ZmMzNzk5YTQ5Y2E3ZDQuLjM5N2NmZDM3YmNl
YmZhZGY1MDg3YjJkMjI2YzVlM2NhYTYwZmNhZmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0yMDEsNiArMjAxLDEyIEBACiAJCTU3MTRFQ0I5MUNBOEI1QjAwMDA1MUFDOCAvKiBEb3dubG9h
ZFJlcXVlc3RPcmlnaW5hbFVSTC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MTRFQ0I4MUNBOEI1ODgwMDA1MUFDOCAvKiBEb3dubG9h
ZFJlcXVlc3RPcmlnaW5hbFVSTC5odG1sICovOyB9OwogCQk1NzE0RUNCQjFDQThCRkU0MDAwNTFB
QzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MTRFQ0JBMUNBOEJGRDEw
MDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTEZyYW1lLmh0bWwgKi87IH07CiAJ
CTU3MTRFQ0JEMUNBOEMyMkEwMDA1MUFDOCAvKiBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTDIu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NzE0RUNCQzFDQThDMjE4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkwy
Lmh0bWwgKi87IH07CisJCTU3MUY3RkQwMUYyOTYxRkIwMDk0NjY0OCAvKiBJbmRleGVkREJTdHJ1
Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxRjdGQ0YxRjI5NjFF
MTAwOTQ2NjQ4IC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0
eS5zcWxpdGUzLXdhbCAqLzsgfTsKKwkJNTc1OTlFMjExRjA3MTkxOTAwQTNGQjhDIC8qIEluZGV4
ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTk5RTIwMUYwNzE5MTcwMEEzRkI4
QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkubW0gKi87
IH07CisJCTU3NTk5RTI3MUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xv
bmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMyBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUyNDFGMDcxOTJDMDBBM0ZCOEMgLyog
SW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMgKi87
IH07CisJCTU3NTk5RTI4MUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xv
bmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0gaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1OTlFMjYxRjA3MTkyQzAwQTNGQjhD
IC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUz
LXNobSAqLzsgfTsKKwkJNTc1OTlFMkExRjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVj
dHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVJlYWQuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUyNTFGMDcxOTJDMDBB
M0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5UmVh
ZC5odG1sICovOyB9OworCQk1NzU5OUUyQjFGMDcxQUEwMDBBM0ZCOEMgLyogSW5kZXhlZERCU3Ry
dWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5V3JpdGUuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5OUUyMzFGMDcxOTJD
MDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5
V3JpdGUuaHRtbCAqLzsgfTsKIAkJNTc2OUM1MEIxRDlCMDAwMjAwMDg0N0ZCIC8qIFNlcmlhbGl6
ZWRDcnlwdG9LZXlXcmFwLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTc2OUM1MEExRDlCMDAwMTAwMDg0N0ZCIC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlX
cmFwLm1tICovOyB9OwogCQk1NzkwMUZCMTFDQUYxNDJEMDBFRDY0RjkgLyogTG9hZEludmFsaWRV
UkxSZXF1ZXN0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTc5MDFGQjAxQ0FGMTQxQzAwRUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJMUmVx
dWVzdC5odG1sICovOyB9OwogCQk1Nzk3RkUzMTFFQjE1QTY4MDBCMkY0QTAgLyogTmF2aWdhdGlv
bkNsaWVudERlZmF1bHRDcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTc5N0ZFMkYxRUIxNUE1RjAwQjJGNEEwIC8qIE5hdmlnYXRpb25DbGll
bnREZWZhdWx0Q3J5cHRvLmNwcCAqLzsgfTsKQEAgLTc0NiwxMiArNzUyLDE3IEBACiAJCQlkc3RT
dWJmb2xkZXJTcGVjID0gNzsKIAkJCWZpbGVzID0gKAogCQkJCTUxQzhFMUE5MUYyN0Y0OTYwMEJG
NzMxQiAvKiBFbXB0eUdyYW5kZmF0aGVyZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLnBsaXN0IGlu
IENvcHkgUmVzb3VyY2VzICovLAorCQkJCTU3MUY3RkQwMUYyOTYxRkIwMDk0NjY0OCAvKiBJbmRl
eGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjQ1QjYzRkIxRjE5N0Y0QTAwOUQzOEI5IC8qIGltYWdl
LW1hcC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0MDdGRTM5MUYxRDBERkMwMDE3
Q0YyNSAvKiBlbm9ybW91cy5zdmcgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjRENUU0RTgx
RjBDNUQzODAwOEMxQTQ5IC8qIGRyYWdzdGFydC1jbGVhci1zZWxlY3Rpb24uaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQlGNEEzMkVDNDFGMDVGMzg1MDA0N0M1NDQgLyogZHJhZ3N0YXJ0
LWNoYW5nZS1zZWxlY3Rpb24tb2Zmc2NyZWVuLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJ
CQkJRjRBMzJFQ0IxRjA2NDMzNzAwNDdDNTQ0IC8qIGNvbnRlbnRlZGl0YWJsZS1pbi1pZnJhbWUu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDY5RkIyNDFGMDE4MDRCMDA0MDE1Mzkg
LyogY29udGVudGVkaXRhYmxlLWFuZC10YXJnZXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
KwkJCQk1NzU5OUUyNzFGMDcxQUEwMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25l
QmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJ
NTc1OTlFMjgxRjA3MUFBMDAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3
YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk1
NzU5OUUyQTFGMDcxQUEwMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dh
cmRDb21wYXRpYmlsaXR5UmVhZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTU3NTk5
RTJCMUYwNzFBQTAwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENv
bXBhdGliaWxpdHlXcml0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0QjgyNUQ4
MUVGNERCRkIwMDZFNDE3RiAvKiBjb21wcmVzc2VkLWZpbGVzLnppcCBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQlGNDFBQjk5RjFFRjQ2OTZCMDA4M0ZBMDggLyogYXV0b2ZvY3VzLWNvbnRlbnRl
ZGl0YWJsZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0MUFCOUEwMUVGNDY5NkIw
MDgzRkEwOCAvKiBiYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCkBAIC0xMjUwLDYgKzEyNjEsMTIgQEAKIAkJNTcxNEVDQjgxQ0E4QjU4ODAw
MDUxQUM4IC8qIERvd25sb2FkUmVxdWVzdE9yaWdpbmFsVVJMLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTC5odG1sOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NzE0RUNCQTFDQThCRkQxMDAwNTFBQzggLyogRG93bmxvYWRS
ZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
RG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxGcmFtZS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NzE0RUNCQzFDQThDMjE4MDAwNTFBQzggLyogRG93bmxvYWRSZXF1ZXN0T3Jp
Z2luYWxVUkwyLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBEb3dubG9hZFJlcXVl
c3RPcmlnaW5hbFVSTDIuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTcxRjdG
Q0YxRjI5NjFFMTAwOTQ2NjQ4IC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29t
cGF0aWJpbGl0eS5zcWxpdGUzLXdhbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSAiSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFj
a3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMtd2FsIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTc1OTlFMjAxRjA3MTkxNzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9u
ZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc1OTlFMjMxRjA3MTkyQzAwQTNGQjhD
IC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxp
dHlXcml0ZS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzU5OUUyNDFGMDcx
OTJDMDBBM0ZCOEMgLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmls
aXR5LnNxbGl0ZTMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBmaWxlOyBwYXRoID0gSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRp
YmlsaXR5LnNxbGl0ZTM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3NTk5RTI1MUYw
NzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGli
aWxpdHlSZWFkLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2Fy
ZENvbXBhdGliaWxpdHlSZWFkLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3
NTk5RTI2MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2Fy
ZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gIkluZGV4ZWREQlN0cnVjdHVyZWRDbG9u
ZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU3NjlDNTBBMUQ5QjAwMDEwMDA4NDdGQiAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5
V3JhcC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNlcmlhbGl6
ZWRDcnlwdG9LZXlXcmFwLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzkwMUZB
QzFDQUYxMkMyMDBFRDY0RjkgLyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzkwMUZBRTFDQUYxMzcxMDBFRDY0RjkgLyog
TG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTg2NCw2ICsxODgxLDcgQEAKIAkJCQk1MUFGMjNERTFFRjFBMzcyMDA3MkYyODEg
LyogSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbSAqLywKIAkJCQk1MTA0Nzc3NTFEMjk4RTAzMDA5NzQ3
RUIgLyogSURCRGVsZXRlUmVjb3ZlcnkubW0gKi8sCiAJCQkJNTExMEZDRUYxRTAxQ0JBQTAwNkY4
RDBCIC8qIElEQkluZGV4VXBncmFkZVRvVjIubW0gKi8sCisJCQkJNTc1OTlFMjAxRjA3MTkxNzAw
QTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5t
bSAqLywKIAkJCQk1MUE1ODc4NDFEMjcyRUYzMDA0QkE5QUYgLyogSW5kZXhlZERCRGF0YWJhc2VQ
cm9jZXNzS2lsbC5tbSAqLywKIAkJCQk1MUJDRUU0OTFDODRGNEFGMDA0MkM4MkUgLyogSW5kZXhl
ZERCTXVsdGlQcm9jZXNzLm1tICovLAogCQkJCTUxQjFFRThEMUM4MEY1ODgwMDY0RkI5OCAvKiBJ
bmRleGVkREJQZXJzaXN0ZW5jZS5tbSAqLywKQEAgLTIxMTUsNiArMjEzMywxMSBAQAogCQkJCTUx
QTU4NzdDMUQxQjNEOEQwMDRCQTlBRiAvKiBJbmRleGVkREJNdWx0aVByb2Nlc3MtMy5odG1sICov
LAogCQkJCTUxQjFFRTk0MUM4MEZBREQwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS0x
Lmh0bWwgKi8sCiAJCQkJNTFCMUVFOTUxQzgwRkFERDAwNjRGQjk4IC8qIEluZGV4ZWREQlBlcnNp
c3RlbmNlLTIuaHRtbCAqLywKKwkJCQk1NzU5OUUyNDFGMDcxOTJDMDBBM0ZCOEMgLyogSW5kZXhl
ZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNxbGl0ZTMgKi8sCisJCQkJ
NTc1OTlFMjYxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3
YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzLXNobSAqLywKKwkJCQk1NzFGN0ZDRjFGMjk2MUUxMDA5
NDY2NDggLyogSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5LnNx
bGl0ZTMtd2FsICovLAorCQkJCTU3NTk5RTI1MUYwNzE5MkMwMEEzRkI4QyAvKiBJbmRleGVkREJT
dHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0bWwgKi8sCisJCQkJNTc1
OTlFMjMxRjA3MTkyQzAwQTNGQjhDIC8qIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJk
Q29tcGF0aWJpbGl0eVdyaXRlLmh0bWwgKi8sCiAJCQkJNTExMEZDRjIxRTAxQ0Q3NzAwNkY4RDBC
IC8qIEluZGV4VXBncmFkZS5ibG9iICovLAogCQkJCTUxMTBGQ0YzMUUwMUNENzcwMDZGOEQwQiAv
KiBJbmRleFVwZ3JhZGUuc3FsaXRlMyAqLywKIAkJCQkyRUZGMDZDQzFEOEE0MjkxMDAwNEJCMzAg
LyogaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sICovLApAQCAtMzA2Nyw2
ICszMDkwLDcgQEAKIAkJCQk3Q0NFN0VFRjFBNDExQUU2MDA0NDdDNEMgLyogRXBoZW1lcmFsU2Vz
c2lvblB1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0
NUI2M0ZFMUYxOUQ0MTAwMDlEMzhCOSAvKiBBY3Rpb25TaGVldFRlc3RzLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0NDRTdFRjAxQTQxMUFFNjAwNDQ3QzRDIC8qIEV2YWx1YXRlSmF2YVNjcmlwdC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk1NzU5OUUyMTFGMDcxOTE5MDBBM0ZCOEMgLyogSW5kZXhl
ZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMzE1MTE4MTAxREIxQUU0MDAwMTc2MzA0IC8qIEV4dGVuZGVkQ29sb3IuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdFRjExQTQxMUFFNjAwNDQ3QzRDIC8qIEZhaWxlZExvYWQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwNEYxRDBBNjQxODAwRkVCQ0YzIC8qIEZpbGVTeXN0
ZW0uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGli
aWxpdHkubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVk
REJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTk2
MjIyZTcyNTU2ZTBmNjVmNTRhMjM3OGVlNmQ4ZGU2MWZhNGMyZAotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQlN0cnVjdHVy
ZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eS5tbQpAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5o
IgorI2ltcG9ydCAiVGVzdC5oIgorCisjaW1wb3J0IDxXZWJLaXQvV0tVc2VyQ29udGVudENvbnRy
b2xsZXJQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblBy
aXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxX
ZWJLaXQvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYktp
dC5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg+
CisjaW1wb3J0IDx3dGYvRGVxdWUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lm
IFdLX0FQSV9FTkFCTEVECisKK3N0YXRpYyBib29sIHJlY2VpdmVkU2NyaXB0TWVzc2FnZTsKK3N0
YXRpYyBEZXF1ZTxSZXRhaW5QdHI8V0tTY3JpcHRNZXNzYWdlPj4gc2NyaXB0TWVzc2FnZXM7CisK
K0BpbnRlcmZhY2UgSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5
TWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4KK0BlbmQK
KworQGltcGxlbWVudGF0aW9uIEluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0
aWJpbGl0eU1lc3NhZ2VIYW5kbGVyCisKKy0gKHZvaWQpdXNlckNvbnRlbnRDb250cm9sbGVyOihX
S1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50Q29udHJvbGxlciBkaWRSZWNlaXZl
U2NyaXB0TWVzc2FnZTooV0tTY3JpcHRNZXNzYWdlICopbWVzc2FnZQoreworICAgIHJlY2VpdmVk
U2NyaXB0TWVzc2FnZSA9IHRydWU7CisgICAgc2NyaXB0TWVzc2FnZXMuYXBwZW5kKG1lc3NhZ2Up
OworfQorCitAZW5kCisKK3N0YXRpYyBXS1NjcmlwdE1lc3NhZ2UgKmdldE5leHRNZXNzYWdlKCkK
K3sKKyAgICBpZiAoc2NyaXB0TWVzc2FnZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIHJlY2VpdmVk
U2NyaXB0TWVzc2FnZSA9IGZhbHNlOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgfQorICAgIAorICAgIHJldHVybiBbW3Njcmlw
dE1lc3NhZ2VzLnRha2VGaXJzdCgpIHJldGFpbl0gYXV0b3JlbGVhc2VdOworfQorCitURVNUKElu
ZGV4ZWREQiwgU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5KQoreworICAgIFJl
dGFpblB0cjxJbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlNZXNz
YWdlSGFuZGxlcj4gaGFuZGxlcgorICAgICAgICA9IGFkb3B0TlMoW1tJbmRleGVkREJTdHJ1Y3R1
cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0p
OworICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbW2Nv
bmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxl
cjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJdOworCisgICAgLy8gQ29weSB0aGUg
YmFrZWQgZGF0YWJhc2UgZmlsZXMgdG8gdGhlIGRhdGFiYXNlIGRpcmVjdG9yeQorICAgIE5TVVJM
ICp1cmwxID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4ZWRE
QlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJpbGl0eSIgd2l0aEV4dGVuc2lvbjpAInNx
bGl0ZTMiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisgICAgTlNV
UkwgKnVybDIgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiSW5kZXhl
ZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5IiB3aXRoRXh0ZW5zaW9uOkAi
c3FsaXRlMy1zaG0iIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07Cisg
ICAgTlNVUkwgKnVybDMgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAi
SW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5IiB3aXRoRXh0ZW5z
aW9uOkAic3FsaXRlMy13YWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CisKKyAgICBOU1VSTCAqaWRiUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9M
aWJyYXJ5L1dlYktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL0luZGV4ZWREQi8i
IHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdXTsKKyAgICBbW05TRmlsZU1hbmFnZXIgZGVm
YXVsdE1hbmFnZXJdIHJlbW92ZUl0ZW1BdFVSTDppZGJQYXRoIGVycm9yOm5pbF07CisgICAgRVhQ
RUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0
aDppZGJQYXRoLnBhdGhdKTsKKworICAgIFJldGFpblB0cjxfV0tXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbj4gd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dL
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICB3ZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKS5faW5kZXhlZERCRGF0YWJhc2VEaXJlY3Rvcnkg
PSBpZGJQYXRoOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSA9IFtb
W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0gYXV0b3JlbGVhc2VdOworCisgICAgaWRiUGF0
aCA9IFtpZGJQYXRoIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAImZpbGVfXzAiXTsKKyAg
ICBpZGJQYXRoID0gW2lkYlBhdGggVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiYmFja3dh
cmRfY29tcGF0aWJpbGl0eSJdOworICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0g
Y3JlYXRlRGlyZWN0b3J5QXRVUkw6aWRiUGF0aCB3aXRoSW50ZXJtZWRpYXRlRGlyZWN0b3JpZXM6
WUVTIGF0dHJpYnV0ZXM6bmlsIGVycm9yOm5pbF07CisgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1
bHRNYW5hZ2VyXSBjb3B5SXRlbUF0VVJMOnVybDEgdG9VUkw6W2lkYlBhdGggVVJMQnlBcHBlbmRp
bmdQYXRoQ29tcG9uZW50OkAiSW5kZXhlZERCLnNxbGl0ZTMiXSBlcnJvcjpuaWxdOworICAgIFtb
TlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY29weUl0ZW1BdFVSTDp1cmwyIHRvVVJMOltp
ZGJQYXRoIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIkluZGV4ZWREQi5zcWxpdGUzLXNo
bSJdIGVycm9yOm5pbF07CisgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjb3B5
SXRlbUF0VVJMOnVybDMgdG9VUkw6W2lkYlBhdGggVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50
OkAiSW5kZXhlZERCLnNxbGl0ZTMtd2FsIl0gZXJyb3I6bmlsXTsKKworICAgIC8vIFJ1biB0aGUg
dGVzdAorICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVz
dCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAIkluZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0aWJp
bGl0eVJlYWQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKwor
ICAgIEVYUEVDVF9TVFJFUShbZ2V0TmV4dE1lc3NhZ2UoKS5ib2R5IFVURjhTdHJpbmddLCAiUGFz
cyIpOworfQorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJh
Y2t3YXJkQ29tcGF0aWJpbGl0eS5zcWxpdGUzIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5
LnNxbGl0ZTMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQyMGNkODA4Zjg5NmRiZTU4ZDZhMzdhZjk2MjU1M2Q4MjUx
NGZhOApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNDA5Ngp6Y21XRnpedk50cVJZPVAoJTF0YSRG
bEc+N1V9OW8kUCo3bENVfEB0fEFWb0d7V1k4MSUlP3J7bEsoLW05OGI/RTUKbkd6M09OVV5FMHFM
dHIhbk1uaG1VMVYlJChHejNPTlVeRTBxTHRyIW5DPTNBcjVAODElCgpsaXRlcmFsIDAKSGNtVj9k
MDAwMDEKCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1z
aG0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJTdHJ1
Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy1zaG0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTc4MTU4ZDMzZTU2OTdkMjZiYjI5YjI0YTg3YjM1MWFiMWZjNGU2OQpHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgMzI3NjgKemNtZUkqJHgjQTk2dnB1PGczMmxpREJ5PHN6Vkd7emZlQmRWVkdRMCl6
YEs/USVSfiRTUX1De0B3WHJ4QEZkaGJ9Cno/dGZRM3BYMm9PJT1aaTZTKiRMTFNeWmlhQkgwVj0h
JjtmPSVHR2BIdTl+e09lMCskJXp1ZGxFeXh0cj9PJT95Ugp6VXl1NCkybTE0KVpyTU5vRzx+OzN2
YHBgYEohKlQqX0FjQUl3ZkFWbj9SNyRYKCpCOyhwNFE2UD50NVRsK1dXTD4KemRtSHVvR2l1TSh6
UiFHe2BIdVE7Rm1eZXV5akRTTEt4PEh8czghTWBZWWt9YFNNei1CJS1eb3tIVlhqKzVJX0l7Cnox
UTAqfjBSI3wwMDA5SUxLbVkqKjVJX0l7MVEwKn4wUiN8MDAwOUlMS21ZKio1SV9JezFRMCp+MFIj
fDAwMDlJTAp6S21ZKio1SV9JezFRMCp+MFIjfDAwMDlJWDVaSDFjTHUoPio9c2JwKSZUQCRCe0RA
d2lmaWEqbjh8R1d7WVRnbygKeno7O09JeF80fHU3VGdRdmQ3PlQ5XjlQUn5sfD95fSk4RyVWditW
X1QreGBwTjxwYSRPRTAkWFZkdjMpRUZeIW9YCnokOHQreC0+bzx5cmIpPEJoXktTKGUrVjROaUl+
fSl0WSFpIWBKUTslWSM7WCNhOERwREVBRTlONWR3aChHT2ArSQp6QURhK3hQYXZ5UCRWWCZNIyUw
cElhM24mWXArS0xgLXlmQlZPZj1sWk8kMXlOJGpPdzh2Qi1vIzBELShyMmlWMEgKejFZOHMtJGMm
NHokYj4pdTByUWBAU1Axd2pQP0F8V2t+MlRVbGlHOEV2ZHFiYG9PYFo3ZF9NKSZ7RVNVJTFYTiVo
ClQxcThlbSp6aCh2ITRjU21BZlVofVBHQiorCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJT
dHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVC
YWNrd2FyZENvbXBhdGliaWxpdHkuc3FsaXRlMy13YWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzc1YWY1N2VlYjlj
ZTZhMmNmYTlkYzNiMGY2MzA5ZGY0MGJjY2VmZApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjcx
OTUyCnpjbWVJKjRTVz5rb2RAdWxvcWZxPHZwWSNoU1RNbTFVP2VMRXV0Xnw8bnYlQi1aZG5xQGl2
bXt+YzlSVipnbHlidwp6a2Ercm1xX3BSaV9POEJNP09weFUqODg7RHFraHoqRk00O2pUM2Z8aD8+
PzQwVGQhfjB2KD1OTVZ2RSowdGxzfjUKemM0c3JRWT8zOEhmYmJoZ0dXKlFUR3RZZVlDMyY5Ynwy
JEsoJnBJWWx7Q2JgczxPKiFiKn1tIUZodmJ1d2VzWG5CCnokdlh3akYtajhrPkhwbUpvMmBwaC1n
fmxSbFJxMl9zZU9ePz9tJGVmcU43YkZwPFkjS1VzS3xYOW1XPVJ5cVR9WAp6enchS1prSkdLMWdr
YHk+OUpFREx0YGdgITc2P0U5MHVYPXoxUnd3YjJ0V1Y9NVAtbDFFLT4wNStGVjZOO0BCOyoKekso
SWc1OV9vb2lkeHNKfk9pa19IaEVBe0ErMGZ8c3MpPENrRUUzIXE+V092NEJHSGhxU0BwR2NkZT9j
fCl6LUY3Cnp3WUFJZFNLQ19Fcm5jND16cHRyTlpFNWlOJWhnPz41dys5MXhzJWZVZXdMeEh4cEJS
QiVWZFlfM0dAJCNDZmd5KAp6T1I3OG4jJitMXmhXMEhnVyRZJCZVZURMczM7cj94bSFFZTBgMHg7
YHZuUUdvRjdXM0MjZSlDQEFPSGFmS21ZO3wKemZCKnlfMDA5VTwtfiRMNDtzcmtUPGt3I00jPj53
P0sxSUJNcSZwdkxTRDFGWmZYUjc7O3N4aiU3Nj9FOTB1WD16CnoxUnd3YjJ0V1Y9NVAtbDM1Wkc/
QXhrYCh+UUFjPjdIPyVqPVZlaXdlT05rISt1MiRjc0Y2eEpHWlQ0PX5JYDtXfgp6dG9KXkJNP2Rl
emNoQX4qMGFuTUN3ME1EPHNINkk7Wns2ejVYM3NAQD0pbmhnUiZYYztBT0hhZkttWTt8ZkIqeV8K
ejAwOVU8MDBJfWRmRldNczxtY3t4WDdrc0BqdyN7PV56aXwjVHx4aSZqT0dgUjkweiY0MFI2eE0w
U0dfPDB1WD16CnoxUnd3YjJ0ZVJjN1pfVjNRSjs2SWMlWCg0VkFwcWM+KHxZT3EzcnJDWUZVX2Rr
bjJYMFBjbzh5PTd6cVg7ZHBzbgp6IVEkUWJuT3UoPkBkNlhoU3VvWjcwPDJETio1VT4zYHE1WFB1
NSowVWl1bmFEXl5ZVDVLTGo4RTBTR188MHVYPXoKejFSd3diMndXbHBoSW9PYWhtUk5VZVdtenNy
aWQ0Pz14bGhxZzZ7RGQjUzU0bjwleEkhVEVQTVYydFdWPTVQJCMjCnpBT0hhZks7UXh3KmstbzZt
WTBnZEBtX2h8Km1kNCV1a1gzSEI+TUVAcXVCTFpfJk9XUHUxezNVWGRaZXU7c3lBVwp6e0Q+RXI7
cmtKPUk9KTRWN2tLeWNjZGFoRl4ke0U5N3I0TWJqOEhyWEttWTt8ZkIqeV8wMDlVPDAwSXp6en1Y
UW4KeiMweGFzSXE+d184QDg1QjVpZWxYb3Rte1BPblpJLU9VQG4xY21aMCkwcyNtPjAwSXp6MDBi
WmEwU0d7VjM1P0ZRCnoqaiRTamk9I3Qpb1BBP3xCJCR7ZFVia3ZCakkhNWxGeClpMEojdTN2Y2Ew
Q3lEWjFNSUBqSiYpSTQwa1hjITR2Vgp6RHF2NWJlPmZDWlpFRXhUOCM/SmUwTF9pLXk8NX0/aztf
JVkzKFJvNTBJVEMkd1JuTzFmMFh9JlhEaGNwaTFgS1oKelZHSUVYS21ZO3xmQip5XzAwOVU8MDBJ
IVdCbUBsYzB6Y21PeHFGWk4mJEVeKDtzcz0jM35OYElVYzVsZ0tfU2ImCnpPQlhMLS08N2pEciZP
MFdSdmBjWjJ0V1Y9NVAkIyNBVFprbU1yKjcjUzRvTERSK3NEdFp3ZEVAaEZFN2VVJExGbQp6MmhO
ayN2ZHNGayl4QHBZWTRDYmVUV2dFbypWTClEQEZDbE1iZWgoez9uS3deZ25oTFdXI0lOP1N6WD18
UTMkZyEKel4rUHhHaGh3NGN6O0c8V0E5cDlxLSg4dHBsfDhvMTQpRylwJCllfCplSVpAfF9hbz91
YjtLZ2s1Ymo1aUwzfjkjCnpDfVlBbWItNm0je1JuTEFPe2N7Ui0xcjZtcnl1JiZlZVdQJWZUPmBD
MDBiWmEwU0dfPDB1WD16MVJ3d2IyK1ZvYAp6LVdhRX4zKmBHQkp+OEB0VXdqSmw0JGtgTDlUeH16
MnRXVj01UCQjI0FPSGFmS21ZO3xVOz1EUmZVTEMoLTErNmoKejE8UEsxKFR7Y2t5ZmAyTDBTR188
MHVYPXoxUnd3YjJ0V1Y9bXhPPn1ldTNQKFBmOXpFMWdARTRlZ1Y1cWhLKW0qCnpfV1QwYioqQmp5
emQtaVFfSHRlUlNjTCF0QU9IYWZLbVk7fG5CQFlhNnwmOD5iZzRMJiN8UFpnUk9RVjlTXz0kPwp6
ZDtAKXZsIXdgZCFTXld9YDM+TndtYCo8Mz09cFo8TXQ/KC13X01mRG9JY0A1VTNYbyEpd09CcU04
b1Y7aXEhMiUKek53OHluZml6UFJWMTl2VT8rfTBheTJzVz9IZGtxPmNtVlNZVjE5d2pAODlyJj1O
STZpMGIwRGtVbVUydD9XKT9WCnotQHlDPXY7M0RZRSlOMF9mQip5XzAwOVU8MDBJenowMGJacTdo
cnc9Y0NCNkQrMUs7S194PTRsMGdOTlMlTDQpcwp6ZkIqeV8wMDlVPDAwSXp6MDBiYSNOZUNGbTVt
O1ptUmJCNlI+eTliTDVqYkArWX5JM1lrMFdxbzlaRVpuQW5RPGUKem8mMjhlRUxlcEExUnd3YjJ0
V1Y9O3tzekY/TDYlS3o7IShBeWUrc2hsISFORlZkcDZpYXx+aFVESTMrWWFJZmxYCno/ZXdubXd5
UFc0ZUgkOXV4MldzQVRoc3wtJGtQUigkTHwzKkYjWT8jbTgtaSNCTzMjOz4oeGVvVGpSdGhGSVUt
Mwp6O2R9ITwkdWR0XiZUQDVrVjZUdGVQUmBkbl8xXjl9JDdHVDVEUWV4N0RHQVFIb0hJR3hsWEFF
Tjt8T3F7TFgwRTgKekkwRUJNSDYhRG4+JHAkaE94JmsxaHk5QXg7c3QoUlR6fkpiWndAWlFJRCt2
JUpnXjE8MnRXVj01UCQjI0FPSGFmCnpLbVk7fG44Z0NUMnwjTlhEQkt1KnVWJnY5V3tlfTQjbV9o
ezRGVjg9MDBiWmEwU0dfPDB1WD16MVJ5WGp6e1VoUAp6d1JWQSk1QzhLMnh9MEIocUZyRGQyeH0w
NDAwYlphMFNHXzwwdVg9ejFSd3hgU3U5fGZVJT52V0VwYDZxZXBOQlcKemB+ciYzTCNGajwmb0FK
IyNVYDB3ZkhxPSowMGJaYTBTTEA7Znc1fColfmV1anhGSHE0R2FEWmxQR2pYMiF7R1MlCnphQiln
RDQyeiMraDxPRz4tcGZfcEZ3UlZkcUd2dTlLME1TbDVXWm5KSDErVXk4Vm88Jjl9OWEyViRxU1Ff
alk0YAp6ZnZKJSZ6cmNqPWkqIT4mOzY4PT12RUF1fSpkIVdtUG5PbD9FdCUqQmpnOUAwQWZHNnF5
RTNeZGR1Kjg8ZzgybjcKenprdlFWWCF5bTFgMn1XVGVnUmc7U0cwSjY1M1NxJHZ3NHJhZG5ASl9u
QnsrajtfQEg+MFNHXzwwdVg9ejFSd3diCnoydFdWPWFSRWNUej1sdEclNUoqKGgzQlY7N3MlNyR1
XnxXM2p1KihhLVpXe3ZmYn1MQHQ/cGJ7ZyNaS34wRClPNgp6Rm5ZQ09iMWhqU2pAOXQjPD0yTnMp
YGJRXyhMZ0tgOVdwJH5IVDBldkhtUE4yKnpLTEpPRHglRypmU2lCaDZaQUUKemhOKE1kLUw8KF4q
TT1uJV5gUkxgKzNoaHIldE8zRHJ5OEhrQU1wYVhBSGg7X0VSVE56Xz9qRD0xR0UreDNpMFJ9Cno8
SEt5anIkRVpTWVN9SiYoe18ze2NUUmopaGVfWjFkamtDdztXQnYhP3otJkJab2lPSHE7NX0yZl89
MmMlRU5AbAp6PmlGZCpgX197eUhwMysqbGh2e3lefmlVJWA9PTtoeChrZkkmSEJScXExTmYmSHZ7
bmt7TnV7SyYxYGlvRkJPTncKekB3aEkhPXx7WG5kbmdnbkhKKUhlSmQ/aUdYNzZUfFpgU1hzd3pW
MShgT0RXbXdubm5LTj1wcjRXY3M1TD50QDVOCnpNNHZhc2xWeTQqNTx8Q3EjXz9rRDdocUdILWB+
KmImQTJPQHpwRkFvTmNTNShlI015LSYlTkQ1YzE3Wi1nQT00LQp6bE0teFF0LWVpTlJDeFooPT1X
biFPNSQ8S3BBfGUtJk9PPjgrRlY2TjtAQjx4P1ZIIyZAeHg/elFxcEhMXiZiYGQKek1BSmlfRmlm
Z2tqZlEkNihPI1hSP2haVXxgdHZmRXtmVmk/M3B+MHBecT05WT9ydWlCel53aGw4eTV4djJ0V1Y9
Cno1UCQjI0FPSGFmS21ZO3wmPG43PnwyKFotcHgqcHZ6eHw8ZXRSMz9YPldRIXAwU0dfPDB1WD16
MVJ3d2IydFdWPQp6NVNYPEJ5YV87UzdaXz1KSWBhTygteGppWDBafTw3KDA/b3RmQip5XzAwOVU8
MDBJenowMGJaYTBTSHxEMCZfJVoKenNqP3Z5My1yPXh0IXFRa3A+U2x0THppV3p1VmxReWAqVTc5
eTVePFpVdTJDMXFIPGlJfDV6WFowU0dfPDB1WD16CnoxUnd3YjJ0V1Y9NVNSQERgTztFM3JEMT9C
JU1kVHslPG0yO2AmUkMzVmV0WWM8QCojYks7TilIMDBJenowMGJaYQp6MFNHXzwwdVg9ejFSIXcx
M1k0MHAocHFpR1J5TXpBRnduRT4jejNeVXlDPEBIRmMxcHwhfk5tZE5KakFqfDk8b1AKejJhZjta
Zm9vVn1mbDJ3ZnAhXiZXMH5oUVFrQWd0fTB1WD16MVJ3d2IydFdWPTVQJCMjQ0sxUyROPTFFaGZo
bUp7CnpmIzh1bEtsMF5RLW5wRWAzck5hP0pZSWwpVjFXUHhBT0hhZkttWTt8ZkIqeV8wMDlVPDtR
Un5CayFYJHB0KilQIwp6QlZmaFpqMkhOK3dCRUF4O3sjdHxAZEE9Xmd2QVJTTEJ6b01mOHRSQjJ0
V1Y9NVAkIyNBT0hhZkttWTt8ZldUd3wKemJFS3VvKm5tV1BmaSNfWGZmdSQ3WjllaHJ7ZVF7ZzE8
Y0NkQ2dLSFgxcSVjcTAwOVU8MDBJenowMGJaYTBTR188CnoweThJMlYzc1BCNFN+SUYhSlZPPVNW
dEBwNGYmY3E9Ujk3WmBtKkVnY1lmb0VNaXd0JVJ1MEdHMXI4JShWQ0o1OQp6b0N5TERmQip5XzAw
OVU8MDBJenowMGJafnNYJjJMQSpNRE1uOW8rY0soRHgyZXphKXFfWWZ+ST4yclhNNVAkIyMKekFP
SGFmS21ZO3xmQip5XzBEKkhXa2FAZy09TDYwIWtpI3d7WFp4bXlBQ2daI2BvektTI0djLUV3SWU/
N1Yyei1CCnpTR2gmMElrJVVKKyN2dH4ydFdWPTVQJCMjQU9IYWZLbVk8NG5MeDgtNi14SFZTK1NB
OSg2eGQ3O1pTZ31LUmdzJAp6dkVxNXIpWDVUYWcpRG4re0d2b0xhZEFAME1kc0k9dGImVmoqKSMx
Til7MGk0YThETDUkRnp6LU1QZnw9PEx2X0cKekJhYV9oeyRfRH0tb1g9c0B+LWw+YXc0VlJjbkFS
cUttWTt8ZkIqeV8wMDlVPDAwSXp6eihweHdrd2o2Riptc2pqCnpsNE99SyFwU1p+aXg9cDRkcl9V
RyYwWmFFN2tFaWYtY2Vwc2VzQHRgRGhkcSYydFdWPTVQJCMjQU9IYWZLbVk7fAp6eGEwKktRaSsl
aFlMSH5mQ0d5fHxsVDlqPVN2bXBudW0tSk47TUxkdTxGRF4pelY0eTtJRCQ2PjwmXlQ0XjJSMDQK
ejJtbEJgMDBJenowMGJaYTBTR188MHVYP31ZIUVPQGw5KGwjUDR1MDxCc3EmTkR2eTA+P0UtSlR8
TkVhantlezgqCnohWj9FMkBPMHhFQU9IYWZLbVk7fGZCKnlfMDA5VTwwMEtzVkd+KT5QXmFvbklL
LVBgbGRpVHtFS2F8ejYkc2RrfAp6KVZAZWBjT2ElI1FCWi0mQi1FPWE8en1MPFZxTEVNbVdIfj0r
SD94S3F8O1ZTIW1ge2BqK30hK3VKdEJDeHlwSU8KemFuTW5vYkJCRmImZ1B1Yj8zP1o3UyU8Umc8
bzllYj5ySi1XKH5kPzAxUnd3YjIrVHIoKFdAMWtZc25JRXRSQHgrCnpfSmBKb00lSU19TGVUKS1z
ZHZjbUFoKVVBK3RCRyVJfnlBUFVlJk5rRXNOLUhAMm1QK0pINnw/P1BfYVZyYHA9KAp6X3A1RUtZ
RXhUbGl7SURPc2tTdXV7QXlSTFomUjFva2x5YXk9eD1FOW1hOUYoKFAoSE9Nclc4aEJYQDFDKXdO
LVgKekQxLS1rTHdrcEE9JT9TSi1HU2opZ2dAPiFsKE80bmMkaGE8P1g8WntPMmg7NEVCQ1ArZDtA
KXY8Y2VhcjskKlR+Cno3VmUkOFdhYThXVjBURkVebG0xRGk1JHcrR2xWTndjWkVoYTI0ZEglanND
WEEkdWJUUGJxJDFYNyFHQXAoJXItVAp6djlOYV83Ul5MX1lAXi1nVERudmBhMjxjYT14Xip5Y3F0
RWE0MV81ZzRVaWsjZUgkOXV4MldzQVRQRDcmYmd2dXMKemRkZGlVOyk2M2FXaUtxPkt1PD1iMGVV
VTU3Z1kxcWQlTm8jUkBiSmI2VE9JMilWZUVFNX1iODhYTDdoRjwjNU1uCnpoMExHT3V7ezJTYGtF
Vj8xR0UreDNoe1M/QG5OPiUyfkY4b0VoRVYoVWg/VWxoMiZlRzJpSCFLZng5a3l2ZGN7PQp6UW54
MjEhOUg0SjwhfTQzSSkxczB7Z0dmeHhJWitNVChLRTBGYDJCRTEhPm89Y0s7T1JPTHV8cypKdk18
cmdpRU0KemdeNG43ZCRPITlaXj1ZMmxWbX09RTBlM1QkQ2xZNHA1ITV7PnltdjVxak4xYipXJChF
PXVwekJKPTdENF9Id0RqCnpzYFdJaCMwSkIhZyFhZ2RRQDt6ISl5I2F8K3NzemlAPXxkKTlSSStr
SChCREdpQklWOTFXVGZIelNkXiVXfGVRJgp6QDUrQXQ9bzkoTipGQ21JdmJqbzI0Wmp4ak08diRI
aEFUSF82VkNMVktmVFpZX3pTUzkmRl5Rd2tMbVMyPjFTclMKenMoVip1ZW8kb21IK3VZdkd4e1hr
WlgmeFBhbiEqSCh5JlBodyF8TCpAbj1UQUFBMz5+an01T09Vby0jUj1OfDE0CnpaTFhwc2FxSmZV
dlB8cm5fK2NfVURlMUd4PGR2Qkc3fFl4JWp5JWI0YFkzPCU9b0VGb0AhYSUmV0EqJnhgfnQ1cAp6
PT0jJjEtI29MJExUUkZNaWZ0O1V1Pl5VaFZOOyY/eTctdVFrMm9TO0U3cG9PO2l6eiV1I04zLSMh
Rj9jTVEqNFIKemd6YzxKITZ5c3xGfks5TzUqbWFre1I7PnFmfGIoZW56ZWlqKi1FYClrKy1wOVNh
P0kxNWF2ZyU3TWdeOUklMm1sCnpEMT9PRylFdHIlSkBPblhvd35EKj1hNnoldUU5Pm9rNkdjYyRh
VTxqWSRBcXVObXIreUNEeyhiazB7RXEkZllWQgp6IUFgemAkfk1UYT1KSnlGWDwyQmVqcGQxcjlh
UThQLT8rZUxWVyhCdUU+fm4qV1kza2Yzb35kSGhVd2Fadn0yVS0Kem19cmhFdDFwJm11ZXBpNkl3
K2VjN3VtdTBEcTVPbGstZS04Y0ZKUz9gV2gqPktLaUhTUj4oX1VZTk0+bTU/UXM9Cnojdk91Sipx
YlBKSzRxfX5KdH4kRXZ8NDVOREJGKWNGTzk/PXBAT2tPRCU1YlpwTThYYFZjKV83dX4yaiUoNyRI
Kwp6XjVyWTVKZjc7RnNfS2dCVWA/b15JIzlFK1ZzI313NER7OTEqNEZrMGYtOEUrUkBrcFNQaCpi
XlQ1TkxOZmo1YFkKelkyeEMkTnBKQGhzK29TcT0hPjF1Ki1QS3BTTit9ZTRHUlB5MDA5VTwwMEl6
ejAwYlphZndMPSt6dGhhPktkVGU8CnpwQkFjYV47NU5rUlklelV7UHNeKzJkYipBPjxpWlBkTVp9
ZCk+MXtOeEBUMkl1eVNSdnFOPXdxUGB6VCtzO2E3Qgp6NnxaMn5EM2B1U1dMYSEpT3FERk1gXnY8
cjt4KFc2c3FEaHp7d0U4NUleMC1jcURtVnAzQGJuelJtNjV1VlJ7blAKek5mUn1yP0hgT3IyMUMp
PGg/IUw/U0JNdDVxTEZySSkleClZQXY7KnFEIWV2VTh8M3YrS2AzSCMzLURUKjdCQXJMCnp6M1lr
fUVWPXktUiUwKTg5MlMmZyUzNVdGP3BBb25AZXt7azx1bEgxPUt8KyomU1EkQTk5MDYmS1BnTGBi
JmdaYwp6MmJ9eHAwNHh4STAwYlphMFNHXzwwdVg9ejFSeVhJMCpsU0VQWllNWllIQURid3FyZU10
QXVKQE1YKWdLSzI8YGMKelpsOGpNWDR5O211cyVodF90ZHpAb0QjRiNLem9lJD5LZURfcl4mKENA
MClqODQjd0BkNj1yIUdvZ3VTNlVgM2FrCnpSJF9oY3QjZzR7dUF8KTJfdzczSiV5S0RoOXEtNEAo
V1MmWVp8eUYjPzRmO0ZNT3hvaW8yXlVOX3MrXlhmJD9nJQp6ekYjJj1jY2l7RSk7N20xeVhqMVom
UjBZRVErckEreCtBcGEzYlFVdllnZHFUWFZrWU9tPHI1dGdgQz1DS29gbWAKekhXQEVhX2A+ekt0
I0xiIXZVdndoJTl4LSRMRW9ASTAwSXp6MDBiWmEwU0dfPDB1WD16MVIhdloxbk91NHo8dChmCnok
Nj9vcmJodFV+O2hCVW0mX3opSSErNSpFQGVoWHtlQzRqPzU2MFVDXzZvfHNEMHxQKmcoRilDS21Z
O3xmQip5Xwp6MDA5VTwwMEl6enokR2l0WHA7OExQZ3xTTVdLZWVIR0luVUFJOGgjJXY8UF4zOWBw
cThOajxjMjFrWVU3YHEqPkYKenVsZnYmNWl1I0I1UkBuQjh4e3lhMDBJenowMGJaYTBTR188MHVY
PXoxa1JtNm93UUchYnttMXxZSDZSR19VS0duCnoyazReTXUjNG40Zzc1I352I296UElRTFdXYzdi
RHBeMHNwOSsrOD93aDUhVTAwMDlVPDAwSXp6MDBiWmEwU0dgfgp6aDZKKnVgQz5mS3okOG9hPHom
MTdue3ooZEVAMXk9dG1TdDVxcmF4NElXdHIpb0NYM0FmQip5XzAwOVU8MDBJenoKejAwYlphZiU3
Tjg+O0t2fmc1M0hDeklld1VLZT81UFEqaSFAZ2ZsfGAwdVg9ejFSd3diMnRXVj01UCQjI0FUVUQk
Cnp5I0JBWDNwYGRae0tFZypUflJ1QjtTOE4wci0xK2pBT0hhZkttWTt8ZkIqeV8wMDlVPDtRUl5q
YG9HcExQISMkOAp6ej8tanI/O29mKmJJKUlxYUFwV1YwMEl6ejAwYlphMFNHXzwwdVg9ejFaR0hw
Klo7TTQwb1BPMy0rdWskJWc1OzQKenR7Rk4lUDZHaTVLbVk7fGZCKnlfMDA5VTwwMEl6eiExKXY0
Xj8kOGg7TFU+Ny0rOGBHeHJ2SDFAQjlAQlhOQ1gtCnpBT0hhZkttWTt8ZkIqeV8wMDlVPFYxQCpF
e2E8U3JjPFJ2NF9TbWwzIXxxV3FlfT5NRig/OT9NNVAkIyNBT0hhZgp6S21ZO3xmQip5X2FRKn4l
e2E8U3JJUWl8P3pwQjE8O301QWdten0+TjttaTwjMDBiWmEwU0dfPDB1WD16MVJ3d2IKejIrV1dH
dW01WjkwdDtXWmVlJmZNYHhlZDZ4cDVpQEttWTt8ZkIqeV8wMDlVPDAwSXp6MDBocGpLb0w4PSkt
S1NvCnohdjJlVUxpUnM4Q0Bvam1DTWZAXitAc3YwPGU3I3xkRSlFaFc4eXZIaDxMNDdFODJ2ayFm
bXZ9YmU3Nm9pYC1CdAp6Mi1+eWlYckN9MyF+fkQ5TkB4KEdeZS1UYzJ2JG07WXUyKm5IJXpFa0Vi
PXlYT2RjaDczMU5RSllOMUshcnozVT8KemdGO0I/UDBjfHY8V1Q5PG9wbjVpbChVKSkkRTxLejxU
YGQlblVkb3JVN2RPcyhRcmdqanp1bjI9P0hmNjRPRiY0CnplbD9ldXlpZHpRSjhkamFaMHcqUyRO
MHR0SFZacWclNjdSVCthaTBlcStPVW50MXdMMDdOaX1jZTgqeCtxb3U2QQp6U2Y7JmIhYnJZWDJX
MW9HQjBLbkFNTjZ8UnZSOT84Y0dgTFRgV2gqPktLaUhTUj4oX1VZTk0+bTU/UXM9I3ZPdUoKeipx
Yk9lOCY5KFRKdH4kRXZ8NDVOREJGKWNGTzk/PXBAT2tPRHomc3Z1czslOSFAaCtGVnhqMGpwbnVL
czw7eiFBCnpjfDZyVVJuLTtNIUoxRy1iKWFUdCNwKzZXODBmMzF0Knp9MTFYdUtzdCp+RXZwMmkq
LXdBa2RqMTgqKikpNU9KaAp6bGkmXzJSNVNnSShIQT9SdnpOWkh1bGw+YDh4e3lhMDBJenowMGJa
YTBTR188MCV1bnNmMld6JWVed3t6S1BePDwKej5aZlc2dEImTioqWnY5WEt2bEpzZVppVnVQc1Bn
R1RCLTxEX3BHVzJSO348SVJRMmArcyNtTzlSYUYoTjt1UzAjCno8PGJ8NEVRe0Bwc2dneEBVenM+
bnl5Zz0+bTBmdDt8NzV7V2haYCRRUkIyO3tWRmhUVGlyN3ZuT2khWFpZMDlGawp6MkJWUnxQJjc3
VFd8aGhucUQ4Sn5xfT9zRmAqPytyOVZ9YFVVS15fb0BfSHljZzRTN092c2h+dkZzLWlxXld3bm0K
eipSeXMzaX1RcV97ODBJdnZSeF5vUlYpeUkwMGJaYTBTR188MHVYPXoxUnd4YGkoWCg9cCspd3c0
cSNUeFp7ZlkzCnp0UnIlalBAUGhicDNDfHhgTkYlYVJ+NGledTFjcyhKJnIydHk1cCtuUH1lT3hB
TTNpK0k7cW5mTVhkJDhxYmw9dAp6VUVBPyk+TkxsJj5PTm4xMzlJd2NvR0RFPUpabXgtS1pAM1Ba
PmBvWUBOWD9nenc/blY8ITdePXsxUyZPRDk0bncKeiU4MnFePCZmaGlqPkYxbG9aWmReJmdZIVI2
aCUzejFlfHxUbU5AR2lyPEBOc19jYHUkK34oTnRoJlZweCp4PE9ACnp2RDklSDlnWVA4NVAkIyNB
T0hhZkttWTt8ZldYQmdrWlRxZlFsRnxDRll5KWlDQn1xQl5fTHFIKWNPVStneVE7UQp6VzVUQHBC
NGF7OXtiazA0LTFfOyhnc2wyYCNzczA+V2xUNytjSjUtYz49UCVpKmNQVlUkNV4jMlNaSjJMbCtW
TiEKeik7VDMreHE8Yz1rTT1nXmtlPzw4Vj97TFl2PmM0dmIxVGc5SGFiSVF2RWhtP0g/NH1Ua0xx
P1ZGdzFxNlRsJCE5CnpOMWo8T3JMRSlmLThzNkhjdT0/OVd0S2coNTM2ek9XNE48Kj5INFRgU3Rs
XndKK0ZffiZlOSNKNTdNXkhHMFNjYAp6bE9aVkVRMnh7aVlLIWcmRXNWamVPVmk+RkI7NlZINWVC
OUx2c0B2a2g3ITwpPUNZVCgpLUpIRkByX15QZURoMEwKejQmXk9EUWVHMzNRXzM2azB9QktvMDA5
VTwwMEl6ejAwYlphMFNHXzwwdkVBPiNVWThKRGNkWWJWaXMhfHZDMVklCnpsdz1tJXojMyhlP0Ur
dFlffnFqcGRxVCVwVGFjdkNJRCZWVHg5SkJLMnRXVj01UCQjI0FPSGFmS21ZO3xmQip6JAp6ZnE7
ZFkyUEJEb0gjc0NwV315e15gMzJUfWJuQ0E5Y1lvXjxIb3QpNF8/PlFrMHEyWCg/Plg7dGUlM2tT
M185MDQKeiViZ2I1ajBGTV5mQip5XzAwOVU8MDBJenowMGJeN2Z4OzR0eE54cVo4IW97aj1KUUd+
cntxPVIkJjJiKWF4TStRCnotK3hXMHpkdXJiVF9vRHl5S3VuKitVPzVtLUJpOUM+c2g4e1poY3t+
RzRvPStTdVFMeENlUCFeUyVzR3dsTThzVgp6dCNIMEVJaFE5fT1nKl8kJWcwWmgjZ2k+O3RiQyEl
YyFhPD1uRzVGe2xUV049KkNiKG5meXc2PSohdWFFRlVAPUEKemxfQj01RjNOZX4xSXtteV5HP3BJ
bG5FOUhLbVk7fGZCKnlfMDA5VTwwMEp7RXp7bGlFK0dHSileXjElTkxqNkt4CnohaWx4MmFUcWA1
N29mWXZWU1dNYTkmd2s+YH5vWD5aaGgqJXxFY3FrTHdRNCtVKkkrNjxjejw4YVk2X3swMEl6egp6
MDBiWmEwU0dfPDB1WD16MWtSI0JWdHhWMihVTjchPCUwPiomTSl4cyYpJX4yYHVtNStGdSVaQSM3
OTtUZkIqeV8KejAwOVU8MDBJenowMGJaYWZlUz17Jm83V1dAJSNjR1FAYCF9XzI9emhWZTw+KkpI
OXI+YH5yMEUhcENWUkVEKFNJCnoxUnd3YjJ0V1Y9NVAkIyNBYUwjbDNLI001XjE4dGhZYGxDPztY
LTNfZTAyVCVMZS1jWUE2LThXXjl4e3AwcHQ3dgpGe3xgbmg0OSktbQoKbGl0ZXJhbCAwCkhjbVY/
ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5odG1s
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCU3RydWN0
dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5UmVhZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmNDc2
MTliNWY2NTM0MWUyNTlhZDQyYWVkNDc5MzVmZGVkOGI4MGMKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVk
Q2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlSZWFkLmh0bWwKQEAgLTAsMCArMSw5OSBAQAorPHNj
cmlwdD4KKyAgICBmdW5jdGlvbiBsb2cobXNnKQorICAgIHsKKy8vICAgICAgICBhbGVydChtc2cp
OworICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0
TWVzc2FnZShtc2cpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNob3VsZEJlVHlwZShfYSwgX3R5
cGUpCisgICAgeworICAgICAgICB2YXIgZXhjZXB0aW9uOworICAgICAgICB2YXIgX2F2OworICAg
ICAgICB0cnkgeworICAgICAgICAgICAgX2F2ID0gZXZhbChfYSk7CisgICAgICAgIH0gY2F0Y2gg
KGUpIHsKKyAgICAgICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgICAgIH0KKworICAgICAgICB2
YXIgX3R5cGV2ID0gZXZhbChfdHlwZSk7CisgICAgICAgIGlmIChfYXYgaW5zdGFuY2VvZiBfdHlw
ZXYpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVmFsdWVzIHRo
YXQgYXJlIHVzZWQgdG8gaW5mZXIgdGhlIHR5cGUgb2YgYSBnaXZlbiBwcmltaXRpdmUgdHlwZS4K
KyAgICB2YXIgdGVzdFZhbHVlcyA9IFsKKyAgICAgICAgdW5kZWZpbmVkLAorICAgICAgICBudWxs
LAorICAgICAgICA1LCAvLyBJbnQKKyAgICAgICAgMCwKKyAgICAgICAgMSwKKyAgICAgICAgZmFs
c2UsCisgICAgICAgIHRydWUsCisgICAgICAgIDUuNSwgLy8gRG91YmxlCisgICAgICAgICJIZWxs
byxXb3JsZCEiLAorICAgICAgICAiIgorICAgIF07CisKKyAgICAvLyBWYWx1ZXMgdGhhdCBhcmUg
dXNlZCB0byBpbmZlciB0aGUgdHlwZSBvZiBhIGdpdmVuIEJvb2xlYW4vU3RyaW5nIHR5cGUuCisg
ICAgdmFyIHRlc3RUeXBlVmFsdWVzID0gWworICAgICAgICB7IGl0ZW06IG5ldyBCb29sZWFuKHRy
dWUpLCB0eXBlOiAiQm9vbGVhbiIsIHZhbHVlOiB0cnVlIH0sCisgICAgICAgIHsgaXRlbTogbmV3
IEJvb2xlYW4oZmFsc2UpLCB0eXBlOiAiQm9vbGVhbiIsIHZhbHVlOiBmYWxzZSB9LAorICAgICAg
ICB7IGl0ZW06IG5ldyBTdHJpbmcoKSwgdHlwZTogIlN0cmluZyIsIHZhbHVlOiAiIiB9CisgICAg
XTsKKworICAgIHZhciBvcGVuUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKCJiYWNrd2FyZF9jb21w
YXRpYmlsaXR5Iik7CisgICAgb3BlblJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgIGxvZygiRXJyb3I6ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7CisgICAg
fQorICAgIG9wZW5SZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAg
IGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgcmVhZFR5cGUoKTsKKyAgICB9CisK
KyAgICB2YXIgcmVzdWx0ID0gdHJ1ZTsKKyAgICBmdW5jdGlvbiByZWFkVHlwZSgpCisgICAgewor
ICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigidHlwZSIpLm9iamVjdFN0
b3JlKCJ0eXBlIik7CisgICAgICAgIG9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQg
PSByZXN1bHQgJiYgc2hvdWxkQmVUeXBlKCJjdXJzb3IudmFsdWUiLCBjdXJzb3Iua2V5KTsKKyAg
ICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgIHJlYWRWYWx1ZSgpOworICAgICAgICB9OworICAgIH0KKworICAgIGZ1bmN0
aW9uIHJlYWRWYWx1ZSgpCisgICAgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFu
c2FjdGlvbigidmFsdWUiKS5vYmplY3RTdG9yZSgidmFsdWUiKTsKKyAgICAgICAgb2JqZWN0U3Rv
cmUub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAg
ICBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgaWYgKGN1cnNvcikg
eworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoY3Vyc29yLnZhbHVlID09PSB0
ZXN0VmFsdWVzW2N1cnNvci5rZXkgLSAxXSk7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRp
bnVlKCk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICByZWFkVHlwZVZhbHVl
KCk7CisgICAgICAgIH07CisgICAgfQorCisgICAgZnVuY3Rpb24gcmVhZFR5cGVWYWx1ZSgpCisg
ICAgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigidHlwZVZhbHVl
Iikub2JqZWN0U3RvcmUoInR5cGVWYWx1ZSIpOworICAgICAgICBvYmplY3RTdG9yZS5vcGVuQ3Vy
c29yKCkub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGN1cnNvciA9
IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBpZiAoY3Vyc29yKSB7CisgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHNob3VsZEJlVHlwZSgiY3Vyc29yLnZhbHVlIiwg
dGVzdFR5cGVWYWx1ZXNbY3Vyc29yLmtleSAtIDFdLnR5cGUpICYmIChjdXJzb3IudmFsdWUgPT0g
dGVzdFR5cGVWYWx1ZXNbY3Vyc29yLmtleSAtIDFdLnZhbHVlKTsKKyAgICAgICAgICAgICAgICBj
dXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
aWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJQYXNzIik7CisgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBsb2coIkZhaWwiKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfTsKKyAgICB9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3
YXJkQ29tcGF0aWJpbGl0eVdyaXRlLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlX
cml0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyNjZlY2M0ZWFhYjE5Y2ZhNWZlMTliN2FiOTMzM2NhMzA0
MTUzNDcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHlXcml0
ZS5odG1sCkBAIC0wLDAgKzEsMTcxIEBACis8c2NyaXB0PgorICAgIGZ1bmN0aW9uIGxvZyhtc2cp
CisgICAgeworLy8gICAgICAgIGFsZXJ0KG1zZyk7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVz
c2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKG1zZyk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gc2hvdWxkQmVUeXBlKF9hLCBfdHlwZSkKKyAgICB7CisgICAgICAgIHZhciBleGNl
cHRpb247CisgICAgICAgIHZhciBfYXY7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBfYXYg
PSBldmFsKF9hKTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgZXhjZXB0aW9u
ID0gZTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBfdHlwZXYgPSBldmFsKF90eXBlKTsKKyAg
ICAgICAgaWYgKF9hdiBpbnN0YW5jZW9mIF90eXBldikgeworICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICAvLyBWYWx1ZXMgdGhhdCBhcmUgdXNlZCB0byBpbmZlciB0aGUgdHlw
ZSBvZiBhIGdpdmVuIHByaW1pdGl2ZSB0eXBlLgorICAgIHZhciB0ZXN0VmFsdWVzID0gWworICAg
ICAgICB1bmRlZmluZWQsCisgICAgICAgIG51bGwsCisgICAgICAgIDUsIC8vIEludAorICAgICAg
ICAwLAorICAgICAgICAxLAorICAgICAgICBmYWxzZSwKKyAgICAgICAgdHJ1ZSwKKyAgICAgICAg
NS41LCAvLyBEb3VibGUKKyAgICAgICAgIkhlbGxvLFdvcmxkISIsCisgICAgICAgICIiCisgICAg
XTsKKworICAgIC8vIFZhbHVlcyB0aGF0IGFyZSB1c2VkIHRvIGluZmVyIHRoZSB0eXBlIG9mIGEg
Z2l2ZW4gQm9vbGVhbi9TdHJpbmcgdHlwZS4KKyAgICB2YXIgdGVzdFR5cGVWYWx1ZXMgPSBbCisg
ICAgICAgIHsgaXRlbTogbmV3IEJvb2xlYW4odHJ1ZSksIHR5cGU6ICJCb29sZWFuIiwgdmFsdWU6
IHRydWUgfSwKKyAgICAgICAgeyBpdGVtOiBuZXcgQm9vbGVhbihmYWxzZSksIHR5cGU6ICJCb29s
ZWFuIiwgdmFsdWU6IGZhbHNlIH0sCisgICAgICAgIHsgaXRlbTogbmV3IFN0cmluZygpLCB0eXBl
OiAiU3RyaW5nIiwgdmFsdWU6ICIiIH0KKyAgICBdOworCisgICAgaW5kZXhlZERCLmRlbGV0ZURh
dGFiYXNlKCJiYWNrd2FyZF9jb21wYXRpYmlsaXR5Iik7CisgICAgdmFyIG9wZW5SZXF1ZXN0ID0g
aW5kZXhlZERCLm9wZW4oImJhY2t3YXJkX2NvbXBhdGliaWxpdHkiKTsKKyAgICBvcGVuUmVxdWVz
dC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAvLyBUaGlzIG9i
amVjdFN0b3JlIHN0b3JlcyBlbGVtZW50cyB0aGF0IHdlIG9ubHkgbmVlZCB0byBjaGVjayBpdHMg
dHlwZSB0byBkZXRlcm1pbmUgaXRzIHNlcmlhbGl6YXRpb24gdGFnLgorICAgICAgICB2YXIgb2Jq
ZWN0U3RvcmUgPSBldmVudC50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJ0eXBlIik7
CisgICAgICAgIC8vIFRoaXMgb2JqZWN0U3RvcmUgc3RvcmVzIGVsZW1lbnRzIHRoYXQgd2UgbmVl
ZCB0byBjaGVjayBpdHMgdmFsdWUgdG8gZGV0ZXJtaW5lIGl0cyBzZXJpYWxpemF0aW9uIHRhZy4K
KyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZXZlbnQudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmpl
Y3RTdG9yZSgidmFsdWUiLCB7IGF1dG9JbmNyZW1lbnQgOiB0cnVlIH0pOworICAgICAgICAvLyBU
aGlzIG9iamVjdFN0b3JlIHN0b3JlcyBlbGVtZW50cyB0aGF0IHdlIG5lZWQgdG8gY2hlY2sgYm90
aCBpdHMgdHlwZSBhbmQgaXRzIHZhbHVlIHRvIGRldGVybWluZSBpdHMgc2VyaWFsaXphdGlvbiB0
YWcuCisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQuY3JlYXRl
T2JqZWN0U3RvcmUoInR5cGVWYWx1ZSIsIHsgYXV0b0luY3JlbWVudCA6IHRydWUgfSk7CisgICAg
fQorICAgIG9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBs
b2coIkVycm9yOiAiICsgZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUpOworICAgIH0KKyAgICBvcGVu
UmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHN0b3JlVHlwZSgpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHN0b3JlVHlwZSgpCisgICAgeworICAgICAgICB2YXIgdHJhbnNhY3Rpb24gPSBkYi50cmFu
c2FjdGlvbigidHlwZSIsICJyZWFkd3JpdGUiKTsKKyAgICAgICAgdHJhbnNhY3Rpb24ub25lcnJv
ciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBsb2coIkVycm9yOiAiICsgZXZlbnQu
dGFyZ2V0LmVycm9yLm5hbWUpOworICAgICAgICB9CisgICAgICAgIHRyYW5zYWN0aW9uLm9uY29t
cGxldGUgPSBmdW5jdGlvbihldmVudCkgeyBzdG9yZVZhbHVlKCk7IH0KKworICAgICAgICB2YXIg
b2JqZWN0U3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgidHlwZSIpOworICAgICAgICAv
LyBUaGUga2V5IG9mIGFuIGl0ZW0gaXMgdGhlIHR5cGUgb2YgaXRzIHZhbHVlLCBoZW5jZSB3ZSBj
b3VsZCBkZXRlcm1pbmUgdHlwZSBtaXNtYXRjaCwgaS5lLiBzZXJpYWxpemF0aW9uIHRhZyByZW9y
ZGVyCisgICAgICAgIC8vIHNpbXBseSBieSB1c2luZyBhbiBpdGVtJ3Mga2V5IGFuZCB2YWx1ZS4K
KyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKFsxLCAyXSwgIkFycmF5Iik7CisgICAgICAgIG9iamVj
dFN0b3JlLmFkZCh7IHByb3BlcnR5OiBudWxsIH0sICJPYmplY3QiKTsKKyAgICAgICAgb2JqZWN0
U3RvcmUuYWRkKG5ldyBEYXRlKCksICJEYXRlIik7CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChu
ZXcgRmlsZShbImZvbyJdLCAiZm9vLnR4dCIpLCAiRmlsZSIpOworICAgICAgICBvYmplY3RTdG9y
ZS5hZGQobmV3IEltYWdlRGF0YSgxMDAsIDEwMCksICJJbWFnZURhdGEiKTsKKyAgICAgICAgb2Jq
ZWN0U3RvcmUuYWRkKG5ldyBCbG9iKFsiZm9vIl0pLCAiQmxvYiIpOworICAgICAgICBvYmplY3RT
dG9yZS5hZGQobmV3IFJlZ0V4cCgnJyksICJSZWdFeHAiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUu
YWRkKG5ldyBBcnJheUJ1ZmZlcigxKSwgIkFycmF5QnVmZmVyIik7CisgICAgICAgIG9iamVjdFN0
b3JlLmFkZChuZXcgU3RyaW5nKCcnKSwgIlN0cmluZyIpOworICAgICAgICBvYmplY3RTdG9yZS5h
ZGQobmV3IE51bWJlcigxMiksICJOdW1iZXIiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5l
dyBTZXQoWzEsIDJdKSwgIlNldCIpOworICAgICAgICBvYmplY3RTdG9yZS5hZGQobmV3IE1hcCgp
LCAiTWFwIik7CisgICAgICAgIC8vIFR5cGVkIGFycmF5cworICAgICAgICBvYmplY3RTdG9yZS5h
ZGQobmV3IEludDhBcnJheSgpLCAiSW50OEFycmF5Iik7CisgICAgICAgIG9iamVjdFN0b3JlLmFk
ZChuZXcgVWludDhBcnJheSgpLCAiVWludDhBcnJheSIpOworICAgICAgICBvYmplY3RTdG9yZS5h
ZGQobmV3IFVpbnQ4Q2xhbXBlZEFycmF5KCksICJVaW50OENsYW1wZWRBcnJheSIpOworICAgICAg
ICBvYmplY3RTdG9yZS5hZGQobmV3IEludDE2QXJyYXkoKSwgIkludDE2QXJyYXkiKTsKKyAgICAg
ICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBVaW50MTZBcnJheSgpLCAiVWludDE2QXJyYXkiKTsKKyAg
ICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBJbnQzMkFycmF5KCksICJJbnQzMkFycmF5Iik7Cisg
ICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgVWludDMyQXJyYXkoKSwgIlVpbnQzMkFycmF5Iik7
CisgICAgICAgIG9iamVjdFN0b3JlLmFkZChuZXcgRmxvYXQzMkFycmF5KCksICJGbG9hdDMyQXJy
YXkiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUuYWRkKG5ldyBGbG9hdDY0QXJyYXkoKSwgIkZsb2F0
NjRBcnJheSIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0b3JlVmFsdWUoKQorICAgIHsKKyAg
ICAgICAgdmFyIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oInZhbHVlIiwgInJlYWR3cml0
ZSIpOworICAgICAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAg
ICAgICAgICAgIGxvZygiRXJyb3I6ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7CisgICAg
ICAgIH0KKyAgICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7
IHN0b3JlVHlwZVZhbHVlKCk7IH0KKworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSB0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgidmFsdWUiKTsKKyAgICAgICAgLy8gSGVyZSB3ZSBzdG9yZSB2YWx1
ZXMgaW4gdGhlIHRlc3QgbWF0cml4IGluIG9yZGVyIGFuZCByZWFkIHRoZW0gaW4gb3JkZXIgdG8g
c2VlIGlmIGFueSBtaXNtYXRjaCBoYXBwZW5zLgorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHRlc3RWYWx1ZXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmplY3RTdG9yZS5hZGQodGVz
dFZhbHVlc1tpXSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RvcmVUeXBlVmFsdWUoKQorICAg
IHsKKyAgICAgICAgdmFyIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oInR5cGVWYWx1ZSIs
ICJyZWFkd3JpdGUiKTsKKyAgICAgICAgdHJhbnNhY3Rpb24ub25lcnJvciA9IGZ1bmN0aW9uKGV2
ZW50KSB7CisgICAgICAgICAgICBsb2coIkVycm9yOiAiICsgZXZlbnQudGFyZ2V0LmVycm9yLm5h
bWUpOworICAgICAgICB9CisgICAgICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlv
bihldmVudCkgeyByZWFkVHlwZSgpOyB9CisKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gdHJh
bnNhY3Rpb24ub2JqZWN0U3RvcmUoInR5cGVWYWx1ZSIpOworICAgICAgICAvLyBIZXJlIHdlIHN0
b3JlIGl0ZW1zIGluIHRoZSB0ZXN0IG1hdHJpeCBpbiBvcmRlciBhbmQgcmVhZCB0aGVtIGluIG9y
ZGVyIHRvIHNlZSBpZiBhbnkgbWlzbWF0Y2hlcyBpdHMgdHlwZSBhbmQgdmFsdWUuCisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdFR5cGVWYWx1ZXMubGVuZ3RoOyBpKyspCisgICAgICAg
ICAgICBvYmplY3RTdG9yZS5hZGQodGVzdFR5cGVWYWx1ZXNbaV0uaXRlbSk7CisgICAgfQorCisg
ICAgdmFyIHJlc3VsdCA9IHRydWU7CisgICAgZnVuY3Rpb24gcmVhZFR5cGUoKQorICAgIHsKKyAg
ICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oInR5cGUiKS5vYmplY3RTdG9y
ZSgidHlwZSIpOworICAgICAgICBvYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0g
ZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1
bHQ7CisgICAgICAgICAgICBpZiAoY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0g
cmVzdWx0ICYmIHNob3VsZEJlVHlwZSgiY3Vyc29yLnZhbHVlIiwgY3Vyc29yLmtleSk7CisgICAg
ICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgICAgICByZWFkVmFsdWUoKTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biByZWFkVmFsdWUoKQorICAgIHsKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNh
Y3Rpb24oInZhbHVlIikub2JqZWN0U3RvcmUoInZhbHVlIik7CisgICAgICAgIG9iamVjdFN0b3Jl
Lm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAg
Y3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsK
KyAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgKGN1cnNvci52YWx1ZSA9PT0gdGVz
dFZhbHVlc1tjdXJzb3Iua2V5IC0gMV0pOworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51
ZSgpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcmVhZFR5cGVWYWx1ZSgp
OworICAgICAgICB9OworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlYWRUeXBlVmFsdWUoKQorICAg
IHsKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oInR5cGVWYWx1ZSIp
Lm9iamVjdFN0b3JlKCJ0eXBlVmFsdWUiKTsKKyAgICAgICAgb2JqZWN0U3RvcmUub3BlbkN1cnNv
cigpLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBjdXJzb3IgPSBl
dmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBzaG91bGRCZVR5cGUoImN1cnNvci52YWx1ZSIsIHRl
c3RUeXBlVmFsdWVzW2N1cnNvci5rZXkgLSAxXS50eXBlKSAmJiAoY3Vyc29yLnZhbHVlID09IHRl
c3RUeXBlVmFsdWVzW2N1cnNvci5rZXkgLSAxXS52YWx1ZSk7CisgICAgICAgICAgICAgICAgY3Vy
c29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlm
IChyZXN1bHQpCisgICAgICAgICAgICAgICAgICAgIGxvZygiUGFzcyIpOworICAgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJGYWlsIik7CisgICAgICAgICAgICB9
CisgICAgICAgIH07CisgICAgfQorPC9zY3JpcHQ+Cg==
</data>
<flag name="commit-queue"
          id="337499"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>