<?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>220855</bug_id>
          
          <creation_ts>2021-01-22 02:54:15 -0800</creation_ts>
          <short_desc>[WebIDL] `window.CSS` should be non-callable object with correct Symbol.toStringTag</short_desc>
          <delta_ts>2021-05-10 05:59:34 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philip Jägenstedt">philip</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>alecflett</cc>
    
    <cc>ashvayka</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joepeck</cc>
    
    <cc>jsbell</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1721540</commentid>
    <comment_count>0</comment_count>
    <who name="Philip Jägenstedt">philip</who>
    <bug_when>2021-01-22 02:54:15 -0800</bug_when>
    <thetext>Unlike interface objects, Web IDL namespace objects should be plain objects, not functions. Confirmed with the spec editors here:
https://github.com/heycam/webidl/issues/949

There are currently 3 namespace objects on the web: CSS, console and WebAssembly. CSS is currently a function in WebKit, and there&apos;s a failing idlharness.js test because of this, called &apos;CSS namespace: typeof is &quot;object&quot;&apos;:
https://wpt.fyi/results/css/cssom/idlharness.html?q=safari%3Afail&amp;run_id=5750044512747520&amp;run_id=5673650978029568&amp;run_id=5657341938630656

However, the same test for console is passing in all browsers:
https://wpt.fyi/results/console/idlharness.any.html?run_id=5750044512747520&amp;run_id=5673650978029568&amp;run_id=5657341938630656

I can&apos;t find the test for WebAssembly, but it&apos;s an object as it should be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723161</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-27 14:53:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/73681411&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744760</commentid>
    <comment_count>2</comment_count>
      <attachid>424542</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-03-29 10:21:41 -0700</bug_when>
    <thetext>Created attachment 424542
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744762</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-03-29 10:22:50 -0700</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744763</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-03-29 10:24:25 -0700</bug_when>
    <thetext>(In reply to Philip Jägenstedt from comment #0)

Thank you for raising the issue and creating the bug!

&gt; I can&apos;t find the test for WebAssembly, but it&apos;s an object as it should be.

It is covered by https://wpt.fyi/results/wasm/jsapi/idlharness.any.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744797</commentid>
    <comment_count>5</comment_count>
      <attachid>424542</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-03-29 11:23:24 -0700</bug_when>
    <thetext>Comment on attachment 424542
Patch

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

Awesome work. Please add a new bindings test for namespace and partial namespace, so we catch regressions quickly if they happen.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:316
&gt; +sub convertNamespaceToInterface

This could use a comment explaining why it exists.

Ideally, we would keep namespace objects as IDLNamespace all the way through generation, but I gather that would require a lot of refactoring for little gain at this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754738</commentid>
    <comment_count>6</comment_count>
      <attachid>427181</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-04-27 12:16:13 -0700</bug_when>
    <thetext>Created attachment 427181
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754739</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-04-27 12:16:37 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #5)
&gt; Comment on attachment 424542 [details]
&gt; Patch

I appreciate the review; thank you, Sam!

&gt; Ideally, we would keep namespace objects as IDLNamespace all the way through
&gt; generation, but I gather that would require a lot of refactoring for little
&gt; gain at this point.

Right, that would be an enormous change just for `window.CSS`.

(In reply to Alexey Shvayka from comment #6)
&gt; Created attachment 427181 [details]
&gt; Patch for landing

Added a comment and bindings test for namespace / partial namespace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754753</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-27 13:04:38 -0700</bug_when>
    <thetext>Committed r276656 (237083@main): &lt;https://commits.webkit.org/237083@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 427181.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757886</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-07 09:13:37 -0700</bug_when>
    <thetext>(In reply to Alexey Shvayka from comment #7)
&gt; (In reply to Sam Weinig from comment #5)
&gt; 
&gt; Right, that would be an enormous change just for `window.CSS`.

Do any other specs (e.g. ones that maybe we don&apos;t implement in WebKit) use &quot;namespace&quot; yet?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758475</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-05-10 05:59:34 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #9)
&gt; Do any other specs (e.g. ones that maybe we don&apos;t implement in WebKit) use &quot;namespace&quot; yet?

According to comment #0 and quick search in WPT &amp; CSSWG drafts: no (apart from `console` and `WebAssembly`, which aren&apos;t processed by code generator).
There are more specs with `partial namespace CSS` beyond CSS Houdini though (like https://github.com/w3c/csswg-drafts/blob/b4eb312fc9de41f31952d4a4d922f4c9b7cf51c9/css-images-4/Overview.bs#L1013).

To be certain, https://github.com/w3c/browser-specs could be scraped for all WebIDL definitions out there.

On a bright side, https://bugs.webkit.org/show_bug.cgi?id=158557 will remove 2 checks for namespace objects, and I have an idea how to simplify it further (remove more checks around GenerateConstructorHelperMethods).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424542</attachid>
            <date>2021-03-29 10:21:41 -0700</date>
            <delta_ts>2021-04-27 12:15:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220855-20210329202139.patch</filename>
            <type>text/plain</type>
            <size>152686</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDczIEBACisyMDIxLTAzLTI5ICBBbGV4ZXkg
U2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBbV2ViSURMXSBgd2lu
ZG93LkNTU2Agc2hvdWxkIGJlIG5vbi1jYWxsYWJsZSBvYmplY3Qgd2l0aCBjb3JyZWN0IFN5bWJv
bC50b1N0cmluZ1RhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIwODU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWx0aG91Z2ggYHdpbmRvdy5DU1NgIGlzIHRoZSBvbmx5IG5hbWVzcGFjZSBvYmplY3Qg
Y3VycmVudGx5IGhhbmRsZWQgYnkgY29kZSBnZW5lcmF0b3IsCisgICAgICAgIGl0J3MgYmVpbmcg
ZXh0ZW5kZWQgYnkgbXVsdGlwbGUgSG91ZGluaSBzcGVjcyBbMV0sIHNvIGtlZXBpbmcgaXQgZ2Vu
ZXJhdGVkIGlzIGltcG9ydGFudC4KKworICAgICAgICBUaGlzIHBhdGNoIGJyaW5ncyBzcGVjIGNv
bXBsaWFuY2UgWzJdIGFuZCB3ZWIgaW50ZXJvcCB3aGlsZSBzdHJpa2luZyBhIGJhbGFuY2UgYmV0
d2VlbgorICAgICAgICByZWR1Y2luZyBnZW5lcmF0ZWQgY29kZSwgYXZvaWRpbmcgaW5kaXJlY3Rp
b24gaW4gdGhlIGdlbmVyYXRvciwgYW5kIGEgc21hbGwgY29kZSBkaWZmLgorCisgICAgICAgIEZl
YXR1cmUtd2lzZSwgYSBuYW1lc3BhY2Ugb2JqZWN0IGlzIHN1YnNldCBvZiBhbiBpbnRlcmZhY2U7
IHNvIGluc3RlYWQgb2YgY3JlYXRpbmcgYQorICAgICAgICBzZXBhcmF0ZSBoYXJuZXNzIGZvciBp
dCwgbGlrZSBmb3IgY2FsbGJhY2sgaW50ZXJmYWNlcywgbmFtZXNwYWNlIG9iamVjdHMgYXJlIGNv
bnZlcnRlZAorICAgICAgICB0byBpbnRlcmZhY2VzIGJlZm9yZSBiZWluZyBoYW5kZWQgb3ZlciB0
byBjb2RlIGdlbmVyYXRvciwgd2l0aCBhIGZsYWcgb24uCisKKyAgICAgICAgV2hpbGUgd2UgY2Fu
IHJlZHVjZSB0aGUgZ2VuZXJhdGVkIGNvZGUgZXZlbiBmdXJ0aGVyLCBuYW1lbHkgYXJvdW5kIHN1
YnNwYWNlRm9ySW1wbCgpLAorICAgICAgICB0aGlzIGNoYW5nZSByYXRoZXIgYWxpZ25zIG5hbWVz
cGFjZSBvYmplY3RzIHdpdGggW0pTQnVpbHRpbl0gaW50ZXJmYWNlcyB0byBhdm9pZCBtYWtpbmcK
KyAgICAgICAgZ2VuZXJhdG9yIG1vcmUgY29tcGxpY2F0ZWQgYW5kIGludHJvZHVjaW5nIGFuIGlu
dGVyZmFjZSB3aXRoIGRpc3RpbmN0IHNldCBvZiBtZXRob2RzLgorCisgICAgICAgIFdlYi1mYWNp
bmcgY2hhbmdlcyBmb3IgYHdpbmRvdy5DU1NgIGFyZToKKworICAgICAgICAgIDEuIFJlbW92ZWQg
W1tDYWxsXV0gYW5kIFtbQ29uc3RydWN0XV0gbWV0aG9kcywgbWFraW5nIGB0eXBlb2YgQ1NTYCBy
ZXR1cm4gIm9iamVjdCIsCisgICAgICAgICAgICAgd2hpY2ggaXMgdXNlZCBmb3IgZmVhdHVyZSBk
ZXRlY3Rpb24gKHRodXMgaW1wb3J0YW50IGZvciB3ZWIgaW50ZXJvcCkuCisgICAgICAgICAgMi4g
UmVtb3ZlZCAibGVuZ3RoIiAvICJuYW1lIiAvICJwcm90b3R5cGUiIHByb3BlcnRpZXMuCisgICAg
ICAgICAgMy4gQ2hhbmdlZCBbW1Byb3RvdHlwZV1dIHZhbHVlIHRvICVPYmplY3QucHJvdG90eXBl
JS4KKyAgICAgICAgICA0LiBBZGRlZCBTeW1ib2wudG9TdHJpbmdUYWcgcHJvcGVydHkgd2l0aCBj
b3JyZWN0IGRlc2NyaXB0b3IuCisKKyAgICAgICAgQWxsIG9mIHRoZSBhYm92ZSB3ZXJlIHByb3Zl
biB3ZWItY29tcGF0aWJsZSBieSBCbGluayBhbmQgR2Vja28uCisKKyAgICAgICAgQWxzbywgdGhp
cyBwYXRjaCBsaW1pdHMgdGhlIHVzYWdlIG9mIE5lZWRzQ29uc3RydWN0b3JQcm9wZXJ0eSBvbmx5
IHRvCisgICAgICAgICVJbnRlcmZhY2UlLnByb3RvdHlwZS5jb25zdHJ1Y3RvciwgYXMgaXRzIG5h
bWUgc3VnZ2VzdHMuCisKKyAgICAgICAgWzFdIGh0dHBzOi8vaXNob3VkaW5pcmVhZHl5ZXQuY29t
CisgICAgICAgIFsyXSBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNuYW1lc3BhY2Ut
b2JqZWN0CisKKworICAgICAgICBUZXN0czogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20vaWRsaGFybmVzcy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS9DU1MtbmFtZXNwYWNlLW9iamVjdC1jbGFzcy1z
dHJpbmcuaHRtbAorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3JOb3RDYWxsYWJsZS5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NQ29uc3RydWN0b3JOb3RDYWxsYWJsZTo6c3Vi
c3BhY2VGb3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01Db25zdHJ1Y3Rvck5vdENhbGxhYmxl
OjpKU0RPTUNvbnN0cnVjdG9yTm90Q2FsbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01D
b25zdHJ1Y3Rvck5vdENhbGxhYmxlOjppbml0aWFsaXplUHJvcGVydGllcyk6CisgICAgICAgIChX
ZWJDb3JlOjpKU0RPTUNvbnN0cnVjdG9yTm90Q2FsbGFibGU8SlNDbGFzcz46OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RPTUNvbnN0cnVjdG9yTm90Q2FsbGFibGU8SlNDbGFzcz46OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUNvbnN0cnVjdG9yTm90Q2Fs
bGFibGU8SlNDbGFzcz46OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKE5lZWRzSW1wbGVtZW50YXRpb25DbGFz
cyk6CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlUHJvdG90eXBlRGVjbGFyYXRpb24pOgorICAgICAg
ICAoR2V0Q29uc3RydWN0b3JUZW1wbGF0ZUNsYXNzTmFtZSk6CisgICAgICAgIChHZW5lcmF0ZUNv
bnN0cnVjdG9ySGVscGVyTWV0aG9kcyk6CisgICAgICAgIChOZWVkc0NvbnN0cnVjdG9yUHJvcGVy
dHkpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtOgorICAgICAgICAoY29udmVydE5h
bWVzcGFjZVRvSW50ZXJmYWNlKToKKyAgICAgICAgKFBhcnNlKToKKyAgICAgICAgKHBhcnNlTmFt
ZXNwYWNlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbDoK
KyAgICAgICAgKGNvbnRhaW5zSW50ZXJmYWNlT3JDYWxsYmFja0ludGVyZmFjZUZyb21JREwpOgor
ICAgICAgICAoZ2V0SW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1dGVzRnJvbUlETCk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTLyo6IFVwZGF0ZWQuCisgICAgICAgICogY3NzL0RP
TUNTU05hbWVzcGFjZStDU1NQYWludGluZy5pZGw6CisgICAgICAgICogY3NzL0RPTUNTU05hbWVz
cGFjZStDU1NQcm9wZXJ0aWVzYW5kVmFsdWVzLmlkbDoKKyAgICAgICAgKiBjc3MvRE9NQ1NTTmFt
ZXNwYWNlLmlkbDoKKwogMjAyMS0wMy0yOCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgUmVtb3ZlIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgvSlNDdXN0b21YUGF0
aE5TUmVzb2x2ZXIuY3BwIGZyb20gdGhlIFhjb2RlIHByb2plY3QgYXMgdGhleSBkb24ndCBleGlz
dApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMjc1MTU5KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMTI3MCw2ICsxMTI3MCw3
IEBACiAJCTg0QzY3ODRCMTIxNDgxNDcwMEE5MjkwMiAvKiBTVkdQYXRoQmxlbmRlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoQmxlbmRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4NEQwQzQwMzExMTVGMUQ0MDAxOEFBMzQgLyogQWZmaW5lVHJh
bnNmb3JtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFmZmluZVRy
YW5zZm9ybS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0RDBDNDA1MTExNUYx
RUEwMDE4QUEzNCAvKiBBZmZpbmVUcmFuc2Zvcm0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQWZmaW5lVHJhbnNmb3JtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTg0RDlBMTVGMjYwMkRENDAwMDhENkQ1QSAvKiBKU0RPTUNvbnN0cnVjdG9yTm90Q2FsbGFibGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01Db25zdHJ1Y3Rvck5vdENh
bGxhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1MDMxQjI2MEE0NEVGQzcw
MEY5OTJFMCAvKiBCZWZvcmVVbmxvYWRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQmVmb3JlVW5sb2FkRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4NTAzMUIyNzBBNDRFRkM3MDBGOTkyRTAgLyogQmVmb3JlVW5sb2FkRXZlbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJlZm9yZVVubG9hZEV2ZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1MDMxQjI4MEE0NEVGQzcwMEY5OTJFMCAv
KiBEYXRhVHJhbnNmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFU
cmFuc2Zlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjc2OTEsNiArMjc2OTIs
NyBAQAogCQkJCTQxM0MyQzMzMUJDMjlBN0IwMDc1MjA0QyAvKiBKU0RPTUNvbnN0cnVjdG9yLmgg
Ki8sCiAJCQkJN0MwQ0VGMkYxRTRBNThBRDAwOERFQjgwIC8qIEpTRE9NQ29uc3RydWN0b3JCYXNl
LmNwcCAqLywKIAkJCQk3QzBDRUYyODFFNEE1NDJDMDA4REVCODAgLyogSlNET01Db25zdHJ1Y3Rv
ckJhc2UuaCAqLywKKwkJCQk4NEQ5QTE1RjI2MDJERDQwMDA4RDZENUEgLyogSlNET01Db25zdHJ1
Y3Rvck5vdENhbGxhYmxlLmggKi8sCiAJCQkJN0MwQ0VGMkIxRTRBNTVDMzAwOERFQjgwIC8qIEpT
RE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmggKi8sCiAJCQkJN0MwQ0VGMzAxRTRBNThG
MTAwOERFQjgwIC8qIEpTRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1lbnQuY3BwICovLAogCQkJCTdD
MENFRjI5MUU0QTU0RDMwMDhERUI4MCAvKiBKU0RPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50Lmgg
Ki8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yTm90
Q2FsbGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUNvbnN0cnVjdG9yTm90Q2FsbGFibGUuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yTm90Q2FsbGFibGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFsZXhleSBTaHZh
eWthIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIEpTQ2xhc3M+IGNs
YXNzIEpTRE9NQ29uc3RydWN0b3JOb3RDYWxsYWJsZSA6IHB1YmxpYyBKU0RPTU9iamVjdCB7Citw
dWJsaWM6CisgICAgdXNpbmcgQmFzZSA9IEpTRE9NT2JqZWN0OworCisgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gZmFsc2U7CisgICAgc3Rh
dGljIEpTRE9NQ29uc3RydWN0b3JOb3RDYWxsYWJsZSogY3JlYXRlKEpTQzo6Vk0mLCBKU0M6OlN0
cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Jik7CisgICAgc3RhdGljIEpTQzo6U3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkpT
VmFsdWUgcHJvdG90eXBlKTsKKworICAgIERFQ0xBUkVfSU5GTzsKKworICAgIHN0YXRpYyBKU0M6
OkpTVmFsdWUgcHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mLCBjb25zdCBKU0RPTUdsb2Jh
bE9iamVjdCYpOworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIEpTQzo6U3Vic3Bh
Y2VBY2Nlc3M+CisgICAgc3RhdGljIEpTQzo6SXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9yKEpTQzo6
Vk0mIHZtKQorICAgIHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoQ2VsbFR5cGUpID09
IHNpemVvZihKU0RPTUNvbnN0cnVjdG9yTm90Q2FsbGFibGUpKTsKKyAgICAgICAgU1RBVElDX0FT
U0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoQ2VsbFR5cGUsIEpTRE9NQ29uc3RydWN0b3JOb3RD
YWxsYWJsZSk7CisgICAgICAgIHN0YXRpY19hc3NlcnQoQ2VsbFR5cGU6OmRlc3Ryb3kgPT0gSlND
OjpKU0NlbGw6OmRlc3Ryb3ksICJKU0RPTUNvbnN0cnVjdG9yTm90Q2FsbGFibGU8SlNDbGFzcz4g
aXMgbm90IGRlc3RydWN0aWJsZSBhY3R1YWxseSIpOworICAgICAgICByZXR1cm4gJnN0YXRpY19j
YXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmRvbUNvbnN0cnVjdG9yU3BhY2Uo
KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgSlNET01Db25zdHJ1Y3Rvck5vdENhbGxhYmxlKEpT
Qzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qp
CisgICAgICAgIDogQmFzZShzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKKyAgICB7CisgICAgfQor
CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsK
KyAgICB2b2lkIGluaXRpYWxpemVQcm9wZXJ0aWVzKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVj
dCYpIHsgfQorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgSlNDbGFzcz4gaW5saW5lIEpTRE9NQ29u
c3RydWN0b3JOb3RDYWxsYWJsZTxKU0NsYXNzPiogSlNET01Db25zdHJ1Y3Rvck5vdENhbGxhYmxl
PEpTQ2xhc3M+OjpjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCit7CisgICAgSlNET01Db25zdHJ1Y3Rv
ck5vdENhbGxhYmxlKiBjb25zdHJ1Y3RvciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNl
bGw8SlNET01Db25zdHJ1Y3Rvck5vdENhbGxhYmxlPih2bS5oZWFwKSkgSlNET01Db25zdHJ1Y3Rv
ck5vdENhbGxhYmxlKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKKyAgICBjb25zdHJ1Y3Rvci0+
ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIGNvbnN0cnVjdG9y
OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBKU0NsYXNzPiBpbmxpbmUgSlNDOjpTdHJ1Y3R1cmUq
IEpTRE9NQ29uc3RydWN0b3JOb3RDYWxsYWJsZTxKU0NsYXNzPjo6Y3JlYXRlU3RydWN0dXJlKEpT
Qzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1
ZSBwcm90b3R5cGUpCit7CisgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sICZn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgSlNDbGFzcz4g
aW5saW5lIHZvaWQgSlNET01Db25zdHJ1Y3Rvck5vdENhbGxhYmxlPEpTQ2xhc3M+OjpmaW5pc2hD
cmVhdGlvbihKU0M6OlZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKK3sK
KyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBp
bmZvKCkpKTsKKyAgICBpbml0aWFsaXplUHJvcGVydGllcyh2bSwgZ2xvYmFsT2JqZWN0KTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDI3NTE1OSkKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjgwLDYgKzE2ODAsNyBAQCBzdWIgTmVlZHNJbXBsZW1lbnRhdGlvbkNs
YXNzCiAgICAgbXkgKCRpbnRlcmZhY2UpID0gQF87CiAKICAgICByZXR1cm4gMCBpZiAkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntKU0J1aWx0aW59OworICAgIHJldHVybiAwIGlmICRp
bnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0OwogICAgIHJldHVybiAxOwogfQogCkBAIC0yOTE4
LDcgKzI5MTksNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAkc3RydWN0dXJlRmxhZ3N7IkpT
Qzo6SW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSlNDOjpJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3Rh
bmNlIn0gPSAxIGlmICRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciOwogICAgICAgICAKICAg
ICAjIFByb3RvdHlwZQotICAgIHVubGVzcyAoU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBl
KCRpbnRlcmZhY2UpKSB7CisgICAgdW5sZXNzIChTaG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5
cGUoJGludGVyZmFjZSkgfHwgJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKICAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRl
UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpO1xuIik7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIHByb3RvdHlwZShK
U0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTtcbiIpOwogICAgIH0KQEAgLTQyMTgsNiArNDIx
OSw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICBteSAkaW1wbFR5cGUgPSBH
ZXRJbXBsQ2xhc3NOYW1lKCRpbnRlcmZhY2UpOwogCisgICAgQWRkVG9JbXBsSW5jbHVkZXMoIiR7
aW1wbFR5cGV9LmgiKSBpZiAkaW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdDsKKwogICAgIEBp
bXBsQ29udGVudCA9ICgpOwogCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcblxubmFtZXNwYWNl
IFdlYkNvcmUge1xuIik7CkBAIC00MzYzLDcgKzQzNjYsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogCiAgICAgR2VuZXJhdGVQcm90b3R5cGVEZWNsYXJhdGlvbihcQGltcGxDb250ZW50
LCAkY2xhc3NOYW1lLCAkaW50ZXJmYWNlKSBpZiAhSGVhZGVyTmVlZHNQcm90b3R5cGVEZWNsYXJh
dGlvbigkaW50ZXJmYWNlKTsKIAotICAgIEdlbmVyYXRlQ29uc3RydWN0b3JEZWNsYXJhdGlvbihc
QGltcGxDb250ZW50LCAkY2xhc3NOYW1lLCAkaW50ZXJmYWNlKSBpZiBOZWVkc0NvbnN0cnVjdG9y
UHJvcGVydHkoJGludGVyZmFjZSk7CisgICAgR2VuZXJhdGVDb25zdHJ1Y3RvckRlY2xhcmF0aW9u
KFxAaW1wbENvbnRlbnQsICRjbGFzc05hbWUsICRpbnRlcmZhY2UpIGlmICEkaW50ZXJmYWNlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntMZWdhY3lOb0ludGVyZmFjZU9iamVjdH07CiAKICAgICBteSBA
aGFzaEtleXMgPSAoKTsKICAgICBteSBAaGFzaFZhbHVlMSA9ICgpOwpAQCAtNDM4MSw3ICs0Mzg0
LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAkb2JqZWN0LT5HZW5lcmF0ZUhh
c2hUYWJsZSgkY2xhc3NOYW1lLCAkaGFzaE5hbWUsICRudW1JbnN0YW5jZVByb3BlcnRpZXMsIFxA
aGFzaEtleXMsIFxAaGFzaFNwZWNpYWxzLCBcQGhhc2hWYWx1ZTEsIFxAaGFzaFZhbHVlMiwgXCVj
b25kaXRpb25hbHMsIFwlcmVhZFdyaXRlQ29uZGl0aW9uYWxzLCAwKSBpZiAkbnVtSW5zdGFuY2VQ
cm9wZXJ0aWVzID4gMDsKIAogICAgICMgLSBBZGQgYWxsIGludGVyZmFjZSBvYmplY3QgKGFrYSBj
b25zdHJ1Y3RvcikgcHJvcGVydGllcyAoY29uc3RhbnRzLCBzdGF0aWMgYXR0cmlidXRlcywgc3Rh
dGljIG9wZXJhdGlvbnMpLgotICAgIGlmIChOZWVkc0NvbnN0cnVjdG9yUHJvcGVydHkoJGludGVy
ZmFjZSkpIHsKKyAgICBpZiAoISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0xlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0fSkgewogICAgICAgICBteSAkaGFzaFNpemUgPSAwOwogICAgICAg
ICBteSAkaGFzaE5hbWUgPSAkY2xhc3NOYW1lIC4gIkNvbnN0cnVjdG9yVGFibGUiOwogCkBAIC00
NTE5LDE4ICs0NTIyLDIwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICRo
YXNoU2l6ZSsrOwogICAgIH0KIAotICAgIG15ICRqdXN0R2VuZXJhdGVWYWx1ZUFycmF5ID0gIUlz
RE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZhY2UpOworICAgIGlmICghJGludGVyZmFjZS0+aXNOYW1l
c3BhY2VPYmplY3QpIHsKKyAgICAgICAgbXkgJGp1c3RHZW5lcmF0ZVZhbHVlQXJyYXkgPSAhSXNE
T01HbG9iYWxPYmplY3QoJGludGVyZmFjZSk7CiAKLSAgICAkb2JqZWN0LT5HZW5lcmF0ZUhhc2hU
YWJsZSgkY2xhc3NOYW1lLCAkaGFzaE5hbWUsICRoYXNoU2l6ZSwgXEBoYXNoS2V5cywgXEBoYXNo
U3BlY2lhbHMsIFxAaGFzaFZhbHVlMSwgXEBoYXNoVmFsdWUyLCBcJWNvbmRpdGlvbmFscywgXCVy
ZWFkV3JpdGVDb25kaXRpb25hbHMsICRqdXN0R2VuZXJhdGVWYWx1ZUFycmF5KTsKKyAgICAgICAg
JG9iamVjdC0+R2VuZXJhdGVIYXNoVGFibGUoJGNsYXNzTmFtZSwgJGhhc2hOYW1lLCAkaGFzaFNp
emUsIFxAaGFzaEtleXMsIFxAaGFzaFNwZWNpYWxzLCBcQGhhc2hWYWx1ZTEsIFxAaGFzaFZhbHVl
MiwgXCVjb25kaXRpb25hbHMsIFwlcmVhZFdyaXRlQ29uZGl0aW9uYWxzLCAkanVzdEdlbmVyYXRl
VmFsdWVBcnJheSk7CiAKLSAgICBteSAkaGFzaFRhYmxlID0gJGp1c3RHZW5lcmF0ZVZhbHVlQXJy
YXkgPyAibnVsbHB0ciIgOiAiJiR7Y2xhc3NOYW1lfVByb3RvdHlwZVRhYmxlIjsKLSAgICBwdXNo
KEBpbXBsQ29udGVudCwgImNvbnN0IENsYXNzSW5mbyAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OnNf
aW5mbyA9IHsgXCIke3Zpc2libGVJbnRlcmZhY2VOYW1lfVwiLCAmQmFzZTo6c19pbmZvLCAke2hh
c2hUYWJsZX0sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoJHtjbGFzc05hbWV9UHJvdG90
eXBlKSB9O1xuXG4iKTsKKyAgICAgICAgbXkgJGhhc2hUYWJsZSA9ICRqdXN0R2VuZXJhdGVWYWx1
ZUFycmF5ID8gIm51bGxwdHIiIDogIiYke2NsYXNzTmFtZX1Qcm90b3R5cGVUYWJsZSI7CisgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiY29uc3QgQ2xhc3NJbmZvICR7Y2xhc3NOYW1lfVByb3Rv
dHlwZTo6c19pbmZvID0geyBcIiR7dmlzaWJsZUludGVyZmFjZU5hbWV9XCIsICZCYXNlOjpzX2lu
Zm8sICR7aGFzaFRhYmxlfSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRSgke2NsYXNzTmFt
ZX1Qcm90b3R5cGUpIH07XG5cbiIpOwogCi0gICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7
Y2xhc3NOYW1lfVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKVxuIik7Ci0gICAgcHVz
aChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbih2bSk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2
b2lkICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKVxuIik7Cisg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTtcbiIpOworICAgIH0KIAotICAgIGlm
IChQcm90b3R5cGVIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlKCRpbnRlcmZhY2UpICYmICFJc0dsb2Jh
bEludGVyZmFjZSgkaW50ZXJmYWNlKSkgeworICAgIGlmIChQcm90b3R5cGVIYXNTdGF0aWNQcm9w
ZXJ0eVRhYmxlKCRpbnRlcmZhY2UpICYmICFJc0dsb2JhbEludGVyZmFjZSgkaW50ZXJmYWNlKSAm
JiAhJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCAke2NsYXNzTmFtZX06OmluZm8o
KSwgJHtjbGFzc05hbWV9UHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTtcbiIpOwogCiAgICAg
ICAgIG15IEBydW50aW1lRW5hYmxlZFByb3BlcnRpZXMgPSBAcnVudGltZUVuYWJsZWRPcGVyYXRp
b25zOwpAQCAtNDYxMCw4ICs0NjE1LDExIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAg
ICAgfQogCiAgICAgYXNzZXJ0KCJKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJT04o
KSByZXF1aXJlcyBzdHJpbmdzIHR3byBvciBtb3JlIGNoYXJhY3RlcnMgbG9uZyIpIGlmIGxlbmd0
aCgkdmlzaWJsZUludGVyZmFjZU5hbWUpIDwgMjsKLSAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJT04oKTtcbiIpOwotICAgIHB1c2go
QGltcGxDb250ZW50LCAifVxuXG4iKTsKKworICAgIGlmICghJGludGVyZmFjZS0+aXNOYW1lc3Bh
Y2VPYmplY3QpIHsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNDX1RPX1NUUklO
R19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ9XG5cbiIpOworICAgIH0KIAogICAgICMgLSBJbml0aWFsaXplIHN0YXRpYyBDbGFzc0lu
Zm8gb2JqZWN0CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJjb25zdCBDbGFzc0luZm8gJGNsYXNz
TmFtZSIgLiAiOjpzX2luZm8gPSB7IFwiJHt2aXNpYmxlSW50ZXJmYWNlTmFtZX1cIiwgJkJhc2U6
OnNfaW5mbywgIik7CkBAIC00NzYxLDcgKzQ3NjksNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHZtLmhlYXAucmVwb3J0RXh0cmFNZW1v
cnlBbGxvY2F0ZWQod3JhcHBlZCgpLm1lbW9yeUNvc3QoKSk7XG4iKSBpZiAkaW50ZXJmYWNlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntSZXBvcnRFeHRyYU1lbW9yeUNvc3R9OwogICAgIHB1c2goQGlt
cGxDb250ZW50LCAifVxuXG4iKTsKIAotICAgIHVubGVzcyAoU2hvdWxkVXNlR2xvYmFsT2JqZWN0
UHJvdG90eXBlKCRpbnRlcmZhY2UpKSB7CisgICAgdW5sZXNzIChTaG91bGRVc2VHbG9iYWxPYmpl
Y3RQcm90b3R5cGUoJGludGVyZmFjZSkgfHwgJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3Qp
IHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU09iamVjdCogJHtjbGFzc05hbWV9Ojpj
cmVhdGVQcm90b3R5cGUoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KVxu
Iik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIGlmICgkaW50
ZXJmYWNlLT5wYXJlbnRUeXBlKSB7CkBAIC03NTA5LDYgKzc1MTcsOCBAQCBzdWIgR2VuZXJhdGVQ
cm90b3R5cGVEZWNsYXJhdGlvbgogewogICAgIG15ICgkb3V0cHV0QXJyYXksICRjbGFzc05hbWUs
ICRpbnRlcmZhY2UpID0gQF87CiAKKyAgICByZXR1cm4gaWYgJGludGVyZmFjZS0+aXNOYW1lc3Bh
Y2VPYmplY3Q7CisKICAgICBteSAkcHJvdG90eXBlQ2xhc3NOYW1lID0gIiR7Y2xhc3NOYW1lfVBy
b3RvdHlwZSI7CiAKICAgICBteSAlc3RydWN0dXJlRmxhZ3MgPSAoKTsKQEAgLTc1NjcsNiArNzU3
Nyw3IEBAIHN1YiBHZXRDb25zdHJ1Y3RvclRlbXBsYXRlQ2xhc3NOYW1lCiB7CiAgICAgbXkgJGlu
dGVyZmFjZSA9IHNoaWZ0OwogICAgIHJldHVybiAiSlNET01CdWlsdGluQ29uc3RydWN0b3IiIGlm
IEhhc0pTQnVpbHRpbkNvbnN0cnVjdG9yKCRpbnRlcmZhY2UpOworICAgIHJldHVybiAiSlNET01D
b25zdHJ1Y3Rvck5vdENhbGxhYmxlIiBpZiAkaW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdDsK
ICAgICByZXR1cm4gIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlIiBpZiAkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntMZWdhY3lGYWN0b3J5RnVuY3Rpb259OwogICAgIHJl
dHVybiAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUiIHVubGVzcyBJc0NvbnN0cnVj
dGFibGUoJGludGVyZmFjZSk7CiAgICAgcmV0dXJuICJKU0RPTUNvbnN0cnVjdG9yIjsKQEAgLTc3
NzAsNiArNzc4MSw4IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9ySGVscGVyTWV0aG9kcwogICAg
ICAgICAkbGVhc3RDb25zdHJ1Y3Rvckxlbmd0aCA9IDA7CiAgICAgfQogCisgICAgcHVzaChAJG91
dHB1dEFycmF5LCAidGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gJHtjb25zdHJ1Y3RvckNsYXNz
TmFtZX06OnNfaW5mbyA9IHsgXCIke3Zpc2libGVJbnRlcmZhY2VOYW1lfVwiLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKCRjb25zdHJ1Y3RvckNs
YXNzTmFtZSkgfTtcblxuIik7CisKICAgICAjIElmIHRoZSBpbnRlcmZhY2UgaGFzIGEgcGFyZW50
IGludGVyZmFjZSB3aGljaCBkb2VzIG5vdCBoYXZlIFtMZWdhY3lOb0ludGVyZmFjZU9iamVjdF0s
IHRoZW4gdXNlIGl0cyBpbnRlcmZhY2Ugb2JqZWN0IGFzIHByb3RvdHlwZSwKICAgICAjIG90aGVy
d2lzZSB1c2UgRnVuY3Rpb25Qcm90b3R5cGU6IGh0dHA6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlk
bC8jaW50ZXJmYWNlLW9iamVjdAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgInRlbXBsYXRlPD4g
SlNWYWx1ZSAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpT
Qzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KVxuIik7CkBA
IC03NzgwLDYgKzc3OTMsMTAgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JIZWxwZXJNZXRob2Rz
CiAgICAgaWYgKCEkZ2VuZXJhdGluZ0xlZ2FjeUZhY3RvcnlGdW5jdGlvbiBhbmQgJGludGVyZmFj
ZS0+cGFyZW50VHlwZSkgewogICAgICAgICBteSAkcGFyZW50Q2xhc3NOYW1lID0gIkpTIiAuICRp
bnRlcmZhY2UtPnBhcmVudFR5cGUtPm5hbWU7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICByZXR1cm4gJHtwYXJlbnRDbGFzc05hbWV9OjpnZXRDb25zdHJ1Y3Rvcih2bSwgJmdsb2Jh
bE9iamVjdCk7XG4iKTsKKyAgICB9IGVsc2lmICgkaW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVj
dCkgeworICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiPEphdmFTY3JpcHRDb3JlL09iamVjdFBy
b3RvdHlwZS5oPiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgVU5VU0VEX1BB
UkFNKHZtKTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIGds
b2JhbE9iamVjdC5vYmplY3RQcm90b3R5cGUoKTtcbiIpOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IEFkZFRvSW1wbEluY2x1ZGVzKCI8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4i
KTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFVOVVNFRF9QQVJBTSh2bSk7XG4i
KTsKQEAgLTc3OTgsMTIgKzc4MTUsMTQgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JIZWxwZXJN
ZXRob2RzCiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgZ2xvYmFsT2JqZWN0LmdldFByb3RvdHlwZURpcmVj
dCh2bSksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTtc
biIpOwogICAgIH0gZWxzaWYgKCRpbnRlcmZhY2UtPmlzQ2FsbGJhY2spIHsKICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIFVOVVNFRF9QQVJBTShnbG9iYWxPYmplY3QpO1xuIik7Cisg
ICAgfSBlbHNpZiAoJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKKyAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIEpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElP
TigpO1xuIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCAke2NsYXNzTmFtZX06
OnByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0KSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pO1xuIik7CiAgICAgfQogCiAgICAgYXNzZXJ0KCJqc05vbnRy
aXZpYWxTdHJpbmcoKSByZXF1aXJlcyBzdHJpbmdzIHR3byBvciBtb3JlIGNoYXJhY3RlcnMgbG9u
ZyIpIGlmIGxlbmd0aCgkdmlzaWJsZUludGVyZmFjZU5hbWUpIDwgMjsKLSAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBqc05v
bnRyaXZpYWxTdHJpbmcodm0sIFwiJHZpc2libGVJbnRlcmZhY2VOYW1lXCJfcyksIEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pO1xuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+bmFtZSwganNOb250cml2aWFsU3RyaW5nKHZtLCBcIiR2aXNpYmxlSW50
ZXJmYWNlTmFtZVwiX3MpLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTtcbiIpIGlmICEkaW50ZXJmYWNlLT5pc05hbWVz
cGFjZU9iamVjdDsKIAogICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntM
ZWdhY3lGYWN0b3J5RnVuY3Rpb25FbmFibGVkQnlTZXR0aW5nfSkgewogICAgICAgICBteSAkcnVu
dGltZUVuYWJsZUNvbmRpdGlvbmFsU3RyaW5nID0gR2VuZXJhdGVSdW50aW1lRW5hYmxlQ29uZGl0
aW9uYWxTdHJpbmcoJGludGVyZmFjZSwgJGludGVyZmFjZSwgIiZnbG9iYWxPYmplY3QiKTsKQEAg
LTc4MTEsNyArNzgzMCw3IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9ySGVscGVyTWV0aG9kcwog
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKCEke3J1bnRpbWVFbmFibGVDb25k
aXRpb25hbFN0cmluZ30pXG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAg
ICBjb25zdHJ1Y3Rvckxlbmd0aCA9IDA7XG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcihj
b25zdHJ1Y3Rvckxlbmd0aCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pO1xuIik7Ci0gICAgfSBlbHNlIHsKKyAgICB9
IGVsc2lmICghJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3Ro
LCBqc051bWJlcigke2xlYXN0Q29uc3RydWN0b3JMZW5ndGh9KSwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7XG4iKTsK
ICAgICB9CiAKQEAgLTc4NDYsNyArNzg2NSw2IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9ySGVs
cGVyTWV0aG9kcwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG4iKTsKICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiXG4iKTsKICAgICB9Ci0gICAgcHVzaChAJG91dHB1dEFycmF5
LCAidGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OnNf
aW5mbyA9IHsgXCIke3Zpc2libGVJbnRlcmZhY2VOYW1lfVwiLCAmQmFzZTo6c19pbmZvLCBudWxs
cHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKCRjb25zdHJ1Y3RvckNsYXNzTmFtZSkg
fTtcblxuIik7CiB9CiAKIHN1YiBIYXNDdXN0b21Db25zdHJ1Y3RvcgpAQCAtNzg5MSw2ICs3OTA5
LDcgQEAgc3ViIE5lZWRzQ29uc3RydWN0b3JQcm9wZXJ0eQogewogICAgIG15ICRpbnRlcmZhY2Ug
PSBzaGlmdDsKICAgICAKKyAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlLT5pc05hbWVzcGFjZU9i
amVjdDsKICAgICByZXR1cm4gISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0xlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0fTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24JKHJldmlzaW9uIDI3NTE1OSkKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogICAgICJjb250ZXh0cyI6IFsKICAgICAgICAgInR5
cGUiLAogICAgICAgICAiaW50ZXJmYWNlIiwKKyAgICAgICAgIm5hbWVzcGFjZSIsCiAgICAgICAg
ICJhdHRyaWJ1dGUiLAogICAgICAgICAib3BlcmF0aW9uIiwKICAgICAgICAgImFyZ3VtZW50IiwK
QEAgLTczLDcgKzc0LDcgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKICAgICAgICAgIkNv
bmRpdGlvbmFsIjogewotICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNl
IiwgImRpY3Rpb25hcnkiLCAiZGljdGlvbmFyeS1tZW1iZXIiLCAiZW51bSIsICJhdHRyaWJ1dGUi
LCAib3BlcmF0aW9uIiwgImNvbnN0YW50IiwgImNhbGxiYWNrLWZ1bmN0aW9uIiwgImluY2x1ZGVz
Il0sCisgICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZhY2UiLCAibmFtZXNw
YWNlIiwgImRpY3Rpb25hcnkiLCAiZGljdGlvbmFyeS1tZW1iZXIiLCAiZW51bSIsICJhdHRyaWJ1
dGUiLCAib3BlcmF0aW9uIiwgImNvbnN0YW50IiwgImNhbGxiYWNrLWZ1bmN0aW9uIiwgImluY2x1
ZGVzIl0sCiAgICAgICAgICAgICAidmFsdWVzIjogWyIqIl0sCiAgICAgICAgICAgICAic3VwcG9y
dHNDb25qdW5jdGlvbiI6IHRydWUKICAgICAgICAgfSwKQEAgLTE4MCwxMiArMTgxLDEyIEBACiAg
ICAgICAgICAgICAic3VwcG9ydHNDb25qdW5jdGlvbiI6IHRydWUKICAgICAgICAgfSwKICAgICAg
ICAgIkVuYWJsZWRBdFJ1bnRpbWUiOiB7Ci0gICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjog
WyJpbnRlcmZhY2UiLCAiZGljdGlvbmFyeSIsICJlbnVtIiwgImF0dHJpYnV0ZSIsICJvcGVyYXRp
b24iLCAiY29uc3RhbnQiLCAiaXRlcmFibGUiLCAiaW5jbHVkZXMiXSwKKyAgICAgICAgICAgICJj
b250ZXh0c0FsbG93ZWQiOiBbImludGVyZmFjZSIsICJuYW1lc3BhY2UiLCAiZGljdGlvbmFyeSIs
ICJlbnVtIiwgImF0dHJpYnV0ZSIsICJvcGVyYXRpb24iLCAiY29uc3RhbnQiLCAiaXRlcmFibGUi
LCAiaW5jbHVkZXMiXSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbIioiXSwKICAgICAgICAgICAg
ICJzdXBwb3J0c0Nvbmp1bmN0aW9uIjogdHJ1ZQogICAgICAgICB9LAogICAgICAgICAiRW5hYmxl
ZEJ5U2V0dGluZyI6IHsKLSAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImludGVyZmFj
ZSIsICJkaWN0aW9uYXJ5IiwgImVudW0iLCAiYXR0cmlidXRlIiwgIm9wZXJhdGlvbiIsICJjb25z
dGFudCIsICJkaWN0aW9uYXJ5LW1lbWJlciIsICJpbmNsdWRlcyJdLAorICAgICAgICAgICAgImNv
bnRleHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIiwgIm5hbWVzcGFjZSIsICJkaWN0aW9uYXJ5Iiwg
ImVudW0iLCAiYXR0cmlidXRlIiwgIm9wZXJhdGlvbiIsICJjb25zdGFudCIsICJkaWN0aW9uYXJ5
LW1lbWJlciIsICJpbmNsdWRlcyJdLAogICAgICAgICAgICAgInZhbHVlcyI6IFsiKiJdLAogICAg
ICAgICAgICAgInN1cHBvcnRzQ29uanVuY3Rpb24iOiB0cnVlCiAgICAgICAgIH0sCkBAIC0yMTcs
NyArMjE4LDcgQEAKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImludGVyZmFjZSJd
CiAgICAgICAgIH0sCiAgICAgICAgICJFeHBvc2VkIjogewotICAgICAgICAgICAgImNvbnRleHRz
QWxsb3dlZCI6IFsiaW50ZXJmYWNlIiwgImF0dHJpYnV0ZSIsICJvcGVyYXRpb24iLCAiY29uc3Rh
bnQiXSwKKyAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImludGVyZmFjZSIsICJuYW1l
c3BhY2UiLCAiYXR0cmlidXRlIiwgIm9wZXJhdGlvbiIsICJjb25zdGFudCJdLAogICAgICAgICAg
ICAgInZhbHVlcyI6IFsiKiJdLAogICAgICAgICAgICAgInN0YW5kYXJkIjogewogICAgICAgICAg
ICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jRXhwb3NlZCIK
QEAgLTI0Niw3ICsyNDcsNyBAQAogICAgICAgICAgICAgInZhbHVlcyI6IFsiKiJdCiAgICAgICAg
IH0sCiAgICAgICAgICJJbXBsZW1lbnRlZEJ5IjogewotICAgICAgICAgICAgImNvbnRleHRzQWxs
b3dlZCI6IFsiaW50ZXJmYWNlIiwgImRpY3Rpb25hcnkiLCAiZGljdGlvbmFyeS1tZW1iZXIiLCAi
YXR0cmlidXRlIiwgIm9wZXJhdGlvbiIsICJjb25zdGFudCJdLAorICAgICAgICAgICAgImNvbnRl
eHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIiwgIm5hbWVzcGFjZSIsICJkaWN0aW9uYXJ5IiwgImRp
Y3Rpb25hcnktbWVtYmVyIiwgImF0dHJpYnV0ZSIsICJvcGVyYXRpb24iLCAiY29uc3RhbnQiXSwK
ICAgICAgICAgICAgICJ2YWx1ZXMiOiBbIioiXQogICAgICAgICB9LAogICAgICAgICAiSW1wbGVt
ZW50YXRpb25MYWNrc1ZUYWJsZSI6IHsKQEAgLTI1Niw3ICsyNTcsNyBAQAogICAgICAgICAgICAg
ImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIl0KICAgICAgICAgfSwKICAgICAgICAgIklu
dGVyZmFjZU5hbWUiOiB7Ci0gICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZh
Y2UiXSwKKyAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImludGVyZmFjZSIsICJuYW1l
c3BhY2UiXSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbIioiXQogICAgICAgICB9LAogICAgICAg
ICAiSXNJbW11dGFibGVQcm90b3R5cGVFeG90aWNPYmplY3QiOiB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQkocmV2aXNpb24gMjc1MTU5KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0JKHdvcmtpbmcg
Y29weSkKQEAgLTY2LDYgKzY2LDcgQEAgc3RydWN0KCBJRExJbnRlcmZhY2UgPT4gewogICAgIGF0
dHJpYnV0ZXMgPT4gJ0AnLCAgICAjIExpc3Qgb2YgJ0lETEF0dHJpYnV0ZScKICAgICBjb25zdHJ1
Y3RvcnMgPT4gJ0AnLCAjIENvbnN0cnVjdG9ycywgbGlzdCBvZiAnSURMT3BlcmF0aW9uJwogICAg
IGlzQ2FsbGJhY2sgPT4gJyQnLCAjIFVzZWQgZm9yIGNhbGxiYWNrIGludGVyZmFjZXMKKyAgICBp
c05hbWVzcGFjZU9iamVjdCA9PiAnJCcsICMgVXNlZCBmb3IgbmFtZXNwYWNlIG9iamVjdHMgbGlr
ZSBgd2luZG93LkNTU2AKICAgICBpc01peGluID0+ICckJywgIyBVc2VkIGZvciBtaXhpbiBpbnRl
cmZhY2VzCiAgICAgaXNQYXJ0aWFsID0+ICckJywgIyBVc2VkIGZvciBwYXJ0aWFsIGludGVyZmFj
ZXMKICAgICBpdGVyYWJsZSA9PiAnJCcsICMgVXNlZCBmb3IgaXRlcmFibGUgaW50ZXJmYWNlcywg
b2YgdHlwZSAnSURMSXRlcmFibGUnCkBAIC0zMTIsNiArMzEzLDI5IEBAIHN1YiBhc3NlcnRFeHRl
bmRlZEF0dHJpYnV0ZXNWYWxpZEZvckNvbnQKICAgICB9CiB9CiAKK3N1YiBjb252ZXJ0TmFtZXNw
YWNlVG9JbnRlcmZhY2UKK3sKKyAgICBteSAkbmFtZXNwYWNlID0gc2hpZnQ7CisKKyAgICBteSAk
aW50ZXJmYWNlID0gSURMSW50ZXJmYWNlLT5uZXcoKTsKKyAgICAkaW50ZXJmYWNlLT50eXBlKG1h
a2VTaW1wbGVUeXBlKCRuYW1lc3BhY2UtPm5hbWUpKTsKKworICAgIGZvcmVhY2ggbXkgJG9wZXJh
dGlvbiAoQHskbmFtZXNwYWNlLT5vcGVyYXRpb25zfSkgeworICAgICAgICAkb3BlcmF0aW9uLT5p
c1N0YXRpYygxKTsKKyAgICAgICAgcHVzaChAeyRpbnRlcmZhY2UtPm9wZXJhdGlvbnN9LCAkb3Bl
cmF0aW9uKTsKKyAgICB9CisKKyAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JG5hbWVzcGFj
ZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgJGF0dHJpYnV0ZS0+aXNTdGF0aWMoMSk7CisgICAg
ICAgIHB1c2goQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSwgJGF0dHJpYnV0ZSk7CisgICAgfQor
CisgICAgJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QoMSk7CisgICAgJGludGVyZmFjZS0+
aXNQYXJ0aWFsKCRuYW1lc3BhY2UtPmlzUGFydGlhbCk7CisgICAgJGludGVyZmFjZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzKCRuYW1lc3BhY2UtPmV4dGVuZGVkQXR0cmlidXRlcyk7CisgICAgcmV0dXJu
ICRpbnRlcmZhY2U7Cit9CisKIHN1YiBQYXJzZQogewogICAgIG15ICRzZWxmID0gc2hpZnQ7CkBA
IC0zNTEsNyArMzc1LDcgQEAgc3ViIFBhcnNlCiAgICAgICAgIH0gZWxzaWYgKHJlZigkZGVmaW5p
dGlvbikgZXEgIklETENhbGxiYWNrRnVuY3Rpb24iKSB7CiAgICAgICAgICAgICBwdXNoKEB7JGRv
Y3VtZW50LT5jYWxsYmFja0Z1bmN0aW9uc30sICRkZWZpbml0aW9uKTsKICAgICAgICAgfSBlbHNp
ZiAocmVmKCRkZWZpbml0aW9uKSBlcSAiSURMTmFtZXNwYWNlIikgewotICAgICAgICAgICAgcHVz
aChAeyRkb2N1bWVudC0+bmFtZXNwYWNlc30sICRkZWZpbml0aW9uKTsKKyAgICAgICAgICAgIHB1
c2goQHskZG9jdW1lbnQtPmludGVyZmFjZXN9LCBjb252ZXJ0TmFtZXNwYWNlVG9JbnRlcmZhY2Uo
JGRlZmluaXRpb24pKTsKICAgICAgICAgfSBlbHNpZiAocmVmKCRkZWZpbml0aW9uKSBlcSAiSURM
SW5jbHVkZXNTdGF0ZW1lbnQiKSB7CiAgICAgICAgICAgICBwdXNoKEB7JGRvY3VtZW50LT5pbmNs
dWRlc30sICRkZWZpbml0aW9uKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTEwMzcsOCArMTA2MSw2
IEBAIHN1YiBwYXJzZU5hbWVzcGFjZQogICAgICAgICAkc2VsZi0+YXNzZXJ0RXh0ZW5kZWRBdHRy
aWJ1dGVzVmFsaWRGb3JDb250ZXh0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QsICJuYW1lc3BhY2Ui
KTsKICAgICAgICAgJG5hbWVzcGFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJp
YnV0ZUxpc3QpOwogCi0gICAgICAgIGRpZSAiJ25hbWVzcGFjZScgZGVmaW5pdGlvbnMgYXJlIG5v
dCBjdXJyZW50bHkgc3VwcG9ydGVkIGJ5IHRoZSBjb2RlIGdlbmVyYXRvcnMuIjsKLQogICAgICAg
ICByZXR1cm4gJG5hbWVzcGFjZTsKICAgICB9CiAgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRU
b2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwJKHJldmlzaW9uIDI3NTE1
OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBs
CSh3b3JraW5nIGNvcHkpCkBAIC02NTAsNyArNjUwLDcgQEAgc3ViIGNvbnRhaW5zSW50ZXJmYWNl
T3JDYWxsYmFja0ludGVyZmFjZQogICAgIG15ICRpZGxGaWxlID0gc2hpZnQ7CiAKICAgICBteSAk
ZmlsZUNvbnRlbnRzID0gJGlkbEZpbGUtPmZpbGVDb250ZW50czsKLSAgICBteSAkY29udGFpbnNJ
bnRlcmZhY2VPckNhbGxiYWNrSW50ZXJmYWNlID0gKCRmaWxlQ29udGVudHMgPX4gL1xiKGNhbGxi
YWNrIGludGVyZmFjZXxpbnRlcmZhY2UpXHMrKFx3KykvZ3MpOworICAgIG15ICRjb250YWluc0lu
dGVyZmFjZU9yQ2FsbGJhY2tJbnRlcmZhY2UgPSAoJGZpbGVDb250ZW50cyA9fiAvXGIoY2FsbGJh
Y2sgaW50ZXJmYWNlfGludGVyZmFjZXxuYW1lc3BhY2UpXHMrKFx3KykvZ3MpOwogCiAgICAgaWYg
KCR2YWxpZGF0ZUFnYWluc3RQYXJzZXIpIHsKICAgICAgICAgcHJpbnQgIlZhbGlkYXRpbmcgY29u
dGFpbnNJbnRlcmZhY2VPckNhbGxiYWNrSW50ZXJmYWNlRnJvbUlETCBmb3IgIiAuICRpZGxGaWxl
LT5maWxlTmFtZSAuICIgYWdhaW5zdCB2YWxpZGF0aW9uIHBhcnNlci5cbiIgaWYgJHZlcmJvc2U7
CkBAIC03MDAsNyArNzAwLDcgQEAgc3ViIGdldEludGVyZmFjZUV4dGVuZGVkQXR0cmlidXRlc0Zy
b21JRAogICAgIG15ICRmaWxlQ29udGVudHMgPSAkaWRsRmlsZS0+ZmlsZUNvbnRlbnRzOwogCiAg
ICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlcyA9IHt9OwotICAgIGlmICgkZmlsZUNvbnRlbnRzID1+
IC9cWyguKilcXVxzKyhjYWxsYmFjayBpbnRlcmZhY2V8aW50ZXJmYWNlKVxzKyhcdyspL2dzKSB7
CisgICAgaWYgKCRmaWxlQ29udGVudHMgPX4gL1xbKC4qKVxdXHMrKGNhbGxiYWNrIGludGVyZmFj
ZXxpbnRlcmZhY2V8bmFtZXNwYWNlKVxzKyhcdyspL2dzKSB7CiAgICAgICAgIG15ICRwYXJhbWV0
ZXJzID0gJDE7CiAgICAgICAgIGlmIChpbmRleCgkcGFyYW1ldGVycywgJ30nKSAhPSAtMSkgewog
ICAgICAgICAgICAgIyBJbiBjYXNlIHdlIGhhdmUgYSBkZWNsYXJhdGlvbiBsaWtlIGEgZGljdGlv
bmFyeSB3aXRoIGV4dGVuZGVkIGF0dHJpYnV0ZXMgZGVmaW5lZCBiZWZvcmUgdGhlIGludGVyZmFj
ZS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0RPTVdp
bmRvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTRE9NV2luZG93LmNwcAkocmV2aXNpb24gMjc1MTU5KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRE9NV2luZG93LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTQyLDYgKzE0Miw4IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU0RPTVdp
bmRvd1QKIH07CiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNET01XaW5kb3dUYWJsZSA9IHsg
MTEsIDMxLCB0cnVlLCBKU0RPTVdpbmRvdzo6aW5mbygpLCBKU0RPTVdpbmRvd1RhYmxlVmFsdWVz
LCBKU0RPTVdpbmRvd1RhYmxlSW5kZXggfTsKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpT
RE9NV2luZG93RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkRPTVdpbmRvdyIsICZCYXNlOjpz
X2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNET01XaW5kb3dE
T01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTRE9NV2luZG93RE9NQ29u
c3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01H
bG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNFdmVudFRhcmdldDo6
Z2V0Q29uc3RydWN0b3Iodm0sICZnbG9iYWxPYmplY3QpOwpAQCAtMTU0LDggKzE1Niw2IEBAIHRl
bXBsYXRlPD4gdm9pZCBKU0RPTVdpbmRvd0RPTUNvbnN0cnVjdG8KICAgICBwdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQog
Ci10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU0RPTVdpbmRvd0RPTUNvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJET01XaW5kb3ciLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTRE9NV2luZG93RE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhh
c2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RI
YXNoSW5kZXggSlNET01XaW5kb3dQcm90b3R5cGVUYWJsZUluZGV4WzJdID0gewpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAkocmV2aXNpb24gMjc1
MTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2Niw4IEBA
IHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU0RlZGljYXRlZFcKIH07CiAKIHN0YXRpYyBj
b25zdCBIYXNoVGFibGUgSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZVRhYmxlID0geyAxLCAx
LCB0cnVlLCBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjppbmZvKCksIEpTRGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGVUYWJsZVZhbHVlcywgSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZVRhYmxlSW5kZXggfTsKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTRGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGVET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVET01Db25zdHJ1Y3RvcikgfTsK
KwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVET01Db25z
dHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUds
b2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIHJldHVybiBKU1dvcmtlckdsb2JhbFNj
b3BlOjpnZXRDb25zdHJ1Y3Rvcih2bSwgJmdsb2JhbE9iamVjdCk7CkBAIC03OCw4ICs4MCw2IEBA
IHRlbXBsYXRlPD4gdm9pZCBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFMKICAgICBwdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwog
fQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShK
U0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2gg
dGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNo
SW5kZXggSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZVByb3RvdHlwZVRhYmxlSW5kZXhbMl0g
PSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNFeHBv
c2VkVG9Xb3JrZXJBbmRXaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdy5jcHAJKHJl
dmlzaW9uIDI3NTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw2
ICsxNDUsOCBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfCiB9CiBK
U0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0RPTUNv
bnN0cnVjdG9yQ29uc3RydWN0LCBKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0RPTUNvbnN0cnVj
dG9yOjpjb25zdHJ1Y3QpOwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU0V4cG9zZWRU
b1dvcmtlckFuZFdpbmRvd0RPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJFeHBvc2VkVG9Xb3Jr
ZXJBbmRXaW5kb3ciLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93RE9NQ29uc3RydWN0b3IpIH07CisK
IHRlbXBsYXRlPD4gSlNWYWx1ZSBKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0RPTUNvbnN0cnVj
dG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTE1OCw4
ICsxNjAsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kCiAgICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNFeHBvc2VkVG9Xb3Jr
ZXJBbmRXaW5kb3dET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRXhwb3NlZFRvV29ya2VyQW5k
V2luZG93IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0RPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBI
YXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVl
IEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNQYWludFdvcmtsZXRH
bG9iYWxTY29wZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCShyZXZpc2lvbiAyNzUx
NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNQYWludFdv
cmtsZXRHbG9iYWxTY29wZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2LDYgKzY2LDggQEAgc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTUGFpbnRXb3JrbAogfTsKIAogc3RhdGljIGNvbnN0
IEhhc2hUYWJsZSBKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlVGFibGUgPSB7IDEsIDEsIHRydWUs
IEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OmluZm8oKSwgSlNQYWludFdvcmtsZXRHbG9iYWxT
Y29wZVRhYmxlVmFsdWVzLCBKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlVGFibGVJbmRleCB9Owor
dGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZURPTUNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJQYWludFdvcmtsZXRHbG9iYWxTY29wZSIsICZCYXNlOjpz
X2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNQYWludFdvcmts
ZXRHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNQ
YWludFdvcmtsZXRHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1
cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7
CiAgICAgcmV0dXJuIEpTV29ya2xldEdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3Rvcih2bSwgJmds
b2JhbE9iamVjdCk7CkBAIC03OCw4ICs4MCw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1BhaW50V29y
a2xldEdsb2JhbFNjb3AKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0
aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNz
SW5mbyBKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsg
IlBhaW50V29ya2xldEdsb2JhbFNjb3BlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlRE9NQ29uc3Ry
dWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29u
c3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZVByb3Rv
dHlwZVRhYmxlSW5kZXhbMl0gPSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZS5jcHAJKHJldmlzaW9uIDI3NTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTY2LDYgKzY2LDggQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpT
U2VydmljZVdvcgogfTsKIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZVRhYmxlID0geyAxLCAxLCB0cnVlLCBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZTo6aW5mbygpLCBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZVRhYmxlVmFsdWVzLCBKU1NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZVRhYmxlSW5kZXggfTsKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJ
bmZvIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsg
IlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVET01Db25z
dHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29u
c3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNXb3Jr
ZXJHbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3Iodm0sICZnbG9iYWxPYmplY3QpOwpAQCAtNzgs
OCArODAsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvCiAgICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGVET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBI
YXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0
SGFzaEluZGV4IEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlUHJvdG90eXBlVGFibGVJbmRleFsy
XSA9IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RDRVJlYWN0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zLmNwcAkocmV2aXNpb24gMjc1MTU5KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rp
b25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDYgKzEwNyw4IEBAIFNUQVRJQ19BU1NFUlRf
SVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0Q0VSZWFjdGlvbnNET01D
b25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdENFUmVh
Y3Rpb25zPjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0Q0VSZWFjdGlvbnNE
T01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdENFUmVhY3Rpb25zIiwgJkJhc2U6OnNfaW5m
bywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RDRVJlYWN0aW9u
c0RPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0Q0VSZWFjdGlv
bnNET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25z
dCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2
bSk7CkBAIC0xMjAsOCArMTIyLDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdENFUmVhY3Rpb25z
RE9NQ29ucwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051
bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdENFUmVhY3Rpb25zRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RDRVJlYWN0aW9u
cyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNUZXN0Q0VSZWFjdGlvbnNET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3Ig
cHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RDRVJlYWN0
aW9uc1Byb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcAkocmV2aXNpb24gMjc1MTU5KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZp
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Myw2ICs5Myw4IEBAIFNUQVRJQ19BU1NFUlRfSVNP
X1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
ZmllckRPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcj47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAi
VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJET01D
b25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdENFUmVhY3Rpb25zU3Ry
aW5naWZpZXJET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZt
LCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9Q
QVJBTSh2bSk7CkBAIC0xMDYsOCArMTA4LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdENFUmVh
Y3Rpb25zU3RyaW5naQogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3Ro
LCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0g
eyAiVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBu
dWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJE
T01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0
YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyUHJv
dG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Q1NTUHJvcGVydHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDU1NQcm9wZXJ0eS5jcHAJKHJl
dmlzaW9uIDI3NTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDU1NQcm9wZXJ0eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg3LDYgKzg3LDggQEAg
U1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3RD
U1NQcm9wZXJ0eURPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFi
bGU8SlNUZXN0Q1NTUHJvcGVydHk+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rl
c3RDU1NQcm9wZXJ0eURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0Q1NTUHJvcGVydHki
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpT
VGVzdENTU1Byb3BlcnR5RE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBK
U1Rlc3RDU1NQcm9wZXJ0eURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlND
OjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKHZtKTsKQEAgLTEwMCw4ICsxMDIsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNU
ZXN0Q1NTUHJvcGVydHlET01Db25zCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25z
dCBDbGFzc0luZm8gSlNUZXN0Q1NTUHJvcGVydHlET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAi
VGVzdENTU1Byb3BlcnR5IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU1Rlc3RDU1NQcm9wZXJ0eURPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBI
YXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVl
IEpTVGVzdENTU1Byb3BlcnR5UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dENhbGxUcmFjZXIuY3BwCShyZXZpc2lvbiAyNzUxNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEyMyw2ICsxMjMsOCBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0Q2Fs
bFRyCiAKIHN0YXRpY19hc3NlcnQoVGVzdENhbGxUcmFjZXI6OnRlc3RDb25zdFZhbHVlID09IGZh
bHNlLCAidGVzdENvbnN0VmFsdWUgaW4gVGVzdENhbGxUcmFjZXIgZG9lcyBub3QgbWF0Y2ggdmFs
dWUgZnJvbSBJREwiKTsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0Q2FsbFRy
YWNlckRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0Q2FsbFRyYWNlciIsICZCYXNlOjpz
X2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q2FsbFRy
YWNlckRPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0Q2FsbFRy
YWNlckRPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNv
bnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFN
KHZtKTsKQEAgLTEzNyw4ICsxMzksNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0Q2FsbFRyYWNl
ckRPTUNvbnN0CiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3RDYWxsVHJhY2Vy
OjppbmZvKCksIEpTVGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvclRhYmxlVmFsdWVzLCAqdGhpcyk7
CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdENhbGxUcmFjZXJET01Db25z
dHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdENhbGxUcmFjZXIiLCAmQmFzZTo6c19pbmZvLCBudWxs
cHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdENhbGxUcmFjZXJET01Db25z
dHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlVGFibGVWYWx1ZXNb
XSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q2FsbGJhY2tJbnRlcmZhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0ludGVyZmFjZS5jcHAJKHJldmlzaW9u
IDI3NTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RDYWxsYmFja0ludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MSw2ICsxNTEsOCBA
QCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0Q2FsbGJhCiBzdGF0aWNfYXNzZXJ0
KFRlc3RDYWxsYmFja0ludGVyZmFjZTo6Q09OU1RBTlQxID09IDEsICJDT05TVEFOVDEgaW4gVGVz
dENhbGxiYWNrSW50ZXJmYWNlIGRvZXMgbm90IG1hdGNoIHZhbHVlIGZyb20gSURMIik7CiBzdGF0
aWNfYXNzZXJ0KFRlc3RDYWxsYmFja0ludGVyZmFjZTo6Q09OU1RBTlQyID09IDIsICJDT05TVEFO
VDIgaW4gVGVzdENhbGxiYWNrSW50ZXJmYWNlIGRvZXMgbm90IG1hdGNoIHZhbHVlIGZyb20gSURM
Iik7CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdENhbGxiYWNrSW50ZXJmYWNl
RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RDYWxsYmFja0ludGVyZmFjZSIsICZCYXNl
OjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q2Fs
bGJhY2tJbnRlcmZhY2VET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpT
VGVzdENhbGxiYWNrSW50ZXJmYWNlRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVy
ZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsK
ICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMTY1LDggKzE2Nyw2IEBAIHRlbXBsYXRlPD4gdm9p
ZCBKU1Rlc3RDYWxsYmFja0ludGVyZmFjZUQKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0s
IG51bGxwdHIsIEpTVGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3JUYWJsZVZhbHVlcywg
KnRoaXMpOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDYWxsYmFja0lu
dGVyZmFjZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0Q2FsbGJhY2tJbnRlcmZhY2Ui
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpT
VGVzdENhbGxiYWNrSW50ZXJmYWNlRE9NQ29uc3RydWN0b3IpIH07Ci0KIEpTVmFsdWUgSlNUZXN0
Q2FsbGJhY2tJbnRlcmZhY2U6OmdldENvbnN0cnVjdG9yKFZNJiB2bSwgY29uc3QgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNU
ZXN0Q2FsbGJhY2tJbnRlcmZhY2VET01Db25zdHJ1Y3Rvcj4odm0sICpqc0Nhc3Q8Y29uc3QgSlNE
T01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMjc1
MTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENs
YXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIsNiAr
ODIsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5n
IEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yRE9NQ29uc3RydWN0b3IgPSBKU0RP
TUJ1aWx0aW5Db25zdHJ1Y3RvcjxKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvcj47
CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNv
bnN0cnVjdG9yRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RDbGFzc1dpdGhKU0J1aWx0
aW5Db25zdHJ1Y3RvciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9N
RVRIT0RfVEFCTEUoSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JET01Db25zdHJ1
Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNv
bnN0cnVjdG9yRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2
bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURf
UEFSQU0odm0pOwpAQCAtMTAwLDggKzEwMiw2IEBAIHRlbXBsYXRlPD4gRnVuY3Rpb25FeGVjdXRh
YmxlKiBKU1Rlc3RDbGEKICAgICByZXR1cm4gdGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVj
dG9ySW5pdGlhbGl6ZVRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvZGVHZW5lcmF0
b3Iodm0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDbGFzc1dpdGhK
U0J1aWx0aW5Db25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0Q2xhc3NX
aXRoSlNCdWlsdGluQ29uc3RydWN0b3IiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9y
RE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBz
dGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3Ry
dWN0b3JQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlcy5jcHAJKHJldmlzaW9uIDI3NTE1OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTc1LDYgKzE3NSw4IEBAIHN0YXRpY19hc3NlcnQoVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXM6OkMKIHN0YXRpY19hc3NlcnQoVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM6
OlBBUlRJQUxfTUlYSU5fQ09OU1RBTlRfRlJPTV9QQVJUSUFMID09IDUsICJQQVJUSUFMX01JWElO
X0NPTlNUQU5UX0ZST01fUEFSVElBTCBpbiBUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyBkb2VzIG5v
dCBtYXRjaCB2YWx1ZSBmcm9tIElETCIpOwogI2VuZGlmCiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xh
c3NJbmZvIEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0g
eyAiVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNET01Db25z
dHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25z
dCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2
bSk7CkBAIC0yMTMsOCArMjE1LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdENvbmRpdGlvbmFs
SW5jbHVkZQogI2VuZGlmCiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXNET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXMiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNET01Db25zdHJ1Y3RvcikgfTsKLQog
LyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVW
YWx1ZSBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUuY3BwCShyZXZp
c2lvbiAyNzUxNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNyw2
ICsxMzcsOCBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0Q29uZGl0CiB9Owog
CiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVUYWJs
ZSA9IHsgMiwgNywgdHJ1ZSwgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZTo6aW5mbygpLCBK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlVGFibGVWYWx1ZXMsIEpTVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVUYWJsZUluZGV4IH07Cit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlRE9NQ29uc3Ry
dWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29u
c3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0o
dm0pOwpAQCAtMTUwLDggKzE1Miw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RDb25kaXRpb25h
bGx5UmVhZFcKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNO
dW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlRE9NQ29u
c3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMg
Y29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVByb3RvdHlw
ZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAJKHJldmlzaW9uIDI3NTE1OSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDQsNiArNTA0LDggQEAgU1RBVElDX0FTU0VSVF9JU09f
U1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3RET01KSVRET01Db25zdHJ1Y3Rv
ciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdERPTUpJVD47CiAKK3Rl
bXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdERPTUpJVERPTUNvbnN0cnVjdG9yOjpzX2lu
Zm8gPSB7ICJUZXN0RE9NSklUIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU1Rlc3RET01KSVRET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxh
dGU8PiBKU1ZhbHVlIEpTVGVzdERPTUpJVERPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1
Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qp
CiB7CiAgICAgcmV0dXJuIEpTTm9kZTo6Z2V0Q29uc3RydWN0b3Iodm0sICZnbG9iYWxPYmplY3Qp
OwpAQCAtNTE2LDggKzUxOCw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RET01KSVRET01Db25z
dHJ1Y3QKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1i
ZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rl
c3RET01KSVRET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdERPTUpJVCIsICZCYXNlOjpz
X2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RE9NSklU
RE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBz
dGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0RE9NSklUUHJvdG90eXBlVGFibGVWYWx1
ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RGVmYXVsdFRvSlNPTi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT04uY3BwCShyZXZpc2lvbiAyNzUx
NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVm
YXVsdFRvSlNPTi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Miw2ICsxNDIsOCBAQCBTVEFUSUNf
QVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdERlZmF1bHRU
b0pTT05ET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpT
VGVzdERlZmF1bHRUb0pTT04+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RE
ZWZhdWx0VG9KU09ORE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3REZWZhdWx0VG9KU09O
IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShK
U1Rlc3REZWZhdWx0VG9KU09ORE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1
ZSBKU1Rlc3REZWZhdWx0VG9KU09ORE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVy
ZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsK
ICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMTU1LDggKzE1Nyw2IEBAIHRlbXBsYXRlPD4gdm9p
ZCBKU1Rlc3REZWZhdWx0VG9KU09ORE9NQ28KICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+
IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3REZWZhdWx0VG9KU09ORE9NQ29uc3RydWN0b3I6OnNfaW5m
byA9IHsgIlRlc3REZWZhdWx0VG9KU09OIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3REZWZhdWx0VG9KU09ORE9NQ29uc3RydWN0b3Ip
IH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFz
aFRhYmxlVmFsdWUgSlNUZXN0RGVmYXVsdFRvSlNPTlByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1
bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5
RXhwb3NlZC5jcHAJKHJldmlzaW9uIDI3NTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC05Myw2ICs5Myw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQ
QUNFX1NIQVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlF
eHBvc2VkRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxK
U1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQ+OwogCit0ZW1wbGF0ZTw+IGNvbnN0
IENsYXNzSW5mbyBKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRET01Db25zdHJ1
Y3Rvcjo6c19pbmZvID0geyAiVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZCIsICZC
YXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0
RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBs
YXRlPD4gSlNWYWx1ZSBKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRET01Db25z
dHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUds
b2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0x
MDYsOCArMTA4LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZQog
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdERlZmF1
bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZERPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0
RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRC
eUV4cG9zZWRET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBl
ICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3REZWZhdWx0VG9KU09ORmls
dGVyZWRCeUV4cG9zZWRQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJ
bmhlcml0YW5jZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlLmNwcAko
cmV2aXNpb24gMjc1MTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODAsNiArODAsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJM
RShKU1RlCiAKIHVzaW5nIEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlRE9N
Q29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3REZWZh
dWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZT47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlRE9NQ29uc3RydWN0b3I6
OnNfaW5mbyA9IHsgIlRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZSIsICZCYXNl
OjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RGVm
YXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxh
dGU8PiBKU1ZhbHVlIEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlRE9NQ29u
c3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01H
bG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXQ6OmdldENvbnN0cnVjdG9yKHZtLCAmZ2xvYmFsT2JqZWN0KTsKQEAgLTkyLDgg
Kzk0LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcgogICAgIHB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdERlZmF1bHRUb0pT
T05JbmRpcmVjdEluaGVyaXRhbmNlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3REZWZh
dWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5o
ZXJpdGFuY2VET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBl
ICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3REZWZhdWx0VG9KU09OSW5k
aXJlY3RJbmhlcml0YW5jZVByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQuY3BwCShyZXZpc2lvbiAyNzUxNTkpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsNiArMTA3LDggQEAgU1RBVElDX0FT
U0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdERPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFi
bGU8SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQ+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNz
SW5mbyBKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdERPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7
ICJUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RE9NQ29u
c3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3REZWZhdWx0VG9KU09OSW5o
ZXJpdERPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNv
bnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTVGVz
dERlZmF1bHRUb0pTT046OmdldENvbnN0cnVjdG9yKHZtLCAmZ2xvYmFsT2JqZWN0KTsKQEAgLTEx
OSw4ICsxMjEsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyCiAg
ICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXRET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdERPTUNvbnN0cnVjdG9yKSB9OwotCiAv
KiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZh
bHVlIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXRGaW5hbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwuY3Bw
CShyZXZpc2lvbiAyNzUxNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwOSw2ICsxMDksOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShK
U1RlCiAKIHVzaW5nIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxET01Db25zdHJ1Y3Rv
ciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdERlZmF1bHRUb0pTT05J
bmhlcml0RmluYWw+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3REZWZhdWx0
VG9KU09OSW5oZXJpdEZpbmFsRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3REZWZhdWx0
VG9KU09OSW5oZXJpdEZpbmFsIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRE9NQ29uc3Ry
dWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJp
dEZpbmFsRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwg
Y29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQ6OmdldENvbnN0cnVjdG9yKHZtLCAmZ2xvYmFsT2JqZWN0
KTsKQEAgLTEyMSw4ICsxMjMsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0RGVmYXVsdFRvSlNP
TkluaGVyCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVt
YmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbERPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5h
bERPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAog
c3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Rmlu
YWxQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REb21haW5TZWN1cml0eS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERvbWFpblNlY3Vy
aXR5LmNwcAkocmV2aXNpb24gMjc1MTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdERvbWFpblNlY3VyaXR5LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTExLDYgKzExMSw4IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3REb21haW4K
IH07CiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0RG9tYWluU2VjdXJpdHlUYWJsZSA9
IHsgMSwgMSwgdHJ1ZSwgSlNUZXN0RG9tYWluU2VjdXJpdHk6OmluZm8oKSwgSlNUZXN0RG9tYWlu
U2VjdXJpdHlUYWJsZVZhbHVlcywgSlNUZXN0RG9tYWluU2VjdXJpdHlUYWJsZUluZGV4IH07Cit0
ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3REb21haW5TZWN1cml0eURPTUNvbnN0cnVj
dG9yOjpzX2luZm8gPSB7ICJUZXN0RG9tYWluU2VjdXJpdHkiLCAmQmFzZTo6c19pbmZvLCBudWxs
cHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdERvbWFpblNlY3VyaXR5RE9N
Q29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3REb21haW5TZWN1cml0
eURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0
IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZt
KTsKQEAgLTEyNCw4ICsxMjYsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0RG9tYWluU2VjdXJp
dHlET01DCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVt
YmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNU
ZXN0RG9tYWluU2VjdXJpdHlET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdERvbWFpblNl
Y3VyaXR5IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3REb21haW5TZWN1cml0eURPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRh
YmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVz
dERvbWFpblNlY3VyaXR5UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwCShyZXZpc2lvbiAyNzUxNTkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEzMiw2ICsxMzIsOCBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxl
VmFsdWUgSlNUZXN0RW5hYmxlCiAKIHN0YXRpY19hc3NlcnQoVGVzdEVuYWJsZWRCeVNldHRpbmc6
OmVuYWJsZWRCeVNldHRpbmdDb25zdGFudCA9PSAwLCAiZW5hYmxlZEJ5U2V0dGluZ0NvbnN0YW50
IGluIFRlc3RFbmFibGVkQnlTZXR0aW5nIGRvZXMgbm90IG1hdGNoIHZhbHVlIGZyb20gSURMIik7
CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEVuYWJsZWRCeVNldHRpbmdET01D
b25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdEVuYWJsZWRCeVNldHRpbmciLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEVuYWJsZWRC
eVNldHRpbmdET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdEVu
YWJsZWRCeVNldHRpbmdET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6
Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVO
VVNFRF9QQVJBTSh2bSk7CkBAIC0xNTIsOCArMTU0LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVz
dEVuYWJsZWRCeVNldHRpbmdETwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0lu
Zm8gSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0RPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0
RW5hYmxlZEJ5U2V0dGluZyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0RPTUNvbnN0cnVjdG9yKSB9Owot
CiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJs
ZVZhbHVlIEpTVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVk
Rm9yQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRGb3JDb250ZXh0LmNwcAkocmV2aXNpb24gMjc1MTU5
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJs
ZWRGb3JDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsNiArODQsOCBAQCBTVEFUSUNf
QVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdEVuYWJsZWRG
b3JDb250ZXh0RE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJs
ZTxKU1Rlc3RFbmFibGVkRm9yQ29udGV4dD47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RF
bmFibGVkRm9yQ29udGV4dCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNUZXN0RW5hYmxlZEZvckNvbnRleHRET01Db25zdHJ1Y3RvcikgfTsK
KwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0RE9NQ29uc3RydWN0
b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxP
YmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtOTcsOCAr
OTksNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0RW5hYmxlZEZvckNvbnRleHRECiAgICAgcHV0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RW5hYmxlZEZvckNv
bnRleHRET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdEVuYWJsZWRGb3JDb250ZXh0Iiwg
JkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rl
c3RFbmFibGVkRm9yQ29udGV4dERPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZv
ciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEVuYWJs
ZWRGb3JDb250ZXh0UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEV2ZW50Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAyNzUxNTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE5MCw2ICsxOTAsOCBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTExfCiB9CiBKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU1Rlc3RFdmVu
dENvbnN0cnVjdG9yRE9NQ29uc3RydWN0b3JDb25zdHJ1Y3QsIEpTVGVzdEV2ZW50Q29uc3RydWN0
b3JET01Db25zdHJ1Y3Rvcjo6Y29uc3RydWN0KTsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0lu
Zm8gSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0
RXZlbnRDb25zdHJ1Y3RvciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yKSB9Owor
CiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9y
Ojpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTRXZlbnQ6OmdldENvbnN0cnVjdG9y
KHZtLCAmZ2xvYmFsT2JqZWN0KTsKQEAgLTIwMiw4ICsyMDQsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQg
SlNUZXN0RXZlbnRDb25zdHJ1Y3RvckRPCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBj
b25zdCBDbGFzc0luZm8gSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yOjpzX2lu
Zm8gPSB7ICJUZXN0RXZlbnRDb25zdHJ1Y3RvciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckRPTUNvbnN0
cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNv
bnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGVUYWJsZVZh
bHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFdmVudFRhcmdldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAkocmV2aXNpb24gMjc1MTU5
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50
VGFyZ2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTEsNiArOTEsOCBAQCBTVEFUSUNfQVNTRVJU
X0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdEV2ZW50VGFyZ2V0RE9N
Q29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RFdmVu
dFRhcmdldD47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEV2ZW50VGFyZ2V0
RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RFdmVudFRhcmdldCIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RXZlbnRUYXJn
ZXRET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdEV2ZW50VGFy
Z2V0RE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29u
c3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNFdmVu
dFRhcmdldDo6Z2V0Q29uc3RydWN0b3Iodm0sICZnbG9iYWxPYmplY3QpOwpAQCAtMTAzLDggKzEw
NSw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RFdmVudFRhcmdldERPTUNvbnMKICAgICBwdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RFdmVudFRhcmdldERP
TUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0RXZlbnRUYXJnZXQiLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEV2ZW50VGFyZ2V0
RE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBz
dGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVUYWJs
ZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFeGNlcHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCShyZXZpc2lvbiAyNzUxNTkp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0
aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsNiArODQsOCBAQCBTVEFUSUNfQVNTRVJUX0lT
T19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdEV4Y2VwdGlvbkRPTUNvbnN0
cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0RXhjZXB0aW9u
PjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RXhjZXB0aW9uRE9NQ29uc3Ry
dWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RFeGNlcHRpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRy
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEV4Y2VwdGlvbkRPTUNvbnN0cnVj
dG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0RXhjZXB0aW9uRE9NQ29uc3RydWN0
b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxP
YmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtOTcsOCAr
OTksNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0RXhjZXB0aW9uRE9NQ29uc3RyCiAgICAgcHV0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RXhjZXB0aW9uRE9N
Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RFeGNlcHRpb24iLCAmQmFzZTo6c19pbmZvLCBu
dWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEV4Y2VwdGlvbkRPTUNv
bnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZVRhYmxlVmFsdWVz
W10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAkocmV2
aXNpb24gMjc1MTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NCw2ICs4
NCw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAogdXNpbmcg
SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZURPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rv
ck5vdENvbnN0cnVjdGFibGU8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZT47CiAKK3RlbXBsYXRl
PD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVET01Db25zdHJ1Y3Rv
cjo6c19pbmZvID0geyAiVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUiLCAmQmFzZTo6c19pbmZvLCBu
dWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGVET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGVET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6
Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVO
VVNFRF9QQVJBTSh2bSk7CkBAIC05Nyw4ICs5OSw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmwKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxl
bmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENs
YXNzSW5mbyBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIlRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVs
bHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlRE9NQ29u
c3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMg
Y29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZVRh
YmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9u
IDI3NTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RHbG9iYWxPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MDcsNiArNjA3LDggQEAgc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEdsb2JhbAogI2VuZGlmCiB9OwogCit0ZW1w
bGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RHbG9iYWxPYmplY3RET01Db25zdHJ1Y3Rvcjo6
c19pbmZvID0geyAiVGVzdEdsb2JhbE9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0R2xvYmFsT2JqZWN0RE9NQ29uc3RydWN0
b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RHbG9iYWxPYmplY3RET01Db25zdHJ1
Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2Jh
bE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC02MjEs
OCArNjIzLDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdEdsb2JhbE9iamVjdERPTUNvbgogICAg
IHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0R2xvYmFsT2JqZWN0OjppbmZvKCksIEpT
VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yVGFibGVWYWx1ZXMsICp0aGlzKTsKIH0KIAotdGVt
cGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0R2xvYmFsT2JqZWN0RE9NQ29uc3RydWN0b3I6
OnNfaW5mbyA9IHsgIlRlc3RHbG9iYWxPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBu
dWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEdsb2JhbE9iamVjdERPTUNvbnN0cnVj
dG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0
IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdEdsb2JhbE9iamVjdFByb3RvdHlwZVRhYmxl
SW5kZXhbMl0gPSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJO
b0lkZW50aWZpZXIuY3BwCShyZXZpc2lvbiAyNzUxNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTgzLDYgKzgzLDggQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BB
Q0VfU0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
RE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyPjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8g
SlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7
ICJUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRp
ZmllckRPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0SW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUo
SlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAg
ICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTk2LDggKzk4LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpT
VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZQogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkg
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29u
c3QgQ2xhc3NJbmZvIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3Rv
cjo6c19pbmZvID0geyAiVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIiLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3Ig
cHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93
aW5nRXhjZXB0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAko
cmV2aXNpb24gMjc1MTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTgzLDYgKzgzLDggQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUo
SlNUZQogCiB1c2luZyBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25ET01Db25z
dHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdEluZGV4ZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbj47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yOjpzX2luZm8g
PSB7ICJUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uIiwgJkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RJbmRleGVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb25ET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVl
IEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yOjpwcm90
b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBn
bG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTk2LDggKzk4LDYgQEAg
dGVtcGxhdGU8PiB2b2lkIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvdwogICAgIHB1dERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9
CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0SW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25ET01Db25z
dHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Q
cm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCShyZXZpc2lvbiAyNzUxNTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTAsNiArOTAsOCBAQCBTVEFUSUNf
QVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENv
bnN0cnVjdGFibGU8SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyPjsKIAordGVtcGxh
dGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyRE9N
Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIi
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpT
VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1w
bGF0ZTw+IEpTVmFsdWUgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3Ry
dWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMTAz
LDggKzEwNSw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aEkKICAg
ICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyRE9N
Q29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0
aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAkocmV2
aXNpb24gMjc1MTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4Nyw2ICsyODcsOCBAQCB0
ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfCiB9CiBKU0NfQU5OT1RBVEVf
SE9TVF9GVU5DVElPTihKU1Rlc3RJbnRlcmZhY2VET01Db25zdHJ1Y3RvckNvbnN0cnVjdCwgSlNU
ZXN0SW50ZXJmYWNlRE9NQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk7CiAKK3RlbXBsYXRlPD4gY29u
c3QgQ2xhc3NJbmZvIEpTVGVzdEludGVyZmFjZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJU
ZXN0SW50ZXJmYWNlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3RJbnRlcmZhY2VET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8
PiBKU1ZhbHVlIEpTVGVzdEludGVyZmFjZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1
Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qp
CiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTMwMSw4ICszMDMsNiBAQCB0ZW1wbGF0ZTw+
IHZvaWQgSlNUZXN0SW50ZXJmYWNlRE9NQ29uc3RyCiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVz
KHZtLCBKU1Rlc3RJbnRlcmZhY2U6OmluZm8oKSwgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JU
YWJsZVZhbHVlcywgKnRoaXMpOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rl
c3RJbnRlcmZhY2VET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdEludGVyZmFjZSIsICZC
YXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0
SW50ZXJmYWNlRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlw
ZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0SW50ZXJmYWNlUHJvdG90
eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2VMZWFkaW5nVW5kZXJzY29yZS5jcHAJKHJldmlzaW9uIDI3NTE1OSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0LDYgKzg0LDggQEAgU1RBVElDX0FTU0VSVF9J
U09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5n
VW5kZXJzY29yZURPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFi
bGU8SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmU+OwogCit0ZW1wbGF0ZTw+IGNvbnN0
IENsYXNzSW5mbyBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZURPTUNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUiLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEludGVyZmFj
ZUxlYWRpbmdVbmRlcnNjb3JlRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1
ZSBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5
cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTk3LDggKzk5LDYgQEAgdGVt
cGxhdGU8PiB2b2lkIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbgogICAgIHB1dERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAK
LXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNj
b3JlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVET01Db25zdHJ1Y3RvcikgfTsKLQog
LyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVW
YWx1ZSBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZVByb3RvdHlwZVRhYmxlVmFsdWVz
W10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEl0ZXJhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwCShyZXZpc2lvbiAyNzUxNTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC05Myw2ICs5Myw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNF
X1NIQVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0SXRlcmFibGVET01Db25zdHJ1Y3RvciA9IEpT
RE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdEl0ZXJhYmxlPjsKIAordGVtcGxh
dGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0SXRlcmFibGVET01Db25zdHJ1Y3Rvcjo6c19pbmZv
ID0geyAiVGVzdEl0ZXJhYmxlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU1Rlc3RJdGVyYWJsZURPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1w
bGF0ZTw+IEpTVmFsdWUgSlNUZXN0SXRlcmFibGVET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9y
U3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2Jq
ZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0xMDYsOCArMTA4LDYgQEAgdGVtcGxh
dGU8PiB2b2lkIEpTVGVzdEl0ZXJhYmxlRE9NQ29uc3RydQogICAgIHB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRl
bXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEl0ZXJhYmxlRE9NQ29uc3RydWN0b3I6OnNf
aW5mbyA9IHsgIlRlc3RJdGVyYWJsZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0SXRlcmFibGVET01Db25zdHJ1Y3RvcikgfTsKLQog
LyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVW
YWx1ZSBKU1Rlc3RJdGVyYWJsZVByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAyNzUxNTkpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SlNCdWlsdGlu
Q29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4Nyw4IEBAIFNUQVRJQ19B
U1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0SlNCdWlsdGlu
Q29uc3RydWN0b3JET01Db25zdHJ1Y3RvciA9IEpTRE9NQnVpbHRpbkNvbnN0cnVjdG9yPEpTVGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yPjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNU
ZXN0SlNCdWlsdGluQ29uc3RydWN0b3JET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdEpT
QnVpbHRpbkNvbnN0cnVjdG9yIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9y
KSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JET01D
b25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RP
TUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBA
IC0xMDUsOCArMTA3LDYgQEAgdGVtcGxhdGU8PiBGdW5jdGlvbkV4ZWN1dGFibGUqIEpTVGVzdEpT
QgogICAgIHJldHVybiB0ZXN0SlNCdWlsdGluQ29uc3RydWN0b3JJbml0aWFsaXplVGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yQ29kZUdlbmVyYXRvcih2bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3Qg
Q2xhc3NJbmZvIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yRE9NQ29uc3RydWN0b3I6OnNfaW5m
byA9IHsgIlRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JE
T01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0
YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3Rv
dHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeUZhY3Rv
cnlGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDI3NTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04Niw2ICs4Niw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NI
QVJBQkxFKEpTVGUKIHVzaW5nIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkRPTUNvbnN0cnVj
dG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0TGVnYWN5RmFjdG9y
eUZ1bmN0aW9uPjsKIHVzaW5nIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkxlZ2FjeUZhY3Rv
cnlGdW5jdGlvbiA9IEpTRE9NTGVnYWN5RmFjdG9yeUZ1bmN0aW9uPEpTVGVzdExlZ2FjeUZhY3Rv
cnlGdW5jdGlvbj47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdExlZ2FjeUZh
Y3RvcnlGdW5jdGlvbkRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TGVnYWN5RmFjdG9y
eUZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25ET01Db25zdHJ1Y3RvcikgfTsKKwog
dGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkRPTUNvbnN0cnVj
dG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTk5LDgg
KzEwMSw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3QKICAgICBw
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMSksIEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RMZWdhY3lGYWN0
b3J5RnVuY3Rpb25ET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdExlZ2FjeUZhY3RvcnlG
dW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uRE9NQ29uc3RydWN0b3IpIH07Ci0KIHRl
bXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTIEpTVGVzdExl
Z2FjeUZhY3RvcnlGdW5jdGlvbkxlZ2FjeUZhY3RvcnlGdW5jdGlvbjo6Y29uc3RydWN0KEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsK
ICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMTM0LDYgKzEzNCw4
IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF8KIH0KIEpTQ19BTk5P
VEFURV9IT1NUX0ZVTkNUSU9OKEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkxlZ2FjeUZhY3Rv
cnlGdW5jdGlvbkNvbnN0cnVjdCwgSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uTGVnYWN5RmFj
dG9yeUZ1bmN0aW9uOjpjb25zdHJ1Y3QpOwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBK
U1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25MZWdhY3lGYWN0b3J5RnVuY3Rpb246OnNfaW5mbyA9
IHsgIkF1ZGlvIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25MZWdhY3lGYWN0b3J5RnVuY3Rpb24p
IH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25MZWdh
Y3lGYWN0b3J5RnVuY3Rpb246OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29u
c3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0o
dm0pOwpAQCAtMTQ3LDggKzE0OSw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RMZWdhY3lGYWN0
b3J5RnVuY3QKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNO
dW1iZXIoMSksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBK
U1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25MZWdhY3lGYWN0b3J5RnVuY3Rpb246OnNfaW5mbyA9
IHsgIkF1ZGlvIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25MZWdhY3lGYWN0b3J5RnVuY3Rpb24p
IH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFz
aFRhYmxlVmFsdWUgSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uUHJvdG90eXBlVGFibGVWYWx1
ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMu
Y3BwCShyZXZpc2lvbiAyNzUxNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTkxLDYgKzkxLDggQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNU
ZQogCiB1c2luZyBKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zRE9NQ29uc3RydWN0b3IgPSBK
U0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0
SW5zPjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TGVnYWN5T3ZlcnJpZGVC
dWlsdEluc0RPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TGVnYWN5T3ZlcnJpZGVCdWls
dElucyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0RPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1w
bGF0ZTw+IEpTVmFsdWUgSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0RPTUNvbnN0cnVjdG9y
Ojpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTEwNCw4ICsx
MDYsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsCiAgICAgcHV0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TGVnYWN5T3ZlcnJp
ZGVCdWlsdEluc0RPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TGVnYWN5T3ZlcnJpZGVC
dWlsdElucyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0RPTUNvbnN0cnVjdG9yKSB9OwotCiAv
KiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZh
bHVlIEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBM
aWtlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TWFwTGlrZS5jcHAJKHJldmlzaW9uIDI3NTE1OSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTAwLDYgKzEwMCw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJB
QkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0TWFwTGlrZURPTUNvbnN0cnVjdG9yID0gSlNET01Db25z
dHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0TWFwTGlrZT47CiAKK3RlbXBsYXRlPD4gY29u
c3QgQ2xhc3NJbmZvIEpTVGVzdE1hcExpa2VET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVz
dE1hcExpa2UiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTVGVzdE1hcExpa2VET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1Zh
bHVlIEpTVGVzdE1hcExpa2VET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpT
Qzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAg
IFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0xMTMsOCArMTE1LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpT
VGVzdE1hcExpa2VET01Db25zdHJ1YwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkg
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29u
c3QgQ2xhc3NJbmZvIEpTVGVzdE1hcExpa2VET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVz
dE1hcExpa2UiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTVGVzdE1hcExpa2VET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBm
b3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RNYXBM
aWtlUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAyNzUx
NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw2
ICsxMDMsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVz
aW5nIEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNET01Db25zdHJ1Y3RvciA9
IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnM+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RNYXBM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0
ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zRE9NQ29uc3RydWN0b3I6OnByb3RvdHlw
ZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2Jh
bE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMTE2LDggKzExOCw2IEBAIHRl
bXBsYXRlPD4gdm9pZCBKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWQKICAgICBwdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQog
Ci10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RNYXBMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zRE9NQ29u
c3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMg
Y29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c1Byb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAJKHJldmlzaW9uIDI3
NTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04
NCw2ICs4NCw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAog
dXNpbmcgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyRE9NQ29uc3RydWN0
b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXI+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZv
ID0geyAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllciIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4g
SlNWYWx1ZSBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1
Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2Jh
bE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC05Nyw4
ICs5OSw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXQKICAgICBw
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3Rv
dHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbi5jcHAJKHJldmlzaW9uIDI3NTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0LDYgKzg0LDggQEAgU1RBVElDX0FT
U0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1
Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb24+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRl
PD4gSlNWYWx1ZSBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkRP
TUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpT
RE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsK
QEAgLTk3LDggKzk5LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dAogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigw
KSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0b3I6OnNfaW5m
byA9IHsgIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIsICZCYXNl
OjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25ET01Db25zdHJ1Y3RvcikgfTsKLQog
LyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVW
YWx1ZSBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvblByb3RvdHlw
ZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCShyZXZpc2lvbiAyNzUxNTkp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2
ICs5Miw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAogdXNp
bmcgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJET01Db25zdHJ1Y3Rv
ciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyPjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIiwgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1w
bGF0ZTw+IEpTVmFsdWUgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJE
T01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBK
U0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7
CkBAIC0xMDUsOCArMTA3LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldAogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJl
cigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3RydWN0b3I6OnNfaW5m
byA9IHsgIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIsICZCYXNlOjpz
X2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFz
aCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZVRhYmxlVmFs
dWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRp
Zmllci5jcHAJKHJldmlzaW9uIDI3NTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04Myw2ICs4Myw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJB
QkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyRE9NQ29uc3Ry
dWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3ROYW1lZERlbGV0
ZXJOb0lkZW50aWZpZXI+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1l
ZERlbGV0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5hbWVk
RGVsZXRlck5vSWRlbnRpZmllciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyRE9NQ29uc3Ry
dWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50
aWZpZXJET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBj
b25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJB
TSh2bSk7CkBAIC05Niw4ICs5OCw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3ROYW1lZERlbGV0
ZXJOb0lkZW4KICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNO
dW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBK
U1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAi
VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVy
RE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBz
dGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVy
UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHJldmlzaW9uIDI3NTE1OSkKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0
ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzLDYgKzgzLDggQEAg
U1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3RO
YW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1
Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24+
OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWREZWxldGVyVGhy
b3dpbmdFeGNlcHRpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3Ry
dWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYg
dm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VE
X1BBUkFNKHZtKTsKQEAgLTk2LDggKzk4LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdE5hbWVk
RGVsZXRlclRocm93aQogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3Ro
LCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0b3I6OnNf
aW5mbyA9IHsgIlRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWREZWxl
dGVyVGhyb3dpbmdFeGNlcHRpb25ET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBm
b3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3ROYW1l
ZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvblByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRl
cldpdGhJZGVudGlmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuY3BwCShy
ZXZpc2lvbiAyNzUxNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04OSw2ICs4OSw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUK
IAogdXNpbmcgSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJET01Db25zdHJ1Y3RvciA9
IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJ
ZGVudGlmaWVyPjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWREZWxl
dGVyV2l0aElkZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5hbWVkRGVs
ZXRlcldpdGhJZGVudGlmaWVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0
cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0TmFtZWREZWxldGVyV2l0aElk
ZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZt
LCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9Q
QVJBTSh2bSk7CkBAIC0xMDIsOCArMTA0LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdE5hbWVk
RGVsZXRlcldpdGhJZAogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3Ro
LCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3RydWN0b3I6OnNfaW5m
byA9IHsgIlRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllciIsICZCYXNlOjpzX2luZm8sIG51
bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWREZWxldGVyV2l0
aElkZW50aWZpZXJET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90
eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3ROYW1lZERlbGV0ZXJX
aXRoSWRlbnRpZmllclByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVk
R2V0dGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCShyZXZpc2lv
biAyNzUxNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04
NCw2ICs4NCw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAog
dXNpbmcgSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJET01Db25zdHJ1Y3RvciA9
IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJ
bmRleGVkR2V0dGVyPjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRE
ZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5h
bWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVs
bHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdl
dHRlckRPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0TmFtZWRE
ZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0
dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQog
ewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC05Nyw4ICs5OSw2IEBAIHRlbXBsYXRlPD4gdm9p
ZCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW4KICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+
IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckRPTUNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIi
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpT
VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8q
IEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFs
dWUgSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVUYWJsZVZhbHVl
c1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZEdldHRlckNhbGxXaXRoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5jcHAJKHJl
dmlzaW9uIDI3NTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMsNiAr
ODMsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5n
IEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0
b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGg+OwogCit0ZW1wbGF0
ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoRE9NQ29uc3RydWN0
b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZEdldHRlckNhbGxXaXRoIiwgJkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZEdldHRlckNh
bGxXaXRoRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3ROYW1l
ZEdldHRlckNhbGxXaXRoRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6
OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBV
TlVTRURfUEFSQU0odm0pOwpAQCAtOTYsOCArOTgsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0
TmFtZWRHZXR0ZXJDYWxsV2l0CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5s
ZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBD
bGFzc0luZm8gSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aERPTUNvbnN0cnVjdG9yOjpzX2luZm8g
PSB7ICJUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aERPTUNv
bnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhQcm90b3R5cGVU
YWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9J
ZGVudGlmaWVyLmNwcAkocmV2aXNpb24gMjc1MTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODMsNiArODMsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9T
SEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyRE9NQ29u
c3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3ROYW1lZEdl
dHRlck5vSWRlbnRpZmllcj47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5h
bWVkR2V0dGVyTm9JZGVudGlmaWVyRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1l
ZEdldHRlck5vSWRlbnRpZmllciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1
Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlm
aWVyRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29u
c3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0o
dm0pOwpAQCAtOTYsOCArOTgsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0TmFtZWRHZXR0ZXJO
b0lkZW50CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVt
YmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNU
ZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVz
dE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckRPTUNv
bnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyUHJvdG90
eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0
dGVyV2l0aElkZW50aWZpZXIuY3BwCShyZXZpc2lvbiAyNzUxNTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmll
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDYgKzg4LDggQEAgU1RBVElDX0FTU0VSVF9JU09f
U1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVu
dGlmaWVyRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxK
U1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyPjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFz
c0luZm8gSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjpzX2lu
Zm8gPSB7ICJUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllciIsICZCYXNlOjpzX2luZm8sIG51
bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRHZXR0ZXJXaXRo
SWRlbnRpZmllckRPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0
TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1
Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qp
CiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTEwMSw4ICsxMDMsNiBAQCB0ZW1wbGF0ZTw+
IHZvaWQgSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxh
dGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckRPTUNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllciIsICZC
YXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0
TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRh
YmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVz
dE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
ck5vSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAkocmV2aXNp
b24gMjc1MTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMsNiAr
ODMsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5n
IEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0
cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcj47CiAK
K3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVy
RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllciIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNU
ZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8
PiBKU1ZhbHVlIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyRE9NQ29uc3RydWN0b3I6OnBy
b3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3Qm
IGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtOTYsOCArOTgsNiBA
QCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50CiAgICAgcHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsK
IH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50
aWZpZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlm
aWVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBI
YXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVl
IEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b24uY3BwCShyZXZpc2lvbiAyNzUxNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTgzLDYgKzgzLDggQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hB
UkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uRE9N
Q29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3ROYW1l
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uPjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8g
SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yOjpzX2luZm8g
PSB7ICJUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIsICZCYXNlOjpzX2luZm8sIG51
bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNU
ZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVG
b3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxP
YmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTk2LDggKzk4LDYgQEAgdGVtcGxh
dGU8PiB2b2lkIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbgogICAgIHB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRl
bXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b25ET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25ET01Db25zdHJ1Y3RvcikgfTsK
LQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFi
bGVWYWx1ZSBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlVGFibGVW
YWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElk
ZW50aWZpZXIuY3BwCShyZXZpc2lvbiAyNzUxNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTg5LDYgKzg5LDggQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0Vf
U0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyRE9N
Q29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3ROYW1l
ZFNldHRlcldpdGhJZGVudGlmaWVyPjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJU
ZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ckRPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlND
OjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKHZtKTsKQEAgLTEwMiw4ICsxMDQsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSWRlCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25z
dCBDbGFzc0luZm8gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBw
cm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE5hbWVkU2V0
dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAJKHJldmlz
aW9uIDI3NTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
OTIsNiArOTIsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAK
IHVzaW5nIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJET01Db25zdHJ1Y3RvciA9
IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXI+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1l
ZFNldHRlcldpdGhJbmRleGVkR2V0dGVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
RE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3ROYW1lZFNldHRl
cldpdGhJbmRleGVkR2V0dGVyRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShK
U0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAg
ICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMTA1LDggKzEwNyw2IEBAIHRlbXBsYXRlPD4gdm9pZCBK
U1Rlc3ROYW1lZFNldHRlcldpdGhJbmQKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNv
bnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyRE9NQ29uc3Ry
dWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyIiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RO
YW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2gg
dGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJ
bmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcAkocmV2aXNpb24gMjc1MTU5KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5Miw4IEBAIFNU
QVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckRPTUNvbnN0cnVjdG9yID0gSlNET01D
b25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlckFuZFNldHRlcj47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0g
eyAiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIiLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkU2V0
dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxh
dGU8PiBKU1ZhbHVlIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJE
T01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBK
U0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7
CkBAIC0xMDUsOCArMTA3LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aEluZAogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJl
cigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJET01Db25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIiLCAmQmFz
ZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJET01Db25zdHJ1Y3RvcikgfTsKLQog
LyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVW
YWx1ZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBl
VGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCShyZXZpc2lvbiAyNzUx
NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTgzLDYgKzgzLDggQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQog
CiB1c2luZyBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zRE9NQ29u
c3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3ROYW1lZFNl
dHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zPjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFz
c0luZm8gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0RPTUNvbnN0
cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWls
dElucyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0RPTUNvbnN0cnVj
dG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
T3ZlcnJpZGVCdWlsdEluc0RPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlND
OjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKHZtKTsKQEAgLTk2LDggKzk4LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVz
dE5hbWVkU2V0dGVyV2l0aExlZwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3Qg
Q2xhc3NJbmZvIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNET01D
b25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnMiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNET01Db25z
dHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzLmNwcAkocmV2aXNpb24gMjc1MTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw2ICsxMDgsOCBAQCBzdGF0aWMgY29u
c3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFtZWRTCiB9OwogCiBzdGF0aWMgY29uc3QgSGFzaFRh
YmxlIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc1RhYmxl
ID0geyAyLCAzLCB0cnVlLCBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3BlcnRpZXM6OmluZm8oKSwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQ
cm9wZXJ0aWVzVGFibGVWYWx1ZXMsIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcGVydGllc1RhYmxlSW5kZXggfTsKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0RPTUNvbnN0cnVj
dG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNET01D
b25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0RPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JT
dHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTEyMSw4ICsxMjMsNiBAQCB0ZW1wbGF0
ZTw+IHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVt
cGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3Jn
ZWFibGVQcm9wZXJ0aWVzRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZFNldHRl
cldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXMiLCAmQmFzZTo6c19pbmZvLCBudWxscHRy
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllc0RPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxl
IGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc1Byb3RvdHlwZVRhYmxlVmFs
dWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcAkocmV2aXNpb24gMjc1MTU5KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsNiArMTA4LDggQEAgc3RhdGljIGNvbnN0IEhh
c2hUYWJsZVZhbHVlIEpTVGVzdE5hbWVkUwogfTsKIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBK
U1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zVGFibGUgPSB7IDIsIDMsIHRydWUsIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM6Omlu
Zm8oKSwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5k
TGVnYWN5T3ZlcnJpZGVCdWlsdEluc1RhYmxlVmFsdWVzLCBKU1Rlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zVGFibGVJ
bmRleCB9OwordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0RPTUNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIsICZCYXNlOjpzX2luZm8sIG51
bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0RPTUNv
bnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0RPTUNv
bnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9N
R2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAg
LTEyMSw4ICsxMjMsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDAp
LCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVC
dWlsdEluc0RPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIsICZCYXNl
OjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVC
dWlsdEluc0RPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUg
Ki8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExl
Z2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5
cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAJKHJldmlzaW9uIDI3NTE1OSkKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTI5LDYgKzEyOSw4IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTF8KIH0KIEpTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKEpTVGVzdE5v
ZGVET01Db25zdHJ1Y3RvckNvbnN0cnVjdCwgSlNUZXN0Tm9kZURPTUNvbnN0cnVjdG9yOjpjb25z
dHJ1Y3QpOwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROb2RlRE9NQ29uc3Ry
dWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROb2RlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVs
bHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROb2RlRE9NQ29uc3RydWN0b3IpIH07CisK
IHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3ROb2RlRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZv
clN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9i
amVjdCkKIHsKICAgICByZXR1cm4gSlNOb2RlOjpnZXRDb25zdHJ1Y3Rvcih2bSwgJmdsb2JhbE9i
amVjdCk7CkBAIC0xNDEsOCArMTQzLDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdE5vZGVET01D
b25zdHJ1Y3RvcgogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBq
c051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdE5vZGVET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5vZGUiLCAmQmFzZTo6
c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5vZGVE
T01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0
YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3ROb2RlUHJvdG90eXBlVGFibGVWYWx1ZXNb
XSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcAkocmV2aXNpb24gMjc1MTU5KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE5NzQsNiArMTk3NCw4IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TF8KIH0KIEpTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKEpTVGVzdE9iakRPTUNvbnN0cnVjdG9y
Q29uc3RydWN0LCBKU1Rlc3RPYmpET01Db25zdHJ1Y3Rvcjo6Y29uc3RydWN0KTsKIAordGVtcGxh
dGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0T2JqRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsg
IlRlc3RPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTVGVzdE9iakRPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFs
dWUgSlNUZXN0T2JqRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZN
JiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVT
RURfUEFSQU0odm0pOwpAQCAtMjAwNCw4ICsyMDA2LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVz
dE9iakRPTUNvbnN0cnVjdG9yOgogI2VuZGlmCiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdE9iakRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0T2JqZWN0IiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RP
YmpET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAK
IHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVl
c1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPcGVyYXRpb25Db25kaXRpb25hbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsLmNwcAko
cmV2aXNpb24gMjc1MTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgs
NiArOTgsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVz
aW5nIEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0
cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbD47CiAKK3Rl
bXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsRE9NQ29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RPcGVyYXRpb25Db25kaXRpb25hbCIsICZCYXNlOjpz
X2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T3BlcmF0
aW9uQ29uZGl0aW9uYWxET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpT
VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVj
dHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkK
IHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMTExLDggKzExMyw2IEBAIHRlbXBsYXRlPD4g
dm9pZCBKU1Rlc3RPcGVyYXRpb25Db25kaXRpb24KICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0
ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbERPTUNvbnN0cnVj
dG9yOjpzX2luZm8gPSB7ICJUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwiLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE9wZXJhdGlvbkNv
bmRpdGlvbmFsRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlw
ZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T3BlcmF0aW9uQ29uZGl0
aW9uYWxQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAJKHJldmlzaW9uIDI3NTE1OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA2LDYgKzIwNiw4IEBAIHRlbXBsYXRlPD4gRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF8KIH0KIEpTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9O
KEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvckNvbnN0cnVjdCwgSlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0RPTUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QpOwogCit0ZW1w
bGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzRE9NQ29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzIiwgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1
ZSBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZv
clN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9i
amVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMjE5LDggKzIyMSw2IEBAIHRlbXBs
YXRlPD4gdm9pZCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWMKICAgICBwdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10
ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzRE9N
Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzIiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUg
Zm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc1Byb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnNXaXRoU2VxdWVuY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVl
bmNlLmNwcAkocmV2aXNpb24gMjc1MTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDksNiArMTQ5LDggQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMXwogfQogSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oSlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yQ29uc3RydWN0LCBK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlRE9NQ29uc3RydWN0b3I6OmNv
bnN0cnVjdCk7CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UiLCAmQmFzZTo6c19pbmZvLCBudWxscHRy
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNXaXRoU2VxdWVuY2VET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VET01Db25zdHJ1Y3Rvcjo6cHJv
dG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0xNjIsOCArMTY0LDYg
QEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1YwogICAgIHB1dERpcmVj
dCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7
CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnNXaXRoU2VxdWVuY2VET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRo
U2VxdWVuY2VET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBl
ICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzV2l0aFNlcXVlbmNlUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0UGx1Z2luSW50ZXJmYWNlLmNwcAkocmV2aXNpb24gMjc1MTU5KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDggQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BB
Q0VfU0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3RQbHVnaW5JbnRlcmZhY2VET01Db25zdHJ1
Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdFBsdWdpbkludGVy
ZmFjZT47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFBsdWdpbkludGVyZmFj
ZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0UGx1Z2luSW50ZXJmYWNlIiwgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RQbHVn
aW5JbnRlcmZhY2VET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVz
dFBsdWdpbkludGVyZmFjZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlND
OjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKHZtKTsKQEAgLTk1LDggKzk3LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVz
dFBsdWdpbkludGVyZmFjZURPTQogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3Qg
Q2xhc3NJbmZvIEpTVGVzdFBsdWdpbkludGVyZmFjZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7
ICJUZXN0UGx1Z2luSW50ZXJmYWNlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RQbHVnaW5JbnRlcmZhY2VET01Db25zdHJ1Y3Rvcikg
fTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNo
VGFibGVWYWx1ZSBKU1Rlc3RQbHVnaW5JbnRlcmZhY2VQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9t
aXNlUmVqZWN0aW9uRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwCShyZXZp
c2lvbiAyNzUxNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkxLDYg
KzE5MSw4IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF8KIH0KIEpT
Q19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudERPTUNv
bnN0cnVjdG9yQ29uc3RydWN0LCBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRET01Db25zdHJ1
Y3Rvcjo6Y29uc3RydWN0KTsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0UHJv
bWlzZVJlamVjdGlvbkV2ZW50RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RQcm9taXNl
UmVqZWN0aW9uRXZlbnQiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudERPTUNvbnN0cnVjdG9yKSB9
OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50RE9NQ29u
c3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01H
bG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNFdmVudDo6Z2V0Q29u
c3RydWN0b3Iodm0sICZnbG9iYWxPYmplY3QpOwpAQCAtMjAzLDggKzIwNSw2IEBAIHRlbXBsYXRl
PD4gdm9pZCBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXYKICAgICBwdXREaXJlY3Qodm0sIHZtLnBy
b3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMiksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1w
bGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRET01Db25z
dHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdFByb21pc2VSZWplY3Rpb25FdmVudCIsICZCYXNlOjpz
X2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50RE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHBy
b3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0UHJvbWlzZVJl
amVjdGlvbkV2ZW50UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVhZE9ubHlNYXBMaWtlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
UmVhZE9ubHlNYXBMaWtlLmNwcAkocmV2aXNpb24gMjc1MTU5KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5TWFwTGlrZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTk3LDYgKzk3LDggQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hB
UkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3RSZWFkT25seU1hcExpa2VET01Db25zdHJ1Y3RvciA9
IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdFJlYWRPbmx5TWFwTGlrZT47
CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFJlYWRPbmx5TWFwTGlrZURPTUNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0UmVhZE9ubHlNYXBMaWtlIiwgJkJhc2U6OnNfaW5m
bywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RSZWFkT25seU1h
cExpa2VET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdFJlYWRP
bmx5TWFwTGlrZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYg
dm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VE
X1BBUkFNKHZtKTsKQEAgLTExMCw4ICsxMTIsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0UmVh
ZE9ubHlNYXBMaWtlRE9NCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5n
dGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFz
c0luZm8gSlNUZXN0UmVhZE9ubHlNYXBMaWtlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRl
c3RSZWFkT25seU1hcExpa2UiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTVGVzdFJlYWRPbmx5TWFwTGlrZURPTUNvbnN0cnVjdG9yKSB9Owot
CiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJs
ZVZhbHVlIEpTVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5
U2V0TGlrZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5U2V0TGlrZS5jcHAJKHJldmlzaW9uIDI3NTE1OSkKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZWFkT25seVNl
dExpa2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Niw2ICs5Niw4IEBAIFNUQVRJQ19BU1NFUlRf
SVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0UmVhZE9ubHlTZXRMaWtl
RE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RS
ZWFkT25seVNldExpa2U+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RSZWFk
T25seVNldExpa2VET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdFJlYWRPbmx5U2V0TGlr
ZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNUZXN0UmVhZE9ubHlTZXRMaWtlRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNW
YWx1ZSBKU1Rlc3RSZWFkT25seVNldExpa2VET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3Ry
dWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0
KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0xMDksOCArMTExLDYgQEAgdGVtcGxhdGU8
PiB2b2lkIEpTVGVzdFJlYWRPbmx5U2V0TGlrZURPTQogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJv
cGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBs
YXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFJlYWRPbmx5U2V0TGlrZURPTUNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJUZXN0UmVhZE9ubHlTZXRMaWtlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0
ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RSZWFkT25seVNldExpa2VET01D
b25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRp
YyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVUYWJs
ZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNv
c3QuY3BwCShyZXZpc2lvbiAyNzUxNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODEsNiArODEsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShK
U1RlCiAKIHVzaW5nIEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdERPTUNvbnN0cnVjdG9yID0g
SlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlD
b3N0PjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0UmVwb3J0RXh0cmFNZW1v
cnlDb3N0RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RSZXBvcnRFeHRyYU1lbW9yeUNv
c3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdERPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0
ZTw+IEpTVmFsdWUgSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0RE9NQ29uc3RydWN0b3I6OnBy
b3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3Qm
IGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtOTQsOCArOTYsNiBA
QCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDCiAgICAgcHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsK
IH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlD
b3N0RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3Qi
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpT
VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdERPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRh
YmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVz
dFJlcG9ydEV4dHJhTWVtb3J5Q29zdFByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5j
cHAJKHJldmlzaW9uIDI3NTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDYsNiArMTA2LDggQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hB
UkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VE
T01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZURPTUNvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIiwgJkJhc2U6OnNf
aW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBK
U1ZhbHVlIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZURPTUNvbnN0cnVjdG9y
Ojpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTExOSw4ICsx
MjEsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhCiAgICAgcHV0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZURPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAog
c3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZVByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlLmNwcAko
cmV2aXNpb24gMjc1MTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFNldExpa2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OSw2ICs5OSw4IEBAIFNU
QVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0U2V0
TGlrZURPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNU
ZXN0U2V0TGlrZT47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFNldExpa2VE
T01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdFNldExpa2UiLCAmQmFzZTo6c19pbmZvLCBu
dWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFNldExpa2VET01Db25z
dHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdFNldExpa2VET01Db25zdHJ1
Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2Jh
bE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0xMTIs
OCArMTE0LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdFNldExpa2VET01Db25zdHJ1YwogICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFNldExpa2VE
T01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdFNldExpa2UiLCAmQmFzZTo6c19pbmZvLCBu
dWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFNldExpa2VET01Db25z
dHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RTZXRMaWtlUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAyNzUxNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMiw2ICsxMDIsOCBAQCBTVEFUSUNfQVNTRVJUX0lT
T19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1
Y3RhYmxlPEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OwogCit0ZW1wbGF0
ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zRE9NQ29uc3RydWN0b3Ip
IH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwg
Y29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFS
QU0odm0pOwpAQCAtMTE1LDggKzExNyw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RTZXRMaWtl
V2l0aE92ZXJyaWQKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwg
anNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5m
byBKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zRE9NQ29uc3RydWN0b3I6OnNf
aW5mbyA9IHsgIlRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zIiwgJkJhc2U6OnNf
aW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RTZXRMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFi
bGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0
U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmlu
Z2lmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuY3BwCShyZXZpc2lvbiAyNzUxNTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4Nyw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQ
QUNFX1NIQVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0U3RyaW5naWZpZXJET01Db25zdHJ1Y3Rv
ciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdFN0cmluZ2lmaWVyPjsK
IAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0U3RyaW5naWZpZXJET01Db25zdHJ1
Y3Rvcjo6c19pbmZvID0geyAiVGVzdFN0cmluZ2lmaWVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0
ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RTdHJpbmdpZmllckRPTUNvbnN0
cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0U3RyaW5naWZpZXJET01Db25z
dHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUds
b2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0x
MDAsOCArMTAyLDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdFN0cmluZ2lmaWVyRE9NQ29ucwog
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFN0cmlu
Z2lmaWVyRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RTdHJpbmdpZmllciIsICZCYXNl
OjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U3Ry
aW5naWZpZXJET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBl
ICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RTdHJpbmdpZmllclByb3Rv
dHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3Ry
aW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwCShyZXZpc2lvbiAyNzUxNTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJBbm9u
eW1vdXNPcGVyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4Nyw4IEBAIFNUQVRJ
Q19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0U3RyaW5n
aWZpZXJBbm9ueW1vdXNPcGVyYXRpb25ET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JO
b3RDb25zdHJ1Y3RhYmxlPEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uPjsKIAor
dGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVy
YXRpb25ET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdFN0cmluZ2lmaWVyQW5vbnltb3Vz
T3BlcmF0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkRPTUNvbnN0cnVjdG9y
KSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVy
YXRpb25ET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBj
b25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJB
TSh2bSk7CkBAIC0xMDAsOCArMTAyLDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdFN0cmluZ2lm
aWVyQW5vbnltbwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBq
c051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uRE9NQ29uc3RydWN0b3I6OnNfaW5m
byA9IHsgIlRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbiIsICZCYXNlOjpzX2luZm8s
IG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U3RyaW5naWZpZXJB
bm9ueW1vdXNPcGVyYXRpb25ET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3Ig
cHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RTdHJpbmdp
ZmllckFub255bW91c09wZXJhdGlvblByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFt
ZWRPcGVyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uLmNwcAkocmV2aXNp
b24gMjc1MTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OCw2
ICs4OCw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAogdXNp
bmcgSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkRPTUNvbnN0cnVjdG9yID0gSlNET01D
b25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlv
bj47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRP
cGVyYXRpb25ET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdFN0cmluZ2lmaWVyTmFtZWRP
cGVyYXRpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25ET01Db25zdHJ1Y3RvcikgfTsK
KwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25ET01D
b25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RP
TUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBA
IC0xMDEsOCArMTAzLDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRP
cAogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigw
KSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFN0
cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25ET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdFN0
cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25ET01D
b25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRp
YyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJv
dG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcAkocmV2aXNpb24gMjc1MTU5
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDYg
Kzg4LDggQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogCiB1c2lu
ZyBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNET01Db25zdHJ1Y3RvciA9
IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uSW1wbGVtZW50ZWRBcz47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFN0
cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0RPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7
ICJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzIiwgJkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RTdHJpbmdpZmllck9w
ZXJhdGlvbkltcGxlbWVudGVkQXNET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1Zh
bHVlIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0RPTUNvbnN0cnVjdG9y
Ojpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTEwMSw4ICsx
MDMsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpCiAgICAgcHV0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25JbXBsZW1lbnRlZEFzRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RTdHJp
bmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBu
dWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1w
bGVtZW50ZWRBc0RPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5
cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdFN0cmluZ2lmaWVyT3Bl
cmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uTmFtZWRUb1N0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmlu
Zy5jcHAJKHJldmlzaW9uIDI3NTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4Nyw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNF
X1NIQVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRv
U3RyaW5nRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxK
U1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmc+OwogCit0ZW1wbGF0ZTw+IGNv
bnN0IENsYXNzSW5mbyBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdET01D
b25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0
cmluZyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nRE9NQ29uc3RydWN0b3Ip
IH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVk
VG9TdHJpbmdET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZt
LCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9Q
QVJBTSh2bSk7CkBAIC0xMDAsOCArMTAyLDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aQogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3Ro
LCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0RPTUNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nIiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RT
dHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdET01Db25zdHJ1Y3RvcikgfTsKLQogLyog
SGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1
ZSBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdQcm90b3R5cGVUYWJsZVZh
bHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFk
T25seUF0dHJpYnV0ZS5jcHAJKHJldmlzaW9uIDI3NTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODksNiArODksOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19T
VUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlB
dHRyaWJ1dGVET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxl
PEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGU+OwogCit0ZW1wbGF0ZTw+IGNvbnN0
IENsYXNzSW5mbyBKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlRE9NQ29uc3RydWN0
b3I6OnNfaW5mbyA9IHsgIlRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlIiwgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RTdHJp
bmdpZmllclJlYWRPbmx5QXR0cmlidXRlRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4g
SlNWYWx1ZSBKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlRE9NQ29uc3RydWN0b3I6
OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmpl
Y3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMTAyLDggKzEw
NCw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmwKICAgICBwdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RTdHJpbmdpZmllclJl
YWRPbmx5QXR0cmlidXRlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RTdHJpbmdpZmll
clJlYWRPbmx5QXR0cmlidXRlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlRE9NQ29u
c3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMg
Y29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZVBy
b3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuY3BwCShyZXZpc2lvbiAyNzUxNTkpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJS
ZWFkV3JpdGVBdHRyaWJ1dGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MCw2ICs5MCw4IEBAIFNU
QVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0U3Ry
aW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0
b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlPjsK
IAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVB
dHRyaWJ1dGVET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdFN0cmluZ2lmaWVyUmVhZFdy
aXRlQXR0cmlidXRlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZURPTUNvbnN0cnVj
dG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVB
dHRyaWJ1dGVET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZt
LCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9Q
QVJBTSh2bSk7CkBAIC0xMDMsOCArMTA1LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdFN0cmlu
Z2lmaWVyUmVhZFdyaQogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3Ro
LCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlRE9NQ29uc3RydWN0b3I6OnNf
aW5mbyA9IHsgIlRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U3RyaW5naWZp
ZXJSZWFkV3JpdGVBdHRyaWJ1dGVET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBm
b3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RTdHJp
bmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZVByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0VHlwZWRlZnMuY3BwCShyZXZpc2lvbiAyNzUxNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xODIsNiArMTgyLDggQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMXwogfQogSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oSlNUZXN0VHlwZWRlZnNET01Db25z
dHJ1Y3RvckNvbnN0cnVjdCwgSlNUZXN0VHlwZWRlZnNET01Db25zdHJ1Y3Rvcjo6Y29uc3RydWN0
KTsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0VHlwZWRlZnNET01Db25zdHJ1
Y3Rvcjo6c19pbmZvID0geyAiVGVzdFR5cGVkZWZzIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RUeXBlZGVmc0RPTUNvbnN0cnVjdG9y
KSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0VHlwZWRlZnNET01Db25zdHJ1Y3Rvcjo6
cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVj
dCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0xOTYsOCArMTk4
LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdFR5cGVkZWZzRE9NQ29uc3RydQogICAgIHJlaWZ5
U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0VHlwZWRlZnM6OmluZm8oKSwgSlNUZXN0VHlwZWRl
ZnNDb25zdHJ1Y3RvclRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3Qg
Q2xhc3NJbmZvIEpTVGVzdFR5cGVkZWZzRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RU
eXBlZGVmcyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNUZXN0VHlwZWRlZnNET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBm
b3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RUeXBl
ZGVmc1Byb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2VyR2xvYmFsU2NvcGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtlckdsb2JhbFNj
b3BlLmNwcAkocmV2aXNpb24gMjc1MTU5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTV29ya2VyR2xvYmFsU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05
Nyw2ICs5Nyw4IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1dvcmtlckdsb2IKIH07
CiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNXb3JrZXJHbG9iYWxTY29wZVRhYmxlID0geyA2
LCAxNSwgdHJ1ZSwgSlNXb3JrZXJHbG9iYWxTY29wZTo6aW5mbygpLCBKU1dvcmtlckdsb2JhbFNj
b3BlVGFibGVWYWx1ZXMsIEpTV29ya2VyR2xvYmFsU2NvcGVUYWJsZUluZGV4IH07Cit0ZW1wbGF0
ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1dvcmtlckdsb2JhbFNjb3BlRE9NQ29uc3RydWN0b3I6OnNf
aW5mbyA9IHsgIldvcmtlckdsb2JhbFNjb3BlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVs
bHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dvcmtlckdsb2JhbFNjb3BlRE9NQ29uc3RydWN0
b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1dvcmtlckdsb2JhbFNjb3BlRE9NQ29uc3Ry
dWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNFdmVudFRhcmdldDo6Z2V0
Q29uc3RydWN0b3Iodm0sICZnbG9iYWxPYmplY3QpOwpAQCAtMTA5LDggKzExMSw2IEBAIHRlbXBs
YXRlPD4gdm9pZCBKU1dvcmtlckdsb2JhbFNjb3BlRE9NQ28KICAgICBwdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10
ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1dvcmtlckdsb2JhbFNjb3BlRE9NQ29uc3RydWN0
b3I6OnNfaW5mbyA9IHsgIldvcmtlckdsb2JhbFNjb3BlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0
ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dvcmtlckdsb2JhbFNjb3BlRE9NQ29u
c3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMg
Y29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNXb3JrZXJHbG9iYWxTY29wZVByb3RvdHlw
ZVRhYmxlSW5kZXhbMl0gPSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtsZXRHbG9iYWxTY29wZS5jcHAJ
KHJldmlzaW9uIDI3NTE1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1dvcmtsZXRHbG9iYWxTY29wZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2LDYgKzY2
LDggQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTV29ya2xldEdsbwogfTsKIAogc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZSBKU1dvcmtsZXRHbG9iYWxTY29wZVRhYmxlID0geyAxLCAxLCB0
cnVlLCBKU1dvcmtsZXRHbG9iYWxTY29wZTo6aW5mbygpLCBKU1dvcmtsZXRHbG9iYWxTY29wZVRh
YmxlVmFsdWVzLCBKU1dvcmtsZXRHbG9iYWxTY29wZVRhYmxlSW5kZXggfTsKK3RlbXBsYXRlPD4g
Y29uc3QgQ2xhc3NJbmZvIEpTV29ya2xldEdsb2JhbFNjb3BlRE9NQ29uc3RydWN0b3I6OnNfaW5m
byA9IHsgIldvcmtsZXRHbG9iYWxTY29wZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNXb3JrbGV0R2xvYmFsU2NvcGVET01Db25zdHJ1Y3Rv
cikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTV29ya2xldEdsb2JhbFNjb3BlRE9NQ29uc3Ry
dWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNFdmVudFRhcmdldDo6Z2V0
Q29uc3RydWN0b3Iodm0sICZnbG9iYWxPYmplY3QpOwpAQCAtNzgsOCArODAsNiBAQCB0ZW1wbGF0
ZTw+IHZvaWQgSlNXb3JrbGV0R2xvYmFsU2NvcGVET01DCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVt
cGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNXb3JrbGV0R2xvYmFsU2NvcGVET01Db25zdHJ1Y3Rv
cjo6c19pbmZvID0geyAiV29ya2xldEdsb2JhbFNjb3BlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0
ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dvcmtsZXRHbG9iYWxTY29wZURPTUNv
bnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGlj
IGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTV29ya2xldEdsb2JhbFNjb3BlUHJvdG90
eXBlVGFibGVJbmRleFsyXSA9IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1l
c3BhY2UrQ1NTUGFpbnRpbmcuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9E
T01DU1NOYW1lc3BhY2UrQ1NTUGFpbnRpbmcuaWRsCShyZXZpc2lvbiAyNzUxNTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlK0NTU1BhaW50aW5nLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMjgsNiArMjgsNiBAQAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9Q1NTUGFpbnRpbmdB
UEksCiAgICAgQ29uZGl0aW9uYWw9Q1NTX1BBSU5USU5HX0FQSSwKICAgICBJbXBsZW1lbnRlZEJ5
PURPTUNTU1BhaW50V29ya2xldAotXSBwYXJ0aWFsIGludGVyZmFjZSBET01DU1NOYW1lc3BhY2Ug
ewotICAgIFtJbXBsZW1lbnRlZEFzPWVuc3VyZVBhaW50V29ya2xldCwgQ2FsbFdpdGg9RG9jdW1l
bnRdIHN0YXRpYyByZWFkb25seSBhdHRyaWJ1dGUgV29ya2xldCBwYWludFdvcmtsZXQ7CitdIHBh
cnRpYWwgbmFtZXNwYWNlIERPTUNTU05hbWVzcGFjZSB7CisgICAgW0ltcGxlbWVudGVkQXM9ZW5z
dXJlUGFpbnRXb3JrbGV0LCBDYWxsV2l0aD1Eb2N1bWVudF0gcmVhZG9ubHkgYXR0cmlidXRlIFdv
cmtsZXQgcGFpbnRXb3JrbGV0OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NO
YW1lc3BhY2UrQ1NTUHJvcGVydGllc2FuZFZhbHVlcy5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZStDU1NQcm9wZXJ0aWVzYW5kVmFsdWVzLmlkbAko
cmV2aXNpb24gMjc1MTU5KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZStD
U1NQcm9wZXJ0aWVzYW5kVmFsdWVzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNiBA
QAogWwogICAgIEVuYWJsZWRCeVNldHRpbmc9Q1NTQ3VzdG9tUHJvcGVydGllc0FuZFZhbHVlcywK
ICAgICBJbXBsZW1lbnRlZEJ5PURPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkKLV0gcGFydGlh
bCBpbnRlcmZhY2UgRE9NQ1NTTmFtZXNwYWNlIHsKLSAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIHN0
YXRpYyB1bmRlZmluZWQgcmVnaXN0ZXJQcm9wZXJ0eShET01DU1NDdXN0b21Qcm9wZXJ0eURlc2Ny
aXB0b3IgZGVzY3JpcHRvcik7CitdIHBhcnRpYWwgbmFtZXNwYWNlIERPTUNTU05hbWVzcGFjZSB7
CisgICAgW0NhbGxXaXRoPURvY3VtZW50XSB1bmRlZmluZWQgcmVnaXN0ZXJQcm9wZXJ0eShET01D
U1NDdXN0b21Qcm9wZXJ0eURlc2NyaXB0b3IgZGVzY3JpcHRvcik7CiB9OwpJbmRleDogU291cmNl
L1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5pZGwJKHJldmlzaW9uIDI3NTE1OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwx
MSArMjksMTAgQEAKIAogWwogICAgIEludGVyZmFjZU5hbWU9Q1NTLAotICAgIEltcGxlbWVudGF0
aW9uTGFja3NWVGFibGUsCiAgICAgRXhwb3NlZD1XaW5kb3cKLV0gaW50ZXJmYWNlIERPTUNTU05h
bWVzcGFjZSB7Ci0gICAgW0NhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgYm9vbGVhbiBzdXBwb3J0
cyhET01TdHJpbmcgcHJvcGVydHksIERPTVN0cmluZyB2YWx1ZSk7Ci0gICAgW0NhbGxXaXRoPURv
Y3VtZW50XSBzdGF0aWMgYm9vbGVhbiBzdXBwb3J0cyhET01TdHJpbmcgY29uZGl0aW9uVGV4dCk7
Ci0gICAgc3RhdGljIERPTVN0cmluZyBlc2NhcGUoRE9NU3RyaW5nIGlkZW50KTsKLSAgICBbRW5h
YmxlZEF0UnVudGltZT1IaWdobGlnaHRBUEksIENhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgcmVh
ZG9ubHkgYXR0cmlidXRlIEhpZ2hsaWdodFJlZ2lzdGVyIGhpZ2hsaWdodHM7CitdIG5hbWVzcGFj
ZSBET01DU1NOYW1lc3BhY2UgeworICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gYm9vbGVhbiBzdXBw
b3J0cyhET01TdHJpbmcgcHJvcGVydHksIERPTVN0cmluZyB2YWx1ZSk7CisgICAgW0NhbGxXaXRo
PURvY3VtZW50XSBib29sZWFuIHN1cHBvcnRzKERPTVN0cmluZyBjb25kaXRpb25UZXh0KTsKKyAg
ICBET01TdHJpbmcgZXNjYXBlKERPTVN0cmluZyBpZGVudCk7CisgICAgW0VuYWJsZWRBdFJ1bnRp
bWU9SGlnaGxpZ2h0QVBJLCBDYWxsV2l0aD1Eb2N1bWVudF0gcmVhZG9ubHkgYXR0cmlidXRlIEhp
Z2hsaWdodFJlZ2lzdGVyIGhpZ2hsaWdodHM7CiB9OwpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyNzUxNjIpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDMtMjkgIEFs
ZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFtXZWJJRExd
IGB3aW5kb3cuQ1NTYCBzaG91bGQgYmUgbm9uLWNhbGxhYmxlIG9iamVjdCB3aXRoIGNvcnJlY3Qg
U3ltYm9sLnRvU3RyaW5nVGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjA4NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jb25zb2xlL2lkbGhhcm5lc3MuYW55LWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY29uc29sZS9pZGxoYXJu
ZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20vQ1NTLW5hbWVzcGFjZS1vYmplY3QtY2xhc3Mtc3RyaW5nLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tL2lkbGhhcm5lc3MtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvaWRsaGFy
bmVzcy5qczoKKyAgICAgICAgU3luYyBmcm9tIHVwc3RyZWFtIDE1ZWNiZmViZDUwNC4KKworICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2lkbGhhcm5lc3MuYW55LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9pZGxoYXJu
ZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorCiAyMDIxLTAzLTI4ICBBbnRvaW5lIFF1aW50
ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhbmltYXRp
bmcgdGhlIHZlcnRpY2FsLWFsaWduIENTUyBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb25zb2xlL2lkbGhhcm5lc3MuYW55LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2NvbnNvbGUvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAy
NzUxNTkpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nv
bnNvbGUvaWRsaGFybmVzcy5hbnktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02LDYg
KzYsOCBAQCBQQVNTIGNvbnNvbGUgbmFtZXNwYWNlOiBwcm9wZXJ0eSBkZXNjcmlwCiBQQVNTIGNv
bnNvbGUgbmFtZXNwYWNlOiBbW0V4dGVuc2libGVdXSBpcyB0cnVlCiBQQVNTIGNvbnNvbGUgbmFt
ZXNwYWNlOiBbW1Byb3RvdHlwZV1dIGlzIE9iamVjdC5wcm90b3R5cGUKIFBBU1MgY29uc29sZSBu
YW1lc3BhY2U6IHR5cGVvZiBpcyAib2JqZWN0IgorUEFTUyBjb25zb2xlIG5hbWVzcGFjZTogaGFz
IG5vIGxlbmd0aCBwcm9wZXJ0eQorUEFTUyBjb25zb2xlIG5hbWVzcGFjZTogaGFzIG5vIG5hbWUg
cHJvcGVydHkKIFBBU1MgY29uc29sZSBuYW1lc3BhY2U6IG9wZXJhdGlvbiBhc3NlcnQob3B0aW9u
YWwgYm9vbGVhbiwgYW55Li4uKQogUEFTUyBjb25zb2xlIG5hbWVzcGFjZTogb3BlcmF0aW9uIGNs
ZWFyKCkKIFBBU1MgY29uc29sZSBuYW1lc3BhY2U6IG9wZXJhdGlvbiBkZWJ1ZyhhbnkuLi4pCklu
ZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnNvbGUv
aWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbnNvbGUvaWRsaGFybmVzcy5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjc1MTU5KQorKysgTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb25zb2xlL2lkbGhhcm5lc3MuYW55Lndv
cmtlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTYsNiArNiw4IEBAIFBBU1MgY29u
c29sZSBuYW1lc3BhY2U6IHByb3BlcnR5IGRlc2NyaXAKIFBBU1MgY29uc29sZSBuYW1lc3BhY2U6
IFtbRXh0ZW5zaWJsZV1dIGlzIHRydWUKIFBBU1MgY29uc29sZSBuYW1lc3BhY2U6IFtbUHJvdG90
eXBlXV0gaXMgT2JqZWN0LnByb3RvdHlwZQogUEFTUyBjb25zb2xlIG5hbWVzcGFjZTogdHlwZW9m
IGlzICJvYmplY3QiCitQQVNTIGNvbnNvbGUgbmFtZXNwYWNlOiBoYXMgbm8gbGVuZ3RoIHByb3Bl
cnR5CitQQVNTIGNvbnNvbGUgbmFtZXNwYWNlOiBoYXMgbm8gbmFtZSBwcm9wZXJ0eQogUEFTUyBj
b25zb2xlIG5hbWVzcGFjZTogb3BlcmF0aW9uIGFzc2VydChvcHRpb25hbCBib29sZWFuLCBhbnku
Li4pCiBQQVNTIGNvbnNvbGUgbmFtZXNwYWNlOiBvcGVyYXRpb24gY2xlYXIoKQogUEFTUyBjb25z
b2xlIG5hbWVzcGFjZTogb3BlcmF0aW9uIGRlYnVnKGFueS4uLikKSW5kZXg6IExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tL0NTUy1uYW1lc3BhY2Ut
b2JqZWN0LWNsYXNzLXN0cmluZy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vQ1NTLW5hbWVzcGFj
ZS1vYmplY3QtY2xhc3Mtc3RyaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjc1MTU5KQorKysg
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vQ1NT
LW5hbWVzcGFjZS1vYmplY3QtY2xhc3Mtc3RyaW5nLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMSw2ICsxLDYgQEAKIAotRkFJTCBAQHRvU3RyaW5nVGFnIGV4aXN0cyBvbiB0aGUgbmFt
ZXNwYWNlIG9iamVjdCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBkZXNjcmlwdG9yIGFzc2VydF9vd25f
cHJvcGVydHk6IGV4cGVjdGVkIHByb3BlcnR5IHN5bWJvbCAiU3ltYm9sKFN5bWJvbC50b1N0cmlu
Z1RhZykiIG1pc3NpbmcKLUZBSUwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyBhcHBsaWVkIHRv
IHRoZSBuYW1lc3BhY2Ugb2JqZWN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJbb2JqZWN0IENT
U10iIGJ1dCBnb3QgImZ1bmN0aW9uIENTUygpIHtcbiAgICBbbmF0aXZlIGNvZGVdXG59IgotRkFJ
TCBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIGFwcGxpZWQgYWZ0ZXIgbW9kaWZ5aW5nIHRoZSBu
YW1lc3BhY2Ugb2JqZWN0J3MgQEB0b1N0cmluZ1RhZyBhc3NlcnRfb3duX3Byb3BlcnR5OiBQcmVj
b25kaXRpb246IEBAdG9TdHJpbmdUYWcgb24gdGhlIG5hbWVzcGFjZSBvYmplY3QgZXhwZWN0ZWQg
cHJvcGVydHkgc3ltYm9sICJTeW1ib2woU3ltYm9sLnRvU3RyaW5nVGFnKSIgbWlzc2luZwotRkFJ
TCBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIGFwcGxpZWQgYWZ0ZXIgZGVsZXRpbmcgQEB0b1N0
cmluZ1RhZyBhc3NlcnRfb3duX3Byb3BlcnR5OiBQcmVjb25kaXRpb246IEBAdG9TdHJpbmdUYWcg
b24gdGhlIG5hbWVzcGFjZSBvYmplY3QgZXhwZWN0ZWQgcHJvcGVydHkgc3ltYm9sICJTeW1ib2wo
U3ltYm9sLnRvU3RyaW5nVGFnKSIgbWlzc2luZworUEFTUyBAQHRvU3RyaW5nVGFnIGV4aXN0cyBv
biB0aGUgbmFtZXNwYWNlIG9iamVjdCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBkZXNjcmlwdG9yCitQ
QVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcgYXBwbGllZCB0byB0aGUgbmFtZXNwYWNlIG9i
amVjdAorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIGFwcGxpZWQgYWZ0ZXIgbW9kaWZ5
aW5nIHRoZSBuYW1lc3BhY2Ugb2JqZWN0J3MgQEB0b1N0cmluZ1RhZworUEFTUyBPYmplY3QucHJv
dG90eXBlLnRvU3RyaW5nIGFwcGxpZWQgYWZ0ZXIgZGVsZXRpbmcgQEB0b1N0cmluZ1RhZwogCklu
ZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Nv
bS9pZGxoYXJuZXNzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS9pZGxoYXJuZXNzLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMjc1MTU5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vaWRsaGFybmVzcy1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTQyMCwxMCArNDIwLDEwIEBAIFBBU1MgQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbnRl
cmZhY2U6IGdldEMKIFBBU1MgQ1NTIG5hbWVzcGFjZTogZXh0ZW5kZWQgYXR0cmlidXRlcwogUEFT
UyBDU1MgbmFtZXNwYWNlOiBwcm9wZXJ0eSBkZXNjcmlwdG9yCiBQQVNTIENTUyBuYW1lc3BhY2U6
IFtbRXh0ZW5zaWJsZV1dIGlzIHRydWUKLUZBSUwgQ1NTIG5hbWVzcGFjZTogW1tQcm90b3R5cGVd
XSBpcyBPYmplY3QucHJvdG90eXBlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChvYmplY3QpIG9i
amVjdCAiW29iamVjdCBPYmplY3RdIiBidXQgZ290IChmdW5jdGlvbikgZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19IgotRkFJTCBDU1MgbmFtZXNwYWNlOiB0eXBl
b2YgaXMgIm9iamVjdCIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAi
ZnVuY3Rpb24iCitQQVNTIENTUyBuYW1lc3BhY2U6IFtbUHJvdG90eXBlXV0gaXMgT2JqZWN0LnBy
b3RvdHlwZQorUEFTUyBDU1MgbmFtZXNwYWNlOiB0eXBlb2YgaXMgIm9iamVjdCIKK1BBU1MgQ1NT
IG5hbWVzcGFjZTogaGFzIG5vIGxlbmd0aCBwcm9wZXJ0eQorUEFTUyBDU1MgbmFtZXNwYWNlOiBo
YXMgbm8gbmFtZSBwcm9wZXJ0eQogUEFTUyBDU1MgbmFtZXNwYWNlOiBvcGVyYXRpb24gZXNjYXBl
KENTU09NU3RyaW5nKQogUEFTUyBTVkdFbGVtZW50IGludGVyZmFjZTogYXR0cmlidXRlIHN0eWxl
CiBQQVNTIFNWR0VsZW1lbnQgaW50ZXJmYWNlOiBzdmdfZWxlbWVudCBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInN0eWxlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQpJbmRleDogTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jl
c291cmNlcy9pZGxoYXJuZXNzLmpzCShyZXZpc2lvbiAyNzUxNTkpCisrKyBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy9pZGxoYXJuZXNzLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0zNDgzLDYgKzM0ODMsMjIgQEAgSWRsTmFtZXNwYWNlLnByb3RvdHlw
ZS50ZXN0X3NlbGYgPSBmdW5jdAogICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3Qs
ICgpID0+IHsKICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgbmFtZXNwYWNlT2JqZWN0LCAi
b2JqZWN0Iik7CiAgICAgfSwgYCR7dGhpcy5uYW1lfSBuYW1lc3BhY2U6IHR5cGVvZiBpcyAib2Jq
ZWN0ImApOworCisgICAgc3Vic2V0VGVzdEJ5S2V5KHRoaXMubmFtZSwgdGVzdCwgKCkgPT4gewor
ICAgICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihuYW1lc3BhY2VPYmplY3QsICJsZW5ndGgiKSwKKyAgICAgICAgICAgIHVuZGVm
aW5lZCwKKyAgICAgICAgICAgICJsZW5ndGggcHJvcGVydHkgbXVzdCBiZSB1bmRlZmluZWQiCisg
ICAgICAgICk7CisgICAgfSwgYCR7dGhpcy5uYW1lfSBuYW1lc3BhY2U6IGhhcyBubyBsZW5ndGgg
cHJvcGVydHlgKTsKKworICAgIHN1YnNldFRlc3RCeUtleSh0aGlzLm5hbWUsIHRlc3QsICgpID0+
IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IobmFtZXNwYWNlT2JqZWN0LCAibmFtZSIpLAorICAgICAgICAgICAgdW5k
ZWZpbmVkLAorICAgICAgICAgICAgIm5hbWUgcHJvcGVydHkgbXVzdCBiZSB1bmRlZmluZWQiCisg
ICAgICAgICk7CisgICAgfSwgYCR7dGhpcy5uYW1lfSBuYW1lc3BhY2U6IGhhcyBubyBuYW1lIHBy
b3BlcnR5YCk7CiB9OwogCiBJZGxOYW1lc3BhY2UucHJvdG90eXBlLnRlc3QgPSBmdW5jdGlvbiAo
KQpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNt
L2pzYXBpL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvaWRsaGFybmVz
cy5hbnktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNzUxNTkpCisrKyBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvaWRsaGFybmVzcy5hbnktZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02LDYgKzYsOCBAQCBQQVNTIFdlYkFzc2VtYmx5
IG5hbWVzcGFjZTogcHJvcGVydHkgZGVzCiBQQVNTIFdlYkFzc2VtYmx5IG5hbWVzcGFjZTogW1tF
eHRlbnNpYmxlXV0gaXMgdHJ1ZQogUEFTUyBXZWJBc3NlbWJseSBuYW1lc3BhY2U6IFtbUHJvdG90
eXBlXV0gaXMgT2JqZWN0LnByb3RvdHlwZQogUEFTUyBXZWJBc3NlbWJseSBuYW1lc3BhY2U6IHR5
cGVvZiBpcyAib2JqZWN0IgorUEFTUyBXZWJBc3NlbWJseSBuYW1lc3BhY2U6IGhhcyBubyBsZW5n
dGggcHJvcGVydHkKK1BBU1MgV2ViQXNzZW1ibHkgbmFtZXNwYWNlOiBoYXMgbm8gbmFtZSBwcm9w
ZXJ0eQogUEFTUyBXZWJBc3NlbWJseSBuYW1lc3BhY2U6IG9wZXJhdGlvbiB2YWxpZGF0ZShCdWZm
ZXJTb3VyY2UpCiBQQVNTIFdlYkFzc2VtYmx5IG5hbWVzcGFjZTogb3BlcmF0aW9uIGNvbXBpbGUo
QnVmZmVyU291cmNlKQogUEFTUyBXZWJBc3NlbWJseSBuYW1lc3BhY2U6IG9wZXJhdGlvbiBpbnN0
YW50aWF0ZShCdWZmZXJTb3VyY2UsIG9wdGlvbmFsIG9iamVjdCkKSW5kZXg6IExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9pZGxoYXJuZXNzLmFu
eS53b3JrZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9pZGxoYXJuZXNzLmFueS53b3JrZXIt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNzUxNTkpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNiw2ICs2LDggQEAgUEFTUyBXZWJBc3NlbWJs
eSBuYW1lc3BhY2U6IHByb3BlcnR5IGRlcwogUEFTUyBXZWJBc3NlbWJseSBuYW1lc3BhY2U6IFtb
RXh0ZW5zaWJsZV1dIGlzIHRydWUKIFBBU1MgV2ViQXNzZW1ibHkgbmFtZXNwYWNlOiBbW1Byb3Rv
dHlwZV1dIGlzIE9iamVjdC5wcm90b3R5cGUKIFBBU1MgV2ViQXNzZW1ibHkgbmFtZXNwYWNlOiB0
eXBlb2YgaXMgIm9iamVjdCIKK1BBU1MgV2ViQXNzZW1ibHkgbmFtZXNwYWNlOiBoYXMgbm8gbGVu
Z3RoIHByb3BlcnR5CitQQVNTIFdlYkFzc2VtYmx5IG5hbWVzcGFjZTogaGFzIG5vIG5hbWUgcHJv
cGVydHkKIFBBU1MgV2ViQXNzZW1ibHkgbmFtZXNwYWNlOiBvcGVyYXRpb24gdmFsaWRhdGUoQnVm
ZmVyU291cmNlKQogUEFTUyBXZWJBc3NlbWJseSBuYW1lc3BhY2U6IG9wZXJhdGlvbiBjb21waWxl
KEJ1ZmZlclNvdXJjZSkKIFBBU1MgV2ViQXNzZW1ibHkgbmFtZXNwYWNlOiBvcGVyYXRpb24gaW5z
dGFudGlhdGUoQnVmZmVyU291cmNlLCBvcHRpb25hbCBvYmplY3QpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427181</attachid>
            <date>2021-04-27 12:16:13 -0700</date>
            <delta_ts>2021-04-27 13:04:40 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-220855-20210427221611.patch</filename>
            <type>text/plain</type>
            <size>190043</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcyIEBACisyMDIxLTA0LTI2ICBBbGV4ZXkg
U2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBbV2ViSURMXSBgd2lu
ZG93LkNTU2Agc2hvdWxkIGJlIG5vbi1jYWxsYWJsZSBvYmplY3Qgd2l0aCBjb3JyZWN0IFN5bWJv
bC50b1N0cmluZ1RhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIwODU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAg
ICBBbHRob3VnaCBgd2luZG93LkNTU2AgaXMgdGhlIG9ubHkgbmFtZXNwYWNlIG9iamVjdCBjdXJy
ZW50bHkgaGFuZGxlZCBieSBjb2RlIGdlbmVyYXRvciwKKyAgICAgICAgaXQncyBiZWluZyBleHRl
bmRlZCBieSBtdWx0aXBsZSBIb3VkaW5pIHNwZWNzIFsxXSwgc28ga2VlcGluZyBpdCBnZW5lcmF0
ZWQgaXMgaW1wb3J0YW50LgorCisgICAgICAgIFRoaXMgcGF0Y2ggYnJpbmdzIHNwZWMgY29tcGxp
YW5jZSBbMl0gYW5kIHdlYiBpbnRlcm9wIHdoaWxlIHN0cmlraW5nIGEgYmFsYW5jZSBiZXR3ZWVu
CisgICAgICAgIHJlZHVjaW5nIGdlbmVyYXRlZCBjb2RlLCBhdm9pZGluZyBpbmRpcmVjdGlvbiBp
biB0aGUgZ2VuZXJhdG9yLCBhbmQgYSBzbWFsbCBjb2RlIGRpZmYuCisKKyAgICAgICAgRmVhdHVy
ZS13aXNlLCBhIG5hbWVzcGFjZSBvYmplY3QgaXMgYSBzdWJzZXQgb2YgYW4gaW50ZXJmYWNlOyBz
byBpbnN0ZWFkIG9mIGNyZWF0aW5nIGEKKyAgICAgICAgc2VwYXJhdGUgaGFybmVzcyBmb3IgaXQs
IGxpa2UgZm9yIGNhbGxiYWNrIGludGVyZmFjZXMsIG5hbWVzcGFjZSBvYmplY3RzIGFyZSBjb252
ZXJ0ZWQKKyAgICAgICAgdG8gaW50ZXJmYWNlcyBiZWZvcmUgYmVpbmcgaGFuZGVkIG92ZXIgdG8g
Y29kZSBnZW5lcmF0b3IsIHdpdGggYSBmbGFnIG9uLgorCisgICAgICAgIFdoaWxlIHdlIGNhbiBy
ZWR1Y2UgdGhlIGdlbmVyYXRlZCBjb2RlIGV2ZW4gZnVydGhlciwgbmFtZWx5IGFyb3VuZCBzdWJz
cGFjZUZvckltcGwoKSwKKyAgICAgICAgdGhpcyBjaGFuZ2UgcmF0aGVyIGFsaWducyBuYW1lc3Bh
Y2Ugb2JqZWN0cyB3aXRoIFtKU0J1aWx0aW5dIGludGVyZmFjZXMgdG8gYXZvaWQgbWFraW5nCisg
ICAgICAgIGdlbmVyYXRvciBtb3JlIGNvbXBsaWNhdGVkIGFuZCBpbnRyb2R1Y2luZyBhbiBpbnRl
cmZhY2Ugd2l0aCBkaXN0aW5jdCBzZXQgb2YgbWV0aG9kcy4KKworICAgICAgICBXZWItZmFjaW5n
IGNoYW5nZXMgZm9yIGB3aW5kb3cuQ1NTYCBhcmU6CisKKyAgICAgICAgICAxLiBSZW1vdmVkIFtb
Q2FsbF1dIGFuZCBbW0NvbnN0cnVjdF1dIG1ldGhvZHMsIG1ha2luZyBgdHlwZW9mIENTU2AgcmV0
dXJuICJvYmplY3QiLAorICAgICAgICAgICAgIHdoaWNoIGlzIHVzZWQgZm9yIGZlYXR1cmUgZGV0
ZWN0aW9uICh0aHVzIGltcG9ydGFudCBmb3Igd2ViIGludGVyb3ApLgorICAgICAgICAgIDIuIFJl
bW92ZWQgImxlbmd0aCIgLyAibmFtZSIgLyAicHJvdG90eXBlIiBwcm9wZXJ0aWVzLgorICAgICAg
ICAgIDMuIENoYW5nZWQgW1tQcm90b3R5cGVdXSB2YWx1ZSB0byAlT2JqZWN0LnByb3RvdHlwZSUu
CisgICAgICAgICAgNC4gQWRkZWQgU3ltYm9sLnRvU3RyaW5nVGFnIHByb3BlcnR5IHdpdGggY29y
cmVjdCBkZXNjcmlwdG9yLgorCisgICAgICAgIEFsbCBvZiB0aGUgYWJvdmUgd2VyZSBwcm92ZW4g
d2ViLWNvbXBhdGlibGUgYnkgQmxpbmsgYW5kIEdlY2tvLgorCisgICAgICAgIEFsc28sIHRoaXMg
cGF0Y2ggbGltaXRzIHRoZSB1c2FnZSBvZiBOZWVkc0NvbnN0cnVjdG9yUHJvcGVydHkgb25seSB0
bworICAgICAgICAlSW50ZXJmYWNlJS5wcm90b3R5cGUuY29uc3RydWN0b3IsIGFzIGl0cyBuYW1l
IHN1Z2dlc3RzLgorCisgICAgICAgIFsxXSBodHRwczovL2lzaG91ZGluaXJlYWR5eWV0LmNvbQor
ICAgICAgICBbMl0gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jbmFtZXNwYWNlLW9i
amVjdAorCisgICAgICAgIFRlc3RzOiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS9pZGxoYXJuZXNzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tL0NTUy1uYW1lc3BhY2Utb2JqZWN0LWNsYXNzLXN0cmlu
Zy5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3Rvck5vdENhbGxhYmxlLmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6SlNET01Db25zdHJ1Y3Rvck5vdENhbGxhYmxlOjpzdWJzcGFj
ZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUNvbnN0cnVjdG9yTm90Q2FsbGFibGU6OkpT
RE9NQ29uc3RydWN0b3JOb3RDYWxsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUNvbnN0
cnVjdG9yTm90Q2FsbGFibGU6OmluaXRpYWxpemVQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTRE9NQ29uc3RydWN0b3JOb3RDYWxsYWJsZTxKU0NsYXNzPjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTRE9NQ29uc3RydWN0b3JOb3RDYWxsYWJsZTxKU0NsYXNzPjo6Y3JlYXRl
U3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NQ29uc3RydWN0b3JOb3RDYWxsYWJs
ZTxKU0NsYXNzPjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoTmVlZHNJbXBsZW1lbnRhdGlvbkNsYXNzKToK
KyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRp
b24pOgorICAgICAgICAoR2VuZXJhdGVQcm90b3R5cGVEZWNsYXJhdGlvbik6CisgICAgICAgIChH
ZXRDb25zdHJ1Y3RvclRlbXBsYXRlQ2xhc3NOYW1lKToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3Ry
dWN0b3JIZWxwZXJNZXRob2RzKToKKyAgICAgICAgKE5lZWRzQ29uc3RydWN0b3JQcm9wZXJ0eSk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb246CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG06CisgICAgICAgIChjb252ZXJ0TmFtZXNw
YWNlVG9JbnRlcmZhY2UpOgorICAgICAgICAoUGFyc2UpOgorICAgICAgICAocGFyc2VOYW1lc3Bh
Y2UpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsOgorICAg
ICAgICAoY29udGFpbnNJbnRlcmZhY2VPckNhbGxiYWNrSW50ZXJmYWNlRnJvbUlETCk6CisgICAg
ICAgIChnZXRJbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tSURMKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvKjogVXBkYXRlZC4KKyAgICAgICAgKiBjc3MvRE9NQ1NT
TmFtZXNwYWNlK0NTU1BhaW50aW5nLmlkbDoKKyAgICAgICAgKiBjc3MvRE9NQ1NTTmFtZXNwYWNl
K0NTU1Byb3BlcnRpZXNhbmRWYWx1ZXMuaWRsOgorICAgICAgICAqIGNzcy9ET01DU1NOYW1lc3Bh
Y2UuaWRsOgorCiAyMDIxLTA0LTI2ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWls
LmNvbT4KIAogICAgICAgICBbV2ViSURMXSBSZW1vdmUgW0NhbGxOYW1lZFNldHRlck9ubHlGb3JT
dXBwb3J0ZWRQcm9wZXJ0aWVzXSBleHRlbmRlZCBhdHRyaWJ1dGUKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI3
NjU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMTEzMTUsNiArMTEzMTUsNyBAQAogCQk4NEM2Nzg0QjEyMTQ4
MTQ3MDBBOTI5MDIgLyogU1ZHUGF0aEJsZW5kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU1ZHUGF0aEJsZW5kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODREMEM0MDMxMTE1RjFENDAwMThBQTM0IC8qIEFmZmluZVRyYW5zZm9ybS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBZmZpbmVUcmFuc2Zvcm0uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4NEQwQzQwNTExMTVGMUVBMDAxOEFBMzQgLyogQWZmaW5l
VHJhbnNmb3JtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFmZmluZVRyYW5z
Zm9ybS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NEQ5QTE1RjI2MDJERDQwMDA4
RDZENUEgLyogSlNET01Db25zdHJ1Y3Rvck5vdENhbGxhYmxlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTRE9NQ29uc3RydWN0b3JOb3RDYWxsYWJsZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4NTAzMUIyNjBBNDRFRkM3MDBGOTkyRTAgLyogQmVmb3JlVW5s
b2FkRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJlZm9y
ZVVubG9hZEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODUwMzFCMjcw
QTQ0RUZDNzAwRjk5MkUwIC8qIEJlZm9yZVVubG9hZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBCZWZvcmVVbmxvYWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4NTAzMUIyODBBNDRFRkM3MDBGOTkyRTAgLyogRGF0YVRyYW5zZmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhVHJhbnNmZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3NzY0LDYgKzI3NzY1LDcgQEAKIAkJCQk0MTNDMkMzMzFC
QzI5QTdCMDA3NTIwNEMgLyogSlNET01Db25zdHJ1Y3Rvci5oICovLAogCQkJCTdDMENFRjJGMUU0
QTU4QUQwMDhERUI4MCAvKiBKU0RPTUNvbnN0cnVjdG9yQmFzZS5jcHAgKi8sCiAJCQkJN0MwQ0VG
MjgxRTRBNTQyQzAwOERFQjgwIC8qIEpTRE9NQ29uc3RydWN0b3JCYXNlLmggKi8sCisJCQkJODRE
OUExNUYyNjAyREQ0MDAwOEQ2RDVBIC8qIEpTRE9NQ29uc3RydWN0b3JOb3RDYWxsYWJsZS5oICov
LAogCQkJCTdDMENFRjJCMUU0QTU1QzMwMDhERUI4MCAvKiBKU0RPTUNvbnN0cnVjdG9yTm90Q29u
c3RydWN0YWJsZS5oICovLAogCQkJCTdDMENFRjMwMUU0QTU4RjEwMDhERUI4MCAvKiBKU0RPTUNv
bnN0cnVjdG9yV2l0aERvY3VtZW50LmNwcCAqLywKIAkJCQk3QzBDRUYyOTFFNEE1NEQzMDA4REVC
ODAgLyogSlNET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudC5oICovLApJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3Rvck5vdENhbGxhYmxlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3Rvck5vdENhbGxh
YmxlLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01D
b25zdHJ1Y3Rvck5vdENhbGxhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBbGV4ZXkgU2h2YXlrYSA8c2h2YWlrYWxlc2hAZ21h
aWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkpTRE9NV3JhcHBl
ci5oIgorI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBKU0NsYXNzPiBjbGFzcyBKU0RPTUNvbnN0cnVjdG9y
Tm90Q2FsbGFibGUgOiBwdWJsaWMgSlNET01PYmplY3QgeworcHVibGljOgorICAgIHVzaW5nIEJh
c2UgPSBKU0RPTU9iamVjdDsKKworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOworICAgIHN0YXRpYyBKU0RPTUNvbnN0cnVjdG9y
Tm90Q2FsbGFibGUqIGNyZWF0ZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2Jh
bE9iamVjdCYpOworICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpT
Qzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSk7CisK
KyAgICBERUNMQVJFX0lORk87CisKKyAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZUZv
clN0cnVjdHVyZShKU0M6OlZNJiwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmKTsKKworICAgIHRl
bXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBKU0M6OlN1YnNwYWNlQWNjZXNzPgorICAgIHN0YXRp
YyBKU0M6Oklzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihKU0M6OlZNJiB2bSkKKyAgICB7CisgICAg
ICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKENlbGxUeXBlKSA9PSBzaXplb2YoSlNET01Db25zdHJ1
Y3Rvck5vdENhbGxhYmxlKSk7CisgICAgICAgIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NI
QVJBQkxFKENlbGxUeXBlLCBKU0RPTUNvbnN0cnVjdG9yTm90Q2FsbGFibGUpOworICAgICAgICBz
dGF0aWNfYXNzZXJ0KENlbGxUeXBlOjpkZXN0cm95ID09IEpTQzo6SlNDZWxsOjpkZXN0cm95LCAi
SlNET01Db25zdHJ1Y3Rvck5vdENhbGxhYmxlPEpTQ2xhc3M+IGlzIG5vdCBkZXN0cnVjdGlibGUg
YWN0dWFsbHkiKTsKKyAgICAgICAgcmV0dXJuICZzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+
KHZtLmNsaWVudERhdGEpLT5kb21Db25zdHJ1Y3RvclNwYWNlKCk7CisgICAgfQorCitwcml2YXRl
OgorICAgIEpTRE9NQ29uc3RydWN0b3JOb3RDYWxsYWJsZShKU0M6OlN0cnVjdHVyZSogc3RydWN0
dXJlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQorICAgICAgICA6IEJhc2Uoc3Ry
dWN0dXJlLCBnbG9iYWxPYmplY3QpCisgICAgeworICAgIH0KKworICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7CisgICAgdm9pZCBpbml0aWFsaXpl
UHJvcGVydGllcyhKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKSB7IH0KK307CisKK3RlbXBs
YXRlPHR5cGVuYW1lIEpTQ2xhc3M+IGlubGluZSBKU0RPTUNvbnN0cnVjdG9yTm90Q2FsbGFibGU8
SlNDbGFzcz4qIEpTRE9NQ29uc3RydWN0b3JOb3RDYWxsYWJsZTxKU0NsYXNzPjo6Y3JlYXRlKEpT
Qzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0KQoreworICAgIEpTRE9NQ29uc3RydWN0b3JOb3RDYWxsYWJsZSogY29uc3Ry
dWN0b3IgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTRE9NQ29uc3RydWN0b3JO
b3RDYWxsYWJsZT4odm0uaGVhcCkpIEpTRE9NQ29uc3RydWN0b3JOb3RDYWxsYWJsZShzdHJ1Y3R1
cmUsIGdsb2JhbE9iamVjdCk7CisgICAgY29uc3RydWN0b3ItPmZpbmlzaENyZWF0aW9uKHZtLCBn
bG9iYWxPYmplY3QpOworICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKK30KKwordGVtcGxhdGU8dHlw
ZW5hbWUgSlNDbGFzcz4gaW5saW5lIEpTQzo6U3RydWN0dXJlKiBKU0RPTUNvbnN0cnVjdG9yTm90
Q2FsbGFibGU8SlNDbGFzcz46OmNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU0ds
b2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQoreworICAg
IHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEpTQ2xhc3M+IGlubGluZSB2b2lkIEpTRE9NQ29u
c3RydWN0b3JOb3RDYWxsYWJsZTxKU0NsYXNzPjo6ZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYgdm0s
IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24odm0pOworICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7CisgICAgaW5pdGlh
bGl6ZVByb3BlcnRpZXModm0sIGdsb2JhbE9iamVjdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyNzY1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtMTY2NCw2
ICsxNjY0LDcgQEAgc3ViIE5lZWRzSW1wbGVtZW50YXRpb25DbGFzcwogICAgIG15ICgkaW50ZXJm
YWNlKSA9IEBfOwogCiAgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57SlNCdWlsdGlufTsKKyAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlLT5pc05hbWVzcGFj
ZU9iamVjdDsKICAgICByZXR1cm4gMTsKIH0KIApAQCAtMjkwMSw3ICsyOTAyLDcgQEAgc3ViIEdl
bmVyYXRlSGVhZGVyCiAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6OkltcGxlbWVudHNIYXNJbnN0
YW5jZSB8IEpTQzo6SW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSJ9ID0gMSBpZiAkaW50ZXJm
YWNlTmFtZSBlcSAiRE9NV2luZG93IjsKICAgICAgICAgCiAgICAgIyBQcm90b3R5cGUKLSAgICB1
bmxlc3MgKFNob3VsZFVzZUdsb2JhbE9iamVjdFByb3RvdHlwZSgkaW50ZXJmYWNlKSkgeworICAg
IHVubGVzcyAoU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlKCRpbnRlcmZhY2UpIHx8ICRp
bnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwg
SlNET01HbG9iYWxPYmplY3QmKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBwcm90b3R5cGUoSlNDOjpWTSYsIEpTRE9NR2xvYmFs
T2JqZWN0Jik7XG4iKTsKICAgICB9CkBAIC00MTk3LDYgKzQxOTgsOCBAQCBzdWIgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbgogCiAgICAgbXkgJGltcGxUeXBlID0gR2V0SW1wbENsYXNzTmFtZSgkaW50
ZXJmYWNlKTsKIAorICAgIEFkZFRvSW1wbEluY2x1ZGVzKCIke2ltcGxUeXBlfS5oIikgaWYgJGlu
dGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3Q7CisKICAgICBAaW1wbENvbnRlbnQgPSAoKTsKIAog
ICAgIHB1c2goQGltcGxDb250ZW50LCAiXG5cbm5hbWVzcGFjZSBXZWJDb3JlIHtcbiIpOwpAQCAt
NDMyNiw3ICs0MzI5LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgIEdlbmVy
YXRlUHJvdG90eXBlRGVjbGFyYXRpb24oXEBpbXBsQ29udGVudCwgJGNsYXNzTmFtZSwgJGludGVy
ZmFjZSkgaWYgIUhlYWRlck5lZWRzUHJvdG90eXBlRGVjbGFyYXRpb24oJGludGVyZmFjZSk7CiAK
LSAgICBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24oXEBpbXBsQ29udGVudCwgJGNsYXNz
TmFtZSwgJGludGVyZmFjZSkgaWYgTmVlZHNDb25zdHJ1Y3RvclByb3BlcnR5KCRpbnRlcmZhY2Up
OworICAgIEdlbmVyYXRlQ29uc3RydWN0b3JEZWNsYXJhdGlvbihcQGltcGxDb250ZW50LCAkY2xh
c3NOYW1lLCAkaW50ZXJmYWNlKSBpZiAhJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3R9OwogCiAgICAgbXkgQGhhc2hLZXlzID0gKCk7CiAgICAg
bXkgQGhhc2hWYWx1ZTEgPSAoKTsKQEAgLTQzNDQsNyArNDM0Nyw3IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAgICAgJG9iamVjdC0+R2VuZXJhdGVIYXNoVGFibGUoJGNsYXNzTmFtZSwg
JGhhc2hOYW1lLCAkbnVtSW5zdGFuY2VQcm9wZXJ0aWVzLCBcQGhhc2hLZXlzLCBcQGhhc2hTcGVj
aWFscywgXEBoYXNoVmFsdWUxLCBcQGhhc2hWYWx1ZTIsIFwlY29uZGl0aW9uYWxzLCBcJXJlYWRX
cml0ZUNvbmRpdGlvbmFscywgMCkgaWYgJG51bUluc3RhbmNlUHJvcGVydGllcyA+IDA7CiAKICAg
ICAjIC0gQWRkIGFsbCBpbnRlcmZhY2Ugb2JqZWN0IChha2EgY29uc3RydWN0b3IpIHByb3BlcnRp
ZXMgKGNvbnN0YW50cywgc3RhdGljIGF0dHJpYnV0ZXMsIHN0YXRpYyBvcGVyYXRpb25zKS4KLSAg
ICBpZiAoTmVlZHNDb25zdHJ1Y3RvclByb3BlcnR5KCRpbnRlcmZhY2UpKSB7CisgICAgaWYgKCEk
aW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntMZWdhY3lOb0ludGVyZmFjZU9iamVjdH0p
IHsKICAgICAgICAgbXkgJGhhc2hTaXplID0gMDsKICAgICAgICAgbXkgJGhhc2hOYW1lID0gJGNs
YXNzTmFtZSAuICJDb25zdHJ1Y3RvclRhYmxlIjsKIApAQCAtNDQ4MiwxOCArNDQ4NSwyMCBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAkaGFzaFNpemUrKzsKICAgICB9CiAK
LSAgICBteSAkanVzdEdlbmVyYXRlVmFsdWVBcnJheSA9ICFJc0RPTUdsb2JhbE9iamVjdCgkaW50
ZXJmYWNlKTsKKyAgICBpZiAoISRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAg
ICAgIG15ICRqdXN0R2VuZXJhdGVWYWx1ZUFycmF5ID0gIUlzRE9NR2xvYmFsT2JqZWN0KCRpbnRl
cmZhY2UpOwogCi0gICAgJG9iamVjdC0+R2VuZXJhdGVIYXNoVGFibGUoJGNsYXNzTmFtZSwgJGhh
c2hOYW1lLCAkaGFzaFNpemUsIFxAaGFzaEtleXMsIFxAaGFzaFNwZWNpYWxzLCBcQGhhc2hWYWx1
ZTEsIFxAaGFzaFZhbHVlMiwgXCVjb25kaXRpb25hbHMsIFwlcmVhZFdyaXRlQ29uZGl0aW9uYWxz
LCAkanVzdEdlbmVyYXRlVmFsdWVBcnJheSk7CisgICAgICAgICRvYmplY3QtPkdlbmVyYXRlSGFz
aFRhYmxlKCRjbGFzc05hbWUsICRoYXNoTmFtZSwgJGhhc2hTaXplLCBcQGhhc2hLZXlzLCBcQGhh
c2hTcGVjaWFscywgXEBoYXNoVmFsdWUxLCBcQGhhc2hWYWx1ZTIsIFwlY29uZGl0aW9uYWxzLCBc
JXJlYWRXcml0ZUNvbmRpdGlvbmFscywgJGp1c3RHZW5lcmF0ZVZhbHVlQXJyYXkpOwogCi0gICAg
bXkgJGhhc2hUYWJsZSA9ICRqdXN0R2VuZXJhdGVWYWx1ZUFycmF5ID8gIm51bGxwdHIiIDogIiYk
e2NsYXNzTmFtZX1Qcm90b3R5cGVUYWJsZSI7Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICJjb25z
dCBDbGFzc0luZm8gJHtjbGFzc05hbWV9UHJvdG90eXBlOjpzX2luZm8gPSB7IFwiJHt2aXNpYmxl
SW50ZXJmYWNlTmFtZX1cIiwgJkJhc2U6OnNfaW5mbywgJHtoYXNoVGFibGV9LCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKCR7Y2xhc3NOYW1lfVByb3RvdHlwZSkgfTtcblxuIik7CisgICAg
ICAgIG15ICRwcm90b3R5cGVIYXNoVGFibGUgPSAkanVzdEdlbmVyYXRlVmFsdWVBcnJheSA/ICJu
dWxscHRyIiA6ICImJHtjbGFzc05hbWV9UHJvdG90eXBlVGFibGUiOworICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgImNvbnN0IENsYXNzSW5mbyAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OnNfaW5m
byA9IHsgXCIke3Zpc2libGVJbnRlcmZhY2VOYW1lfVwiLCAmQmFzZTo6c19pbmZvLCAke3Byb3Rv
dHlwZUhhc2hUYWJsZX0sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoJHtjbGFzc05hbWV9
UHJvdG90eXBlKSB9O1xuXG4iKTsKIAotICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2Ns
YXNzTmFtZX1Qcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSlcbiIpOwotICAgIHB1c2go
QGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQmFzZTo6
ZmluaXNoQ3JlYXRpb24odm0pO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9p
ZCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSlcbiIpOworICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7XG4iKTsKKyAgICB9CiAKLSAgICBpZiAo
UHJvdG90eXBlSGFzU3RhdGljUHJvcGVydHlUYWJsZSgkaW50ZXJmYWNlKSAmJiAhSXNHbG9iYWxJ
bnRlcmZhY2UoJGludGVyZmFjZSkpIHsKKyAgICBpZiAoUHJvdG90eXBlSGFzU3RhdGljUHJvcGVy
dHlUYWJsZSgkaW50ZXJmYWNlKSAmJiAhSXNHbG9iYWxJbnRlcmZhY2UoJGludGVyZmFjZSkgJiYg
ISRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgJHtjbGFzc05hbWV9OjppbmZvKCks
ICR7Y2xhc3NOYW1lfVByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7XG4iKTsKIAogICAgICAg
ICBteSBAcnVudGltZUVuYWJsZWRQcm9wZXJ0aWVzID0gQHJ1bnRpbWVFbmFibGVkT3BlcmF0aW9u
czsKQEAgLTQ1NzMsOCArNDU3OCwxMSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
IH0KIAogICAgIGFzc2VydCgiSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCkg
cmVxdWlyZXMgc3RyaW5ncyB0d28gb3IgbW9yZSBjaGFyYWN0ZXJzIGxvbmciKSBpZiBsZW5ndGgo
JHZpc2libGVJbnRlcmZhY2VOYW1lKSA8IDI7Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
SlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7XG4iKTsKLSAgICBwdXNoKEBp
bXBsQ29udGVudCwgIn1cblxuIik7CisKKyAgICBpZiAoISRpbnRlcmZhY2UtPmlzTmFtZXNwYWNl
T2JqZWN0KSB7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTQ19UT19TVFJJTkdf
VEFHX1dJVEhPVVRfVFJBTlNJVElPTigpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAifVxuXG4iKTsKKyAgICB9CiAKICAgICAjIC0gSW5pdGlhbGl6ZSBzdGF0aWMgQ2xhc3NJbmZv
IG9iamVjdAogICAgIHB1c2goQGltcGxDb250ZW50LCAiY29uc3QgQ2xhc3NJbmZvICRjbGFzc05h
bWUiIC4gIjo6c19pbmZvID0geyBcIiR7dmlzaWJsZUludGVyZmFjZU5hbWV9XCIsICZCYXNlOjpz
X2luZm8sICIpOwpAQCAtNDcyNCw3ICs0NzMyLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRp
b24KICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB2bS5oZWFwLnJlcG9ydEV4dHJhTWVtb3J5
QWxsb2NhdGVkKHdyYXBwZWQoKS5tZW1vcnlDb3N0KCkpO1xuIikgaWYgJGludGVyZmFjZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57UmVwb3J0RXh0cmFNZW1vcnlDb3N0fTsKICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIn1cblxuIik7CiAKLSAgICB1bmxlc3MgKFNob3VsZFVzZUdsb2JhbE9iamVjdFBy
b3RvdHlwZSgkaW50ZXJmYWNlKSkgeworICAgIHVubGVzcyAoU2hvdWxkVXNlR2xvYmFsT2JqZWN0
UHJvdG90eXBlKCRpbnRlcmZhY2UpIHx8ICRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNPYmplY3QqICR7Y2xhc3NOYW1lfTo6Y3Jl
YXRlUHJvdG90eXBlKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdClcbiIp
OwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBpZiAoJGludGVy
ZmFjZS0+cGFyZW50VHlwZSkgewpAQCAtNDc5NSw2ICs0ODAzLDcgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KIAogICAgICAgICBteSAkY2FzdGluZ0Z1bmN0aW9uID0gJGludGVyZmFjZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tUHJveHlUb0pTT2JqZWN0fSA/ICJ0byR7Y2xhc3NO
YW1lfSIgOiBHZXRDYXN0aW5nSGVscGVyRm9yVGhpc09iamVjdCgkaW50ZXJmYWNlKTsKICAgICAg
ICAgIyBGSVhNRTogUmVtb3ZlIEltcGxpY2l0VGhpcyBrZXl3b3JkIGFzIGl0IGlzIG5vIGxvbmdl
ciBkZWZpbmVkIGJ5IFdlYklETCBzcGVjIGFuZCBpcyBvbmx5IHVzZWQgaW4gRE9NV2luZG93Lgor
ICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM3NTgK
ICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0ltcGxpY2l0VGhp
c30pIHsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidGVtcGxhdGU8PiBpbmxpbmUg
JHtjbGFzc05hbWV9KiBJRExBdHRyaWJ1dGU8JHtjbGFzc05hbWV9Pjo6Y2FzdChKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlKVxuIik7
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwpAQCAtNDgxNiw2ICs0ODI1
LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgQWRkVG9JbXBsSW5jbHVk
ZXMoIkpTRE9NT3BlcmF0aW9uLmgiKTsKIAogICAgICAgICAjIEZJWE1FOiBNYWtlIGNvbnNpc3Rl
bnQgSURMQXR0cmlidXRlPD46OmNhc3QgYW5kIElETE9wZXJhdGlvbjw+OjpjYXN0IGluIGNhc2Ug
b2YgQ3VzdG9tUHJveHlUb0pTT2JqZWN0LgorICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM3NTgKICAgICAgICAgbXkgJGNhc3RpbmdGdW5jdGlvbiA9
ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbVByb3h5VG9KU09iamVjdH0g
PyAidG8ke2NsYXNzTmFtZX0iIDogR2V0Q2FzdGluZ0hlbHBlckZvclRoaXNPYmplY3QoJGludGVy
ZmFjZSk7CiAgICAgICAgIG15ICR0aGlzVmFsdWUgPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPntDdXN0b21Qcm94eVRvSlNPYmplY3R9ID8gImNhbGxGcmFtZS50aGlzVmFsdWUoKS50
b1RoaXMoJmxleGljYWxHbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpzbG9wcHkoKSkiIDogImNhbGxG
cmFtZS50aGlzVmFsdWUoKSI7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidGVtcGxhdGU8
PiBpbmxpbmUgJHtjbGFzc05hbWV9KiBJRExPcGVyYXRpb248JHtjbGFzc05hbWV9Pjo6Y2FzdChK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lJiBjYWxsRnJhbWUp
XG4iKTsKQEAgLTc0ODQsNiArNzQ5NCw4IEBAIHN1YiBHZW5lcmF0ZVByb3RvdHlwZURlY2xhcmF0
aW9uCiB7CiAgICAgbXkgKCRvdXRwdXRBcnJheSwgJGNsYXNzTmFtZSwgJGludGVyZmFjZSkgPSBA
XzsKIAorICAgIHJldHVybiBpZiAkaW50ZXJmYWNlLT5pc05hbWVzcGFjZU9iamVjdDsKKwogICAg
IG15ICRwcm90b3R5cGVDbGFzc05hbWUgPSAiJHtjbGFzc05hbWV9UHJvdG90eXBlIjsKIAogICAg
IG15ICVzdHJ1Y3R1cmVGbGFncyA9ICgpOwpAQCAtNzU0Miw2ICs3NTU0LDcgQEAgc3ViIEdldENv
bnN0cnVjdG9yVGVtcGxhdGVDbGFzc05hbWUKIHsKICAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7
CiAgICAgcmV0dXJuICJKU0RPTUJ1aWx0aW5Db25zdHJ1Y3RvciIgaWYgSGFzSlNCdWlsdGluQ29u
c3RydWN0b3IoJGludGVyZmFjZSk7CisgICAgcmV0dXJuICJKU0RPTUNvbnN0cnVjdG9yTm90Q2Fs
bGFibGUiIGlmICRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0OwogICAgIHJldHVybiAiSlNE
T01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUiIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcy0+e0xlZ2FjeUZhY3RvcnlGdW5jdGlvbn07CiAgICAgcmV0dXJuICJKU0RPTUNvbnN0
cnVjdG9yTm90Q29uc3RydWN0YWJsZSIgdW5sZXNzIElzQ29uc3RydWN0YWJsZSgkaW50ZXJmYWNl
KTsKICAgICByZXR1cm4gIkpTRE9NQ29uc3RydWN0b3IiOwpAQCAtNzc0NSw2ICs3NzU4LDggQEAg
c3ViIEdlbmVyYXRlQ29uc3RydWN0b3JIZWxwZXJNZXRob2RzCiAgICAgICAgICRsZWFzdENvbnN0
cnVjdG9yTGVuZ3RoID0gMDsKICAgICB9CiAKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ0ZW1w
bGF0ZTw+IGNvbnN0IENsYXNzSW5mbyAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6c19pbmZvID0g
eyBcIiR7dmlzaWJsZUludGVyZmFjZU5hbWV9XCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0pIH07XG5c
biIpOworCiAgICAgIyBJZiB0aGUgaW50ZXJmYWNlIGhhcyBhIHBhcmVudCBpbnRlcmZhY2Ugd2hp
Y2ggZG9lcyBub3QgaGF2ZSBbTGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RdLCB0aGVuIHVzZSBpdHMg
aW50ZXJmYWNlIG9iamVjdCBhcyBwcm90b3R5cGUsCiAgICAgIyBvdGhlcndpc2UgdXNlIEZ1bmN0
aW9uUHJvdG90eXBlOiBodHRwOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2ludGVyZmFjZS1v
YmplY3QKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ0ZW1wbGF0ZTw+IEpTVmFsdWUgJHtjb25z
dHJ1Y3RvckNsYXNzTmFtZX06OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29u
c3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdClcbiIpOwpAQCAtNzc1NSw2ICs3Nzcw
LDEwIEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9ySGVscGVyTWV0aG9kcwogICAgIGlmICghJGdl
bmVyYXRpbmdMZWdhY3lGYWN0b3J5RnVuY3Rpb24gYW5kICRpbnRlcmZhY2UtPnBhcmVudFR5cGUp
IHsKICAgICAgICAgbXkgJHBhcmVudENsYXNzTmFtZSA9ICJKUyIgLiAkaW50ZXJmYWNlLT5wYXJl
bnRUeXBlLT5uYW1lOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuICR7
cGFyZW50Q2xhc3NOYW1lfTo6Z2V0Q29uc3RydWN0b3Iodm0sICZnbG9iYWxPYmplY3QpO1xuIik7
CisgICAgfSBlbHNpZiAoJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3QpIHsKKyAgICAgICAg
QWRkVG9JbXBsSW5jbHVkZXMoIjxKYXZhU2NyaXB0Q29yZS9PYmplY3RQcm90b3R5cGUuaD4iKTsK
KyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFVOVVNFRF9QQVJBTSh2bSk7XG4iKTsK
KyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBnbG9iYWxPYmplY3Qub2Jq
ZWN0UHJvdG90eXBlKCk7XG4iKTsKICAgICB9IGVsc2UgewogICAgICAgICBBZGRUb0ltcGxJbmNs
dWRlcygiPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+Iik7CiAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICBVTlVTRURfUEFSQU0odm0pO1xuIik7CkBAIC03NzczLDEy
ICs3NzkyLDE0IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9ySGVscGVyTWV0aG9kcwogICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5wcm90b3R5cGUsIGdsb2JhbE9iamVjdC5nZXRQcm90b3R5cGVEaXJlY3Qodm0pLCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7XG4iKTsKICAgICB9IGVs
c2lmICgkaW50ZXJmYWNlLT5pc0NhbGxiYWNrKSB7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2JqZWN0KTtcbiIpOworICAgIH0gZWxzaWYgKCRp
bnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJT04oKTtcbiIpOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgJHtjbGFzc05hbWV9Ojpwcm90b3R5cGUodm0s
IGdsb2JhbE9iamVjdCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKTtcbiIpOwogICAgIH0KIAogICAgIGFzc2VydCgianNOb250cml2aWFsU3RyaW5nKCkg
cmVxdWlyZXMgc3RyaW5ncyB0d28gb3IgbW9yZSBjaGFyYWN0ZXJzIGxvbmciKSBpZiBsZW5ndGgo
JHZpc2libGVJbnRlcmZhY2VOYW1lKSA8IDI7Ci0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bmFtZSwganNOb250cml2aWFsU3RyaW5n
KHZtLCBcIiR2aXNpYmxlSW50ZXJmYWNlTmFtZVwiX3MpLCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTtcbiIpOworICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
Pm5hbWUsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgXCIkdmlzaWJsZUludGVyZmFjZU5hbWVcIl9z
KSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSk7XG4iKSBpZiAhJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3Q7CiAK
ICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TGVnYWN5RmFjdG9yeUZ1
bmN0aW9uRW5hYmxlZEJ5U2V0dGluZ30pIHsKICAgICAgICAgbXkgJHJ1bnRpbWVFbmFibGVDb25k
aXRpb25hbFN0cmluZyA9IEdlbmVyYXRlUnVudGltZUVuYWJsZUNvbmRpdGlvbmFsU3RyaW5nKCRp
bnRlcmZhY2UsICRpbnRlcmZhY2UsICImZ2xvYmFsT2JqZWN0Iik7CkBAIC03Nzg2LDcgKzc4MDcs
NyBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckhlbHBlck1ldGhvZHMKICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIGlmICghJHtydW50aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmd9
KVxuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgY29uc3RydWN0b3JM
ZW5ndGggPSAwO1xuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoY29uc3RydWN0b3JMZW5n
dGgpLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKTtcbiIpOwotICAgIH0gZWxzZSB7CisgICAgfSBlbHNpZiAoISRpbnRl
cmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KSB7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoJHts
ZWFzdENvbnN0cnVjdG9yTGVuZ3RofSksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pO1xuIik7CiAgICAgfQogCkBAIC03
ODIxLDcgKzc4NDIsNiBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckhlbHBlck1ldGhvZHMKICAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIlxuIik7CiAgICAgfQotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgInRlbXBsYXRlPD4g
Y29uc3QgQ2xhc3NJbmZvICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpzX2luZm8gPSB7IFwiJHt2
aXNpYmxlSW50ZXJmYWNlTmFtZX1cIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRSgkY29uc3RydWN0b3JDbGFzc05hbWUpIH07XG5cbiIpOwogfQog
CiBzdWIgSGFzQ3VzdG9tQ29uc3RydWN0b3IKQEAgLTc4NjYsNiArNzg4Niw3IEBAIHN1YiBOZWVk
c0NvbnN0cnVjdG9yUHJvcGVydHkKIHsKICAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CiAgICAg
CisgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZS0+aXNOYW1lc3BhY2VPYmplY3Q7CiAgICAgcmV0
dXJuICEkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntMZWdhY3lOb0ludGVyZmFjZU9i
amVjdH07CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0
cmlidXRlcy5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvSURMQXR0cmlidXRlcy5qc29uCShyZXZpc2lvbiAyNzY1OTUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgkod29ya2luZyBjb3B5KQpAQCAt
Miw2ICsyLDcgQEAKICAgICAiY29udGV4dHMiOiBbCiAgICAgICAgICJ0eXBlIiwKICAgICAgICAg
ImludGVyZmFjZSIsCisgICAgICAgICJuYW1lc3BhY2UiLAogICAgICAgICAiYXR0cmlidXRlIiwK
ICAgICAgICAgIm9wZXJhdGlvbiIsCiAgICAgICAgICJhcmd1bWVudCIsCkBAIC02Niw3ICs2Nyw3
IEBACiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCiAgICAgICAgICJDb25kaXRpb25hbCI6IHsK
LSAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImludGVyZmFjZSIsICJkaWN0aW9uYXJ5
IiwgImRpY3Rpb25hcnktbWVtYmVyIiwgImVudW0iLCAiYXR0cmlidXRlIiwgIm9wZXJhdGlvbiIs
ICJjb25zdGFudCIsICJjYWxsYmFjay1mdW5jdGlvbiIsICJpbmNsdWRlcyJdLAorICAgICAgICAg
ICAgImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIiwgIm5hbWVzcGFjZSIsICJkaWN0aW9u
YXJ5IiwgImRpY3Rpb25hcnktbWVtYmVyIiwgImVudW0iLCAiYXR0cmlidXRlIiwgIm9wZXJhdGlv
biIsICJjb25zdGFudCIsICJjYWxsYmFjay1mdW5jdGlvbiIsICJpbmNsdWRlcyJdLAogICAgICAg
ICAgICAgInZhbHVlcyI6IFsiKiJdLAogICAgICAgICAgICAgInN1cHBvcnRzQ29uanVuY3Rpb24i
OiB0cnVlCiAgICAgICAgIH0sCkBAIC0xNzMsMTIgKzE3NCwxMiBAQAogICAgICAgICAgICAgInN1
cHBvcnRzQ29uanVuY3Rpb24iOiB0cnVlCiAgICAgICAgIH0sCiAgICAgICAgICJFbmFibGVkQXRS
dW50aW1lIjogewotICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIiwg
ImRpY3Rpb25hcnkiLCAiZW51bSIsICJhdHRyaWJ1dGUiLCAib3BlcmF0aW9uIiwgImNvbnN0YW50
IiwgIml0ZXJhYmxlIiwgImluY2x1ZGVzIl0sCisgICAgICAgICAgICAiY29udGV4dHNBbGxvd2Vk
IjogWyJpbnRlcmZhY2UiLCAibmFtZXNwYWNlIiwgImRpY3Rpb25hcnkiLCAiZW51bSIsICJhdHRy
aWJ1dGUiLCAib3BlcmF0aW9uIiwgImNvbnN0YW50IiwgIml0ZXJhYmxlIiwgImluY2x1ZGVzIl0s
CiAgICAgICAgICAgICAidmFsdWVzIjogWyIqIl0sCiAgICAgICAgICAgICAic3VwcG9ydHNDb25q
dW5jdGlvbiI6IHRydWUKICAgICAgICAgfSwKICAgICAgICAgIkVuYWJsZWRCeVNldHRpbmciOiB7
Ci0gICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZhY2UiLCAiZGljdGlvbmFy
eSIsICJlbnVtIiwgImF0dHJpYnV0ZSIsICJvcGVyYXRpb24iLCAiY29uc3RhbnQiLCAiZGljdGlv
bmFyeS1tZW1iZXIiLCAiaW5jbHVkZXMiXSwKKyAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQi
OiBbImludGVyZmFjZSIsICJuYW1lc3BhY2UiLCAiZGljdGlvbmFyeSIsICJlbnVtIiwgImF0dHJp
YnV0ZSIsICJvcGVyYXRpb24iLCAiY29uc3RhbnQiLCAiZGljdGlvbmFyeS1tZW1iZXIiLCAiaW5j
bHVkZXMiXSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbIioiXSwKICAgICAgICAgICAgICJzdXBw
b3J0c0Nvbmp1bmN0aW9uIjogdHJ1ZQogICAgICAgICB9LApAQCAtMjEwLDcgKzIxMSw3IEBACiAg
ICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZhY2UiXQogICAgICAgICB9LAog
ICAgICAgICAiRXhwb3NlZCI6IHsKLSAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImlu
dGVyZmFjZSIsICJhdHRyaWJ1dGUiLCAib3BlcmF0aW9uIiwgImNvbnN0YW50Il0sCisgICAgICAg
ICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZhY2UiLCAibmFtZXNwYWNlIiwgImF0dHJp
YnV0ZSIsICJvcGVyYXRpb24iLCAiY29uc3RhbnQiXSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBb
IioiXSwKICAgICAgICAgICAgICJzdGFuZGFyZCI6IHsKICAgICAgICAgICAgICAgICAidXJsIjog
Imh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI0V4cG9zZWQiCkBAIC0yMzksNyArMjQw
LDcgQEAKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbIioiXQogICAgICAgICB9LAogICAgICAgICAi
SW1wbGVtZW50ZWRCeSI6IHsKLSAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImludGVy
ZmFjZSIsICJkaWN0aW9uYXJ5IiwgImRpY3Rpb25hcnktbWVtYmVyIiwgImF0dHJpYnV0ZSIsICJv
cGVyYXRpb24iLCAiY29uc3RhbnQiXSwKKyAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBb
ImludGVyZmFjZSIsICJuYW1lc3BhY2UiLCAiZGljdGlvbmFyeSIsICJkaWN0aW9uYXJ5LW1lbWJl
ciIsICJhdHRyaWJ1dGUiLCAib3BlcmF0aW9uIiwgImNvbnN0YW50Il0sCiAgICAgICAgICAgICAi
dmFsdWVzIjogWyIqIl0KICAgICAgICAgfSwKICAgICAgICAgIkltcGxlbWVudGF0aW9uTGFja3NW
VGFibGUiOiB7CkBAIC0yNDksNyArMjUwLDcgQEAKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93
ZWQiOiBbImludGVyZmFjZSJdCiAgICAgICAgIH0sCiAgICAgICAgICJJbnRlcmZhY2VOYW1lIjog
ewotICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIl0sCisgICAgICAg
ICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZhY2UiLCAibmFtZXNwYWNlIl0sCiAgICAg
ICAgICAgICAidmFsdWVzIjogWyIqIl0KICAgICAgICAgfSwKICAgICAgICAgIklzSW1tdXRhYmxl
UHJvdG90eXBlRXhvdGljT2JqZWN0IjogewpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9JRExQYXJzZXIucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9JRExQYXJzZXIucG0JKHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCSh3b3JraW5nIGNvcHkpCkBAIC02Niw2
ICs2Niw3IEBAIHN0cnVjdCggSURMSW50ZXJmYWNlID0+IHsKICAgICBhdHRyaWJ1dGVzID0+ICdA
JywgICAgIyBMaXN0IG9mICdJRExBdHRyaWJ1dGUnCiAgICAgY29uc3RydWN0b3JzID0+ICdAJywg
IyBDb25zdHJ1Y3RvcnMsIGxpc3Qgb2YgJ0lETE9wZXJhdGlvbicKICAgICBpc0NhbGxiYWNrID0+
ICckJywgIyBVc2VkIGZvciBjYWxsYmFjayBpbnRlcmZhY2VzCisgICAgaXNOYW1lc3BhY2VPYmpl
Y3QgPT4gJyQnLCAjIFVzZWQgZm9yIG5hbWVzcGFjZSBvYmplY3RzIGxpa2UgYHdpbmRvdy5DU1Ng
CiAgICAgaXNNaXhpbiA9PiAnJCcsICMgVXNlZCBmb3IgbWl4aW4gaW50ZXJmYWNlcwogICAgIGlz
UGFydGlhbCA9PiAnJCcsICMgVXNlZCBmb3IgcGFydGlhbCBpbnRlcmZhY2VzCiAgICAgaXRlcmFi
bGUgPT4gJyQnLCAjIFVzZWQgZm9yIGl0ZXJhYmxlIGludGVyZmFjZXMsIG9mIHR5cGUgJ0lETEl0
ZXJhYmxlJwpAQCAtMzEyLDYgKzMxMywzMyBAQCBzdWIgYXNzZXJ0RXh0ZW5kZWRBdHRyaWJ1dGVz
VmFsaWRGb3JDb250CiAgICAgfQogfQogCitzdWIgY29udmVydE5hbWVzcGFjZVRvSW50ZXJmYWNl
Cit7CisgICAgIyBJZGVhbGx5LCB3ZSBzaG91bGQga2VlcCBhIG5hbWVzcGFjZSBvYmplY3QgYXMg
SURMTmFtZXNwYWNlIGFsbCB0aGUgd2F5IHRocm91Z2ggZ2VuZXJhdGlvbiwKKyAgICAjIGJ1dCB0
aGF0IHdvdWxkIHJlcXVpcmUgaHVnZSBjaGFuZ2VzIHRvIHRoZSBnZW5lcmF0b3IuIEZlYXR1cmUt
d2lzZSwgYSBuYW1lc3BhY2Ugb2JqZWN0IGlzCisgICAgIyBhIHN1YnNldCBvZiBhbiBpbnRlcmZh
Y2UsIHNvIElETE5hbWVzcGFjZSBpcyBjb252ZXJ0ZWQgaW50byBJRExJbnRlcmZhY2UsIHdpdGgg
YSBmbGFnIG9uLgorCisgICAgbXkgJG5hbWVzcGFjZSA9IHNoaWZ0OworCisgICAgbXkgJGludGVy
ZmFjZSA9IElETEludGVyZmFjZS0+bmV3KCk7CisgICAgJGludGVyZmFjZS0+dHlwZShtYWtlU2lt
cGxlVHlwZSgkbmFtZXNwYWNlLT5uYW1lKSk7CisKKyAgICBmb3JlYWNoIG15ICRvcGVyYXRpb24g
KEB7JG5hbWVzcGFjZS0+b3BlcmF0aW9uc30pIHsKKyAgICAgICAgJG9wZXJhdGlvbi0+aXNTdGF0
aWMoMSk7CisgICAgICAgIHB1c2goQHskaW50ZXJmYWNlLT5vcGVyYXRpb25zfSwgJG9wZXJhdGlv
bik7CisgICAgfQorCisgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRuYW1lc3BhY2UtPmF0
dHJpYnV0ZXN9KSB7CisgICAgICAgICRhdHRyaWJ1dGUtPmlzU3RhdGljKDEpOworICAgICAgICBw
dXNoKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30sICRhdHRyaWJ1dGUpOworICAgIH0KKworICAg
ICRpbnRlcmZhY2UtPmlzTmFtZXNwYWNlT2JqZWN0KDEpOworICAgICRpbnRlcmZhY2UtPmlzUGFy
dGlhbCgkbmFtZXNwYWNlLT5pc1BhcnRpYWwpOworICAgICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcygkbmFtZXNwYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMpOworICAgIHJldHVybiAkaW50
ZXJmYWNlOworfQorCiBzdWIgUGFyc2UKIHsKICAgICBteSAkc2VsZiA9IHNoaWZ0OwpAQCAtMzUx
LDcgKzM3OSw3IEBAIHN1YiBQYXJzZQogICAgICAgICB9IGVsc2lmIChyZWYoJGRlZmluaXRpb24p
IGVxICJJRExDYWxsYmFja0Z1bmN0aW9uIikgewogICAgICAgICAgICAgcHVzaChAeyRkb2N1bWVu
dC0+Y2FsbGJhY2tGdW5jdGlvbnN9LCAkZGVmaW5pdGlvbik7CiAgICAgICAgIH0gZWxzaWYgKHJl
ZigkZGVmaW5pdGlvbikgZXEgIklETE5hbWVzcGFjZSIpIHsKLSAgICAgICAgICAgIHB1c2goQHsk
ZG9jdW1lbnQtPm5hbWVzcGFjZXN9LCAkZGVmaW5pdGlvbik7CisgICAgICAgICAgICBwdXNoKEB7
JGRvY3VtZW50LT5pbnRlcmZhY2VzfSwgY29udmVydE5hbWVzcGFjZVRvSW50ZXJmYWNlKCRkZWZp
bml0aW9uKSk7CiAgICAgICAgIH0gZWxzaWYgKHJlZigkZGVmaW5pdGlvbikgZXEgIklETEluY2x1
ZGVzU3RhdGVtZW50IikgewogICAgICAgICAgICAgcHVzaChAeyRkb2N1bWVudC0+aW5jbHVkZXN9
LCAkZGVmaW5pdGlvbik7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0xMDM3LDggKzEwNjUsNiBAQCBz
dWIgcGFyc2VOYW1lc3BhY2UKICAgICAgICAgJHNlbGYtPmFzc2VydEV4dGVuZGVkQXR0cmlidXRl
c1ZhbGlkRm9yQ29udGV4dCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LCAibmFtZXNwYWNlIik7CiAg
ICAgICAgICRuYW1lc3BhY2UtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0KTsKIAotICAgICAgICBkaWUgIiduYW1lc3BhY2UnIGRlZmluaXRpb25zIGFyZSBub3QgY3Vy
cmVudGx5IHN1cHBvcnRlZCBieSB0aGUgY29kZSBnZW5lcmF0b3JzLiI7Ci0KICAgICAgICAgcmV0
dXJuICRuYW1lc3BhY2U7CiAgICAgfQogICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4o
JG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsCShyZXZpc2lvbiAyNzY1OTUpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbAkod29y
a2luZyBjb3B5KQpAQCAtNjUwLDcgKzY1MCw3IEBAIHN1YiBjb250YWluc0ludGVyZmFjZU9yQ2Fs
bGJhY2tJbnRlcmZhY2UKICAgICBteSAkaWRsRmlsZSA9IHNoaWZ0OwogCiAgICAgbXkgJGZpbGVD
b250ZW50cyA9ICRpZGxGaWxlLT5maWxlQ29udGVudHM7Ci0gICAgbXkgJGNvbnRhaW5zSW50ZXJm
YWNlT3JDYWxsYmFja0ludGVyZmFjZSA9ICgkZmlsZUNvbnRlbnRzID1+IC9cYihjYWxsYmFjayBp
bnRlcmZhY2V8aW50ZXJmYWNlKVxzKyhcdyspL2dzKTsKKyAgICBteSAkY29udGFpbnNJbnRlcmZh
Y2VPckNhbGxiYWNrSW50ZXJmYWNlID0gKCRmaWxlQ29udGVudHMgPX4gL1xiKGNhbGxiYWNrIGlu
dGVyZmFjZXxpbnRlcmZhY2V8bmFtZXNwYWNlKVxzKyhcdyspL2dzKTsKIAogICAgIGlmICgkdmFs
aWRhdGVBZ2FpbnN0UGFyc2VyKSB7CiAgICAgICAgIHByaW50ICJWYWxpZGF0aW5nIGNvbnRhaW5z
SW50ZXJmYWNlT3JDYWxsYmFja0ludGVyZmFjZUZyb21JREwgZm9yICIgLiAkaWRsRmlsZS0+Zmls
ZU5hbWUgLiAiIGFnYWluc3QgdmFsaWRhdGlvbiBwYXJzZXIuXG4iIGlmICR2ZXJib3NlOwpAQCAt
NzAwLDcgKzcwMCw3IEBAIHN1YiBnZXRJbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tSUQK
ICAgICBteSAkZmlsZUNvbnRlbnRzID0gJGlkbEZpbGUtPmZpbGVDb250ZW50czsKIAogICAgIG15
ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSB7fTsKLSAgICBpZiAoJGZpbGVDb250ZW50cyA9fiAvXFso
LiopXF1ccysoY2FsbGJhY2sgaW50ZXJmYWNlfGludGVyZmFjZSlccysoXHcrKS9ncykgeworICAg
IGlmICgkZmlsZUNvbnRlbnRzID1+IC9cWyguKilcXVxzKyhjYWxsYmFjayBpbnRlcmZhY2V8aW50
ZXJmYWNlfG5hbWVzcGFjZSlccysoXHcrKS9ncykgewogICAgICAgICBteSAkcGFyYW1ldGVycyA9
ICQxOwogICAgICAgICBpZiAoaW5kZXgoJHBhcmFtZXRlcnMsICd9JykgIT0gLTEpIHsKICAgICAg
ICAgICAgICMgSW4gY2FzZSB3ZSBoYXZlIGEgZGVjbGFyYXRpb24gbGlrZSBhIGRpY3Rpb25hcnkg
d2l0aCBleHRlbmRlZCBhdHRyaWJ1dGVzIGRlZmluZWQgYmVmb3JlIHRoZSBpbnRlcmZhY2UuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQmluZGluZ1Rlc3RHbG9i
YWxDb25zdHJ1Y3RvcnMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9CaW5kaW5nVGVzdEdsb2JhbENvbnN0cnVjdG9ycy5pZGwJKHJldmlzaW9u
IDI3NjU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9CaW5kaW5n
VGVzdEdsb2JhbENvbnN0cnVjdG9ycy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcg
QEAgcGFydGlhbCBpbnRlcmZhY2UgVGVzdEdsb2JhbE9iamVjdCB7CiAgICAgYXR0cmlidXRlIFRl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IgVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM7CiAgICAgYXR0cmlidXRlIFRlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvciBUZXN0
TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzOwogICAgIGF0dHJpYnV0
ZSBUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5
T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yIFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zOworICAgIGF0dHJpYnV0
ZSBUZXN0TmFtZXNwYWNlT2JqZWN0Q29uc3RydWN0b3IgVGVzdEludGVyZmFjZU5hbWU7CiAgICAg
W0NvbmRpdGlvbmFsPUNvbmRpdGlvbkRlcml2ZWRdIGF0dHJpYnV0ZSBUZXN0T3BlcmF0aW9uQ29u
ZGl0aW9uYWxDb25zdHJ1Y3RvciBUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWw7CiAgICAgYXR0cmli
dXRlIFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IgVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2U7CiAgICAgYXR0cmlidXRlIFRlc3RQ
bHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvciBUZXN0UGx1Z2luSW50ZXJmYWNlOwpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2ll
cy5kZXAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMu
ZGVwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjAsNiArMjIwLDEwIEBAIFdlYkRPTVRlc3ROYW1lZFNl
dHRlcldpdGhMZWdhY3lVbmZvcmdlYWIKIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9y
Z2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuaDogCiBET01UZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVC
dWlsdElucy5oOiAKIFdlYkRPTVRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmg6IAorSlNUZXN0TmFtZXNwYWNlT2Jq
ZWN0Lmg6IFRlc3RQYXJ0aWFsTmFtZXNwYWNlT2JqZWN0LmlkbAorRE9NVGVzdE5hbWVzcGFjZU9i
amVjdC5oOiBUZXN0UGFydGlhbE5hbWVzcGFjZU9iamVjdC5pZGwKK1dlYkRPTVRlc3ROYW1lc3Bh
Y2VPYmplY3QuaDogVGVzdFBhcnRpYWxOYW1lc3BhY2VPYmplY3QuaWRsCitUZXN0UGFydGlhbE5h
bWVzcGFjZU9iamVjdC5pZGw6CiBKU1Rlc3ROb2RlLmg6IAogRE9NVGVzdE5vZGUuaDogCiBXZWJE
T01UZXN0Tm9kZS5oOiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9UZXN0TmFtZXNwYWNlT2JqZWN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE5hbWVzcGFjZU9iamVjdC5pZGwJKG5vbmV4aXN0ZW50
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3ROYW1lc3BhY2VP
YmplY3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQWxleGV5IFNodmF5a2EgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworLy8gVGhpcyBJREwgZmlsZSBpcyBmb3IgdGVzdGluZyB0aGUgYmluZGluZ3MgY29kZSBn
ZW5lcmF0b3IgYW5kIGZvciB0cmFja2luZworLy8gY2hhbmdlcyBpbiBpdHMgb3V0cHV0LgorWwor
ICAgIEludGVyZmFjZU5hbWU9VGVzdEludGVyZmFjZU5hbWUsCisgICAgRXhwb3NlZD1UZXN0R2xv
YmFsT2JqZWN0LAorXSBuYW1lc3BhY2UgVGVzdE5hbWVzcGFjZU9iamVjdCB7CisgICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbmFtZXNwYWNlQXR0cmlidXRlOworICAgIGJvb2xl
YW4gb3ZlcmxvYWRlZE5hbWVzcGFjZU9wZXJhdGlvbihUZXN0T2JqPyBvYmpBcmcsIERPTVN0cmlu
ZyBzdHJBcmcpOworICAgIGJvb2xlYW4gb3ZlcmxvYWRlZE5hbWVzcGFjZU9wZXJhdGlvbihUZXN0
T2JqPyBvYmpBcmcsIG9wdGlvbmFsIGxvbmcgbG9uZ0FyZyk7CisgICAgW0VuYWJsZWRCeVNldHRp
bmc9VGVzdFNldHRpbmcyXSBET01TdHJpbmcgZW5hYmxlZEJ5U2V0dGluZ05hbWVzcGFjZU9wZXJh
dGlvbihvcHRpb25hbCBhbnkgYXJnKTsKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVGVzdFBhcnRpYWxOYW1lc3BhY2VPYmplY3QuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0UGFydGlhbE5hbWVz
cGFjZU9iamVjdC5pZGwJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RQYXJ0aWFsTmFtZXNwYWNlT2JqZWN0LmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFsZXhleSBTaHZh
eWthIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8vIFRoaXMgSURMIGZpbGUg
aXMgZm9yIHRlc3RpbmcgdGhlIGJpbmRpbmdzIGNvZGUgZ2VuZXJhdG9yIGFuZCBmb3IgdHJhY2tp
bmcKKy8vIGNoYW5nZXMgaW4gaXRzIG91dHB1dC4KK1sKKyAgICBDb25kaXRpb25hbD1Db25kaXRp
b24xLAorICAgIEVuYWJsZWRCeVNldHRpbmc9VGVzdFNldHRpbmcxLAorICAgIEltcGxlbWVudGVk
Qnk9VGVzdE5hbWVzcGFjZU9iamVjdEltcGwsCitdIHBhcnRpYWwgbmFtZXNwYWNlIFRlc3ROYW1l
c3BhY2VPYmplY3QgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgbmFtZXNwYWNlQXR0
cmlidXRlRnJvbVBhcnRpYWw7CisgICAgW0ltcGxlbWVudGVkQXM9b3BlcmF0aW9uRnJvbVBhcnRp
YWxJbXBsXSB1bmRlZmluZWQgbmFtZXNwYWNlT3BlcmF0aW9uRnJvbVBhcnRpYWwoKTsKK307Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNET01XaW5kb3cu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0RPTVdpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE0Miw2ICsxNDIsOCBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNET01XaW5kb3dU
CiB9OwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTRE9NV2luZG93VGFibGUgPSB7IDExLCAz
MSwgdHJ1ZSwgSlNET01XaW5kb3c6OmluZm8oKSwgSlNET01XaW5kb3dUYWJsZVZhbHVlcywgSlNE
T01XaW5kb3dUYWJsZUluZGV4IH07Cit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU0RPTVdp
bmRvd0RPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJET01XaW5kb3ciLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTRE9NV2luZG93RE9NQ29u
c3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU0RPTVdpbmRvd0RPTUNvbnN0cnVj
dG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTRXZlbnRUYXJnZXQ6OmdldENv
bnN0cnVjdG9yKHZtLCAmZ2xvYmFsT2JqZWN0KTsKQEAgLTE1NCw4ICsxNTYsNiBAQCB0ZW1wbGF0
ZTw+IHZvaWQgSlNET01XaW5kb3dET01Db25zdHJ1Y3RvCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVt
cGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNET01XaW5kb3dET01Db25zdHJ1Y3Rvcjo6c19pbmZv
ID0geyAiRE9NV2luZG93IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU0RPTVdpbmRvd0RPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRh
YmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaElu
ZGV4IEpTRE9NV2luZG93UHJvdG90eXBlVGFibGVJbmRleFsyXSA9IHsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0RlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAJKHJldmlzaW9uIDI3NjU5NSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0RlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYsOCBAQCBzdGF0
aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNEZWRpY2F0ZWRXCiB9OwogCiBzdGF0aWMgY29uc3Qg
SGFzaFRhYmxlIEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVUYWJsZSA9IHsgMSwgMSwgdHJ1
ZSwgSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6aW5mbygpLCBKU0RlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlVGFibGVWYWx1ZXMsIEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVUYWJs
ZUluZGV4IH07Cit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU0RlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkRlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlRE9NQ29uc3RydWN0b3IpIH07CisKIHRl
bXBsYXRlPD4gSlNWYWx1ZSBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlRE9NQ29uc3RydWN0
b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxP
YmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gSlNXb3JrZXJHbG9iYWxTY29wZTo6
Z2V0Q29uc3RydWN0b3Iodm0sICZnbG9iYWxPYmplY3QpOwpAQCAtNzgsOCArODAsNiBAQCB0ZW1w
bGF0ZTw+IHZvaWQgSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTCiAgICAgcHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAot
dGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZURP
TUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSIsICZC
YXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNEZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxl
IGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4
IEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVQcm90b3R5cGVUYWJsZUluZGV4WzJdID0gewpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRXhwb3NlZFRv
V29ya2VyQW5kV2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3cuY3BwCShyZXZpc2lv
biAyNzY1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNF
eHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsNiArMTQ1
LDggQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMXwogfQogSlNDX0FO
Tk9UQVRFX0hPU1RfRlVOQ1RJT04oSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dET01Db25zdHJ1
Y3RvckNvbnN0cnVjdCwgSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dET01Db25zdHJ1Y3Rvcjo6
Y29uc3RydWN0KTsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNFeHBvc2VkVG9Xb3Jr
ZXJBbmRXaW5kb3dET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRXhwb3NlZFRvV29ya2VyQW5k
V2luZG93IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0RPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1w
bGF0ZTw+IEpTVmFsdWUgSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dET01Db25zdHJ1Y3Rvcjo6
cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVj
dCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0xNTgsOCArMTYw
LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZAogICAgIHB1dERp
cmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTRXhwb3NlZFRvV29ya2VyQW5k
V2luZG93RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkV4cG9zZWRUb1dvcmtlckFuZFdpbmRv
dyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0
YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU0V4
cG9zZWRUb1dvcmtlckFuZFdpbmRvd1Byb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmNwcAkocmV2aXNpb24gMjc2NTk1KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2Niw4IEBAIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1BhaW50V29ya2wKIH07CiAKIHN0YXRpYyBjb25zdCBIYXNo
VGFibGUgSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZVRhYmxlID0geyAxLCAxLCB0cnVlLCBKU1Bh
aW50V29ya2xldEdsb2JhbFNjb3BlOjppbmZvKCksIEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVU
YWJsZVZhbHVlcywgSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZVRhYmxlSW5kZXggfTsKK3RlbXBs
YXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVET01Db25zdHJ1
Y3Rvcjo6c19pbmZvID0geyAiUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUiLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTUGFpbnRXb3JrbGV0R2xv
YmFsU2NvcGVET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTUGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGVET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpT
Qzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAg
IHJldHVybiBKU1dvcmtsZXRHbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3Iodm0sICZnbG9iYWxP
YmplY3QpOwpAQCAtNzgsOCArODAsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNQYWludFdvcmtsZXRH
bG9iYWxTY29wCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpz
TnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8g
SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJQYWlu
dFdvcmtsZXRHbG9iYWxTY29wZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9y
KSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IHN0
cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVQcm90b3R5cGVU
YWJsZUluZGV4WzJdID0gewpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUuY3BwCShyZXZpc2lvbiAyNzY1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02Niw2ICs2Niw4IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1NlcnZp
Y2VXb3IKIH07CiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGVUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6Omlu
Zm8oKSwgSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVUYWJsZVZhbHVlcywgSlNTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGVUYWJsZUluZGV4IH07Cit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBK
U1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlRE9NQ29uc3RydWN0
b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZURP
TUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpT
RE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTV29ya2VyR2xv
YmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKHZtLCAmZ2xvYmFsT2JqZWN0KTsKQEAgLTc4LDggKzgw
LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTU2VydmljZVdvcmtlckdsb2JhbFNjbwogICAgIHB1dERp
cmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0
YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJ
bmRleCBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZVByb3RvdHlwZVRhYmxlSW5kZXhbMl0gPSB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VS
ZWFjdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHAJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw2ICsxMDgsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19T
VUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdENFUmVhY3Rpb25zRE9NQ29uc3Ry
dWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RDRVJlYWN0aW9u
cz47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdENFUmVhY3Rpb25zRE9NQ29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RDRVJlYWN0aW9ucyIsICZCYXNlOjpzX2luZm8sIG51
bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q0VSZWFjdGlvbnNET01D
b25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdENFUmVhY3Rpb25zRE9N
Q29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNE
T01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpA
QCAtMTIxLDggKzEyMyw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RDRVJlYWN0aW9uc0RPTUNv
bnMKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIo
MCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RD
RVJlYWN0aW9uc0RPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0Q0VSZWFjdGlvbnMiLCAm
QmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVz
dENFUmVhY3Rpb25zRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3Rv
dHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0Q0VSZWFjdGlvbnNQ
cm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFj
dGlvbnNTdHJpbmdpZmllci5jcHAJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtOTMsNiArOTMsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJT
UEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJE
T01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXI+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyRE9NQ29uc3Ry
dWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29u
c3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0o
dm0pOwpAQCAtMTA2LDggKzEwOCw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RDRVJlYWN0aW9u
c1N0cmluZ2kKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNO
dW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBK
U1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyRE9NQ29u
c3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMg
Y29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlw
ZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcAkocmV2aXNpb24g
Mjc2NTk1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dENhbGxUcmFjZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQsNiArMTI0LDggQEAgc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdENhbGxUcgogCiBzdGF0aWNfYXNzZXJ0KFRlc3RD
YWxsVHJhY2VyOjp0ZXN0Q29uc3RWYWx1ZSA9PSBmYWxzZSwgInRlc3RDb25zdFZhbHVlIGluIFRl
c3RDYWxsVHJhY2VyIGRvZXMgbm90IG1hdGNoIHZhbHVlIGZyb20gSURMIik7CiAKK3RlbXBsYXRl
PD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdENhbGxUcmFjZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZv
ID0geyAiVGVzdENhbGxUcmFjZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdENhbGxUcmFjZXJET01Db25zdHJ1Y3RvcikgfTsKKwog
dGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdENhbGxUcmFjZXJET01Db25zdHJ1Y3Rvcjo6cHJvdG90
eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xv
YmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0xMzgsOCArMTQwLDYgQEAg
dGVtcGxhdGU8PiB2b2lkIEpTVGVzdENhbGxUcmFjZXJET01Db25zdAogICAgIHJlaWZ5U3RhdGlj
UHJvcGVydGllcyh2bSwgSlNUZXN0Q2FsbFRyYWNlcjo6aW5mbygpLCBKU1Rlc3RDYWxsVHJhY2Vy
Q29uc3RydWN0b3JUYWJsZVZhbHVlcywgKnRoaXMpOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENs
YXNzSW5mbyBKU1Rlc3RDYWxsVHJhY2VyRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RD
YWxsVHJhY2VyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3RDYWxsVHJhY2VyRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFi
bGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0
Q2FsbFRyYWNlclByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrSW50ZXJmYWNlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q2FsbGJhY2tJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAyNzY1OTUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tJbnRlcmZhY2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTIsNiArMTUyLDggQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZh
bHVlIEpTVGVzdENhbGxiYQogc3RhdGljX2Fzc2VydChUZXN0Q2FsbGJhY2tJbnRlcmZhY2U6OkNP
TlNUQU5UMSA9PSAxLCAiQ09OU1RBTlQxIGluIFRlc3RDYWxsYmFja0ludGVyZmFjZSBkb2VzIG5v
dCBtYXRjaCB2YWx1ZSBmcm9tIElETCIpOwogc3RhdGljX2Fzc2VydChUZXN0Q2FsbGJhY2tJbnRl
cmZhY2U6OkNPTlNUQU5UMiA9PSAyLCAiQ09OU1RBTlQyIGluIFRlc3RDYWxsYmFja0ludGVyZmFj
ZSBkb2VzIG5vdCBtYXRjaCB2YWx1ZSBmcm9tIElETCIpOwogCit0ZW1wbGF0ZTw+IGNvbnN0IENs
YXNzSW5mbyBKU1Rlc3RDYWxsYmFja0ludGVyZmFjZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7
ICJUZXN0Q2FsbGJhY2tJbnRlcmZhY2UiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdENhbGxiYWNrSW50ZXJmYWNlRE9NQ29uc3RydWN0
b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RDYWxsYmFja0ludGVyZmFjZURPTUNv
bnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9N
R2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAg
LTE2Niw4ICsxNjgsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0Q2FsbGJhY2tJbnRlcmZhY2VE
CiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBudWxscHRyLCBKU1Rlc3RDYWxsYmFja0lu
dGVyZmFjZUNvbnN0cnVjdG9yVGFibGVWYWx1ZXMsICp0aGlzKTsKIH0KIAotdGVtcGxhdGU8PiBj
b25zdCBDbGFzc0luZm8gSlNUZXN0Q2FsbGJhY2tJbnRlcmZhY2VET01Db25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiVGVzdENhbGxiYWNrSW50ZXJmYWNlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RDYWxsYmFja0ludGVyZmFjZURPTUNv
bnN0cnVjdG9yKSB9OwotCiBKU1ZhbHVlIEpTVGVzdENhbGxiYWNrSW50ZXJmYWNlOjpnZXRDb25z
dHJ1Y3RvcihWTSYgdm0sIGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAg
ICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTVGVzdENhbGxiYWNrSW50ZXJmYWNlRE9NQ29u
c3RydWN0b3I+KHZtLCAqanNDYXN0PGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2Jq
ZWN0KSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0
aW5Db25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDggQEAgU1RBVElDX0FTU0VSVF9JU09f
U1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5D
b25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yID0gSlNET01CdWlsdGluQ29uc3RydWN0b3I8SlNUZXN0
Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3I+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNz
SW5mbyBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IiLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdENsYXNzV2l0
aEpTQnVpbHRpbkNvbnN0cnVjdG9yRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNW
YWx1ZSBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yOjpw
cm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0
JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTEwMCw4ICsxMDIs
NiBAQCB0ZW1wbGF0ZTw+IEZ1bmN0aW9uRXhlY3V0YWJsZSogSlNUZXN0Q2xhCiAgICAgcmV0dXJu
IHRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckluaXRpYWxpemVUZXN0Q2xhc3NXaXRo
SlNCdWlsdGluQ29uc3RydWN0b3JDb2RlR2VuZXJhdG9yKHZtKTsKIH0KIAotdGVtcGxhdGU8PiBj
b25zdCBDbGFzc0luZm8gSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JET01Db25z
dHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yIiwg
JkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rl
c3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBI
YXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVl
IEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlVGFibGVWYWx1ZXNb
XSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMuY3BwCShyZXZp
c2lvbiAyNzY1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3Niw2ICsx
NzYsOCBAQCBzdGF0aWNfYXNzZXJ0KFRlc3RDb25kaXRpb25hbEluY2x1ZGVzOjpDCiBzdGF0aWNf
YXNzZXJ0KFRlc3RDb25kaXRpb25hbEluY2x1ZGVzOjpQQVJUSUFMX01JWElOX0NPTlNUQU5UX0ZS
T01fUEFSVElBTCA9PSA1LCAiUEFSVElBTF9NSVhJTl9DT05TVEFOVF9GUk9NX1BBUlRJQUwgaW4g
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXMgZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJvbSBJREwiKTsK
ICNlbmRpZgogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RDb25kaXRpb25hbEluY2x1ZGVz
IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShK
U1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4g
SlNWYWx1ZSBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzRE9NQ29uc3RydWN0b3I6OnByb3RvdHlw
ZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2Jh
bE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMjE0LDggKzIxNiw2IEBAIHRl
bXBsYXRlPD4gdm9pZCBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGUKICNlbmRpZgogfQogCi10ZW1w
bGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzRE9NQ29uc3Ry
dWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RDb25kaXRpb25hbEluY2x1ZGVzIiwgJkJhc2U6OnNfaW5m
bywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RDb25kaXRpb25h
bEluY2x1ZGVzRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlw
ZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc1Byb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlLmNwcAkocmV2aXNpb24gMjc2NTk1KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsNiArMTM3LDggQEAgc3RhdGljIGNvbnN0IEhh
c2hUYWJsZVZhbHVlIEpTVGVzdENvbmRpdAogfTsKIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlVGFibGUgPSB7IDIsIDcsIHRydWUsIEpTVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGU6OmluZm8oKSwgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZVRhYmxlVmFsdWVzLCBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlVGFibGVJbmRleCB9Owor
dGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZURP
TUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSIsICZC
YXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZURPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpT
VmFsdWUgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5
cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTE1MCw4ICsxNTIsNiBAQCB0
ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXCiAgICAgcHV0RGlyZWN0KHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0K
IAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZURPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRh
YmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RET01KSVQuY3BwCShyZXZpc2lvbiAyNzY1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTA0
LDYgKzUwNCw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAog
dXNpbmcgSlNUZXN0RE9NSklURE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29u
c3RydWN0YWJsZTxKU1Rlc3RET01KSVQ+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBK
U1Rlc3RET01KSVRET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdERPTUpJVCIsICZCYXNl
OjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RE9N
SklURE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RET01KSVRE
T01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBK
U0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIHJldHVybiBKU05vZGU6Omdl
dENvbnN0cnVjdG9yKHZtLCAmZ2xvYmFsT2JqZWN0KTsKQEAgLTUxNiw4ICs1MTgsNiBAQCB0ZW1w
bGF0ZTw+IHZvaWQgSlNUZXN0RE9NSklURE9NQ29uc3RydWN0CiAgICAgcHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAot
dGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RE9NSklURE9NQ29uc3RydWN0b3I6OnNf
aW5mbyA9IHsgIlRlc3RET01KSVQiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdERPTUpJVERPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBI
YXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVl
IEpTVGVzdERPTUpJVFByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT04uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RE
ZWZhdWx0VG9KU09OLmNwcAkocmV2aXNpb24gMjc2NTk1KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT04uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNDIsNiArMTQyLDggQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFC
TEUoSlNUZQogCiB1c2luZyBKU1Rlc3REZWZhdWx0VG9KU09ORE9NQ29uc3RydWN0b3IgPSBKU0RP
TUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3REZWZhdWx0VG9KU09OPjsKIAordGVt
cGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RGVmYXVsdFRvSlNPTkRPTUNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJUZXN0RGVmYXVsdFRvSlNPTiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RGVmYXVsdFRvSlNPTkRPTUNvbnN0
cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0RGVmYXVsdFRvSlNPTkRPTUNv
bnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9N
R2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAg
LTE1NSw4ICsxNTcsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0RGVmYXVsdFRvSlNPTkRPTUNv
CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDAp
LCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RGVm
YXVsdFRvSlNPTkRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0RGVmYXVsdFRvSlNPTiIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNU
ZXN0RGVmYXVsdFRvSlNPTkRPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBw
cm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdERlZmF1bHRU
b0pTT05Qcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQuY3BwCShyZXZpc2lvbiAyNzY1
OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVm
YXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTMsNiAr
OTMsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5n
IEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZERPTUNvbnN0cnVjdG9yID0gSlNE
T01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVk
QnlFeHBvc2VkPjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RGVmYXVsdFRv
SlNPTkZpbHRlcmVkQnlFeHBvc2VkRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3REZWZh
dWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhw
b3NlZERPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0RGVmYXVs
dFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVj
dHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkK
IHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMTA2LDggKzEwOCw2IEBAIHRlbXBsYXRlPD4g
dm9pZCBKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGUKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0
ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRE
T01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhw
b3NlZCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRE9NQ29uc3RydWN0b3IpIH07
Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRh
YmxlVmFsdWUgSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkUHJvdG90eXBlVGFi
bGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0
VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZS5jcHAJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5k
aXJlY3RJbmhlcml0YW5jZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgwLDYgKzgwLDggQEAgU1RB
VElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3REZWZh
dWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZURPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1
Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFu
Y2U+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3REZWZhdWx0VG9KU09OSW5k
aXJlY3RJbmhlcml0YW5jZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0RGVmYXVsdFRv
SlNPTkluZGlyZWN0SW5oZXJpdGFuY2UiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRh
bmNlRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3REZWZhdWx0
VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1
Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qp
CiB7CiAgICAgcmV0dXJuIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0OjpnZXRDb25zdHJ1Y3Rv
cih2bSwgJmdsb2JhbE9iamVjdCk7CkBAIC05Miw4ICs5NCw2IEBAIHRlbXBsYXRlPD4gdm9pZCBK
U1Rlc3REZWZhdWx0VG9KU09OSW5kaXIKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNv
bnN0IENsYXNzSW5mbyBKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZURPTUNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFu
Y2UiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlRE9NQ29uc3RydWN0b3IpIH07
Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRh
YmxlVmFsdWUgSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VQcm90b3R5cGVU
YWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0LmNwcAkocmV2aXNpb24gMjc2NTk1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTA3LDYgKzEwNyw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxF
KEpTVGUKIAogdXNpbmcgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRET01Db25zdHJ1Y3RvciA9
IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0PjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RGVmYXVsdFRvSlNPTklu
aGVyaXRET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShK
U1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdERPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+
IEpTVmFsdWUgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRET01Db25zdHJ1Y3Rvcjo6cHJvdG90
eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xv
YmFsT2JqZWN0KQogewogICAgIHJldHVybiBKU1Rlc3REZWZhdWx0VG9KU09OOjpnZXRDb25zdHJ1
Y3Rvcih2bSwgJmdsb2JhbE9iamVjdCk7CkBAIC0xMTksOCArMTIxLDYgQEAgdGVtcGxhdGU8PiB2
b2lkIEpTVGVzdERlZmF1bHRUb0pTT05JbmhlcgogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRl
PD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RE9NQ29uc3RydWN0
b3I6OnNfaW5mbyA9IHsgIlRlc3REZWZhdWx0VG9KU09OSW5oZXJpdCIsICZCYXNlOjpzX2luZm8s
IG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXRET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBl
ICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3REZWZhdWx0VG9KU09OSW5o
ZXJpdFByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsLmNwcAkocmV2aXNpb24gMjc2NTk1KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05J
bmhlcml0RmluYWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNiArMTA5LDggQEAgU1RBVElD
X0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3REZWZhdWx0
VG9KU09OSW5oZXJpdEZpbmFsRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29u
c3RydWN0YWJsZTxKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsPjsKIAordGVtcGxhdGU8
PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbERPTUNvbnN0
cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbCIsICZCYXNl
OjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RGVm
YXVsdFRvSlNPTkluaGVyaXRGaW5hbERPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpT
VmFsdWUgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbERPTUNvbnN0cnVjdG9yOjpwcm90
b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBn
bG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Ojpn
ZXRDb25zdHJ1Y3Rvcih2bSwgJmdsb2JhbE9iamVjdCk7CkBAIC0xMjEsOCArMTIzLDYgQEAgdGVt
cGxhdGU8PiB2b2lkIEpTVGVzdERlZmF1bHRUb0pTT05JbmhlcgogICAgIHB1dERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAK
LXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Rmlu
YWxET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Rmlu
YWwiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxET01Db25zdHJ1Y3RvcikgfTsKLQogLyog
SGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1
ZSBKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVs
ZWdhdGVUb1NoYXJlZFN5bnRoZXRpY0F0dHJpYnV0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlbGVnYXRlVG9TaGFyZWRT
eW50aGV0aWNBdHRyaWJ1dGUuY3BwCShyZXZpc2lvbiAyNzY1OTUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVsZWdhdGVUb1NoYXJlZFN5bnRoZXRp
Y0F0dHJpYnV0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4LDYgKzg4LDggQEAgU1RBVElDX0FT
U0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3REZWxlZ2F0ZVRv
U2hhcmVkU3ludGhldGljQXR0cmlidXRlRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9y
Tm90Q29uc3RydWN0YWJsZTxKU1Rlc3REZWxlZ2F0ZVRvU2hhcmVkU3ludGhldGljQXR0cmlidXRl
PjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RGVsZWdhdGVUb1NoYXJlZFN5
bnRoZXRpY0F0dHJpYnV0ZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0RGVsZWdhdGVU
b1NoYXJlZFN5bnRoZXRpY0F0dHJpYnV0ZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RGVsZWdhdGVUb1NoYXJlZFN5bnRoZXRpY0F0
dHJpYnV0ZURPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0RGVs
ZWdhdGVUb1NoYXJlZFN5bnRoZXRpY0F0dHJpYnV0ZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVG
b3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxP
YmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTEwMSw4ICsxMDMsNiBAQCB0ZW1w
bGF0ZTw+IHZvaWQgSlNUZXN0RGVsZWdhdGVUb1NoYXJlZFN5CiAgICAgcHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAot
dGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RGVsZWdhdGVUb1NoYXJlZFN5bnRoZXRp
Y0F0dHJpYnV0ZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0RGVsZWdhdGVUb1NoYXJl
ZFN5bnRoZXRpY0F0dHJpYnV0ZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RGVsZWdhdGVUb1NoYXJlZFN5bnRoZXRpY0F0dHJpYnV0
ZURPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAog
c3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdERlbGVnYXRlVG9TaGFyZWRTeW50aGV0
aWNBdHRyaWJ1dGVQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REb21haW5TZWN1cml0eS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERv
bWFpblNlY3VyaXR5LmNwcAkocmV2aXNpb24gMjc2NTk1KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERvbWFpblNlY3VyaXR5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTEyLDYgKzExMiw4IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rl
c3REb21haW4KIH07CiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0RG9tYWluU2VjdXJp
dHlUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNUZXN0RG9tYWluU2VjdXJpdHk6OmluZm8oKSwgSlNU
ZXN0RG9tYWluU2VjdXJpdHlUYWJsZVZhbHVlcywgSlNUZXN0RG9tYWluU2VjdXJpdHlUYWJsZUlu
ZGV4IH07Cit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3REb21haW5TZWN1cml0eURP
TUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0RG9tYWluU2VjdXJpdHkiLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdERvbWFpblNl
Y3VyaXR5RE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3REb21h
aW5TZWN1cml0eURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYg
dm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VE
X1BBUkFNKHZtKTsKQEAgLTEyNSw4ICsxMjcsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0RG9t
YWluU2VjdXJpdHlET01DCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5n
dGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFz
c0luZm8gSlNUZXN0RG9tYWluU2VjdXJpdHlET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVz
dERvbWFpblNlY3VyaXR5IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU1Rlc3REb21haW5TZWN1cml0eURPTUNvbnN0cnVjdG9yKSB9OwotCiAv
KiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZh
bHVlIEpTVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0
dGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwCShyZXZpc2lvbiAyNzY1OTUpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0
dGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMyw2ICsxMzMsOCBAQCBzdGF0aWMgY29uc3Qg
SGFzaFRhYmxlVmFsdWUgSlNUZXN0RW5hYmxlCiAKIHN0YXRpY19hc3NlcnQoVGVzdEVuYWJsZWRC
eVNldHRpbmc6OmVuYWJsZWRCeVNldHRpbmdDb25zdGFudCA9PSAwLCAiZW5hYmxlZEJ5U2V0dGlu
Z0NvbnN0YW50IGluIFRlc3RFbmFibGVkQnlTZXR0aW5nIGRvZXMgbm90IG1hdGNoIHZhbHVlIGZy
b20gSURMIik7CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEVuYWJsZWRCeVNl
dHRpbmdET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdEVuYWJsZWRCeVNldHRpbmciLCAm
QmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVz
dEVuYWJsZWRCeVNldHRpbmdET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVl
IEpTVGVzdEVuYWJsZWRCeVNldHRpbmdET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0
dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQog
ewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0xNTMsOCArMTU1LDYgQEAgdGVtcGxhdGU8PiB2
b2lkIEpTVGVzdEVuYWJsZWRCeVNldHRpbmdETwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBjb25z
dCBDbGFzc0luZm8gSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0RPTUNvbnN0cnVjdG9yOjpzX2luZm8g
PSB7ICJUZXN0RW5hYmxlZEJ5U2V0dGluZyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0RPTUNvbnN0cnVj
dG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0
IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGVUYWJsZVZhbHVl
c1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFbmFibGVkRm9yQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRGb3JDb250ZXh0LmNwcAkocmV2aXNp
b24gMjc2NTk1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEVuYWJsZWRGb3JDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsNiArODQsOCBA
QCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVz
dEVuYWJsZWRGb3JDb250ZXh0RE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29u
c3RydWN0YWJsZTxKU1Rlc3RFbmFibGVkRm9yQ29udGV4dD47CiAKK3RlbXBsYXRlPD4gY29uc3Qg
Q2xhc3NJbmZvIEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIlRlc3RFbmFibGVkRm9yQ29udGV4dCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RW5hYmxlZEZvckNvbnRleHRET01Db25zdHJ1
Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0RE9N
Q29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNE
T01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpA
QCAtOTcsOCArOTksNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0RW5hYmxlZEZvckNvbnRleHRE
CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDAp
LCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RW5h
YmxlZEZvckNvbnRleHRET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdEVuYWJsZWRGb3JD
b250ZXh0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3RFbmFibGVkRm9yQ29udGV4dERPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNo
IHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpT
VGVzdEVuYWJsZWRGb3JDb250ZXh0UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAyNzY1OTUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5MCw2ICsxOTAsOCBAQCB0ZW1wbGF0ZTw+IEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfCiB9CiBKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihK
U1Rlc3RFdmVudENvbnN0cnVjdG9yRE9NQ29uc3RydWN0b3JDb25zdHJ1Y3QsIEpTVGVzdEV2ZW50
Q29uc3RydWN0b3JET01Db25zdHJ1Y3Rvcjo6Y29uc3RydWN0KTsKIAordGVtcGxhdGU8PiBjb25z
dCBDbGFzc0luZm8gSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yOjpzX2luZm8g
PSB7ICJUZXN0RXZlbnRDb25zdHJ1Y3RvciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckRPTUNvbnN0cnVj
dG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckRPTUNv
bnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9N
R2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTRXZlbnQ6OmdldENv
bnN0cnVjdG9yKHZtLCAmZ2xvYmFsT2JqZWN0KTsKQEAgLTIwMiw4ICsyMDQsNiBAQCB0ZW1wbGF0
ZTw+IHZvaWQgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckRPCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDEpLCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVt
cGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckRPTUNvbnN0cnVj
dG9yOjpzX2luZm8gPSB7ICJUZXN0RXZlbnRDb25zdHJ1Y3RvciIsICZCYXNlOjpzX2luZm8sIG51
bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ckRPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAog
c3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5
cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAkocmV2aXNp
b24gMjc2NTk1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV2ZW50VGFyZ2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTEsNiArOTEsOCBAQCBTVEFU
SUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdEV2ZW50
VGFyZ2V0RE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxK
U1Rlc3RFdmVudFRhcmdldD47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEV2
ZW50VGFyZ2V0RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RFdmVudFRhcmdldCIsICZC
YXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0
RXZlbnRUYXJnZXRET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVz
dEV2ZW50VGFyZ2V0RE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZN
JiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1
cm4gSlNFdmVudFRhcmdldDo6Z2V0Q29uc3RydWN0b3Iodm0sICZnbG9iYWxPYmplY3QpOwpAQCAt
MTAzLDggKzEwNSw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RFdmVudFRhcmdldERPTUNvbnMK
ICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCks
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RFdmVu
dFRhcmdldERPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0RXZlbnRUYXJnZXQiLCAmQmFz
ZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEV2
ZW50VGFyZ2V0RE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlw
ZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0RXZlbnRUYXJnZXRQcm90
b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCShyZXZpc2lv
biAyNzY1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXhjZXB0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsNiArODQsOCBAQCBTVEFUSUNf
QVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdEV4Y2VwdGlv
bkRPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0
RXhjZXB0aW9uPjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RXhjZXB0aW9u
RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RFeGNlcHRpb24iLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEV4Y2VwdGlvbkRP
TUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0RXhjZXB0aW9uRE9N
Q29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNE
T01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpA
QCAtOTcsOCArOTksNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0RXhjZXB0aW9uRE9NQ29uc3Ry
CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDAp
LCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RXhj
ZXB0aW9uRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RFeGNlcHRpb24iLCAmQmFzZTo6
c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEV4Y2Vw
dGlvbkRPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8K
IAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZVRh
YmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
LmNwcAkocmV2aXNpb24gMjc2NTk1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04NCw2ICs4NCw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUK
IAogdXNpbmcgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZURPTUNvbnN0cnVjdG9yID0gSlNET01D
b25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZT47CiAK
K3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVET01D
b25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUiLCAmQmFzZTo6
c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGVET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpT
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0
dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQog
ewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC05Nyw4ICs5OSw2IEBAIHRlbXBsYXRlPD4gdm9p
ZCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmwKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+
IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlRE9NQ29uc3RydWN0b3I6
OnNfaW5mbyA9IHsgIlRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlIiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwog
CiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVBy
b3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAJ
KHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MSw2ICs4MSw3
IEBACiAjaW5jbHVkZSAiSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElu
cy5oIgogI2luY2x1ZGUgIkpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllcy5oIgogI2luY2x1ZGUgIkpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuaCIKKyNpbmNsdWRlICJKU1Rl
c3ROYW1lc3BhY2VPYmplY3QuaCIKICNpbmNsdWRlICJKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzV2l0aFNlcXVlbmNlLmgiCiAjaW5jbHVkZSAiSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmgiCiAj
aW5jbHVkZSAiSlNUZXN0UmVhZE9ubHlNYXBMaWtlLmgiCkBAIC0yMTIsNiArMjEzLDcgQEAgc3Rh
dGljIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Rwogc3RhdGljIEpTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOwogc3RhdGljIEpTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3Rvcik7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9y
Z2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rvcik7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdElu
dGVyZmFjZU5hbWVDb25zdHJ1Y3Rvcik7CiAjaWYgRU5BQkxFKENvbmRpdGlvbkRlcml2ZWQpCiBz
dGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE9w
ZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IpOwogI2VuZGlmCkBAIC0yNTIsMTUgKzI1NCwx
NSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUCiAgICAgeyAtMSwg
LTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA1MywgLTEgfSwK
LSAgICB7IC0xLCAtMSB9LAorICAgIHsgNTQsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7
IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAorICAgIHsgNDgsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDYyLCAtMSB9LAor
ICAgIHsgNjMsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCkBAIC0yODAsNyArMjgyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0
SGFzaEluZGV4IEpTVAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0x
LCAtMSB9LAotICAgIHsgNjUsIC0xIH0sCisgICAgeyA2NiwgLTEgfSwKICAgICB7IDEzLCAyNjAg
fSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC0zMjQsNyArMzI2LDcgQEAg
c3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVAogICAgIHsgLTEsIC0xIH0s
CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IDI5LCAtMSB9LAotICAgIHsgNTUsIC0xIH0sCisgICAg
eyA1NiwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwg
LTEgfSwKQEAgLTMzMyw3ICszMzUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNo
SW5kZXggSlNUCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IDksIDI1NiB9LAogICAgIHsgLTEsIC0x
IH0sCi0gICAgeyA1NywgLTEgfSwKKyAgICB7IDU4LCAtMSB9LAogICAgIHsgMTgsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtMzc5LDcgKzM4MSw3IEBAIHN0YXRp
YyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1QKICAgICB7IC0xLCAtMSB9LAogICAg
IHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDUyLCAtMSB9LAorICAgIHsgNTMs
IC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0s
CkBAIC0zOTcsNyArMzk5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4
IEpTVAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAot
ICAgIHsgNjMsIC0xIH0sCisgICAgeyA2NCwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTQxNCw3ICs0MTYsNyBAQCBzdGF0aWMgY29u
c3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IDE1
LCAyNTkgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNTgsIC0xIH0sCisgICAgeyA1OSwgLTEg
fSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAg
LTQyNyw3ICs0MjksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNU
CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IDE2LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAg
eyA2MSwgLTEgfSwKKyAgICB7IDYyLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwg
LTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtNDU5LDcgKzQ2MSw3IEBAIHN0YXRpYyBjb25zdCBz
dHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1QKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0x
IH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDU2LCAtMSB9LAorICAgIHsgNTcsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKICAgICB7IDEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTQ2OCwx
MCArNDcwLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1QKICAg
ICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDQ4
LCAyNjMgfSwKKyAgICB7IDQ5LCAyNjMgfSwKICAgICB7IDcsIDI2MiB9LAogICAgIHsgLTEsIC0x
IH0sCi0gICAgeyA1OSwgLTEgfSwKKyAgICB7IDYwLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtNDg4LDEwICs0OTAsMTAgQEAgc3Rh
dGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVAogICAgIHsgLTEsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKICAgICB7IDMsIC0xIH0sCi0gICAgeyA1MCwgLTEgfSwKLSAgICB7IC0x
LCAtMSB9LAogICAgIHsgNTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKKyAgICB7IDUyLCAtMSB9
LAorICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAg
IHsgLTEsIC0xIH0sCkBAIC01MDIsMTAgKzUwNCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENv
bXBhY3RIYXNoSW5kZXggSlNUCiAgICAgeyAzOSwgLTEgfSwKICAgICB7IDQxLCAtMSB9LAogICAg
IHsgNDMsIC0xIH0sCi0gICAgeyA0OSwgLTEgfSwKLSAgICB7IDU0LCAtMSB9LAotICAgIHsgNjAs
IC0xIH0sCi0gICAgeyA2NCwgLTEgfSwKKyAgICB7IDUwLCAtMSB9LAorICAgIHsgNTUsIC0xIH0s
CisgICAgeyA2MSwgLTEgfSwKKyAgICB7IDY1LCAtMSB9LAogfTsKIAogCkBAIC01NjcsNiArNTY5
LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEdsb2JhbAogICAgIHsgIlRl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RH
bG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25z
dHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KDApIH0gfSwKICAgICB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogICAgIHsg
IlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0
dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnNDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJUZXN0SW50ZXJmYWNlTmFtZSIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJbnRlcmZhY2VOYW1lQ29uc3RydWN0b3IpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAj
aWYgRU5BQkxFKENvbmRpdGlvbkRlcml2ZWQpCiAgICAgeyAiVGVzdE9wZXJhdGlvbkNvbmRpdGlv
bmFsIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFs
Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPigwKSB9IH0sCiAjZWxzZQpAQCAtNTk1LDcgKzU5OCw3IEBAIHN0YXRpYyBjb25z
dCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RHbG9iYWwKICAgICB7ICJyZWd1bGFyT3BlcmF0aW9uIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX3JlZ3VsYXJPcGVyYXRpb24pLCAoaW50
cHRyX3QpICgxKSB9IH0sCiB9OwogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdEdsb2Jh
bE9iamVjdFRhYmxlID0geyA2NiwgMjU1LCB0cnVlLCBKU1Rlc3RHbG9iYWxPYmplY3Q6OmluZm8o
KSwgSlNUZXN0R2xvYmFsT2JqZWN0VGFibGVWYWx1ZXMsIEpTVGVzdEdsb2JhbE9iamVjdFRhYmxl
SW5kZXggfTsKK3N0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0R2xvYmFsT2JqZWN0VGFibGUg
PSB7IDY3LCAyNTUsIHRydWUsIEpTVGVzdEdsb2JhbE9iamVjdDo6aW5mbygpLCBKU1Rlc3RHbG9i
YWxPYmplY3RUYWJsZVZhbHVlcywgSlNUZXN0R2xvYmFsT2JqZWN0VGFibGVJbmRleCB9OwogLyog
SGFzaCB0YWJsZSBmb3IgY29uc3RydWN0b3IgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZh
bHVlIEpTVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yVGFibGVWYWx1ZXNbXSA9CkBAIC02MDcs
NiArNjEwLDggQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEdsb2JhbAogI2Vu
ZGlmCiB9OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RHbG9iYWxPYmplY3RE
T01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdEdsb2JhbE9iamVjdCIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0R2xvYmFsT2Jq
ZWN0RE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RHbG9iYWxP
YmplY3RET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBj
b25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJB
TSh2bSk7CkBAIC02MjEsOCArNjI2LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdEdsb2JhbE9i
amVjdERPTUNvbgogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0R2xvYmFsT2Jq
ZWN0OjppbmZvKCksIEpTVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yVGFibGVWYWx1ZXMsICp0
aGlzKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0R2xvYmFsT2JqZWN0
RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RHbG9iYWxPYmplY3QiLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEdsb2JhbE9i
amVjdERPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8K
IAogc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVGVzdEdsb2JhbE9iamVj
dFByb3RvdHlwZVRhYmxlSW5kZXhbMl0gPSB7CkBAIC0xMzY0LDYgKzEzNjcsMTcgQEAgSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iagogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWls
dEluc0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBh
dHRyaWJ1dGVOYW1lKTsKIH0KIAorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9i
amVjdF9UZXN0SW50ZXJmYWNlTmFtZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCit7Cisg
ICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgIHJldHVybiBKU1Rlc3RO
YW1lc3BhY2VPYmplY3Q6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCAmdGhpc09iamVjdCk7Cit9CisKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RfVGVzdEludGVyZmFjZU5hbWVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSBhdHRyaWJ1dGVOYW1lKSkKK3sKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdEludGVyZmFjZU5hbWVD
b25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgYXR0cmli
dXRlTmFtZSk7Cit9CisKICNpZiBFTkFCTEUoQ29uZGl0aW9uRGVyaXZlZCkKIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29u
c3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVz
dEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMsNiArODMsOCBAQCBTVEFUSUNf
QVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25z
dHJ1Y3RhYmxlPEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI+OwogCit0ZW1wbGF0ZTw+
IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyRE9NQ29uc3Ry
dWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyIiwgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNW
YWx1ZSBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyRE9NQ29uc3RydWN0b3I6OnByb3Rv
dHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGds
b2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtOTYsOCArOTgsNiBAQCB0
ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlCiAgICAgcHV0RGlyZWN0KHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0K
IAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRp
ZmllckRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRp
ZmllciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yKSB9OwotCiAv
KiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZh
bHVlIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGVUYWJsZVZhbHVlc1td
ID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb24uY3BwCShyZXZpc2lvbiAyNzY1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMsNiArODMsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19T
VUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFi
bGU8SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uPjsKIAordGVtcGxhdGU8PiBj
b25zdCBDbGFzc0luZm8gSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24i
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpT
VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yKSB9OworCiB0
ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uRE9N
Q29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNE
T01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpA
QCAtOTYsOCArOTgsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0SW5kZXhlZFNldHRlclRocm93
CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDAp
LCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0SW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRl
c3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRy
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5
cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvblByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHJldmlzaW9u
IDI3NjU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MSw2
ICs5MSw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAogdXNp
bmcgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3RydWN0b3IgPSBKU0RP
TUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXI+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RJbmRleGVkU2V0dGVy
V2l0aElkZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3Ry
dWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZt
LCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9Q
QVJBTSh2bSk7CkBAIC0xMDQsOCArMTA2LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdEluZGV4
ZWRTZXR0ZXJXaXRoSQogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3Ro
LCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjpzX2lu
Zm8gPSB7ICJUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIiwgJkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RJbmRleGVkU2V0dGVy
V2l0aElkZW50aWZpZXJET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJv
dG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bnRlcmZhY2UuY3BwCShyZXZpc2lvbiAyNzY1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
Mjg4LDYgKzI4OCw4IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF8K
IH0KIEpTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKEpTVGVzdEludGVyZmFjZURPTUNvbnN0cnVj
dG9yQ29uc3RydWN0LCBKU1Rlc3RJbnRlcmZhY2VET01Db25zdHJ1Y3Rvcjo6Y29uc3RydWN0KTsK
IAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0SW50ZXJmYWNlRE9NQ29uc3RydWN0
b3I6OnNfaW5mbyA9IHsgIlRlc3RJbnRlcmZhY2UiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBu
dWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEludGVyZmFjZURPTUNvbnN0cnVjdG9y
KSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0SW50ZXJmYWNlRE9NQ29uc3RydWN0b3I6
OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmpl
Y3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMzAyLDggKzMw
NCw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RJbnRlcmZhY2VET01Db25zdHIKICAgICByZWlm
eVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdEludGVyZmFjZTo6aW5mbygpLCBKU1Rlc3RJbnRl
cmZhY2VDb25zdHJ1Y3RvclRhYmxlVmFsdWVzLCAqdGhpcyk7CiB9CiAKLXRlbXBsYXRlPD4gY29u
c3QgQ2xhc3NJbmZvIEpTVGVzdEludGVyZmFjZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJU
ZXN0SW50ZXJmYWNlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3RJbnRlcmZhY2VET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0
YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29y
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNwcAkocmV2aXNpb24gMjc2NTk1
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVy
ZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsNiArODQsOCBA
QCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVz
dEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVj
dG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZT47CiAK
K3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNj
b3JlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVET01Db25zdHJ1Y3RvcikgfTsKKwog
dGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlRE9NQ29u
c3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01H
bG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAt
OTcsOCArOTksNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuCiAg
ICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0SW50ZXJm
YWNlTGVhZGluZ1VuZGVyc2NvcmVET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdEludGVy
ZmFjZUxlYWRpbmdVbmRlcnNjb3JlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZURPTUNv
bnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUHJv
dG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHAJKHJldmlzaW9u
IDI3NjU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJdGVyYWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkzLDYgKzkzLDggQEAgU1RBVElDX0FT
U0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3RJdGVyYWJsZURP
TUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0SXRl
cmFibGU+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RJdGVyYWJsZURPTUNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0SXRlcmFibGUiLCAmQmFzZTo6c19pbmZvLCBudWxs
cHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEl0ZXJhYmxlRE9NQ29uc3Ry
dWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RJdGVyYWJsZURPTUNvbnN0cnVj
dG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTEwNiw4
ICsxMDgsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0SXRlcmFibGVET01Db25zdHJ1CiAgICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0SXRlcmFibGVE
T01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdEl0ZXJhYmxlIiwgJkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RJdGVyYWJsZURPTUNv
bnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEl0ZXJhYmxlUHJvdG90eXBlVGFibGVWYWx1ZXNb
XSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAJKHJl
dmlzaW9uIDI3NjU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg3LDYg
Kzg3LDggQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogCiB1c2lu
ZyBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yID0gSlNET01CdWlsdGlu
Q29uc3RydWN0b3I8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I+OwogCit0ZW1wbGF0ZTw+IGNv
bnN0IENsYXNzSW5mbyBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IiLCAmQmFzZTo6c19pbmZvLCBudWxs
cHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RKU0J1aWx0
aW5Db25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpW
TSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5V
U0VEX1BBUkFNKHZtKTsKQEAgLTEwNSw4ICsxMDcsNiBAQCB0ZW1wbGF0ZTw+IEZ1bmN0aW9uRXhl
Y3V0YWJsZSogSlNUZXN0SlNCCiAgICAgcmV0dXJuIHRlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcklu
aXRpYWxpemVUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb2RlR2VuZXJhdG9yKHZtKTsKIH0KIAot
dGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JET01D
b25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yIiwgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RKU0J1
aWx0aW5Db25zdHJ1Y3RvckRPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBw
cm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEpTQnVpbHRp
bkNvbnN0cnVjdG9yUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uLmNwcAkocmV2aXNpb24gMjc2NTk1KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeUZhY3RvcnlG
dW5jdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg2LDYgKzg2LDggQEAgU1RBVElDX0FTU0VS
VF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogdXNpbmcgSlNUZXN0TGVnYWN5RmFjdG9yeUZ1
bmN0aW9uRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxK
U1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24+OwogdXNpbmcgSlNUZXN0TGVnYWN5RmFjdG9yeUZ1
bmN0aW9uTGVnYWN5RmFjdG9yeUZ1bmN0aW9uID0gSlNET01MZWdhY3lGYWN0b3J5RnVuY3Rpb248
SlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uPjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0lu
Zm8gSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsg
IlRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkRPTUNv
bnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0TGVnYWN5RmFjdG9yeUZ1
bmN0aW9uRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwg
Y29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFS
QU0odm0pOwpAQCAtOTksOCArMTAxLDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdExlZ2FjeUZh
Y3RvcnlGdW5jdAogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBq
c051bWJlcigxKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJU
ZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25ET01Db25z
dHJ1Y3RvcikgfTsKLQogdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FU
VFJJQlVURVMgSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uTGVnYWN5RmFjdG9yeUZ1bmN0aW9u
Ojpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQogewogICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7
CkBAIC0xMzQsNiArMTM0LDggQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMXwogfQogSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oSlNUZXN0TGVnYWN5RmFjdG9yeUZ1
bmN0aW9uTGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0LCBKU1Rlc3RMZWdhY3lGYWN0b3J5
RnVuY3Rpb25MZWdhY3lGYWN0b3J5RnVuY3Rpb246OmNvbnN0cnVjdCk7CiAKK3RlbXBsYXRlPD4g
Y29uc3QgQ2xhc3NJbmZvIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkxlZ2FjeUZhY3RvcnlG
dW5jdGlvbjo6c19pbmZvID0geyAiQXVkaW8iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkxlZ2Fj
eUZhY3RvcnlGdW5jdGlvbikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdExlZ2FjeUZh
Y3RvcnlGdW5jdGlvbkxlZ2FjeUZhY3RvcnlGdW5jdGlvbjo6cHJvdG90eXBlRm9yU3RydWN0dXJl
KEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewog
ICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0xNDcsOCArMTQ5LDYgQEAgdGVtcGxhdGU8PiB2b2lk
IEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdAogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+bGVuZ3RoLCBqc051bWJlcigxKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4g
Y29uc3QgQ2xhc3NJbmZvIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkxlZ2FjeUZhY3RvcnlG
dW5jdGlvbjo6c19pbmZvID0geyAiQXVkaW8iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkxlZ2Fj
eUZhY3RvcnlGdW5jdGlvbikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAK
IHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Q
cm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5
T3ZlcnJpZGVCdWlsdElucy5jcHAJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtOTEsNiArOTEsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJT
UEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNE
T01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdExl
Z2FjeU92ZXJyaWRlQnVpbHRJbnM+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rl
c3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zRE9NQ29uc3Ry
dWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0
SW5zRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29u
c3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0o
dm0pOwpAQCAtMTA0LDggKzEwNiw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RMZWdhY3lPdmVy
cmlkZUJ1aWwKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNO
dW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBK
U1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRl
c3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zRE9NQ29u
c3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMg
Y29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlw
ZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE1hcExpa2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlLmNwcAkocmV2aXNpb24gMjc2NTk1
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1hcExp
a2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNiArMTAwLDggQEAgU1RBVElDX0FTU0VSVF9J
U09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3RNYXBMaWtlRE9NQ29uc3Ry
dWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RNYXBMaWtlPjsK
IAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TWFwTGlrZURPTUNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJUZXN0TWFwTGlrZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TWFwTGlrZURPTUNvbnN0cnVjdG9yKSB9Owor
CiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0TWFwTGlrZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5
cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTExMyw4ICsxMTUsNiBAQCB0
ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0TWFwTGlrZURPTUNvbnN0cnVjCiAgICAgcHV0RGlyZWN0KHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0K
IAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TWFwTGlrZURPTUNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJUZXN0TWFwTGlrZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TWFwTGlrZURPTUNvbnN0cnVjdG9yKSB9Owot
CiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJs
ZVZhbHVlIEpTVGVzdE1hcExpa2VQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5j
cHAJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTA0LDYgKzEwNCw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NI
QVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c0RPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0
TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xh
c3NJbmZvIEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNET01Db25zdHJ1Y3Rv
cjo6c19pbmZvID0geyAiVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMiLCAmQmFz
ZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE1h
cExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxh
dGU8PiBKU1ZhbHVlIEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNET01Db25z
dHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUds
b2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0x
MTcsOCArMTE5LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZAog
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE1hcExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVz
dE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMiLCAmQmFzZTo6c19pbmZvLCBudWxscHRy
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnNET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90
eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyTm9JZGVudGlmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
LmNwcAkocmV2aXNpb24gMjc2NTk1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTg0LDYgKzg0LDggQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0Vf
U0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXJET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllcj47CiAKK3RlbXBsYXRlPD4gY29u
c3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckRPTUNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlm
aWVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3Rvcikg
fTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRl
bnRpZmllckRPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0s
IGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKHZtKTsKQEAgLTk3LDggKzk5LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldAogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBq
c051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyIiwgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFz
aCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGVUYWJsZVZhbHVl
c1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAkocmV2aXNpb24gMjc2NTk1KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsNiAr
ODQsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5n
IEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0
b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbj47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0
b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
biIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25ET01Db25zdHJ1Y3Rv
cikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6
OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBV
TlVTRURfUEFSQU0odm0pOwpAQCAtOTcsOCArOTksNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5s
ZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBD
bGFzc0luZm8gSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25ET01D
b25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5n
RXhjZXB0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkRPTUNv
bnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5n
RXhjZXB0aW9uUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJ
KHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTkzLDYgKzkzLDggQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hB
UkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
ZmllckRPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI+OwogCit0ZW1wbGF0ZTw+IGNv
bnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckRP
TUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3Ry
dWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlND
OjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKHZtKTsKQEAgLTEwNiw4ICsxMDgsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25z
dCBDbGFzc0luZm8gSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJET01D
b25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVj
dG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0
IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWREZWxldGVyTm9JZGVudGlmaWVyLmNwcAkocmV2aXNpb24gMjc2NTk1KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRp
Zmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzLDYgKzgzLDggQEAgU1RBVElDX0FTU0VSVF9J
U09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lk
ZW50aWZpZXJET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxl
PEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcj47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xh
c3NJbmZvIEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjpzX2lu
Zm8gPSB7ICJUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyIiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZERlbGV0ZXJOb0lk
ZW50aWZpZXJET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE5h
bWVkRGVsZXRlck5vSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1
cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7
CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTk2LDggKzk4LDYgQEAgdGVtcGxhdGU8PiB2b2lk
IEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbgogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4g
Y29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckRPTUNvbnN0cnVj
dG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyIiwgJkJhc2U6OnNf
aW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZERl
bGV0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3Ig
cHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3ROYW1lZERl
bGV0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcAkocmV2
aXNpb24gMjc2NTk1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODMsNiArODMsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rl
CiAKIHVzaW5nIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0
b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3ROYW1lZERlbGV0ZXJU
aHJvd2luZ0V4Y2VwdGlvbj47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5h
bWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRl
c3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdF
eGNlcHRpb25ET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE5h
bWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0
cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVj
dCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtOTYsOCArOTgsNiBAQCB0ZW1wbGF0ZTw+
IHZvaWQgSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxh
dGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25E
T01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0
aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yKSB9Owot
CiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJs
ZVZhbHVlIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlVGFibGVW
YWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SWRlbnRpZmllci5jcHAJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTkwLDYgKzkwLDggQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BB
Q0VfU0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmll
ckRPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0
TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXI+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5m
byBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjpzX2luZm8g
PSB7ICJUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIiLCAmQmFzZTo6c19pbmZvLCBudWxs
cHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJ
ZGVudGlmaWVyRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RO
YW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1
Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qp
CiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTEwMyw4ICsxMDUsNiBAQCB0ZW1wbGF0ZTw+
IHZvaWQgSlNUZXN0TmFtZWREZWxldGVyV2l0aElkCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxh
dGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJET01D
b25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyIiwg
JkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNo
IHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpT
VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRE
ZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdl
dHRlci5jcHAJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTg0LDYgKzg0LDggQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0Vf
U0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRl
ckRPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0
TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXI+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNz
SW5mbyBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckRPTUNvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIiLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkRGVs
ZXRlcldpdGhJbmRleGVkR2V0dGVyRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNW
YWx1ZSBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckRPTUNvbnN0cnVjdG9yOjpw
cm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0
JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTk3LDggKzk5LDYg
QEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbgogICAgIHB1dERpcmVj
dCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7
CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJ
bmRleGVkR2V0dGVyRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZERlbGV0ZXJX
aXRoSW5kZXhlZEdldHRlciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJET01Db25z
dHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlclBy
b3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRl
ckNhbGxXaXRoLmNwcAkocmV2aXNpb24gMjc2NTk1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04Myw2ICs4Myw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJB
QkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aERPTUNvbnN0cnVjdG9y
ID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0TmFtZWRHZXR0ZXJDYWxs
V2l0aD47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkR2V0dGVyQ2Fs
bFdpdGhET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgi
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpT
VGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBK
U1ZhbHVlIEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBl
Rm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFs
T2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC05Niw4ICs5OCw2IEBAIHRlbXBs
YXRlPD4gdm9pZCBKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXQKICAgICBwdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10
ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoRE9NQ29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZEdldHRlckNhbGxXaXRoIiwgJkJhc2U6OnNf
aW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZEdl
dHRlckNhbGxXaXRoRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3Rv
dHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFtZWRHZXR0ZXJD
YWxsV2l0aFByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIuY3BwCShyZXZpc2lvbiAyNzY1OTUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lk
ZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Myw2ICs4Myw4IEBAIFNUQVRJQ19BU1NF
UlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0TmFtZWRHZXR0ZXJO
b0lkZW50aWZpZXJET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3Rh
YmxlPEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyPjsKIAordGVtcGxhdGU8PiBjb25zdCBD
bGFzc0luZm8gSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyIiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZEdldHRlck5vSWRl
bnRpZmllckRPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0TmFt
ZWRHZXR0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJl
KEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewog
ICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC05Niw4ICs5OCw2IEBAIHRlbXBsYXRlPD4gdm9pZCBK
U1Rlc3ROYW1lZEdldHRlck5vSWRlbnQKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNv
bnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckRPTUNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIiLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkR2V0dGVy
Tm9JZGVudGlmaWVyRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3Rv
dHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFtZWRHZXR0ZXJO
b0lkZW50aWZpZXJQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHJldmlzaW9uIDI3NjU5NSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdl
dHRlcldpdGhJZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODgsNiArODgsOCBAQCBT
VEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdE5h
bWVkR2V0dGVyV2l0aElkZW50aWZpZXJET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JO
b3RDb25zdHJ1Y3RhYmxlPEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXI+OwogCit0ZW1w
bGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyRE9N
Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyIiwg
JkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rl
c3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRl
PD4gSlNWYWx1ZSBKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3RydWN0b3I6
OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmpl
Y3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMTAxLDggKzEw
Myw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGUKICAgICBwdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZEdldHRlcldp
dGhJZGVudGlmaWVyRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZEdldHRlcldp
dGhJZGVudGlmaWVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3RydWN0b3Ip
IH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFz
aFRhYmxlVmFsdWUgSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZVRhYmxl
VmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50
aWZpZXIuY3BwCShyZXZpc2lvbiAyNzY1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04Myw2ICs4Myw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJB
QkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1
Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdE5hbWVkU2V0dGVy
Tm9JZGVudGlmaWVyPjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRT
ZXR0ZXJOb0lkZW50aWZpZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5hbWVkU2V0
dGVyTm9JZGVudGlmaWVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckRPTUNvbnN0cnVjdG9y
KSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJE
T01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBK
U0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7
CkBAIC05Niw4ICs5OCw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3ROYW1lZFNldHRlck5vSWRl
bnQKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIo
MCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RO
YW1lZFNldHRlck5vSWRlbnRpZmllckRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFt
ZWRTZXR0ZXJOb0lkZW50aWZpZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyRE9NQ29uc3Ry
dWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29u
c3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGVU
YWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMsNiArODMsOCBAQCBTVEFUSUNfQVNTRVJU
X0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdE5hbWVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb25ET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1
Y3RhYmxlPEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24+OwogCit0ZW1wbGF0ZTw+
IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uIiwg
JkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rl
c3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBs
YXRlPD4gSlNWYWx1ZSBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uRE9NQ29uc3Ry
dWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtOTYs
OCArOTgsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luCiAgICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbkRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkRP
TUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b25Qcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJ
ZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTAsNiArOTAsOCBAQCBTVEFUSUNfQVNT
RVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdE5hbWVkU2V0dGVy
V2l0aElkZW50aWZpZXJET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1
Y3RhYmxlPEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI+OwogCit0ZW1wbGF0ZTw+IGNv
bnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3RydWN0
b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyIiwgJkJhc2U6OnNf
aW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZFNl
dHRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1
ZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3RydWN0b3I6OnByb3RvdHlw
ZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2Jh
bE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMTAzLDggKzEwNSw2IEBAIHRl
bXBsYXRlPD4gdm9pZCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGUKICAgICBwdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQog
Ci10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlm
aWVyRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlm
aWVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8q
IEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFs
dWUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZVRhYmxlVmFsdWVzW10g
PQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyLmNwcAkocmV2aXNpb24gMjc2NTk1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC05Myw2ICs5Myw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNF
X1NIQVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ckRPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcj47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJET01Db25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIiLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXJET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVl
IEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJET01Db25zdHJ1Y3Rvcjo6cHJvdG90
eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xv
YmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0xMDYsOCArMTA4LDYgQEAg
dGVtcGxhdGU8PiB2b2lkIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZAogICAgIHB1dERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9
CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJET01Db25zdHJ1Y3Rv
cikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBI
YXNoVGFibGVWYWx1ZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBl
VGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwCShyZXZpc2lvbiAyNzY1
OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTkzLDYgKzkzLDggQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQog
CiB1c2luZyBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyRE9NQ29u
c3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyPjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFz
c0luZm8gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckRPTUNvbnN0
cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNl
dHRlciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckRPTUNvbnN0cnVj
dG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhl
ZEdldHRlckFuZFNldHRlckRPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlND
OjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKHZtKTsKQEAgLTEwNiw4ICsxMDgsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25z
dCBDbGFzc0luZm8gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckRP
TUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ckFuZFNldHRlciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRI
T0RfVEFCTEUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckRPTUNv
bnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJB
bmRTZXR0ZXJQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5j
cHAJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtODMsNiArODMsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFD
RV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3Rh
YmxlPEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM+OwogCit0ZW1w
bGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zRE9NQ29uc3RydWN0b3I6OnByb3RvdHlw
ZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2Jh
bE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtOTYsOCArOTgsNiBAQCB0ZW1w
bGF0ZTw+IHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnCiAgICAgcHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAot
dGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3Zl
cnJpZGVCdWlsdEluc0RPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJp
ZGVCdWlsdEluc0RPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5
cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXMuY3BwCShyZXZpc2lvbiAyNzY1OTUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEw
OSw4IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3ROYW1lZFMKIH07CiAKIHN0
YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzVGFibGUgPSB7IDIsIDMsIHRydWUsIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExl
Z2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllczo6aW5mbygpLCBKU1Rlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNUYWJsZVZhbHVlcywgSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzVGFibGVJbmRleCB9OwordGVtcGxhdGU8PiBj
b25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXMiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcGVydGllc0RPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzRE9NQ29uc3RydWN0
b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxP
YmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMTIyLDgg
KzEyNCw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWcKICAgICBw
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZFNldHRl
cldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0g
eyAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcyIsICZCYXNl
OjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzRE9NQ29uc3RydWN0b3IpIH07
Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRh
YmxlVmFsdWUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVz
UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExl
Z2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCShy
ZXZpc2lvbiAyNzY1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVn
YWN5T3ZlcnJpZGVCdWlsdElucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw2ICsxMDksOCBA
QCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFtZWRTCiB9OwogCiBzdGF0aWMg
Y29uc3QgSGFzaFRhYmxlIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNUYWJsZSA9IHsgMiwgMywgdHJ1ZSwgSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3Zl
cnJpZGVCdWlsdEluczo6aW5mbygpLCBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zVGFibGVWYWx1ZXMsIEpTVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNUYWJsZUluZGV4IH07Cit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVy
cmlkZUJ1aWx0SW5zRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIiwg
JkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVy
cmlkZUJ1aWx0SW5zRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVy
cmlkZUJ1aWx0SW5zRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZN
JiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVT
RURfUEFSQU0odm0pOwpAQCAtMTIyLDggKzEyNCw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RO
YW1lZFNldHRlcldpdGhMZWcKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxl
bmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENs
YXNzSW5mbyBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNB
bmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNB
bmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFi
bGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJp
ZGVCdWlsdEluc1Byb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVzcGFjZU9iamVjdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVzcGFjZU9iamVjdC5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVzcGFjZU9iamVjdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwzMDggQEAKKy8qCisgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdl
YktpdCBvcGVuIHNvdXJjZSBwcm9qZWN0LgorICAgIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0
ZWQgYnkgZ2VuZXJhdGUtYmluZGluZ3MucGwuIERPIE5PVCBNT0RJRlkhCisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTVGVzdE5hbWVzcGFjZU9iamVjdC5oIgorCisjaW5jbHVk
ZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiRE9NSXNvU3Vic3BhY2VzLmgiCisjaW5j
bHVkZSAiSlNET01BdHRyaWJ1dGUuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNs
dWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q2FsbGFibGUuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZl
cnRBbnkuaCIKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRCb29sZWFuLmgiCisjaW5jbHVkZSAiSlNE
T01Db252ZXJ0SW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVsbGFibGUuaCIK
KyNpbmNsdWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0
U3RyaW5ncy5oIgorI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKKyNpbmNsdWRl
ICJKU0RPTU9wZXJhdGlvbi5oIgorI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCisjaW5j
bHVkZSAiSlNUZXN0T2JqLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgor
I2luY2x1ZGUgIlRlc3ROYW1lc3BhY2VPYmplY3QuaCIKKyNpbmNsdWRlICJXZWJDb3JlSlNDbGll
bnREYXRhLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmg+Cisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvT2JqZWN0UHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvU2xvdFZpc2l0b3JNYWNyb3MuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9TdWJzcGFjZUlubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CisjaW5jbHVkZSA8
d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KKworI2lmIEVOQUJMRShDb25kaXRpb24xKQorI2lu
Y2x1ZGUgIklETFR5cGVzLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0QmFzZS5oIgorI2luY2x1
ZGUgIlRlc3ROYW1lc3BhY2VPYmplY3RJbXBsLmgiCisjZW5kaWYKKworCituYW1lc3BhY2UgV2Vi
Q29yZSB7Cit1c2luZyBuYW1lc3BhY2UgSlNDOworCisvLyBGdW5jdGlvbnMKKworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZXNwYWNlT2JqZWN0Q29uc3RydWN0b3JG
dW5jdGlvbl9vdmVybG9hZGVkTmFtZXNwYWNlT3BlcmF0aW9uKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25f
ZW5hYmxlZEJ5U2V0dGluZ05hbWVzcGFjZU9wZXJhdGlvbik7CisjaWYgRU5BQkxFKENvbmRpdGlv
bjEpCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lc3BhY2VPYmpl
Y3RDb25zdHJ1Y3RvckZ1bmN0aW9uX25hbWVzcGFjZU9wZXJhdGlvbkZyb21QYXJ0aWFsKTsKKyNl
bmRpZgorCisvLyBBdHRyaWJ1dGVzCisKK3N0YXRpYyBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yX25hbWVzcGFjZUF0dHJpYnV0ZSk7Cisj
aWYgRU5BQkxFKENvbmRpdGlvbjEpCitzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3ROYW1lc3BhY2VPYmplY3RDb25zdHJ1Y3Rvcl9uYW1lc3BhY2VBdHRyaWJ1dGVGcm9tUGFy
dGlhbCk7CisjZW5kaWYKKwordXNpbmcgSlNUZXN0TmFtZXNwYWNlT2JqZWN0RE9NQ29uc3RydWN0
b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q2FsbGFibGU8SlNUZXN0TmFtZXNwYWNlT2JqZWN0PjsK
KworLyogSGFzaCB0YWJsZSBmb3IgY29uc3RydWN0b3IgKi8KKworc3RhdGljIGNvbnN0IEhhc2hU
YWJsZVZhbHVlIEpTVGVzdE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yVGFibGVWYWx1ZXNbXSA9
Cit7CisgICAgeyAibmFtZXNwYWNlQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3ROYW1lc3BhY2VP
YmplY3RDb25zdHJ1Y3Rvcl9uYW1lc3BhY2VBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisjaWYgRU5BQkxFKENv
bmRpdGlvbjEpCisgICAgeyAibmFtZXNwYWNlQXR0cmlidXRlRnJvbVBhcnRpYWwiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yX25hbWVzcGFjZUF0dHJpYnV0ZUZyb21Q
YXJ0aWFsKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oMCkgfSB9LAorI2Vsc2UKKyAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9
LAorI2VuZGlmCisgICAgeyAib3ZlcmxvYWRlZE5hbWVzcGFjZU9wZXJhdGlvbiIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TmFt
ZXNwYWNlT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbl9vdmVybG9hZGVkTmFtZXNwYWNlT3BlcmF0
aW9uKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgImVuYWJsZWRCeVNldHRpbmdOYW1lc3Bh
Y2VPcGVyYXRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25fZW5h
YmxlZEJ5U2V0dGluZ05hbWVzcGFjZU9wZXJhdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKKyNp
ZiBFTkFCTEUoQ29uZGl0aW9uMSkKKyAgICB7ICJuYW1lc3BhY2VPcGVyYXRpb25Gcm9tUGFydGlh
bCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlv
biksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlv
bj4oanNUZXN0TmFtZXNwYWNlT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbl9uYW1lc3BhY2VPcGVy
YXRpb25Gcm9tUGFydGlhbCksIChpbnRwdHJfdCkgKDApIH0gfSwKKyNlbHNlCisgICAgeyAwLCAw
LCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKKyNlbmRpZgorfTsKKwordGVtcGxhdGU8PiBjb25z
dCBDbGFzc0luZm8gSlNUZXN0TmFtZXNwYWNlT2JqZWN0RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIlRlc3RJbnRlcmZhY2VOYW1lIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1lc3BhY2VPYmplY3RET01Db25zdHJ1Y3Rvcikg
fTsKKwordGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE5hbWVzcGFjZU9iamVjdERPTUNvbnN0cnVj
dG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QpCit7CisgICAgVU5VU0VEX1BBUkFNKHZtKTsKKyAgICByZXR1
cm4gZ2xvYmFsT2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpOworfQorCit0ZW1wbGF0ZTw+IHZvaWQg
SlNUZXN0TmFtZXNwYWNlT2JqZWN0RE9NQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVz
KFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKK3sKKyAgICBKU0NfVE9f
U1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJT04oKTsKKyAgICByZWlmeVN0YXRpY1Byb3BlcnRp
ZXModm0sIEpTVGVzdE5hbWVzcGFjZU9iamVjdDo6aW5mbygpLCBKU1Rlc3ROYW1lc3BhY2VPYmpl
Y3RDb25zdHJ1Y3RvclRhYmxlVmFsdWVzLCAqdGhpcyk7CisjaWYgRU5BQkxFKENvbmRpdGlvbjEp
CisgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigmZ2xvYmFsT2JqZWN0KS0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5nc1ZhbHVlcygpLnRlc3RTZXR0aW5nMUVuYWJs
ZWQpIHsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIm5hbWVzcGFjZUF0dHJpYnV0ZUZy
b21QYXJ0aWFsIiksIHN0cmxlbigibmFtZXNwYWNlQXR0cmlidXRlRnJvbVBhcnRpYWwiKSk7Cisg
ICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVBy
b3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKKyAgICAgICAgRGVsZXRlUHJvcGVydHlT
bG90IHNsb3Q7CisgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCAmZ2xvYmFs
T2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIH0KKyNlbmRpZgorICAgIGlmICghanND
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oJmdsb2JhbE9iamVjdCktPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0dGluZzJFbmFibGVkKSB7CisgICAgICAg
IGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFibGVkQnlTZXR0aW5nTmFtZXNwYWNlT3BlcmF0aW9u
IiksIHN0cmxlbigiZW5hYmxlZEJ5U2V0dGluZ05hbWVzcGFjZU9wZXJhdGlvbiIpKTsKKyAgICAg
ICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVy
dHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Qg
c2xvdDsKKyAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsICZnbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgfQorI2lmIEVOQUJMRShDb25kaXRpb24xKQor
ICAgIGlmICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oJmdsb2JhbE9iamVjdCktPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0dGluZzFFbmFibGVk
KSB7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJuYW1lc3BhY2VPcGVyYXRpb25Gcm9t
UGFydGlhbCIpLCBzdHJsZW4oIm5hbWVzcGFjZU9wZXJhdGlvbkZyb21QYXJ0aWFsIikpOworICAg
ICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9w
ZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CisgICAgICAgIERlbGV0ZVByb3BlcnR5U2xv
dCBzbG90OworICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgJmdsb2JhbE9i
amVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICB9CisjZW5kaWYKK30KKworY29uc3QgQ2xh
c3NJbmZvIEpTVGVzdE5hbWVzcGFjZU9iamVjdDo6c19pbmZvID0geyAiVGVzdEludGVyZmFjZU5h
bWUiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KEpTVGVzdE5hbWVzcGFjZU9iamVjdCkgfTsKKworSlNUZXN0TmFtZXNwYWNlT2JqZWN0OjpKU1Rl
c3ROYW1lc3BhY2VPYmplY3QoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0
JiBnbG9iYWxPYmplY3QpCisgICAgOiBKU0RPTU9iamVjdChzdHJ1Y3R1cmUsIGdsb2JhbE9iamVj
dCkgeyB9CisKK3ZvaWQgSlNUZXN0TmFtZXNwYWNlT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0pCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAgIEFTU0VSVChpbmhlcml0
cyh2bSwgaW5mbygpKSk7CisKKyAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX2Jhc2Vfb2Y8QWN0
aXZlRE9NT2JqZWN0LCBUZXN0TmFtZXNwYWNlT2JqZWN0Pjo6dmFsdWUsICJJbnRlcmZhY2UgaXMg
bm90IG1hcmtlZCBhcyBbQWN0aXZlRE9NT2JqZWN0XSBldmVuIHRob3VnaCBpbXBsZW1lbnRhdGlv
biBjbGFzcyBzdWJjbGFzc2VzIEFjdGl2ZURPTU9iamVjdC4iKTsKKworfQorCitKU1ZhbHVlIEpT
VGVzdE5hbWVzcGFjZU9iamVjdDo6Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxK
U1Rlc3ROYW1lc3BhY2VPYmplY3RET01Db25zdHJ1Y3Rvcj4odm0sICpqc0Nhc3Q8Y29uc3QgSlNE
T01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpKTsKK30KKwordm9pZCBKU1Rlc3ROYW1lc3Bh
Y2VPYmplY3Q6OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwpCit7CisgICAgSlNUZXN0TmFtZXNw
YWNlT2JqZWN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNUZXN0TmFtZXNwYWNlT2JqZWN0
Kj4oY2VsbCk7CisgICAgdGhpc09iamVjdC0+SlNUZXN0TmFtZXNwYWNlT2JqZWN0Ojp+SlNUZXN0
TmFtZXNwYWNlT2JqZWN0KCk7Cit9CisKK3RlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVzcGFj
ZU9iamVjdCogSURMQXR0cmlidXRlPEpTVGVzdE5hbWVzcGFjZU9iamVjdD46OmNhc3QoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSkK
K3sKKyAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lc3BhY2VPYmplY3QqPihKU0M6
OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OworfQorCit0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3ROYW1lc3BhY2VPYmplY3QqIElETE9wZXJh
dGlvbjxKU1Rlc3ROYW1lc3BhY2VPYmplY3Q+OjpjYXN0KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUmIGNhbGxGcmFtZSkKK3sKKyAgICByZXR1cm4ganNEeW5h
bWljQ2FzdDxKU1Rlc3ROYW1lc3BhY2VPYmplY3QqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKK30KKworc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yX25hbWVzcGFjZUF0dHJpYnV0ZUdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCkKK3sKKyAgICBhdXRvJiB2
bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOworICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExVbnNpZ25lZExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIFRlc3ROYW1lc3BhY2VPYmplY3Q6Om5hbWVzcGFjZUF0dHJpYnV0ZSgpKSkpOworfQor
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZXNwYWNlT2JqZWN0Q29uc3RydWN0
b3JfbmFtZXNwYWNlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIGF0dHJpYnV0ZU5hbWUp
KQoreworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TmFtZXNwYWNlT2JqZWN0Pjo6Z2V0
U3RhdGljPGpzVGVzdE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yX25hbWVzcGFjZUF0dHJpYnV0
ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgYXR0cmlidXRlTmFtZSk7
Cit9CisKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3ROYW1lc3BhY2VPYmplY3RDb25zdHJ1Y3Rvcl9uYW1lc3BhY2VBdHRyaWJ1dGVGcm9tUGFydGlh
bEdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCkKK3sKKyAgICBhdXRv
JiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOworICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExEb3VibGU+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIFdlYkNvcmU6OlRlc3ROYW1lc3BhY2VPYmplY3RJbXBsOjpuYW1lc3BhY2VBdHRyaWJ1dGVG
cm9tUGFydGlhbCgpKSkpOworfQorCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TmFt
ZXNwYWNlT2JqZWN0Q29uc3RydWN0b3JfbmFtZXNwYWNlQXR0cmlidXRlRnJvbVBhcnRpYWwsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUgYXR0cmlidXRlTmFtZSkpCit7CisgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3ROYW1lc3BhY2VPYmplY3Q+OjpnZXRTdGF0aWM8anNUZXN0TmFtZXNwYWNlT2Jq
ZWN0Q29uc3RydWN0b3JfbmFtZXNwYWNlQXR0cmlidXRlRnJvbVBhcnRpYWxHZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGF0dHJpYnV0ZU5hbWUpOworfQorCisjZW5kaWYK
Kworc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVzcGFjZU9iamVj
dENvbnN0cnVjdG9yRnVuY3Rpb25fb3ZlcmxvYWRlZE5hbWVzcGFjZU9wZXJhdGlvbjFCb2R5KEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBj
YWxsRnJhbWUpCit7CisgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOworICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAg
IFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKKyAgICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsK
KyAgICBFbnN1cmVTdGlsbEFsaXZlU2NvcGUgYXJndW1lbnQwID0gY2FsbEZyYW1lLT51bmNoZWNr
ZWRBcmd1bWVudCgwKTsKKyAgICBhdXRvIG9iakFyZyA9IGNvbnZlcnQ8SURMTnVsbGFibGU8SURM
SW50ZXJmYWNlPFRlc3RPYmo+Pj4oKmxleGljYWxHbG9iYWxPYmplY3QsIGFyZ3VtZW50MC52YWx1
ZSgpLCBbXShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OlRo
cm93U2NvcGUmIHNjb3BlKSB7IHRocm93QXJndW1lbnRUeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9i
amVjdCwgc2NvcGUsIDAsICJvYmpBcmciLCAiVGVzdEludGVyZmFjZU5hbWUiLCAib3ZlcmxvYWRl
ZE5hbWVzcGFjZU9wZXJhdGlvbiIsICJUZXN0T2JqIik7IH0pOworICAgIFJFVFVSTl9JRl9FWENF
UFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgRW5zdXJlU3RpbGxBbGl2
ZVNjb3BlIGFyZ3VtZW50MSA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMSk7CisgICAg
YXV0byBzdHJBcmcgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IGFyZ3VtZW50MS52YWx1ZSgpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUs
IGVuY29kZWRKU1ZhbHVlKCkpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBK
U1ZhbHVlOjplbmNvZGUodG9KUzxJRExCb29sZWFuPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgVGVzdE5hbWVzcGFjZU9iamVjdDo6b3ZlcmxvYWRlZE5hbWVzcGFjZU9wZXJhdGlv
bihXVEZNb3ZlKG9iakFyZyksIFdURk1vdmUoc3RyQXJnKSkpKSk7Cit9CisKK3N0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lc3BhY2VPYmplY3RDb25zdHJ1Y3RvckZ1
bmN0aW9uX292ZXJsb2FkZWROYW1lc3BhY2VPcGVyYXRpb24yQm9keShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQorewor
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBVTlVTRURfUEFSQU0o
dGhyb3dTY29wZSk7CisgICAgVU5VU0VEX1BBUkFNKGNhbGxGcmFtZSk7CisgICAgRW5zdXJlU3Rp
bGxBbGl2ZVNjb3BlIGFyZ3VtZW50MCA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7
CisgICAgYXV0byBvYmpBcmcgPSBjb252ZXJ0PElETE51bGxhYmxlPElETEludGVyZmFjZTxUZXN0
T2JqPj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBhcmd1bWVudDAudmFsdWUoKSwgW10oSlNDOjpK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpUaHJvd1Njb3BlJiBzY29w
ZSkgeyB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCAw
LCAib2JqQXJnIiwgIlRlc3RJbnRlcmZhY2VOYW1lIiwgIm92ZXJsb2FkZWROYW1lc3BhY2VPcGVy
YXRpb24iLCAiVGVzdE9iaiIpOyB9KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2Nv
cGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIEVuc3VyZVN0aWxsQWxpdmVTY29wZSBhcmd1bWVu
dDEgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOworICAgIGF1dG8gbG9uZ0FyZyA9IGFyZ3VtZW50
MS52YWx1ZSgpLmlzVW5kZWZpbmVkKCkgPyBPcHRpb25hbDxDb252ZXJ0ZXI8SURMTG9uZz46OlJl
dHVyblR5cGU+KCkgOiBPcHRpb25hbDxDb252ZXJ0ZXI8SURMTG9uZz46OlJldHVyblR5cGU+KGNv
bnZlcnQ8SURMTG9uZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGFyZ3VtZW50MS52YWx1ZSgpKSk7
CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsK
KyAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8
SURMQm9vbGVhbj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFRlc3ROYW1lc3Bh
Y2VPYmplY3Q6Om92ZXJsb2FkZWROYW1lc3BhY2VPcGVyYXRpb24oV1RGTW92ZShvYmpBcmcpLCBX
VEZNb3ZlKGxvbmdBcmcpKSkpKTsKK30KKworc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25fb3ZlcmxvYWRlZE5h
bWVzcGFjZU9wZXJhdGlvbk92ZXJsb2FkRGlzcGF0Y2hlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIGF1
dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBVTlVTRURfUEFSQU0odGhyb3dT
Y29wZSk7CisgICAgVU5VU0VEX1BBUkFNKGNhbGxGcmFtZSk7CisgICAgc2l6ZV90IGFyZ3NDb3Vu
dCA9IHN0ZDo6bWluPHNpemVfdD4oMiwgY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkpOworICAg
IGlmIChhcmdzQ291bnQgPT0gMSkgeworICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKGpzVGVzdE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25fb3ZlcmxvYWRl
ZE5hbWVzcGFjZU9wZXJhdGlvbjJCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSkp
KTsKKyAgICB9CisgICAgaWYgKGFyZ3NDb3VudCA9PSAyKSB7CisgICAgICAgIEpTVmFsdWUgZGlz
dGluZ3Vpc2hpbmdBcmcgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDEpOworICAgICAg
ICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0TmFtZXNwYWNlT2JqZWN0Q29uc3RydWN0
b3JGdW5jdGlvbl9vdmVybG9hZGVkTmFtZXNwYWNlT3BlcmF0aW9uMkJvZHkobGV4aWNhbEdsb2Jh
bE9iamVjdCwgY2FsbEZyYW1lKSkpOworICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNO
dW1iZXIoKSkKKyAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNU
ZXN0TmFtZXNwYWNlT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbl9vdmVybG9hZGVkTmFtZXNwYWNl
T3BlcmF0aW9uMkJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSkpOworICAgICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE5hbWVzcGFjZU9iamVjdENv
bnN0cnVjdG9yRnVuY3Rpb25fb3ZlcmxvYWRlZE5hbWVzcGFjZU9wZXJhdGlvbjFCb2R5KGxleGlj
YWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSkpKTsKKyAgICB9CisgICAgcmV0dXJuIGFyZ3NDb3Vu
dCA8IDEgPyB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3Jl
YXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpIDogdGhyb3dW
TVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKK30KKworSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yRnVuY3Rp
b25fb3ZlcmxvYWRlZE5hbWVzcGFjZU9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3ROYW1lc3BhY2VPYmplY3Q+OjpjYWxsU3RhdGljPGpzVGVzdE5hbWVzcGFj
ZU9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25fb3ZlcmxvYWRlZE5hbWVzcGFjZU9wZXJhdGlvbk92
ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvdmVy
bG9hZGVkTmFtZXNwYWNlT3BlcmF0aW9uIik7Cit9CisKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lc3BhY2VPYmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9uX2VuYWJs
ZWRCeVNldHRpbmdOYW1lc3BhY2VPcGVyYXRpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7CisgICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOworICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Nj
b3BlKTsKKyAgICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsKKyAgICBFbnN1cmVTdGlsbEFsaXZl
U2NvcGUgYXJndW1lbnQwID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKKyAgICBhdXRvIGFyZyA9
IGNvbnZlcnQ8SURMQW55PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgYXJndW1lbnQwLnZhbHVlKCkp
OworICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7
CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pT
PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFRlc3ROYW1l
c3BhY2VPYmplY3Q6OmVuYWJsZWRCeVNldHRpbmdOYW1lc3BhY2VPcGVyYXRpb24oV1RGTW92ZShh
cmcpKSkpKTsKK30KKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVzcGFjZU9i
amVjdENvbnN0cnVjdG9yRnVuY3Rpb25fZW5hYmxlZEJ5U2V0dGluZ05hbWVzcGFjZU9wZXJhdGlv
biwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCit7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lc3BhY2VPYmplY3Q+
OjpjYWxsU3RhdGljPGpzVGVzdE5hbWVzcGFjZU9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25fZW5h
YmxlZEJ5U2V0dGluZ05hbWVzcGFjZU9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAiZW5hYmxlZEJ5U2V0dGluZ05hbWVzcGFjZU9wZXJhdGlvbiIpOworfQor
CisjaWYgRU5BQkxFKENvbmRpdGlvbjEpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0TmFtZXNwYWNlT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbl9uYW1lc3BhY2VPcGVy
YXRpb25Gcm9tUGFydGlhbEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3sKKyAgICBhdXRvJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CisgICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOworICAgIFVO
VVNFRF9QQVJBTShjYWxsRnJhbWUpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExVbmRlZmluZWQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBbJl0oKSAtPiBkZWNsdHlwZShhdXRvKSB7IHJldHVybiBXZWJDb3JlOjpU
ZXN0TmFtZXNwYWNlT2JqZWN0SW1wbDo6b3BlcmF0aW9uRnJvbVBhcnRpYWxJbXBsKCk7IH0pKSk7
Cit9CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lc3BhY2VPYmplY3RDb25z
dHJ1Y3RvckZ1bmN0aW9uX25hbWVzcGFjZU9wZXJhdGlvbkZyb21QYXJ0aWFsLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVzcGFjZU9iamVjdD46OmNhbGxTdGF0aWM8
anNUZXN0TmFtZXNwYWNlT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbl9uYW1lc3BhY2VPcGVyYXRp
b25Gcm9tUGFydGlhbEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibmFt
ZXNwYWNlT3BlcmF0aW9uRnJvbVBhcnRpYWwiKTsKK30KKworI2VuZGlmCisKK0pTQzo6SXNvU3Vi
c3BhY2UqIEpTVGVzdE5hbWVzcGFjZU9iamVjdDo6c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZt
KQoreworICAgIGF1dG8mIGNsaWVudERhdGEgPSAqc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEq
Pih2bS5jbGllbnREYXRhKTsKKyAgICBhdXRvJiBzcGFjZXMgPSBjbGllbnREYXRhLnN1YnNwYWNl
cygpOworICAgIGlmIChhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdE5hbWVz
cGFjZU9iamVjdC5nZXQoKSkKKyAgICAgICAgcmV0dXJuIHNwYWNlOworICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0TmFt
ZXNwYWNlT2JqZWN0PiB8fCAhSlNUZXN0TmFtZXNwYWNlT2JqZWN0OjpuZWVkc0Rlc3RydWN0aW9u
KTsKKyAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGli
bGVPYmplY3QsIEpTVGVzdE5hbWVzcGFjZU9iamVjdD4pCisgICAgICAgIHNwYWNlcy5tX3N1YnNw
YWNlRm9yVGVzdE5hbWVzcGFjZU9iamVjdCA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19T
VUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5n
ZXQoKSwgSlNUZXN0TmFtZXNwYWNlT2JqZWN0KTsKKyAgICBlbHNlCisgICAgICAgIHNwYWNlcy5t
X3N1YnNwYWNlRm9yVGVzdE5hbWVzcGFjZU9iamVjdCA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+
IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpT
VGVzdE5hbWVzcGFjZU9iamVjdCk7CisgICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFj
ZUZvclRlc3ROYW1lc3BhY2VPYmplY3QuZ2V0KCk7CitJR05PUkVfV0FSTklOR1NfQkVHSU4oInVu
cmVhY2hhYmxlLWNvZGUiKQorSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29t
cGFyZSIpCisgICAgdm9pZCAoKm15VmlzaXRPdXRwdXRDb25zdHJhaW50KShKU0M6OkpTQ2VsbCos
IEpTQzo6U2xvdFZpc2l0b3ImKSA9IEpTVGVzdE5hbWVzcGFjZU9iamVjdDo6dmlzaXRPdXRwdXRD
b25zdHJhaW50czsKKyAgICB2b2lkICgqanNDZWxsVmlzaXRPdXRwdXRDb25zdHJhaW50KShKU0M6
OkpTQ2VsbCosIEpTQzo6U2xvdFZpc2l0b3ImKSA9IEpTQzo6SlNDZWxsOjp2aXNpdE91dHB1dENv
bnN0cmFpbnRzOworICAgIGlmIChteVZpc2l0T3V0cHV0Q29uc3RyYWludCAhPSBqc0NlbGxWaXNp
dE91dHB1dENvbnN0cmFpbnQpCisgICAgICAgIGNsaWVudERhdGEub3V0cHV0Q29uc3RyYWludFNw
YWNlcygpLmFwcGVuZChzcGFjZSk7CitJR05PUkVfV0FSTklOR1NfRU5ECitJR05PUkVfV0FSTklO
R1NfRU5ECisgICAgcmV0dXJuIHNwYWNlOworfQorCisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lc3BhY2VPYmplY3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZXNwYWNlT2JqZWN0LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVzcGFjZU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNjIgQEAKKy8qCisgICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBv
cGVuIHNvdXJjZSBwcm9qZWN0LgorICAgIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkg
Z2VuZXJhdGUtYmluZGluZ3MucGwuIERPIE5PVCBNT0RJRlkhCisKKyAgICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBKU1Rlc3ROYW1lc3BhY2VPYmplY3QgOiBwdWJsaWMgSlNET01PYmplY3QgeworcHVibGljOgor
ICAgIHVzaW5nIEJhc2UgPSBKU0RPTU9iamVjdDsKKyAgICBzdGF0aWMgSlNUZXN0TmFtZXNwYWNl
T2JqZWN0KiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKKyAgICB7CisgICAgICAgIEpTVGVzdE5hbWVzcGFjZU9iamVjdCog
cHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3ROYW1lc3BhY2VPYmpl
Y3Q+KGdsb2JhbE9iamVjdC0+dm0oKS5oZWFwKSkgSlNUZXN0TmFtZXNwYWNlT2JqZWN0KHN0cnVj
dHVyZSwgKmdsb2JhbE9iamVjdCk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFs
T2JqZWN0LT52bSgpKTsKKyAgICAgICAgcmV0dXJuIHB0cjsKKyAgICB9CisKKyAgICBzdGF0aWMg
dm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CisKKyAgICBERUNMQVJFX0lORk87CisKKyAgICBz
dGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCksIEpTQzo6Tm9uQXJyYXkpOworICAgIH0KKworICAgIHN0YXRpYyBKU0M6OkpT
VmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3Qq
KTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSwgSlNDOjpTdWJzcGFjZUFjY2VzcyBtb2RlPiBzdGF0
aWMgSlNDOjpJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoSlNDOjpWTSYgdm0pCisgICAgeworICAg
ICAgICBpZiBjb25zdGV4cHIgKG1vZGUgPT0gSlNDOjpTdWJzcGFjZUFjY2Vzczo6Q29uY3VycmVu
dGx5KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBzdWJzcGFj
ZUZvckltcGwodm0pOworICAgIH0KKyAgICBzdGF0aWMgSlNDOjpJc29TdWJzcGFjZSogc3Vic3Bh
Y2VGb3JJbXBsKEpTQzo6Vk0mIHZtKTsKK3Byb3RlY3RlZDoKKyAgICBKU1Rlc3ROYW1lc3BhY2VP
YmplY3QoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYpOworCisgICAgdm9pZCBm
aW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Cit9OworCisKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5v
ZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROb2RlLmNwcAkocmV2aXNpb24gMjc2NTk1KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMzAsNiArMTMwLDggQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
XwogfQogSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oSlNUZXN0Tm9kZURPTUNvbnN0cnVjdG9y
Q29uc3RydWN0LCBKU1Rlc3ROb2RlRE9NQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk7CiAKK3RlbXBs
YXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5vZGVET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0g
eyAiVGVzdE5vZGUiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTVGVzdE5vZGVET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1Zh
bHVlIEpTVGVzdE5vZGVET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6
Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIHJl
dHVybiBKU05vZGU6OmdldENvbnN0cnVjdG9yKHZtLCAmZ2xvYmFsT2JqZWN0KTsKQEAgLTE0Miw4
ICsxNDQsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0Tm9kZURPTUNvbnN0cnVjdG9yCiAgICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0Tm9kZURPTUNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0Tm9kZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Tm9kZURPTUNvbnN0cnVjdG9yKSB9
OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hU
YWJsZVZhbHVlIEpTVGVzdE5vZGVQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwCShyZXZpc2lvbiAyNzY1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk3NSw2ICsxOTc1LDgg
QEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMXwogfQogSlNDX0FOTk9U
QVRFX0hPU1RfRlVOQ1RJT04oSlNUZXN0T2JqRE9NQ29uc3RydWN0b3JDb25zdHJ1Y3QsIEpTVGVz
dE9iakRPTUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QpOwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNz
SW5mbyBKU1Rlc3RPYmpET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdE9iamVjdCIsICZC
YXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0
T2JqRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RPYmpET01D
b25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RP
TUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBA
IC0yMDA1LDggKzIwMDcsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0T2JqRE9NQ29uc3RydWN0
b3I6CiAjZW5kaWYKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0T2JqRE9N
Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxs
cHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE9iakRPTUNvbnN0cnVjdG9y
KSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhh
c2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9wZXJhdGlvbkNvbmRp
dGlvbmFsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwuY3BwCShyZXZpc2lvbiAyNzY1OTUp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3BlcmF0
aW9uQ29uZGl0aW9uYWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OSw2ICs5OSw4IEBAIFNUQVRJ
Q19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0T3BlcmF0
aW9uQ29uZGl0aW9uYWxET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1
Y3RhYmxlPEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsPjsKIAordGVtcGxhdGU8PiBjb25zdCBD
bGFzc0luZm8gSlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxET01Db25zdHJ1Y3Rvcjo6c19pbmZv
ID0geyAiVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbERP
TUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0T3BlcmF0aW9uQ29u
ZGl0aW9uYWxET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZt
LCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9Q
QVJBTSh2bSk7CkBAIC0xMTIsOCArMTE0LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdE9wZXJh
dGlvbkNvbmRpdGlvbgogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3Ro
LCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsg
IlRlc3RPcGVyYXRpb25Db25kaXRpb25hbCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxET01Db25z
dHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFByb3RvdHlwZVRh
YmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzLmNwcAkocmV2aXNpb24gMjc2NTk1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMDYsNiArMjA2LDggQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMXwogfQogSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oSlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yQ29uc3RydWN0LCBKU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzRE9NQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk7CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xh
c3NJbmZvIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNET01Db25zdHJ1Y3Rvcjo6c19pbmZv
ID0geyAiVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMiLCAmQmFzZTo6c19pbmZvLCBudWxscHRy
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6
Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVO
VVNFRF9QQVJBTSh2bSk7CkBAIC0yMTksOCArMjIxLDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1YwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3Qg
Q2xhc3NJbmZvIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNET01Db25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMiLCAmQmFzZTo6c19pbmZvLCBudWxs
cHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnNET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICov
CiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5j
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuY3BwCShyZXZpc2lv
biAyNzY1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE0OSw2ICsxNDksOCBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TExfCiB9CiBKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3JDb25zdHJ1Y3QsIEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VET01Db25zdHJ1Y3Rvcjo6Y29uc3RydWN0KTsKIAordGVt
cGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhT
ZXF1ZW5jZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc1dpdGhTZXF1ZW5jZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZURP
TUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yc1dpdGhTZXF1ZW5jZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1
cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7
CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTE2Miw4ICsxNjQsNiBAQCB0ZW1wbGF0ZTw+IHZv
aWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8
PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5j
ZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dp
dGhTZXF1ZW5jZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRI
T0RfVEFCTEUoSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZURPTUNvbnN0
cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNv
bnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVu
Y2VQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQYXJ0aWFsTmFtZXNwYWNlT2JqZWN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGFy
dGlhbE5hbWVzcGFjZU9iamVjdC5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBhcnRpYWxOYW1lc3BhY2VPYmplY3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNSBAQAorLyoKKyAgICBUaGlzIGZpbGUgaXMgZ2Vu
ZXJhdGVkIHRvIGluZm9ybSBidWlsZCBzY3JpcHRzIHRoYXQgSlNUZXN0UGFydGlhbE5hbWVzcGFj
ZU9iamVjdC5oIGFuZAorICAgIEpTVGVzdFBhcnRpYWxOYW1lc3BhY2VPYmplY3QuY3BwIHdlcmUg
Y3JlYXRlZCBmb3IgVGVzdFBhcnRpYWxOYW1lc3BhY2VPYmplY3QuaWRsLCBhbmQgcHJldmVudCB0
aGUgYnVpbGQKKyAgICBzY3JpcHRzIGZyb20gdHJ5aW5nIHRvIHJlZ2VuZXJhdGUgSlNUZXN0UGFy
dGlhbE5hbWVzcGFjZU9iamVjdC5oIGFuZCBKU1Rlc3RQYXJ0aWFsTmFtZXNwYWNlT2JqZWN0LmNw
cCBvbiBldmVyeSBidWlsZC4KKyovCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0UGFydGlhbE5hbWVzcGFjZU9iamVjdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQYXJ0aWFsTmFt
ZXNwYWNlT2JqZWN0LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBhcnRpYWxOYW1lc3BhY2VPYmplY3QuaAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDUgQEAKKy8qCisgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCB0byBp
bmZvcm0gYnVpbGQgc2NyaXB0cyB0aGF0IEpTVGVzdFBhcnRpYWxOYW1lc3BhY2VPYmplY3QuaCBh
bmQKKyAgICBKU1Rlc3RQYXJ0aWFsTmFtZXNwYWNlT2JqZWN0LmNwcCB3ZXJlIGNyZWF0ZWQgZm9y
IFRlc3RQYXJ0aWFsTmFtZXNwYWNlT2JqZWN0LmlkbCwgYW5kIHByZXZlbnQgdGhlIGJ1aWxkCisg
ICAgc2NyaXB0cyBmcm9tIHRyeWluZyB0byByZWdlbmVyYXRlIEpTVGVzdFBhcnRpYWxOYW1lc3Bh
Y2VPYmplY3QuaCBhbmQgSlNUZXN0UGFydGlhbE5hbWVzcGFjZU9iamVjdC5jcHAgb24gZXZlcnkg
YnVpbGQuCisqLwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFBsdWdpbkludGVyZmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5jcHAJKHJldmlz
aW9uIDI3NjU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Miw2ICs4Miw4IEBA
IFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0
UGx1Z2luSW50ZXJmYWNlRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3Ry
dWN0YWJsZTxKU1Rlc3RQbHVnaW5JbnRlcmZhY2U+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNz
SW5mbyBKU1Rlc3RQbHVnaW5JbnRlcmZhY2VET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVz
dFBsdWdpbkludGVyZmFjZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNUZXN0UGx1Z2luSW50ZXJmYWNlRE9NQ29uc3RydWN0b3IpIH07CisK
IHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RQbHVnaW5JbnRlcmZhY2VET01Db25zdHJ1Y3Rvcjo6
cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVj
dCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC05NSw4ICs5Nyw2
IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RQbHVnaW5JbnRlcmZhY2VET00KICAgICBwdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
OwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RQbHVnaW5JbnRlcmZhY2VE
T01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdFBsdWdpbkludGVyZmFjZSIsICZCYXNlOjpz
X2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0UGx1Z2lu
SW50ZXJmYWNlRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlw
ZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0UGx1Z2luSW50ZXJmYWNl
UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50LmNwcAkocmV2aXNpb24gMjc2NTk1KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE5MSw2ICsxOTEsOCBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTExfCiB9CiBKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU1Rlc3RQ
cm9taXNlUmVqZWN0aW9uRXZlbnRET01Db25zdHJ1Y3RvckNvbnN0cnVjdCwgSlNUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50RE9NQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk7CiAKK3RlbXBsYXRlPD4g
Y29uc3QgQ2xhc3NJbmZvIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudERPTUNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50IiwgJkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RQcm9taXNlUmVqZWN0
aW9uRXZlbnRET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdFBy
b21pc2VSZWplY3Rpb25FdmVudERPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUo
SlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAg
ICAgcmV0dXJuIEpTRXZlbnQ6OmdldENvbnN0cnVjdG9yKHZtLCAmZ2xvYmFsT2JqZWN0KTsKQEAg
LTIwMyw4ICsyMDUsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2
CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDIp
LCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0UHJv
bWlzZVJlamVjdGlvbkV2ZW50RE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RQcm9taXNl
UmVqZWN0aW9uRXZlbnQiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudERPTUNvbnN0cnVjdG9yKSB9
OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hU
YWJsZVZhbHVlIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFByb3RvdHlwZVRhYmxlVmFsdWVz
W10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFJlYWRPbmx5TWFwTGlrZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5TWFwTGlrZS5jcHAJKHJldmlzaW9uIDI3
NjU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RS
ZWFkT25seU1hcExpa2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Nyw2ICs5Nyw4IEBAIFNUQVRJ
Q19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0UmVhZE9u
bHlNYXBMaWtlRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJs
ZTxKU1Rlc3RSZWFkT25seU1hcExpa2U+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBK
U1Rlc3RSZWFkT25seU1hcExpa2VET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdFJlYWRP
bmx5TWFwTGlrZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRI
T0RfVEFCTEUoSlNUZXN0UmVhZE9ubHlNYXBMaWtlRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBs
YXRlPD4gSlNWYWx1ZSBKU1Rlc3RSZWFkT25seU1hcExpa2VET01Db25zdHJ1Y3Rvcjo6cHJvdG90
eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xv
YmFsT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTSh2bSk7CkBAIC0xMTAsOCArMTEyLDYgQEAg
dGVtcGxhdGU8PiB2b2lkIEpTVGVzdFJlYWRPbmx5TWFwTGlrZURPTQogICAgIHB1dERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9
CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFJlYWRPbmx5TWFwTGlrZURPTUNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0UmVhZE9ubHlNYXBMaWtlIiwgJkJhc2U6OnNfaW5m
bywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RSZWFkT25seU1h
cExpa2VET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICov
CiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RSZWFkT25seU1hcExpa2VQcm90
b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RSZWFkT25seVNldExpa2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZWFkT25seVNldExpa2Uu
Y3BwCShyZXZpc2lvbiAyNzY1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0UmVhZE9ubHlTZXRMaWtlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTYs
NiArOTYsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVz
aW5nIEpTVGVzdFJlYWRPbmx5U2V0TGlrZURPTUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rv
ck5vdENvbnN0cnVjdGFibGU8SlNUZXN0UmVhZE9ubHlTZXRMaWtlPjsKIAordGVtcGxhdGU8PiBj
b25zdCBDbGFzc0luZm8gSlNUZXN0UmVhZE9ubHlTZXRMaWtlRE9NQ29uc3RydWN0b3I6OnNfaW5m
byA9IHsgIlRlc3RSZWFkT25seVNldExpa2UiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFJlYWRPbmx5U2V0TGlrZURPTUNvbnN0cnVj
dG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0UmVhZE9ubHlTZXRMaWtlRE9NQ29u
c3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01H
bG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAt
MTA5LDggKzExMSw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RSZWFkT25seVNldExpa2VET00K
ICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCks
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RSZWFk
T25seVNldExpa2VET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdFJlYWRPbmx5U2V0TGlr
ZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNUZXN0UmVhZE9ubHlTZXRMaWtlRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUg
Zm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0UmVh
ZE9ubHlTZXRMaWtlUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0LmNwcAkocmV2aXNpb24gMjc2NTk1KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlcG9ydEV4dHJhTWVt
b3J5Q29zdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDYgKzgxLDggQEAgU1RBVElDX0FTU0VS
VF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogCiB1c2luZyBKU1Rlc3RSZXBvcnRFeHRyYU1l
bW9yeUNvc3RET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxl
PEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdD47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdERPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7
ICJUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVs
bHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RET01D
b25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdFJlcG9ydEV4dHJhTWVt
b3J5Q29zdERPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0s
IGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKHZtKTsKQEAgLTk0LDggKzk2LDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdFJlcG9ydEV4
dHJhTWVtb3J5QwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBq
c051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdERPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJU
ZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RET01Db25z
dHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RQcm90b3R5cGVU
YWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAyNzY1OTUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDYgKzEwNyw4IEBAIFNUQVRJ
Q19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9y
Tm90Q29uc3RydWN0YWJsZTxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+Owog
Cit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9N
RVRIT0RfVEFCTEUoSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlRE9NQ29uc3Ry
dWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0m
IHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNF
RF9QQVJBTSh2bSk7CkBAIC0xMjAsOCArMTIyLDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYQogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVu
Z3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xh
c3NJbmZvIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZURPTUNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIiwgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0
YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRM
aWtlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U2V0TGlrZS5jcHAJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtOTksNiArOTksOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJM
RShKU1RlCiAKIHVzaW5nIEpTVGVzdFNldExpa2VET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3Ry
dWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdFNldExpa2U+OwogCit0ZW1wbGF0ZTw+IGNvbnN0
IENsYXNzSW5mbyBKU1Rlc3RTZXRMaWtlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RT
ZXRMaWtlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3RTZXRMaWtlRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1
ZSBKU1Rlc3RTZXRMaWtlRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6
OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBV
TlVTRURfUEFSQU0odm0pOwpAQCAtMTEyLDggKzExNCw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rl
c3RTZXRMaWtlRE9NQ29uc3RydWMKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
Pmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0
IENsYXNzSW5mbyBKU1Rlc3RTZXRMaWtlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RT
ZXRMaWtlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3RTZXRMaWtlRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9y
IHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0U2V0TGlr
ZVByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMjc2NTk1
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsNiAr
MTAzLDggQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogCiB1c2lu
ZyBKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zRE9NQ29uc3RydWN0b3IgPSBK
U0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zPjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0RPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0
U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc0RPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0
U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0RPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVG
b3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxP
YmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKQEAgLTExNiw4ICsxMTgsNiBAQCB0ZW1w
bGF0ZTw+IHZvaWQgSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkCiAgICAgcHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAot
dGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc0RPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0U2V0TGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9ucyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9N
RVRIT0RfVEFCTEUoSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0RPTUNvbnN0
cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNv
bnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQ
cm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcAko
cmV2aXNpb24gMjc2NTk1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODcsNiArODcsOCBA
QCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVz
dFN0cmluZ2lmaWVyRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0
YWJsZTxKU1Rlc3RTdHJpbmdpZmllcj47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdFN0cmluZ2lmaWVyRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RTdHJpbmdpZmll
ciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNUZXN0U3RyaW5naWZpZXJET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVl
IEpTVGVzdFN0cmluZ2lmaWVyRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShK
U0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAg
ICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMTAwLDggKzEwMiw2IEBAIHRlbXBsYXRlPD4gdm9pZCBK
U1Rlc3RTdHJpbmdpZmllckRPTUNvbnMKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+IGNv
bnN0IENsYXNzSW5mbyBKU1Rlc3RTdHJpbmdpZmllckRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7
ICJUZXN0U3RyaW5naWZpZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTVGVzdFN0cmluZ2lmaWVyRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8q
IEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFs
dWUgSlNUZXN0U3RyaW5naWZpZXJQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllckFub255
bW91c09wZXJhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNwcAko
cmV2aXNpb24gMjc2NTk1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODcsNiArODcsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShK
U1RlCiAKIHVzaW5nIEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uRE9NQ29uc3Ry
dWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RTdHJpbmdpZmll
ckFub255bW91c09wZXJhdGlvbj47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVz
dFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsg
IlRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxw
dHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1v
dXNPcGVyYXRpb25ET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVz
dFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZv
clN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9i
amVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMTAwLDggKzEwMiw2IEBAIHRlbXBs
YXRlPD4gdm9pZCBKU1Rlc3RTdHJpbmdpZmllckFub255bW8KICAgICBwdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10
ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJh
dGlvbkRPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNP
cGVyYXRpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uRE9NQ29uc3RydWN0b3Ip
IH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFz
aFRhYmxlVmFsdWUgSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Qcm90b3R5cGVU
YWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJO
YW1lZE9wZXJhdGlvbi5jcHAJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODgsNiArODgsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJT
UEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRp
b25ET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVz
dFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24+OwogCit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5m
byBKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIlRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0
ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3Bl
cmF0aW9uRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RTdHJp
bmdpZmllck5hbWVkT3BlcmF0aW9uRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVy
ZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsK
ICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMTAxLDggKzEwMyw2IEBAIHRlbXBsYXRlPD4gdm9p
ZCBKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3AKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi10ZW1wbGF0ZTw+
IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uRE9NQ29uc3Ry
dWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uIiwgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RTdHJp
bmdpZmllck5hbWVkT3BlcmF0aW9uRE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUg
Zm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0U3Ry
aW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3Bl
cmF0aW9uSW1wbGVtZW50ZWRBcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50
ZWRBcy5jcHAJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04OCw2ICs4OCw4IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQ
QUNFX1NIQVJBQkxFKEpTVGUKIAogdXNpbmcgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBs
ZW1lbnRlZEFzRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJs
ZTxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXM+OwogCit0ZW1wbGF0ZTw+
IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNE
T01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVt
ZW50ZWRBcyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzRE9NQ29uc3RydWN0
b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbklt
cGxlbWVudGVkQXNET01Db25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0m
IHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewogICAgIFVOVVNF
RF9QQVJBTSh2bSk7CkBAIC0xMDEsOCArMTAzLDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTVGVzdFN0
cmluZ2lmaWVyT3BlcmF0aQogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVu
Z3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xh
c3NJbmZvIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0RPTUNvbnN0cnVj
dG9yOjpzX2luZm8gPSB7ICJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzIiwg
JkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rl
c3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNET01Db25zdHJ1Y3RvcikgfTsKLQog
LyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVW
YWx1ZSBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVUYWJs
ZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCShyZXZpc2lvbiAyNzY1OTUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25OYW1lZFRvU3RyaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODcsNiArODcsOCBAQCBT
VEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1RlCiAKIHVzaW5nIEpTVGVzdFN0
cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0RPTUNvbnN0cnVjdG9yID0gSlNET01Db25z
dHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRv
U3RyaW5nPjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25OYW1lZFRvU3RyaW5nRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RTdHJp
bmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmciLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBu
dWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFt
ZWRUb1N0cmluZ0RPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0
U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nRE9NQ29uc3RydWN0b3I6OnByb3RvdHlw
ZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2Jh
bE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMTAwLDggKzEwMiw2IEBAIHRl
bXBsYXRlPD4gdm9pZCBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGkKICAgICBwdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQog
Ci10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5h
bWVkVG9TdHJpbmdET01Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdFN0cmluZ2lmaWVyT3Bl
cmF0aW9uTmFtZWRUb1N0cmluZyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5n
RE9NQ29uc3RydWN0b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBz
dGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1l
ZFRvU3RyaW5nUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuY3BwCShyZXZpc2lvbiAyNzY1
OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3Ry
aW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDYgKzg5
LDggQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZQogCiB1c2luZyBK
U1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNv
bnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmli
dXRlPjsKIAordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0U3RyaW5naWZpZXJSZWFk
T25seUF0dHJpYnV0ZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0U3RyaW5naWZpZXJS
ZWFkT25seUF0dHJpYnV0ZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZURPTUNvbnN0
cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0U3RyaW5naWZpZXJSZWFkT25s
eUF0dHJpYnV0ZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYg
dm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAgVU5VU0VE
X1BBUkFNKHZtKTsKQEAgLTEwMiw4ICsxMDQsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0U3Ry
aW5naWZpZXJSZWFkT25sCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5n
dGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFz
c0luZm8gSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZURPTUNvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZSIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U3RyaW5naWZp
ZXJSZWFkT25seUF0dHJpYnV0ZURPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZv
ciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdFN0cmlu
Z2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJl
YWRXcml0ZUF0dHJpYnV0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmNw
cAkocmV2aXNpb24gMjc2NTk1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtOTAsNiArOTAsOCBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJM
RShKU1RlCiAKIHVzaW5nIEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlRE9NQ29u
c3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RTdHJpbmdp
ZmllclJlYWRXcml0ZUF0dHJpYnV0ZT47CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIlRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSIsICZCYXNlOjpzX2luZm8sIG51
bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U3RyaW5naWZpZXJSZWFk
V3JpdGVBdHRyaWJ1dGVET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpT
VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlRE9NQ29uc3RydWN0b3I6OnByb3RvdHlw
ZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2Jh
bE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0odm0pOwpAQCAtMTAzLDggKzEwNSw2IEBAIHRl
bXBsYXRlPD4gdm9pZCBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcmkKICAgICBwdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQog
Ci10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0
dHJpYnV0ZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0U3RyaW5naWZpZXJSZWFkV3Jp
dGVBdHRyaWJ1dGUiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlRE9NQ29uc3RydWN0
b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3Qg
SGFzaFRhYmxlVmFsdWUgSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5
cGVUYWJsZVZhbHVlc1tdID0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAkocmV2aXNpb24gMjc2
NTk1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5
cGVkZWZzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgzLDYgKzE4Myw4IEBAIHRlbXBsYXRlPD4g
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF8KIH0KIEpTQ19BTk5PVEFURV9IT1NUX0ZVTkNU
SU9OKEpTVGVzdFR5cGVkZWZzRE9NQ29uc3RydWN0b3JDb25zdHJ1Y3QsIEpTVGVzdFR5cGVkZWZz
RE9NQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk7CiAKK3RlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdFR5cGVkZWZzRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RUeXBlZGVmcyIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNU
ZXN0VHlwZWRlZnNET01Db25zdHJ1Y3RvcikgfTsKKwogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVz
dFR5cGVkZWZzRE9NQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2
bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURf
UEFSQU0odm0pOwpAQCAtMTk3LDggKzE5OSw2IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RUeXBl
ZGVmc0RPTUNvbnN0cnUKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdFR5cGVk
ZWZzOjppbmZvKCksIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JUYWJsZVZhbHVlcywgKnRoaXMp
OwogfQogCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RUeXBlZGVmc0RPTUNvbnN0
cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0VHlwZWRlZnMiLCAmQmFzZTo6c19pbmZvLCBudWxscHRy
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFR5cGVkZWZzRE9NQ29uc3RydWN0
b3IpIH07Ci0KIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwogCiBzdGF0aWMgY29uc3Qg
SGFzaFRhYmxlVmFsdWUgSlNUZXN0VHlwZWRlZnNQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtlckdsb2Jh
bFNjb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNXb3JrZXJHbG9iYWxTY29wZS5jcHAJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtlckdsb2JhbFNjb3Bl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTcsNiArOTcsOCBAQCBzdGF0aWMgY29uc3QgSGFzaFRh
YmxlVmFsdWUgSlNXb3JrZXJHbG9iCiB9OwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTV29y
a2VyR2xvYmFsU2NvcGVUYWJsZSA9IHsgNiwgMTUsIHRydWUsIEpTV29ya2VyR2xvYmFsU2NvcGU6
OmluZm8oKSwgSlNXb3JrZXJHbG9iYWxTY29wZVRhYmxlVmFsdWVzLCBKU1dvcmtlckdsb2JhbFNj
b3BlVGFibGVJbmRleCB9OwordGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNXb3JrZXJHbG9i
YWxTY29wZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJXb3JrZXJHbG9iYWxTY29wZSIsICZC
YXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNXb3Jr
ZXJHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yKSB9OworCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNX
b3JrZXJHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlND
OjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAg
cmV0dXJuIEpTRXZlbnRUYXJnZXQ6OmdldENvbnN0cnVjdG9yKHZtLCAmZ2xvYmFsT2JqZWN0KTsK
QEAgLTEwOSw4ICsxMTEsNiBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNXb3JrZXJHbG9iYWxTY29wZURP
TUNvCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVy
KDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNXb3Jr
ZXJHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJXb3JrZXJHbG9iYWxTY29w
ZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNXb3JrZXJHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yKSB9OwotCiAvKiBIYXNoIHRhYmxlIGZv
ciBwcm90b3R5cGUgKi8KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpT
V29ya2VyR2xvYmFsU2NvcGVQcm90b3R5cGVUYWJsZUluZGV4WzJdID0gewpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2xldEdsb2JhbFNjb3BlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCShyZXZpc2lvbiAyNzY1OTUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2Niw4IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1
ZSBKU1dvcmtsZXRHbG8KIH07CiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNXb3JrbGV0R2xv
YmFsU2NvcGVUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNXb3JrbGV0R2xvYmFsU2NvcGU6OmluZm8o
KSwgSlNXb3JrbGV0R2xvYmFsU2NvcGVUYWJsZVZhbHVlcywgSlNXb3JrbGV0R2xvYmFsU2NvcGVU
YWJsZUluZGV4IH07Cit0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1dvcmtsZXRHbG9iYWxT
Y29wZURPTUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJXb3JrbGV0R2xvYmFsU2NvcGUiLCAmQmFz
ZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTV29ya2xl
dEdsb2JhbFNjb3BlRE9NQ29uc3RydWN0b3IpIH07CisKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1dv
cmtsZXRHbG9iYWxTY29wZURPTUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlND
OjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CiAgICAg
cmV0dXJuIEpTRXZlbnRUYXJnZXQ6OmdldENvbnN0cnVjdG9yKHZtLCAmZ2xvYmFsT2JqZWN0KTsK
QEAgLTc4LDggKzgwLDYgQEAgdGVtcGxhdGU8PiB2b2lkIEpTV29ya2xldEdsb2JhbFNjb3BlRE9N
QwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigw
KSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSk7CiB9CiAKLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTV29ya2xl
dEdsb2JhbFNjb3BlRE9NQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIldvcmtsZXRHbG9iYWxTY29w
ZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNXb3JrbGV0R2xvYmFsU2NvcGVET01Db25zdHJ1Y3RvcikgfTsKLQogLyogSGFzaCB0YWJsZSBm
b3IgcHJvdG90eXBlICovCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBK
U1dvcmtsZXRHbG9iYWxTY29wZVByb3RvdHlwZVRhYmxlSW5kZXhbMl0gPSB7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlK0NTU1BhaW50aW5nLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlK0NTU1BhaW50aW5nLmlkbAko
cmV2aXNpb24gMjc2NTk1KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZStD
U1NQYWludGluZy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDYgQEAKICAgICBFbmFi
bGVkQXRSdW50aW1lPUNTU1BhaW50aW5nQVBJLAogICAgIENvbmRpdGlvbmFsPUNTU19QQUlOVElO
R19BUEksCiAgICAgSW1wbGVtZW50ZWRCeT1ET01DU1NQYWludFdvcmtsZXQKLV0gcGFydGlhbCBp
bnRlcmZhY2UgRE9NQ1NTTmFtZXNwYWNlIHsKLSAgICBbSW1wbGVtZW50ZWRBcz1lbnN1cmVQYWlu
dFdvcmtsZXQsIENhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgcmVhZG9ubHkgYXR0cmlidXRlIFdv
cmtsZXQgcGFpbnRXb3JrbGV0OworXSBwYXJ0aWFsIG5hbWVzcGFjZSBET01DU1NOYW1lc3BhY2Ug
eworICAgIFtJbXBsZW1lbnRlZEFzPWVuc3VyZVBhaW50V29ya2xldCwgQ2FsbFdpdGg9RG9jdW1l
bnRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXb3JrbGV0IHBhaW50V29ya2xldDsKIH07CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlK0NTU1Byb3BlcnRpZXNhbmRWYWx1ZXMu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UrQ1NT
UHJvcGVydGllc2FuZFZhbHVlcy5pZGwJKHJldmlzaW9uIDI3NjU5NSkKKysrIFNvdXJjZS9XZWJD
b3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UrQ1NTUHJvcGVydGllc2FuZFZhbHVlcy5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDYgKzI3LDYgQEAKIFsKICAgICBFbmFibGVkQnlTZXR0aW5nPUNTU0N1
c3RvbVByb3BlcnRpZXNBbmRWYWx1ZXMsCiAgICAgSW1wbGVtZW50ZWRCeT1ET01DU1NSZWdpc3Rl
ckN1c3RvbVByb3BlcnR5Ci1dIHBhcnRpYWwgaW50ZXJmYWNlIERPTUNTU05hbWVzcGFjZSB7Ci0g
ICAgW0NhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgdW5kZWZpbmVkIHJlZ2lzdGVyUHJvcGVydHko
RE9NQ1NTQ3VzdG9tUHJvcGVydHlEZXNjcmlwdG9yIGRlc2NyaXB0b3IpOworXSBwYXJ0aWFsIG5h
bWVzcGFjZSBET01DU1NOYW1lc3BhY2UgeworICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gdW5kZWZp
bmVkIHJlZ2lzdGVyUHJvcGVydHkoRE9NQ1NTQ3VzdG9tUHJvcGVydHlEZXNjcmlwdG9yIGRlc2Ny
aXB0b3IpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaWRsCShy
ZXZpc2lvbiAyNzY1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMjksMTEgKzI5LDEwIEBACiAKIFsKICAgICBJbnRlcmZhY2VO
YW1lPUNTUywKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAogICAgIEV4cG9zZWQ9V2lu
ZG93Ci1dIGludGVyZmFjZSBET01DU1NOYW1lc3BhY2UgewotICAgIFtDYWxsV2l0aD1Eb2N1bWVu
dF0gc3RhdGljIGJvb2xlYW4gc3VwcG9ydHMoRE9NU3RyaW5nIHByb3BlcnR5LCBET01TdHJpbmcg
dmFsdWUpOwotICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gc3RhdGljIGJvb2xlYW4gc3VwcG9ydHMo
RE9NU3RyaW5nIGNvbmRpdGlvblRleHQpOwotICAgIHN0YXRpYyBET01TdHJpbmcgZXNjYXBlKERP
TVN0cmluZyBpZGVudCk7Ci0gICAgW0VuYWJsZWRBdFJ1bnRpbWU9SGlnaGxpZ2h0QVBJLCBDYWxs
V2l0aD1Eb2N1bWVudF0gc3RhdGljIHJlYWRvbmx5IGF0dHJpYnV0ZSBIaWdobGlnaHRSZWdpc3Rl
ciBoaWdobGlnaHRzOworXSBuYW1lc3BhY2UgRE9NQ1NTTmFtZXNwYWNlIHsKKyAgICBbQ2FsbFdp
dGg9RG9jdW1lbnRdIGJvb2xlYW4gc3VwcG9ydHMoRE9NU3RyaW5nIHByb3BlcnR5LCBET01TdHJp
bmcgdmFsdWUpOworICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gYm9vbGVhbiBzdXBwb3J0cyhET01T
dHJpbmcgY29uZGl0aW9uVGV4dCk7CisgICAgRE9NU3RyaW5nIGVzY2FwZShET01TdHJpbmcgaWRl
bnQpOworICAgIFtFbmFibGVkQXRSdW50aW1lPUhpZ2hsaWdodEFQSSwgQ2FsbFdpdGg9RG9jdW1l
bnRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBIaWdobGlnaHRSZWdpc3RlciBoaWdobGlnaHRzOwogfTsK
SW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwkocmV2aXNpb24gMjc2NTk1KQorKysg
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIwIEBACisyMDIxLTA0LTI2ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWls
LmNvbT4KKworICAgICAgICBbV2ViSURMXSBgd2luZG93LkNTU2Agc2hvdWxkIGJlIG5vbi1jYWxs
YWJsZSBvYmplY3Qgd2l0aCBjb3JyZWN0IFN5bWJvbC50b1N0cmluZ1RhZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwODU1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jb25z
b2xlL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvY29uc29sZS9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vQ1NTLW5hbWVzcGFjZS1vYmplY3QtY2xh
c3Mtc3RyaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tL2lkbGhhcm5lc3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvaWRsaGFybmVzcy5qczoKKyAgICAgICAgU3luYyBmcm9tIHVwc3RyZWFt
IDE1ZWNiZmViZDUwNC4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBp
L2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd2FzbS9qc2FwaS9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorCiAyMDIx
LTA0LTI2ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAg
ICBbSlNDXSBPcmRpbmFyeVNldCBzaG91bGQgaW52b2tlIGN1c3RvbSBbW1NldF1dIG1ldGhvZHMK
SW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29uc29s
ZS9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb25zb2xlL2lkbGhhcm5lc3MuYW55LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMjc2NTk1KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jb25zb2xlL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtNiw2ICs2LDggQEAgUEFTUyBjb25zb2xlIG5hbWVzcGFjZTogcHJv
cGVydHkgZGVzY3JpcAogUEFTUyBjb25zb2xlIG5hbWVzcGFjZTogW1tFeHRlbnNpYmxlXV0gaXMg
dHJ1ZQogUEFTUyBjb25zb2xlIG5hbWVzcGFjZTogW1tQcm90b3R5cGVdXSBpcyBPYmplY3QucHJv
dG90eXBlCiBQQVNTIGNvbnNvbGUgbmFtZXNwYWNlOiB0eXBlb2YgaXMgIm9iamVjdCIKK1BBU1Mg
Y29uc29sZSBuYW1lc3BhY2U6IGhhcyBubyBsZW5ndGggcHJvcGVydHkKK1BBU1MgY29uc29sZSBu
YW1lc3BhY2U6IGhhcyBubyBuYW1lIHByb3BlcnR5CiBQQVNTIGNvbnNvbGUgbmFtZXNwYWNlOiBv
cGVyYXRpb24gYXNzZXJ0KG9wdGlvbmFsIGJvb2xlYW4sIGFueS4uLikKIFBBU1MgY29uc29sZSBu
YW1lc3BhY2U6IG9wZXJhdGlvbiBjbGVhcigpCiBQQVNTIGNvbnNvbGUgbmFtZXNwYWNlOiBvcGVy
YXRpb24gZGVidWcoYW55Li4uKQpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jb25zb2xlL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jb25zb2xlL2lkbGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3
NjU5NSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29u
c29sZS9pZGxoYXJuZXNzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC02LDYgKzYsOCBAQCBQQVNTIGNvbnNvbGUgbmFtZXNwYWNlOiBwcm9wZXJ0eSBkZXNjcmlwCiBQ
QVNTIGNvbnNvbGUgbmFtZXNwYWNlOiBbW0V4dGVuc2libGVdXSBpcyB0cnVlCiBQQVNTIGNvbnNv
bGUgbmFtZXNwYWNlOiBbW1Byb3RvdHlwZV1dIGlzIE9iamVjdC5wcm90b3R5cGUKIFBBU1MgY29u
c29sZSBuYW1lc3BhY2U6IHR5cGVvZiBpcyAib2JqZWN0IgorUEFTUyBjb25zb2xlIG5hbWVzcGFj
ZTogaGFzIG5vIGxlbmd0aCBwcm9wZXJ0eQorUEFTUyBjb25zb2xlIG5hbWVzcGFjZTogaGFzIG5v
IG5hbWUgcHJvcGVydHkKIFBBU1MgY29uc29sZSBuYW1lc3BhY2U6IG9wZXJhdGlvbiBhc3NlcnQo
b3B0aW9uYWwgYm9vbGVhbiwgYW55Li4uKQogUEFTUyBjb25zb2xlIG5hbWVzcGFjZTogb3BlcmF0
aW9uIGNsZWFyKCkKIFBBU1MgY29uc29sZSBuYW1lc3BhY2U6IG9wZXJhdGlvbiBkZWJ1Zyhhbnku
Li4pCkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS9DU1MtbmFtZXNwYWNlLW9iamVjdC1jbGFzcy1zdHJpbmctZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzc29tL0NTUy1uYW1lc3BhY2Utb2JqZWN0LWNsYXNzLXN0cmluZy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDI3NjU5NSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tL0NTUy1uYW1lc3BhY2Utb2JqZWN0LWNsYXNzLXN0cmluZy1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAKLUZBSUwgQEB0b1N0cmlu
Z1RhZyBleGlzdHMgb24gdGhlIG5hbWVzcGFjZSBvYmplY3Qgd2l0aCB0aGUgYXBwcm9wcmlhdGUg
ZGVzY3JpcHRvciBhc3NlcnRfb3duX3Byb3BlcnR5OiBleHBlY3RlZCBwcm9wZXJ0eSBzeW1ib2wg
IlN5bWJvbChTeW1ib2wudG9TdHJpbmdUYWcpIiBtaXNzaW5nCi1GQUlMIE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcgYXBwbGllZCB0byB0aGUgbmFtZXNwYWNlIG9iamVjdCBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiW29iamVjdCBDU1NdIiBidXQgZ290ICJmdW5jdGlvbiBDU1MoKSB7XG4gICAg
W25hdGl2ZSBjb2RlXVxufSIKLUZBSUwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyBhcHBsaWVk
IGFmdGVyIG1vZGlmeWluZyB0aGUgbmFtZXNwYWNlIG9iamVjdCdzIEBAdG9TdHJpbmdUYWcgYXNz
ZXJ0X293bl9wcm9wZXJ0eTogUHJlY29uZGl0aW9uOiBAQHRvU3RyaW5nVGFnIG9uIHRoZSBuYW1l
c3BhY2Ugb2JqZWN0IGV4cGVjdGVkIHByb3BlcnR5IHN5bWJvbCAiU3ltYm9sKFN5bWJvbC50b1N0
cmluZ1RhZykiIG1pc3NpbmcKLUZBSUwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyBhcHBsaWVk
IGFmdGVyIGRlbGV0aW5nIEBAdG9TdHJpbmdUYWcgYXNzZXJ0X293bl9wcm9wZXJ0eTogUHJlY29u
ZGl0aW9uOiBAQHRvU3RyaW5nVGFnIG9uIHRoZSBuYW1lc3BhY2Ugb2JqZWN0IGV4cGVjdGVkIHBy
b3BlcnR5IHN5bWJvbCAiU3ltYm9sKFN5bWJvbC50b1N0cmluZ1RhZykiIG1pc3NpbmcKK1BBU1Mg
QEB0b1N0cmluZ1RhZyBleGlzdHMgb24gdGhlIG5hbWVzcGFjZSBvYmplY3Qgd2l0aCB0aGUgYXBw
cm9wcmlhdGUgZGVzY3JpcHRvcgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nIGFwcGxp
ZWQgdG8gdGhlIG5hbWVzcGFjZSBvYmplY3QKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmlu
ZyBhcHBsaWVkIGFmdGVyIG1vZGlmeWluZyB0aGUgbmFtZXNwYWNlIG9iamVjdCdzIEBAdG9TdHJp
bmdUYWcKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyBhcHBsaWVkIGFmdGVyIGRlbGV0
aW5nIEBAdG9TdHJpbmdUYWcKIApJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vaWRsaGFybmVzcy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20vaWRsaGFybmVzcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3NjU5NSkKKysrIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tL2lkbGhhcm5lc3Mt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00MjAsMTAgKzQyMCwxMCBAQCBQQVNTIENT
U1N0eWxlRGVjbGFyYXRpb24gaW50ZXJmYWNlOiBnZXRDCiBQQVNTIENTUyBuYW1lc3BhY2U6IGV4
dGVuZGVkIGF0dHJpYnV0ZXMKIFBBU1MgQ1NTIG5hbWVzcGFjZTogcHJvcGVydHkgZGVzY3JpcHRv
cgogUEFTUyBDU1MgbmFtZXNwYWNlOiBbW0V4dGVuc2libGVdXSBpcyB0cnVlCi1GQUlMIENTUyBu
YW1lc3BhY2U6IFtbUHJvdG90eXBlXV0gaXMgT2JqZWN0LnByb3RvdHlwZSBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgT2JqZWN0XSIgYnV0IGdvdCAoZnVu
Y3Rpb24pIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgW25hdGl2ZSBjb2RlXQotfSIKLUZB
SUwgQ1NTIG5hbWVzcGFjZTogdHlwZW9mIGlzICJvYmplY3QiIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJvYmplY3QiIGJ1dCBnb3QgImZ1bmN0aW9uIgorUEFTUyBDU1MgbmFtZXNwYWNlOiBbW1By
b3RvdHlwZV1dIGlzIE9iamVjdC5wcm90b3R5cGUKK1BBU1MgQ1NTIG5hbWVzcGFjZTogdHlwZW9m
IGlzICJvYmplY3QiCitQQVNTIENTUyBuYW1lc3BhY2U6IGhhcyBubyBsZW5ndGggcHJvcGVydHkK
K1BBU1MgQ1NTIG5hbWVzcGFjZTogaGFzIG5vIG5hbWUgcHJvcGVydHkKIFBBU1MgQ1NTIG5hbWVz
cGFjZTogb3BlcmF0aW9uIGVzY2FwZShDU1NPTVN0cmluZykKIFBBU1MgU1ZHRWxlbWVudCBpbnRl
cmZhY2U6IGF0dHJpYnV0ZSBzdHlsZQogUEFTUyBTVkdFbGVtZW50IGludGVyZmFjZTogc3ZnX2Vs
ZW1lbnQgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdHlsZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUK
SW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3Vy
Y2VzL2lkbGhhcm5lc3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcwkocmV2aXNpb24gMjc2
NTk1KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNv
dXJjZXMvaWRsaGFybmVzcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMzQ4Myw2ICszNDgzLDIyIEBA
IElkbE5hbWVzcGFjZS5wcm90b3R5cGUudGVzdF9zZWxmID0gZnVuY3QKICAgICBzdWJzZXRUZXN0
QnlLZXkodGhpcy5uYW1lLCB0ZXN0LCAoKSA9PiB7CiAgICAgICAgIGFzc2VydF9lcXVhbHModHlw
ZW9mIG5hbWVzcGFjZU9iamVjdCwgIm9iamVjdCIpOwogICAgIH0sIGAke3RoaXMubmFtZX0gbmFt
ZXNwYWNlOiB0eXBlb2YgaXMgIm9iamVjdCJgKTsKKworICAgIHN1YnNldFRlc3RCeUtleSh0aGlz
Lm5hbWUsIHRlc3QsICgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAg
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobmFtZXNwYWNlT2JqZWN0LCAibGVuZ3Ro
IiksCisgICAgICAgICAgICB1bmRlZmluZWQsCisgICAgICAgICAgICAibGVuZ3RoIHByb3BlcnR5
IG11c3QgYmUgdW5kZWZpbmVkIgorICAgICAgICApOworICAgIH0sIGAke3RoaXMubmFtZX0gbmFt
ZXNwYWNlOiBoYXMgbm8gbGVuZ3RoIHByb3BlcnR5YCk7CisKKyAgICBzdWJzZXRUZXN0QnlLZXko
dGhpcy5uYW1lLCB0ZXN0LCAoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAg
ICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG5hbWVzcGFjZU9iamVjdCwgIm5h
bWUiKSwKKyAgICAgICAgICAgIHVuZGVmaW5lZCwKKyAgICAgICAgICAgICJuYW1lIHByb3BlcnR5
IG11c3QgYmUgdW5kZWZpbmVkIgorICAgICAgICApOworICAgIH0sIGAke3RoaXMubmFtZX0gbmFt
ZXNwYWNlOiBoYXMgbm8gbmFtZSBwcm9wZXJ0eWApOwogfTsKIAogSWRsTmFtZXNwYWNlLnByb3Rv
dHlwZS50ZXN0ID0gZnVuY3Rpb24gKCkKSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2FzbS9qc2FwaS9pZGxoYXJuZXNzLmFueS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93YXNtL2pzYXBpL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjc2NTk1
KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pz
YXBpL2lkbGhhcm5lc3MuYW55LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNiw2ICs2
LDggQEAgUEFTUyBXZWJBc3NlbWJseSBuYW1lc3BhY2U6IHByb3BlcnR5IGRlcwogUEFTUyBXZWJB
c3NlbWJseSBuYW1lc3BhY2U6IFtbRXh0ZW5zaWJsZV1dIGlzIHRydWUKIFBBU1MgV2ViQXNzZW1i
bHkgbmFtZXNwYWNlOiBbW1Byb3RvdHlwZV1dIGlzIE9iamVjdC5wcm90b3R5cGUKIFBBU1MgV2Vi
QXNzZW1ibHkgbmFtZXNwYWNlOiB0eXBlb2YgaXMgIm9iamVjdCIKK1BBU1MgV2ViQXNzZW1ibHkg
bmFtZXNwYWNlOiBoYXMgbm8gbGVuZ3RoIHByb3BlcnR5CitQQVNTIFdlYkFzc2VtYmx5IG5hbWVz
cGFjZTogaGFzIG5vIG5hbWUgcHJvcGVydHkKIFBBU1MgV2ViQXNzZW1ibHkgbmFtZXNwYWNlOiBv
cGVyYXRpb24gdmFsaWRhdGUoQnVmZmVyU291cmNlKQogUEFTUyBXZWJBc3NlbWJseSBuYW1lc3Bh
Y2U6IG9wZXJhdGlvbiBjb21waWxlKEJ1ZmZlclNvdXJjZSkKIFBBU1MgV2ViQXNzZW1ibHkgbmFt
ZXNwYWNlOiBvcGVyYXRpb24gaW5zdGFudGlhdGUoQnVmZmVyU291cmNlLCBvcHRpb25hbCBvYmpl
Y3QpCkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dh
c20vanNhcGkvaWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dhc20vanNhcGkv
aWRsaGFybmVzcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjc2NTk1KQorKysg
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93YXNtL2pzYXBpL2lk
bGhhcm5lc3MuYW55Lndvcmtlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTYsNiAr
Niw4IEBAIFBBU1MgV2ViQXNzZW1ibHkgbmFtZXNwYWNlOiBwcm9wZXJ0eSBkZXMKIFBBU1MgV2Vi
QXNzZW1ibHkgbmFtZXNwYWNlOiBbW0V4dGVuc2libGVdXSBpcyB0cnVlCiBQQVNTIFdlYkFzc2Vt
Ymx5IG5hbWVzcGFjZTogW1tQcm90b3R5cGVdXSBpcyBPYmplY3QucHJvdG90eXBlCiBQQVNTIFdl
YkFzc2VtYmx5IG5hbWVzcGFjZTogdHlwZW9mIGlzICJvYmplY3QiCitQQVNTIFdlYkFzc2VtYmx5
IG5hbWVzcGFjZTogaGFzIG5vIGxlbmd0aCBwcm9wZXJ0eQorUEFTUyBXZWJBc3NlbWJseSBuYW1l
c3BhY2U6IGhhcyBubyBuYW1lIHByb3BlcnR5CiBQQVNTIFdlYkFzc2VtYmx5IG5hbWVzcGFjZTog
b3BlcmF0aW9uIHZhbGlkYXRlKEJ1ZmZlclNvdXJjZSkKIFBBU1MgV2ViQXNzZW1ibHkgbmFtZXNw
YWNlOiBvcGVyYXRpb24gY29tcGlsZShCdWZmZXJTb3VyY2UpCiBQQVNTIFdlYkFzc2VtYmx5IG5h
bWVzcGFjZTogb3BlcmF0aW9uIGluc3RhbnRpYXRlKEJ1ZmZlclNvdXJjZSwgb3B0aW9uYWwgb2Jq
ZWN0KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>