<?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>186416</bug_id>
          
          <creation_ts>2018-06-07 16:12:04 -0700</creation_ts>
          <short_desc>Add support for dumping GC heap snapshots, and a viewer</short_desc>
          <delta_ts>2018-08-23 21:11:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>joepeck</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1431063</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-06-07 16:12:04 -0700</bug_when>
    <thetext>Add support for dumping GC heap snapshots, and a viewer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431108</commentid>
    <comment_count>1</comment_count>
      <attachid>342231</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-06-07 19:15:52 -0700</bug_when>
    <thetext>Created attachment 342231
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431109</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-07 19:17:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/40920810&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431110</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-06-07 19:18:55 -0700</bug_when>
    <thetext>Attachment 342231 did not pass style-queue:


ERROR: Source/JavaScriptCore/ChangeLog:10:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/JavaScriptCore/ChangeLog:16:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/JavaScriptCore/ChangeLog:17:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/JavaScriptCore/ChangeLog:18:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/JavaScriptCore/ChangeLog:19:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/JavaScriptCore/ChangeLog:20:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/JavaScriptCore/ChangeLog:21:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/JavaScriptCore/ChangeLog:22:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/JavaScriptCore/ChangeLog:23:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/JavaScriptCore/ChangeLog:24:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/JavaScriptCore/ChangeLog:25:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/JavaScriptCore/ChangeLog:26:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/JavaScriptCore/ChangeLog:27:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/WebCore/ChangeLog:10:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 14 in 174 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1432896</commentid>
    <comment_count>4</comment_count>
      <attachid>342231</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-06-13 18:26:59 -0700</bug_when>
    <thetext>Comment on attachment 342231
Patch

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

Will continue to look at this tomorrow, just one nit before I forget

&gt; Source/WebCore/bindings/js/GCController.cpp:163
&gt; +    sanitizeStackForVM(&amp;vm);
&gt; +
&gt; +    String jsonData;
&gt; +    {
&gt; +        DeferGCForAWhile deferGC(vm.heap);
&gt; +
&gt; +        HeapSnapshotBuilder snapshotBuilder(vm.ensureHeapProfiler(), HeapSnapshotBuilder::SnapshotType::GCDebuggingSnapshot);
&gt; +        snapshotBuilder.buildSnapshot();
&gt; +
&gt; +        jsonData = snapshotBuilder.json();
&gt; +    }

nit: Seems like this could be a method on VM that returns to you a String</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446702</commentid>
    <comment_count>5</comment_count>
      <attachid>342231</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-07-31 16:31:05 -0700</bug_when>
    <thetext>Comment on attachment 342231
Patch

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

This looks good to me. The HeapSnapshot JSON modifications are well contained, but I&apos;d like to see the extra work only performed during GCDebugging snapshots. I&apos;d suggest someone who understands the WebCore opaque roots process more give this a look over.

If (1) you&apos;ve found this useful (2) and think you&apos;ll use it again in the future then I think its worth landing. r=me

&gt; Source/JavaScriptCore/ChangeLog:16
&gt; +		SlotVisitor maintains a RootMarkReason (via SetRootMarkReasonScope) that allows

Weird indentation

&gt; Source/JavaScriptCore/heap/HeapSnapshotBuilder.cpp:57
&gt; +    if (m_snapshotType == SnapshotType::GCDebuggingSnapshot)

This deserves the comment that was in the ChangeLog. GCDebugging snapshots are always full and aren&apos;t diffed, so we can clear previous snapshots and take 1 full snapshot.

&gt; Source/JavaScriptCore/heap/HeapSnapshotBuilder.cpp:98
&gt; +    if (!from) {

Seems like you can only collect rootData for GCDebuggingSnapshot and I&apos;d probably flip these so that in the normal path this is 1 check:

    if (m_snapshotType == SnapshotType::GCDebuggingSnapshot) {
        ...
    }

&gt; Source/JavaScriptCore/heap/HeapSnapshotBuilder.cpp:140
&gt; +void HeapSnapshotBuilder::setOpaqueRootReachabilityReasonForCell(JSCell* cell, const char* reason)

Likewise you could early return if not GCDebuggingSnapshot.

&gt; Source/JavaScriptCore/heap/HeapSnapshotBuilder.cpp:155
&gt; +bool HeapSnapshotBuilder::previousSnapshotHasNodeForCell(JSCell* cell, NodeIdentifier&amp; identifier)

Better name!

&gt; Source/JavaScriptCore/heap/HeapSnapshotBuilder.cpp:202
&gt; +//      ],
&gt;  //   }

A bunch of these notes don&apos;t match up. I see I had already forgotten nodeClassnameIndex myself...

How about just including a 2nd section for the debugging snapshot? The intermixed is getting a little messy:

    {
        &quot;version&quot;: 1.0,
        &quot;type&quot;: &quot;Inspector&quot;,
        ...
    }

    {
        &quot;version&quot;: 1.0,
        &quot;type&quot;: &quot;GCDebugging&quot;,
        ...
    }

&gt; Source/JavaScriptCore/heap/HeapSnapshotBuilder.cpp:305
&gt; +    if (cell-&gt;isString())
&gt; +        return emptyString(); // FIXME: get part of string.

Interesting idea. I suppose you could substring the first part if you wanted. Depends on how often the string part reveals something that the rest of the object tree doesn&apos;t reveal.

&gt; Source/JavaScriptCore/heap/HeapSnapshotBuilder.cpp:333
&gt; +    labelIndexes.set(&quot;&quot;, 0);

Nit: Maybe emptyString() instead of &quot;&quot;?

&gt; Source/JavaScriptCore/heap/HeapSnapshotBuilder.cpp:361
&gt; +            String nodeLabel;

I&apos;d want to see much of this work being done inside of an `SnapshotType::GCDebuggingSnapshot` block.

Building and sending this JSON already takes a bunch of memory. I&apos;d hate for this debugging only data to cause problems during an Inspector snapshot where it ends up not being used. Worst case would be a Jetsam when building the JSON which we&apos;ve seen in some cases since the entire JSON gets built in one string. I&apos;ve had ideas to split it out, and essentially stream it, to reduce peak memory consumption. But also this introduces work on each node, so a graph with a lot of nodes gets hit with more overhead.

&gt; Source/JavaScriptCore/heap/HeapSnapshotBuilder.cpp:390
&gt; +        // &lt;nodeId&gt;, &lt;sizeInBytes&gt;, &lt;nodeClassNameIndex&gt;, &lt;internal&gt;, [&lt;labelIndex&gt;, &lt;cellEddress&gt;, &lt;wrappedEddress&gt;]

Typo: &quot;Eddress&quot; =&gt; &quot;Address&quot;

&gt; Source/JavaScriptCore/heap/HeapSnapshotBuilder.cpp:586
&gt; +            // Maybe we should just always encode the root names.

I don&apos;t like Maybe comments. It seems you&apos;ve already done deduplication so I think it&apos;s good to just remove the comment. Deduplication saves a lot of space in JSON, and you&apos;ve already done it!

&gt; Source/JavaScriptCore/heap/HeapSnapshotBuilder.cpp:609
&gt; +    }
&gt; +
&gt; +    if (m_snapshotType == SnapshotType::GCDebuggingSnapshot) {

No need to close and reopen the same if block.

&gt; Source/JavaScriptCore/heap/WeakHandleOwner.h:37
&gt; +    // reason will only be non-null when generating a debug GC heap snapshot.

Comment sentences start with a capital so this looks weird. Maybe &quot;The `reason` parameter will ...&quot;

&gt; Source/WebCore/bindings/js/GCController.cpp:64
&gt; +        PAL::registerNotifyCallback(&quot;com.apple.WebKit.dumpGCHeap&quot;, [] {
&gt; +            GCController::singleton().dumpHeap();
&gt; +        });

I can&apos;t help but think we might want to protect against someone just spamming this notification at Safari&apos;s Web Content Processes.

I can just imagine right now a scenario where someone takes an Inspector Heap Snapshot, and then something triggers this notification, which clears the previous backend snapshots. This would break the web inspector (we shouldn&apos;t crash, we should just error with each command). Thats a pretty unlikely scenario, but just another reason to consider isolating this surface.

&gt; Source/WebCore/bindings/js/GCController.cpp:145
&gt; +    FileSystem::PlatformFileHandle fileHandle;
&gt; +    String tempFilePath = FileSystem::openTemporaryFile(ASCIILiteral(&quot;GCHeap&quot;), fileHandle);
&gt; +    if (!FileSystem::isHandleValid(fileHandle)) {

This is unique per-WebContentProcess / WebKitLegacy process. It might be nice if it had the PID in the name but I suppose the WTFLogAlways will include that?

&gt; Source/WebCore/bindings/js/GCController.cpp:157
&gt; +        DeferGCForAWhile deferGC(vm.heap);

So HeapSnapshotBuilder does its own GC, and json() does its own defer. Does this defer do anything vital in addition to those? If so I&apos;d like to see a comment, and maybe we should be doing the same at the other builder sites? Otherwise this DeferGC seems very sketchy (especially given performing snapshot does a GC!)

&gt; Source/WebCore/bindings/js/JSDOMTokenListCustom.cpp:36
&gt; +void JSDOMTokenList::heapSnapshot(JSCell* cell, JSC::HeapSnapshotBuilder&amp; builder)

We already have JSDocument below (which doesn&apos;t even include a &quot;doc&quot; prefix). What is JSDOMTokenList and why does it get such special treatment?

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:4555
&gt; +            push(@implContent, &quot;     }\n&quot;);

Nit: Incorrect leading whitespace in the generated content string.

&gt; Source/WebCore/html/DOMTokenList.idl:29
&gt; +    CustomHeapSnapshot

Add that trailing comma! Makes the next diff so nice and clean. Also it looks like some effort was made to make some of these alphabetical order. Up to you I guess if you think thats a worthwhile goal.

&gt; Tools/GCHeapInspector/gc-heap-inspector.html:26
&gt; +            top: 20px;            right: 20px;

Style: 1 property per line

&gt; Tools/GCHeapInspector/gc-heap-inspector.html:156
&gt; +    &lt;script&gt;
&gt; +
&gt; +    &lt;/script&gt;

Heh

&gt; Tools/GCHeapInspector/heap-analysis/HeapSnapshot.js:97
&gt; +        console.assert(type === &quot;GCDebugging&quot;, &quot;Expect a GCDebugging-type snapshot&quot;);

Can we do this in:
Source/WebInspectorUI/UserInterface/Workers/HeapSnapshot/HeapSnapshot.js

There we would want to be backwards compatible and do:

    console.assert(!type || type === &quot;Inspector, &quot;Inspect an Inspector Heap Snapshot&quot;);

&gt; Tools/GCHeapInspector/heap-analysis/HeapSnapshot.js:167
&gt; +        let {liveSize, categories} = HeapSnapshot.updateCategoriesAndMetadata(this);
&gt; +        this._liveSize = liveSize;
&gt; +        this._categories = categories;

You could also remove this stuff. Its just processing everything to get some displayable metadata you probably don&apos;t use.

&gt; Tools/GCHeapInspector/heap-analysis/HeapSnapshot.js:851
&gt; +HeapSnapshotDiff = class HeapSnapshotDiff

You could remove this as well, you don&apos;t use it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446712</commentid>
    <comment_count>6</comment_count>
      <attachid>342231</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-07-31 16:45:45 -0700</bug_when>
    <thetext>Comment on attachment 342231
Patch

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

&gt; Source/WebCore/bindings/js/GCController.cpp:170
&gt; +    WTFLogAlways(&quot;Dumped GC heap to %s&quot;, tempFilePath.utf8().data());

Oh, we should probably clear the snapshot at this point. Nothing is going to go and access this, which is at least (sizeof(void*)*NumberOfNodesInHeap) bytes:

    vm.ensureHeapProfiler().clearSnapshots();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453353</commentid>
    <comment_count>7</comment_count>
      <attachid>347981</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-23 17:54:58 -0700</bug_when>
    <thetext>Created attachment 347981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453354</commentid>
    <comment_count>8</comment_count>
      <attachid>347981</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-08-23 17:59:04 -0700</bug_when>
    <thetext>Comment on attachment 347981
Patch

Attachment 347981 did not pass bindings-ews (mac):
Output: https://webkit-queues.webkit.org/results/8965948

New failing tests:
(JS) JSTestCallTracer.cpp
(JS) JSTestCEReactions.cpp
(JS) JSTestCEReactionsStringifier.cpp
(JS) JSTestClassWithJSBuiltinConstructor.cpp
(JS) JSTestCustomConstructorWithNoInterfaceObject.cpp
(JS) JSTestActiveDOMObject.cpp
(JS) JSTestDOMJIT.cpp
(JS) JSTestEnabledBySetting.cpp
(JS) JSTestEventConstructor.cpp
(JS) JSTestEventTarget.cpp
(JS) JSTestException.cpp
(JS) JSTestGenerateIsReachable.cpp
(JS) JSTestGlobalObject.cpp
(JS) JSTestIndexedSetterNoIdentifier.cpp
(JS) JSTestIndexedSetterThrowingException.cpp
(JS) JSTestIndexedSetterWithIdentifier.cpp
(JS) JSTestInterface.cpp
(JS) JSTestInterfaceLeadingUnderscore.cpp
(JS) JSTestIterable.cpp
(JS) JSMapLike.cpp
(JS) JSTestMediaQueryListListener.cpp
(JS) JSTestNamedAndIndexedSetterNoIdentifier.cpp
(JS) JSTestNamedAndIndexedSetterThrowingException.cpp
(JS) JSTestNamedAndIndexedSetterWithIdentifier.cpp
(JS) JSTestNamedConstructor.cpp
(JS) JSTestNamedDeleterNoIdentifier.cpp
(JS) JSTestNamedDeleterThrowingException.cpp
(JS) JSTestNamedDeleterWithIdentifier.cpp
(JS) JSTestNamedDeleterWithIndexedGetter.cpp
(JS) JSTestNamedGetterCallWith.cpp
(JS) JSTestNamedGetterNoIdentifier.cpp
(JS) JSTestNamedGetterWithIdentifier.cpp
(JS) JSTestNamedSetterNoIdentifier.cpp
(JS) JSTestNamedSetterThrowingException.cpp
(JS) JSTestNamedSetterWithIdentifier.cpp
(JS) JSTestNamedSetterWithIndexedGetter.cpp
(JS) JSTestNamedSetterWithIndexedGetterAndSetter.cpp
(JS) JSTestNamedSetterWithOverrideBuiltins.cpp
(JS) JSTestNamedSetterWithUnforgableProperties.cpp
(JS) JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp
(JS) JSTestNode.cpp
(JS) JSTestObj.cpp
(JS) JSTestOverloadedConstructors.cpp
(JS) JSTestOverloadedConstructorsWithSequence.cpp
(JS) JSTestOverrideBuiltins.cpp
(JS) JSTestPluginInterface.cpp
(JS) JSTestPromiseRejectionEvent.cpp
(JS) JSReadOnlyMapLike.cpp
(JS) JSInterfaceName.cpp
(JS) JSTestSerialization.cpp
(JS) JSTestSerializationIndirectInheritance.cpp
(JS) JSTestSerializationInherit.cpp
(JS) JSTestSerializationInheritFinal.cpp
(JS) JSTestSerializedScriptValueInterface.cpp
(JS) JSTestStringifier.cpp
(JS) JSTestStringifierAnonymousOperation.cpp
(JS) JSTestStringifierNamedOperation.cpp
(JS) JSTestStringifierOperationImplementedAs.cpp
(JS) JSTestStringifierOperationNamedToString.cpp
(JS) JSTestStringifierReadOnlyAttribute.cpp
(JS) JSTestStringifierReadWriteAttribute.cpp
(JS) JSTestTypedefs.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453361</commentid>
    <comment_count>9</comment_count>
      <attachid>347982</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-23 18:06:32 -0700</bug_when>
    <thetext>Created attachment 347982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453379</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-23 21:11:01 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/235271/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342231</attachid>
            <date>2018-06-07 19:15:52 -0700</date>
            <delta_ts>2018-08-23 17:54:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186416-20180607191551.patch</filename>
            <type>text/plain</type>
            <size>527086</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
ZmJmOTZhZWFiMWU3OTk3MzQyZjdkNGY2ZWMzYjgxZTBlNTgzODNkLi5mMzUyMGI5OWE0NTQxZTgw
OGI0ZjIwMTI3NWY4NDI3ZTFmNDliZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NCBAQAorMjAxOC0wNi0wNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgZHVtcGluZyBHQyBoZWFwIHNuYXBzaG90
cywgYW5kIGEgdmlld2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODY0MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNYWtlIGEgd2F5IHRvIGR1bXAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIEdDIGhlYXAg
dGhhdCBpcyB1c2VmdWwgZm9yIGxvb2tpbmcgZm9yIGxlYWtlZAorICAgICAgICBvciBhYmFuZG9u
ZWQgb2JqZWN0cy4gVGhpcyBkdW1wIGlzIG9idGFpbmVkIHZpYToKKyAgICAgICAgCW5vdGlmeXV0
aWwgLXAgY29tLmFwcGxlLldlYktpdC5kdW1wR0NIZWFwCisgICAgICAgIHdoaWNoIHdyaXRlcyBh
IEpTT04gZmlsZSB0byAvdG1wIHdoaWNoIGNhbiB0aGVuIGJlIGxvYWRlZCBpbnRvIHRoZSB2aWV3
ZXIgaW4gVG9vbHMvR0NIZWFwSW5zcGVjdG9yLgorICAgICAgICAKKyAgICAgICAgVGhpcyBsZXZl
cmFnZXMgdGhlIGhlYXAgc25hcHNob3QgdXNlZCBieSBXZWIgSW5zcGVjdG9yLCBhZGRpbmcgYW4g
YWx0ZXJuYXRlIGZvcm1hdCBmb3IKKyAgICAgICAgdGhlIHNuYXBzaG90IEpTT04gdGhhdCBhZGRz
IGFkZGl0aW9uYWwgZGF0YSBhYm91dCBvYmplY3RzIGFuZCB3aHkgdGhleSBhcmUgR0Mgcm9vdHMu
CisKKwkJU2xvdFZpc2l0b3IgbWFpbnRhaW5zIGEgUm9vdE1hcmtSZWFzb24gKHZpYSBTZXRSb290
TWFya1JlYXNvblNjb3BlKSB0aGF0IGFsbG93cworCQl0aGUgSGVhcFNuYXBzaG90QnVpbGRlciB0
byBrZWVwIHRyYWNrIG9mIHdoeSBhIEpTQ2VsbCB3YXMgdHJlYXRlZCBhcyBhIEdDIHJvb3QuIEZv
cgorCQlvYmplY3RzIHZpc2l0ZWQgdmlhIG9wYXF1ZSByb290cywgd2UgcmVjb3JkIHRoZSByZWFz
b24gd2h5IHZpYSBhIG5ldyBvdXQgcGFyYW0gdG8KKwkJaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMoKS4KKwkJCisJCUhlYXBTbmFwc2hvdEJ1aWxkZXIgaXMgZW5oYW5jZWQgdG8gcHJvZHVjZSBH
Q0RlYnVnZ2luZ1NuYXBzaG90IEpTT04gb3V0cHV0LiBUaGlzIGNvbnRhaW5zCisJCWFkZGl0aW9u
YWwgaW5mb3JtYXRpb24gaW5jbHVkaW5nIHRoZSBhZGRyZXNzIG9mIHRoZSBKU0NlbGwqIGFuZCB0
aGUgd3JhcHBlZCBvYmplY3QgKGZvcgorCQlKU0RPTVdyYXBwZXJzKSwgdGhlIHJvb3QgcmVhc29u
cywgYW5kIGZvciBzb21lIG9iamVjdHMgbGlrZSBKU0RvY3VtZW50IGEgbGFiZWwgd2hpY2ggY2Fu
CisJCWJlIHRoZSBkb2N1bWVudCBVUkwuCisJCQorCQlHQ0RlYnVnZ2luZ1NuYXBzaG90cyBhcmUg
YWx3YXlzIGZ1bGwgc25hcHNob3RzIChwcmV2aW91cyBzbmFwc2hvdHMgYXJlIG5vdCBrZXB0IGFy
b3VuZCkuCisJCisgICAgICAgICogQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbToKKyAgICAgICAg
KEpTQVBJV3JhcHBlck9iamVjdEhhbmRsZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyk6CisgICAgICAgICogQVBJL0pTTWFuYWdlZFZhbHVlLm1tOgorICAgICAgICAoSlNNYW5hZ2Vk
VmFsdWVIYW5kbGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAq
IGhlYXAvQ29uc2VydmF0aXZlUm9vdHMuaDoKKyAgICAgICAgKEpTQzo6Q29uc2VydmF0aXZlUm9v
dHM6OnNpemUgY29uc3QpOgorICAgICAgICAoSlNDOjpDb25zZXJ2YXRpdmVSb290czo6c2l6ZSk6
IERlbGV0ZWQuCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6
YWRkQ29yZUNvbnN0cmFpbnRzKToKKyAgICAgICAgKiBoZWFwL0hlYXBTbmFwc2hvdEJ1aWxkZXIu
Y3BwOgorICAgICAgICAoSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyOjpnZXROZXh0T2JqZWN0SWRl
bnRpZmllcik6CisgICAgICAgIChKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXI6OkhlYXBTbmFwc2hv
dEJ1aWxkZXIpOgorICAgICAgICAoSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyOjpidWlsZFNuYXBz
aG90KToKKyAgICAgICAgKEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlcjo6YXBwZW5kTm9kZSk6Cisg
ICAgICAgIChKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXI6OmFwcGVuZEVkZ2UpOgorICAgICAgICAo
SlNDOjpIZWFwU25hcHNob3RCdWlsZGVyOjpzZXRPcGFxdWVSb290UmVhY2hhYmlsaXR5UmVhc29u
Rm9yQ2VsbCk6CisgICAgICAgIChKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXI6OnNldFdyYXBwZWRP
YmplY3RGb3JDZWxsKToKKyAgICAgICAgKEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlcjo6cHJldmlv
dXNTbmFwc2hvdEhhc05vZGVGb3JDZWxsKToKKyAgICAgICAgKEpTQzo6c25hcHNob3RUeXBlVG9T
dHJpbmcpOgorICAgICAgICAoSlNDOjpyb290VHlwZVRvU3RyaW5nKToKKyAgICAgICAgKEpTQzo6
SGVhcFNuYXBzaG90QnVpbGRlcjo6c2V0TGFiZWxGb3JDZWxsKToKKyAgICAgICAgKEpTQzo6SGVh
cFNuYXBzaG90QnVpbGRlcjo6ZGVzY3JpcHRpb25Gb3JDZWxsIGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6SGVhcFNuYXBzaG90QnVpbGRlcjo6anNvbik6CisgICAgICAgIChKU0M6OkhlYXBTbmFwc2hv
dEJ1aWxkZXI6On5IZWFwU25hcHNob3RCdWlsZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
SGVhcFNuYXBzaG90QnVpbGRlcjo6aGFzRXhpc3RpbmdOb2RlRm9yQ2VsbCk6IERlbGV0ZWQuCisg
ICAgICAgICogaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmg6CisgICAgICAgICogaGVhcC9TbG90
VmlzaXRvci5jcHA6CisgICAgICAgIChKU0M6OlNsb3RWaXNpdG9yOjphcHBlbmRTbG93KToKKyAg
ICAgICAgKiBoZWFwL1Nsb3RWaXNpdG9yLmg6CisgICAgICAgIChKU0M6OlNsb3RWaXNpdG9yOjpo
ZWFwU25hcHNob3RCdWlsZGVyIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U2xvdFZpc2l0b3I6OnJv
b3RNYXJrUmVhc29uIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U2xvdFZpc2l0b3I6OnNldFJvb3RN
YXJrUmVhc29uKToKKyAgICAgICAgKEpTQzo6U2V0Um9vdE1hcmtSZWFzb25TY29wZTo6U2V0Um9v
dE1hcmtSZWFzb25TY29wZSk6CisgICAgICAgIChKU0M6OlNldFJvb3RNYXJrUmVhc29uU2NvcGU6
On5TZXRSb290TWFya1JlYXNvblNjb3BlKToKKyAgICAgICAgKiBoZWFwL1dlYWtCbG9jay5jcHA6
CisgICAgICAgIChKU0M6OldlYWtCbG9jazo6c3BlY2lhbGl6ZWRWaXNpdCk6CisgICAgICAgICog
aGVhcC9XZWFrSGFuZGxlT3duZXIuY3BwOgorICAgICAgICAoSlNDOjpXZWFrSGFuZGxlT3duZXI6
OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBoZWFwL1dlYWtIYW5kbGVP
d25lci5oOgorICAgICAgICAqIHJ1bnRpbWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoSlNDOjpTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZl
ck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogcnVudGltZS9T
aW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5oOgorICAgICAgICAqIHRvb2xzL0pTRG9sbGFyVk0u
Y3BwOgorCiAyMDE4LTA2LTA0ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIEpTTG9jayBzaG91bGQgY2xlYXIgbGFzdCBleGNlcHRpb24gd2hlbiByZWxl
YXNpbmcgdGhlIGxvY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiMWJiOTA1MDc2NGFmMTAyNjhhMWY1MDg5NzI4
M2E1MGM2OTMwNTliLi45MmYxYTM2YzUxNzk4Y2E3NjI2NzFlYmYyNDI1NGFkOWI2MzdhMWQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzE4IEBACisyMDE4LTA2LTA3ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBkdW1waW5n
IEdDIGhlYXAgc25hcHNob3RzLCBhbmQgYSB2aWV3ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjQxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgYSB3YXkgdG8gZHVtcCBpbmZvcm1hdGlvbiBh
Ym91dCB0aGUgR0MgaGVhcCB0aGF0IGlzIHVzZWZ1bCBmb3IgbG9va2luZyBmb3IgbGVha2VkCisg
ICAgICAgIG9yIGFiYW5kb25lZCBvYmplY3RzLiBUaGlzIGR1bXAgaXMgb2J0YWluZWQgdmlhOgor
ICAgICAgICAJbm90aWZ5dXRpbCAtcCBjb20uYXBwbGUuV2ViS2l0LmR1bXBHQ0hlYXAKKyAgICAg
ICAgd2hpY2ggd3JpdGVzIGEgSlNPTiBmaWxlIHRvIC90bXAgd2hpY2ggY2FuIHRoZW4gYmUgbG9h
ZGVkIGludG8gdGhlIHZpZXdlciBpbiBUb29scy9HQ0hlYXBJbnNwZWN0b3IuCisgICAgICAgIAor
ICAgICAgICBUaGlzIGxldmVyYWdlcyB0aGUgaGVhcCBzbmFwc2hvdCB1c2VkIGJ5IFdlYiBJbnNw
ZWN0b3IsIGFkZGluZyBhbiBhbHRlcm5hdGUgZm9ybWF0IGZvcgorICAgICAgICB0aGUgc25hcHNo
b3QgSlNPTiB0aGF0IGFkZHMgYWRkaXRpb25hbCBkYXRhIGFib3V0IG9iamVjdHMgYW5kIHdoeSB0
aGV5IGFyZSBHQyByb290cy4KKyAgICAgICAgCisgICAgICAgIFRoZSBnZW5lcmF0ZWQgYmluZGlu
Z3MgY29kZSBpcyBjaGFuZ2VkIHRvIGluY2x1ZGUgdGhlIG91dHB1dCByb290IHJlYXNvbiBmcm9t
IGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKCksCisgICAgICAgIGFuZCB0byBpbXBsZW1lbnQg
aGVhcFNuYXBzaG90KCkgd2hpY2ggcHJvdmlkZXMgdGhlIGFkZHJlc3Mgb2YgdGhlIHdyYXBwZWQg
b2JqZWN0LiBBIG5ldyBJREwgYXR0cmlidXRlLAorICAgICAgICBDdXN0b21IZWFwU25hcHNob3Qs
IGlzIHVzZWQgdG8gYWxsb3cgY3VzdG9tIGhlYXBTbmFwc2hvdCgpIGltcGxlbWVudGF0aW9ucyBm
b3IgY2xhc3NlcyBsaWtlIEpTRG9jdW1lbnQKKyAgICAgICAgdGhhdCBuZWVkIHRvIGRlY29yYXRl
IHRoZSBoZWFwIHNuYXBzaG90IGNlbGwgZGF0YSB3aXRoIHRoaW5ncyBsaWtlIHRoZSBkb2N1bWVu
dCBVUkwuCisgICAgICAgIAorICAgICAgICBHQ0NvbnRyb2xsZXIgcmVnaXN0ZXJzIGEgbm90aWZ5
dXRpbCBjYWxsYmFjayB3aGljaCBnYXRoZXJzIHRoZSBkZWJ1ZyBoZWFwIHNuYXBzaG90LCBhbmQg
ZHVtcHMgaXQKKyAgICAgICAgdG8gYSBmaWxlIGluIC90bXAuIFRoZSBmaWxlIHBhdGggaXMgcHJp
bnRlZCBvdXQgdG8gdGhlIHN5c3RlbSBsb2cuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmlu
ZGluZ3MvanMvRE9NR0NPdXRwdXRDb25zdHJhaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TUdDT3V0cHV0Q29uc3RyYWludDo6ZXhlY3V0ZUltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0dDQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHQ0NvbnRyb2xsZXI6OkdDQ29u
dHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpHQ0NvbnRyb2xsZXI6OmR1bXBIZWFwKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ1NTUnVsZUxp
c3RPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTQ2FsbGJhY2tEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ2FsbGJhY2tEYXRh
V2Vhazo6V2Vha093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Ub2tlbkxpc3RDdXN0b20uY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcC4K
KyAgICAgICAgKFdlYkNvcmU6OkpTRE9NVG9rZW5MaXN0OjpoZWFwU25hcHNob3QpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNE
T01XaW5kb3c6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNEZXByZWNh
dGVkQ1NTT01WYWx1ZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RlcHJlY2F0ZWRD
U1NPTVZhbHVlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRG9j
dW1lbnQ6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MQ29sbGVj
dGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxDb2xsZWN0aW9uOjpoZWFw
U25hcHNob3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU011dGF0aW9uT2JzZXJ2ZXJPd25lcjo6aXNSZWFj
aGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1JlYWNoYWJsZUZyb21ET00pOgorICAgICAgICAo
V2ViQ29yZTo6SlNOb2RlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkpTTm9kZUxpc3RPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU1RleHRUcmFja0N1ZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1RleHRUcmFj
a0N1ZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29y
ZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVUeXBl
ZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZlck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyk6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9s
bGVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06Cisg
ICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9u
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbjoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTSW50ZXJmYWNlTmFtZTo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdl
YkNvcmU6OkpTSW50ZXJmYWNlTmFtZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTSW50ZXJmYWNlTmFtZS5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExpa2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNNYXBMaWtlOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6
SlNNYXBMaWtlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmg6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkpTUmVhZE9ubHlNYXBMaWtlOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNS
ZWFkT25seU1hcExpa2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5TWFwTGlrZS5oOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpoZWFwU25hcHNob3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNUZXN0QWN0aXZlRE9NT2JqZWN0T3duZXI6OmlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0QWN0aXZlRE9NT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdENFUmVhY3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENFUmVhY3Rp
b25zOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Q0VSZWFjdGlvbnNP
d25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5oOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXI6OmhlYXBTbmFwc2hvdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyT3duZXI6OmlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5oOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
VGVzdENhbGxUcmFjZXI6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RD
YWxsVHJhY2VyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1
Y3Rvcjo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENsYXNzV2l0aEpT
QnVpbHRpbkNvbnN0cnVjdG9yT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGlu
Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3Q6OmhlYXBT
bmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhO
b0ludGVyZmFjZU9iamVjdE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0
aE5vSW50ZXJmYWNlT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdERPTUpJVC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RET01KSVQ6OmhlYXBT
bmFwc2hvdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJ
VC5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlT
ZXR0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEVuYWJsZWRCeVNldHRpbmc6Omhl
YXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFbmFibGVkQnlTZXR0aW5nT3du
ZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5oOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTVGVzdEV2ZW50Q29uc3RydWN0b3I6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNUZXN0RXZlbnRUYXJnZXQ6OmhlYXBTbmFwc2hvdCk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0Lmg6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3RFeGNlcHRpb246OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJD
b3JlOjpKU1Rlc3RFeGNlcHRpb25Pd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjpoZWFw
U25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZU93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTVGVzdEdsb2JhbE9iamVjdDo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNv
cmU6OkpTVGVzdEdsb2JhbE9iamVjdE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5o
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEluZGV4ZWRTZXR0ZXJO
b0lkZW50aWZpZXI6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5v
SWRlbnRpZmllci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpoZWFwU25hcHNob3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uT3duZXI6Omlz
UmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmg6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXI6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbmRleGVkU2V0dGVy
V2l0aElkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZTo6aGVhcFNuYXBzaG90
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZU93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJ
bnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZTo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNv
cmU6OkpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SXRl
cmFibGU6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJdGVyYWJsZU93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6aGVhcFNuYXBzaG90KToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJPd25lcjo6aXNSZWFjaGFi
bGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6
OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246Omhl
YXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbk93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjpo
ZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVk
Q29uc3RydWN0b3I6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1l
ZENvbnN0cnVjdG9yT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50
aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlm
aWVyOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWREZWxldGVy
Tm9JZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVy
Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRl
clRocm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkRGVs
ZXRlclRocm93aW5nRXhjZXB0aW9uOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Pd25lcjo6aXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcjo6aGVhcFNuYXBzaG90
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyT3du
ZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRH
ZXR0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4
ZWRHZXR0ZXI6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZERl
bGV0ZXJXaXRoSW5kZXhlZEdldHRlck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldp
dGhJbmRleGVkR2V0dGVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFt
ZWRHZXR0ZXJDYWxsV2l0aDo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dE5hbWVkR2V0dGVyQ2FsbFdpdGhPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxX
aXRoLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0
dGVyTm9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkR2V0dGVy
Tm9JZGVudGlmaWVyOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFt
ZWRHZXR0ZXJOb0lkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRl
bnRpZmllci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVk
R2V0dGVyV2l0aElkZW50aWZpZXI6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpK
U1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRH
ZXR0ZXJXaXRoSWRlbnRpZmllci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdl
YkNvcmU6OkpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpoZWFwU25hcHNob3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbk93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlm
aWVyOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRTZXR0ZXJX
aXRoSWRlbnRpZmllck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZp
ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlck93bmVyOjppc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5k
U2V0dGVyOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zOjpo
ZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3Zl
cnJpZGVCdWlsdGluc093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRl
QnVpbHRpbnMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXM6OmhlYXBTbmFwc2hvdCk6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVy
dGllc093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0
aWVzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0Fu
ZE92ZXJyaWRlQnVpbHRpbnM6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnNP
d25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0Fu
ZE92ZXJyaWRlQnVpbHRpbnMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROb2RlOjpoZWFwU25hcHNo
b3QpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmg6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3RPYmo6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpK
U1Rlc3RPYmpPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpoZWFwU25hcHNob3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc093bmVyOjppc1Jl
YWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNl
cXVlbmNlOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3RPdmVycmlkZUJ1aWx0aW5zOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0T3ZlcnJpZGVCdWlsdGluc093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMu
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJm
YWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFBsdWdpbkludGVyZmFjZTo6aGVhcFNu
YXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFBsdWdpbkludGVyZmFjZU93bmVyOjpp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50OjpoZWFwU25hcHNob3QpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQu
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxpemF0aW9uOjpoZWFwU25hcHNo
b3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U2VyaWFsaXphdGlvbk93bmVyOjppc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6YXRpb24uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2U6OmhlYXBTbmFw
c2hvdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6
YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0OjpoZWFwU25hcHNob3QpOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5oOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJp
dEZpbmFsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0
RmluYWw6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6
aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJp
bmdpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTdHJpbmdpZmllcjo6aGVhcFNu
YXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFN0cmluZ2lmaWVyT3duZXI6OmlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U3RyaW5naWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb246OmhlYXBTbmFwc2hvdCk6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbk93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmg6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVy
YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJh
dGlvbjo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFN0cmluZ2lmaWVy
TmFtZWRPcGVyYXRpb25Pd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0
aW9uLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lm
aWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RT
dHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXM6OmhlYXBTbmFwc2hvdCk6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNPd25lcjo6
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25O
YW1lZFRvU3RyaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFN0cmluZ2lmaWVyT3Bl
cmF0aW9uTmFtZWRUb1N0cmluZzo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpT
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ093bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZy5oOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGU6Omhl
YXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5
QXR0cmlidXRlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0
ZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmll
clJlYWRXcml0ZUF0dHJpYnV0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTdHJpbmdp
ZmllclJlYWRXcml0ZUF0dHJpYnV0ZTo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
VHlwZWRlZnM6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RUeXBlZGVm
c093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50
LmlkbDoKKyAgICAgICAgKiBodG1sL0RPTVRva2VuTGlzdC5pZGw6CisgICAgICAgICogaHRtbC9I
VE1MQ29sbGVjdGlvbi5pZGw6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorICAgICAg
ICAqIHBhZ2UvbWFjL1BhZ2VNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpwbGF0Zm9y
bUluaXRpYWxpemUpOgorCiAyMDE4LTA2LTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgVXBkYXRlIEZldGNoIGNvZGUgdG8gcHJvdmlkZSBtb3JlIHVzZWZ1bCBl
eGNlcHRpb24gbWVzc2FnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNBUElXcmFwcGVyT2JqZWN0Lm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdy
YXBwZXJPYmplY3QubW0KaW5kZXggOTc5ZmY5YjllZDBhZjIxNzA0MjNjY2Y5NDUyZDFhOWE2ZDBm
ZWZiZC4uOGE4NGJmNzdiM2UyZGVlMTA2MDY5NmJhMzcxN2Y1ZDY0MThjYjBhYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmplY3QubW0KKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmplY3QubW0KQEAgLTM3LDcg
KzM3LDcgQEAKIGNsYXNzIEpTQVBJV3JhcHBlck9iamVjdEhhbmRsZU93bmVyIDogcHVibGljIEpT
Qzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKICAgICB2b2lkIGZpbmFsaXplKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqKSBvdmVycmlkZTsKLSAgICBib29sIGlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQs
IEpTQzo6U2xvdFZpc2l0b3ImKSBvdmVycmlkZTsKKyAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9w
YXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6
U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopIG92ZXJyaWRlOwogfTsKIAogc3RhdGljIEpTQVBJ
V3JhcHBlck9iamVjdEhhbmRsZU93bmVyKiBqc0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25lcigp
CkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgSlNBUElXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXI6OmZp
bmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2CiAgICAgSlNDOjpXZWFr
U2V0OjpkZWFsbG9jYXRlKEpTQzo6V2Vha0ltcGw6OmFzV2Vha0ltcGwoaGFuZGxlLnNsb3QoKSkp
OwogfQogCi1ib29sIEpTQVBJV3JhcHBlck9iamVjdEhhbmRsZU93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIEpT
Qzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCitib29sIEpTQVBJV3JhcHBlck9iamVjdEhhbmRsZU93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
IGhhbmRsZSwgdm9pZCosIEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKikK
IHsKICAgICBKU0M6OkpTQVBJV3JhcHBlck9iamVjdCogd3JhcHBlck9iamVjdCA9IEpTQzo6anND
YXN0PEpTQzo6SlNBUElXcmFwcGVyT2JqZWN0Kj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsKICAg
ICAvLyBXZSB1c2UgdGhlIEpTR2xvYmFsT2JqZWN0IHdoZW4gcHJvY2Vzc2luZyB3ZWFrIGhhbmRs
ZXMgdG8gcHJldmVudCB0aGUgc2l0dWF0aW9uIHdoZXJlIHVzaW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbQppbmRleCAwOTliMDRhYzgzZmYyYmY2MjkwOTA4
NjI1NjI2ZDBiMWQzYjQxODU0Li40OTdiNmQyZjhhNjYzMWZjMWYwODE0MjQ1ZjMyMDEwZjExMzQ2
OTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVl
Lm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFsdWUubW0KQEAg
LTQzLDcgKzQzLDcgQEAKIGNsYXNzIEpTTWFuYWdlZFZhbHVlSGFuZGxlT3duZXIgOiBwdWJsaWMg
SlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgogICAgIHZvaWQgZmluYWxpemUoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lk
KiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJikgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKSBvdmVycmlkZTsKIH07CiAKIHN0
YXRpYyBKU01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyJiBtYW5hZ2VkVmFsdWVIYW5kbGVPd25lcigp
CkBAIC0xODIsOCArMTgyLDEwIEBAIEBpbnRlcmZhY2UgSlNNYW5hZ2VkVmFsdWUgKFByaXZhdGVN
ZXRob2RzKQogLSAodm9pZClkaXNjb25uZWN0VmFsdWU7CiBAZW5kCiAKLWJvb2wgSlNNYW5hZ2Vk
VmFsdWVIYW5kbGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikK
K2Jvb2wgSlNNYW5hZ2VkVmFsdWVIYW5kbGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90Vmlz
aXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKKyAgICBpZiAoVU5MSUtFTFko
cmVhc29uKSkKKyAgICAgICAgKnJlYXNvbiA9ICJKU01hbmFnZWRWYWx1ZSBpcyBvcGFxdWUgcm9v
dCI7CiAgICAgSlNNYW5hZ2VkVmFsdWUgKm1hbmFnZWRWYWx1ZSA9IHN0YXRpY19jYXN0PEpTTWFu
YWdlZFZhbHVlICo+KGNvbnRleHQpOwogICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVl
Um9vdChtYW5hZ2VkVmFsdWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvQ29uc2VydmF0aXZlUm9vdHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
bnNlcnZhdGl2ZVJvb3RzLmgKaW5kZXggMGY5YTQyYTZmY2Q2OTRmMGE5ZWZlYjEwZjMyMDYyMjQ2
Zjk2NDEwZC4uODNlNWNlNDY5NDI2N2MzMTQzZjA4YjQ0YjBhODYxZGY0NTBjZTFhNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2VydmF0aXZlUm9vdHMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db25zZXJ2YXRpdmVSb290cy5oCkBAIC00MSw3
ICs0MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZCh2b2lkKiBiZWdpbiwgdm9pZCogZW5kKTsK
ICAgICB2b2lkIGFkZCh2b2lkKiBiZWdpbiwgdm9pZCogZW5kLCBKSVRTdHViUm91dGluZVNldCYs
IENvZGVCbG9ja1NldCYpOwogICAgIAotICAgIHNpemVfdCBzaXplKCk7CisgICAgc2l6ZV90IHNp
emUoKSBjb25zdDsKICAgICBIZWFwQ2VsbCoqIHJvb3RzKCk7CiAKIHByaXZhdGU6CkBAIC02Myw3
ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgSGVhcENlbGwqIG1faW5saW5lUm9vdHNbaW5saW5lQ2Fw
YWNpdHldOwogfTsKIAotaW5saW5lIHNpemVfdCBDb25zZXJ2YXRpdmVSb290czo6c2l6ZSgpCitp
bmxpbmUgc2l6ZV90IENvbnNlcnZhdGl2ZVJvb3RzOjpzaXplKCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV9zaXplOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCA5YzY2YmJj
MDUzZTczYmQ2NmY0NTIxNTc0NzRmYzAzNjU5YmE5YThmLi41NzM2N2MyNzAxYzI0YzhlODUyM2E1
NDFlYjYxNzA1NTk5YmQ2NjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAt
MjY0MiwxMSArMjY0MiwxNSBAQCB2b2lkIEhlYXA6OmFkZENvcmVDb25zdHJhaW50cygpCiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIFRpbWluZ1Njb3BlIHByZUNvbnZlcmdlbmNlVGltaW5nU2Nv
cGUoKnRoaXMsICJDb25zdHJhaW50OiBjb25zZXJ2YXRpdmUgc2NhbiIpOwogICAgICAgICAgICAg
bV9vYmplY3RTcGFjZS5wcmVwYXJlRm9yQ29uc2VydmF0aXZlU2NhbigpOworCiAgICAgICAgICAg
ICBDb25zZXJ2YXRpdmVSb290cyBjb25zZXJ2YXRpdmVSb290cygqdGhpcyk7CiAgICAgICAgICAg
ICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CisKICAgICAgICAg
ICAgIGdhdGhlclN0YWNrUm9vdHMoY29uc2VydmF0aXZlUm9vdHMpOwogICAgICAgICAgICAgZ2F0
aGVySlNTdGFja1Jvb3RzKGNvbnNlcnZhdGl2ZVJvb3RzKTsKICAgICAgICAgICAgIGdhdGhlclNj
cmF0Y2hCdWZmZXJSb290cyhjb25zZXJ2YXRpdmVSb290cyk7CisKKyAgICAgICAgICAgIFNldFJv
b3RNYXJrUmVhc29uU2NvcGUgcm9vdFNjb3BlKHNsb3RWaXNpdG9yLCBTbG90VmlzaXRvcjo6Um9v
dE1hcmtSZWFzb246OkNvbnNlcnZhdGl2ZVNjYW4pOwogICAgICAgICAgICAgc2xvdFZpc2l0b3Iu
YXBwZW5kKGNvbnNlcnZhdGl2ZVJvb3RzKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgbGFz
dFZlcnNpb24gPSBtX3BoYXNlVmVyc2lvbjsKQEAgLTI2NTYsMjcgKzI2NjAsMzggQEAgdm9pZCBI
ZWFwOjphZGRDb3JlQ29uc3RyYWludHMoKQogICAgIG1fY29uc3RyYWludFNldC0+YWRkKAogICAg
ICAgICAiTXNyIiwgIk1pc2MgU21hbGwgUm9vdHMiLAogICAgICAgICBbdGhpc10gKFNsb3RWaXNp
dG9yJiBzbG90VmlzaXRvcikgeworCiAjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKICAgICAgICAg
ICAgIHNjYW5FeHRlcm5hbFJlbWVtYmVyZWRTZXQoKm1fdm0sIHNsb3RWaXNpdG9yKTsKICNlbmRp
ZgotCi0gICAgICAgICAgICBpZiAobV92bS0+c21hbGxTdHJpbmdzLm5lZWRzVG9CZVZpc2l0ZWQo
Km1fY29sbGVjdGlvblNjb3BlKSkKKyAgICAgICAgICAgIGlmIChtX3ZtLT5zbWFsbFN0cmluZ3Mu
bmVlZHNUb0JlVmlzaXRlZCgqbV9jb2xsZWN0aW9uU2NvcGUpKSB7CisgICAgICAgICAgICAgICAg
U2V0Um9vdE1hcmtSZWFzb25TY29wZSByb290U2NvcGUoc2xvdFZpc2l0b3IsIFNsb3RWaXNpdG9y
OjpSb290TWFya1JlYXNvbjo6U3Ryb25nUmVmZXJlbmNlcyk7CiAgICAgICAgICAgICAgICAgbV92
bS0+c21hbGxTdHJpbmdzLnZpc2l0U3Ryb25nUmVmZXJlbmNlcyhzbG90VmlzaXRvcik7CisgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGZvciAoYXV0byYgcGFpciA6IG1f
cHJvdGVjdGVkVmFsdWVzKQotICAgICAgICAgICAgICAgIHNsb3RWaXNpdG9yLmFwcGVuZFVuYmFy
cmllcmVkKHBhaXIua2V5KTsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBTZXRSb290
TWFya1JlYXNvblNjb3BlIHJvb3RTY29wZShzbG90VmlzaXRvciwgU2xvdFZpc2l0b3I6OlJvb3RN
YXJrUmVhc29uOjpQcm90ZWN0ZWRWYWx1ZXMpOworICAgICAgICAgICAgICAgIGZvciAoYXV0byYg
cGFpciA6IG1fcHJvdGVjdGVkVmFsdWVzKQorICAgICAgICAgICAgICAgICAgICBzbG90VmlzaXRv
ci5hcHBlbmRVbmJhcnJpZXJlZChwYWlyLmtleSk7CisgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIGlmIChtX21hcmtMaXN0U2V0ICYmIG1fbWFya0xpc3RTZXQtPnNpemUo
KSkKKyAgICAgICAgICAgIGlmIChtX21hcmtMaXN0U2V0ICYmIG1fbWFya0xpc3RTZXQtPnNpemUo
KSkgeworICAgICAgICAgICAgICAgIFNldFJvb3RNYXJrUmVhc29uU2NvcGUgcm9vdFNjb3BlKHNs
b3RWaXNpdG9yLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246OkNvbnNlcnZhdGl2ZVNjYW4p
OwogICAgICAgICAgICAgICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyOjptYXJrTGlzdHMoc2xvdFZp
c2l0b3IsICptX21hcmtMaXN0U2V0KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgc2xvdFZp
c2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQobV92bS0+ZXhjZXB0aW9uKCkpOwotICAgICAgICAgICAg
c2xvdFZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQobV92bS0+bGFzdEV4Y2VwdGlvbigpKTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIFNldFJvb3RNYXJr
UmVhc29uU2NvcGUgcm9vdFNjb3BlKHNsb3RWaXNpdG9yLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtS
ZWFzb246OlZNRXhjZXB0aW9ucyk7CisgICAgICAgICAgICAgICAgc2xvdFZpc2l0b3IuYXBwZW5k
VW5iYXJyaWVyZWQobV92bS0+ZXhjZXB0aW9uKCkpOworICAgICAgICAgICAgICAgIHNsb3RWaXNp
dG9yLmFwcGVuZFVuYmFycmllcmVkKG1fdm0tPmxhc3RFeGNlcHRpb24oKSk7CisgICAgICAgICAg
ICB9CiAgICAgICAgIH0sCiAgICAgICAgIENvbnN0cmFpbnRWb2xhdGlsaXR5OjpHcmV5ZWRCeUV4
ZWN1dGlvbik7CiAgICAgCiAgICAgbV9jb25zdHJhaW50U2V0LT5hZGQoCiAgICAgICAgICJTaCIs
ICJTdHJvbmcgSGFuZGxlcyIsCiAgICAgICAgIFt0aGlzXSAoU2xvdFZpc2l0b3ImIHNsb3RWaXNp
dG9yKSB7CisgICAgICAgICAgICBTZXRSb290TWFya1JlYXNvblNjb3BlIHJvb3RTY29wZShzbG90
VmlzaXRvciwgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uOjpTdHJvbmdIYW5kbGVzKTsKICAg
ICAgICAgICAgIG1faGFuZGxlU2V0LnZpc2l0U3Ryb25nSGFuZGxlcyhzbG90VmlzaXRvcik7CiAg
ICAgICAgIH0sCiAgICAgICAgIENvbnN0cmFpbnRWb2xhdGlsaXR5OjpHcmV5ZWRCeUV4ZWN1dGlv
bik7CkBAIC0yNjg0LDYgKzI2OTksOCBAQCB2b2lkIEhlYXA6OmFkZENvcmVDb25zdHJhaW50cygp
CiAgICAgbV9jb25zdHJhaW50U2V0LT5hZGQoCiAgICAgICAgICJEIiwgIkRlYnVnZ2VyIiwKICAg
ICAgICAgW3RoaXNdIChTbG90VmlzaXRvciYgc2xvdFZpc2l0b3IpIHsKKyAgICAgICAgICAgIFNl
dFJvb3RNYXJrUmVhc29uU2NvcGUgcm9vdFNjb3BlKHNsb3RWaXNpdG9yLCBTbG90VmlzaXRvcjo6
Um9vdE1hcmtSZWFzb246OkRlYnVnZ2VyKTsKKwogI2lmIEVOQUJMRShTQU1QTElOR19QUk9GSUxF
UikKICAgICAgICAgICAgIGlmIChTYW1wbGluZ1Byb2ZpbGVyKiBzYW1wbGluZ1Byb2ZpbGVyID0g
bV92bS0+c2FtcGxpbmdQcm9maWxlcigpKSB7CiAgICAgICAgICAgICAgICAgTG9ja0hvbGRlciBs
b2NrZXIoc2FtcGxpbmdQcm9maWxlci0+Z2V0TG9jaygpKTsKQEAgLTI2OTMsNyArMjcxMCw3IEBA
IHZvaWQgSGVhcDo6YWRkQ29yZUNvbnN0cmFpbnRzKCkKICAgICAgICAgICAgICAgICAgICAgZGF0
YUxvZygiU2FtcGxpbmcgUHJvZmlsZXIgZGF0YTpcbiIsIHNsb3RWaXNpdG9yKTsKICAgICAgICAg
ICAgIH0KICNlbmRpZiAvLyBFTkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCi0gICAgICAgICAgICAK
KwogICAgICAgICAgICAgaWYgKG1fdm0tPnR5cGVQcm9maWxlcigpKQogICAgICAgICAgICAgICAg
IG1fdm0tPnR5cGVQcm9maWxlckxvZygpLT52aXNpdChzbG90VmlzaXRvcik7CiAgICAgICAgICAg
ICAKQEAgLTI3MDQsNiArMjcyMSw3IEBAIHZvaWQgSGVhcDo6YWRkQ29yZUNvbnN0cmFpbnRzKCkK
ICAgICBtX2NvbnN0cmFpbnRTZXQtPmFkZCgKICAgICAgICAgIkpzciIsICJKSVQgU3R1YiBSb3V0
aW5lcyIsCiAgICAgICAgIFt0aGlzXSAoU2xvdFZpc2l0b3ImIHNsb3RWaXNpdG9yKSB7CisgICAg
ICAgICAgICBTZXRSb290TWFya1JlYXNvblNjb3BlIHJvb3RTY29wZShzbG90VmlzaXRvciwgU2xv
dFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uOjpKSVRTdHViUm91dGluZXMpOwogICAgICAgICAgICAg
bV9qaXRTdHViUm91dGluZXMtPnRyYWNlTWFya2VkU3R1YlJvdXRpbmVzKHNsb3RWaXNpdG9yKTsK
ICAgICAgICAgfSwKICAgICAgICAgQ29uc3RyYWludFZvbGF0aWxpdHk6OkdyZXllZEJ5RXhlY3V0
aW9uKTsKQEAgLTI3MTEsNiArMjcyOSw3IEBAIHZvaWQgSGVhcDo6YWRkQ29yZUNvbnN0cmFpbnRz
KCkKICAgICBtX2NvbnN0cmFpbnRTZXQtPmFkZCgKICAgICAgICAgIldzIiwgIldlYWsgU2V0cyIs
CiAgICAgICAgIFt0aGlzXSAoU2xvdFZpc2l0b3ImIHNsb3RWaXNpdG9yKSB7CisgICAgICAgICAg
ICBTZXRSb290TWFya1JlYXNvblNjb3BlIHJvb3RTY29wZShzbG90VmlzaXRvciwgU2xvdFZpc2l0
b3I6OlJvb3RNYXJrUmVhc29uOjpXZWFrU2V0cyk7CiAgICAgICAgICAgICBtX29iamVjdFNwYWNl
LnZpc2l0V2Vha1NldHMoc2xvdFZpc2l0b3IpOwogICAgICAgICB9LAogICAgICAgICBDb25zdHJh
aW50Vm9sYXRpbGl0eTo6R3JleWVkQnlNYXJraW5nKTsKQEAgLTI3MTksOCArMjczOCw5IEBAIHZv
aWQgSGVhcDo6YWRkQ29yZUNvbnN0cmFpbnRzKCkKICAgICAgICAgIk8iLCAiT3V0cHV0IiwKICAg
ICAgICAgW10gKFNsb3RWaXNpdG9yJiBzbG90VmlzaXRvcikgewogICAgICAgICAgICAgVk0mIHZt
ID0gc2xvdFZpc2l0b3Iudm0oKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBhdXRvIGNh
bGxPdXRwdXRDb25zdHJhaW50ID0gW10gKFNsb3RWaXNpdG9yJiBzbG90VmlzaXRvciwgSGVhcENl
bGwqIGhlYXBDZWxsLCBIZWFwQ2VsbDo6S2luZCkgeworICAgICAgICAgICAgICAgIFNldFJvb3RN
YXJrUmVhc29uU2NvcGUgcm9vdFNjb3BlKHNsb3RWaXNpdG9yLCBTbG90VmlzaXRvcjo6Um9vdE1h
cmtSZWFzb246Ok91dHB1dCk7CiAgICAgICAgICAgICAgICAgVk0mIHZtID0gc2xvdFZpc2l0b3Iu
dm0oKTsKICAgICAgICAgICAgICAgICBKU0NlbGwqIGNlbGwgPSBzdGF0aWNfY2FzdDxKU0NlbGwq
PihoZWFwQ2VsbCk7CiAgICAgICAgICAgICAgICAgY2VsbC0+bWV0aG9kVGFibGUodm0pLT52aXNp
dE91dHB1dENvbnN0cmFpbnRzKGNlbGwsIHNsb3RWaXNpdG9yKTsKQEAgLTI3NDAsNiArMjc2MCw4
IEBAIHZvaWQgSGVhcDo6YWRkQ29yZUNvbnN0cmFpbnRzKCkKICAgICBtX2NvbnN0cmFpbnRTZXQt
PmFkZCgKICAgICAgICAgIkR3IiwgIkRGRyBXb3JrbGlzdHMiLAogICAgICAgICBbdGhpc10gKFNs
b3RWaXNpdG9yJiBzbG90VmlzaXRvcikgeworICAgICAgICAgICAgU2V0Um9vdE1hcmtSZWFzb25T
Y29wZSByb290U2NvcGUoc2xvdFZpc2l0b3IsIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6
REZHV29ya0xpc3RzKTsKKwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gREZHOjpudW1i
ZXJPZldvcmtsaXN0cygpOyBpLS07KQogICAgICAgICAgICAgICAgIERGRzo6ZXhpc3RpbmdXb3Jr
bGlzdEZvckluZGV4KGkpLnZpc2l0V2Vha1JlZmVyZW5jZXMoc2xvdFZpc2l0b3IpOwogICAgICAg
ICAgICAgCkBAIC0yNzYwLDYgKzI3ODIsNyBAQCB2b2lkIEhlYXA6OmFkZENvcmVDb25zdHJhaW50
cygpCiAgICAgbV9jb25zdHJhaW50U2V0LT5hZGQoCiAgICAgICAgICJDYiIsICJDb2RlQmxvY2tz
IiwKICAgICAgICAgW3RoaXNdIChTbG90VmlzaXRvciYgc2xvdFZpc2l0b3IpIHsKKyAgICAgICAg
ICAgIFNldFJvb3RNYXJrUmVhc29uU2NvcGUgcm9vdFNjb3BlKHNsb3RWaXNpdG9yLCBTbG90Vmlz
aXRvcjo6Um9vdE1hcmtSZWFzb246OkNvZGVCbG9ja3MpOwogICAgICAgICAgICAgaXRlcmF0ZUV4
ZWN1dGluZ0FuZENvbXBpbGluZ0NvZGVCbG9ja3NXaXRob3V0SG9sZGluZ0xvY2tzKAogICAgICAg
ICAgICAgICAgIFsmXSAoQ29kZUJsb2NrKiBjb2RlQmxvY2spIHsKICAgICAgICAgICAgICAgICAg
ICAgLy8gVmlzaXQgdGhlIENvZGVCbG9jayBhcyBhIGNvbnN0cmFpbnQgb25seSBpZiBpdCdzIGJs
YWNrLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBzaG90
QnVpbGRlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWls
ZGVyLmNwcAppbmRleCA2NWY2MzNmYWNkYTJjNzg1NjgwYTg1ZTc4OWY4YWVmNDg5NzkyNjQzLi4y
ZTA2MmYyOTE3MjViNjY2Mjk3MTg2MTZmMDAwYWI2MDE4NDE0MjZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmNwcApAQCAtMzcsMjQg
KzM3LDI4IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3Bh
Y2UgSlNDIHsKLSAgICAKLXVuc2lnbmVkIEhlYXBTbmFwc2hvdEJ1aWxkZXI6Om5leHRBdmFpbGFi
bGVPYmplY3RJZGVudGlmaWVyID0gMTsKLXVuc2lnbmVkIEhlYXBTbmFwc2hvdEJ1aWxkZXI6Omdl
dE5leHRPYmplY3RJZGVudGlmaWVyKCkgeyByZXR1cm4gbmV4dEF2YWlsYWJsZU9iamVjdElkZW50
aWZpZXIrKzsgfQorCitzdGF0aWMgY29uc3QgY2hhciogcm9vdFR5cGVUb1N0cmluZyhTbG90Vmlz
aXRvcjo6Um9vdE1hcmtSZWFzb24pOworCitOb2RlSWRlbnRpZmllciBIZWFwU25hcHNob3RCdWls
ZGVyOjpuZXh0QXZhaWxhYmxlT2JqZWN0SWRlbnRpZmllciA9IDE7CitOb2RlSWRlbnRpZmllciBI
ZWFwU25hcHNob3RCdWlsZGVyOjpnZXROZXh0T2JqZWN0SWRlbnRpZmllcigpIHsgcmV0dXJuIG5l
eHRBdmFpbGFibGVPYmplY3RJZGVudGlmaWVyKys7IH0KIHZvaWQgSGVhcFNuYXBzaG90QnVpbGRl
cjo6cmVzZXROZXh0QXZhaWxhYmxlT2JqZWN0SWRlbnRpZmllcigpIHsgSGVhcFNuYXBzaG90QnVp
bGRlcjo6bmV4dEF2YWlsYWJsZU9iamVjdElkZW50aWZpZXIgPSAxOyB9CiAKLUhlYXBTbmFwc2hv
dEJ1aWxkZXI6OkhlYXBTbmFwc2hvdEJ1aWxkZXIoSGVhcFByb2ZpbGVyJiBwcm9maWxlcikKK0hl
YXBTbmFwc2hvdEJ1aWxkZXI6OkhlYXBTbmFwc2hvdEJ1aWxkZXIoSGVhcFByb2ZpbGVyJiBwcm9m
aWxlciwgU25hcHNob3RUeXBlIHR5cGUpCiAgICAgOiBtX3Byb2ZpbGVyKHByb2ZpbGVyKQorICAg
ICwgbV9zbmFwc2hvdFR5cGUodHlwZSkKIHsKIH0KIAotSGVhcFNuYXBzaG90QnVpbGRlcjo6fkhl
YXBTbmFwc2hvdEJ1aWxkZXIoKQotewotfQorSGVhcFNuYXBzaG90QnVpbGRlcjo6fkhlYXBTbmFw
c2hvdEJ1aWxkZXIoKSA9IGRlZmF1bHQ7CiAKIHZvaWQgSGVhcFNuYXBzaG90QnVpbGRlcjo6YnVp
bGRTbmFwc2hvdCgpCiB7CisgICAgaWYgKG1fc25hcHNob3RUeXBlID09IFNuYXBzaG90VHlwZTo6
R0NEZWJ1Z2dpbmdTbmFwc2hvdCkKKyAgICAgICAgbV9wcm9maWxlci5jbGVhclNuYXBzaG90cygp
OworCiAgICAgUHJldmVudENvbGxlY3Rpb25TY29wZSBwcmV2ZW50Q29sbGVjdGlvblNjb3BlKG1f
cHJvZmlsZXIudm0oKS5oZWFwKTsKLSAgICAKKwogICAgIG1fc25hcHNob3QgPSBzdGQ6Om1ha2Vf
dW5pcXVlPEhlYXBTbmFwc2hvdD4obV9wcm9maWxlci5tb3N0UmVjZW50U25hcHNob3QoKSk7CiAg
ICAgewogICAgICAgICBtX3Byb2ZpbGVyLnNldEFjdGl2ZVNuYXBzaG90QnVpbGRlcih0aGlzKTsK
QEAgLTY5LDE3ICs3MywxOCBAQCB2b2lkIEhlYXBTbmFwc2hvdEJ1aWxkZXI6OmJ1aWxkU25hcHNo
b3QoKQogdm9pZCBIZWFwU25hcHNob3RCdWlsZGVyOjphcHBlbmROb2RlKEpTQ2VsbCogY2VsbCkK
IHsKICAgICBBU1NFUlQobV9wcm9maWxlci5hY3RpdmVTbmFwc2hvdEJ1aWxkZXIoKSA9PSB0aGlz
KTsKKyAgICAKICAgICBBU1NFUlQoSGVhcDo6aXNNYXJrZWQoY2VsbCkpOwogCi0gICAgaWYgKGhh
c0V4aXN0aW5nTm9kZUZvckNlbGwoY2VsbCkpCisgICAgTm9kZUlkZW50aWZpZXIgaWRlbnRpZmll
cjsKKyAgICBpZiAocHJldmlvdXNTbmFwc2hvdEhhc05vZGVGb3JDZWxsKGNlbGwsIGlkZW50aWZp
ZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayht
X2J1aWxkaW5nTm9kZU11dGV4KTsKLQogICAgIG1fc25hcHNob3QtPmFwcGVuZE5vZGUoSGVhcFNu
YXBzaG90Tm9kZShjZWxsLCBnZXROZXh0T2JqZWN0SWRlbnRpZmllcigpKSk7CiB9CiAKLXZvaWQg
SGVhcFNuYXBzaG90QnVpbGRlcjo6YXBwZW5kRWRnZShKU0NlbGwqIGZyb20sIEpTQ2VsbCogdG8p
Cit2b2lkIEhlYXBTbmFwc2hvdEJ1aWxkZXI6OmFwcGVuZEVkZ2UoSlNDZWxsKiBmcm9tLCBKU0Nl
bGwqIHRvLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb24gcm9vdE1hcmtSZWFzb24pCiB7CiAg
ICAgQVNTRVJUKG1fcHJvZmlsZXIuYWN0aXZlU25hcHNob3RCdWlsZGVyKCkgPT0gdGhpcyk7CiAg
ICAgQVNTRVJUKHRvKTsKQEAgLTkwLDYgKzk1LDE1IEBAIHZvaWQgSGVhcFNuYXBzaG90QnVpbGRl
cjo6YXBwZW5kRWRnZShKU0NlbGwqIGZyb20sIEpTQ2VsbCogdG8pCiAKICAgICBzdGQ6OmxvY2tf
Z3VhcmQ8TG9jaz4gbG9jayhtX2J1aWxkaW5nRWRnZU11dGV4KTsKIAorICAgIGlmICghZnJvbSkg
eworICAgICAgICBpZiAocm9vdE1hcmtSZWFzb24gPT0gU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVh
c29uOjpOb25lICYmIG1fc25hcHNob3RUeXBlID09IFNuYXBzaG90VHlwZTo6R0NEZWJ1Z2dpbmdT
bmFwc2hvdCkKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiQ2VsbCAlcCBpcyBhIHJvb3QgYnV0
IG5vIHJvb3QgbWFya2luZyByZWFzb24gd2FzIHN1cHBsaWVkIiwgdG8pOworCisgICAgICAgIG1f
cm9vdERhdGEuZW5zdXJlKHRvLCBbXSAoKSAtPiBSb290RGF0YSB7CisgICAgICAgICAgICByZXR1
cm4geyB9OworICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWUubWFya1JlYXNvbiA9IHJvb3RNYXJr
UmVhc29uOworICAgIH0KKwogICAgIG1fZWRnZXMuYXBwZW5kKEhlYXBTbmFwc2hvdEVkZ2UoZnJv
bSwgdG8pKTsKIH0KIApAQCAtMTIzLDIyICsxMzcsNDMgQEAgdm9pZCBIZWFwU25hcHNob3RCdWls
ZGVyOjphcHBlbmRJbmRleEVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRvLCB1aW50MzJfdCBp
bmQKICAgICBtX2VkZ2VzLmFwcGVuZChIZWFwU25hcHNob3RFZGdlKGZyb20sIHRvLCBpbmRleCkp
OwogfQogCi1ib29sIEhlYXBTbmFwc2hvdEJ1aWxkZXI6Omhhc0V4aXN0aW5nTm9kZUZvckNlbGwo
SlNDZWxsKiBjZWxsKQordm9pZCBIZWFwU25hcHNob3RCdWlsZGVyOjpzZXRPcGFxdWVSb290UmVh
Y2hhYmlsaXR5UmVhc29uRm9yQ2VsbChKU0NlbGwqIGNlbGwsIGNvbnN0IGNoYXIqIHJlYXNvbikK
K3sKKyAgICBpZiAoIXJlYXNvbiB8fCAhKnJlYXNvbikKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9yb290RGF0YS5lbnN1cmUoY2VsbCwgW10gKCkgLT4gUm9vdERhdGEgeworICAgICAgICByZXR1
cm4geyB9OworICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5yZWFjaGFiaWxpdHlGcm9tT3BhcXVlUm9v
dFJlYXNvbnMgPSByZWFzb247Cit9CisKK3ZvaWQgSGVhcFNuYXBzaG90QnVpbGRlcjo6c2V0V3Jh
cHBlZE9iamVjdEZvckNlbGwoSlNDZWxsKiBjZWxsLCB2b2lkKiB3cmFwcGVkUHRyKQoreworICAg
IG1fd3JhcHBlZE9iamVjdFBvaW50ZXJzLnNldChjZWxsLCB3cmFwcGVkUHRyKTsKK30KKworYm9v
bCBIZWFwU25hcHNob3RCdWlsZGVyOjpwcmV2aW91c1NuYXBzaG90SGFzTm9kZUZvckNlbGwoSlND
ZWxsKiBjZWxsLCBOb2RlSWRlbnRpZmllciYgaWRlbnRpZmllcikKIHsKICAgICBpZiAoIW1fc25h
cHNob3QtPnByZXZpb3VzKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiAh
IW1fc25hcHNob3QtPnByZXZpb3VzKCktPm5vZGVGb3JDZWxsKGNlbGwpOwotfQorICAgIGF1dG8g
ZXhpc3RpbmdOb2RlID0gbV9zbmFwc2hvdC0+cHJldmlvdXMoKS0+bm9kZUZvckNlbGwoY2VsbCk7
CisgICAgaWYgKGV4aXN0aW5nTm9kZSkgeworICAgICAgICBpZGVudGlmaWVyID0gZXhpc3RpbmdO
b2RlLnZhbHVlKCkuaWRlbnRpZmllcjsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQogCisg
ICAgcmV0dXJuIGZhbHNlOworfQogCiAvLyBIZWFwIFNuYXBzaG90IEpTT04gRm9ybWF0OgogLy8K
IC8vICAgewogLy8gICAgICAidmVyc2lvbiI6IDEuMCwKKy8vICAgICAgLy8gWzxhZGRyZXNzPiwg
PGxhYmVsSW5kZXg+LCA8d3JhcHBlZEVkZHJlc3M+XSBvbmx5IHByZXNlbnQgaW4gR0NEZWJ1Z2dp
bmdTbmFwc2hvdC10eXBlIHNuYXBzaG90cwogLy8gICAgICAibm9kZXMiOiBbCi0vLyAgICAgICAg
ICA8bm9kZUlkPiwgPHNpemVJbkJ5dGVzPiwgPG5vZGVDbGFzc05hbWVJbmRleD4sIDxpbnRlcm5h
bD4sCi0vLyAgICAgICAgICA8bm9kZUlkPiwgPHNpemVJbkJ5dGVzPiwgPG5vZGVDbGFzc05hbWVJ
bmRleD4sIDxpbnRlcm5hbD4sCisvLyAgICAgICAgICA8bm9kZUlkPiwgPHNpemVJbkJ5dGVzPiwg
PG5vZGVDbGFzc05hbWVJbmRleD4sIDxpbnRlcm5hbD4sIFs8bGFiZWxJbmRleD4sIDxjZWxsRWRk
cmVzcz4sIDx3cmFwcGVkRWRkcmVzcz5dLAorLy8gICAgICAgICAgPG5vZGVJZD4sIDxzaXplSW5C
eXRlcz4sIDxub2RlQ2xhc3NOYW1lSW5kZXg+LCA8aW50ZXJuYWw+LCBbPGxhYmVsSW5kZXg+LCA8
Y2VsbEVkZHJlc3M+LCA8d3JhcHBlZEVkZHJlc3M+XSwKIC8vICAgICAgICAgIC4uLgogLy8gICAg
ICBdLAogLy8gICAgICAibm9kZUNsYXNzTmFtZXMiOiBbCkBAIC0xNTQsNyArMTg5LDE2IEBAIGJv
b2wgSGVhcFNuYXBzaG90QnVpbGRlcjo6aGFzRXhpc3RpbmdOb2RlRm9yQ2VsbChKU0NlbGwqIGNl
bGwpCiAvLyAgICAgIF0sCiAvLyAgICAgICJlZGdlTmFtZXMiOiBbCiAvLyAgICAgICAgICAicHJv
cGVydHlOYW1lIiwgInZhcmlhYmxlTmFtZSIsIC4uLgotLy8gICAgICBdCisvLyAgICAgIF0sCisv
LyAgICAgIC8vIFRoaW5ncyBiZWxvdyBoZXJlIGFyZSBvbmx5IHByZXNlbnQgaW4gR0NEZWJ1Z2dp
bmdTbmFwc2hvdC10eXBlIHNuYXBzaG90cworLy8gICAgICAicm9vdHMiIDogWworLy8gICAgICAg
ICAgPG5vZGVJZD4sIDxyb290UmVhc29uSW5kZXg+LCA8cmVhY2hhYmlsaXR5UmVhc29uSW5kZXg+
LAorLy8gICAgICAgICAgPG5vZGVJZD4sIDxyb290UmVhc29uSW5kZXg+LCA8cmVhY2hhYmlsaXR5
UmVhc29uSW5kZXg+LAorLy8gICAgICAgICAgLi4uIC8vIDxub2RlSWQ+IG1heSBiZSByZXBlYXRl
ZAorLy8gICAgICBdLAorLy8gICAgICAibGFiZWxzIiA6IFsKKy8vICAgICAgICAgICJmb28iLCAi
YmFyIiwgLi4uCisvLyAgICAgIF0sCiAvLyAgIH0KIC8vCiAvLyBOb3RlczoKQEAgLTE3Miw2ICsy
MTYsOSBAQCBib29sIEhlYXBTbmFwc2hvdEJ1aWxkZXI6Omhhc0V4aXN0aW5nTm9kZUZvckNlbGwo
SlNDZWxsKiBjZWxsKQogLy8gICAgICAgLSBmb3IgSW50ZXJuYWwgZWRnZXMgdGhpcyBzaG91bGQg
YmUgaWdub3JlZCAoMCkuCiAvLyAgICAgICAtIGZvciBJbmRleCBlZGdlcyB0aGlzIGlzIHRoZSBp
bmRleCB2YWx1ZS4KIC8vICAgICAgIC0gZm9yIFByb3BlcnR5IG9yIFZhcmlhYmxlIGVkZ2VzIHRo
aXMgaXMgYW4gaW5kZXggaW50byB0aGUgImVkZ2VOYW1lcyIgbGlzdC4KKy8vCisvLyAgICAgIDxy
b290UmVhc29uSW5kZXg+CisvLyAgICAgICAtIGluZGV4IGludG8gdGhlICJsYWJlbHMiIGxpc3Qu
CiAKIHN0YXRpYyB1aW50OF90IGVkZ2VUeXBlVG9OdW1iZXIoRWRnZVR5cGUgdHlwZSkKIHsKQEAg
LTE5NCwyNCArMjQxLDk4IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBlZGdlVHlwZVRvU3RyaW5nKEVk
Z2VUeXBlIHR5cGUpCiAgICAgcmV0dXJuICJJbnRlcm5hbCI7CiB9CiAKK3N0YXRpYyBjb25zdCBj
aGFyKiBzbmFwc2hvdFR5cGVUb1N0cmluZyhIZWFwU25hcHNob3RCdWlsZGVyOjpTbmFwc2hvdFR5
cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEhlYXBTbmFwc2hvdEJ1
aWxkZXI6OlNuYXBzaG90VHlwZTo6SW5zcGVjdG9yU25hcHNob3Q6CisgICAgICAgIHJldHVybiAi
SW5zcGVjdG9yIjsKKyAgICBjYXNlIEhlYXBTbmFwc2hvdEJ1aWxkZXI6OlNuYXBzaG90VHlwZTo6
R0NEZWJ1Z2dpbmdTbmFwc2hvdDoKKyAgICAgICAgcmV0dXJuICJHQ0RlYnVnZ2luZyI7CisgICAg
fQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAiSW5zcGVjdG9yIjsKK30K
Kworc3RhdGljIGNvbnN0IGNoYXIqIHJvb3RUeXBlVG9TdHJpbmcoU2xvdFZpc2l0b3I6OlJvb3RN
YXJrUmVhc29uIHR5cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBTbG90Vmlz
aXRvcjo6Um9vdE1hcmtSZWFzb246Ok5vbmU6CisgICAgICAgIHJldHVybiAiTm9uZSI7CisgICAg
Y2FzZSBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246OkNvbnNlcnZhdGl2ZVNjYW46CisgICAg
ICAgIHJldHVybiAiQ29uc2VydmF0aXZlIHNjYW4iOworICAgIGNhc2UgU2xvdFZpc2l0b3I6OlJv
b3RNYXJrUmVhc29uOjpTdHJvbmdSZWZlcmVuY2VzOgorICAgICAgICByZXR1cm4gIlN0cm9uZyBy
ZWZlcmVuY2VzIjsKKyAgICBjYXNlIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6UHJvdGVj
dGVkVmFsdWVzOgorICAgICAgICByZXR1cm4gIlByb3RlY3RlZCB2YWx1ZXMiOworICAgIGNhc2Ug
U2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uOjpNYXJrTGlzdFNldDoKKyAgICAgICAgcmV0dXJu
ICJNYXJrIGxpc3Qgc2V0IjsKKyAgICBjYXNlIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6
Vk1FeGNlcHRpb25zOgorICAgICAgICByZXR1cm4gIlZNIGV4Y2VwdGlvbnMiOworICAgIGNhc2Ug
U2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uOjpTdHJvbmdIYW5kbGVzOgorICAgICAgICByZXR1
cm4gIlN0cm9uZyBoYW5kbGVzIjsKKyAgICBjYXNlIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNv
bjo6RGVidWdnZXI6CisgICAgICAgIHJldHVybiAiRGVidWdnZXIiOworICAgIGNhc2UgU2xvdFZp
c2l0b3I6OlJvb3RNYXJrUmVhc29uOjpKSVRTdHViUm91dGluZXM6CisgICAgICAgIHJldHVybiAi
SklUIHN0dWIgcm91dGluZXMiOworICAgIGNhc2UgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29u
OjpXZWFrU2V0czoKKyAgICAgICAgcmV0dXJuICJXZWFrIHNldHMiOworICAgIGNhc2UgU2xvdFZp
c2l0b3I6OlJvb3RNYXJrUmVhc29uOjpPdXRwdXQ6CisgICAgICAgIHJldHVybiAiT3V0cHV0IjsK
KyAgICBjYXNlIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6REZHV29ya0xpc3RzOgorICAg
ICAgICByZXR1cm4gIkRGRyB3b3JrIGxpc3RzIjsKKyAgICBjYXNlIFNsb3RWaXNpdG9yOjpSb290
TWFya1JlYXNvbjo6Q29kZUJsb2NrczoKKyAgICAgICAgcmV0dXJuICJDb2RlIGJsb2NrcyI7Cisg
ICAgY2FzZSBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246OkRPTUdDT3V0cHV0OgorICAgICAg
ICByZXR1cm4gIkRPTSBHQyBvdXRwdXQiOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICByZXR1cm4gIk5vbmUiOworfQorCiBTdHJpbmcgSGVhcFNuYXBzaG90QnVpbGRlcjo6
anNvbigpCiB7CiAgICAgcmV0dXJuIGpzb24oW10gKGNvbnN0IEhlYXBTbmFwc2hvdE5vZGUmKSB7
IHJldHVybiB0cnVlOyB9KTsKIH0KIAordm9pZCBIZWFwU25hcHNob3RCdWlsZGVyOjpzZXRMYWJl
bEZvckNlbGwoSlNDZWxsKiBjZWxsLCBjb25zdCBTdHJpbmcmIGxhYmVsKQoreworICAgIG1fY2Vs
bExhYmVscy5zZXQoY2VsbCwgbGFiZWwpOworfQorCitTdHJpbmcgSGVhcFNuYXBzaG90QnVpbGRl
cjo6ZGVzY3JpcHRpb25Gb3JDZWxsKEpTQ2VsbCAqY2VsbCkgY29uc3QKK3sKKyAgICBpZiAoY2Vs
bC0+aXNTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IC8vIEZJWE1FOiBn
ZXQgcGFydCBvZiBzdHJpbmcuCisKKyAgICBWTSYgdm0gPSBtX3Byb2ZpbGVyLnZtKCk7CisgICAg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBjZWxsLT5zdHJ1Y3R1cmUodm0pOworCisgICAgaWYgKHN0
cnVjdHVyZS0+Y2xhc3NJbmZvKCktPmlzU3ViQ2xhc3NPZihTdHJ1Y3R1cmU6OmluZm8oKSkpIHsK
KyAgICAgICAgU3RydWN0dXJlKiBjZWxsQXNTdHJ1Y3R1cmUgPSBqc0Nhc3Q8U3RydWN0dXJlKj4o
Y2VsbCk7CisgICAgICAgIHJldHVybiBjZWxsQXNTdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLT5jbGFz
c05hbWU7CisgICAgfQorCisgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Cit9CisKIFN0cmluZyBI
ZWFwU25hcHNob3RCdWlsZGVyOjpqc29uKHN0ZDo6ZnVuY3Rpb248Ym9vbCAoY29uc3QgSGVhcFNu
YXBzaG90Tm9kZSYpPiBhbGxvd05vZGVDYWxsYmFjaykKIHsKICAgICBWTSYgdm0gPSBtX3Byb2Zp
bGVyLnZtKCk7CiAgICAgRGVmZXJHQ0ZvckFXaGlsZSBkZWZlckdDKHZtLmhlYXApOwogCiAgICAg
Ly8gQnVpbGQgYSBub2RlIHRvIGlkZW50aWZpZXIgbWFwIG9mIGFsbG93ZWQgbm9kZXMgdG8gdXNl
IHdoZW4gc2VyaWFsaXppbmcgZWRnZXMuCi0gICAgSGFzaE1hcDxKU0NlbGwqLCB1bnNpZ25lZD4g
YWxsb3dlZE5vZGVJZGVudGlmaWVyczsKKyAgICBIYXNoTWFwPEpTQ2VsbCosIE5vZGVJZGVudGlm
aWVyPiBhbGxvd2VkTm9kZUlkZW50aWZpZXJzOwogCiAgICAgLy8gQnVpbGQgYSBsaXN0IG9mIHVz
ZWQgY2xhc3MgbmFtZXMuCiAgICAgSGFzaE1hcDxjb25zdCBjaGFyKiwgdW5zaWduZWQ+IGNsYXNz
TmFtZUluZGV4ZXM7CiAgICAgY2xhc3NOYW1lSW5kZXhlcy5zZXQoIjxyb290PiIsIDApOwogICAg
IHVuc2lnbmVkIG5leHRDbGFzc05hbWVJbmRleCA9IDE7CiAKKyAgICAvLyBCdWlsZCBhIGxpc3Qg
b2YgbGFiZWxzICh0aGlzIGlzIGp1c3QgYSBzdHJpbmcgdGFibGUpLgorICAgIEhhc2hNYXA8U3Ry
aW5nLCB1bnNpZ25lZD4gbGFiZWxJbmRleGVzOworICAgIGxhYmVsSW5kZXhlcy5zZXQoIiIsIDAp
OworICAgIHVuc2lnbmVkIG5leHRMYWJlbEluZGV4ID0gMTsKKwogICAgIC8vIEJ1aWxkIGEgbGlz
dCBvZiB1c2VkIGVkZ2UgbmFtZXMuCiAgICAgSGFzaE1hcDxVbmlxdWVkU3RyaW5nSW1wbCosIHVu
c2lnbmVkPiBlZGdlTmFtZUluZGV4ZXM7CiAgICAgdW5zaWduZWQgbmV4dEVkZ2VOYW1lSW5kZXgg
PSAwOwpAQCAtMjMxLDEyICszNTIsNDIgQEAgU3RyaW5nIEhlYXBTbmFwc2hvdEJ1aWxkZXI6Ompz
b24oc3RkOjpmdW5jdGlvbjxib29sIChjb25zdCBIZWFwU25hcHNob3ROb2RlJik+IGEKICAgICAg
ICAgdW5zaWduZWQgY2xhc3NOYW1lSW5kZXggPSByZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwogCiAg
ICAgICAgIGJvb2wgaXNJbnRlcm5hbCA9IGZhbHNlOworICAgICAgICB2b2lkKiB3cmFwcGVkQWRk
cmVzcyA9IDA7CisgICAgICAgIHVuc2lnbmVkIGxhYmVsSW5kZXggPSAwOwogICAgICAgICBpZiAo
IW5vZGUuY2VsbC0+aXNTdHJpbmcoKSkgewogICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUgPSBub2RlLmNlbGwtPnN0cnVjdHVyZSh2bSk7CiAgICAgICAgICAgICBpc0ludGVybmFsID0g
IXN0cnVjdHVyZSB8fCAhc3RydWN0dXJlLT5nbG9iYWxPYmplY3QoKTsKKworICAgICAgICAgICAg
U3RyaW5nIG5vZGVMYWJlbDsKKyAgICAgICAgICAgIGF1dG8gaXQgPSBtX2NlbGxMYWJlbHMuZmlu
ZChub2RlLmNlbGwpOworICAgICAgICAgICAgaWYgKGl0ICE9IG1fY2VsbExhYmVscy5lbmQoKSkK
KyAgICAgICAgICAgICAgICBub2RlTGFiZWwgPSBpdC0+dmFsdWU7CisKKyAgICAgICAgICAgIGlm
IChub2RlTGFiZWwuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8qIG9iamVj
dCA9IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPih2bSwgbm9kZS5jZWxsKSkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoYXV0byogZnVuY3Rpb24gPSBqc0R5bmFtaWNDYXN0PEpTRnVuY3Rpb24q
Pih2bSwgb2JqZWN0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVMYWJlbCA9IGZ1bmN0
aW9uLT5jYWxjdWxhdGVkRGlzcGxheU5hbWUodm0pOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIGRlc2NyaXB0aW9uID0g
ZGVzY3JpcHRpb25Gb3JDZWxsKG5vZGUuY2VsbCk7CisgICAgICAgICAgICBpZiAoZGVzY3JpcHRp
b24ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAobm9kZUxhYmVsLmxlbmd0aCgpKQor
ICAgICAgICAgICAgICAgICAgICBub2RlTGFiZWwuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICAg
ICAgbm9kZUxhYmVsLmFwcGVuZChkZXNjcmlwdGlvbik7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGlmICghbm9kZUxhYmVsLmlzRW1wdHkoKSAmJiBtX3NuYXBzaG90VHlwZSA9PSBTbmFw
c2hvdFR5cGU6OkdDRGVidWdnaW5nU25hcHNob3QpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHJl
c3VsdCA9IGxhYmVsSW5kZXhlcy5hZGQobm9kZUxhYmVsLCBuZXh0TGFiZWxJbmRleCk7CisgICAg
ICAgICAgICAgICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KQorICAgICAgICAgICAgICAgICAgICBu
ZXh0TGFiZWxJbmRleCsrOworICAgICAgICAgICAgICAgIGxhYmVsSW5kZXggPSByZXN1bHQuaXRl
cmF0b3ItPnZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB3
cmFwcGVkQWRkcmVzcyA9IG1fd3JhcHBlZE9iamVjdFBvaW50ZXJzLmdldChub2RlLmNlbGwpOwog
ICAgICAgICB9CiAKLSAgICAgICAgLy8gPG5vZGVJZD4sIDxzaXplSW5CeXRlcz4sIDxjbGFzc05h
bWU+LCA8b3B0aW9uYWxJbnRlcm5hbEJvb2xlYW4+CisgICAgICAgIC8vIDxub2RlSWQ+LCA8c2l6
ZUluQnl0ZXM+LCA8bm9kZUNsYXNzTmFtZUluZGV4PiwgPGludGVybmFsPiwgWzxsYWJlbEluZGV4
PiwgPGNlbGxFZGRyZXNzPiwgPHdyYXBwZWRFZGRyZXNzPl0KICAgICAgICAganNvbi5hcHBlbmQo
JywnKTsKICAgICAgICAganNvbi5hcHBlbmROdW1iZXIobm9kZS5pZGVudGlmaWVyKTsKICAgICAg
ICAganNvbi5hcHBlbmQoJywnKTsKQEAgLTI0NSw2ICszOTYsMTQgQEAgU3RyaW5nIEhlYXBTbmFw
c2hvdEJ1aWxkZXI6Ompzb24oc3RkOjpmdW5jdGlvbjxib29sIChjb25zdCBIZWFwU25hcHNob3RO
b2RlJik+IGEKICAgICAgICAganNvbi5hcHBlbmROdW1iZXIoY2xhc3NOYW1lSW5kZXgpOwogICAg
ICAgICBqc29uLmFwcGVuZCgnLCcpOwogICAgICAgICBqc29uLmFwcGVuZChpc0ludGVybmFsID8g
JzEnIDogJzAnKTsKKyAgICAgICAgaWYgKG1fc25hcHNob3RUeXBlID09IFNuYXBzaG90VHlwZTo6
R0NEZWJ1Z2dpbmdTbmFwc2hvdCkgeworICAgICAgICAgICAganNvbi5hcHBlbmQoJywnKTsKKyAg
ICAgICAgICAgIGpzb24uYXBwZW5kTnVtYmVyKGxhYmVsSW5kZXgpOworICAgICAgICAgICAganNv
bi5hcHBlbmQoJywnKTsKKyAgICAgICAgICAgIGpzb24uYXBwZW5kKFN0cmluZzo6Zm9ybWF0KCJc
IiVwXCIiLCBub2RlLmNlbGwpKTsgLy8gRklYTUU6IFNob3VsZCBhZGQgU3RyaW5nQnVpbGRlcjo6
YXBwZW5kQWRkcmVzcyh2b2lkKikuCisgICAgICAgICAgICBqc29uLmFwcGVuZCgnLCcpOworICAg
ICAgICAgICAganNvbi5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIlwiJXBcIiIsIHdyYXBwZWRBZGRy
ZXNzKSk7CisgICAgICAgIH0KICAgICB9OwogCiAgICAgYm9vbCBmaXJzdEVkZ2UgPSB0cnVlOwpA
QCAtMjg1LDExICs0NDQsMjEgQEAgU3RyaW5nIEhlYXBTbmFwc2hvdEJ1aWxkZXI6Ompzb24oc3Rk
OjpmdW5jdGlvbjxib29sIChjb25zdCBIZWFwU25hcHNob3ROb2RlJik+IGEKICAgICAvLyB2ZXJz
aW9uCiAgICAganNvbi5hcHBlbmRMaXRlcmFsKCJcInZlcnNpb25cIjoxIik7CiAKKyAgICAvLyB0
eXBlCisgICAganNvbi5hcHBlbmQoJywnKTsKKyAgICBqc29uLmFwcGVuZExpdGVyYWwoIlwidHlw
ZVwiOiIpOworICAgIGpzb24uYXBwZW5kUXVvdGVkSlNPTlN0cmluZyhzbmFwc2hvdFR5cGVUb1N0
cmluZyhtX3NuYXBzaG90VHlwZSkpOworCiAgICAgLy8gbm9kZXMKICAgICBqc29uLmFwcGVuZCgn
LCcpOwogICAgIGpzb24uYXBwZW5kTGl0ZXJhbCgiXCJub2Rlc1wiOiIpOwogICAgIGpzb24uYXBw
ZW5kKCdbJyk7Ci0gICAganNvbi5hcHBlbmRMaXRlcmFsKCIwLDAsMCwwIik7IC8vIDxyb290Pgor
ICAgIC8vIDxyb290PgorICAgIGlmIChtX3NuYXBzaG90VHlwZSA9PSBTbmFwc2hvdFR5cGU6OkdD
RGVidWdnaW5nU25hcHNob3QpCisgICAgICAgIGpzb24uYXBwZW5kTGl0ZXJhbCgiMCwwLDAsMCww
LFwiMHgwXCIsXCIweDBcIiIpOworICAgIGVsc2UKKyAgICAgICAganNvbi5hcHBlbmRMaXRlcmFs
KCIwLDAsMCwwIik7CisKICAgICBmb3IgKEhlYXBTbmFwc2hvdCogc25hcHNob3QgPSBtX3Byb2Zp
bGVyLm1vc3RSZWNlbnRTbmFwc2hvdCgpOyBzbmFwc2hvdDsgc25hcHNob3QgPSBzbmFwc2hvdC0+
cHJldmlvdXMoKSkgewogICAgICAgICBmb3IgKGF1dG8mIG5vZGUgOiBzbmFwc2hvdC0+bV9ub2Rl
cykKICAgICAgICAgICAgIGFwcGVuZE5vZGVKU09OKG5vZGUpOwpAQCAtMzIzLDggKzQ5MiwxMSBA
QCBTdHJpbmcgSGVhcFNuYXBzaG90QnVpbGRlcjo6anNvbihzdGQ6OmZ1bmN0aW9uPGJvb2wgKGNv
bnN0IEhlYXBTbmFwc2hvdE5vZGUmKT4gYQogICAgICAgICAgICAgZWRnZS5mcm9tLmlkZW50aWZp
ZXIgPSAwOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGF1dG8gZnJvbUxvb2t1cCA9IGFs
bG93ZWROb2RlSWRlbnRpZmllcnMuZmluZChlZGdlLmZyb20uY2VsbCk7Ci0gICAgICAgICAgICBp
ZiAoZnJvbUxvb2t1cCA9PSBhbGxvd2VkTm9kZUlkZW50aWZpZXJzLmVuZCgpKQorICAgICAgICAg
ICAgaWYgKGZyb21Mb29rdXAgPT0gYWxsb3dlZE5vZGVJZGVudGlmaWVycy5lbmQoKSkgeworICAg
ICAgICAgICAgICAgIGlmIChtX3NuYXBzaG90VHlwZSA9PSBTbmFwc2hvdFR5cGU6OkdDRGVidWdn
aW5nU25hcHNob3QpCisgICAgICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiRmFpbGVkIHRv
IGZpbmQgbm9kZSBmb3IgZnJvbS1lZGdlIGNlbGwgJXAiLCBlZGdlLmZyb20uY2VsbCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBlZGdl
LmZyb20uaWRlbnRpZmllciA9IGZyb21Mb29rdXAtPnZhbHVlOwogICAgICAgICB9CiAKQEAgLTMz
MiwxMyArNTA0LDE3IEBAIFN0cmluZyBIZWFwU25hcHNob3RCdWlsZGVyOjpqc29uKHN0ZDo6ZnVu
Y3Rpb248Ym9vbCAoY29uc3QgSGVhcFNuYXBzaG90Tm9kZSYpPiBhCiAgICAgICAgICAgICBlZGdl
LnRvLmlkZW50aWZpZXIgPSAwOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGF1dG8gdG9M
b29rdXAgPSBhbGxvd2VkTm9kZUlkZW50aWZpZXJzLmZpbmQoZWRnZS50by5jZWxsKTsKLSAgICAg
ICAgICAgIGlmICh0b0xvb2t1cCA9PSBhbGxvd2VkTm9kZUlkZW50aWZpZXJzLmVuZCgpKQorICAg
ICAgICAgICAgaWYgKHRvTG9va3VwID09IGFsbG93ZWROb2RlSWRlbnRpZmllcnMuZW5kKCkpIHsK
KyAgICAgICAgICAgICAgICBpZiAobV9zbmFwc2hvdFR5cGUgPT0gU25hcHNob3RUeXBlOjpHQ0Rl
YnVnZ2luZ1NuYXBzaG90KQorICAgICAgICAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkZhaWxl
ZCB0byBmaW5kIG5vZGUgZm9yIHRvLWVkZ2UgY2VsbCAlcCIsIGVkZ2UudG8uY2VsbCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBlZGdl
LnRvLmlkZW50aWZpZXIgPSB0b0xvb2t1cC0+dmFsdWU7CiAgICAgICAgIH0KIAogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfSk7CisKICAgICBhbGxvd2VkTm9kZUlkZW50aWZpZXJzLmNsZWFy
KCk7CiAgICAgbV9lZGdlcy5zaHJpbmtUb0ZpdCgpOwogCkBAIC0zODYsNiArNTYyLDczIEBAIFN0
cmluZyBIZWFwU25hcHNob3RCdWlsZGVyOjpqc29uKHN0ZDo6ZnVuY3Rpb248Ym9vbCAoY29uc3Qg
SGVhcFNuYXBzaG90Tm9kZSYpPiBhCiAgICAgb3JkZXJlZEVkZ2VOYW1lcy5jbGVhcigpOwogICAg
IGpzb24uYXBwZW5kKCddJyk7CiAKKyAgICBpZiAobV9zbmFwc2hvdFR5cGUgPT0gU25hcHNob3RU
eXBlOjpHQ0RlYnVnZ2luZ1NuYXBzaG90KSB7CisgICAgICAgIGpzb24uYXBwZW5kKCcsJyk7Cisg
ICAgICAgIGpzb24uYXBwZW5kTGl0ZXJhbCgiXCJyb290c1wiOiIpOworICAgICAgICBqc29uLmFw
cGVuZCgnWycpOworICAgICAgICAKKyAgICAgICAgSGVhcFNuYXBzaG90KiBzbmFwc2hvdCA9IG1f
cHJvZmlsZXIubW9zdFJlY2VudFNuYXBzaG90KCk7CisKKyAgICAgICAgYm9vbCBmaXJzdE5vZGUg
PSB0cnVlOworICAgICAgICBmb3IgKGF1dG8gaXQgOiBtX3Jvb3REYXRhKSB7CisgICAgICAgICAg
ICBhdXRvIHNuYXBzaG90Tm9kZSA9IHNuYXBzaG90LT5ub2RlRm9yQ2VsbChpdC5rZXkpOworICAg
ICAgICAgICAgaWYgKCFzbmFwc2hvdE5vZGUpIHsKKyAgICAgICAgICAgICAgICBXVEZMb2dBbHdh
eXMoIkZhaWxlZCB0byBmaW5kIHNuYXBzaG90IG5vZGUgZm9yIGNlbGwgJXAiLCBpdC5rZXkpOwor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBp
ZiAoIWZpcnN0Tm9kZSkKKyAgICAgICAgICAgICAgICBqc29uLmFwcGVuZCgnLCcpOworCisgICAg
ICAgICAgICBmaXJzdE5vZGUgPSBmYWxzZTsKKyAgICAgICAgICAgIGpzb24uYXBwZW5kTnVtYmVy
KHNuYXBzaG90Tm9kZS52YWx1ZSgpLmlkZW50aWZpZXIpOworICAgICAgICAgICAgCisgICAgICAg
ICAgICAvLyBNYXliZSB3ZSBzaG91bGQganVzdCBhbHdheXMgZW5jb2RlIHRoZSByb290IG5hbWVz
LgorICAgICAgICAgICAgY29uc3QgY2hhciogcm9vdE5hbWUgPSByb290VHlwZVRvU3RyaW5nKGl0
LnZhbHVlLm1hcmtSZWFzb24pOworICAgICAgICAgICAgYXV0byByZXN1bHQgPSBsYWJlbEluZGV4
ZXMuYWRkKHJvb3ROYW1lLCBuZXh0TGFiZWxJbmRleCk7CisgICAgICAgICAgICBpZiAocmVzdWx0
LmlzTmV3RW50cnkpCisgICAgICAgICAgICAgICAgbmV4dExhYmVsSW5kZXgrKzsKKyAgICAgICAg
ICAgIHVuc2lnbmVkIGxhYmVsSW5kZXggPSByZXN1bHQuaXRlcmF0b3ItPnZhbHVlOworICAgICAg
ICAgICAganNvbi5hcHBlbmQoJywnKTsKKyAgICAgICAgICAgIGpzb24uYXBwZW5kTnVtYmVyKGxh
YmVsSW5kZXgpOworCisgICAgICAgICAgICB1bnNpZ25lZCByZWFjaGFiaWxpdHlSZWFzb25JbmRl
eCA9IDA7CisgICAgICAgICAgICBpZiAoaXQudmFsdWUucmVhY2hhYmlsaXR5RnJvbU9wYXF1ZVJv
b3RSZWFzb25zKSB7CisgICAgICAgICAgICAgICAgYXV0byByZXN1bHQgPSBsYWJlbEluZGV4ZXMu
YWRkKGl0LnZhbHVlLnJlYWNoYWJpbGl0eUZyb21PcGFxdWVSb290UmVhc29ucywgbmV4dExhYmVs
SW5kZXgpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkKKyAgICAgICAg
ICAgICAgICAgICAgbmV4dExhYmVsSW5kZXgrKzsKKyAgICAgICAgICAgICAgICByZWFjaGFiaWxp
dHlSZWFzb25JbmRleCA9IHJlc3VsdC5pdGVyYXRvci0+dmFsdWU7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBqc29uLmFwcGVuZCgnLCcpOworICAgICAgICAgICAganNvbi5hcHBlbmROdW1i
ZXIocmVhY2hhYmlsaXR5UmVhc29uSW5kZXgpOworICAgICAgICB9CisKKyAgICAgICAganNvbi5h
cHBlbmQoJ10nKTsKKyAgICB9CisKKyAgICBpZiAobV9zbmFwc2hvdFR5cGUgPT0gU25hcHNob3RU
eXBlOjpHQ0RlYnVnZ2luZ1NuYXBzaG90KSB7CisgICAgICAgIC8vIGludGVybmFsIG5vZGUgZGVz
Y3JpcHRpb25zCisgICAgICAgIGpzb24uYXBwZW5kKCcsJyk7CisgICAgICAgIGpzb24uYXBwZW5k
TGl0ZXJhbCgiXCJsYWJlbHNcIjoiKTsKKyAgICAgICAganNvbi5hcHBlbmQoJ1snKTsKKworICAg
ICAgICBWZWN0b3I8U3RyaW5nPiBvcmRlcmVkTGFiZWxzKGxhYmVsSW5kZXhlcy5zaXplKCkpOwor
ICAgICAgICBmb3IgKGF1dG8mIGVudHJ5IDogbGFiZWxJbmRleGVzKQorICAgICAgICAgICAgb3Jk
ZXJlZExhYmVsc1tlbnRyeS52YWx1ZV0gPSBlbnRyeS5rZXk7CisgICAgICAgIGxhYmVsSW5kZXhl
cy5jbGVhcigpOworICAgICAgICBib29sIGZpcnN0TGFiZWwgPSB0cnVlOworICAgICAgICBmb3Ig
KGF1dG8mIGxhYmVsIDogb3JkZXJlZExhYmVscykgeworICAgICAgICAgICAgaWYgKCFmaXJzdExh
YmVsKQorICAgICAgICAgICAgICAgIGpzb24uYXBwZW5kKCcsJyk7CisKKyAgICAgICAgICAgIGZp
cnN0TGFiZWwgPSBmYWxzZTsKKyAgICAgICAgICAgIGpzb24uYXBwZW5kUXVvdGVkSlNPTlN0cmlu
ZyhsYWJlbCk7CisgICAgICAgIH0KKyAgICAgICAgb3JkZXJlZExhYmVscy5jbGVhcigpOworCisg
ICAgICAgIGpzb24uYXBwZW5kKCddJyk7CisgICAgfQorCiAgICAganNvbi5hcHBlbmQoJ30nKTsK
ICAgICByZXR1cm4ganNvbi50b1N0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5oCmluZGV4IDBlZDg1ZDE5ZjQ4ZTc0YTM4YjQ2
NjkxN2EyZGE1MzBkYTRjMTNjYjIuLmY5ZWFiNDA3NjkyZWI1MzE5NzE0MThjMGZiZmRiN2RjOTNi
YWY3OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hv
dEJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RC
dWlsZGVyLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJT
bG90VmlzaXRvci5oIgogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0xvY2su
aD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0zMywxMCArMzQsMTMgQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKK2NsYXNzIENvbnNlcnZhdGl2ZVJvb3RzOwogY2xhc3MgSGVhcFByb2ZpbGVy
OwogY2xhc3MgSGVhcFNuYXBzaG90OwogY2xhc3MgSlNDZWxsOwogCit0eXBlZGVmIHVuc2lnbmVk
IE5vZGVJZGVudGlmaWVyOworCiBzdHJ1Y3QgSGVhcFNuYXBzaG90Tm9kZSB7CiAgICAgSGVhcFNu
YXBzaG90Tm9kZShKU0NlbGwqIGNlbGwsIHVuc2lnbmVkIGlkZW50aWZpZXIpCiAgICAgICAgIDog
Y2VsbChjZWxsKQpAQCAtNDQsNyArNDgsNyBAQCBzdHJ1Y3QgSGVhcFNuYXBzaG90Tm9kZSB7CiAg
ICAgeyB9CiAKICAgICBKU0NlbGwqIGNlbGw7Ci0gICAgdW5zaWduZWQgaWRlbnRpZmllcjsKKyAg
ICBOb2RlSWRlbnRpZmllciBpZGVudGlmaWVyOwogfTsKIAogZW51bSBjbGFzcyBFZGdlVHlwZSA6
IHVpbnQ4X3QgewpAQCAtODIsMTIgKzg2LDEyIEBAIHN0cnVjdCBIZWFwU25hcHNob3RFZGdlIHsK
IAogICAgIHVuaW9uIHsKICAgICAgICAgSlNDZWxsICpjZWxsOwotICAgICAgICB1bnNpZ25lZCBp
ZGVudGlmaWVyOworICAgICAgICBOb2RlSWRlbnRpZmllciBpZGVudGlmaWVyOwogICAgIH0gZnJv
bTsKIAogICAgIHVuaW9uIHsKICAgICAgICAgSlNDZWxsICpjZWxsOwotICAgICAgICB1bnNpZ25l
ZCBpZGVudGlmaWVyOworICAgICAgICBOb2RlSWRlbnRpZmllciBpZGVudGlmaWVyOwogICAgIH0g
dG87CiAKICAgICB1bmlvbiB7CkBAIC0xMDEsMzMgKzEwNSw0NyBAQCBzdHJ1Y3QgSGVhcFNuYXBz
aG90RWRnZSB7CiBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBIZWFwU25hcHNob3RCdWlsZGVyIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBIZWFwU25hcHNob3RC
dWlsZGVyKEhlYXBQcm9maWxlciYpOworICAgIGVudW0gU25hcHNob3RUeXBlIHsgSW5zcGVjdG9y
U25hcHNob3QsIEdDRGVidWdnaW5nU25hcHNob3QgfTsKKworICAgIEhlYXBTbmFwc2hvdEJ1aWxk
ZXIoSGVhcFByb2ZpbGVyJiwgU25hcHNob3RUeXBlID0gU25hcHNob3RUeXBlOjpJbnNwZWN0b3JT
bmFwc2hvdCk7CiAgICAgfkhlYXBTbmFwc2hvdEJ1aWxkZXIoKTsKIAotICAgIHN0YXRpYyB1bnNp
Z25lZCBuZXh0QXZhaWxhYmxlT2JqZWN0SWRlbnRpZmllcjsKLSAgICBzdGF0aWMgdW5zaWduZWQg
Z2V0TmV4dE9iamVjdElkZW50aWZpZXIoKTsKICAgICBzdGF0aWMgdm9pZCByZXNldE5leHRBdmFp
bGFibGVPYmplY3RJZGVudGlmaWVyKCk7CiAKICAgICAvLyBQZXJmb3JtcyBhIGdhcmJhZ2UgY29s
bGVjdGlvbiB0aGF0IGJ1aWxkcyBhIHNuYXBzaG90IG9mIGFsbCBsaXZlIGNlbGxzLgogICAgIHZv
aWQgYnVpbGRTbmFwc2hvdCgpOwogCi0gICAgLy8gQSBtYXJrZWQgY2VsbC4KKyAgICAvLyBBIHJv
b3Qgb3IgbWFya2VkIGNlbGwuCiAgICAgdm9pZCBhcHBlbmROb2RlKEpTQ2VsbCopOwogCiAgICAg
Ly8gQSByZWZlcmVuY2UgZnJvbSBvbmUgY2VsbCB0byBhbm90aGVyLgotICAgIHZvaWQgYXBwZW5k
RWRnZShKU0NlbGwqIGZyb20sIEpTQ2VsbCogdG8pOworICAgIHZvaWQgYXBwZW5kRWRnZShKU0Nl
bGwqIGZyb20sIEpTQ2VsbCogdG8sIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbik7CiAgICAg
dm9pZCBhcHBlbmRQcm9wZXJ0eU5hbWVFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgVW5p
cXVlZFN0cmluZ0ltcGwqIHByb3BlcnR5TmFtZSk7CiAgICAgdm9pZCBhcHBlbmRWYXJpYWJsZU5h
bWVFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgVW5pcXVlZFN0cmluZ0ltcGwqIHZhcmlh
YmxlTmFtZSk7CiAgICAgdm9pZCBhcHBlbmRJbmRleEVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwq
IHRvLCB1aW50MzJfdCBpbmRleCk7CiAKKyAgICB2b2lkIHNldE9wYXF1ZVJvb3RSZWFjaGFiaWxp
dHlSZWFzb25Gb3JDZWxsKEpTQ2VsbCosIGNvbnN0IGNoYXIqKTsKKyAgICB2b2lkIHNldFdyYXBw
ZWRPYmplY3RGb3JDZWxsKEpTQ2VsbCosIHZvaWQqKTsKKyAgICB2b2lkIHNldExhYmVsRm9yQ2Vs
bChKU0NlbGwqLCBjb25zdCBTdHJpbmcmKTsKKwogICAgIFN0cmluZyBqc29uKCk7CiAgICAgU3Ry
aW5nIGpzb24oc3RkOjpmdW5jdGlvbjxib29sIChjb25zdCBIZWFwU25hcHNob3ROb2RlJik+IGFs
bG93Tm9kZUNhbGxiYWNrKTsKIAogcHJpdmF0ZToKKyAgICBzdGF0aWMgTm9kZUlkZW50aWZpZXIg
bmV4dEF2YWlsYWJsZU9iamVjdElkZW50aWZpZXI7CisgICAgc3RhdGljIE5vZGVJZGVudGlmaWVy
IGdldE5leHRPYmplY3RJZGVudGlmaWVyKCk7CisKICAgICAvLyBGaW5hbGl6ZWQgc25hcHNob3Rz
IGFyZSBub3QgbW9kaWZpZWQgZHVyaW5nIGJ1aWxkaW5nLiBTbyBzZWFyY2hpbmcgdGhlbQogICAg
IC8vIGZvciBhbiBleGlzdGluZyBub2RlIGNhbiBiZSBkb25lIGNvbmN1cnJlbnRseSB3aXRob3V0
IGEgbG9jay4KLSAgICBib29sIGhhc0V4aXN0aW5nTm9kZUZvckNlbGwoSlNDZWxsKik7Ci0KKyAg
ICBib29sIHByZXZpb3VzU25hcHNob3RIYXNOb2RlRm9yQ2VsbChKU0NlbGwqLCBOb2RlSWRlbnRp
ZmllciYpOworICAgIAorICAgIFN0cmluZyBkZXNjcmlwdGlvbkZvckNlbGwoSlNDZWxsKikgY29u
c3Q7CisgICAgCisgICAgc3RydWN0IFJvb3REYXRhIHsKKyAgICAgICAgY29uc3QgY2hhciogcmVh
Y2hhYmlsaXR5RnJvbU9wYXF1ZVJvb3RSZWFzb25zIHsgbnVsbHB0ciB9OworICAgICAgICBTbG90
VmlzaXRvcjo6Um9vdE1hcmtSZWFzb24gbWFya1JlYXNvbiB7IFNsb3RWaXNpdG9yOjpSb290TWFy
a1JlYXNvbjo6Tm9uZSB9OworICAgIH07CisgICAgCiAgICAgSGVhcFByb2ZpbGVyJiBtX3Byb2Zp
bGVyOwogCiAgICAgLy8gU2xvdFZpc2l0b3JzIHJ1biBpbiBwYXJhbGxlbC4KQEAgLTEzNSw2ICsx
NTMsMTAgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGVhcFNuYXBzaG90PiBtX3Nu
YXBzaG90OwogICAgIExvY2sgbV9idWlsZGluZ0VkZ2VNdXRleDsKICAgICBWZWN0b3I8SGVhcFNu
YXBzaG90RWRnZT4gbV9lZGdlczsKKyAgICBIYXNoTWFwPEpTQ2VsbCosIFJvb3REYXRhPiBtX3Jv
b3REYXRhOworICAgIEhhc2hNYXA8SlNDZWxsKiwgdm9pZCo+IG1fd3JhcHBlZE9iamVjdFBvaW50
ZXJzOworICAgIEhhc2hNYXA8SlNDZWxsKiwgU3RyaW5nPiBtX2NlbGxMYWJlbHM7CisgICAgU25h
cHNob3RUeXBlIG1fc25hcHNob3RUeXBlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAKaW5kZXggYjg5Njg2ZTU0NWE4
ZTcwYjI4OWQxYjQyMTg2OGU5YTgyZGZkNzA2MC4uNzc4NTExMDU1ZTRhMjAzYmJmOGUwODZjMTUz
YmE4MjczNGQ3ZGVkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xv
dFZpc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9y
LmNwcApAQCAtMjI0LDcgKzIyNCw3IEBAIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZEpTQ2VsbE9y
QXV4aWxpYXJ5KEhlYXBDZWxsKiBoZWFwQ2VsbCkKIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZFNs
b3coSlNDZWxsKiBjZWxsLCBEZXBlbmRlbmN5IGRlcGVuZGVuY3kpCiB7CiAgICAgaWYgKFVOTElL
RUxZKG1faGVhcFNuYXBzaG90QnVpbGRlcikpCi0gICAgICAgIG1faGVhcFNuYXBzaG90QnVpbGRl
ci0+YXBwZW5kRWRnZShtX2N1cnJlbnRDZWxsLCBjZWxsKTsKKyAgICAgICAgbV9oZWFwU25hcHNo
b3RCdWlsZGVyLT5hcHBlbmRFZGdlKG1fY3VycmVudENlbGwsIGNlbGwsIG1fcm9vdE1hcmtSZWFz
b24pOwogICAgIAogICAgIGFwcGVuZEhpZGRlblNsb3dJbXBsKGNlbGwsIGRlcGVuZGVuY3kpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKaW5kZXggZThhMjc3NDNh
NmM2M2IxMmFkOTk3NzNhYmQyNjBkODM5YWQzMTczMS4uZWU1OTBlZmEwNTc5NTdhNTk5OGJlMWRj
NjlhYTNkMDUxYjczMTM3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
U2xvdFZpc2l0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRv
ci5oCkBAIC01Nyw2ICs1NywyMyBAQCBjbGFzcyBTbG90VmlzaXRvciB7CiAgICAgZnJpZW5kIGNs
YXNzIEhlYXA7CiAKIHB1YmxpYzoKKyAgICBlbnVtIFJvb3RNYXJrUmVhc29uIHsKKyAgICAgICAg
Tm9uZSwKKyAgICAgICAgQ29uc2VydmF0aXZlU2NhbiwKKyAgICAgICAgU3Ryb25nUmVmZXJlbmNl
cywKKyAgICAgICAgUHJvdGVjdGVkVmFsdWVzLAorICAgICAgICBNYXJrTGlzdFNldCwKKyAgICAg
ICAgVk1FeGNlcHRpb25zLAorICAgICAgICBTdHJvbmdIYW5kbGVzLAorICAgICAgICBEZWJ1Z2dl
ciwKKyAgICAgICAgSklUU3R1YlJvdXRpbmVzLAorICAgICAgICBXZWFrU2V0cywKKyAgICAgICAg
T3V0cHV0LAorICAgICAgICBERkdXb3JrTGlzdHMsCisgICAgICAgIENvZGVCbG9ja3MsCisgICAg
ICAgIERPTUdDT3V0cHV0LAorICAgIH07CisKICAgICBTbG90VmlzaXRvcihIZWFwJiwgQ1N0cmlu
ZyBjb2RlTmFtZSk7CiAgICAgflNsb3RWaXNpdG9yKCk7CiAKQEAgLTE0Miw3ICsxNTksMTEgQEAg
cHVibGljOgogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogCiAgICAgYm9vbCBp
c0J1aWxkaW5nSGVhcFNuYXBzaG90KCkgY29uc3QgeyByZXR1cm4gISFtX2hlYXBTbmFwc2hvdEJ1
aWxkZXI7IH0KKyAgICBIZWFwU25hcHNob3RCdWlsZGVyKiBoZWFwU25hcHNob3RCdWlsZGVyKCkg
Y29uc3QgeyByZXR1cm4gbV9oZWFwU25hcHNob3RCdWlsZGVyOyB9CiAgICAgCisgICAgUm9vdE1h
cmtSZWFzb24gcm9vdE1hcmtSZWFzb24oKSBjb25zdCB7IHJldHVybiBtX3Jvb3RNYXJrUmVhc29u
OyB9CisgICAgdm9pZCBzZXRSb290TWFya1JlYXNvbihSb290TWFya1JlYXNvbiByZWFzb24pIHsg
bV9yb290TWFya1JlYXNvbiA9IHJlYXNvbjsgfQorCiAgICAgSGVhcFZlcnNpb24gbWFya2luZ1Zl
cnNpb24oKSBjb25zdCB7IHJldHVybiBtX21hcmtpbmdWZXJzaW9uOyB9CiAKICAgICBib29sIG11
dGF0b3JJc1N0b3BwZWQoKSBjb25zdCB7IHJldHVybiBtX211dGF0b3JJc1N0b3BwZWQ7IH0KQEAg
LTIyNCw2ICsyNDUsNyBAQCBwcml2YXRlOgogCiAgICAgSGVhcFNuYXBzaG90QnVpbGRlciogbV9o
ZWFwU25hcHNob3RCdWlsZGVyIHsgbnVsbHB0ciB9OwogICAgIEpTQ2VsbCogbV9jdXJyZW50Q2Vs
bCB7IG51bGxwdHIgfTsKKyAgICBSb290TWFya1JlYXNvbiBtX3Jvb3RNYXJrUmVhc29uIHsgUm9v
dE1hcmtSZWFzb246Ok5vbmUgfTsKICAgICBib29sIG1faXNGaXJzdFZpc2l0IHsgZmFsc2UgfTsK
ICAgICBib29sIG1fbXV0YXRvcklzU3RvcHBlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Nhbk9w
dGltaXplRm9yU3RvcHBlZE11dGF0b3IgeyBmYWxzZSB9OwpAQCAtMjYyLDQgKzI4NCwyMyBAQCBw
cml2YXRlOgogICAgIFNsb3RWaXNpdG9yJiBtX3N0YWNrOwogfTsKIAorY2xhc3MgU2V0Um9vdE1h
cmtSZWFzb25TY29wZSB7CitwdWJsaWM6CisgICAgU2V0Um9vdE1hcmtSZWFzb25TY29wZShTbG90
VmlzaXRvciYgdmlzaXRvciwgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uIHJlYXNvbikKKyAg
ICAgICAgOiBtX3Zpc2l0b3IodmlzaXRvcikKKyAgICAgICAgLCBtX3ByZXZpb3VzUmVhc29uKHZp
c2l0b3Iucm9vdE1hcmtSZWFzb24oKSkKKyAgICB7CisgICAgICAgIG1fdmlzaXRvci5zZXRSb290
TWFya1JlYXNvbihyZWFzb24pOworICAgIH0KKworICAgIH5TZXRSb290TWFya1JlYXNvblNjb3Bl
KCkKKyAgICB7CisgICAgICAgIG1fdmlzaXRvci5zZXRSb290TWFya1JlYXNvbihtX3ByZXZpb3Vz
UmVhc29uKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgU2xvdFZpc2l0b3ImIG1fdmlzaXRvcjsK
KyAgICBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb24gbV9wcmV2aW91c1JlYXNvbjsKK307CisK
IH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvV2Vha0Jsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5j
cHAKaW5kZXggZjMyOGY5NmM0NTFhNTE1M2I4OWQ1YjNjNGFlNDI0ODgwNjc1ZjBjMy4uMzIzY2U2
ZmZhYzY4OGFlMTRiMTBkYzg0Yzg1ZDEyMmRmMDIxZmJhOCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvV2Vha0Jsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9XZWFrQmxvY2suY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDZWxs
Q29udGFpbmVySW5saW5lcy5oIgogI2luY2x1ZGUgIkhlYXAuaCIKKyNpbmNsdWRlICJIZWFwU25h
cHNob3RCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiV2Vha0hhbmRsZU93bmVyLmgiCkBAIC0xMTQsMTAgKzExNSwyMCBA
QCB2b2lkIFdlYWtCbG9jazo6c3BlY2lhbGl6ZWRWaXNpdChDb250YWluZXJUeXBlJiBjb250YWlu
ZXIsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgICAgICBpZiAoY29udGFpbmVyLmlzTWFya2Vk
KG1hcmtpbmdWZXJzaW9uLCBqc1ZhbHVlLmFzQ2VsbCgpKSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAKLSAgICAgICAgaWYgKCF3ZWFrSGFuZGxlT3duZXItPmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEhhbmRsZTxVbmtub3duPjo6d3JhcFNsb3QoJmNvbnN0X2Nhc3Q8SlNWYWx1
ZSY+KGpzVmFsdWUpKSwgd2Vha0ltcGwtPmNvbnRleHQoKSwgdmlzaXRvcikpCisgICAgICAgIGNv
bnN0IGNoYXIqIHJlYXNvbiA9ICIiOworICAgICAgICBjb25zdCBjaGFyKiogcmVhc29uUHRyID0g
bnVsbHB0cjsKKyAgICAgICAgaWYgKFVOTElLRUxZKHZpc2l0b3IuaXNCdWlsZGluZ0hlYXBTbmFw
c2hvdCgpKSkKKyAgICAgICAgICAgIHJlYXNvblB0ciA9ICZyZWFzb247CisKKyAgICAgICAgaWYg
KCF3ZWFrSGFuZGxlT3duZXItPmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEhhbmRsZTxVbmtu
b3duPjo6d3JhcFNsb3QoJmNvbnN0X2Nhc3Q8SlNWYWx1ZSY+KGpzVmFsdWUpKSwgd2Vha0ltcGwt
PmNvbnRleHQoKSwgdmlzaXRvciwgcmVhc29uUHRyKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
CiAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQoanNWYWx1ZSk7CisKKyAgICAgICAg
aWYgKFVOTElLRUxZKHZpc2l0b3IuaXNCdWlsZGluZ0hlYXBTbmFwc2hvdCgpKSkgeworICAgICAg
ICAgICAgaWYgKGpzVmFsdWUuaXNDZWxsKCkpCisgICAgICAgICAgICAgICAgdmlzaXRvci5oZWFw
U25hcHNob3RCdWlsZGVyKCktPnNldE9wYXF1ZVJvb3RSZWFjaGFiaWxpdHlSZWFzb25Gb3JDZWxs
KGpzVmFsdWUuYXNDZWxsKCksICpyZWFzb25QdHIpOworICAgICAgICB9CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrSGFuZGxlT3duZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0hhbmRsZU93bmVyLmNwcAppbmRleCAw
NDQ1MThmN2EzMTMwN2NmMzY2YzE4ZmEzYjJlNjdmZGU4MDVmZTFjLi40NTcyNDA1OTc3ZjU5NzFh
MTc3NzVkZTRiOWU0MWFkNmM0ZTI3YWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9XZWFrSGFuZGxlT3duZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL1dlYWtIYW5kbGVPd25lci5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgV2Vha0hhbmRsZU93bmVy
Ojp+V2Vha0hhbmRsZU93bmVyKCkKIHsKIH0KIAotYm9vbCBXZWFrSGFuZGxlT3duZXI6OmlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEhhbmRsZTxVbmtub3duPiwgdm9pZCosIFNsb3RWaXNpdG9y
JikKK2Jvb2wgV2Vha0hhbmRsZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhIYW5k
bGU8VW5rbm93bj4sIHZvaWQqLCBTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKikKIHsKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9X
ZWFrSGFuZGxlT3duZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtIYW5kbGVP
d25lci5oCmluZGV4IDIxOWE5YzU5MTg5ZGQxNDEzZTRlYTZlNzI0ZDdkYTFhMzY1MDVkYjEuLjQ1
MDQ1NmY0MDE2OWE3YTQ1NjQwYjVlNjU1NDc2OGVkZDQxNWU5MmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtIYW5kbGVPd25lci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL1dlYWtIYW5kbGVPd25lci5oCkBAIC0zNCw3ICszNCw4IEBAIGNsYXNz
IFNsb3RWaXNpdG9yOwogY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgV2Vha0hhbmRsZU93bmVyIHsK
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWFrSGFuZGxlT3duZXIoKTsKLSAgICB2aXJ0dWFsIGJv
b2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSGFuZGxlPFVua25vd24+LCB2b2lkKiBjb250
ZXh0LCBTbG90VmlzaXRvciYpOworICAgIC8vIHJlYXNvbiB3aWxsIG9ubHkgYmUgbm9uLW51bGwg
d2hlbiBnZW5lcmF0aW5nIGEgZGVidWcgR0MgaGVhcCBzbmFwc2hvdC4KKyAgICB2aXJ0dWFsIGJv
b2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSGFuZGxlPFVua25vd24+LCB2b2lkKiBjb250
ZXh0LCBTbG90VmlzaXRvciYsIGNoYXIgY29uc3QqKiByZWFzb24gPSBudWxscHRyKTsKICAgICB2
aXJ0dWFsIHZvaWQgZmluYWxpemUoSGFuZGxlPFVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVk
QXJyYXlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBs
ZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcAppbmRleCBhMjUwMjhjZDc1MmY4M2Y3YWQ2NjY3ODNm
ZTYyYmM5YTUxMGM3YTM2Li42YWZlMjMwOWYxNGEyMWYzOGQzM2UzMTIxOWJiNTcwOTMyMmI5YzBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaW1wbGVUeXBlZEFy
cmF5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2lt
cGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwCkBAIC01OCw4ICs1OCwxMCBAQCBib29sIFNpbXBs
ZVR5cGVkQXJyYXlDb250cm9sbGVyOjppc0F0b21pY3NXYWl0QWxsb3dlZE9uQ3VycmVudFRocmVh
ZCgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xs
ZXI6OkpTQXJyYXlCdWZmZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBKU0M6OlNsb3RWaXNpdG9yJiB2aXNp
dG9yKQorYm9vbCBTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZlck93bmVy
Ojppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhh
bmRsZSwgdm9pZCosIEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFz
b24pCiB7CisgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICpyZWFzb24gPSAiSlNB
cnJheUJ1ZmZlciBpcyBvcGFxdWUgcm9vdCI7CiAgICAgYXV0byYgd3JhcHBlciA9ICpKU0M6Ompz
Q2FzdDxKU0M6OkpTQXJyYXlCdWZmZXIqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAg
cmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KHdyYXBwZXIuaW1wbCgpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlD
b250cm9sbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaW1wbGVUeXBlZEFy
cmF5Q29udHJvbGxlci5oCmluZGV4IGQyYjAzYzI2Mzk1OTBkMzdlY2QxMmM2YTk5OGQzNTY5YmFl
Mjc5YTYuLjMzZDA4OWY2MTdiZDg4Y2JlNGRmODFjNDExYmRmNGU0MGM3N2Q1MTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRBcnJh
eUNvbnRyb2xsZXIuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGNs
YXNzIEpTQXJyYXlCdWZmZXJPd25lciA6IHB1YmxpYyBXZWFrSGFuZGxlT3duZXIgewogICAgIHB1
YmxpYzoKLSAgICAgICAgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBTbG90VmlzaXRvciYpIG92ZXJyaWRlOwor
ICAgICAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIFNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqIHJlYXNv
bikgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGU7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCmluZGV4IDhkNzU0ODQ0NjVmNTU2MWNkYzc3ZWVk
MGZkNTliNGRjNTFkN2ZmYWEuLmJmYzJhOTg3NDI4YTc3NWI5YWUyOTE4OWZlY2YwNWQyNGU4ZWVj
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKQEAgLTEw
NCw4ICsxMDQsMTAgQEAgcHJpdmF0ZToKIAogY2xhc3MgRWxlbWVudEhhbmRsZU93bmVyIDogcHVi
bGljIFdlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgYm9vbCBpc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRv
ciYgdmlzaXRvcikgb3ZlcnJpZGUKKyAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KEhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9y
LCBjb25zdCBjaGFyKiogcmVhc29uKSBvdmVycmlkZQogICAgIHsKKyAgICAgICAgaWYgKFVOTElL
RUxZKHJlYXNvbikpCisgICAgICAgICAgICAqcmVhc29uID0gIkpTQzo6RWxlbWVudCBpcyBvcGFx
dWUgcm9vdCI7CiAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBqc0Nhc3Q8RWxlbWVudCo+KGhh
bmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICAgICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNP
cGFxdWVSb290KGVsZW1lbnQtPnJvb3QoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA4YjAy
NjAxY2I4OTBkYTlmYzRlMWQwYjliN2Q4YzM0YTU5MGUyOWYzLi5lNTMzY2I4NzgzZThjYzZmYjE3
MzE1NmYyODFmNWY1NjRkZjBhODViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMzY5LDYgKzM2OSw3IEBA
IGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydE51bWJlcnMuY3BwCiBiaW5kaW5ncy9qcy9KU0RPTUNv
bnZlcnRTdHJpbmdzLmNwcAogYmluZGluZ3MvanMvSlNET01Db252ZXJ0V2ViR0wuY3BwCiBiaW5k
aW5ncy9qcy9KU0RPTUl0ZXJhdG9yLmNwcAorYmluZGluZ3MvanMvSlNET01Ub2tlbkxpc3RDdXN0
b20uY3BwCiBiaW5kaW5ncy9qcy9KU0RlcHJlY2F0ZWRDU1NPTVZhbHVlQ3VzdG9tLmNwcAogYmlu
ZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwCiBiaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxNjczYWE5YTUzMGNhM2QyZTkxNjg1ZmExYzQwNTFh
MmVlNTkxMGRiLi41MjhhODRjOWMwY2NmMjAzMTZiZmU4YTRlMWExZDAwYjU4ZjFmOWY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC01NjAzLDYgKzU2MDMsNyBAQAogCQkwRjQ5NjZBNzFEQjQwQzQzMDBBMjc0QkIgLyogSlNET01Q
b2ludEluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01Qb2ludElu
aXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0OTY2QTgxREI0MEM0MzAwQTI3
NEJCIC8qIEpTRE9NUG9pbnRSZWFkT25seS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0RPTVBvaW50UmVhZE9ubHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjQ5NjZBOTFEQjQwQzQzMDBBMjc0QkIgLyogSlNET01Qb2ludFJlYWRPbmx5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NUG9pbnRSZWFkT25seS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjRBNkY5ODIwQzFDM0YyMDA2NzIwRDEgLyog
SlNET01Ub2tlbkxpc3RDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNET01Ub2tlbkxpc3RDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjRFNTcxNjEzMTMyNzYyMDBDRjg1QUYgLyogUmVuZGVyU1ZHQWxsSW5PbmUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHQWxsSW5PbmUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU0RENFMzE4ODEwNTFEMDAzRUVEQkIg
LyogVGV4dEF1dG9TaXppbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVGV4dEF1dG9TaXppbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU0
RENFNDE4ODEwNTFEMDAzRUVEQkIgLyogVGV4dEF1dG9TaXppbmcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVGV4dEF1dG9TaXppbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE5NzgwLDYgKzE5NzgxLDcgQEAKIAkJCQlBRERBOTRCRjE5Njg2RjgwMDA0NTMw
MjkgLyogSlNEb2N1bWVudEN1c3RvbS5oICovLAogCQkJCTdDMzNGMzYwMUI0QTA1MDQwMDUwMkNB
RiAvKiBKU0RvY3VtZW50RnJhZ21lbnRDdXN0b20uY3BwICovLAogCQkJCTBGOTRBMzk1MUVGMUIx
MDUwMEZCQUZGQiAvKiBKU0RPTVF1YWRDdXN0b20uY3BwICovLAorCQkJCTBGNEE2Rjk4MjBDMUMz
RjIwMDY3MjBEMSAvKiBKU0RPTVRva2VuTGlzdEN1c3RvbS5jcHAgKi8sCiAJCQkJQkMyRUQ1NTQw
QzZCOUJEMzAwOTIwQkZGIC8qIEpTRWxlbWVudEN1c3RvbS5jcHAgKi8sCiAJCQkJQURFQzc4Rjcx
OEVFNTMwODAwMTMxNUMyIC8qIEpTRWxlbWVudEN1c3RvbS5oICovLAogCQkJCUJDRUZBRjREMEMz
MTdFNjkwMEZBODFGNiAvKiBKU0V2ZW50Q3VzdG9tLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTUdDT3V0cHV0Q29uc3RyYWludC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9ET01HQ091dHB1dENvbnN0cmFpbnQuY3BwCmluZGV4IDY4ODYz
NDNhNzc1MzQ4NDhkNGI1OWMzNGVmZjY1YmZlZDdjN2NmMjUuLjdkMjdkYTQ2NmI4NWM1ZDVjOWEx
NWI3MzkxYzEzZjk2NTJjN2M4ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0RPTUdDT3V0cHV0Q29uc3RyYWludC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvRE9NR0NPdXRwdXRDb25zdHJhaW50LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1
ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9CbG9j
a0RpcmVjdG9yeUlubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwSW5saW5l
cy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9NYXJrZWRCbG9ja0lubGluZXMuaD4KICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9TdWJzcGFjZUlubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9WTS5oPgpAQCAtNjEsNiArNjIsNyBAQCB2b2lkIERPTUdDT3V0cHV0Q29uc3RyYWludDo6ZXhl
Y3V0ZUltcGwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgbV9jbGllbnREYXRhLmZvckVhY2hP
dXRwdXRDb25zdHJhaW50U3BhY2UoCiAgICAgICAgIFsmXSAoU3Vic3BhY2UmIHN1YnNwYWNlKSB7
CiAgICAgICAgICAgICBhdXRvIGZ1bmMgPSBbXSAoU2xvdFZpc2l0b3ImIHZpc2l0b3IsIEhlYXBD
ZWxsKiBoZWFwQ2VsbCwgSGVhcENlbGw6OktpbmQpIHsKKyAgICAgICAgICAgICAgICBTZXRSb290
TWFya1JlYXNvblNjb3BlIHJvb3RTY29wZSh2aXNpdG9yLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtS
ZWFzb246OkRPTUdDT3V0cHV0KTsKICAgICAgICAgICAgICAgICBKU0NlbGwqIGNlbGwgPSBzdGF0
aWNfY2FzdDxKU0NlbGwqPihoZWFwQ2VsbCk7CiAgICAgICAgICAgICAgICAgY2VsbC0+bWV0aG9k
VGFibGUodmlzaXRvci52bSgpKS0+dmlzaXRPdXRwdXRDb25zdHJhaW50cyhjZWxsLCB2aXNpdG9y
KTsKICAgICAgICAgICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9HQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9s
bGVyLmNwcAppbmRleCA0Mzg1NmY1ZWU1Y2FmYzIzZjU2M2Q1ZmM3NjU0OTlhNmY2YWMyMWU1Li44
YzQ2NDZjZjJmM2ExZDA3YTMwZjYzOGM4YzU2NmQ0ZTE1NDNiZTkwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAKQEAgLTI3LDkgKzI3LDE0IEBACiAjaW5j
bHVkZSAiR0NDb250cm9sbGVyLmgiCiAKICNpbmNsdWRlICJDb21tb25WTS5oIgorI2luY2x1ZGUg
IkZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJKU0hUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIkxv
Y2F0aW9uLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcC5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9KU0xvY2suaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9WTS5oPgorI2luY2x1ZGUg
PHBhbC9Mb2dnaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC01
Miw2ICs1NywxMiBAQCBHQ0NvbnRyb2xsZXImIEdDQ29udHJvbGxlcjo6c2luZ2xldG9uKCkKIEdD
Q29udHJvbGxlcjo6R0NDb250cm9sbGVyKCkKICAgICA6IG1fR0NUaW1lcigqdGhpcywgJkdDQ29u
dHJvbGxlcjo6Z2NUaW1lckZpcmVkKQogeworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNl
RmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10geworICAgICAgICBQQUw6OnJl
Z2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuZHVtcEdDSGVhcCIsIFtdIHsK
KyAgICAgICAgICAgIEdDQ29udHJvbGxlcjo6c2luZ2xldG9uKCkuZHVtcEhlYXAoKTsKKyAgICAg
ICAgfSk7CisgICAgfSk7CiB9CiAKIHZvaWQgR0NDb250cm9sbGVyOjpnYXJiYWdlQ29sbGVjdFNv
b24oKQpAQCAtMTI3LDQgKzEzOCwzNiBAQCB2b2lkIEdDQ29udHJvbGxlcjo6ZGVsZXRlQWxsTGlu
a2VkQ29kZShEZWxldGVBbGxDb2RlRWZmb3J0IGVmZm9ydCkKICAgICBjb21tb25WTSgpLmRlbGV0
ZUFsbExpbmtlZENvZGUoZWZmb3J0KTsKIH0KIAordm9pZCBHQ0NvbnRyb2xsZXI6OmR1bXBIZWFw
KCkKK3sKKyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZUhhbmRsZTsKKyAg
ICBTdHJpbmcgdGVtcEZpbGVQYXRoID0gRmlsZVN5c3RlbTo6b3BlblRlbXBvcmFyeUZpbGUoQVND
SUlMaXRlcmFsKCJHQ0hlYXAiKSwgZmlsZUhhbmRsZSk7CisgICAgaWYgKCFGaWxlU3lzdGVtOjpp
c0hhbmRsZVZhbGlkKGZpbGVIYW5kbGUpKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiRHVtcGlu
ZyBHQyBoZWFwIGZhaWxlZCB0byBvcGVuIHRlbXBvcmFyeSBmaWxlIik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBWTSYgdm0gPSBjb21tb25WTSgpOworICAgIEpTTG9ja0hvbGRlciBs
b2NrKHZtKTsKKworICAgIHNhbml0aXplU3RhY2tGb3JWTSgmdm0pOworCisgICAgU3RyaW5nIGpz
b25EYXRhOworICAgIHsKKyAgICAgICAgRGVmZXJHQ0ZvckFXaGlsZSBkZWZlckdDKHZtLmhlYXAp
OworCisgICAgICAgIEhlYXBTbmFwc2hvdEJ1aWxkZXIgc25hcHNob3RCdWlsZGVyKHZtLmVuc3Vy
ZUhlYXBQcm9maWxlcigpLCBIZWFwU25hcHNob3RCdWlsZGVyOjpTbmFwc2hvdFR5cGU6OkdDRGVi
dWdnaW5nU25hcHNob3QpOworICAgICAgICBzbmFwc2hvdEJ1aWxkZXIuYnVpbGRTbmFwc2hvdCgp
OworCisgICAgICAgIGpzb25EYXRhID0gc25hcHNob3RCdWlsZGVyLmpzb24oKTsKKyAgICB9CisK
KyAgICBDU3RyaW5nIHV0ZjhTdHJpbmcgPSBqc29uRGF0YS51dGY4KCk7CisKKyAgICBGaWxlU3lz
dGVtOjp3cml0ZVRvRmlsZShmaWxlSGFuZGxlLCB1dGY4U3RyaW5nLmRhdGEoKSwgdXRmOFN0cmlu
Zy5sZW5ndGgoKSk7CisgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGZpbGVIYW5kbGUpOworICAg
IAorICAgIFdURkxvZ0Fsd2F5cygiRHVtcGVkIEdDIGhlYXAgdG8gJXMiLCB0ZW1wRmlsZVBhdGgu
dXRmOCgpLmRhdGEoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmgKaW5kZXggZWY2ZDEzODZmNzJkNTA4MTkwMzFh
NmMxZDMyNDM4YWZkZTkwZjhmMS4uMGNlNDU5NTBjNTM5MWY2MDY5NmZkNDBkODlkOTI3ZGEzODZh
ODdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmgKQEAgLTUx
LDYgKzUxLDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBHQ0NvbnRyb2xsZXIoKTsgLy8gVXNl
IHNpbmdsZXRvbigpIGluc3RlYWQuCiAKKyAgICB2b2lkIGR1bXBIZWFwKCk7CisKICAgICB2b2lk
IGdjVGltZXJGaXJlZCgpOwogICAgIFRpbWVyIG1fR0NUaW1lcjsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUxpc3RDdXN0b20uY3BwCmluZGV4IGYwNTUw
YWE2NDQzZWU5ZDQ0NjU1Yjk1YzA5NzIwZTQ2MmRjZDdiZmUuLjAyMGU0NThjMDVmYjM1MGQwMzUx
ZDA0ZGMxNzVlMTE5MzUwNjdjYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ1NTUnVsZUxpc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ1NTUnVsZUxpc3RDdXN0b20uY3BwCkBAIC0zNiwxNSArMzYsMjUgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKLWJvb2wgSlNDU1NSdWxlTGlzdE93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQorYm9vbCBKU0NTU1J1bGVMaXN0
T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFz
b24pCiB7CiAgICAgSlNDU1NSdWxlTGlzdCoganNDU1NSdWxlTGlzdCA9IGpzQ2FzdDxKU0NTU1J1
bGVMaXN0Kj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwogICAgIGlmICghanNDU1NSdWxlTGlz
dC0+aGFzQ3VzdG9tUHJvcGVydGllcygqanNDU1NSdWxlTGlzdC0+dm0oKSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBpZiAoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCA9IGpzQ1NTUnVs
ZUxpc3QtPndyYXBwZWQoKS5zdHlsZVNoZWV0KCkpCisKKyAgICBpZiAoQ1NTU3R5bGVTaGVldCog
c3R5bGVTaGVldCA9IGpzQ1NTUnVsZUxpc3QtPndyYXBwZWQoKS5zdHlsZVNoZWV0KCkpIHsKKyAg
ICAgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICAgICAqcmVhc29uID0gIkNTU1N0
eWxlU2hlZXQgaXMgb3BhcXVlIHJvb3QiOworCiAgICAgICAgIHJldHVybiB2aXNpdG9yLmNvbnRh
aW5zT3BhcXVlUm9vdChyb290KHN0eWxlU2hlZXQpKTsKLSAgICBpZiAoQ1NTUnVsZSogY3NzUnVs
ZSA9IGpzQ1NTUnVsZUxpc3QtPndyYXBwZWQoKS5pdGVtKDApKQorICAgIH0KKyAgICAKKyAgICBp
ZiAoQ1NTUnVsZSogY3NzUnVsZSA9IGpzQ1NTUnVsZUxpc3QtPndyYXBwZWQoKS5pdGVtKDApKSB7
CisgICAgICAgIGlmIChVTkxJS0VMWShyZWFzb24pKQorICAgICAgICAgICAgKnJlYXNvbiA9ICJD
U1NSdWxlIGlzIG9wYXF1ZSByb290IjsKKwogICAgICAgICByZXR1cm4gdmlzaXRvci5jb250YWlu
c09wYXF1ZVJvb3Qocm9vdChjc3NSdWxlKSk7CisgICAgfQogICAgIHJldHVybiBmYWxzZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwCmluZGV4
IDkwYTgzN2VlYWFkZDY3NzQ2NTViODYzNWRiODFkYmUyYzE1MzA0YjQuLmVlOTQwOTllNjcyOWQy
ZjA0ZmUyZjRhNzYwODczZDA4OWU3NWJjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAKQEAgLTkyLDggKzkyLDEwIEBAIHZvaWQgSlNDYWxsYmFj
a0RhdGFXZWFrOjp2aXNpdEpTRnVuY3Rpb24oSlNDOjpTbG90VmlzaXRvciYgdmlzdG9yKQogICAg
IHZpc3Rvci5hcHBlbmQobV9jYWxsYmFjayk7CiB9CiAKLWJvb2wgSlNDYWxsYmFja0RhdGFXZWFr
OjpXZWFrT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQorYm9vbCBKU0Nh
bGxiYWNrRGF0YVdlYWs6OldlYWtPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CisgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisg
ICAgICAgICpyZWFzb24gPSAiQ29udGV4dCBpcyBvcGFxdWUgcm9vdCI7IC8vIEZJWE1FOiB3aGF0
IGlzIHRoZSBjb250ZXh0LgogICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChj
b250ZXh0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
YWxsYmFja0RhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRh
LmgKaW5kZXggNjAxOTJlNjE0MjJkMTIzYTIyOTc5MjdiNWJkYWZmMDNkNDQ3ZDc2NS4uYTViYzk1
NDJlNTQ3NTIzMzRhZjBkNzkwMzA1MjYzZTk0ZmU1YmRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5oCkBAIC0xMTYsNyArMTE2LDcgQEAgcHVibGljOgog
CiBwcml2YXRlOgogICAgIGNsYXNzIFdlYWtPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVP
d25lciB7Ci0gICAgICAgIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpIG92ZXJy
aWRlOworICAgICAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBj
aGFyKiopIG92ZXJyaWRlOwogICAgIH07CiAgICAgV2Vha093bmVyIG1fd2Vha093bmVyOwogICAg
IEpTQzo6V2VhazxKU0M6OkpTT2JqZWN0PiBtX2NhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRD
dXN0b20uY3BwCmluZGV4IGYxMDE4ZjRkNTdkZmIzYjQyNTZkMTcxZWRiNjhmZGExODNjNDgwYTgu
LjRkNTAwNDI5ODA3NzUzNTgwNDkxZmFjZWMxNzBlNmJhNzc3MDI1MGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyREN1c3RvbS5jcHAKQEAgLTIyLDggKzIyLDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotYm9vbCBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRE93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIEpT
Qzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCitib29sIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4gaGFuZGxlLCB2b2lkKiwgSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioq
IHJlYXNvbikKIHsKKyAgICBpZiAoVU5MSUtFTFkocmVhc29uKSkKKyAgICAgICAgKnJlYXNvbiA9
ICJDYW52YXMgaXMgb3BhcXVlIHJvb3QiOworCiAgICAgSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQqIGpzQ2FudmFzUmVuZGVyaW5nQ29udGV4dCA9IGpzQ2FzdDxKU0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRCo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICB2b2lkKiByb290ID0gV2Vi
Q29yZTo6cm9vdChqc0NhbnZhc1JlbmRlcmluZ0NvbnRleHQtPndyYXBwZWQoKS5jYW52YXMoKSk7
CiAgICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KHJvb3QpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Ub2tlbkxpc3RDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Ub2tlbkxpc3RDdXN0b20uY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjE4MDRjNWEwZDk2NmE5OWQ5N2UwYWYwYzQxMTNlOTU2OGViZTQ5N2MKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVRva2VuTGlzdEN1c3Rv
bS5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0RPTVRva2VuTGlz
dC5oIgorCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgorCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5n
IG5hbWVzcGFjZSBKU0M7CisKK3ZvaWQgSlNET01Ub2tlbkxpc3Q6OmhlYXBTbmFwc2hvdChKU0Nl
bGwqIGNlbGwsIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTRE9NVG9rZW5MaXN0Kj4oY2VsbCk7CisgICAgYXV0byYg
d3JhcHBlZCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKTsKKworICAgIGJ1aWxkZXIuc2V0TGFiZWxG
b3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJkb2MgJXAiLCAmd3JhcHBlZC5lbGVtZW50KCku
ZG9jdW1lbnQoKSkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IDVkYjFkNWNjYmUxZmU4YjdmYTI5ZDM5ZmFh
ZGIzODgxM2JlYWU4YmUuLjM0YzJmMGU2NjEyZmU3NWMxNTQ5OGM0ZmM3MzA4NzU1NWY3ZDc5MTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5j
cHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJTY2hlZHVsZWRBY3Rpb24uaCIKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKKyNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0xvb2t1
cC5oPgogCkBAIC0yMDEsNyArMjAyLDcgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVy
dHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnQKICAgICBp
ZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdygqc3RhdGUs
IHRoaXNPYmplY3QtPndyYXBwZWQoKSwgZXJyb3JNZXNzYWdlKSkKICAgICAgICAgcmV0dXJuIGpz
RE9NV2luZG93R2V0T3duUHJvcGVydHlTbG90UmVzdHJpY3RlZEFjY2VzczxET01XaW5kb3dUeXBl
OjpMb2NhbD4odGhpc09iamVjdCwgdGhpc09iamVjdC0+d3JhcHBlZCgpLCAqc3RhdGUsIHByb3Bl
cnR5TmFtZSwgc2xvdCwgZXJyb3JNZXNzYWdlKTsKIAotICAgIC8vIEZJWE1FOiB0aGlzIG5lZWQg
bW9yZSBleHBsYW5hdGlvbi4KKyAgICAvLyBGSVhNRTogdGhpcyBuZWVkcyBtb3JlIGV4cGxhbmF0
aW9uLgogICAgIC8vIChQYXJ0aWN1bGFybHksIGlzIGl0IGNvcnJlY3QgdGhhdCB0aGlzIGV4aXN0
cyBoZXJlIGJ1dCBub3QgaW4gZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleD8pCiAgICAgc2xvdC5z
ZXRXYXRjaHBvaW50U2V0KHRoaXNPYmplY3QtPm1fd2luZG93Q2xvc2VXYXRjaHBvaW50cyk7CiAK
QEAgLTMyNyw2ICszMjgsMTUgQEAgYm9vbCBKU0RPTVdpbmRvdzo6ZGVsZXRlUHJvcGVydHlCeUlu
ZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZAogICAgIHJldHVybiBC
YXNlOjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1l
KTsKIH0KIAordm9pZCBKU0RPTVdpbmRvdzo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVh
cFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBKU0RPTVdpbmRvdyogdGhpc09iamVj
dCA9IGpzQ2FzdDxKU0RPTVdpbmRvdyo+KGNlbGwpOworICAgIGlmIChhdXRvKiBsb2NhdGlvbiA9
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sb2NhdGlvbigpKQorICAgICAgICBidWlsZGVyLnNldExh
YmVsRm9yQ2VsbChjZWxsLCBsb2NhdGlvbi0+aHJlZigpKTsKKworICAgIEJhc2U6OmhlYXBTbmFw
c2hvdChjZWxsLCBidWlsZGVyKTsKK30KKwogLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy8jY3Jvc3NvcmlnaW5wcm9wZXJ0aWVzLSgtby0pCiBzdGF0aWMgdm9pZCBhZGRDcm9zc09yaWdp
bldpbmRvd1Byb3BlcnR5TmFtZXMoRXhlY1N0YXRlJiBzdGF0ZSwgQWJzdHJhY3RET01XaW5kb3cm
IHdpbmRvdywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RlcHJlY2F0ZWRDU1NPTVZhbHVlQ3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVwcmVjYXRlZENTU09NVmFsdWVD
dXN0b20uY3BwCmluZGV4IDM1Yzc1ZmUzNDcxMjY0MjE3NzU2MDljNDQyOGNhY2YwYTNjZGYxMDMu
LmY4NmZlZTYzYzc2Yjk1NmIzZjNjMmJjYzFkMjY1ZmE4Nzc2OTU1OWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVwcmVjYXRlZENTU09NVmFsdWVDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVwcmVjYXRlZENTU09NVmFsdWVD
dXN0b20uY3BwCkBAIC0zNSwxMSArMzUsMTUgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CiAKLWJvb2wgSlNEZXByZWNhdGVkQ1NTT01WYWx1ZU93bmVyOjppc1Jl
YWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwg
dm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQorYm9vbCBKU0RlcHJlY2F0ZWRDU1NPTVZhbHVl
T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFz
b24pCiB7CiAgICAgSlNEZXByZWNhdGVkQ1NTT01WYWx1ZSoganNDU1NWYWx1ZSA9IGpzQ2FzdDxK
U0RlcHJlY2F0ZWRDU1NPTVZhbHVlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwogICAgIGlm
ICghanNDU1NWYWx1ZS0+aGFzQ3VzdG9tUHJvcGVydGllcygqanNDU1NWYWx1ZS0+dm0oKSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChVTkxJS0VMWShyZWFzb24pKQorICAgICAg
ICAqcmVhc29uID0gIkNTU1N0eWxlRGVjbGFyYXRpb24gaXMgb3BhcXVlIHJvb3QiOworCiAgICAg
cmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KHJvb3QoJmpzQ1NTVmFsdWUtPndyYXBw
ZWQoKS5vd25lcigpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
b2N1bWVudEN1c3RvbS5jcHAKaW5kZXggNjYwNWYxZTdmZjJmOTU3NmZmODlmZTcwZjFhMzQ4ZWU0
YzhiZGYzYy4uYTg0NzYyNWFhNmQ4MmZjY2U2M2Y0NWEwNDY5Nzg1MzczZTJiODg4ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKQEAgLTI2
LDYgKzI2LDcgQEAKICNpbmNsdWRlICJKU1hNTERvY3VtZW50LmgiCiAjaW5jbHVkZSAiTm9kZVRy
YXZlcnNhbC5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50LmgiCisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTkzLDQgKzk0LDExIEBAIHZvaWQgSlNEb2N1bWVudDo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4o
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHN0YXRpY19j
YXN0PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqPigmd3JhcHBlZCgpKSk7CiB9CiAKK3ZvaWQgSlNE
b2N1bWVudDo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYg
YnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTRG9jdW1lbnQqPihj
ZWxsKTsKKyAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCB0aGlzT2JqZWN0LT53cmFw
cGVkKCkudXJsKCkuc3RyaW5nKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWls
ZGVyKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcAppbmRleCAwMjIxMTI1
NjU4MTVkODk4ZTc5YzU2NzQ4NjM4NTVlYTUwMzVhOWU5Li43YzBlOTlmMmJmNjU4NDljNzk3NWZm
MWZiZTg4N2Q3YzgwY2JhODFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcApAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1
ZGUgIkpTSFRNTEFsbENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJKU0hUTUxGb3JtQ29udHJvbHND
b2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKLQorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKQEAgLTUwLDQgKzUwLDEzIEBAIEpTVmFs
dWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBIVE1MQ29sbGVjdGlvbiYKICAgICByZXR1cm4gd3JhcChzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBj
b2xsZWN0aW9uKTsKIH0KIAordm9pZCBKU0hUTUxDb2xsZWN0aW9uOjpoZWFwU25hcHNob3QoSlND
ZWxsKiBjZWxsLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0
byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0hUTUxDb2xsZWN0aW9uKj4oY2VsbCk7CisgICAgYXV0
byYgd3JhcHBlZCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKTsKKworICAgIGJ1aWxkZXIuc2V0TGFi
ZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJkb2MgJXAiLCAmd3JhcHBlZC5vd25lck5v
ZGUoKS5kb2N1bWVudCgpKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcAppbmRleCA0ZGRlZjhh
ZmM4N2IwMWRjNmE1NTFkMWI5MmRkMmZmMTk0MzBkYmUzLi4xOTVhZDAxNWNkNTk5YjQ1NjFhZTVl
YTEwZmMwOTM0NjY3NGJmNTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKQEAgLTQ0LDExICs0NCwxNCBAQCB2
b2lkIEpTTXV0YXRpb25PYnNlcnZlcjo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4oSlNDOjpTbG90
VmlzaXRvciYgdmlzaXRvcikKICAgICB3cmFwcGVkKCkuY2FsbGJhY2soKS52aXNpdEpTRnVuY3Rp
b24odmlzaXRvcik7CiB9CiAKLWJvb2wgSlNNdXRhdGlvbk9ic2VydmVyT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lk
KiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCitib29sIEpTTXV0YXRpb25PYnNlcnZlck93bmVyOjpp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRs
ZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKipyZWFzb24pCiB7CiAg
ICAgZm9yIChhdXRvKiBub2RlIDoganNDYXN0PEpTTXV0YXRpb25PYnNlcnZlcio+KGhhbmRsZS5z
bG90KCktPmFzQ2VsbCgpKS0+d3JhcHBlZCgpLm9ic2VydmVkTm9kZXMoKSkgewotICAgICAgICBp
ZiAodmlzaXRvci5jb250YWluc09wYXF1ZVJvb3Qocm9vdChub2RlKSkpCisgICAgICAgIGlmICh2
aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChyb290KG5vZGUpKSkgeworICAgICAgICAgICAgaWYg
KFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICAgICAgICAgKnJlYXNvbiA9ICJSZWFjaGFibGUg
ZnJvbSBvYnNlcnZlZCBub2RlcyI7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
fQogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOb2RlQ3VzdG9tLmNwcAppbmRleCAwOWE3MGYyMmU4OGNmMWNiOTg3YWU3ZDcxODFjZmUy
NTk1MzU5NDIyLi5jNDg1ZTMwM2Q1YTM2ZTMxMTA1ZjgzZmQ1NzRkNWMzMTE3YWIyNDkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKQEAgLTcxLDcgKzcx
LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IAotc3RhdGljIGlubGluZSBib29sIGlzUmVhY2hhYmxlRnJvbURPTShOb2RlKiBub2RlLCBTbG90
VmlzaXRvciYgdmlzaXRvcikKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc1JlYWNoYWJsZUZyb21ET00o
Tm9kZSogbm9kZSwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7
CiAgICAgaWYgKCFub2RlLT5pc0Nvbm5lY3RlZCgpKSB7CiAgICAgICAgIGlmIChpczxFbGVtZW50
Pigqbm9kZSkpIHsKQEAgLTgzLDMwICs4Myw0MiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNSZWFj
aGFibGVGcm9tRE9NKE5vZGUqIG5vZGUsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgICAgICAg
ICAgLy8gdGhlIGVsZW1lbnQgaXMgZGVzdHJveWVkLCBpdHMgbG9hZCBldmVudCB3aWxsIG5vdCBm
aXJlLgogICAgICAgICAgICAgLy8gRklYTUU6IFRoZSBET00gc2hvdWxkIG1hbmFnZSB0aGlzIGlz
c3VlIHdpdGhvdXQgdGhlIGhlbHAgb2YgSmF2YVNjcmlwdCB3cmFwcGVycy4KICAgICAgICAgICAg
IGlmIChpczxIVE1MSW1hZ2VFbGVtZW50PihlbGVtZW50KSkgewotICAgICAgICAgICAgICAgIGlm
IChkb3duY2FzdDxIVE1MSW1hZ2VFbGVtZW50PihlbGVtZW50KS5oYXNQZW5kaW5nQWN0aXZpdHko
KSkKKyAgICAgICAgICAgICAgICBpZiAoZG93bmNhc3Q8SFRNTEltYWdlRWxlbWVudD4oZWxlbWVu
dCkuaGFzUGVuZGluZ0FjdGl2aXR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFVOTElL
RUxZKHJlYXNvbikpCisgICAgICAgICAgICAgICAgICAgICAgICAqcmVhc29uID0gIkltYWdlIGVs
ZW1lbnQgd2l0aCBwZW5kaW5nIGFjdGl2aXR5IjsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogI2lmIEVOQUJMRShWSURF
TykKICAgICAgICAgICAgIGVsc2UgaWYgKGlzPEhUTUxBdWRpb0VsZW1lbnQ+KGVsZW1lbnQpKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKCFkb3duY2FzdDxIVE1MQXVkaW9FbGVtZW50PihlbGVtZW50
KS5wYXVzZWQoKSkKKyAgICAgICAgICAgICAgICBpZiAoIWRvd25jYXN0PEhUTUxBdWRpb0VsZW1l
bnQ+KGVsZW1lbnQpLnBhdXNlZCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChVTkxJS0VM
WShyZWFzb24pKQorICAgICAgICAgICAgICAgICAgICAgICAgKnJlYXNvbiA9ICJBdWRpbyBlbGVt
ZW50IHdoaWNoIGlzIG5vdCBwYXVzZWQiOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgfQog
CiAgICAgICAgIC8vIElmIGEgbm9kZSBpcyBmaXJpbmcgZXZlbnQgbGlzdGVuZXJzLCBpdHMgd3Jh
cHBlciBpcyBvYnNlcnZhYmxlIGJlY2F1c2UKICAgICAgICAgLy8gaXRzIHdyYXBwZXIgaXMgcmVz
cG9uc2libGUgZm9yIG1hcmtpbmcgdGhvc2UgZXZlbnQgbGlzdGVuZXJzLgotICAgICAgICBpZiAo
bm9kZS0+aXNGaXJpbmdFdmVudExpc3RlbmVycygpKQorICAgICAgICBpZiAobm9kZS0+aXNGaXJp
bmdFdmVudExpc3RlbmVycygpKSB7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkocmVhc29uKSkK
KyAgICAgICAgICAgICAgICAqcmVhc29uID0gIk5vZGUgd2hpY2ggaXMgZmlyaW5nIGV2ZW50IGxp
c3RlbmVycyI7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgIH0KIAor
ICAgIGlmIChVTkxJS0VMWShyZWFzb24pKQorICAgICAgICAqcmVhc29uID0gIkNvbm5lY3RlZCBu
b2RlIjsKKwogICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChyb290KG5vZGUp
KTsKIH0KIAotYm9vbCBKU05vZGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRv
cikKK2Jvb2wgSlNOb2RlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNv
bnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgSlNOb2RlKiBqc05vZGUgPSBqc0Nhc3Q8SlNOb2Rl
Kj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwotICAgIHJldHVybiBpc1JlYWNoYWJsZUZyb21E
T00oJmpzTm9kZS0+d3JhcHBlZCgpLCB2aXNpdG9yKTsKKyAgICByZXR1cm4gaXNSZWFjaGFibGVG
cm9tRE9NKCZqc05vZGUtPndyYXBwZWQoKSwgdmlzaXRvciwgcmVhc29uKTsKIH0KIAogSlNTY29w
ZSogSlNOb2RlOjpwdXNoRXZlbnRIYW5kbGVyU2NvcGUoRXhlY1N0YXRlKiBleGVjLCBKU1Njb3Bl
KiBub2RlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNO
b2RlTGlzdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVMaXN0
Q3VzdG9tLmNwcAppbmRleCA5YTFjODczNDQ2OTUzZTMyMWZiOGU1NTY5Yzk0ZjM0ODFjY2VmOGY4
Li43ZjZkOWU3MmRhNTA3OTVmZWYzNWZmZDYyYmQyNjg4YzVhMTBlYWYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNwcApAQCAtMzcsMTcgKzM3
LDMyIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCi1ib29s
IEpTTm9kZUxpc3RPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK2Jvb2wg
SlNOb2RlTGlzdE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBj
aGFyKiogcmVhc29uKQogewogICAgIEpTTm9kZUxpc3QqIGpzTm9kZUxpc3QgPSBqc0Nhc3Q8SlNO
b2RlTGlzdCo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICBpZiAoIWpzTm9kZUxpc3Qt
Pmhhc0N1c3RvbVByb3BlcnRpZXMoKmpzTm9kZUxpc3QtPnZtKCkpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgaWYgKGpzTm9kZUxpc3QtPndyYXBwZWQoKS5pc0xpdmVOb2RlTGlzdCgpKQor
CisgICAgaWYgKGpzTm9kZUxpc3QtPndyYXBwZWQoKS5pc0xpdmVOb2RlTGlzdCgpKSB7CisgICAg
ICAgIGlmIChVTkxJS0VMWShyZWFzb24pKQorICAgICAgICAgICAgKnJlYXNvbiA9ICJMaXZlTm9k
ZUxpc3Qgb3duZXIgaXMgb3BhcXVlIHJvb3QiOworCiAgICAgICAgIHJldHVybiB2aXNpdG9yLmNv
bnRhaW5zT3BhcXVlUm9vdChyb290KHN0YXRpY19jYXN0PExpdmVOb2RlTGlzdCY+KGpzTm9kZUxp
c3QtPndyYXBwZWQoKSkub3duZXJOb2RlKCkpKTsKLSAgICBpZiAoanNOb2RlTGlzdC0+d3JhcHBl
ZCgpLmlzQ2hpbGROb2RlTGlzdCgpKQorICAgIH0KKworICAgIGlmIChqc05vZGVMaXN0LT53cmFw
cGVkKCkuaXNDaGlsZE5vZGVMaXN0KCkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKHJlYXNvbikp
CisgICAgICAgICAgICAqcmVhc29uID0gIkNoaWxkTm9kZUxpc3Qgb3duZXIgaXMgb3BhcXVlIHJv
b3QiOworCiAgICAgICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChyb290KHN0
YXRpY19jYXN0PENoaWxkTm9kZUxpc3QmPihqc05vZGVMaXN0LT53cmFwcGVkKCkpLm93bmVyTm9k
ZSgpKSk7Ci0gICAgaWYgKGpzTm9kZUxpc3QtPndyYXBwZWQoKS5pc0VtcHR5Tm9kZUxpc3QoKSkK
KyAgICB9CisKKyAgICBpZiAoanNOb2RlTGlzdC0+d3JhcHBlZCgpLmlzRW1wdHlOb2RlTGlzdCgp
KSB7CisgICAgICAgIGlmIChVTkxJS0VMWShyZWFzb24pKQorICAgICAgICAgICAgKnJlYXNvbiA9
ICJFbXB0eU5vZGVMaXN0IG93bmVyIGlzIG9wYXF1ZSByb290IjsKKwogICAgICAgICByZXR1cm4g
dmlzaXRvci5jb250YWluc09wYXF1ZVJvb3Qocm9vdChzdGF0aWNfY2FzdDxFbXB0eU5vZGVMaXN0
Jj4oanNOb2RlTGlzdC0+d3JhcHBlZCgpKS5vd25lck5vZGUoKSkpOworICAgIH0KICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9t
LmNwcAppbmRleCAzM2IwOGU3OGEyYzJmNzY1NzRhZDhjNTJkMjMwZjZjYTA3NzRhNTI5Li4zNGQ3
YTA5OWIzNjY3ODc1M2Y1NGY1ZGRmYzY0ODk3NGIyN2Q0YTdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPZmZzY3JlZW5DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwCkBAIC0yOCw4ICsyOCwxMSBAQCBpbmxpbmUg
dm9pZCogcm9vdChPZmZzY3JlZW5DYW52YXMqIGNhbnZhcykKICAgICByZXR1cm4gY2FudmFzOwog
fQogCi1ib29sIEpTT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJET3duZXI6OmlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2
b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCitib29sIEpTT2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJET3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0
IGNoYXIqKiByZWFzb24pCiB7CisgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICpy
ZWFzb24gPSAiQ2FudmFzIGlzIG9wYXF1ZSByb290IjsKKwogICAgIEpTT2Zmc2NyZWVuQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEKiBqc09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQgPSBq
c0Nhc3Q8SlNPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqPihoYW5kbGUuc2xvdCgp
LT5hc0NlbGwoKSk7CiAgICAgdm9pZCogcm9vdCA9IFdlYkNvcmU6OnJvb3QoJmpzT2Zmc2NyZWVu
Q2FudmFzUmVuZGVyaW5nQ29udGV4dC0+d3JhcHBlZCgpLmNhbnZhcygpKTsKICAgICByZXR1cm4g
dmlzaXRvci5jb250YWluc09wYXF1ZVJvb3Qocm9vdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1ZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1ZUN1c3RvbS5jcHAKaW5kZXggYzI5NDQ1MTNmOTVl
OTNkMGIxYWFlMmE3YjUwNjczZDgxM2UzYTRlMy4uM2M0ODc5NTJjMzg2NWEwNzcwYTQ3ZGFiZmNk
NWNlOGZhYjVmZDRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNU
ZXh0VHJhY2tDdWVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
VGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcApAQCAtMzgsMjAgKzM4LDI2IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCi1ib29sIEpTVGV4dFRyYWNrQ3VlT3duZXI6
OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFu
ZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCitib29sIEpTVGV4dFRyYWNrQ3VlT3du
ZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4g
aGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24p
CiB7CiAgICAgSlNUZXh0VHJhY2tDdWUqIGpzVGV4dFRyYWNrQ3VlID0ganNDYXN0PEpTVGV4dFRy
YWNrQ3VlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwogICAgIFRleHRUcmFja0N1ZSYgdGV4
dFRyYWNrQ3VlID0ganNUZXh0VHJhY2tDdWUtPndyYXBwZWQoKTsKIAogICAgIC8vIElmIHRoZSBj
dWUgaXMgZmlyaW5nIGV2ZW50IGxpc3RlbmVycywgaXRzIHdyYXBwZXIgaXMgcmVhY2hhYmxlIGJl
Y2F1c2UKICAgICAvLyB0aGUgd3JhcHBlciBpcyByZXNwb25zaWJsZSBmb3IgbWFya2luZyB0aG9z
ZSBldmVudCBsaXN0ZW5lcnMuCi0gICAgaWYgKHRleHRUcmFja0N1ZS5pc0ZpcmluZ0V2ZW50TGlz
dGVuZXJzKCkpCisgICAgaWYgKHRleHRUcmFja0N1ZS5pc0ZpcmluZ0V2ZW50TGlzdGVuZXJzKCkp
IHsKKyAgICAgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICAgICAqcmVhc29uID0g
IlRleHRUcmFja0N1ZSBpcyBmaXJpbmcgZXZlbnQgbGlzdGVuZXJzIjsKICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQogCiAgICAgLy8gSWYgdGhlIGN1ZSBpcyBub3QgYXNzb2NpYXRlZCB3aXRo
IGEgdHJhY2ssIGl0IGlzIG5vdCByZWFjaGFibGUuCiAgICAgaWYgKCF0ZXh0VHJhY2tDdWUudHJh
Y2soKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKFVOTElLRUxZKHJlYXNvbikp
CisgICAgICAgICpyZWFzb24gPSAiVGV4dFRyYWNrIGlzIGFuIG9wYXF1ZSByb290IjsKKwogICAg
IHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChyb290KHRleHRUcmFja0N1ZS50cmFj
aygpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlci5jcHAKaW5kZXggZTlhM2I2OWZlZGQxMjExZjg5NTllNWRkOTVkMWI2Y2IwMzliYmEwMS4u
MWJiOTQ0ZjYwZTJkYjM0YjJhNjI0OGQ2NDUzYTM1Yjk5ZTViNGUwZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTIzLDYgKzIzLDcg
QEAKIAogI2luY2x1ZGUgIkJyaWRnZUpTQy5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdEZldGNo
ZXIuaCIKKyNpbmNsdWRlICJDb21tb25WTS5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBv
bGljeS5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRB
cnJheUNvbnRyb2xsZXIuY3BwCmluZGV4IDg0ZmIzYzRmMTVhOGM4MzgwYmUzNWIxNWU2MWY4ZTc2
ZjVhOTcyYTIuLjIwYjVmOTgxNjhkYmRlM2E3ZjE5MDY5MzE5MzM1ZmE5YTU0YWRmNWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJy
YXlDb250cm9sbGVyLmNwcApAQCAtNTMsOCArNTMsMTAgQEAgYm9vbCBXZWJDb3JlVHlwZWRBcnJh
eUNvbnRyb2xsZXI6OmlzQXRvbWljc1dhaXRBbGxvd2VkT25DdXJyZW50VGhyZWFkKCkKICAgICBy
ZXR1cm4gIWlzTWFpblRocmVhZCgpOwogfQogCi1ib29sIFdlYkNvcmVUeXBlZEFycmF5Q29udHJv
bGxlcjo6SlNBcnJheUJ1ZmZlck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIEpTQzo6U2xvdFZpc2l0b3ImIHZp
c2l0b3IpCitib29sIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZlck93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
IGhhbmRsZSwgdm9pZCosIEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiBy
ZWFzb24pCiB7CisgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICpyZWFzb24gPSAi
QXJyYXlCdWZmZXIgaXMgb3BhcXVlIHJvb3QiOwogICAgIGF1dG8mIHdyYXBwZXIgPSAqSlNDOjpq
c0Nhc3Q8SlNDOjpKU0FycmF5QnVmZmVyKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwogICAg
IHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdCh3cmFwcGVyLmltcGwoKSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5
Q29udHJvbGxlci5oCmluZGV4IDI1MjYwMTIyZWJmMTE5N2VkY2YxMjc0OTcxOTYxZWYyMjkzNDQ3
MzYuLmUwYmI5NTZiOTk0NGJhMjJiY2U5N2EyOTY3NmNmODFkZDBhMmI4NDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJv
bGxlci5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgY2xhc3MgSlNB
cnJheUJ1ZmZlck93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKICAgICBwdWJs
aWM6Ci0gICAgICAgIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpIG92ZXJyaWRl
OworICAgICAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFy
KiopIG92ZXJyaWRlOwogICAgICAgICB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5r
bm93bj4sIHZvaWQqIGNvbnRleHQpIG92ZXJyaWRlOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggOTEwMzY5
ZDIwNzQ0Njg1ZGNlYmFhMTM2NGFhY2NhNmFlZTgyNzBjOS4uYjNkYzA0NzI2NjkyZWJjZjJjZTcy
N2E3ZWVlMjhhM2ZlMmNkZjRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTI2NDgsNyArMjY0OCw3IEBAIHN1YiBHZW5l
cmF0ZUhlYWRlcgogICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0
b21QcmV2ZW50RXh0ZW5zaW9uc30pIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAg
ICBzdGF0aWMgYm9vbCBwcmV2ZW50RXh0ZW5zaW9ucyhKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVj
U3RhdGUqKTtcbiIpOwogICAgIH0KLSAgICAKKwogICAgIGlmIChJbnN0YW5jZU5lZWRzRXN0aW1h
dGVkU2l6ZSgkaW50ZXJmYWNlKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IHN0YXRpYyBzaXplX3QgZXN0aW1hdGVkU2l6ZShKU0NlbGwqKTtcbiIpOwogICAgIH0KQEAgLTI3
NDksNiArMjc0OSwxMCBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgICAgdGVtcGxhdGU8dHlwZW5hbWU+IHN0YXRpYyBKU0M6OkNvbXBsZXRl
U3Vic3BhY2UqIHN1YnNwYWNlRm9yKEpTQzo6Vk0mIHZtKSB7IHJldHVybiAkc3Vic3BhY2VGdW5j
KHZtKTsgfVxuIik7CiAgICAgICAgIH0KICAgICB9CisKKyAgICBpZiAoTmVlZHNJbXBsZW1lbnRh
dGlvbkNsYXNzKCRpbnRlcmZhY2UpKSB7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVp
bGRlciYpO1xuIik7CisgICAgfQogICAgIAogICAgIGlmICgkbnVtQ3VzdG9tQXR0cmlidXRlcyA+
IDApIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlxuICAgIC8vIEN1c3RvbSBhdHRy
aWJ1dGVzXG4iKTsKQEAgLTI4NTgsNyArMjg2Miw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAg
ICAgICB9CiAgICAgICAgICRoZWFkZXJJbmNsdWRlc3siPHd0Zi9OZXZlckRlc3Ryb3llZC5oPiJ9
ID0gMTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgInB1YmxpYzpcbiIpOwotICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6
OlNsb3RWaXNpdG9yJik7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2
aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7
XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgZmlu
YWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7XG4iKTsKICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIn07XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIlxuIik7CkBAIC00NTEyLDYgKzQ1MTYsMTYgQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0KIAor
ICAgIGlmIChOZWVkc0ltcGxlbWVudGF0aW9uQ2xhc3MoJGludGVyZmFjZSkgJiYgISRpbnRlcmZh
Y2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbUhlYXBTbmFwc2hvdH0pIHsKKyAgICAgICAg
QWRkVG9JbXBsSW5jbHVkZXMoIjxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+
Iik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OmhlYXBT
bmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpXG4iKTsK
KyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDwke2NsYXNzTmFtZX0qPihjZWxs
KTtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBidWlsZGVyLnNldFdyYXBw
ZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpO1xuIik7CisgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWls
ZGVyKTtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CisgICAgfQor
CiAgICAgaWYgKCRpbmRleGVkR2V0dGVyT3BlcmF0aW9uKSB7CiAgICAgICAgICRpbXBsSW5jbHVk
ZXN7IlVSTC5oIn0gPSAxIGlmICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uLT50eXBlLT5uYW1lIGVx
ICJET01TdHJpbmciOwogICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgPX4gL15IVE1MXHcqQ29s
bGVjdGlvbiQvIG9yICRpbnRlcmZhY2VOYW1lIGVxICJSYWRpb05vZGVMaXN0IikgewpAQCAtNDUy
MSw3ICs0NTM1LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICB9CiAKICAgICBp
ZiAoU2hvdWxkR2VuZXJhdGVXcmFwcGVyT3duZXJDb2RlKCRoYXNQYXJlbnQsICRpbnRlcmZhY2Up
ICYmICFHZXRDdXN0b21Jc1JlYWNoYWJsZSgkaW50ZXJmYWNlKSkgewotICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgImJvb2wgSlMke2ludGVyZmFjZU5hbWV9T3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29s
IEpTJHtpbnRlcmZhY2VOYW1lfU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9y
LCBjb25zdCBjaGFyKiogcmVhc29uKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
e1xuIik7CiAgICAgICAgICMgQWxsIEFjdGl2ZURPTU9iamVjdHMgaW1wbGVtZW50IGhhc1BlbmRp
bmdBY3Rpdml0eSgpLCBidXQgbm90IGFsbCBvZiB0aGVtCiAgICAgICAgICMgaW5jcmVtZW50IHRo
ZWlyIEMrKyByZWZlcmVuY2UgY291bnRzIHdoZW4gaGFzUGVuZGluZ0FjdGl2aXR5KCkgYmVjb21l
cwpAQCAtNDUzNCwyMyArNDU0OCwyOSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
ICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzRXh0ZW5kZWRBdHRyaWJ1dGUoJGludGVy
ZmFjZSwgIkFjdGl2ZURPTU9iamVjdCIpKSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBhdXRvKiBqcyR7aW50ZXJmYWNlTmFtZX0gPSBqc0Nhc3Q8SlMke2ludGVyZmFjZU5h
bWV9Kj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpO1xuIik7CiAgICAgICAgICAgICAkZW1pdHRl
ZEpTQ2FzdCA9IDE7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoanMk
e2ludGVyZmFjZU5hbWV9LT53cmFwcGVkKCkuaGFzUGVuZGluZ0FjdGl2aXR5KCkpXG4iKTsKKyAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChqcyR7aW50ZXJmYWNlTmFtZX0t
PndyYXBwZWQoKS5oYXNQZW5kaW5nQWN0aXZpdHkoKSkge1xuIik7CisgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpXG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICAgICAgKnJlYXNvbiA9IFwiQWN0aXZl
RE9NT2JqZWN0IHdpdGggcGVuZGluZyBhY3Rpdml0eVwiO1xuIik7CiAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsKKyAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICB9XG4iKTsKICAgICAgICAgfQogICAgICAgICBpZiAoJGNv
ZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJFdmVudFRhcmdldCIp
KSB7CiAgICAgICAgICAgICBpZiAoISRlbWl0dGVkSlNDYXN0KSB7CiAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgYXV0byoganMke2ludGVyZmFjZU5hbWV9ID0ganNDYXN0
PEpTJHtpbnRlcmZhY2VOYW1lfSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTtcbiIpOwogICAg
ICAgICAgICAgICAgICRlbWl0dGVkSlNDYXN0ID0gMTsKICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChqcyR7aW50ZXJmYWNlTmFtZX0tPndyYXBw
ZWQoKS5pc0ZpcmluZ0V2ZW50TGlzdGVuZXJzKCkpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIGlmIChqcyR7aW50ZXJmYWNlTmFtZX0tPndyYXBwZWQoKS5pc0Zpcmlu
Z0V2ZW50TGlzdGVuZXJzKCkpIHtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIGlmIChVTkxJS0VMWShyZWFzb24pKVxuIik7CisgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgICAgICpyZWFzb24gPSBcIkV2ZW50VGFyZ2V0IGZpcmluZyBl
dmVudCBsaXN0ZW5lcnNcIjtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHJldHVybiB0cnVlO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICB9XG4iKTsKICAgICAgICAgfQogICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVy
aXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJOb2RlIikpIHsKICAgICAgICAgICAgIGlmICghJGVt
aXR0ZWRKU0Nhc3QpIHsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBh
dXRvKiBqcyR7aW50ZXJmYWNlTmFtZX0gPSBqc0Nhc3Q8SlMke2ludGVyZmFjZU5hbWV9Kj4oaGFu
ZGxlLnNsb3QoKS0+YXNDZWxsKCkpO1xuIik7CiAgICAgICAgICAgICAgICAgJGVtaXR0ZWRKU0Nh
c3QgPSAxOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgaWYgKEpTTm9kZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhoYW5kbGUsIDAs
IHZpc2l0b3IpKVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAo
SlNOb2RlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKGhhbmRsZSwgMCwgdmlzaXRv
ciwgcmVhc29uKSlcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IHJldHVybiB0cnVlO1xuIik7CiAgICAgICAgIH0KICAgICAgICAgaWYgKEdldEdlbmVyYXRlSXNS
ZWFjaGFibGUoJGludGVyZmFjZSkpIHsKQEAgLTQ1NjIsMzMgKzQ1ODIsNDkgQEAgc3ViIEdlbmVy
YXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15ICRyb290U3RyaW5nOwogICAgICAgICAg
ICAgaWYgKEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGludGVyZmFjZSkgZXEgIkltcGwiKSB7CiAg
ICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcgID0gIiAgICAke2ltcGxUeXBlfSogcm9vdCA9ICZq
cyR7aW50ZXJmYWNlTmFtZX0tPndyYXBwZWQoKTtcbiI7CisgICAgICAgICAgICAgICAgJHJvb3RT
dHJpbmcgLj0gIiAgICBpZiAoVU5MSUtFTFkocmVhc29uKSlcbiI7CisgICAgICAgICAgICAgICAg
JHJvb3RTdHJpbmcgLj0gIiAgICAgICAgKnJlYXNvbiA9IFwiUmVhY2hhYmxlIGZyb20gJHtpbnRl
cmZhY2VOYW1lfVwiO1xuIjsKICAgICAgICAgICAgIH0gZWxzaWYgKEdldEdlbmVyYXRlSXNSZWFj
aGFibGUoJGludGVyZmFjZSkgZXEgIkltcGxXZWJHTFJlbmRlcmluZ0NvbnRleHQiKSB7CiAgICAg
ICAgICAgICAgICAgJHJvb3RTdHJpbmcgID0gIiAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
KiByb290ID0gV1RGOjpnZXRQdHIoanMke2ludGVyZmFjZU5hbWV9LT53cmFwcGVkKCkuY29udGV4
dCgpKTtcbiI7CisgICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICBpZiAoVU5MSUtF
TFkocmVhc29uKSlcbiI7CisgICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICAgICAg
KnJlYXNvbiA9IFwiUmVhY2hhYmxlIGZyb20gJHtpbnRlcmZhY2VOYW1lfVwiO1xuIjsKICAgICAg
ICAgICAgIH0gZWxzaWYgKEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGludGVyZmFjZSkgZXEgIklt
cGxGcmFtZSIpIHsKICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAgPSAiICAgIEZyYW1lKiBy
b290ID0gV1RGOjpnZXRQdHIoanMke2ludGVyZmFjZU5hbWV9LT53cmFwcGVkKCkuZnJhbWUoKSk7
XG4iOwogICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49ICIgICAgaWYgKCFyb290KVxuIjsK
ICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAuPSAiICAgICAgICByZXR1cm4gZmFsc2U7XG4i
OworICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49ICIgICAgaWYgKFVOTElLRUxZKHJlYXNv
bikpXG4iOworICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49ICIgICAgICAgICpyZWFzb24g
PSBcIlJlYWNoYWJsZSBmcm9tIEZyYW1lXCI7XG4iOwogICAgICAgICAgICAgfSBlbHNpZiAoR2V0
R2VuZXJhdGVJc1JlYWNoYWJsZSgkaW50ZXJmYWNlKSBlcSAiSW1wbERvY3VtZW50IikgewogICAg
ICAgICAgICAgICAgICRyb290U3RyaW5nICA9ICIgICAgRG9jdW1lbnQqIHJvb3QgPSBXVEY6Omdl
dFB0cihqcyR7aW50ZXJmYWNlTmFtZX0tPndyYXBwZWQoKS5kb2N1bWVudCgpKTtcbiI7CiAgICAg
ICAgICAgICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICBpZiAoIXJvb3QpXG4iOwogICAgICAgICAg
ICAgICAgICRyb290U3RyaW5nIC49ICIgICAgICAgIHJldHVybiBmYWxzZTtcbiI7CisgICAgICAg
ICAgICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICBpZiAoVU5MSUtFTFkocmVhc29uKSlcbiI7Cisg
ICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICAgICAgKnJlYXNvbiA9IFwiUmVhY2hh
YmxlIGZyb20gRG9jdW1lbnRcIjtcbiI7CiAgICAgICAgICAgICB9IGVsc2lmIChHZXRHZW5lcmF0
ZUlzUmVhY2hhYmxlKCRpbnRlcmZhY2UpIGVxICJJbXBsRWxlbWVudFJvb3QiKSB7CiAgICAgICAg
ICAgICAgICAgJGltcGxJbmNsdWRlc3siRWxlbWVudC5oIn0gPSAxOwogICAgICAgICAgICAgICAg
ICRpbXBsSW5jbHVkZXN7IkpTTm9kZUN1c3RvbS5oIn0gPSAxOwogICAgICAgICAgICAgICAgICRy
b290U3RyaW5nICA9ICIgICAgRWxlbWVudCogZWxlbWVudCA9IFdURjo6Z2V0UHRyKGpzJHtpbnRl
cmZhY2VOYW1lfS0+d3JhcHBlZCgpLmVsZW1lbnQoKSk7XG4iOwogICAgICAgICAgICAgICAgICRy
b290U3RyaW5nIC49ICIgICAgaWYgKCFlbGVtZW50KVxuIjsKICAgICAgICAgICAgICAgICAkcm9v
dFN0cmluZyAuPSAiICAgICAgICByZXR1cm4gZmFsc2U7XG4iOworICAgICAgICAgICAgICAgICRy
b290U3RyaW5nIC49ICIgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpXG4iOworICAgICAgICAgICAg
ICAgICRyb290U3RyaW5nIC49ICIgICAgICAgICpyZWFzb24gPSBcIlJlYWNoYWJsZSBmcm9tICR7
aW50ZXJmYWNlTmFtZX1Pd25lclwiO1xuIjsKICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAu
PSAiICAgIHZvaWQqIHJvb3QgPSBXZWJDb3JlOjpyb290KGVsZW1lbnQpO1xuIjsKICAgICAgICAg
ICAgIH0gZWxzaWYgKEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGludGVyZmFjZSkgZXEgIkltcGxP
d25lck5vZGVSb290IikgewogICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkVsZW1lbnQu
aCJ9ID0gMTsKICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU05vZGVDdXN0b20uaCJ9
ID0gMTsKICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAgPSAiICAgIHZvaWQqIHJvb3QgPSBX
ZWJDb3JlOjpyb290KGpzJHtpbnRlcmZhY2VOYW1lfS0+d3JhcHBlZCgpLm93bmVyTm9kZSgpKTtc
biI7CisgICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICBpZiAoVU5MSUtFTFkocmVh
c29uKSlcbiI7CisgICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICAgICAgKnJlYXNv
biA9IFwiUmVhY2hhYmxlIGZyb20gJHtpbnRlcmZhY2VOYW1lfSBvd25lck5vZGVcIjtcbiI7CiAg
ICAgICAgICAgICB9IGVsc2lmIChHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRpbnRlcmZhY2UpIGVx
ICJJbXBsU2NyaXB0RXhlY3V0aW9uQ29udGV4dCIpIHsKICAgICAgICAgICAgICAgICAkcm9vdFN0
cmluZyAgPSAiICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHJvb3QgPSBXVEY6OmdldFB0cihq
cyR7aW50ZXJmYWNlTmFtZX0tPndyYXBwZWQoKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpO1xu
IjsKICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAuPSAiICAgIGlmICghcm9vdClcbiI7CiAg
ICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICAgICAgcmV0dXJuIGZhbHNlO1xuIjsK
KyAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAuPSAiICAgIGlmIChVTkxJS0VMWShyZWFzb24p
KVxuIjsKKyAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAuPSAiICAgICAgICAqcmVhc29uID0g
XCJSZWFjaGFibGUgZnJvbSBTY3JpcHRFeGVjdXRpb25Db250ZXh0XCI7XG4iOwogICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAgPSAiICAgIHZvaWQqIHJv
b3QgPSBXZWJDb3JlOjpyb290KCZqcyR7aW50ZXJmYWNlTmFtZX0tPndyYXBwZWQoKSk7XG4iOwor
ICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49ICIgICAgaWYgKFVOTElLRUxZKHJlYXNvbikp
XG4iOworICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49ICIgICAgICAgICpyZWFzb24gPSBc
IlJlYWNoYWJsZSBmcm9tIGpzJHtpbnRlcmZhY2VOYW1lfVwiO1xuIjsKICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRyb290U3RyaW5nKTsKQEAgLTQ1OTgs
NiArNDYzNCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7XG4iKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJB
TSh2aXNpdG9yKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5V
U0VEX1BBUkFNKHJlYXNvbik7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIHJldHVybiBmYWxzZTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAifVxuXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvSURMQXR0cmlidXRlcy5qc29uIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9J
RExBdHRyaWJ1dGVzLmpzb24KaW5kZXggMzdkNjFlMDI4Y2UyMjg3ZjYxY2VlOWIyYmMyOTAwNDE3
YzBhMzczOS4uMzY4N2JiMGMxMDUzYjI5NjFmNzk3ZDQxODc1MzllZjRmMDExMWY2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24K
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24K
QEAgLTExOCw2ICsxMTgsOSBAQAogICAgICAgICAiQ3VzdG9tR2V0dGVyIjogewogICAgICAgICAg
ICAgImNvbnRleHRzQWxsb3dlZCI6IFsiYXR0cmlidXRlIl0KICAgICAgICAgfSwKKyAgICAgICAg
IkN1c3RvbUhlYXBTbmFwc2hvdCI6IHsKKyAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBb
ImludGVyZmFjZSJdCisgICAgICAgIH0sCiAgICAgICAgICJDdXN0b21JbmRleGVkU2V0dGVyIjog
ewogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIl0KICAgICAgICAg
fSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U0ludGVyZmFjZU5hbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTSW50ZXJmYWNlTmFtZS5jcHAKaW5kZXggNGJmNTQ2Zjk4YjA0ZDQxNTllNWQzNWM4YzU0
ZjFjZDAwMzUzNzM5Yi4uZjkxMGJiNjQ4YjFjOWZkNmE5N2JlMDk1NDU5YTE1NjRjZDE3YmRjMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTSW50
ZXJmYWNlTmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTSW50ZXJmYWNlTmFtZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJKU0RP
TUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0xNjgsMTAgKzE2OSwxOCBAQCBzaXplX3QgSlNJ
bnRlcmZhY2VOYW1lOjplc3RpbWF0ZWRTaXplKEpTQ2VsbCogY2VsbCkKICAgICByZXR1cm4gQmFz
ZTo6ZXN0aW1hdGVkU2l6ZSh0aGlzT2JqZWN0KSArIHRoaXNPYmplY3QtPndyYXBwZWQoKS5tZW1v
cnlDb3N0KCk7CiB9CiAKLWJvb2wgSlNJbnRlcmZhY2VOYW1lT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTSW50ZXJmYWNlTmFtZTo6aGVhcFNuYXBzaG90KEpT
Q2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEpTSW50ZXJmYWNlTmFtZSo+KGNlbGwpOworICAgIGJ1aWxkZXIu
c2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7Cisg
ICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTSW50ZXJm
YWNlTmFtZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFy
KiogcmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJB
TSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU0ludGVyZmFjZU5hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU0ludGVyZmFjZU5hbWUuaAppbmRleCBhMTIzMTQ4OWZhZjI4MmEzNTljMTc0YTBjYjI4
YjY1NjNkNmE3MDZmLi45MmJiNjcxOWNlMzJjZDI2NjczMTc2YmM3MTgyOWZmOTllZjgxMzBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNJbnRl
cmZhY2VOYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTSW50ZXJmYWNlTmFtZS5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
SlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7CiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBKU0M6OlNs
b3RWaXNpdG9yJik7CiAKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlND
OjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwcm90ZWN0ZWQ6CiAgICAgSlNJbnRlcmZhY2VOYW1l
KEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8SW50ZXJmYWNlTmFtZT4m
Jik7CiAKQEAgLTYwLDcgKzYxLDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU0ludGVyZmFjZU5h
bWVPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmly
dHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5r
bm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwg
dm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmly
dHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRl
eHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTTWFwTGlrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNNYXBMaWtlLmNwcAppbmRleCA2OTc4ODljNDExZmNiM2I5ZjRjMTM3OTM4MWRhMWQ2
ZmFiYmU1MzM5Li43OWM5ZjhiZGU4ZTJkMTI3ZWQ0NWE0OGY5YzFiNGJlNDdkNzcwODg3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBM
aWtlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQnVpbHRpbk5hbWVzLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5s
aW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclBy
ZXBhcmF0aW9ucy5oPgpAQCAtMzM3LDEwICszMzgsMTggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZShFeGVjU3RhdGUqIHN0YXRl
KQogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNNYXBMaWtlPjo6Y2FsbDxqc01hcExpa2VQcm90
b3R5cGVGdW5jdGlvbkRlbGV0ZUJvZHk+KCpzdGF0ZSwgImRlbGV0ZSIpOwogfQogCi1ib29sIEpT
TWFwTGlrZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU01h
cExpa2U6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1
aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU01hcExpa2UqPihjZWxs
KTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0
LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30K
KworYm9vbCBKU01hcExpa2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwg
Y29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBV
TlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNNYXBMaWtlLmgKaW5kZXggZDgwNDAyZDg0ZjZjY2M5OGU0ZWUyZDBmMWUyYzM5
ODQyZWU4NzhmOS4uMjA2Y2QyZWYyM2Y1MWZmMjY2ZGQ5NDhmODZiMDEwNGI4NzA5YzIxMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTTWFwTGlr
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExp
a2UuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6
SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVj
dCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFw
c2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoKICAgICBKU01hcExpa2UoSlNDOjpTdHJ1Y3R1cmUq
LCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxNYXBMaWtlPiYmKTsKIApAQCAtNTcsNyArNTgsNyBA
QCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTTWFwTGlrZU93bmVyIDogcHVibGljIEpTQzo6V2Vha0hh
bmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpT
bG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNp
dG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBM
aWtlLmNwcAppbmRleCBmMzQzZWU0OWJlYWE5MjIwNDVhZmI1NTA2MzRlZjVjNjBiZmYxYzcxLi5j
ZDdhNWUzYWFiZjE3NDU4ZTAyNWI4ZDM2ZTNjMTBmODlkNDVmZTFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5
TWFwTGlrZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNo
ZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0J1aWx0aW5OYW1lcy5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pT
Q0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50
ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTI4NiwxMCArMjg3LDE4IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goRXhl
Y1N0YXRlCiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5TWFwTGlrZT46OmNhbGw8
anNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5Pigqc3RhdGUsICJm
b3JFYWNoIik7CiB9CiAKLWJvb2wgSlNSZWFkT25seU1hcExpa2VPd25lcjo6aXNSZWFjaGFibGVG
cm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBT
bG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNSZWFkT25seU1hcExpa2U6OmhlYXBTbmFwc2hv
dChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0
byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1JlYWRPbmx5TWFwTGlrZSo+KGNlbGwpOworICAgIGJ1
aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQo
KSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpT
UmVhZE9ubHlNYXBMaWtlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNv
bnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5V
U0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVy
biBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuaAppbmRleCBlMmRjNzlmM2U0MzU1OGU5
M2U1NmEzNTAzNTA5MzIxZmZkMjViYjFkLi5iNmZiYjIwYmM3ZTcxY2ZjZDg1MThmNGU1NTA5Njc4
Nzk1YTVlNGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNSZWFkT25seU1hcExpa2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuaApAQCAtNDksNiArNDksNyBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6
OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBT
bmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoK
ICAgICBKU1JlYWRPbmx5TWFwTGlrZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0
JiwgUmVmPFJlYWRPbmx5TWFwTGlrZT4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVk
OgogCiBjbGFzcyBKU1JlYWRPbmx5TWFwTGlrZU93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRs
ZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90
VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhK
U0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9y
JiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVE
T01PYmplY3QuY3BwCmluZGV4IDUwOTlmODMyYjdmNDkyNDgxZDJmYjAyNWM4YzBmOTNmNTM3N2U3
NmIuLjY1Nzg2MjQ3MTVlNDEwNGQyZjY5NWIxMzhjZDczNzRhODg3MTg3MTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01P
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSlNE
T01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hl
YXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVz
Lmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFy
YXRpb25zLmg+CkBAIC0yNDcsMTAgKzI0OCwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UoRQog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0QWN0aXZlRE9NT2JqZWN0Pjo6Y2FsbDxqc1Rl
c3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdlQm9keT4oKnN0YXRl
LCAicG9zdE1lc3NhZ2UiKTsKIH0KIAotYm9vbCBKU1Rlc3RBY3RpdmVET01PYmplY3RPd25lcjo6
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5k
bGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0QWN0aXZlRE9NT2Jq
ZWN0OjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWls
ZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0QWN0aXZlRE9NT2Jq
ZWN0Kj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAm
dGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVp
bGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0QWN0aXZlRE9NT2JqZWN0T3duZXI6OmlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VE
X1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9Q
QVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURP
TU9iamVjdC5oCmluZGV4IDBkZDgzM2Y3NDllMDUwYWMzZWQ4NWFmZmI1YmFlYmE2ZGJkMWViZTgu
LmYyMjQ2MzNlYWQxODAxYjQ3MGRhMWJmMDViMjlmMDI0MzFmMmFiZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
QWN0aXZlRE9NT2JqZWN0LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAogICAg
IHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwg
SlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlIHwgQmFz
ZTo6U3RydWN0dXJlRmxhZ3M7CiBwcm90ZWN0ZWQ6CkBAIC01OSw3ICs2MCw3IEBAIHByb3RlY3Rl
ZDoKIAogY2xhc3MgSlNUZXN0QWN0aXZlRE9NT2JqZWN0T3duZXIgOiBwdWJsaWMgSlNDOjpXZWFr
SGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6
OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZp
c2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFj
dGlvbnMuY3BwCmluZGV4IGQ1YmVmZGU5ZTQwZjc2YWY4OTVkMmYyZWUzMWNmMjM2NzcxOTM0ZWQu
LmM0Y2U3Nzc1MjVhODNkN2E0MWViZjIyMDlmMzFhMzZhM2Q5ZTQ1OGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENF
UmVhY3Rpb25zLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNh
Y2hlLmgiCiAjaW5jbHVkZSAiSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bv
aW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTMwMSwxMCArMzAyLDE4IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhDRVJlYWN0CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDRVJlYWN0aW9ucz46OmNh
bGw8anNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0aW9u
c0JvZHk+KCpzdGF0ZSwgIm1ldGhvZFdpdGhDRVJlYWN0aW9ucyIpOwogfQogCi1ib29sIEpTVGVz
dENFUmVhY3Rpb25zT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lk
IEpTVGVzdENFUmVhY3Rpb25zOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNo
b3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNU
ZXN0Q0VSZWFjdGlvbnMqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JD
ZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hv
dChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RDRVJlYWN0aW9uc093bmVyOjppc1Jl
YWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwg
dm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAg
IFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBV
TlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9u
cy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVh
Y3Rpb25zLmgKaW5kZXggZTdmODAxZmNkYzQ4MmViYzJmZmViYmE4ZmQzM2M0YTZmOGY3YjRiYi4u
OGFjOTljOWU4YTU0Mjg0ZTU0ZmQyODVhZWM5MGNkMzg1ZDkwNjBjMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVh
Y3Rpb25zLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBK
U0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFw
U25hcHNob3RCdWlsZGVyJik7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0Q0VSZWFjdGlvbnMoSlND
OjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0Q0VSZWFjdGlvbnM+JiYp
OwogCkBAIC01Nyw3ICs1OCw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0Q0VSZWFjdGlv
bnNPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmly
dHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5r
bm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwg
dm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmly
dHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRl
eHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuY3Bw
CmluZGV4IDViYzUwZmIwMTVhYjBiOTgyNzRhZTRiOTkxOWZlNDQ1ZmEzMzgyOTAuLmMwMmIzOTcy
MjkxZGFkOWE2OWMwN2JkMzFlODk4ZmFiY2I5NmRlYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJK
U0RPTU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9p
bnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMjIxLDEwICsyMjIsMTggQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rp
b25Ub1N0cmkKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENFUmVhY3Rpb25zU3RyaW5n
aWZpZXI+OjpjYWxsPGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJQcm90b3R5cGVGdW5jdGlv
blRvU3RyaW5nQm9keT4oKnN0YXRlLCAidG9TdHJpbmciKTsKIH0KIAotYm9vbCBKU1Rlc3RDRVJl
YWN0aW9uc1N0cmluZ2lmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3Ip
Cit2b2lkIEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwq
IGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09i
amVjdCA9IGpzQ2FzdDxKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyKj4oY2VsbCk7CisgICAg
YnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBl
ZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wg
SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9y
JiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5k
bGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29u
KTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNT
dHJpbmdpZmllci5oCmluZGV4IDYzYjNlMTYzMTM5YTZkOGM2ZDY3ODdjYTVjODVlMWIwMzAyZGFh
NGMuLjA1YzFlZGIzZWI4ODczNDkxZDY4ZmNhNTcxZTJiOGU0ZDNkZDI1ZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9u
c1N0cmluZ2lmaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuaApAQCAtNDksNiArNDksNyBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6
OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBT
bmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoK
ICAgICBKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyKEpTQzo6U3RydWN0dXJlKiwgSlNET01H
bG9iYWxPYmplY3QmLCBSZWY8VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXI+JiYpOwogCkBAIC01
Nyw3ICs1OCw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
Zmllck93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2
aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwg
Ym9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2
aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29u
dGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAKaW5kZXggYTgxNTZkMGU3Y2Q1Zjk5
OWEyOGQxZThmZjY1NjA1MmQzZjgxOWVkZC4uYjVmYWE5OTcwODhmMGUzY2E3MDYxY2RjMDUzNzEx
ZDNkOTQ3ODMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcApAQCAtMzcsNiArMzcsNyBAQAog
I2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAiSlNOb2RlLmgiCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtNTIwLDEwICs1MjEsMTggQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3Bl
cmF0aW9uV2l0aEQKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENhbGxUcmFjZXI+Ojpj
YWxsPGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoRGVm
YXVsdFZhcmlhbnRBcmd1bWVudEJvZHk+KCpzdGF0ZSwgInRlc3RPcGVyYXRpb25XaXRoRGVmYXVs
dFZhcmlhbnRBcmd1bWVudCIpOwogfQogCi1ib29sIEpTVGVzdENhbGxUcmFjZXJPd25lcjo6aXNS
ZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUs
IHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0Q2FsbFRyYWNlcjo6aGVh
cFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sK
KyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdENhbGxUcmFjZXIqPihjZWxsKTsK
KyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53
cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKwor
Ym9vbCBKU1Rlc3RDYWxsVHJhY2VyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAg
ICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAg
IHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmgKaW5kZXggZGQ3NWExNzI1OGFh
M2I4YjMzOWY2ODQ5ZTVmYmMxN2MzNDE5NTYwNy4uYzdiY2ExZjE5ZjEzZGJkYjllZTZjOTJkMzk3
MWNiNTU5ZjFiYTQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5oCkBAIC00OSw2ICs0OSw3IEBAIHB1
YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpT
Qzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVh
cFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVk
OgogICAgIEpTVGVzdENhbGxUcmFjZXIoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVj
dCYsIFJlZjxUZXN0Q2FsbFRyYWNlcj4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVk
OgogCiBjbGFzcyBKU1Rlc3RDYWxsVHJhY2VyT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxl
T3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RW
aXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3Im
LCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5D
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCmluZGV4IDE1ZTJlNDAwNWU1
ZTVkOTQ0M2IzZTY5YWIwNjA4ZmJmNjQyMzYzNjguLmM5Y2UwZjI1ZTIxN2M3OTYzOTVjYmI3ZWY1
YjljYjA0ZjQ2Y2MzYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpT
QnVpbHRpbkNvbnN0cnVjdG9yLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTRE9N
V3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAiVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVj
dG9yQnVpbHRpbnMuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlw
ZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0xNjAsMTAgKzE2
MSwxOCBAQCBib29sIHNldEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZAogICAgIHJldHVybiBwcm90b3R5cGUtPnB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotYm9vbCBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25z
dHJ1Y3Rvck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rl
c3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2Vs
bCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0
ID0ganNDYXN0PEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yKj4oY2VsbCk7Cisg
ICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3Jh
cHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jv
b2wgSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JPd25lcjo6aXNSZWFjaGFibGVG
cm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBT
bG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURf
UEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BB
UkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGlu
Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5oCmluZGV4IDA2MWIyM2FmMjNkYWMw
NjFiZGUxNmY1MDk4MjQwNjEzMzY1MTJhNzkuLjE2NmVlNzNiMGZjOGY4M2NhNjVmOGRkMzRmMjNj
MGNkYjI3YmI3M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0
aW5Db25zdHJ1Y3Rvci5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBz
dGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpT
R2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpT
Qzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdENsYXNzV2l0
aEpTQnVpbHRpbkNvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3Qm
LCBSZWY8VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yPiYmKTsKIApAQCAtNTcsNyAr
NTgsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0
cnVjdG9yT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAg
IHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVh
bCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAg
IHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBj
b250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9t
Q29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuY3BwCmluZGV4IDMxYTBjMTlkMjAzMmM5
NGFkODhiM2EyNTc0NDFhNWRjOWEyYmRjM2YuLjc3OWQzYjNmMzg2ZTQ0ZTZlNmM4N2QwNDJiOWQw
YzE0NGNlMTMzZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3Rv
bUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcApAQCAtMjYsNiArMjYsNyBAQAog
I2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBw
ZXJDYWNoZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTE1OCwxMCArMTU5LDE4
IEBAIGJvb2wgc2V0SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRWYWx1ZSkpOwogfQogCi1ib29sIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50
ZXJmYWNlT2JqZWN0T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lk
IEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0OjpoZWFwU25hcHNo
b3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1
dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRl
cmZhY2VPYmplY3QqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxs
KGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChj
ZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0lu
dGVyZmFjZU9iamVjdE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25z
dCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNF
RF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0
cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmgKaW5kZXggZDNiMmIwNTIxMWNhNDgyMTM2ODM5
ZjZmMzZmNTA2ODY4NzQ0NmUxZC4uNGNkZTJlOWJkMDJmMzg1YjY1NjJhNjQ1NzQxMDUzNzZmNjUw
MzQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVj
dG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmgKQEAgLTQ4LDYgKzQ4LDcgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGlu
Zm8oKSk7CiAgICAgfQogCisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpT
Qzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdEN1c3RvbUNv
bnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0KEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9i
YWxPYmplY3QmLCBSZWY8VGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0
PiYmKTsKIApAQCAtNTYsNyArNTcsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdEN1c3Rv
bUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0T3duZXIgOiBwdWJsaWMgSlNDOjpXZWFr
SGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6
OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZp
c2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAK
aW5kZXggYWUyYWMxYTJhNzljY2FkYjNlOGVjODBlODRlZjMxNTE0YTEyNmQ3NS4uZTgxODg1ZDBk
OTAxOGJjZWRjODg1YmI3ODcwZGUwNzcyYzU3MTY5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAKQEAgLTQx
LDYgKzQxLDcgQEAKICNpbmNsdWRlICJKU0VsZW1lbnQuaCIKICNpbmNsdWRlICJKU05vZGVMaXN0
LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnJhbWVUcmFjZXJzLmg+CisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTEyNTgsNSArMTI1OSwxMiBAQCBKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gdW5zYWZlSnNUZXN0RE9NSklUUHJvdG90eXBlRnVu
Y3Rpb25HZXRFbGVtZW50cwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRl
cmZhY2U8Tm9kZUxpc3Q+Pigqc3RhdGUsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1w
bC5nZXRFbGVtZW50c0J5TmFtZShXVEZNb3ZlKGVsZW1lbnROYW1lKSkpKTsKIH0KIAordm9pZCBK
U1Rlc3RET01KSVQ6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxk
ZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RET01K
SVQqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0
aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWls
ZGVyKTsKK30KKwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklULmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklULmgKaW5kZXggMGI3ODFlNjJlM2JlMmYyMWIzODkxNzBk
YWRmMmVjZDMxZWYwMWUyMC4uMzVmYjEyNmVjNGM2ZTlhNTE4ZjhjOGY0MTk3MjAxNmQ0ODQxMzBl
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdERPTUpJVC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RET01KSVQuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
c3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpK
U0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBK
U0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKICAgICBUZXN0RE9NSklUJiB3cmFwcGVkKCkgY29u
c3QKICAgICB7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUZXN0RE9NSklUJj4oQmFzZTo6
d3JhcHBlZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcAppbmRleCBlOTYz
YzZjYjY3YTFhNDc5NzE4N2VhZmJhNGU3MGYxYWZjM2MzNWRiLi4yMTdmOTM1ZGJlOWE1ODcxNzQx
Y2UwZTZiNGU4MzVkODhkMzc4YmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcu
Y3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJX
ZWJDb3JlSlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Q
cm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVy
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0
Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMjk0
LDEwICsyOTUsMTggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RFbmFibGVk
QnlTZXR0aW5nUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkQnlTZXQKIAogI2VuZGlmCiAKLWJvb2wg
SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhK
U0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQordm9pZCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nOjpoZWFwU25hcHNob3QoSlNDZWxsKiBj
ZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZyo+KGNlbGwpOworICAgIGJ1aWxkZXIu
c2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7Cisg
ICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdEVu
YWJsZWRCeVNldHRpbmdPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29u
c3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVT
RURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuaAppbmRleCA5ZmYzNzA1
MWUwYTExNWY2YjgxNmRkNjIyN2ExZTM0MDlmZTgzYWNlLi5jYTFlYmI2M2VlYTc4NDg4MjIzM2Fl
NWE2NWU0NzAyNjBmOWNmMmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmgKQEAg
LTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUg
Z2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAg
ICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWls
ZGVyJik7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiBw
cm90ZWN0ZWQ6CkBAIC01OSw3ICs2MCw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0RW5h
YmxlZEJ5U2V0dGluZ093bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1Ymxp
YzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAg
IHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioq
KTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwg
dm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAK
aW5kZXggMzc1MjI4Y2I1NDg1MTQ4YmU2MWMyYTIxNTBmNWZkMjczMjNkMjdhZS4uNWZhNmFiNDEx
YTYzNWIyZWEzMzQzOWVhNDk1OWY0OTNmMTA1YmJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENv
bnN0cnVjdG9yLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0
cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAi
SlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNo
b3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5o
PgpAQCAtMzAzLDYgKzMwNCwxMyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVj
dG9yQXR0cjMoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpcwogCiAjZW5kaWYK
IAordm9pZCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxs
LCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcio+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0
V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAg
QmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCiAjaWYgRU5BQkxFKEJJTkRJ
TkdfSU5URUdSSVRZKQogI2lmIFBMQVRGT1JNKFdJTikKICNwcmFnbWEgd2FybmluZyhkaXNhYmxl
OiA0NDgzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmgKaW5kZXggZTEwNGNlZGQ3Zjk4
MThhY2VlMTk5MGYwYTcwYjRhNzgxN2Q2ZmI0My4uOTc1NTM2MGUyNmE4YzE3NDhlZjhkZTBhOTVj
YTFmMGRjNzg1ODgzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCkBAIC00OSw2
ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENv
bnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3Rh
dGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYp
OwogICAgIFRlc3RFdmVudENvbnN0cnVjdG9yJiB3cmFwcGVkKCkgY29uc3QKICAgICB7CiAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxUZXN0RXZlbnRDb25zdHJ1Y3RvciY+KEJhc2U6OndyYXBw
ZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAppbmRleCA4YjYyMzA2YTc1OTU5NmZjZDgz
MmUzMmM4ZGFlYjQ1MDQ5OGUwYTE2Li5mMmY4ZGM2YTgzNDg3ZjUxZDBmZTQ1MzRjNmEzYjM2M2Yz
Y2U0MmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgi
CiAjaW5jbHVkZSAiSlNOb2RlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBz
aG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9wZXJ0eU5hbWVBcnJheS5oPgogI2luY2x1ZGUgPHd0
Zi9HZXRQdHIuaD4KQEAgLTI0Niw2ICsyNDcsMTMgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uSXRlbShFeGVjU3RhdGUqIHMK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEV2ZW50VGFyZ2V0Pjo6Y2FsbDxqc1Rlc3RF
dmVudFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uSXRlbUJvZHk+KCpzdGF0ZSwgIml0ZW0iKTsKIH0K
IAordm9pZCBKU1Rlc3RFdmVudFRhcmdldDo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVh
cFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganND
YXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2Jq
ZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFw
U25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKICNpZiBFTkFCTEUoQklORElOR19JTlRFR1JJ
VFkpCiAjaWYgUExBVEZPUk0oV0lOKQogI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQ0ODMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFdmVudFRhcmdldC5oCmluZGV4IDlhYzIyMjAwZDg4YjM5ZTA0MjU2ZjI0NDc5YzVmNzc3
ZjE4ZWViZGEuLmViODYzOTU1ZTVjNDlmZjk5YTA0NTEwNTBmNzRkNDZmMTEyNDk5MmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVu
dFRhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFdmVudFRhcmdldC5oCkBAIC01Myw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAg
ICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6
OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCos
IEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogICAgIFRlc3RFdmVudFRhcmdldCYgd3JhcHBl
ZCgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGVzdEV2ZW50VGFy
Z2V0Jj4oQmFzZTo6d3JhcHBlZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKaW5kZXggZWZlMzE3
NGM0NTQ5YjhkNzI4ZTFiOGE5ZmM4MDgwNWQ4Njc3YThmOC4uMWIwYTQxNTBiZWVmNzA2NmI3OWM3
OWQ2Mzc0YWI4Zjk3ZjdkZmI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKQEAgLTI4LDYgKzI4
LDcgQEAKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNE
T01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3Rv
dHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dl
dFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0xNzcsMTAg
KzE3OCwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25OYW1lKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUAogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0RXhjZXB0aW9uPjo6Z2V0PGpzVGVzdEV4Y2VwdGlvbk5hbWVHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpzdGF0ZSwgdGhpc1ZhbHVlLCAibmFtZSIpOwog
fQogCi1ib29sIEpTVGVzdEV4Y2VwdGlvbk93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQordm9pZCBKU1Rlc3RFeGNlcHRpb246OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGws
IEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9
IGpzQ2FzdDxKU1Rlc3RFeGNlcHRpb24qPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRP
YmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6Omhl
YXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RFeGNlcHRpb25Pd25l
cjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBo
YW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikK
IHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7
CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhj
ZXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RXhjZXB0aW9uLmgKaW5kZXggNTljOGQ0YzJhZjdkMTlhNjE5NzJiYjdiMWM1OTE3NWJjYjhjOTcx
NS4uYWIyNWRlNzUwMzgyOTc4YTAwYzVlMDk0Yjg0NjNiNWQ3MzFmN2RhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNl
cHRpb24uaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpT
Qzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9i
amVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBT
bmFwc2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RFeGNlcHRpb24oSlNDOjpT
dHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0RXhjZXB0aW9uPiYmKTsKIApA
QCAtNTgsNyArNTksNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdEV4Y2VwdGlvbk93bmVy
IDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJv
b2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwg
dm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1Jl
YWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBj
b250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZv
aWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKaW5kZXggZjY0YzU4
NWFmMTkzM2NkM2U0ZGM1YjY0ZWNhZmRhMDA3YzdjZDQ2MS4uNDNiZTFkYTJjNDdiOTBlZmU0Mjdj
NjdiYmE1YjA2M2IzOTZiZGYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgi
CiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVh
cFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMu
aD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJh
dGlvbnMuaD4KQEAgLTE4MywxMCArMTg0LDE5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGVBU2VjcmV0QXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kCiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlPjo6Z2V0PGpz
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVBU2VjcmV0QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigqc3RhdGUsIHRoaXNWYWx1ZSwgImFTZWNyZXRBdHRyaWJ1
dGUiKTsKIH0KIAotYm9vbCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lk
KiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6
OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIp
Cit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAm
dGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVp
bGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZU93bmVyOjppc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9p
ZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIGF1
dG8qIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUgPSBqc0Nhc3Q8SlNUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICBUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZSogcm9vdCA9ICZqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLT53cmFwcGVkKCk7Cisg
ICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICpyZWFzb24gPSAiUmVhY2hhYmxlIGZy
b20gVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUiOwogICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5z
T3BhcXVlUm9vdChyb290KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
LmgKaW5kZXggYzc4OGNlMWNjYjdhNjNhY2E4YWRmNGIzMDRhNmM0YjZkYzg2YTkzNy4uMDA2NTAy
MzUwMWQzZTgzNjg0ODJjYjhlYTZhOGI3YjJkZDg4MmU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZS5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAg
ICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6
OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCos
IEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGUoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZT4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVk
OgogCiBjbGFzcyBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlT3duZXIgOiBwdWJsaWMgSlNDOjpX
ZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBK
U0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xv
dFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEds
b2JhbE9iamVjdC5jcHAKaW5kZXggMDRhZTc0OWI0YjM1OGFjMTMwN2I0YTg4OTk1OGIwNDM3NDM5
MDI3Yi4uYTQwZDRiNDg1M2NmYjljYzA0NWRmYzlkOWYyMWJlNTliYTYxYTgxYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEdsb2JhbE9iamVjdC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTU2OCwxMCArNTY5LDE4IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblRlc3RG
ZWF0dXJlR2V0U2VjCiAKICNlbmRpZgogCi1ib29sIEpTVGVzdEdsb2JhbE9iamVjdE93bmVyOjpp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRs
ZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RHbG9iYWxPYmplY3Q6
OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIp
Cit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RHbG9iYWxPYmplY3QqPihj
ZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsK
K30KKworYm9vbCBKU1Rlc3RHbG9iYWxPYmplY3RPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRv
ciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFu
ZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNv
bik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmgKaW5kZXgg
ZmUyNjFmNWFlMTBhNmQwNWQ4NTgzNWM5MzYwM2YxZDRmZGUzMjI4MS4uN2ZkNDg3NTBjMWRmNGNj
Mjc1YWE1NmRlZTdhNDIzOTA2MTQ4NTQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuaApAQCAt
NTEsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBn
ZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAg
IHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxk
ZXImKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGUgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHBy
b3RlY3RlZDoKQEAgLTYxLDcgKzYyLDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RHbG9i
YWxPYmplY3RPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0g
ICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAg
ICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQq
IGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXIuY3BwCmluZGV4IDQ3ZjA4NzhlYmQ5MTY4YTVlN2QyNGEwZTVlNzM2MGZlN2FjNjdi
NDAuLjQ1OTFkOTRkZTVkMWQ0MTNmNWQzZGZiOTU4YzQzNDVhNGU3NjM2YTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0
dGVyTm9JZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKQEAgLTI4LDYgKzI4
LDcgQEAKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgIlVSTC5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9wZXJ0eU5h
bWVBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KQEAgLTI0NiwxMCArMjQ3LDE4IEBA
IGJvb2wgc2V0SlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRWYWx1ZSkpOwogfQogCi1ib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJPd25l
cjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBo
YW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0SW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90
QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVz
dEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBw
ZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6
OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RJbmRleGVkU2V0
dGVyTm9JZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNv
bnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5V
U0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVy
biBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlm
aWVyLmgKaW5kZXggODY2YzQxNTk1M2EwZThhM2NkZTI4Yzk0NjZlY2IyYmZhMGU4YmVhMC4uYjdh
YTk5OGM4NjhiYjZkZGE0NmFlMzAwYWNmZGZhNTM0ZmIxOWM0ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5oCkBAIC01NSw2ICs1NSw3IEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6
Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNu
YXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHVibGljOgogICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6SW50ZXJjZXB0c0dl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3Zl
cnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVz
IHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiBwcm90ZWN0ZWQ6CkBAIC02NSw3ICs2Niw3IEBAIHBy
b3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllck93bmVyIDog
cHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wg
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9p
ZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b24uY3BwCmluZGV4IDQwYmVlZmY2MGNiMmRmY2Q0NmRlOTM1MjNhMzJiMTU2Y2VmMTRiMmYuLjhj
NjA2ZDNlZTdlMzIxMzViNDkzNGNmM2UzOTI0ZjIzYWFlZTViN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJVUkwu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvcGVy
dHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CkBAIC0yNDYsMTAgKzI0Nywx
OCBAQCBib29sIHNldEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZQogICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERp
cmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkVmFsdWUpKTsKIH0KIAotYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb25Pd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0
SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxs
LCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uKj4oY2VsbCk7Cisg
ICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3Jh
cHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jv
b2wgSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uT3duZXI6OmlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VE
X1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9Q
QVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oCmluZGV4IDA4OGM0YmJmMDNk
ODhmNjJiZTYwZmY1NjkxYzJkZDQ5Y2NlZTNjM2MuLjI5YWQyYmU2N2MxNTdjOWJiYzUzOTEwNTRk
YzVkNDY1NTg4Zjc2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRl
clRocm93aW5nRXhjZXB0aW9uLmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAgIH0KIAog
ICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpT
Qzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxs
KiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlT
bG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Q
cm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1
Y3R1cmVGbGFnczsKIHByb3RlY3RlZDoKQEAgLTY1LDcgKzY2LDcgQEAgcHJvdGVjdGVkOgogCiBj
bGFzcyBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Pd25lciA6IHB1YmxpYyBK
U0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRl
eHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlND
OjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXpl
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAppbmRleCA3
NTViY2NjNzMzNGIwMjlhNjljOGQ1NTIxYmE5MjYwMTA5MjYwNjc1Li5kMjE3OWQwOWUyMGI2NWQx
ZmU5ZDI3YTA0ZjNlZTBhZTMxZGIzNTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
IkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9I
ZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5l
cy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Byb3BlcnR5TmFtZUFycmF5Lmg+CiAjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgpAQCAtMjc4LDEwICsyNzksMTggQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVG
dW5jdGlvbkkKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllcj46OmNhbGw8anNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90
eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyQm9keT4oKnN0YXRlLCAiaW5kZXhlZFNldHRlciIpOwog
fQogCi1ib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllck93bmVyOjppc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9p
ZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXIm
IGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXIqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmpl
Y3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBT
bmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3Qg
Y2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURf
UEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyLmgKaW5kZXggODNlYmY1Mjk5ZTk4ZWY5NGY3ZjlmZDhjNGNmNzE5MTQ4MWNjMjhkMC4uMDQw
ZGZhYWFlMGM1NDU1NWMyNWEwMDRmZTdmOTFmMjhiNDkwYTEyNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuaApAQCAtNTUsNiArNTUsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihK
U0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhl
YXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6OkludGVyY2Vw
dHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6
Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlO
YW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgpAQCAtNjUsNyArNjYsNyBA
QCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllck93
bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFs
IGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
Piwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lk
KiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFs
IHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCmluZGV4IGRhZjA3MjU4N2MwMjY2ZjU3MjIyZjEz
NjMxYzQ4Y2MwYzc5Yzc3M2YuLmFmNzI3YTgyODNjMTEzNDIxMDk4NjBjMTM0Y2IzZGZkMDk5ZDJk
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAi
SlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJUZXN0U3VwcGxlbWVudGFsLmgiCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtOTg0LDEyICs5ODUsMjMgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckZ1bmN0aW9uU3VwcGxl
bWVudGFsTWV0aG8KIAogI2VuZGlmCiAKLWJvb2wgSlNUZXN0SW50ZXJmYWNlT3duZXI6OmlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2
b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdEludGVyZmFjZTo6aGVhcFNu
YXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAg
ICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEludGVyZmFjZSo+KGNlbGwpOworICAg
IGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBw
ZWQoKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29s
IEpTVGVzdEludGVyZmFjZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBj
b25zdCBjaGFyKiogcmVhc29uKQogewogICAgIGF1dG8qIGpzVGVzdEludGVyZmFjZSA9IGpzQ2Fz
dDxKU1Rlc3RJbnRlcmZhY2UqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7Ci0gICAgaWYgKGpz
VGVzdEludGVyZmFjZS0+d3JhcHBlZCgpLmhhc1BlbmRpbmdBY3Rpdml0eSgpKQorICAgIGlmIChq
c1Rlc3RJbnRlcmZhY2UtPndyYXBwZWQoKS5oYXNQZW5kaW5nQWN0aXZpdHkoKSkgeworICAgICAg
ICBpZiAoVU5MSUtFTFkocmVhc29uKSkKKyAgICAgICAgICAgICpyZWFzb24gPSAiQWN0aXZlRE9N
T2JqZWN0IHdpdGggcGVuZGluZyBhY3Rpdml0eSI7CiAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICB9CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24p
OwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCmluZGV4IGJlOTRkYzVj
M2I2YzE4OTliODU0ZTY3OTdmODM4ZTMxYjIyMWMxOWEuLmE1NWE0ZTFhZWE0MjZkZTE2YTdiOGFj
YjIyNzYxNjljOGQ0YjVjYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKQEAgLTUzLDYgKzUzLDcgQEAg
cHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3Io
SlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBo
ZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiAKICAgICAv
LyBDdXN0b20gYXR0cmlidXRlcwogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENv
bmRpdGlvbjIzKQpAQCAtODMsNyArODQsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdElu
dGVyZmFjZU93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1
YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCog
Y29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdV
bmRlcnNjb3JlLmNwcAppbmRleCAwNDYzYzUxMWMzZjA2ZGY3Y2Q5NTkwMjIxZDhhNzBkMTQxNzU5
YmE3Li4zN2UwYjQ4MDE2Y2QyOWMzMDg5MzdkYmFmNWQzZTc5ZTJkMTFhZTA2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNl
TGVhZGluZ1VuZGVyc2NvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5jcHAKQEAgLTI4LDYg
KzI4LDcgQEAKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAi
SlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblBy
b3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIu
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3Rm
L0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0xNzcs
MTAgKzE3OCwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZVJlYWRvbmx5KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZQogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmU+OjpnZXQ8anNUZXN0SW50ZXJm
YWNlTGVhZGluZ1VuZGVyc2NvcmVSZWFkb25seUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKnN0YXRlLCB0aGlzVmFsdWUsICJyZWFkb25seSIpOwogfQogCi1ib29sIEpT
VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlOjpoZWFw
U25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQorewor
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVy
c2NvcmUqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGws
ICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBi
dWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZU93bmVy
Ojppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhh
bmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQog
ewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsK
KyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRl
cmZhY2VMZWFkaW5nVW5kZXJzY29yZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmgKaW5kZXggY2QyMDZj
YTMxYjAwMzAwMDE1NmFlY2U2ZDg5MTM5NThjMzMyNWNiMy4uNGNjOGQ4YzcyOGNkZDg5ODkzNGMy
ZTBhNWNjZjhjMjExYmExNzZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxl
YWRpbmdVbmRlcnNjb3JlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAogICAg
IHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwg
SlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0SW50ZXJm
YWNlTGVhZGluZ1VuZGVyc2NvcmUoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYs
IFJlZjxUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmU+JiYpOwogCkBAIC01Nyw3ICs1OCw3
IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVP
d25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVh
bCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wg
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9p
ZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVh
bCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQp
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEl0ZXJhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHAKaW5kZXggMmU5NzlkYmQ3ZjEzNjA0ZDhmNjRhMTli
NmYxZDgxNTNlMmNlYmU1ZC4uYWVmNTcyNDUxZTljMTgyOWYwZDcwZDVkZmJjNzE5ZTNhZGQ5ZDI0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEl0ZXJhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNE
T01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9CdWlsdGluTmFtZXMu
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0yMzAsMTAgKzIzMSwxOCBAQCBKU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5j
dGlvbkZvckVhY2goSlNDOjpFeAogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SXRlcmFi
bGU+OjpjYWxsPGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQ2FsbGVyPigq
c3RhdGUsICJmb3JFYWNoIik7CiB9CiAKLWJvb2wgSlNUZXN0SXRlcmFibGVPd25lcjo6aXNSZWFj
aGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZv
aWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0SXRlcmFibGU6OmhlYXBTbmFw
c2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAg
YXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJdGVyYWJsZSo+KGNlbGwpOworICAgIGJ1
aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQo
KSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpT
VGVzdEl0ZXJhYmxlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0
IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VE
X1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBm
YWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuaAppbmRleCA0NjMwZDdlMjg2YTA3ODFlNTZlMTIxNjgx
NmM3YWUwMTE0MzZjZWMxLi42NDg5ZjI2MTAwYzdjZjY3ZWQ1OGM4YTM2ZTI5YTU0MGRlOWEwMDZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SXRlcmFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SXRlcmFibGUuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAg
ICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlND
OjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwq
LCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RJdGVy
YWJsZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RJdGVyYWJs
ZT4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RJdGVy
YWJsZU93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2
aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwg
Ym9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2
aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29u
dGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5j
cHAKaW5kZXggOWE4MGFiMDQxYzU0MWZiNDk4MzViYzdkMzlmZjI5MjE1ZWZhZDY4Ni4uMGYyZTg3
OWExMjc1ODI3MjJmMzRkMGQ0ZDJmZGE4OTc1ZmI3NjEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
IkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMTg2LDEwICsxODcsMTggQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJv
dG90eXBlRnVuY3Rpb25NZXRob2QKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXI+OjpjYWxsPGpzVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZEJvZHk+KCpzdGF0ZSwgIm1ldGhvZCIpOwogfQogCi1ib29sIEpT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYg
dmlzaXRvcikKK3ZvaWQgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6aGVhcFNuYXBzaG90
KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqPihjZWxs
KTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0
LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30K
KworYm9vbCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BB
UkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJB
TShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmgKaW5kZXggZDM0YmJkZTU3NjczMmU0M2Y0YjY2MzNmYzc3MTFi
OTEwNWFkZjM2MS4uZDAzNzVlM2FmNzdmZWIxMzNkNzRkNDhlMjFkODRkYTI5ZjE1ZTlhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCkBAIC00OSw2ICs0OSw3
IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVj
dG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZv
aWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJv
dGVjdGVkOgogICAgIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIoSlNDOjpTdHJ1Y3R1cmUq
LCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4mJik7
CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGlj
OgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAg
dmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiop
OwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2
b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKaW5kZXggYWFkYTQ4YzA0ZTZlZGU5YThl
NDc2NjdhZjNlNTEyZjMyNzU3M2M4OS4uZmIwZTFmMWNiM2JjMzRlZThiM2FkNTZhYTczMGI5MTll
ODFlMjYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJKU0RP
TVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNu
YXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9wZXJ0eU5hbWVBcnJheS5oPgogI2luY2x1ZGUg
PHd0Zi9HZXRQdHIuaD4KQEAgLTMxMiwxMCArMzEzLDE4IEBAIGJvb2wgc2V0SlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1ib29s
IEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllck93bmVyOjppc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCos
IFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJO
b0lkZW50aWZpZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxk
ZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdy
YXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJh
c2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYg
dmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxl
KTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlm
aWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmgKaW5kZXggMmI4MmIwOTI3ZWVjMTE5NGY2
MTE1MTM2YWYwZTQ5YWY5ZTc1NDdhOC4uMTAzOTBkOTcyNjI2YTk0NGIzOTEwMDcwYmQ0YTE2YmNh
ZDIxM2MxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXIuaApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAg
ICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlND
OjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwq
LCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJl
Rm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0
eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVG
bGFnczsKIHByb3RlY3RlZDoKQEAgLTY1LDcgKzY2LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJPd25lciA6IHB1YmxpYyBKU0M6
OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQs
IEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpT
bG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbi5jcHAKaW5kZXggYzI3ZmJiYWQwNTI0OGY5OThmMjM2ZDI5ZDQyMjQwOTJhMjVlMjY5
OS4uZDMyYzY2YTExYzE4N2VjMmU5NDgzZTQxNzk0MmIzYjJlMzg5MTRiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb24uY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2Fj
aGUuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlv
blByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxk
ZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRy
Lmg+CkBAIC0zMTIsMTAgKzMxMywxOCBAQCBib29sIHNldEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZQogICAgIHJl
dHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0
b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotYm9vbCBKU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbk93bmVyOjppc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRl
ciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uKj4oY2VsbCk7CisgICAgYnVpbGRlci5z
ZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAg
ICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Pd25lcjo6aXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90
VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFS
QU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFN
KHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oCmluZGV4
IDNjZGI2ZGM3Y2YwYWYzNzdkZWVjMTFmMGRkY2U4ZTIyMDJkNDgwNDIuLjFiZmQ3NGM0ODZjZmUy
MTc0OTBlMzFmMWU3MzZmZjRiYTEyYTQ0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oCkBAIC01NSw2
ICs1NSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENv
bnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3Rh
dGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYp
OwogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpT
Qzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6Oklu
dGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8g
fCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJv
cGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgpAQCAtNjUsNyAr
NjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVi
bGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7Cisg
ICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFy
KiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCmluZGV4IGU0YmJjZTgwZWNh
NmI4NzM3NDFmYmRiN2I2YzA3Y2YwYjc5MzNiODEuLjhmM2NiNDZlZmI4Y2MyMjkzMmM5N2M5MGQ3
OGNkN2I4M2E1ZWIzMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlND
SW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Byb3BlcnR5TmFtZUFycmF5Lmg+
CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgpAQCAtMzY2LDEwICszNjcsMTggQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
ZmllclByb3RvdHlwZUYKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyPjo6Y2FsbDxqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlckJvZHk+KCpzdGF0
ZSwgImluZGV4ZWRTZXR0ZXIiKTsKIH0KIAotYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQor
dm9pZCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6aGVhcFNuYXBz
aG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBh
dXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChj
ZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2Vs
bCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hh
cioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFS
QU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllci5oCmluZGV4IGRkY2I2NTVkYTliOTBiMjM1MDE1NmVhMDI5MmYwMzk4
YTlmMjI5M2MuLjdlODhjZjRkNDFkNzI1ZDQwYjlmZjlkMTk1MWZlZjUxYjE4ODcyNjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllci5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMg
SlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVh
cFNuYXBzaG90QnVpbGRlciYpOwogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0
eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldo
ZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpT
Qzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJv
dGVjdGVkOgpAQCAtNjUsNyArNjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFu
ZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNs
b3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0
b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZENvbnN0cnVjdG9yLmNwcAppbmRleCAzNzMzYTc4YTNhM2M0OTBlYTNjMmQ3NmU1ODhjNDI0MWI3
NTNjYzYwLi5hY2U1NTFiMmY4ZDhiOTc1MzY2ZTljZjVhNWRiNDQ2ZjZmMzBjYmU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVk
ZSAiSlNET01OYW1lZENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0xOTcsMTIgKzE5OCwyMyBAQCBib29s
IHNldEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVgogICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFs
dWUpKTsKIH0KIAotYm9vbCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yT3duZXI6OmlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdE5hbWVkQ29uc3RydWN0b3I6OmhlYXBT
bmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7Cisg
ICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZENvbnN0cnVjdG9yKj4oY2Vs
bCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVj
dC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9
CisKK2Jvb2wgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNp
dG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIGF1dG8qIGpzVGVzdE5h
bWVkQ29uc3RydWN0b3IgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcio+KGhhbmRsZS5z
bG90KCktPmFzQ2VsbCgpKTsKLSAgICBpZiAoanNUZXN0TmFtZWRDb25zdHJ1Y3Rvci0+d3JhcHBl
ZCgpLmhhc1BlbmRpbmdBY3Rpdml0eSgpKQorICAgIGlmIChqc1Rlc3ROYW1lZENvbnN0cnVjdG9y
LT53cmFwcGVkKCkuaGFzUGVuZGluZ0FjdGl2aXR5KCkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZ
KHJlYXNvbikpCisgICAgICAgICAgICAqcmVhc29uID0gIkFjdGl2ZURPTU9iamVjdCB3aXRoIHBl
bmRpbmcgYWN0aXZpdHkiOwogICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgfQogICAgIFVOVVNF
RF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCmluZGV4IDU3MzJiYzBl
NDQ3ZGUxODBiZjA4MDBiYTJmMjMzMjlkZjk3ZTI2YmUuLjI1YzUxYmQ3YWYzZmJmOGFhNjQzNGJl
ZDZjNTMzZWNkZmQzMGIyYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaApAQCAt
NTAsNiArNTAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0
cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGlj
IEpTQzo6SlNWYWx1ZSBnZXROYW1lZENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVh
cFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE5hbWVkQ29uc3RydWN0
b3IoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0TmFtZWRDb25z
dHJ1Y3Rvcj4mJik7CiAKQEAgLTU4LDcgKzU5LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rl
c3ROYW1lZENvbnN0cnVjdG9yT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewog
cHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7
CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBj
aGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVs
ZXRlck5vSWRlbnRpZmllci5jcHAKaW5kZXggODI1Njc2MjQyZTUzM2I3YTlmMTM3ZGNmN2U3MDQz
ODQwOWExNzYzYi4uMmIzMWE0NTU1MmRlYjc3ZTkwOTVhYzg0ZDU4NmYyZWMzYjQ2NGI1NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKQEAgLTI4
LDYgKzI4LDcgQEAKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVk
ZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlv
blByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxk
ZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8
d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0y
MjUsMTAgKzIyNiwxOCBAQCBib29sIHNldEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbAogICAgIHJldHVybiBwcm90
b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJO
b0lkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQg
SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxs
LCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyKj4oY2VsbCk7CisgICAgYnVp
bGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgp
KTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNU
ZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3Im
IHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRs
ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24p
OwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRl
ck5vSWRlbnRpZmllci5oCmluZGV4IGZjOTNlODAyYTAxMWVkMDQ5MmVlZmZmYzIzYWJkMWI0ZjBj
MzRjMmQuLjI0NzlmNGY4YzhiMWRjNTQ3OWRiMTA5M2M3Mjk3MTA1YzVhNWI0OTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERl
bGV0ZXJOb0lkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmgKQEAgLTU0LDYgKzU0LDcg
QEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0
b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9p
ZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwdWJs
aWM6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpHZXRP
d25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0
c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6
T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5h
bWVzIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiBwcm90ZWN0ZWQ6CkBAIC02NCw3ICs2NSw3IEBA
IHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyT3duZXIg
OiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9v
bCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2
b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNv
bnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9p
ZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRp
b24uY3BwCmluZGV4IDhmMTcxNzJhZjFkOTQ5NTAxYzkwNjI0M2ExYmRlMGFiOWU2NDFiYzMuLjVk
YTllNmU0ZjU4MDFjMDYwNThiNjlhYzg1ZDhiODdmYzBkZjVmMmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJv
d2luZ0V4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcApAQCAtMjgsNiAr
MjgsNyBAQAogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJK
U0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJv
dG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYv
R2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTIzOSwx
MCArMjQwLDE4IEBAIGJvb2wgc2V0SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25D
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkCiAgICAgcmV0dXJuIHByb3RvdHlw
ZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1ib29sIEpTVGVzdE5hbWVkRGVsZXRlclRocm93
aW5nRXhjZXB0aW9uT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lk
IEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uOjpoZWFwU25hcHNob3QoSlNDZWxs
KiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNP
YmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24qPihjZWxs
KTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0
LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30K
KworYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbk93bmVyOjppc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9p
ZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVO
VVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVT
RURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJU
aHJvd2luZ0V4Y2VwdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmgKaW5kZXggY2RlMTFjNjgx
OTUwODcyMjFlZWUzNmRkNTFlNjUzNWRhZDI4NjE4NC4uN2JkZTliMTg5NjRhYzJhNzJmZDBlMzk4
MTk0MzJmN2RmNjlhN2UyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRl
clRocm93aW5nRXhjZXB0aW9uLmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogICAgIH0KIAog
ICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpT
Qzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxs
KiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVy
ZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5
SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVy
dHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0dXJl
RmxhZ3M7CiBwcm90ZWN0ZWQ6CkBAIC02NCw3ICs2NSw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3Mg
SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Pd25lciA6IHB1YmxpYyBKU0M6Oldl
YWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpT
Qzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90
VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRl
cldpdGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5kZXggZmM1ZjZmOTVm
ZGY2NTNjZmE2MWE2NjAzMjZlYjAwMTk2NmE2YTI1OC4uMGZiNDRiNDg1ODcwMmYzNjNmZTU2Mjc2
NjgwY2E0MDllMTg0NWVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVy
V2l0aElkZW50aWZpZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNET01PcGVy
YXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGlu
ZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVw
YXJhdGlvbnMuaD4KQEAgLTI1NiwxMCArMjU3LDE4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbk5h
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmll
cj46OmNhbGw8anNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlv
bk5hbWVkRGVsZXRlckJvZHk+KCpzdGF0ZSwgIm5hbWVkRGVsZXRlciIpOwogfQogCi1ib29sIEpT
VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyOjpoZWFw
U25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQorewor
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50
aWZpZXIqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGws
ICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBi
dWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllck93bmVy
Ojppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhh
bmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQog
ewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsK
KyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZERlbGV0ZXJXaXRoSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmgKaW5kZXggMDE0MTcw
ODM5NTA0NWI2ZjZiY2Q1MWEzMzFmMDkxNWIyZjgzZmQ4Mi4uNGVmM2VjMTg3ODhjNDBhZmM3YWMy
NmM5NDk3YjM3ZDA2N2JhYjFhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRl
cldpdGhJZGVudGlmaWVyLmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogICAgIH0KIAogICAg
IHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwg
SlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZv
clByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0dXJlRmxh
Z3M7CiBwcm90ZWN0ZWQ6CkBAIC02NCw3ICs2NSw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNU
ZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5k
bGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xv
dFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRv
ciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJ
bmRleGVkR2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKaW5kZXggZTNmZmE3ODMz
OGJiZWNjYTUxZTdhMWUxZjE3MWFiYzM2YWNiZTBiYy4uYjIyOGYwMWJmMzc4MmI4NjA5MjU3MTE5
ZTQ3ZGUyMTUxMmJiOWRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxl
dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNE
T01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBT
bmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRl
IDx3dGYvR2V0UHRyLmg+CkBAIC0yNDMsMTAgKzI0NCwxOCBAQCBib29sIHNldEpTVGVzdE5hbWVk
RGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZAogICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotYm9v
bCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlck93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdl
dHRlcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVp
bGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkRGVsZXRl
cldpdGhJbmRleGVkR2V0dGVyKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0
Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25h
cHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0TmFtZWREZWxldGVyV2l0aElu
ZGV4ZWRHZXR0ZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3Qg
Y2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURf
UEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhl
ZEdldHRlci5oCmluZGV4IDE1M2RiN2VjYTMwNmMyODY0MzBjMDhlNmM3NDM0YmJlZTdmMTBlMTcu
LmIzZDUwMTc4NzM0NjM1M2U0NzlkN2Y2MjYxNzliM2ExNzE3NzMxZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJX
aXRoSW5kZXhlZEdldHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5oCkBAIC01NCw2ICs1
NCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0
cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGlj
IHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwog
cHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6
R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVy
Y2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBK
U0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVy
dHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgpAQCAtNjQsNyArNjUs
NyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0
dGVyT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZp
cnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBi
b29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4s
IHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZp
cnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmNwcAppbmRl
eCBjMTE4MjBlZjhhZGNiZTdjNDc0OTdhODA0NTUzODQxNTIzYjhjZTBmLi5hODg4ZmZjMjk1ZGIx
ZmJjZDdkZjljMDBiYjNmOTc3NGJmYWU4OTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0
dGVyQ2FsbFdpdGguY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNET01FeGNlcHRp
b25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlND
SW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRl
clByZXBhcmF0aW9ucy5oPgpAQCAtMjA0LDEwICsyMDUsMTggQEAgYm9vbCBzZXRKU1Rlc3ROYW1l
ZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGgKICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLWJv
b2wgSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQordm9pZCBKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoOjpoZWFwU25hcHNob3Qo
SlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8q
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aCo+KGNlbGwpOwor
ICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndy
YXBwZWQoKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCiti
b29sIEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRv
ciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFu
ZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNv
bik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2Fs
bFdpdGguaAppbmRleCA2YmQyZThkZjg3OTk3MGIyZDViZmQ4ZjY4NmZiZWNmODQ2OWM3ZWYzLi4z
NmRiMDE3OThjNjAxYzljZWU4ODk4NDJkZGJjZWM4YjMzOTNlN2ZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxs
V2l0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZEdldHRlckNhbGxXaXRoLmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAgIH0K
IAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0
IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlND
ZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0lt
cHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xv
dEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJv
cGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0
dXJlRmxhZ3M7CiBwcm90ZWN0ZWQ6CkBAIC02Miw3ICs2Myw3IEBAIHByb3RlY3RlZDoKIAogY2xh
c3MgSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aE93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRs
ZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90
VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhK
U0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9y
JiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50
aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcAppbmRleCA2M2RiYzYzZGJlOTZkZjJlMGNjMGZk
YmRlMTkyNTcyNzBmNWRlZjczLi4zMzFkYTcxOTlmMjNiNmQ1ZmFiMDg4OGJhYTg5OTI1NjA1Y2Jm
MGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5jcHAK
QEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAj
aW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9G
dW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hv
dEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+
CkBAIC0yMDQsMTAgKzIwNSwxOCBAQCBib29sIHNldEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlm
aWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdQogICAgIHJldHVy
biBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3Is
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotYm9vbCBKU1Rlc3ROYW1lZEdl
dHRlck5vSWRlbnRpZmllck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQor
dm9pZCBKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCog
Y2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyKj4oY2VsbCk7CisgICAg
YnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBl
ZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wg
SlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRv
ciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFu
ZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNv
bik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRl
ck5vSWRlbnRpZmllci5oCmluZGV4IDczMTgwZDVlMmJiMDQxMzJkMDg3MTRmMjU0ZWFlNjllYjc1
NTdjYWUuLmQzN2M4M2Y4MGI3Yzc5ZWU5OWViMzIyNmI1OTFkNTQwNmZmODhlYTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdl
dHRlck5vSWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5oCkBAIC01Miw2ICs1Miw3IEBA
IHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9y
KEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQg
aGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHVibGlj
OgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6R2V0T3du
UHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNH
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92
ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1l
cyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgpAQCAtNjIsNyArNjMsNyBAQCBw
cm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyT3duZXIgOiBw
dWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lk
KiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRl
eHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBm
aW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcAppbmRl
eCBiZDk2Y2FiMjlhYzYwZDllZjg4NzM5MmYwYzM3OWZkZmVlNjAxZGY4Li45MGE5NWZlNjc3NmFk
OTBhOTI3ZDRmOWVmNDMwZTM2NTRhZTY5NGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAi
SlNET01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bv
aW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTIzMiwxMCArMjMzLDE4IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1
bmN0aW9uR2V0CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZEdldHRlcldpdGhJ
ZGVudGlmaWVyPjo6Y2FsbDxqc1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBl
RnVuY3Rpb25HZXR0ZXJOYW1lQm9keT4oKnN0YXRlLCAiZ2V0dGVyTmFtZSIpOwogfQogCi1ib29s
IEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90Vmlz
aXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllcjo6aGVh
cFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sK
KyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50
aWZpZXIqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGws
ICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBi
dWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyT3duZXI6
OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFu
ZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7
CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOwor
ICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
R2V0dGVyV2l0aElkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmgKaW5kZXggZjU3YjlkNWZj
NmUzOTc1NGQ3MTA1OGE2N2ExOGEzZDMwNDljZDM3MS4uMGQ1NWZlZjIzNDQ4NTAxM2Y4ZDc2MWMz
YzE5YjNmMjcwYjQ5ZWRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRo
SWRlbnRpZmllci5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0
aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6
SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9w
ZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZl
bldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwog
cHJvdGVjdGVkOgpAQCAtNjIsNyArNjMsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5h
bWVkR2V0dGVyV2l0aElkZW50aWZpZXJPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25l
ciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0
b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNv
bnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZFNldHRlck5vSWRlbnRpZmllci5jcHAKaW5kZXggYzg5YjIzYmZkOWFiZjRmODUzODFlNDhhYzZi
YWY5M2FhM2M3Y2Y2NS4uNTQwOWFhZWVhYjIyMjM0YmYyYzk5NTVkZmEwMzJiMGI5Yjc3MWU3ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCkBAIC0y
OCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1
ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rp
b25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWls
ZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAt
MjY2LDEwICsyNjcsMTggQEAgYm9vbCBzZXRKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHUKICAgICByZXR1cm4gcHJv
dG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLWJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJO
b0lkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQg
SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGws
IEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9
IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcio+KGNlbGwpOworICAgIGJ1aWxk
ZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7
CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVz
dE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZp
c2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7
CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwog
ICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lk
ZW50aWZpZXIuaAppbmRleCA0NTQ0YzUxNTU5Y2Y3OTUzMzA0YzQ2YzY0NjZhYmM3YzM5Mzc4MGYw
Li42Mzc1NzBmMjE2ZWUzODMyNTViYzg5YjRlMjhlZTlmZjI2MGFlZDUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJO
b0lkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuaApAQCAtNTUsNiArNTUsNyBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6
OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBT
bmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6OkdldE93blByb3Bl
cnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3du
UHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBC
YXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHByb3RlY3RlZDoKQEAgLTY1LDcgKzY2LDcgQEAgcHJvdGVj
dGVkOgogCiBjbGFzcyBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllck93bmVyIDogcHVibGlj
IEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFj
aGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29u
dGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBK
U0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxp
emUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKaW5k
ZXggM2FmYTExZDBhZTNlODlmM2NiZjBlZTg5NDRmMWQ2YmVmMTE0ZDhlNy4uOTdhNzZiMzMwZjU1
YjhkNzU5YmVlNDY4NDU0MWY2ODU5NTBmYmFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2lu
Y2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJD
YWNoZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+Cisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTI2NiwxMCArMjY3LDE4IEBA
IGJvb2wgc2V0SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRWYWx1ZSkpOwogfQogCi1ib29sIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25P
d25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
PiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0TmFtZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNu
YXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0
PEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24qPihjZWxsKTsKKyAgICBidWlsZGVy
LnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwor
ICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RO
YW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3Im
IHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRs
ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24p
OwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uLmgKaW5kZXggZWY0YTI2ZDkwMDFmNjBkYWEwNTkyMDMyYzYx
YWI2NTYzMjAwYTkwMS4uNWIxNzEzYzBjZjJiZmUxYTEyMTRiNzZmYjUyNzE2OGViM2VhMzQ5MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5o
CkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1Zh
bHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90
QnVpbGRlciYpOwogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2Ug
fCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJ
c05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJp
ZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgpA
QCAtNjUsNyArNjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5hbWVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb25Pd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJs
aWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIq
Kik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4s
IHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVy
V2l0aElkZW50aWZpZXIuY3BwCmluZGV4IDkyODczNjQxZWY3ZjQ0OWQxOGRjNTZiYWFjYmUwN2Yz
YTg4ZTZkMmYuLmU1MDcyN2EwY2FjMDQ3NTRiZDk2ODM2NTQ2NzYzNjJhZWM0M2M0NTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKQEAgLTI5
LDYgKzI5LDcgQEAKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9N
V3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5
cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMjk3LDEwICsy
OTgsMTggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZFNldHRlcldp
dGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW0KICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI+OjpjYWxsPGpzVGVzdE5hbWVkU2V0dGVy
V2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyQm9keT4oKnN0YXRlLCAi
bmFtZWRTZXR0ZXIiKTsKIH0KIAotYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVy
T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdE5hbWVk
U2V0dGVyV2l0aElkZW50aWZpZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFw
c2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxK
U1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRX
cmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBC
YXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9y
LCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAg
IFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRl
bnRpZmllci5oCmluZGV4IGJjODg1YjNjYTk1NzI4NDY3YjFhNWI3M2FiZTU2MjIzYTBjYzg2NTYu
LjBlYzQ1ZjQwZjQ0ZTBlMjcyZmUyYzM2NzM2NjZlMzdiZTZlMWQ5NmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldp
dGhJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuaApAQCAtNTUsNiArNTUsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihK
U0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhl
YXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6OkdldE93blBy
b3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0
T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMg
fCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHByb3RlY3RlZDoKQEAgLTY1LDcgKzY2LDcgQEAgcHJv
dGVjdGVkOgogCiBjbGFzcyBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyT3duZXIgOiBw
dWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lk
KiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRl
eHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBm
aW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmNw
cAppbmRleCA2NmQ1YThhZGFiYTU5ZWUwODkzNTI2ZDQ4OGQxNmI5OTM1YzM5ZGY5Li5hYWMxMTY4
Y2M1MDI1ZmJlMGFmMzZhYWNjNmQ1NDA1MzdiNDM2YTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhl
ZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvcGVydHlOYW1lQXJy
YXkuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CkBAIC0zNDAsMTAgKzM0MSwxOCBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJQcm90b3R5cGVGdW5jdGlvbgogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlcj46OmNhbGw8anNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhl
ZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlckJvZHk+KCpzdGF0ZSwgImluZGV4
ZWRTZXR0ZXIiKTsKIH0KIAotYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBT
bmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2Fz
dDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyKj4oY2VsbCk7CisgICAgYnVpbGRl
ci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsK
KyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9y
JiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5k
bGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29u
KTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5oCmluZGV4IDJmMjQ1MjBmYmYxOWZlYTA0MGUxMTJmZTc5
ZTAzMTQ0ZDIzYTgwMmEuLmRiZWJlNGM0ODYyODQ1N2YxOTRmMTBjNDgwN2EzNTFjMWQ2YTcyN2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIu
aApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNW
YWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCop
OworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hv
dEJ1aWxkZXImKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNl
IHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3Ro
SXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJy
aWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHByb3RlY3RlZDoK
QEAgLTY1LDcgKzY2LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3ROYW1lZFNldHRlcldp
dGhJbmRleGVkR2V0dGVyT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVi
bGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7Cisg
ICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFy
KiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5k
U2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcAppbmRleCAzYzI5MTM3
ZDNhNmExNzM2NTMwODNjZTc3NzRjODA4MzdmY2IwMTJiLi5lMWUzOWQyOWY3MjFiNmQ3NjM1MTNh
YWY5MDM1MWEwMDc5NDk3OTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwCkBAIC0zMSw2ICszMSw3
IEBACiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJVUkwuaCIKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvcGVydHlOYW1l
QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CkBAIC0zOTAsMTAgKzM5MSwxOCBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRH
ZXR0ZXJBbmRTZXR0ZXJQcm90b3R5cAogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcj46OmNhbGw8anNUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRl
ck92ZXJsb2FkRGlzcGF0Y2hlcj4oKnN0YXRlLCAiaW5kZXhlZFNldHRlciIpOwogfQogCi1ib29s
IEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJPd25lcjo6aXNSZWFj
aGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZv
aWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5k
ZXhlZEdldHRlckFuZFNldHRlcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBz
aG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpT
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIqPihjZWxsKTsKKyAgICBi
dWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVk
KCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBK
U1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lk
KiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5V
U0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNF
RF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmgK
aW5kZXggNDUwNjBjNzU1ZjY1NzUyMDgxNDBkYzQxZWFmYjY2ODc0ODUzYTEwNS4uYzE2MGQ2OGYy
NTFhOGY2ZDg1MjNjZTM0NjRlYmMxMjRlMjRlZDdkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRH
ZXR0ZXJBbmRTZXR0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5oCkBAIC01
NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdl
dENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAg
c3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRl
ciYpOwogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6
OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFpl
cm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0
UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgpAQCAtNjUs
NyArNjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJBbmRTZXR0ZXJPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBw
dWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNo
YXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRp
bnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMuY3BwCmluZGV4IGMzM2ZkOGVkNzUxMDJhMDZk
ZWI0NjE4MzQzMjQ1YzE5YzE0ZjYwMzYuLjVhMDQ1ZjMyZTBmODg1MGFlMjBiNGUwOTcxZWY4ZTVh
MGU2NDIyNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
T3ZlcnJpZGVCdWlsdGlucy5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJKU0RPTUV4
Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Q
b2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0yNTMsMTAgKzI1NCwxOCBAQCBib29sIHNldEpTVGVz
dE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZAogICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0K
IAotYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zT3duZXI6OmlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2
b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92
ZXJyaWRlQnVpbHRpbnM6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1
aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RO
YW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRX
cmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBC
YXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGluc093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2
aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUp
OwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5z
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5oCmluZGV4IGQwODRjYTVmNDIxNDVjMDVlYTE4ZDBj
YTNjMTVmMmZkMjFjMzVmNjEuLmZlMDM3YzMxMzI1ZWMxZjQ0OTZmY2UxZmQ3ZTk1NzRhZjY5Zjhm
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRl
QnVpbHRpbnMuaApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGlj
IEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2Jh
bE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6Okhl
YXBTbmFwc2hvdEJ1aWxkZXImKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlIHwgSlNDOjpJ
bnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJv
IHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFBy
b3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHByb3RlY3RlZDoKQEAgLTY1LDcg
KzY2LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlk
ZUJ1aWx0aW5zT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgot
ICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmly
dHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5r
bm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwog
ICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lk
KiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuY3BwCmluZGV4IDQ0MDU3ZmU4N2ExMmM2OWQ5
MDcxMDc0MGUyNGEwOTA4ZGY5NGM0NTkuLmU3YTM2YjA1ZTlkZDRmMDY2ZGUxZjkxYTllZDRmNTEw
NWY1MjM1MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVy
V2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
IkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Q
b2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0zMzUsMTAgKzMzNiwxOCBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVz
SW5zdGFuY2VGdQogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZXR0ZXJXaXRo
VW5mb3JnYWJsZVByb3BlcnRpZXM+OjpjYWxsPGpzVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2Fi
bGVQcm9wZXJ0aWVzSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlT3BlcmF0aW9uQm9keT4oKnN0
YXRlLCAidW5mb3JnZWFibGVPcGVyYXRpb24iKTsKIH0KIAotYm9vbCBKU1Rlc3ROYW1lZFNldHRl
cldpdGhVbmZvcmdhYmxlUHJvcGVydGllc093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQordm9pZCBKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllczo6
aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikK
K3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVu
Zm9yZ2FibGVQcm9wZXJ0aWVzKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0
Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25h
cHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5m
b3JnYWJsZVByb3BlcnRpZXNPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwg
Y29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBV
TlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
cldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5oCmluZGV4IDk2NGExN2RmMTI2OGQ4NDY0YWFkOWI1
OWMxNmUxMzY0ZGM4ZDRlZDQuLmExNjg2OGYyZjJjMzExNTZlMzg2ZGEwMzIxMWIxZTJmOTdmYzVl
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZv
cmdhYmxlUHJvcGVydGllcy5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAg
ICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6
OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCos
IEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVG
b3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGUgfCBKU0M6Oklu
dGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8g
fCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJv
cGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgpAQCAtNjUsNyAr
NjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2Fi
bGVQcm9wZXJ0aWVzT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGlj
OgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAg
dmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiop
OwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2
b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGll
c0FuZE92ZXJyaWRlQnVpbHRpbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3Zl
cnJpZGVCdWlsdGlucy5jcHAKaW5kZXggZGIyZDZjNTkwZWE0OGVjZTEyOGRkODJlYTQ4NGExODEy
ZWQyMGNkMy4uNWE3MWMyYTU3OWUwNWJmZjliYjZmZmVmN2EwYWE3OTJjMmE5ZjBjMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHAKQEAgLTMw
LDYgKzMwLDcgQEAKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9N
V3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5
cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMzIyLDEwICsz
MjMsMTggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZFNldHRlcldp
dGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWQKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWls
dGlucz46OmNhbGw8anNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRP
dmVycmlkZUJ1aWx0aW5zSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlT3BlcmF0aW9uQm9keT4o
KnN0YXRlLCAidW5mb3JnZWFibGVPcGVyYXRpb24iKTsKIH0KIAotYm9vbCBKU1Rlc3ROYW1lZFNl
dHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnNPd25lcjo6aXNS
ZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUs
IHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
VW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zOjpoZWFwU25hcHNob3QoSlND
ZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRp
ZXNBbmRPdmVycmlkZUJ1aWx0aW5zKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2Jq
ZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFw
U25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
VW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zT3duZXI6OmlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VE
X1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9Q
QVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVu
Zm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQ
cm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5oCmluZGV4IDM4NWIwYTViNjAyMjliYTIzMzQy
MjAwYTlhYTEzMTY5ZmMyZTZjNDUuLjllNDI2N2NiNjA3NjA1MzJlMDhkMTlhMWQxZWI1ZjY5NjQz
ZTk2NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVp
bHRpbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5z
LmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpT
VmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3Qq
KTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNo
b3RCdWlsZGVyJik7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSB8IEpTQzo6SGFzU3RhdGlj
UHJvcGVydHlUYWJsZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhF
dmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90
IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7
CiBwcm90ZWN0ZWQ6CkBAIC02NSw3ICs2Niw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zT3du
ZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwg
Ym9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlz
UmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQq
IGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwg
dm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROb2RlLmNwcAppbmRleCBiMmJhNTU5MTA4MzliN2UxODdhZGZkNWFjZDczZjgwYzI3
MzE5Nzk3Li5mZWYwNGU5ZjAyMDgyZjQ2NDZjOTQ0NTRlMjZlZDc5ZmUyNzM4OGM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5v
ZGUuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9CdWlsdGluTmFtZXMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFw
U25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09iamVjdENvbnN0cnVjdG9yLmg+CiAjaW5jbHVk
ZSA8d3RmL0dldFB0ci5oPgpAQCAtNDEyLDYgKzQxMywxMyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRvSlNPTihFeGVjU3RhdGUqIHN0
YXRlKQogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Tm9kZT46OmNhbGw8anNUZXN0Tm9k
ZVByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9keT4oKnN0YXRlLCAidG9KU09OIik7CiB9CiAKK3Zv
aWQgSlNUZXN0Tm9kZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVp
bGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5v
ZGUqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0
aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWls
ZGVyKTsKK30KKwogI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKICNpZiBQTEFURk9STShX
SU4pCiAjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDQ4MykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oCmluZGV4IDhmOGQyYzM4
OGJmN2JiOTcyMjdhNGU5Njg2NmM5MmYzZDExZGZkZTYuLmU3YzI1ZDU1NGNhMjg0ZmNjMjUxNzM2
YWViNGQ0NzM2YTRhNDc0YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAK
ICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIHNlcmlhbGl6
ZShKU0M6OkV4ZWNTdGF0ZSYsIEpTVGVzdE5vZGUmIHRoaXNPYmplY3QsIEpTRE9NR2xvYmFsT2Jq
ZWN0JiwgSlNDOjpUaHJvd1Njb3BlJik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpT
Q2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogICAgIFRlc3ROb2RlJiB3cmFwcGVk
KCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUZXN0Tm9kZSY+KEJh
c2U6OndyYXBwZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IGMwNDY2YzI2NmI3MzdmNmM4ODVkMmFhZmQw
NWI1ZjE2ZjY4MmQ1MDEuLjQ5YmRkYzlmMGI3ZGNjODIwNzg3NzM4M2M5MzIwYmMyYTU2NDVkMzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwCkBAIC04Miw2ICs4Miw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
QXJyYXlQcm90b3R5cGUuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9CdWlsdGluTmFtZXMu
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9JdGVyYXRvck9wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU0FycmF5Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgpAQCAt
ODM4OSwxMCArODM5MCwxOCBAQCB2b2lkIEpTVGVzdE9iajo6dmlzaXRDaGlsZHJlbihKU0NlbGwq
IGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmpl
Y3QtPm1fY2FjaGVkQXR0cmlidXRlMik7CiB9CiAKLWJvb2wgSlNUZXN0T2JqT3duZXI6OmlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2
b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdE9iajo6aGVhcFNuYXBzaG90
KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE9iaio+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0
V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAg
QmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdE9iak93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29u
KQogewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9y
KTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
aAppbmRleCA4NTQyNDQzM2Y4MmU0ZmViZDc1ZjYzNTUwN2IwZTdhZjlkNThmOTU0Li4xZTFiNDY3
ZmZlMTdkYTkwNmU4ZmFmMWQzOTQyZjg4ZTFhMTVjMWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC02Miw2ICs2Miw3
IEBAIHB1YmxpYzoKICAgICBtdXRhYmxlIEpTQzo6V3JpdGVCYXJyaWVyPEpTQzo6VW5rbm93bj4g
bV9jYWNoZWRBdHRyaWJ1dGUyOwogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxs
KiwgSlNDOjpTbG90VmlzaXRvciYpOwogCisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpT
Q2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogCiAgICAgLy8gQ3VzdG9tIGF0dHJp
YnV0ZXMKICAgICBKU0M6OkpTVmFsdWUgY3VzdG9tQXR0cihKU0M6OkV4ZWNTdGF0ZSYpIGNvbnN0
OwpAQCAtODQsNyArODUsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE9iak93bmVyIDog
cHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wg
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9p
ZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKaW5kZXggNDE4
MTFiOWY3NzFmNzJlZTY2MTRhMzc1MDYyMzQyOWYxNWE2MjczOS4uMTA1Y2UxYWFlM2VjODBlOWY5
YzEwYTg3OGU4NmRiMGRiYmVjZjk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkpTRE9NRXhjZXB0
aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pT
Q0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50
ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTI0OSwxMCArMjUwLDE4IEBAIGJvb2wgc2V0SlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1i
b29sIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNPd25lcjo6aXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90Vmlz
aXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6aGVhcFNu
YXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAg
ICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMq
PihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlz
T2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVy
KTsKK30KKworYm9vbCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lk
KiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5V
U0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNF
RF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgKaW5kZXggYjc4ZDgzYTc4YTg4YTk1ZTBhOWZhYTIw
YzUxMzFlM2NjN2Y1NTk2Ny4uMjg5YTYzNWFiZjUxOTY2NzNhYTExYmQ0NmFiMGZhZGI4MzVhZTkx
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCkBAIC00OSw2
ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENv
bnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3Rh
dGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYp
OwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMoSlNDOjpTdHJ1
Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cz4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewog
cHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7
CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBj
aGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNl
cXVlbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcAppbmRleCA5MGNlOTBkNTAy
MGJiMTg4NjE3ZGMxNDY0YTA3MTA3N2E3OTEzZTYyLi41YjNiNjMwYzQxZmYzMjgxMDlkMDUwOTlj
YTc4Y2Y1NmYyNWRmM2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNh
Y2hlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSXRlcmF0b3JPcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNBcnJheS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4K
QEAgLTIwNSwxMCArMjA2LDE4IEBAIGJvb2wgc2V0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
c1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuCiAgICAgcmV0dXJu
IHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3Rvciwg
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1ib29sIEpTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYg
dmlzaXRvcikKK3ZvaWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZTo6
aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikK
K3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnNXaXRoU2VxdWVuY2UqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RG
b3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFw
c2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzV2l0aFNlcXVlbmNlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNv
bnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5V
U0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVy
biBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzV2l0aFNlcXVlbmNlLmgKaW5kZXggZTM1OGRhYTRkMjRmYzNkMjNlMDljZGU0ZWEx
OGU5MDc3NzRjNDcxZC4uZTBmNTRlYmVkZmZlMmYyZGQxYjU5ZWJiMGE4NzM5YjZiNmRmMTY4MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dp
dGhTZXF1ZW5jZS5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0
aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6
SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVj
dCYsIFJlZjxUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZT4mJik7CiAKQEAg
LTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzV2l0aFNlcXVlbmNlT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewog
cHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7
CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBj
aGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5z
LmNwcAppbmRleCAwMzkyOGI1MWQxMWRkMTcxNTkxNGI1Y2UxNjFlYmNiODUwYmM0Y2E3Li5hYjQ0
ODg4MjY0ZDhkY2JjNDJkM2NkMjQ1NTVmMWJlM2JkYWJlMmY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92
ZXJyaWRlQnVpbHRpbnMuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSlNET01XcmFw
cGVyQ2FjaGUuaCIKICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFw
c2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAj
aW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25z
Lmg+CkBAIC0yMzUsMTAgKzIzNiwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE92ZXJyaWRlQnVpbHRpbnNQcm90b3R5cGVGdW5jdGlvbk5hbWVkSXRlbShFeAogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T3ZlcnJpZGVCdWlsdGlucz46OmNhbGw8anNUZXN0T3Zl
cnJpZGVCdWlsdGluc1Byb3RvdHlwZUZ1bmN0aW9uTmFtZWRJdGVtQm9keT4oKnN0YXRlLCAibmFt
ZWRJdGVtIik7CiB9CiAKLWJvb2wgSlNUZXN0T3ZlcnJpZGVCdWlsdGluc093bmVyOjppc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9p
ZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zOjpo
ZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQor
eworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0T3ZlcnJpZGVCdWlsdGlucyo+
KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNP
YmplY3QtPndyYXBwZWQoKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIp
OworfQorCitib29sIEpTVGVzdE92ZXJyaWRlQnVpbHRpbnNPd25lcjo6aXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90
VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFS
QU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFN
KHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVp
bHRpbnMuaAppbmRleCBmNWJlMDcyY2M4ZDZlOGExMzcwNTQ2OTU1ZDk4MTdkYjBmNTY5MDgyLi5m
MmEyNmFmMzlhNDZjMTg3OWY1NmNiM2NkODFjNjc5NzBjZjJkYmZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlu
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
dmVycmlkZUJ1aWx0aW5zLmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAgIH0KIAogICAg
IHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwg
SlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSB8
IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElz
Tm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlk
ZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiBwcm90ZWN0ZWQ6CkBA
IC02Miw3ICs2Myw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0T3ZlcnJpZGVCdWlsdGlu
c093bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0
dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9v
bCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2
b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0
dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4
dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwCmluZGV4IGIwNGMzNWJk
MTUyNDBhODA2ODg2MWIyNWVmMmM3NzhhOGI0NWM1MTEuLjJlMDNjYmZjMmNiM2VmNGY4ODY4NWEx
ZjA4MjZkZTk0ZDA5ODdjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwCkBA
IC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRl
ICJKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9G
dW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hv
dEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+
CkBAIC0yMDgsMTAgKzIwOSwxOCBAQCBib29sIHNldEpTVGVzdFBsdWdpbkludGVyZmFjZUNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYQogICAgIHJldHVy
biBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3Is
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotYm9vbCBKU1Rlc3RQbHVnaW5J
bnRlcmZhY2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNU
ZXN0UGx1Z2luSW50ZXJmYWNlOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNo
b3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNU
ZXN0UGx1Z2luSW50ZXJmYWNlKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0
Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25h
cHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0UGx1Z2luSW50ZXJmYWNlT3du
ZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4g
aGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24p
CiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3Ip
OworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBs
dWdpbkludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFBsdWdpbkludGVyZmFjZS5oCmluZGV4IDM3YTMwZWM5YmYyNTI1NGQyNmQyM2JjYjMy
OGI2ODFkMjRkNDZmMTAuLjZkZGI3OWM1YzVjZjAxYWQwNGZlYmZkNzEzMzU3N2M2MDUxNmY3ZTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RQbHVnaW5JbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGlj
OgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpW
TSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25h
cHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwdWJsaWM6CiAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpJbnRlcmNlcHRzR2V0
T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVy
cmlkZXNHZXRDYWxsRGF0YSB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgQmFz
ZTo6U3RydWN0dXJlRmxhZ3M7CiBwcm90ZWN0ZWQ6CkBAIC02Niw3ICs2Nyw3IEBAIHByb3RlY3Rl
ZDoKIAogY2xhc3MgSlNUZXN0UGx1Z2luSW50ZXJmYWNlT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFr
SGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6
OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZp
c2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0
aW9uRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAKaW5kZXggMTQ5Y2M5YjdjNjBiZWIxYWIxYmUy
NzFiNmI0NTFkYWYxOGI2ZjQyMS4uMTI4MzY2MTRhMmRlN2JhMWJiNTA3NDE4Yjk3ZmE0MzRmZTM3
MjJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5o
IgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0yODUsNiArMjg2LDEz
IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFJlYXNvbihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RQcm9taXNlUmVqZWN0aW9uRXZlbnQ+OjpnZXQ8anNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50
UmVhc29uR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigqc3RhdGUsIHRo
aXNWYWx1ZSwgInJlYXNvbiIpOwogfQogCit2b2lkIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVu
dDo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRl
cikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFByb21pc2VSZWplY3Rp
b25FdmVudCo+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2Vs
bCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGws
IGJ1aWxkZXIpOworfQorCiAjaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQogI2lmIFBMQVRG
T1JNKFdJTikKICNwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0NDgzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rp
b25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFByb21pc2VSZWplY3Rpb25FdmVudC5oCmluZGV4IDQ0MjY4MjQzNGIwMmMxNDk1ZWQ1NTA2N2Zi
OTRmM2EyM2ZmYjQ3N2YuLmY0Njk1ZmE0YzVhZDY2NjU4MDUwMjY5MThlZTlmZDZkZGM5NjQ2ZTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmgKQEAgLTQ5LDYgKzQ5
LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3Ry
dWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMg
dm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiAg
ICAgVGVzdFByb21pc2VSZWplY3Rpb25FdmVudCYgd3JhcHBlZCgpIGNvbnN0CiAgICAgewogICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGVzdFByb21pc2VSZWplY3Rpb25FdmVudCY+KEJhc2U6
OndyYXBwZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbi5jcHAKaW5kZXggMzZkOTJkMDAw
OTFjODYzZGZmMzYxZDYxNjg1Zjk3ZGFmNzUxMDhmNC4uMDI1ZTE4YWFjNWU2YThiMjhkYWQyNzI1
OWUwNzJhY2I1ZTdjODYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uLmNwcApAQCAtMzYs
NiArMzYsNyBAQAogI2luY2x1ZGUgIkpTVGVzdFNlcmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRh
bmNlLmgiCiAjaW5jbHVkZSAiSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbC5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PYmplY3RDb25zdHJ1
Y3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KQEAgLTU0MiwxMCArNTQzLDE4IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2VyaWFsaXphdGlvblByb3RvdHlwZUZ1
bmN0aW9uVG9KU09OKEV4ZWNTdGF0CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXJp
YWxpemF0aW9uPjo6Y2FsbDxqc1Rlc3RTZXJpYWxpemF0aW9uUHJvdG90eXBlRnVuY3Rpb25Ub0pT
T05Cb2R5Pigqc3RhdGUsICJ0b0pTT04iKTsKIH0KIAotYm9vbCBKU1Rlc3RTZXJpYWxpemF0aW9u
T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdFNlcmlh
bGl6YXRpb246OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXIm
IGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTZXJpYWxp
emF0aW9uKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxs
LCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwg
YnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0U2VyaWFsaXphdGlvbk93bmVyOjppc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCos
IFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNF
RF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURf
UEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXph
dGlvbi5oCmluZGV4IDAwOWQ2NmY0YmNkZDRlMTQ3YmNlYjk4MDU5NzZiODc4MGEwMDY4MWUuLmQy
NzI4NDdmN2I0M2Q5ZWQ1MzgxMzY3YjM1NDFiYmJmMzEzNDdlZjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlh
bGl6YXRpb24uaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpK
U1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIHNlcmlhbGl6ZShKU0M6OkV4ZWNTdGF0ZSYs
IEpTVGVzdFNlcmlhbGl6YXRpb24mIHRoaXNPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0JiwgSlND
OjpUaHJvd1Njb3BlJik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpT
Qzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdFNlcmlhbGl6
YXRpb24oSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0U2VyaWFs
aXphdGlvbj4mJik7CiAKQEAgLTU4LDcgKzU5LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rl
c3RTZXJpYWxpemF0aW9uT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVi
bGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7Cisg
ICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFy
KiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5j
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2Vy
aWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2UuY3BwCmluZGV4IGRmNjRlYWRjNDczNmFjMjgz
M2JjNThhZjQ3MTU5NTQ2NDA0ZTBmMjAuLmMyOTY5MmQ2NDNkMWRiYmJmMGQ0OTk4ZjAwNzkyMjI3
MWZlZjdjMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5jZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25J
bmRpcmVjdEluaGVyaXRhbmNlLmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkpTRE9N
Q29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25I
YW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTE0Niw1ICsxNDcsMTIgQEAgYm9vbCBzZXRKU1Rl
c3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY28KICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9
CiAKK3ZvaWQgSlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2U6OmhlYXBTbmFw
c2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAg
YXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhl
cml0YW5jZSo+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2Vs
bCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGws
IGJ1aWxkZXIpOworfQorCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5jZS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6
YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlLmgKaW5kZXggYTEzMzVmYWRjOTE1ZDQ1NGNjNWE0Yjg4
Nzc1ZWQ0OGRhNTMyM2I4MC4uMGRkMDQ1YWU2ODVlZGRhY2Y5NWVjZGJhYjNlZGRhZTE1YzhhNWJl
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25JbmRpcmVjdElu
aGVyaXRhbmNlLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRp
YyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9i
YWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpI
ZWFwU25hcHNob3RCdWlsZGVyJik7CiAgICAgVGVzdFNlcmlhbGl6YXRpb25JbmRpcmVjdEluaGVy
aXRhbmNlJiB3cmFwcGVkKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2UmPihCYXNlOjp3cmFwcGVkKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5jcHAKaW5kZXggMTZhZDEw
ZWJiMjBhOTNjZTE4MDBlODBlODM4ODg2NjFiMjBiNjUxNy4uMjhmMWQzYmFiZjQ0NDNlZTExZTgz
ODlkZWYyOWI2ZjVlZjUzMDhhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbklu
aGVyaXQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5k
bGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFw
cGVyQ2FjaGUuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVy
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL09iamVjdENvbnN0cnVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5o
PgpAQCAtMjIxLDUgKzIyMiwxMiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dFNlcmlhbGl6YXRpb25Jbmhlcml0UHJvdG90eXBlRnVuY3Rpb25Ub0pTT04oRQogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQ+OjpjYWxsPGpzVGVzdFNl
cmlhbGl6YXRpb25Jbmhlcml0UHJvdG90eXBlRnVuY3Rpb25Ub0pTT05Cb2R5Pigqc3RhdGUsICJ0
b0pTT04iKTsKIH0KIAordm9pZCBKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdDo6aGVhcFNuYXBz
aG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBh
dXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0Kj4oY2Vs
bCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVj
dC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9
CisKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQuaAppbmRleCAwNjcz
ODU0YzJmMDFjY2U0M2M4ZWY4YWQxZmVhNDE2NGJiODFlZGQxLi4wMjg3M2EyNmZjYzA0MWJjOThh
NjRhNTU3YjNlYzk3OGUzZWJjYTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbklu
aGVyaXQuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU1Zh
bHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIHNlcmlhbGl6ZShKU0M6OkV4ZWNTdGF0ZSYsIEpT
VGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0JiB0aGlzT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCYs
IEpTQzo6VGhyb3dTY29wZSYpOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwq
LCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKICAgICBUZXN0U2VyaWFsaXphdGlvbkluaGVy
aXQmIHdyYXBwZWQoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRl
c3RTZXJpYWxpemF0aW9uSW5oZXJpdCY+KEJhc2U6OndyYXBwZWQoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlv
bkluaGVyaXRGaW5hbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbC5jcHAKaW5kZXggZjBjNDA4NWEzNjMy
MzMxYWI3NzFmNjFhYTVhMmMxMTcxMTU4MTkwMS4uNDc0M2NjZDRmZjEyMTNhMDUxNThlYzVjMmM5
NTMwMjY1ZGIyZDJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5o
ZXJpdEZpbmFsLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9u
SGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9N
V3JhcHBlckNhY2hlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVp
bGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9PYmplY3RDb25zdHJ1Y3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD4KQEAgLTI1NSw1ICsyNTYsMTIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsUHJvdG90eXBlRnVuY3Rpb25Ub0oKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWw+OjpjYWxs
PGpzVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWxQcm90b3R5cGVGdW5jdGlvblRvSlNPTkJv
ZHk+KCpzdGF0ZSwgInRvSlNPTiIpOwogfQogCit2b2lkIEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhl
cml0RmluYWw6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXIm
IGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTZXJpYWxp
emF0aW9uSW5oZXJpdEZpbmFsKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0
Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25h
cHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0Rmlu
YWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJp
YWxpemF0aW9uSW5oZXJpdEZpbmFsLmgKaW5kZXggZDE2Zjg1ZmM1M2ZiMGRlMDlmOTFiZDY5ZGY1
ZTY4MWM5MTYzY2Q0OC4uN2M0NzU3NTJkNDBjMzAxYjI0NDkzM2NlMDEwMzk2ODk0MzEwMTY4MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbC5oCkBAIC00
OSw2ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3Ry
dWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMg
SlNDOjpKU09iamVjdCogc2VyaWFsaXplKEpTQzo6RXhlY1N0YXRlJiwgSlNUZXN0U2VyaWFsaXph
dGlvbkluaGVyaXRGaW5hbCYgdGhpc09iamVjdCwgSlNET01HbG9iYWxPYmplY3QmLCBKU0M6OlRo
cm93U2NvcGUmKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpI
ZWFwU25hcHNob3RCdWlsZGVyJik7CiAgICAgVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwm
IHdyYXBwZWQoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRlc3RT
ZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsJj4oQmFzZTo6d3JhcHBlZCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXgg
ZDNmZWRhYWI5NjU3ZGI1NGQzY2JiNTc5YjBiYzhkNDUwMGU3ZGViNi4uMTliZjk4MzI1Y2EyYTE3
ZDk1YWI4YjE5ZjE2YjEyYjNhYmM2OTU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNp
bmNsdWRlICJKU01lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNBcnJheS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGlu
ZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CkBAIC0zNDUsMTAgKzM0NiwxOCBAQCB2b2lk
IEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6dmlzaXRDaGlsZHJlbihKU0Nl
bGwqIGNlbGwsIFNsb3RWaXNpdAogICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fY2Fj
aGVkUmVhZG9ubHlWYWx1ZSk7CiB9CiAKLWJvb2wgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCog
Y2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSo+KGNlbGwp
OworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3Qt
PndyYXBwZWQoKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQor
Citib29sIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZU93bmVyOjppc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9p
ZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVO
VVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVT
RURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAppbmRleCAwNjlhMWQ1
ZGUxMzRjZjA1MGZmYjlhMWE4N2RhNGY0ZjE0YWExYmY4Li5mZWFlYzg5NGMwNzAyMDI3NTJjNzZm
NWRhNGIzZWVhODBmYzU5YTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICBt
dXRhYmxlIEpTQzo6V3JpdGVCYXJyaWVyPEpTQzo6VW5rbm93bj4gbV9jYWNoZWRSZWFkb25seVZh
bHVlOwogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgSlNDOjpTbG90Vmlz
aXRvciYpOwogCisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVh
cFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVm
PFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+JiYpOwogCkBAIC02Myw3ICs2NCw3
IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZp
cnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBi
b29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4s
IHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZp
cnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuY3BwCmluZGV4IGQyMjc1ZWRhMjJmNjZk
ZGNkOWM5NTRhYmIzYWUxZTgyZTgxMWZmYmMuLjVlZTFhMjFhNTU3ZDEwNjNhMzQ0MGM0MmJjMTVh
NjhhZjMyMDNlNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcApAQCAtMjgsNiArMjgsNyBA
QAogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2Fj
aGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0xNzksMTAgKzE4MCwxOCBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlRnVu
Y3Rpb25Ub1N0cmluZyhFeGVjU3RhdAogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U3Ry
aW5naWZpZXI+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmlu
Z0JvZHk+KCpzdGF0ZSwgInRvU3RyaW5nIik7CiB9CiAKLWJvb2wgSlNUZXN0U3RyaW5naWZpZXJP
d25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
PiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0U3RyaW5n
aWZpZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1
aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTdHJpbmdpZmll
cio+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRo
aXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxk
ZXIpOworfQorCitib29sIEpTVGVzdFN0cmluZ2lmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9w
YXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFN
KGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShy
ZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuaAppbmRl
eCBmNDMyYmVlNjE4YTY4ZmJmYjAyNGVmYmY4N2M3NmRkYTZkMWE2MmI3Li41NTM4MWY3MGE1MmQ4
ZDUzYjMzYmZlMDU5Yzc4YWQ1MDMxODE1Mjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuaApAQCAt
NDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBn
ZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAg
IHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxk
ZXImKTsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RTdHJpbmdpZmllcihKU0M6OlN0cnVjdHVyZSos
IEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RTdHJpbmdpZmllcj4mJik7CiAKQEAgLTU3LDcg
KzU4LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RTdHJpbmdpZmllck93bmVyIDogcHVi
bGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNS
ZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCog
Y29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0
LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmlu
YWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNw
cAppbmRleCAwNDU5YzFhZTk4ZDM4MzlkYjc1N2VjYzc4NjBhYmMzOWE1NTI5ZTcyLi5hNDNkYTUz
ZDliZjhlNGQ0YzRiYWMyZDI2ZThkNzI1MWM2NzcwMjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNP
cGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbi5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNh
Y2hlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMTc5LDEwICsxODAsMTggQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmllckFub255bW91c09w
ZXJhdGlvblByb3RvdHlwZUZ1bmN0aW8KICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFN0
cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uPjo6Y2FsbDxqc1Rlc3RTdHJpbmdpZmllckFub255
bW91c09wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdCb2R5Pigqc3RhdGUsICJ0b1N0
cmluZyIpOwogfQogCi1ib29sIEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uT3du
ZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4g
aGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdFN0cmluZ2lm
aWVyQW5vbnltb3VzT3BlcmF0aW9uOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25h
cHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24qPihjZWxsKTsKKyAgICBidWlsZGVy
LnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwor
ICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RT
dHJpbmdpZmllckFub255bW91c09wZXJhdGlvbk93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9y
JiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5k
bGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29u
KTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmlu
Z2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmgKaW5kZXggZjI5ZDNlMGZkZTVhYWU5ZTk3ZDNkNDY5
MzZlNzQzZjk2ZjU3M2VjZi4uMTRhYTBlZDNlZTlhY2VkMTZhNTdiY2I0NTkzMjI4MmQwZDQ5YWE4
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0
aW9uLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6
OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25h
cHNob3RCdWlsZGVyJik7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1v
dXNPcGVyYXRpb24oSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0
U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24+JiYpOwogCkBAIC01Nyw3ICs1OCw3IEBAIHBy
b3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Pd25l
ciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBi
b29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4s
IHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNS
ZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCog
Y29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2
b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3Bw
CmluZGV4IDBmMGE5MTRjMzc5NTAxODQ1ZGRlYjJmZmUwNDYxMjE0MmFhOGIwYjkuLjY0ZTE3ZDIx
NjM0YjgyNmNmNzE1OTIwYjU3ZTIwZmM5NTkwYjc1MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNs
dWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMTk0LDEwICsxOTUsMTggQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90
eXBlRnVuY3Rpb25Ub1MKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVy
TmFtZWRPcGVyYXRpb24+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90
b3R5cGVGdW5jdGlvblRvU3RyaW5nQm9keT4oKnN0YXRlLCAidG9TdHJpbmciKTsKIH0KIAotYm9v
bCBKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9w
YXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb246Omhl
YXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7
CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3Bl
cmF0aW9uKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxs
LCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwg
YnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbk93bmVy
Ojppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhh
bmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQog
ewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsK
KyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJp
bmdpZmllck5hbWVkT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5oCmluZGV4IDg2MGRlNmNi
YjVhYTYzNTgzNDdiYzkzZTA4NTNjM2NkNDUyNzkzZjkuLjViYzEwZWY2NWQyMTk0NDAxYTUzZTNl
NWNjMjMxOGZkNDVmYmJlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFt
ZWRPcGVyYXRpb24uaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3Rh
dGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0ds
b2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6
OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RTdHJpbmdpZmll
ck5hbWVkT3BlcmF0aW9uKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8
VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24+JiYpOwogCkBAIC01Nyw3ICs1OCw3IEBAIHBy
b3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbk93bmVyIDog
cHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wg
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9p
ZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXMuY3BwCmluZGV4IGQ2OTljODE3MTExMDBkYzBiNjQxMDkyMzk1Y2JlMDAzZjY0NjE4
YzkuLjNlMTdmZDdlNjRlNjhlNzNkOGI5YzhmMjE4ZDI4Mzg1NWM3OGM5Y2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbkltcGxlbWVudGVkQXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMu
Y3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNET01PcGVyYXRpb24uaCIKICNpbmNs
dWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0
aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVp
bGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRl
IDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAg
LTE5NCwxMCArMTk1LDE4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVuCiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXM+OjpjYWxs
PGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZUZ1bmN0aW9u
VG9TdHJpbmdCb2R5Pigqc3RhdGUsICJ0b1N0cmluZyIpOwogfQogCi1ib29sIEpTVGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQordm9pZCBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXM6
OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIp
Cit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTdHJpbmdpZmllck9wZXJh
dGlvbkltcGxlbWVudGVkQXMqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RG
b3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFw
c2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlv
bkltcGxlbWVudGVkQXNPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29u
c3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVT
RURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25JbXBsZW1lbnRlZEFzLmgKaW5kZXggOWQ0MDcwMDkxNDFiZGFjYjZkZWNjNmUzY2IzODMx
ZGU4MGQyYzYzYS4uZjkzZmYxMTY4Njk1OTZiZjdlZmMyOGM5ZWU2Mjc1YWRmZmI1ODZlYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0
cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVu
dGVkQXMuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpT
Qzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9i
amVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBT
bmFwc2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RTdHJpbmdpZmllck9wZXJh
dGlvbkltcGxlbWVudGVkQXMoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJl
ZjxUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzPiYmKTsKIApAQCAtNTcsNyAr
NTgsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1w
bGVtZW50ZWRBc093bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoK
LSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZp
cnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9p
ZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCmluZGV4IDNkMTkwMzQxYzU3MzA1MDdiMWIz
NzE1MzUyMTJmYWFiNTJlNjc3ODguLmU4NjNlOGViYzM1MjkzY2JkZTNlZWU2OTRjMzUzMDYxODYx
M2E4YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJh
dGlvbk5hbWVkVG9TdHJpbmcuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNET01P
cGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lu
bGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQ
cmVwYXJhdGlvbnMuaD4KQEAgLTE3OSwxMCArMTgwLDE4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nUHJvdG90eXBl
RnVuCiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5h
bWVkVG9TdHJpbmc+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmlu
Z1Byb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdCb2R5Pigqc3RhdGUsICJ0b1N0cmluZyIpOwogfQog
Ci1ib29sIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ093bmVyOjppc1Jl
YWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwg
dm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RTdHJpbmdpZmllck9wZXJh
dGlvbk5hbWVkVG9TdHJpbmc6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hv
dEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rl
c3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcqPihjZWxsKTsKKyAgICBidWlsZGVy
LnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwor
ICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RT
dHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdPd25lcjo6aXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90Vmlz
aXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0o
aGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJl
YXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1l
ZFRvU3RyaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nLmgKaW5kZXggZmY4NDU2NmJjOGYy
NzQ4MGE5NzA2YzA4MWZiY2IxNWE4ZmEyZDJhYi4uMTJkZTIzOGUwZjYyOGQ2MDlmYjE4YzljMDVj
NWY4MDBjNmIyNGFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAg
fQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29u
c3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChK
U0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoKICAgICBKU1Rl
c3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RP
TUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5n
PiYmKTsKIApAQCAtNTcsNyArNTgsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ093bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRs
ZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90
VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhK
U0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9y
JiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25s
eUF0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZS5jcHAKaW5kZXggODNkNzg3NDY0YTIz
MDUyZTg0NDA1M2ZiMWYzZmY2YWYyNmIzZTA0Ny4uZTMxM2YyMTU3YjM0N2Y3MjZmYTBlNzlhMzIw
MWE3MGMxMTM0NzkwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJl
YWRPbmx5QXR0cmlidXRlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkpTRE9NT3Bl
cmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxp
bmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJl
cGFyYXRpb25zLmg+CkBAIC0yMDEsMTAgKzIwMiwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVQcm90b3R5cGVGdW5jdGlv
bgogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJp
YnV0ZT46OmNhbGw8anNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZVByb3RvdHlwZUZ1
bmN0aW9uVG9TdHJpbmdCb2R5Pigqc3RhdGUsICJ0b1N0cmluZyIpOwogfQogCi1ib29sIEpTVGVz
dFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRv
ciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZTo6aGVh
cFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sK
KyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlB
dHRyaWJ1dGUqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNl
bGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxs
LCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRl
T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFz
b24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0
b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlLmgKaW5k
ZXggMzQyY2E1OWZhMWRkODE4OTg0ZjgzNDBjOWZkMWVjNDRiYWRmMGNiNS4uNmRjYmRjOGQ5NTVl
NWIyZGViNWViMDEyNTA1M2MyMjUyOGI1ZDQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1
dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZS5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoK
ICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0m
LCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBz
aG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAg
IEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RP
TUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZT4mJik7
CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RTdHJpbmdpZmll
clJlYWRPbmx5QXR0cmlidXRlT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewog
cHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7
CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBj
aGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3Ry
aW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuY3BwCmluZGV4IDQxZGFkZWVmMDVmY2Y5ODNkZmI2
NDBmOTEwY2FhNjgzNTJmNjlmOTYuLmM1NTI0NTEyNTVmOWIzYmE2Y2U5OWVlMmY4OGEwZTdmNDY5
NmQxZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRl
QXR0cmlidXRlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9u
LmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBT
bmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+
CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRp
b25zLmg+CkBAIC0yMTksMTAgKzIyMCwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlUHJvdG90eXBlRnVuY3RpbwogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGU+
OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlUHJvdG90eXBlRnVuY3Rp
b25Ub1N0cmluZ0JvZHk+KCpzdGF0ZSwgInRvU3RyaW5nIik7CiB9CiAKLWJvb2wgSlNUZXN0U3Ry
aW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYg
dmlzaXRvcikKK3ZvaWQgSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGU6OmhlYXBT
bmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7Cisg
ICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0
dHJpYnV0ZSo+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2Vs
bCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGws
IGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRl
T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFz
b24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0
b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuaApp
bmRleCBkZGE0ZDlkMTA0MWVlMDU3MDc3YTYyNjNkNDA3NjIzZjk5ZDE4OWE3Li5jYjIxYzNlZDQ1
NTAxMjg0YTM1ZDJmNjQ1Y2ZhOWIxMDM1YmY5Mzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRy
aWJ1dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuaApAQCAtNDksNiArNDksNyBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6
OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBT
bmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoK
ICAgICBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZShKU0M6OlN0cnVjdHVyZSos
IEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0
ZT4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RTdHJp
bmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZU93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93
bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90Vmlz
aXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwg
Y29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAppbmRl
eCAzMzY3MWRjYWE5OWU5MTNiYWExMzc4NDBiZWM5MGMxNmI1YTQyNGY2Li44Y2IyNjE2MjBiMjcx
ZDM3ZDlkODI5OGZkZWI4MDliMGQxODI2MGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKQEAgLTQ1
LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJKU1Rlc3RTdWJPYmouaCIKICNpbmNsdWRlICJTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3Rv
dHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0FycmF5Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KQEAgLTc0MSwxMCAr
NzQyLDE4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb24oCiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhFeGNlcHRpb25Cb2R5Pigqc3RhdGUsICJtZXRob2RXaXRoRXhjZXB0aW9uIik7CiB9
CiAKLWJvb2wgSlNUZXN0VHlwZWRlZnNPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlz
aXRvcikKK3ZvaWQgSlNUZXN0VHlwZWRlZnM6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhl
YXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpz
Q2FzdDxKU1Rlc3RUeXBlZGVmcyo+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVj
dEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgQmFzZTo6aGVhcFNu
YXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdFR5cGVkZWZzT3duZXI6Omlz
UmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxl
LCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAg
ICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAg
IFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZz
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRl
ZnMuaAppbmRleCBkOGZiMGY1YzU1NjY3MTdkYzdiMTljOTQ5YjlmZGRlYjdlY2ExZTVlLi4zNmYy
YWVkODNhNGExYTYxN2NjZmQzODI4NTc0NWIwZWI4OTVmNmVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaApA
QCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1
ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwor
ICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1
aWxkZXImKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGUgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsK
IHByb3RlY3RlZDoKQEAgLTU5LDcgKzYwLDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RU
eXBlZGVmc093bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1
YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCog
Y29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAppbmRleCBlZGYzNGE5ZTBhNzFi
MmJiN2IwNDMxN2U0N2YwNDdhZDkzOTQyODk3Li4zNWZmOWMwNTdjM2U0NzNmZjBmZTk3NDg1ZWMw
ZGM0OGNjODQ4YjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKQEAgLTM1LDYgKzM1LDcgQEAg
dHlwZWRlZiAoCiAgICAgQ29uc3RydWN0b3IsCiAgICAgQ29uc3RydWN0b3JDYWxsV2l0aD1Eb2N1
bWVudCwKICAgICBDdXN0b21Ub0pTT2JqZWN0LAorICAgIEN1c3RvbUhlYXBTbmFwc2hvdCwKICAg
ICBET01KSVQsCiAgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCiAgICAgSlNDdXN0b21I
ZWFkZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5pZGwKaW5kZXggODkxMGY4MTQzYmMz
YzI1ODUyYmIwNTllNTY1OTBhYzVhNWFiYzJmNC4uYThhNGRhZWY1MmRlNWM2ZTcwNDg4YjFmN2Y4
NjVhNWE0M2EyN2M3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxp
c3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmlkbApAQCAtMjYs
NiArMjYsNyBAQAogWwogICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbEVsZW1lbnRSb290LAog
ICAgIFNraXBWVGFibGVWYWxpZGF0aW9uLAorICAgIEN1c3RvbUhlYXBTbmFwc2hvdAogXSBpbnRl
cmZhY2UgRE9NVG9rZW5MaXN0IHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyBsZW5ndGg7CiAgICAgZ2V0dGVyIERPTVN0cmluZz8gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaWRsIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5pZGwKaW5kZXggNmRmYWU4YmQ4OTRh
Y2RjMmQyNjA1NTY2MjZiNGM3M2JkYjFjOWE1Yi4uOTIxODg5YzEzMWY2YTJlZWYwZDljZWY4Nzk4
MWMyYTE5NTJlYjI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVj
dGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5pZGwKQEAg
LTI0LDYgKzI0LDcgQEAKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxPd25lck5vZGVSb290
LAogICAgIExlZ2FjeVVuZW51bWVyYWJsZU5hbWVkUHJvcGVydGllcywKICAgICBSZXBvcnRFeHRy
YU1lbW9yeUNvc3QsCisgICAgQ3VzdG9tSGVhcFNuYXBzaG90LAogXSBpbnRlcmZhY2UgSFRNTENv
bGxlY3Rpb24gewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsK
ICAgICBnZXR0ZXIgRWxlbWVudD8gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmlkbAppbmRleCBjZDQxMmU5OThjMzUzOTY3OTk0OTY2MjkyYTZlOGYzMGFi
ZWJhNWFiLi5lNWQ0YjIyMzgzZTI5YzNiNDBjZDE1NmM4YmU1ZTRkNjZkNTVmMWM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC0zMyw2ICszMyw3IEBAIHR5cGVkZWYgVVNWU3RyaW5n
IENTU09NU3RyaW5nOwogICAgIEN1c3RvbUdldE93blByb3BlcnR5TmFtZXMsCiAgICAgQ3VzdG9t
R2V0T3duUHJvcGVydHlTbG90LAogICAgIEN1c3RvbUdldFByb3RvdHlwZSwKKyAgICBDdXN0b21I
ZWFwU25hcHNob3QsCiAgICAgQ3VzdG9tUHJldmVudEV4dGVuc2lvbnMsCiAgICAgQ3VzdG9tUHJv
eHlUb0pTT2JqZWN0LAogICAgIEN1c3RvbVB1dCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvbWFjL1BhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9QYWdlTWFjLm1t
CmluZGV4IGU3NDNkNmVhODdjMDViMDA3NzA2Mzk1MjQ2NTgzODRjOTA1MGQzNGEuLjg4YjEwM2Zl
NDQzYjU4NjhiNzc0NTA3ODE5ZTFlNjBjNjQyNzk1NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvUGFn
ZU1hYy5tbQpAQCAtNzcsNyArNzcsNyBAQCB2b2lkIFBhZ2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSgp
CiAKICAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXUgbGl2ZSBkb2N1bWVudHM6IiwgRG9jdW1l
bnQ6OmFsbERvY3VtZW50cygpLnNpemUoKSk7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8q
IGRvY3VtZW50IDogRG9jdW1lbnQ6OmFsbERvY3VtZW50cygpKSB7Ci0gICAgICAgICAgICAgICAg
V1RGTG9nQWx3YXlzKCJEb2N1bWVudCAlcCAlcyIsIGRvY3VtZW50LCBkb2N1bWVudC0+dXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJE
b2N1bWVudCAlcCAocmVmQ291bnQgJWQpICVzIiwgZG9jdW1lbnQsIGRvY3VtZW50LT5yZWZDb3Vu
dCgpLCBkb2N1bWVudC0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJmYzRmMzdhOTEzMzhlNGI3YzE3ZTBlZmU1NzdmOGM2OGUz
N2E5NGIuLmM3OTZlYmIxMDZiYzAyMGQ2ODZlMTAyOTUyZjEwNzUzYWMxMmU3MjAgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBA
QAorMjAxOC0wNi0wNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgZHVtcGluZyBHQyBoZWFwIHNuYXBzaG90cywgYW5kIGEg
dmlld2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODY0MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisg
ICAgICAgIEFkZCBhIHZpZXdlciBmb3IgR0MgaGVhcCBzbmFwc2hvdHMuIEEgc25hcHNob3QgSlNP
TiBmaWxlIGNhbiBiZSBkcmFnZ2VkIGludG8gdGhpcworICAgICAgICBwYWdlIGZvciBpbnNwZWN0
aW9uIChvciBzZXQgdmlhIHRoZSAnZmlsZW5hbWUnIFVSTCBwYXJhbWV0ZXIpLgorICAgICAgICAK
KyAgICAgICAgRm9yIG5vdywgdGhpcyBwYWdlIHNob3dzIGFsbCBvYmplY3RzLCBhbGwgcm9vdHMs
IGFuZCB0aGUgc2hvcnRlc3QgcGF0aCBmcm9tIGEgcm9vdAorICAgICAgICB0byBhbGwgSFRNTERv
Y3VtZW50cyBhbmQgV2luZG93cy4KKworICAgICAgICAqIEdDSGVhcEluc3BlY3Rvci9nYy1oZWFw
LWluc3BlY3Rvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBHQ0hlYXBJbnNwZWN0b3IvaGVhcC1h
bmFseXNpcy9IZWFwU25hcHNob3QuanM6IEFkZGVkLgorICAgICAgICAqIEdDSGVhcEluc3BlY3Rv
ci9zY3JpcHQvaW50ZXJmYWNlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBHQ0hlYXBJbnNwZWN0b3Iv
dGVzdC1oZWFwLmpzb246IEFkZGVkLgorCiAyMDE4LTA2LTA0ICBBbGV4ZXkgUHJvc2t1cnlha292
ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBNb2phdmUgc3VwcG9ydCB0byBXZWJLaXQg
dG9vbHMKZGlmZiAtLWdpdCBhL1Rvb2xzL0dDSGVhcEluc3BlY3Rvci9nYy1oZWFwLWluc3BlY3Rv
ci5odG1sIGIvVG9vbHMvR0NIZWFwSW5zcGVjdG9yL2djLWhlYXAtaW5zcGVjdG9yLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGE1ZmMwMzhkODUzMjU1ZDk4ZjVkODMzM2E3YTUxOTA0YjA3MDY5NgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL0dDSGVhcEluc3BlY3Rvci9nYy1oZWFwLWluc3BlY3Rvci5odG1s
CkBAIC0wLDAgKzEsMjA0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5H
QyBIZWFwIEluc3BlY3RvcjwvdGl0bGU+CisgICAgPG1ldGEgY2hhcnNldD0idXRmOCI+CisgICAg
PHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKworICAgICAgICBib2R5IHsK
KyAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAiSGVsdmV0aWNhIE5ldWUiOworICAgICAgICAgICAg
bGluZS1oZWlnaHQ6IDEuMzsKKyAgICAgICAgfQorCisgICAgICAgIGgxIHsKKyAgICAgICAgICAg
IG1hcmdpbi1ib3R0b206IDAuMmVtOworICAgICAgICAgICAgZm9udC1zaXplOiAzMnB4OworICAg
ICAgICB9CisKKyAgICAgICAgbGFiZWwgeworICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4Owor
ICAgICAgICB9CisKKyAgICAgICAgI2Ryb3BUYXJnZXQgeworICAgICAgICAgICAgZm9udC1zaXpl
OiAxMnB0OworICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICBjb2xv
cjogIzg4ODsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIHRv
cDogMjBweDsgICAgICAgICAgICByaWdodDogMjBweDsKKyAgICAgICAgICAgIGJvcmRlcjogMnB4
IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4zKTsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IHJnYmEoMCwgMCwgMCwgMC4xKTsKKyAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7CisgICAgICAg
ICAgICBib3JkZXItcmFkaXVzOiAxMHB4OworICAgICAgICB9CisKKyAgICAgICAgI2Ryb3BUYXJn
ZXQuZHJhZ092ZXIgeworICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLCAwLCAw
LCAwLjEpOworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUp
OworICAgICAgICAgICAgY29sb3I6ICNkZGQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IGRldGFpbHMgeworICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIHVsLnBhdGggeworICAgICAgICAgICAgbWFyZ2luLXRvcDogNXB4Owor
ICAgICAgICB9CisgICAgICAgIAorICAgICAgICB1bC5pbnN0YW5jZS1saXN0IHsKKyAgICAgICAg
ICAgIG1hcmdpbi10b3A6IDAuM2VtOworICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjJlbTsK
KyAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKKyAgICAgICAgfQorCisgICAgICAg
IC5ub2RlLWlkOjpiZWZvcmUgeworICAgICAgICAgICAgY29udGVudDogJ0AnOworICAgICAgICB9
CisKKyAgICAgICAgLm5vZGUtaWQgeworICAgICAgICAgICAgZm9udC1zaXplOiBzbWFsbGVyOwor
ICAgICAgICAgICAgY29sb3I6IHNpbHZlcjsKKyAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IC8q
IFJlbW92ZSBpZiB5b3Ugd2FudCB0byBzZWUgY2VsbCBpZGVudGlmaWVycy4gKi8KKyAgICAgICAg
fQorCisgICAgICAgIC5ub2RlLWFkZHJlc3MsIC5ub2RlLXNpemUsIC5ub2RlLWxhYmVsIHsKKyAg
ICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisgICAgICAgICAgICBjb2xvcjogZ3Jh
eTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLm5vZGUtc2l6ZSB7CisgICAgICAgICAg
ICBkaXNwbGF5OiBub25lOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAubm9kZS1nYy1y
b290IHsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogc21hbGxlcjsKKyAgICAgICAgICAgIGNvbG9y
OiBtYXJvb247CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5ub2RlLWdjLXJvb3QgaW1n
IHsKKyAgICAgICAgICAgIG1hcmdpbjogMCAzcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEuNGVt
OworICAgICAgICAgICAgd2lkdGg6IDEuNGVtOworICAgICAgICAgICAgdmVydGljYWwtYWxpZ246
IG1pZGRsZTsKKyAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKKyAgICAgICAgICAgIGRpc3Bs
YXk6IG5vbmU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5lZGdlOjpiZWZvcmUgewor
ICAgICAgICAgICAgY29udGVudDogJyDin7kgJzsKKyAgICAgICAgICAgIGNvbG9yOiBncmF5Owor
ICAgICAgICB9CisKKyAgICAgICAgLmVkZ2U6OmFmdGVyIHsKKyAgICAgICAgICAgIGNvbnRlbnQ6
ICcg4p+5JzsKKyAgICAgICAgICAgIGNvbG9yOiBncmF5OworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICAuZWRnZS1kYXRhIHsKKyAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7
CisgICAgICAgICAgICBjb2xvcjogZ3JheTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAg
dWwucGF0aCB7CisgICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgICNkZXNjcmlwdGlvbiB7CisgICAgICAgICAgICBwb3NpdGlvbjog
Zml4ZWQ7CisgICAgICAgICAgICBtYXJnaW46IDMwMHB4IGNhbGMoKDEwMHZ3IC0gNTAwcHgpIC8g
Mik7CisgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMyk7Cisg
ICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7CisgICAgICAg
ICAgICBwYWRkaW5nOiAyMHB4IDUwcHg7CisgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4
OworICAgICAgICAgICAgd2lkdGg6IDUwMHB4OworICAgICAgICB9CisKKyAgICAgICAgI2Rlc2Ny
aXB0aW9uID4gaDEgeworICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKKyAgICAgICAgICAg
IG1hcmdpbi1ib3R0b206IDE1cHg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICNkZXNj
cmlwdGlvbiBjb2RlIHsKKyAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgICAgICAg
bWFyZ2luOiAxNXB4IDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICNkZXNjcmlwdGlv
bi5oaWRkZW4geworICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgI2dyYXBoLW92ZXJsYXkgeworICAgICAgICAgICAgcG9zaXRpb246IGZpeGVk
OworICAgICAgICAgICAgdG9wOiAwOworICAgICAgICAgICAgbWFyZ2luOiAyMDBweCAxMHZ3Owor
ICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpOwor
ICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSg5MCwgOTAsIDkwLCAwLjgpOworICAg
ICAgICAgICAgcGFkZGluZzogMjBweCA1MHB4OworICAgICAgICAgICAgYm9yZGVyLXJhZGl1czog
MTBweDsKKyAgICAgICAgICAgIHdpZHRoOiA4MHZ3OworICAgICAgICAgICAgbWluLWhlaWdodDog
MjAwcHg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICNncmFwaC1vdmVybGF5LmhpZGRl
biB7CisgICAgICAgICAgICBkaXNwbGF5OiBub25lOworICAgICAgICB9CisgICAgICAgIAorICAg
ICAgICAjdWlDb250YWluZXIgeworICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKKyAgICAgICAg
fQorICAgICAgICAKKyAgICA8L3N0eWxlPgorCisgICAgPHNjcmlwdCBzcmM9InNjcmlwdC9pbnRl
cmZhY2UuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJoZWFwLWFuYWx5c2lzL0hlYXBT
bmFwc2hvdC5qcyI+PC9zY3JpcHQ+CisgICAgCisgICAgPHNjcmlwdD4KKworICAgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+CisKKyAgICA8aGVhZGVyPgorICAgIDxkaXYgaWQ9ImRyb3BUYXJn
ZXQiPkRyb3AgR0MgaGVhcCBKU09OIGZpbGUgaGVyZSB0byBsb2FkLjwvZGl2PgorICAgIDwvaGVh
ZGVyPgorCisgICAgPHNlY3Rpb24gaWQ9ImRlc2NyaXB0aW9uIj4KKyAgICAgICAgPGgxPkdDIGhl
YXAgZGVidWdnZXI8L2gyPgorICAgICAgICA8cD5UaGlzIHBhZ2UgaXMgZm9yIGFuYWx5emluZyBK
U09OIGR1bXBzIG9mIHRoZSBHQyBoZWFwLiBUbyBkZWJ1ZyBhbiBpc3N1ZSB0aGF0IHlvdSB0aGlu
ayBtaWdodCBiZSBhIGxlYWtlZCBvciBhYmFuZG9uZWQgb2JqZWN0IChvZnRlbiBhIERvY3VtZW50
IG9yIEpTR2xvYmFsT2JqZWN0KSwgbG9hZCB0aGUgdGVzdCBwYWdlLCB0aGVuIG5hdmlnYXRlIHRv
IGFib3V0OmJsYW5rIG9yIG90aGVyIHNpbXBsZSBwYWdlLiBOb3cgc2ltdWxhdGUgYSBtZW1vcnkg
d2FybmluZyAodG8gY2xlYXIgdGhlIHBhZ2UgY2FjaGUpIGJ5IGlzc3VpbmcgdGhlIGZvbGxvd2lu
ZyBjb21tYW5kIGluIGEgVGVybWluYWwgd2luZG93OgorICAgICAgICA8Y29kZT5ub3RpZnl1dGls
IC1wIG9yZy5XZWJLaXQubG93TWVtb3J5PC9jb2RlPgorICAgICAgICAKKyAgICAgICAgWW91IGNh
biBub3cgaW5zcGVjdCB0aGUgbGlzdCBvZiBsaXZlIGRvY3VtZW50cyB2aWE6CisgICAgICAgIDxj
b2RlPm5vdGlmeXV0aWwgLXAgY29tLmFwcGxlLldlYktpdC5zaG93QWxsRG9jdW1lbnRzPC9jb2Rl
PgorICAgICAgICAKKyAgICAgICAgd2hpY2ggcHJpbnRzIGl0cyBvdXRwdXQgdG8gdGhlIHN5c3Rl
bSBsb2cuIElmIHRoaXMgbGlzdHMgZG9jdW1lbnRzIG90aGVyIHRoYW4gdGhlIGN1cnJlbnQgcGFn
ZSwgeW91IG1heSBoYXZlIGEgbGVha2VkIG9yIGFiYW5kb25lZCBEb2N1bWVudC4gVG8gc2VlIGlm
IHRoZSBHQyBoZWFwIGlzIHJlZmVyZW5jaW5nIHRoYXQgRG9jdW1lbnQsIG9idGFpbiBhIEdDIGhl
YXAgZHVtcDoKKyAgICAgICAgPGNvZGU+bm90aWZ5dXRpbCAtcCBjb20uYXBwbGUuV2ViS2l0LmR1
bXBHQ0hlYXA8L2NvZGU+CisgICAgICAgIAorICAgICAgICBUaGF0IGNvbW1hbmQgd2lsbCBnZW5l
cmF0ZSBhIEpTT04gZmlsZSBpbiAvdG1wIChvciBlcXVpdmFsZW50KTsgdGhlIGZpbGUgcGF0aCBp
cyBkdW1wZWQgdG8gdGhlIHN5c3RlbSBsb2cuIERyYWcgdGhhdCBmaWxlIG9udG8gdGhlIGRyb3Ag
dGFyZ2V0IGluIHRoZSB0b3AgcmlnaHQgKG9yIHVzZSB0aGUgP2ZpbGVuYW1lPSBVUkwgcGFyYW1l
dGVyKS4KKyAgICAgICAgPC9wPgorICAgIDwvc2VjdGlvbj4KKworICAgIDxzZWN0aW9uIGlkPSJ1
aUNvbnRhaW5lciI+CisKKyAgICAgICAgPGRpdiBpZD0icm9vdGVkIj4KKyAgICAgICAgPC9kaXY+
CisKKyAgICAgICAgPGgxPkFsbCBwYXRocyB0b+KApjwvaDE+CisgICAgICAgIDxkaXYgaWQ9ImFs
bC1wYXRocyI+CisgICAgICAgIDwvZGl2PgorCisgICAgICAgIDxoMT5PYmplY3RzPC9oMT4KKyAg
ICAgICAgPHNlY3Rpb24gaWQ9ImNhdGVnb3JpZXMiPgorICAgICAgICA8L3NlY3Rpb24+CisKKyAg
ICAgICAgPGgxPlJvb3RzPC9oMT4KKyAgICAgICAgPHNlY3Rpb24gaWQ9InJvb3RzIj4KKyAgICAg
ICAgPC9zZWN0aW9uPgorICAgICAgICAKKyAgICAgICAgPHNlY3Rpb24gaWQ9ImdyYXBoLW92ZXJs
YXkiIGNsYXNzPSJoaWRkZW4iPgorICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZUdy
YXBoKCkiPkNsb3NlPC9idXR0b24+CisgICAgICAgICAgICA8ZGl2IGlkPSJncmFwaC1jb250YWlu
ZXIiPgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvc2VjdGlvbj4KKyAgICA8L3NlY3Rp
b24+CisgICAgCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9HQ0hlYXBJbnNw
ZWN0b3IvaGVhcC1hbmFseXNpcy9IZWFwU25hcHNob3QuanMgYi9Ub29scy9HQ0hlYXBJbnNwZWN0
b3IvaGVhcC1hbmFseXNpcy9IZWFwU25hcHNob3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY2MzZmNzIxNjJk
ODI4YWU4N2EyMWI4YTYyZmM2MzA5ZDE5ZTUwYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0dD
SGVhcEluc3BlY3Rvci9oZWFwLWFuYWx5c2lzL0hlYXBTbmFwc2hvdC5qcwpAQCAtMCwwICsxLDkx
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisvLyBub2RlcworLy8gWzwwOmlkPiwgPDE6c2l6ZT4sIDwyOmNsYXNzTmFtZVRhYmxlSW5kZXg+
LCA8MzppbnRlcm5hbD4sIDw0OmxhYmVsSW5kZXg+LCA8NTphZGRyZXNzPiwgPDY6d3JhcHBlZCBh
ZGRyZXNzPl0KK2xldCBub2RlRmllbGRDb3VudCA9IDc7Citjb25zdCBub2RlSWRPZmZzZXQgPSAw
OworY29uc3Qgbm9kZVNpemVPZmZzZXQgPSAxOworY29uc3Qgbm9kZUNsYXNzTmFtZU9mZnNldCA9
IDI7Citjb25zdCBub2RlSW50ZXJuYWxPZmZzZXQgPSAzOworY29uc3Qgbm9kZUxhYmVsT2Zmc2V0
ID0gNDsKK2NvbnN0IG5vZGVBZGRyZXNzT2Zmc2V0ID0gNTsKK2NvbnN0IG5vZGVXcmFwcGVkQWRk
cmVzc09mZnNldCA9IDY7CisKKy8vIGVkZ2VzCisvLyBbPDA6ZnJvbUlkPiwgPDE6dG9JZD4sIDwy
OnR5cGVUYWJsZUluZGV4PiwgPDM6ZWRnZURhdGFJbmRleE9yRWRnZU5hbWVJbmRleD5dCitjb25z
dCBlZGdlRmllbGRDb3VudCA9IDQ7Citjb25zdCBlZGdlRnJvbUlkT2Zmc2V0ID0gMDsKK2NvbnN0
IGVkZ2VUb0lkT2Zmc2V0ID0gMTsKK2NvbnN0IGVkZ2VUeXBlT2Zmc2V0ID0gMjsKK2NvbnN0IGVk
Z2VEYXRhT2Zmc2V0ID0gMzsKKworLy8gcm9vdHMKKy8vIFs8MDppZD4sIDwxOmxhYmVsSW5kZXg+
XQorbGV0IHJvb3RGaWVsZENvdW50ID0gMzsKK2NvbnN0IHJvb3RJZE9mZnNldCA9IDA7Citjb25z
dCByb290TGFiZWxPZmZzZXQgPSAxOworY29uc3QgcmVhY2hhYmlsaXR5UmVhc29uT2Zmc2V0ID0g
MjsKKworLy8gT3RoZXIgY29uc3RhbnRzLgorY29uc3Qgcm9vdE5vZGVJbmRleCA9IDA7Citjb25z
dCByb290Tm9kZU9yZGluYWwgPSAwOworY29uc3Qgcm9vdE5vZGVJZGVudGlmaWVyID0gMDsKKwor
Ly8gVGVybWlub2xvZ3k6CisvLyAgIC0gYG5vZGVJbmRleGAgaXMgYW4gaW5kZXggaW50byB0aGUg
YG5vZGVzYCBsaXN0LgorLy8gICAtIGBub2RlT3JkaW5hbGAgaXMgdGhlIG9yZGVyIG9mIHRoZSBu
b2RlIGluIHRoZSBgbm9kZXNgIGxpc3QuIChub2RlSW5kZXggLyBub2RlRmllbGRDb3VudCkuCisv
LyAgIC0gYG5vZGVJZGVudGlmaWVyYCBpcyB0aGUgbm9kZSdzIGlkIHZhbHVlLiAobm9kZXNbbm9k
ZUluZGV4ICsgbm9kZUlkT2Zmc2V0XSkuCisvLyAgIC0gYGVkZ2VJbmRleGAgaXMgYW4gaW5kZXgg
aW50byB0aGUgYGVkZ2VzYCBsaXN0LgorLy8KKy8vIExpc3RzOgorLy8gICAtIF9ub2RlT3JkaW5h
bFRvRmlyc3RPdXRnb2luZ0VkZ2UgLSBgbm9kZU9yZGluYWxgIHRvIGBlZGdlSW5kZXhgIGluIGBl
ZGdlc2AuCisvLyAgICAgSXRlcmF0ZSBlZGdlcyBieSB3YWxraW5nIGBlZGdlc2AgKGVkZ2VGaWVs
ZENvdW50KSBhbmQgY2hlY2tpbmcgaWYgZnJvbUlkZW50aWZpZXIgaXMgY3VycmVudC4KKy8vICAg
LSBfbm9kZU9yZGluYWxUb0ZpcnN0SW5jb21pbmdFZGdlIC0gYG5vZGVPcmRpbmFsYCB0byBgaW5j
b21pbmdFZGdlSW5kZXhgIGluIGBpbmNvbWluZ0VkZ2VzYC4KKy8vICAgICBJdGVyYXRlIGVkZ2Vz
IGJ5IHdhbGtpbmcgYGluY29taW5nRWRnZXNgIHVudGlsIGBub2RlT3JkaW5hbCsxYCdzIGZpcnN0
IGluY29taW5nIGVkZ2UgaW5kZXguCisvLyAgIC0gX25vZGVPcmRpbmFsVG9Eb21pbmF0b3JOb2Rl
T3JkaW5hbCAtIGBub2RlT3JkaW5hbGAgdG8gYG5vZGVPcmRpbmFsYCBvZiBkb21pbmF0b3IuCisv
LyAgIC0gX25vZGVPcmRpbmFsVG9SZXRhaW5lZFNpemVzIC0gYG5vZGVPcmRpbmFsYCB0byByZXRh
aW4gc2l6ZSB2YWx1ZS4KKy8vICAgLSBfbm9kZU9yZGluYWxJc0RlYWQgLSBgbm9kZU9yZGluYWxg
IGlzIGRlYWQgb3IgYWxpdmUuCisvLworLy8gVGVtcG9yYXJ5IExpc3RzOgorLy8gICAtIG5vZGVP
cmRpbmFsVG9Qb3N0T3JkZXJJbmRleCAtIGBub2RlT3JkaW5hbGAgdG8gYSBgcG9zdE9yZGVySW5k
ZXhgLgorLy8gICAtIHBvc3RPcmRlckluZGV4VG9Ob2RlT3JkaW5hbCAtIGBwb3N0T3JkZXJJbmRl
eGAgdG8gYSBgbm9kZU9yZGluYWxgLgorCitsZXQgbmV4dFNuYXBzaG90SWRlbnRpZmllciA9IDE7
CisKK0hlYXBTbmFwc2hvdCA9IGNsYXNzIEhlYXBTbmFwc2hvdAoreworICAgIGNvbnN0cnVjdG9y
KG9iamVjdElkLCBzbmFwc2hvdERhdGFTdHJpbmcsIHRpdGxlID0gbnVsbCkKKyAgICB7CisgICAg
ICAgIHRoaXMuX2lkZW50aWZpZXIgPSBuZXh0U25hcHNob3RJZGVudGlmaWVyKys7CisgICAgICAg
IHRoaXMuX29iamVjdElkID0gb2JqZWN0SWQ7CisgICAgICAgIHRoaXMuX3RpdGxlID0gdGl0bGU7
CisKKyAgICAgICAgbGV0IGpzb24gPSBKU09OLnBhcnNlKHNuYXBzaG90RGF0YVN0cmluZyk7Cisg
ICAgICAgIHNuYXBzaG90RGF0YVN0cmluZyA9IG51bGw7CisKKyAgICAgICAgbGV0IHt2ZXJzaW9u
LCB0eXBlLCBub2Rlcywgbm9kZUNsYXNzTmFtZXMsIGVkZ2VzLCBlZGdlVHlwZXMsIGVkZ2VOYW1l
cywgcm9vdHMsIGxhYmVsc30gPSBqc29uOworICAgICAgICBjb25zb2xlLmFzc2VydCh2ZXJzaW9u
ID09PSAxLCAiRXhwZWN0IEphdmFTY3JpcHRDb3JlIEhlYXAgU25hcHNob3QgdmVyc2lvbiAxIik7
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHR5cGUgPT09ICJHQ0RlYnVnZ2luZyIsICJFeHBlY3Qg
YSBHQ0RlYnVnZ2luZy10eXBlIHNuYXBzaG90Iik7CisKKyAgICAgICAgdGhpcy5fbm9kZXMgPSBu
b2RlczsKKyAgICAgICAgdGhpcy5fbm9kZUNvdW50ID0gbm9kZXMubGVuZ3RoIC8gbm9kZUZpZWxk
Q291bnQ7CisKKyAgICAgICAgdGhpcy5fcm9vdHMgPSByb290czsKKyAgICAgICAgdGhpcy5fcm9v
dENvdW50ID0gcm9vdHMubGVuZ3RoIC8gcm9vdEZpZWxkQ291bnQ7CisKKyAgICAgICAgdGhpcy5f
ZWRnZXMgPSBlZGdlczsKKyAgICAgICAgdGhpcy5fZWRnZUNvdW50ID0gZWRnZXMubGVuZ3RoIC8g
ZWRnZUZpZWxkQ291bnQ7CisKKyAgICAgICAgdGhpcy5fZWRnZVR5cGVzVGFibGUgPSBlZGdlVHlw
ZXM7CisgICAgICAgIHRoaXMuX2VkZ2VOYW1lc1RhYmxlID0gZWRnZU5hbWVzOworICAgICAgICB0
aGlzLl9ub2RlQ2xhc3NOYW1lc1RhYmxlID0gbm9kZUNsYXNzTmFtZXM7CisgICAgICAgIHRoaXMu
X2xhYmVsc1RhYmxlID0gbGFiZWxzOworCisgICAgICAgIHRoaXMuX3RvdGFsU2l6ZSA9IDA7Cisg
ICAgICAgIHRoaXMuX25vZGVJZGVudGlmaWVyVG9PcmRpbmFsID0gbmV3IE1hcDsgLy8gPG5vZGUg
aWRlbnRpZmllcj4gPT4gbm9kZU9yZGluYWwKKyAgICAgICAgdGhpcy5fbGFzdE5vZGVJZGVudGlm
aWVyID0gMDsKKyAgICAgICAgZm9yIChsZXQgbm9kZUluZGV4ID0gMDsgbm9kZUluZGV4IDwgbm9k
ZXMubGVuZ3RoOyBub2RlSW5kZXggKz0gbm9kZUZpZWxkQ291bnQpIHsKKyAgICAgICAgICAgIGxl
dCBub2RlT3JkaW5hbCA9IG5vZGVJbmRleCAvIG5vZGVGaWVsZENvdW50OworICAgICAgICAgICAg
bGV0IG5vZGVJZGVudGlmaWVyID0gbm9kZXNbbm9kZUluZGV4ICsgbm9kZUlkT2Zmc2V0XTsKKyAg
ICAgICAgICAgIHRoaXMuX25vZGVJZGVudGlmaWVyVG9PcmRpbmFsLnNldChub2RlSWRlbnRpZmll
ciwgbm9kZU9yZGluYWwpOworICAgICAgICAgICAgdGhpcy5fdG90YWxTaXplICs9IG5vZGVzW25v
ZGVJbmRleCArIG5vZGVTaXplT2Zmc2V0XTsKKyAgICAgICAgICAgIGlmIChub2RlSWRlbnRpZmll
ciA+IHRoaXMuX2xhc3ROb2RlSWRlbnRpZmllcikKKyAgICAgICAgICAgICAgICB0aGlzLl9sYXN0
Tm9kZUlkZW50aWZpZXIgPSBub2RlSWRlbnRpZmllcjsKKyAgICAgICAgfQorCisgICAgICAgIHRo
aXMuX3Jvb3RJZGVudGlmaWVyVG9SZWFzb25zID0gbmV3IE1hcDsgLy8gPG5vZGUgaWRlbnRpZmll
cj4gPT4gU2V0IG9mIHJvb3QgcmVhc29ucworICAgICAgICBmb3IgKGxldCByb290SW5kZXggPSAw
OyByb290SW5kZXggPCByb290cy5sZW5ndGg7IHJvb3RJbmRleCArPSByb290RmllbGRDb3VudCkg
eworICAgICAgICAgICAgbGV0IHJvb3RPcmRpbmFsID0gcm9vdEluZGV4IC8gcm9vdEZpZWxkQ291
bnQ7CisgICAgICAgICAgICBsZXQgcm9vdElkZW50aWZpZXIgPSByb290c1tyb290SW5kZXggKyBy
b290SWRPZmZzZXRdOworICAgICAgICAgICAgbGV0IHJvb3RSZWFzb25JbmRleCA9IHJvb3RzW3Jv
b3RJbmRleCArIHJvb3RMYWJlbE9mZnNldF07CisgICAgICAgICAgICBsZXQgcm9vdFJlYWNoYWJp
bGl0eUluZGV4ID0gcm9vdHNbcm9vdEluZGV4ICsgcmVhY2hhYmlsaXR5UmVhc29uT2Zmc2V0XTsK
KworICAgICAgICAgICAgbGV0IGV4aXN0aW5nUmVhc29ucyA9IHRoaXMuX3Jvb3RJZGVudGlmaWVy
VG9SZWFzb25zLmdldChyb290SWRlbnRpZmllcik7CisgICAgICAgICAgICBpZiAoZXhpc3RpbmdS
ZWFzb25zKSB7CisgICAgICAgICAgICAgICAgZXhpc3RpbmdSZWFzb25zLmFkZChyb290UmVhc29u
SW5kZXgpOworICAgICAgICAgICAgICAgIGV4aXN0aW5nUmVhc29ucy5hZGQocm9vdFJlYWNoYWJp
bGl0eUluZGV4KTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRoaXMuX3Jv
b3RJZGVudGlmaWVyVG9SZWFzb25zLnNldChyb290SWRlbnRpZmllciwgbmV3IFNldChbcm9vdFJl
YXNvbkluZGV4LCByb290UmVhY2hhYmlsaXR5SW5kZXhdKSk7CisgICAgICAgIH0KKworICAgICAg
ICAvLyBGSVhNRTogUmVwbGFjZSB0b0lkZW50aWZpZXIgYW5kIGZyb21JZGVudGlmaWVyIGluIGVk
Z2VzIHdpdGggbm9kZUluZGV4IHRvIHJlZHVjZSBoYXNoIGxvb2t1cHM/CisKKyAgICAgICAgdGhp
cy5fbm9kZU9yZGluYWxUb0ZpcnN0T3V0Z29pbmdFZGdlID0gbmV3IFVpbnQzMkFycmF5KHRoaXMu
X25vZGVDb3VudCk7IC8vIG5vZGVPcmRpbmFsID0+IGVkZ2VJbmRleAorICAgICAgICB0aGlzLl9i
dWlsZE91dGdvaW5nRWRnZXMoKTsKKworICAgICAgICB0aGlzLl9ub2RlT3JkaW5hbFRvRmlyc3RJ
bmNvbWluZ0VkZ2UgPSBuZXcgVWludDMyQXJyYXkodGhpcy5fbm9kZUNvdW50ICsgMSk7IC8vIG5v
ZGVPcmRpbmFsID0+IGluY29taW5nTm9kZXMvaW5jb21pbmdFZGdlcyBpbmRleAorICAgICAgICB0
aGlzLl9pbmNvbWluZ05vZGVzID0gbmV3IFVpbnQzMkFycmF5KHRoaXMuX2VkZ2VDb3VudCk7IC8v
IGZyb20gbm9kZU9yZGluYWxzLgorICAgICAgICB0aGlzLl9pbmNvbWluZ0VkZ2VzID0gbmV3IFVp
bnQzMkFycmF5KHRoaXMuX2VkZ2VDb3VudCk7IC8vIGVkZ2VJbmRleC4KKyAgICAgICAgdGhpcy5f
YnVpbGRJbmNvbWluZ0VkZ2VzKCk7CisKKyAgICAgICAgbGV0IHtub2RlT3JkaW5hbFRvUG9zdE9y
ZGVySW5kZXgsIHBvc3RPcmRlckluZGV4VG9Ob2RlT3JkaW5hbH0gPSB0aGlzLl9idWlsZFBvc3RP
cmRlckluZGV4ZXMoKTsKKworICAgICAgICB0aGlzLl9ub2RlT3JkaW5hbFRvRG9taW5hdG9yTm9k
ZU9yZGluYWwgPSBuZXcgVWludDMyQXJyYXkodGhpcy5fbm9kZUNvdW50KTsKKyAgICAgICAgdGhp
cy5fbm9kZU9yZGluYWxJc0dDUm9vdCA9IG5ldyBVaW50OEFycmF5KHRoaXMuX25vZGVDb3VudCk7
CisgICAgICAgIHRoaXMuX2J1aWxkRG9taW5hdG9ySW5kZXhlcyhub2RlT3JkaW5hbFRvUG9zdE9y
ZGVySW5kZXgsIHBvc3RPcmRlckluZGV4VG9Ob2RlT3JkaW5hbCk7CisKKyAgICAgICAgbm9kZU9y
ZGluYWxUb1Bvc3RPcmRlckluZGV4ID0gbnVsbDsKKworICAgICAgICB0aGlzLl9ub2RlT3JkaW5h
bFRvUmV0YWluZWRTaXplcyA9IG5ldyBVaW50MzJBcnJheSh0aGlzLl9ub2RlQ291bnQpOworICAg
ICAgICB0aGlzLl9idWlsZFJldGFpbmVkU2l6ZXMocG9zdE9yZGVySW5kZXhUb05vZGVPcmRpbmFs
KTsKKworICAgICAgICBwb3N0T3JkZXJJbmRleFRvTm9kZU9yZGluYWwgPSBudWxsOworCisgICAg
ICAgIHRoaXMuX25vZGVPcmRpbmFsSXNEZWFkID0gbmV3IFVpbnQ4QXJyYXkodGhpcy5fbm9kZUNv
dW50KTsKKworICAgICAgICBsZXQge2xpdmVTaXplLCBjYXRlZ29yaWVzfSA9IEhlYXBTbmFwc2hv
dC51cGRhdGVDYXRlZ29yaWVzQW5kTWV0YWRhdGEodGhpcyk7CisgICAgICAgIHRoaXMuX2xpdmVT
aXplID0gbGl2ZVNpemU7CisgICAgICAgIHRoaXMuX2NhdGVnb3JpZXMgPSBjYXRlZ29yaWVzOwor
ICAgIH0KKworICAgIGdldCBwcm94eU9iamVjdElkKCkgeyByZXR1cm4gdGhpcy5fcHJveHlPYmpl
Y3RJZDsgfQorICAgIGdldCBpZGVudGlmaWVyKCkgeyByZXR1cm4gdGhpcy5faWRlbnRpZmllcjsg
fQorICAgIGdldCB0aXRsZSgpIHsgcmV0dXJuIHRoaXMuX3RpdGxlOyB9CisgICAgZ2V0IHRvdGFs
U2l6ZSgpIHsgcmV0dXJuIHRoaXMuX3RvdGFsU2l6ZTsgfQorICAgIGdldCB0b3RhbE9iamVjdENv
dW50KCkgeyByZXR1cm4gdGhpcy5fdG90YWxPYmplY3RDb3VudDsgfQorICAgIGdldCBsaXZlU2l6
ZSgpIHsgcmV0dXJuIHRoaXMuX2xpdmVTaXplOyB9CisgICAgZ2V0IGNhdGVnb3JpZXMoKSB7IHJl
dHVybiB0aGlzLl9jYXRlZ29yaWVzOyB9CisgICAgZ2V0IGludmFsaWQoKSB7IHJldHVybiB0aGlz
Ll9wcm94eU9iamVjdElkID09PSAwOyB9CisKKyAgICAvLyBTdGF0aWMKKworICAgIHN0YXRpYyB1
cGRhdGVDYXRlZ29yaWVzQW5kTWV0YWRhdGEoc25hcHNob3QsIGFsbG93Tm9kZUlkZW50aWZpZXJD
YWxsYmFjaykKKyAgICB7CisgICAgICAgIGxldCBsaXZlU2l6ZSA9IDA7CisgICAgICAgIGxldCBj
YXRlZ29yaWVzID0ge307CisKKyAgICAgICAgbGV0IG5vZGVzID0gc25hcHNob3QuX25vZGVzOwor
ICAgICAgICBsZXQgbm9kZUNsYXNzTmFtZXNUYWJsZSA9IHNuYXBzaG90Ll9ub2RlQ2xhc3NOYW1l
c1RhYmxlOworICAgICAgICBsZXQgbm9kZU9yZGluYWxUb1JldGFpbmVkU2l6ZXMgPSBzbmFwc2hv
dC5fbm9kZU9yZGluYWxUb1JldGFpbmVkU2l6ZXM7CisgICAgICAgIGxldCBub2RlT3JkaW5hbElz
RGVhZCA9IHNuYXBzaG90Ll9ub2RlT3JkaW5hbElzRGVhZDsKKworICAgICAgICAvLyBTa2lwIHRo
ZSA8cm9vdD4gbm9kZS4KKyAgICAgICAgbGV0IGZpcnN0Tm9kZUluZGV4ID0gbm9kZUZpZWxkQ291
bnQ7CisgICAgICAgIGxldCBmaXJzdE5vZGVPcmRpbmFsID0gMTsKKyAgICAgICAgZm9yIChsZXQg
bm9kZUluZGV4ID0gZmlyc3ROb2RlSW5kZXgsIG5vZGVPcmRpbmFsID0gZmlyc3ROb2RlT3JkaW5h
bDsgbm9kZUluZGV4IDwgbm9kZXMubGVuZ3RoOyBub2RlSW5kZXggKz0gbm9kZUZpZWxkQ291bnQs
IG5vZGVPcmRpbmFsKyspIHsKKyAgICAgICAgICAgIGlmIChhbGxvd05vZGVJZGVudGlmaWVyQ2Fs
bGJhY2sgJiYgIWFsbG93Tm9kZUlkZW50aWZpZXJDYWxsYmFjayhub2Rlc1tub2RlSW5kZXggKyBu
b2RlSWRPZmZzZXRdKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAg
bGV0IGNsYXNzTmFtZVRhYmxlSW5kZXggPSBub2Rlc1tub2RlSW5kZXggKyBub2RlQ2xhc3NOYW1l
T2Zmc2V0XTsKKyAgICAgICAgICAgIGxldCBjbGFzc05hbWUgPSBub2RlQ2xhc3NOYW1lc1RhYmxl
W2NsYXNzTmFtZVRhYmxlSW5kZXhdOworICAgICAgICAgICAgbGV0IHNpemUgPSBub2Rlc1tub2Rl
SW5kZXggKyBub2RlU2l6ZU9mZnNldF07CisgICAgICAgICAgICBsZXQgcmV0YWluZWRTaXplID0g
bm9kZU9yZGluYWxUb1JldGFpbmVkU2l6ZXNbbm9kZU9yZGluYWxdOworICAgICAgICAgICAgbGV0
IGludGVybmFsID0gbm9kZXNbbm9kZUluZGV4ICsgbm9kZUludGVybmFsT2Zmc2V0XSA/IHRydWUg
OiBmYWxzZTsKKyAgICAgICAgICAgIGxldCBkZWFkID0gbm9kZU9yZGluYWxJc0RlYWRbbm9kZU9y
ZGluYWxdID8gdHJ1ZSA6IGZhbHNlOworCisgICAgICAgICAgICBsZXQgY2F0ZWdvcnkgPSBjYXRl
Z29yaWVzW2NsYXNzTmFtZV07CisgICAgICAgICAgICBpZiAoIWNhdGVnb3J5KQorICAgICAgICAg
ICAgICAgIGNhdGVnb3J5ID0gY2F0ZWdvcmllc1tjbGFzc05hbWVdID0ge2NsYXNzTmFtZSwgc2l6
ZTogMCwgcmV0YWluZWRTaXplOiAwLCBjb3VudDogMCwgaW50ZXJuYWxDb3VudDogMCwgZGVhZENv
dW50OiAwfTsKKworICAgICAgICAgICAgY2F0ZWdvcnkuc2l6ZSArPSBzaXplOworICAgICAgICAg
ICAgY2F0ZWdvcnkucmV0YWluZWRTaXplICs9IHJldGFpbmVkU2l6ZTsKKyAgICAgICAgICAgIGNh
dGVnb3J5LmNvdW50ICs9IDE7CisgICAgICAgICAgICBpZiAoaW50ZXJuYWwpCisgICAgICAgICAg
ICAgICAgY2F0ZWdvcnkuaW50ZXJuYWxDb3VudCArPSAxOworICAgICAgICAgICAgaWYgKGRlYWQp
CisgICAgICAgICAgICAgICAgY2F0ZWdvcnkuZGVhZENvdW50ICs9IDE7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgbGl2ZVNpemUgKz0gc2l6ZTsKKyAgICAgICAgfQorCisgICAg
ICAgIHJldHVybiB7bGl2ZVNpemUsIGNhdGVnb3JpZXN9OworICAgIH0KKworICAgIHN0YXRpYyBh
bGxvY2F0aW9uQnVja2V0Q291bnRzKHNuYXBzaG90LCBidWNrZXRTaXplcywgYWxsb3dOb2RlSWRl
bnRpZmllckNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgbGV0IGNvdW50cyA9IG5ldyBBcnJheShi
dWNrZXRTaXplcy5sZW5ndGggKyAxKTsKKyAgICAgICAgbGV0IHJlbWFpbmRlckJ1Y2tldCA9IGNv
dW50cy5sZW5ndGggLSAxOworICAgICAgICBjb3VudHMuZmlsbCgwKTsKKworICAgICAgICBsZXQg
bm9kZXMgPSBzbmFwc2hvdC5fbm9kZXM7CisKKyAgICAgICAgLy8gU2tpcCB0aGUgPHJvb3Q+IG5v
ZGUuCisgICAgICAgIGxldCBmaXJzdE5vZGVJbmRleCA9IG5vZGVGaWVsZENvdW50OworCisgICAg
b3V0ZXI6CisgICAgICAgIGZvciAobGV0IG5vZGVJbmRleCA9IGZpcnN0Tm9kZUluZGV4OyBub2Rl
SW5kZXggPCBub2Rlcy5sZW5ndGg7IG5vZGVJbmRleCArPSBub2RlRmllbGRDb3VudCkgeworICAg
ICAgICAgICAgaWYgKGFsbG93Tm9kZUlkZW50aWZpZXJDYWxsYmFjayAmJiAhYWxsb3dOb2RlSWRl
bnRpZmllckNhbGxiYWNrKG5vZGVzW25vZGVJbmRleCArIG5vZGVJZE9mZnNldF0pKQorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBsZXQgc2l6ZSA9IG5vZGVzW25vZGVJ
bmRleCArIG5vZGVTaXplT2Zmc2V0XTsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
YnVja2V0U2l6ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoc2l6ZSA8IGJ1
Y2tldFNpemVzW2ldKSB7CisgICAgICAgICAgICAgICAgICAgIGNvdW50c1tpXSsrOworICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZSBvdXRlcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBjb3VudHNbcmVtYWluZGVyQnVja2V0XSsrOworICAgICAgICB9
CisKKyAgICAgICAgcmV0dXJuIGNvdW50czsKKyAgICB9CisKKyAgICBzdGF0aWMgaW5zdGFuY2Vz
V2l0aENsYXNzTmFtZShzbmFwc2hvdCwgY2xhc3NOYW1lLCBhbGxvd05vZGVJZGVudGlmaWVyQ2Fs
bGJhY2spCisgICAgeworICAgICAgICBsZXQgaW5zdGFuY2VzID0gW107CisKKyAgICAgICAgbGV0
IG5vZGVzID0gc25hcHNob3QuX25vZGVzOworICAgICAgICBsZXQgbm9kZUNsYXNzTmFtZXNUYWJs
ZSA9IHNuYXBzaG90Ll9ub2RlQ2xhc3NOYW1lc1RhYmxlOworCisgICAgICAgIC8vIFNraXAgdGhl
IDxyb290PiBub2RlLgorICAgICAgICBsZXQgZmlyc3ROb2RlSW5kZXggPSBub2RlRmllbGRDb3Vu
dDsKKyAgICAgICAgbGV0IGZpcnN0Tm9kZU9yZGluYWwgPSAxOworICAgICAgICBmb3IgKGxldCBu
b2RlSW5kZXggPSBmaXJzdE5vZGVJbmRleCwgbm9kZU9yZGluYWwgPSBmaXJzdE5vZGVPcmRpbmFs
OyBub2RlSW5kZXggPCBub2Rlcy5sZW5ndGg7IG5vZGVJbmRleCArPSBub2RlRmllbGRDb3VudCwg
bm9kZU9yZGluYWwrKykgeworICAgICAgICAgICAgaWYgKGFsbG93Tm9kZUlkZW50aWZpZXJDYWxs
YmFjayAmJiAhYWxsb3dOb2RlSWRlbnRpZmllckNhbGxiYWNrKG5vZGVzW25vZGVJbmRleCArIG5v
ZGVJZE9mZnNldF0pKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBs
ZXQgY2xhc3NOYW1lVGFibGVJbmRleCA9IG5vZGVzW25vZGVJbmRleCArIG5vZGVDbGFzc05hbWVP
ZmZzZXRdOworICAgICAgICAgICAgaWYgKG5vZGVDbGFzc05hbWVzVGFibGVbY2xhc3NOYW1lVGFi
bGVJbmRleF0gPT09IGNsYXNzTmFtZSkKKyAgICAgICAgICAgICAgICBpbnN0YW5jZXMucHVzaChu
b2RlSW5kZXgpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGluc3RhbmNlcy5tYXAoc25h
cHNob3Quc2VyaWFsaXplTm9kZSwgc25hcHNob3QpOworICAgIH0KKworICAgIC8vIFdvcmtlciBN
ZXRob2RzCisKKyAgICBhbGxvY2F0aW9uQnVja2V0Q291bnRzKGJ1Y2tldFNpemVzKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIEhlYXBTbmFwc2hvdC5hbGxvY2F0aW9uQnVja2V0Q291bnRzKHRoaXMs
IGJ1Y2tldFNpemVzKTsKKyAgICB9CisKKyAgICBpbnN0YW5jZXNXaXRoQ2xhc3NOYW1lKGNsYXNz
TmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBIZWFwU25hcHNob3QuaW5zdGFuY2VzV2l0aENs
YXNzTmFtZSh0aGlzLCBjbGFzc05hbWUpOworICAgIH0KKworICAgIHVwZGF0ZSgpCisgICAgewor
ICAgICAgICByZXR1cm4gSGVhcFNuYXBzaG90LnVwZGF0ZUNhdGVnb3JpZXNBbmRNZXRhZGF0YSh0
aGlzKTsKKyAgICB9CisKKyAgICBub2RlV2l0aElkZW50aWZpZXIobm9kZUlkZW50aWZpZXIpCisg
ICAgeworICAgICAgICBsZXQgbm9kZU9yZGluYWwgPSB0aGlzLl9ub2RlSWRlbnRpZmllclRvT3Jk
aW5hbC5nZXQobm9kZUlkZW50aWZpZXIpOworICAgICAgICBsZXQgbm9kZUluZGV4ID0gbm9kZU9y
ZGluYWwgKiBub2RlRmllbGRDb3VudDsKKyAgICAgICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplTm9k
ZShub2RlSW5kZXgpOworICAgIH0KKworICAgIHNob3J0ZXN0R0NSb290UGF0aChub2RlSWRlbnRp
ZmllcikKKyAgICB7CisgICAgICAgIC8vIFJldHVybnMgYW4gYXJyYXkgZnJvbSB0aGlzIG5vZGUg
dG8gYSBnY1Jvb3Qgbm9kZS4KKyAgICAgICAgLy8gRS5nLiBbTm9kZSAodGFyZ2V0KSwgRWRnZSwg
Tm9kZSwgRWRnZSwgTm9kZSAocm9vdCldLgorICAgICAgICAvLyBJbnRlcm5hbCBub2RlcyBhcmUg
YXZvaWRlZCwgc28gaWYgdGhlIHBhdGggaXMgZW1wdHkgdGhpcworICAgICAgICAvLyBub2RlIGlz
IGVpdGhlciBhIGdjUm9vdCBvciBvbmx5IHJlYWNoYWJsZSB2aWEgSW50ZXJuYWwgbm9kZXMuCisK
KyAgICAgICAgbGV0IHBhdGhzID0gdGhpcy5fZ2NSb290UGF0aHMobm9kZUlkZW50aWZpZXIpOwor
ICAgICAgICBpZiAoIXBhdGhzLmxlbmd0aCkKKyAgICAgICAgICAgIHJldHVybiBbXTsKKworICAg
ICAgICBwYXRocy5zb3J0KChhLCBiKSA9PiBhLmxlbmd0aCAtIGIubGVuZ3RoKTsKKworICAgICAg
ICBsZXQgc2hvcnRlc3RQYXRoV2l0aEdsb2JhbE9iamVjdCA9IG51bGw7CisgICAgICAgIGZvciAo
bGV0IHBhdGggb2YgcGF0aHMpIHsKKyAgICAgICAgICAgIGxldCBsYXN0Tm9kZUluZGV4ID0gcGF0
aFtwYXRoLmxlbmd0aCAtIDFdLm5vZGU7CisgICAgICAgICAgICBpZiAodGhpcy5faXNOb2RlR2xv
YmFsT2JqZWN0KGxhc3ROb2RlSW5kZXgpKSB7CisgICAgICAgICAgICAgICAgc2hvcnRlc3RQYXRo
V2l0aEdsb2JhbE9iamVjdCA9IHBhdGg7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsZXQgc2hvcnRlc3RQYXRoID0gc2hvcnRlc3RQ
YXRoV2l0aEdsb2JhbE9iamVjdCB8fCBwYXRoc1swXTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
Im5vZGUiIGluIHNob3J0ZXN0UGF0aFswXSwgIlBhdGggc2hvdWxkIHN0YXJ0IHdpdGggYSBub2Rl
Iik7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCJub2RlIiBpbiBzaG9ydGVzdFBhdGhbc2hvcnRl
c3RQYXRoLmxlbmd0aCAtIDFdLCAiUGF0aCBzaG91bGQgZW5kIHdpdGggYSBub2RlIik7CisKKyAg
ICAgICAgcmV0dXJuIHNob3J0ZXN0UGF0aC5tYXAoKGNvbXBvbmVudCkgPT4geworICAgICAgICAg
ICAgaWYgKGNvbXBvbmVudC5ub2RlKQorICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNlcmlh
bGl6ZU5vZGUoY29tcG9uZW50Lm5vZGUpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VyaWFs
aXplRWRnZShjb21wb25lbnQuZWRnZSk7CisgICAgICAgIH0pOworICAgIH0KKyAgICAKKyAgICBy
b290Tm9kZXMoKQorICAgIHsKKyAgICAgICAgbGV0IHJvb3ROb2RlSW5kZXhTZXQgPSBuZXcgU2V0
OworCisgICAgICAgIC8vIElkZW50aWZpZXJzIGNhbiBvY2N1ciBtdWx0aXBsZSB0aW1lcyBpbiB0
aGUgcm9vdHMgbGlzdC4KKyAgICAgICAgZm9yIChsZXQgcm9vdEluZGV4ID0gMDsgcm9vdEluZGV4
IDwgdGhpcy5fcm9vdHMubGVuZ3RoOyByb290SW5kZXggKz0gcm9vdEZpZWxkQ291bnQpIHsKKyAg
ICAgICAgICAgIGxldCByb290T3JkaW5hbCA9IHJvb3RJbmRleCAvIHJvb3RGaWVsZENvdW50Owor
ICAgICAgICAgICAgbGV0IHJvb3RJZGVudGlmaWVyID0gdGhpcy5fcm9vdHNbcm9vdEluZGV4ICsg
cm9vdElkT2Zmc2V0XTsKKworICAgICAgICAgICAgbGV0IHRvTm9kZU9yZGluYWwgPSB0aGlzLl9u
b2RlSWRlbnRpZmllclRvT3JkaW5hbC5nZXQocm9vdElkZW50aWZpZXIpOworICAgICAgICAgICAg
bGV0IHRvTm9kZUluZGV4ID0gdG9Ob2RlT3JkaW5hbCAqIG5vZGVGaWVsZENvdW50OworCisgICAg
ICAgICAgICByb290Tm9kZUluZGV4U2V0LmFkZCh0b05vZGVJbmRleCk7CisgICAgICAgIH0KKwor
ICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShyb290Tm9kZUluZGV4U2V0LnZhbHVlcygpKS5tYXAo
dGhpcy5zZXJpYWxpemVOb2RlLCB0aGlzKTsKKyAgICB9CisgICAgCisgICAgcmVhc29uTmFtZXNG
b3JSb290KHJvb3RJZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAgbGV0IHJlYXNvbkluZGV4ZXMg
PSB0aGlzLl9yb290SWRlbnRpZmllclRvUmVhc29ucy5nZXQocm9vdElkZW50aWZpZXIpOworICAg
ICAgICBpZiAoIXJlYXNvbkluZGV4ZXMpCisgICAgICAgICAgICByZXR1cm4gW107CisgICAgICAg
IHJldHVybiBBcnJheS5mcm9tKHJlYXNvbkluZGV4ZXMpLm1hcCh0aGlzLmxhYmVsRm9ySW5kZXgs
IHRoaXMpLmZpbHRlcihhID0+IGEgIT0gMCkKKyAgICB9CisKKyAgICBkb21pbmF0ZWROb2Rlcyhu
b2RlSWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIGxldCBkb21pbmF0ZWROb2RlcyA9IFtdOwor
CisgICAgICAgIGxldCB0YXJnZXROb2RlT3JkaW5hbCA9IHRoaXMuX25vZGVJZGVudGlmaWVyVG9P
cmRpbmFsLmdldChub2RlSWRlbnRpZmllcik7CisgICAgICAgIGZvciAobGV0IG5vZGVPcmRpbmFs
ID0gMDsgbm9kZU9yZGluYWwgPCB0aGlzLl9ub2RlQ291bnQ7ICsrbm9kZU9yZGluYWwpIHsKKyAg
ICAgICAgICAgIGlmICh0aGlzLl9ub2RlT3JkaW5hbFRvRG9taW5hdG9yTm9kZU9yZGluYWxbbm9k
ZU9yZGluYWxdID09PSB0YXJnZXROb2RlT3JkaW5hbCkKKyAgICAgICAgICAgICAgICBkb21pbmF0
ZWROb2Rlcy5wdXNoKG5vZGVPcmRpbmFsICogbm9kZUZpZWxkQ291bnQpOworICAgICAgICB9CisK
KyAgICAgICAgcmV0dXJuIGRvbWluYXRlZE5vZGVzLm1hcCh0aGlzLnNlcmlhbGl6ZU5vZGUsIHRo
aXMpOworICAgIH0KKworICAgIHJldGFpbmVkTm9kZXMobm9kZUlkZW50aWZpZXIpCisgICAgewor
ICAgICAgICBsZXQgcmV0YWluZWROb2RlcyA9IFtdOworICAgICAgICBsZXQgZWRnZXMgPSBbXTsK
KworICAgICAgICBsZXQgbm9kZU9yZGluYWwgPSB0aGlzLl9ub2RlSWRlbnRpZmllclRvT3JkaW5h
bC5nZXQobm9kZUlkZW50aWZpZXIpOworICAgICAgICBsZXQgZWRnZUluZGV4ID0gdGhpcy5fbm9k
ZU9yZGluYWxUb0ZpcnN0T3V0Z29pbmdFZGdlW25vZGVPcmRpbmFsXTsKKyAgICAgICAgZm9yICg7
IHRoaXMuX2VkZ2VzW2VkZ2VJbmRleCArIGVkZ2VGcm9tSWRPZmZzZXRdID09PSBub2RlSWRlbnRp
ZmllcjsgZWRnZUluZGV4ICs9IGVkZ2VGaWVsZENvdW50KSB7CisgICAgICAgICAgICBsZXQgdG9O
b2RlSWRlbnRpZmllciA9IHRoaXMuX2VkZ2VzW2VkZ2VJbmRleCArIGVkZ2VUb0lkT2Zmc2V0XTsK
KyAgICAgICAgICAgIGxldCB0b05vZGVPcmRpbmFsID0gdGhpcy5fbm9kZUlkZW50aWZpZXJUb09y
ZGluYWwuZ2V0KHRvTm9kZUlkZW50aWZpZXIpOworICAgICAgICAgICAgbGV0IHRvTm9kZUluZGV4
ID0gdG9Ob2RlT3JkaW5hbCAqIG5vZGVGaWVsZENvdW50OworICAgICAgICAgICAgcmV0YWluZWRO
b2Rlcy5wdXNoKHRvTm9kZUluZGV4KTsKKyAgICAgICAgICAgIGVkZ2VzLnB1c2goZWRnZUluZGV4
KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICByZXRhaW5lZE5v
ZGVzOiByZXRhaW5lZE5vZGVzLm1hcCh0aGlzLnNlcmlhbGl6ZU5vZGUsIHRoaXMpLAorICAgICAg
ICAgICAgZWRnZXM6IGVkZ2VzLm1hcCh0aGlzLnNlcmlhbGl6ZUVkZ2UsIHRoaXMpLAorICAgICAg
ICB9OworICAgIH0KKworICAgIHJldGFpbmVycyhub2RlSWRlbnRpZmllcikKKyAgICB7CisgICAg
ICAgIGxldCByZXRhaW5lcnMgPSBbXTsKKyAgICAgICAgbGV0IGVkZ2VzID0gW107CisKKyAgICAg
ICAgbGV0IG5vZGVPcmRpbmFsID0gdGhpcy5fbm9kZUlkZW50aWZpZXJUb09yZGluYWwuZ2V0KG5v
ZGVJZGVudGlmaWVyKTsKKyAgICAgICAgbGV0IGluY29taW5nRWRnZUluZGV4ID0gdGhpcy5fbm9k
ZU9yZGluYWxUb0ZpcnN0SW5jb21pbmdFZGdlW25vZGVPcmRpbmFsXTsKKyAgICAgICAgbGV0IGlu
Y29taW5nRWRnZUluZGV4RW5kID0gdGhpcy5fbm9kZU9yZGluYWxUb0ZpcnN0SW5jb21pbmdFZGdl
W25vZGVPcmRpbmFsICsgMV07CisgICAgICAgIGZvciAobGV0IGVkZ2VJbmRleCA9IGluY29taW5n
RWRnZUluZGV4OyBlZGdlSW5kZXggPCBpbmNvbWluZ0VkZ2VJbmRleEVuZDsgKytlZGdlSW5kZXgp
IHsKKyAgICAgICAgICAgIGxldCBmcm9tTm9kZU9yZGluYWwgPSB0aGlzLl9pbmNvbWluZ05vZGVz
W2VkZ2VJbmRleF07CisgICAgICAgICAgICBsZXQgZnJvbU5vZGVJbmRleCA9IGZyb21Ob2RlT3Jk
aW5hbCAqIG5vZGVGaWVsZENvdW50OworICAgICAgICAgICAgcmV0YWluZXJzLnB1c2goZnJvbU5v
ZGVJbmRleCk7CisgICAgICAgICAgICBlZGdlcy5wdXNoKHRoaXMuX2luY29taW5nRWRnZXNbZWRn
ZUluZGV4XSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgcmV0
YWluZXJzOiByZXRhaW5lcnMubWFwKHRoaXMuc2VyaWFsaXplTm9kZSwgdGhpcyksCisgICAgICAg
ICAgICBlZGdlczogZWRnZXMubWFwKHRoaXMuc2VyaWFsaXplRWRnZSwgdGhpcyksCisgICAgICAg
IH07CisgICAgfQorCisgICAgdXBkYXRlRGVhZE5vZGVzQW5kR2F0aGVyQ29sbGVjdGlvbkRhdGEo
c25hcHNob3RzKQorICAgIHsKKyAgICAgICAgbGV0IHByZXZpb3VzU25hcHNob3RJbmRleCA9IHNu
YXBzaG90cy5pbmRleE9mKHRoaXMpIC0gMTsKKyAgICAgICAgbGV0IHByZXZpb3VzU25hcHNob3Qg
PSBzbmFwc2hvdHNbcHJldmlvdXNTbmFwc2hvdEluZGV4XTsKKyAgICAgICAgaWYgKCFwcmV2aW91
c1NuYXBzaG90KQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAgbGV0IGxhc3RO
b2RlSWRlbnRpZmllciA9IHByZXZpb3VzU25hcHNob3QuX2xhc3ROb2RlSWRlbnRpZmllcjsKKwor
ICAgICAgICAvLyBBbGwgb2YgdGhlIG5vZGUgaWRlbnRpZmllcnMgdGhhdCBjb3VsZCBoYXZlIGV4
aXN0ZWQgcHJpb3IgdG8gdGhpcyBzbmFwc2hvdC4KKyAgICAgICAgbGV0IGtub3duID0gbmV3IE1h
cDsKKyAgICAgICAgZm9yIChsZXQgbm9kZUluZGV4ID0gMDsgbm9kZUluZGV4IDwgdGhpcy5fbm9k
ZXMubGVuZ3RoOyBub2RlSW5kZXggKz0gbm9kZUZpZWxkQ291bnQpIHsKKyAgICAgICAgICAgIGxl
dCBub2RlSWRlbnRpZmllciA9IHRoaXMuX25vZGVzW25vZGVJbmRleCArIG5vZGVJZE9mZnNldF07
CisgICAgICAgICAgICBpZiAobm9kZUlkZW50aWZpZXIgPiBsYXN0Tm9kZUlkZW50aWZpZXIpCisg
ICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBrbm93bi5zZXQobm9kZUlkZW50
aWZpZXIsIG5vZGVJbmRleCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBEZXRlcm1pbmUgd2hp
Y2ggbm9kZSBpZGVudGlmaWVycyBoYXZlIHNpbmNlIGJlZW4gZGVsZXRlZC4KKyAgICAgICAgbGV0
IGNvbGxlY3RlZE5vZGVzTGlzdCA9IFtdOworICAgICAgICBmb3IgKGxldCBub2RlSW5kZXggPSAw
OyBub2RlSW5kZXggPCBwcmV2aW91c1NuYXBzaG90Ll9ub2Rlcy5sZW5ndGg7IG5vZGVJbmRleCAr
PSBub2RlRmllbGRDb3VudCkgeworICAgICAgICAgICAgbGV0IG5vZGVJZGVudGlmaWVyID0gcHJl
dmlvdXNTbmFwc2hvdC5fbm9kZXNbbm9kZUluZGV4ICsgbm9kZUlkT2Zmc2V0XTsKKyAgICAgICAg
ICAgIGxldCB3YXNEZWxldGVkID0gIWtub3duLmhhcyhub2RlSWRlbnRpZmllcik7CisgICAgICAg
ICAgICBpZiAod2FzRGVsZXRlZCkKKyAgICAgICAgICAgICAgICBjb2xsZWN0ZWROb2Rlc0xpc3Qu
cHVzaChub2RlSWRlbnRpZmllcik7CisgICAgICAgIH0KKworICAgICAgICAvLyBVcGRhdGUgZGVh
ZCBub2RlcyBpbiBwcmV2aW91cyBzbmFwc2hvdHMuCisgICAgICAgIGxldCBhZmZlY3RlZFNuYXBz
aG90cyA9IFtdOworICAgICAgICBmb3IgKGxldCBzbmFwc2hvdCBvZiBzbmFwc2hvdHMpIHsKKyAg
ICAgICAgICAgIGlmIChzbmFwc2hvdCA9PT0gdGhpcykKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGlmIChzbmFwc2hvdC5fbWFya0RlYWROb2Rlcyhjb2xsZWN0ZWROb2Rlc0xp
c3QpKQorICAgICAgICAgICAgICAgIGFmZmVjdGVkU25hcHNob3RzLnB1c2goc25hcHNob3QuX2lk
ZW50aWZpZXIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29udmVydCBsaXN0IHRvIGEgbWFw
LgorICAgICAgICBsZXQgY29sbGVjdGVkTm9kZXMgPSB7fTsKKyAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPCBjb2xsZWN0ZWROb2Rlc0xpc3QubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBjb2xs
ZWN0ZWROb2Rlc1tjb2xsZWN0ZWROb2Rlc0xpc3RbaV1dID0gdHJ1ZTsKKworICAgICAgICByZXR1
cm4geworICAgICAgICAgICAgY29sbGVjdGVkTm9kZXMsCisgICAgICAgICAgICBhZmZlY3RlZFNu
YXBzaG90cywKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIHNlcmlh
bGl6ZSgpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgaWRlbnRpZmllcjog
dGhpcy5faWRlbnRpZmllciwKKyAgICAgICAgICAgIHRpdGxlOiB0aGlzLl90aXRsZSwKKyAgICAg
ICAgICAgIHRvdGFsU2l6ZTogdGhpcy5fdG90YWxTaXplLAorICAgICAgICAgICAgdG90YWxPYmpl
Y3RDb3VudDogdGhpcy5fbm9kZUNvdW50IC0gMSwgLy8gPHJvb3Q+LgorICAgICAgICAgICAgbGl2
ZVNpemU6IHRoaXMuX2xpdmVTaXplLAorICAgICAgICAgICAgY2F0ZWdvcmllczogdGhpcy5fY2F0
ZWdvcmllcywKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBzZXJpYWxpemVOb2RlKG5vZGVJbmRl
eCkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KChub2RlSW5kZXggJSBub2RlRmllbGRD
b3VudCkgPT09IDAsICJJbnZhbGlkIG5vZGVJbmRleCB0byBzZXJpYWxpemU6ICIgKyBub2RlSW5k
ZXgpOworCisgICAgICAgIGxldCBub2RlSWRlbnRpZmllciA9IHRoaXMuX25vZGVzW25vZGVJbmRl
eCArIG5vZGVJZE9mZnNldF07CisgICAgICAgIGxldCBub2RlT3JkaW5hbCA9IG5vZGVJbmRleCAv
IG5vZGVGaWVsZENvdW50OworICAgICAgICBsZXQgZWRnZUluZGV4ID0gdGhpcy5fbm9kZU9yZGlu
YWxUb0ZpcnN0T3V0Z29pbmdFZGdlW25vZGVPcmRpbmFsXTsKKyAgICAgICAgbGV0IGhhc0NoaWxk
cmVuID0gdGhpcy5fZWRnZXNbZWRnZUluZGV4ICsgZWRnZUZyb21JZE9mZnNldF0gPT09IG5vZGVJ
ZGVudGlmaWVyOworCisgICAgICAgIGxldCBkb21pbmF0b3JOb2RlT3JkaW5hbCA9IHRoaXMuX25v
ZGVPcmRpbmFsVG9Eb21pbmF0b3JOb2RlT3JkaW5hbFtub2RlT3JkaW5hbF07CisgICAgICAgIGxl
dCBkb21pbmF0b3JOb2RlSW5kZXggPSBkb21pbmF0b3JOb2RlT3JkaW5hbCAqIG5vZGVGaWVsZENv
dW50OworICAgICAgICBsZXQgZG9taW5hdG9yTm9kZUlkZW50aWZpZXIgPSB0aGlzLl9ub2Rlc1tk
b21pbmF0b3JOb2RlSW5kZXggKyBub2RlSWRPZmZzZXRdOworCisgICAgICAgIGxldCByZXN1bHQg
PSB7CisgICAgICAgICAgICBpZDogbm9kZUlkZW50aWZpZXIsCisgICAgICAgICAgICBjbGFzc05h
bWU6IHRoaXMuX25vZGVDbGFzc05hbWVzVGFibGVbdGhpcy5fbm9kZXNbbm9kZUluZGV4ICsgbm9k
ZUNsYXNzTmFtZU9mZnNldF1dLAorICAgICAgICAgICAgc2l6ZTogdGhpcy5fbm9kZXNbbm9kZUlu
ZGV4ICsgbm9kZVNpemVPZmZzZXRdLAorICAgICAgICAgICAgcmV0YWluZWRTaXplOiB0aGlzLl9u
b2RlT3JkaW5hbFRvUmV0YWluZWRTaXplc1tub2RlT3JkaW5hbF0sCisgICAgICAgICAgICBpbnRl
cm5hbDogdGhpcy5fbm9kZXNbbm9kZUluZGV4ICsgbm9kZUludGVybmFsT2Zmc2V0XSA/IHRydWUg
OiBmYWxzZSwKKyAgICAgICAgICAgIGdjUm9vdDogdGhpcy5fbm9kZU9yZGluYWxJc0dDUm9vdFtu
b2RlT3JkaW5hbF0gPyB0cnVlIDogZmFsc2UsCisgICAgICAgICAgICBtYXJrZWRSb290IDogdGhp
cy5fcm9vdElkZW50aWZpZXJUb1JlYXNvbnMuaGFzKG5vZGVJZGVudGlmaWVyKSwKKyAgICAgICAg
ICAgIGRlYWQ6IHRoaXMuX25vZGVPcmRpbmFsSXNEZWFkW25vZGVPcmRpbmFsXSA/IHRydWUgOiBm
YWxzZSwKKyAgICAgICAgICAgIGFkZHJlc3M6IHRoaXMuX25vZGVzW25vZGVJbmRleCArIG5vZGVB
ZGRyZXNzT2Zmc2V0XSwKKyAgICAgICAgICAgIGxhYmVsOiB0aGlzLl9sYWJlbHNUYWJsZVt0aGlz
Ll9ub2Rlc1tub2RlSW5kZXggKyBub2RlTGFiZWxPZmZzZXRdXSwKKyAgICAgICAgICAgIGRvbWlu
YXRvck5vZGVJZGVudGlmaWVyLAorICAgICAgICAgICAgaGFzQ2hpbGRyZW4sCisgICAgICAgIH07
CisKKyAgICAgICAgbGV0IHdyYXBwZWRBZGRyID0gdGhpcy5fbm9kZXNbbm9kZUluZGV4ICsgbm9k
ZVdyYXBwZWRBZGRyZXNzT2Zmc2V0XTsKKyAgICAgICAgaWYgKHdyYXBwZWRBZGRyICE9PSAiMHgw
IikKKyAgICAgICAgICAgIHJlc3VsdC53cmFwcGVkQWRkcmVzcyA9IHdyYXBwZWRBZGRyOworICAg
ICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBsYWJlbEZvckluZGV4
KGluZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsc1RhYmxlW2luZGV4XTsK
KyAgICB9CisKKyAgICBzZXJpYWxpemVFZGdlKGVkZ2VJbmRleCkKKyAgICB7CisgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KChlZGdlSW5kZXggJSBlZGdlRmllbGRDb3VudCkgPT09IDAsICJJbnZhbGlk
IGVkZ2VJbmRleCB0byBzZXJpYWxpemUiKTsKKworICAgICAgICBsZXQgZWRnZVR5cGUgPSB0aGlz
Ll9lZGdlVHlwZXNUYWJsZVt0aGlzLl9lZGdlc1tlZGdlSW5kZXggKyBlZGdlVHlwZU9mZnNldF1d
OworICAgICAgICBsZXQgZWRnZURhdGEgPSB0aGlzLl9lZGdlc1tlZGdlSW5kZXggKyBlZGdlRGF0
YU9mZnNldF07CisgICAgICAgIHN3aXRjaCAoZWRnZVR5cGUpIHsKKyAgICAgICAgY2FzZSAiSW50
ZXJuYWwiOgorICAgICAgICAgICAgLy8gZWRnZURhdGEgY2FuIGJlIGlnbm9yZWQuCisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAiUHJvcGVydHkiOgorICAgICAgICBjYXNlICJWYXJp
YWJsZSI6CisgICAgICAgICAgICAvLyBlZGdlRGF0YSBpcyBhIHRhYmxlIGluZGV4LgorICAgICAg
ICAgICAgZWRnZURhdGEgPSB0aGlzLl9lZGdlTmFtZXNUYWJsZVtlZGdlRGF0YV07CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAiSW5kZXgiOgorICAgICAgICAgICAgLy8gZWRnZURh
dGEgaXMgdGhlIGluZGV4LgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICBjb25zb2xlLmVycm9yKCJVbmV4cGVjdGVkIGVkZ2UgdHlwZTogIiArIGVkZ2VU
eXBlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHsK
KyAgICAgICAgICAgIGZyb206IHRoaXMuX2VkZ2VzW2VkZ2VJbmRleCArIGVkZ2VGcm9tSWRPZmZz
ZXRdLAorICAgICAgICAgICAgdG86IHRoaXMuX2VkZ2VzW2VkZ2VJbmRleCArIGVkZ2VUb0lkT2Zm
c2V0XSwKKyAgICAgICAgICAgIHR5cGU6IGVkZ2VUeXBlLAorICAgICAgICAgICAgZGF0YTogZWRn
ZURhdGEsCisgICAgICAgIH07CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2J1aWxk
T3V0Z29pbmdFZGdlcygpCisgICAgeworICAgICAgICBsZXQgbGFzdEZyb21JZGVudGlmaWVyID0g
LTE7CisgICAgICAgIGZvciAobGV0IGVkZ2VJbmRleCA9IDA7IGVkZ2VJbmRleCA8IHRoaXMuX2Vk
Z2VzLmxlbmd0aDsgZWRnZUluZGV4ICs9IGVkZ2VGaWVsZENvdW50KSB7CisgICAgICAgICAgICBs
ZXQgZnJvbUlkZW50aWZpZXIgPSB0aGlzLl9lZGdlc1tlZGdlSW5kZXggKyBlZGdlRnJvbUlkT2Zm
c2V0XTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGxhc3RGcm9tSWRlbnRpZmllciA8PSBm
cm9tSWRlbnRpZmllciwgIkVkZ2UgbGlzdCBzaG91bGQgYmUgb3JkZXJlZCBieSBmcm9tIG5vZGUg
aWRlbnRpZmllciIpOworICAgICAgICAgICAgaWYgKGZyb21JZGVudGlmaWVyICE9PSBsYXN0RnJv
bUlkZW50aWZpZXIpIHsKKyAgICAgICAgICAgICAgICBsZXQgbm9kZU9yZGluYWwgPSB0aGlzLl9u
b2RlSWRlbnRpZmllclRvT3JkaW5hbC5nZXQoZnJvbUlkZW50aWZpZXIpOworICAgICAgICAgICAg
ICAgIHRoaXMuX25vZGVPcmRpbmFsVG9GaXJzdE91dGdvaW5nRWRnZVtub2RlT3JkaW5hbF0gPSBl
ZGdlSW5kZXg7CisgICAgICAgICAgICAgICAgbGFzdEZyb21JZGVudGlmaWVyID0gZnJvbUlkZW50
aWZpZXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfYnVpbGRJbmNv
bWluZ0VkZ2VzKCkKKyAgICB7CisgICAgICAgIC8vIEZpcnN0IGNhbGN1bGF0ZSB0aGUgY291bnQg
b2YgaW5jb21pbmcgZWRnZXMgZm9yIGVhY2ggbm9kZS4KKyAgICAgICAgZm9yIChsZXQgZWRnZUlu
ZGV4ID0gMDsgZWRnZUluZGV4IDwgdGhpcy5fZWRnZXMubGVuZ3RoOyBlZGdlSW5kZXggKz0gZWRn
ZUZpZWxkQ291bnQpIHsKKyAgICAgICAgICAgIGxldCB0b0lkZW50aWZpZXIgPSB0aGlzLl9lZGdl
c1tlZGdlSW5kZXggKyBlZGdlVG9JZE9mZnNldF07CisgICAgICAgICAgICBsZXQgdG9Ob2RlT3Jk
aW5hbCA9IHRoaXMuX25vZGVJZGVudGlmaWVyVG9PcmRpbmFsLmdldCh0b0lkZW50aWZpZXIpOwor
ICAgICAgICAgICAgdGhpcy5fbm9kZU9yZGluYWxUb0ZpcnN0SW5jb21pbmdFZGdlW3RvTm9kZU9y
ZGluYWxdKys7CisgICAgICAgIH0KKworICAgICAgICAvLyBSZXBsYWNlIHRoZSBjb3VudHMgd2l0
aCB3aGF0IHdpbGwgYmUgdGhlIHJlc3VsdGluZyBpbmRleCBieSBydW5uaW5nIHVwIHRoZSBjb3Vu
dHMuCisgICAgICAgIC8vIFN0b3JlIHRoZSBjb3VudHMgaW4gd2hhdCB3aWxsIGJlIHRoZSBlZGdl
cyBsaXN0IHRvIHVzZSB3aGVuIHBsYWNpbmcgZWRnZXMgaW4gdGhlIGxpc3QuCisgICAgICAgIGxl
dCBydW5uaW5nRmlyc3RJbmRleCA9IDA7CisgICAgICAgIGZvciAobGV0IG5vZGVPcmRpbmFsID0g
MDsgbm9kZU9yZGluYWwgPCB0aGlzLl9ub2RlQ291bnQ7ICsrbm9kZU9yZGluYWwpIHsKKyAgICAg
ICAgICAgIGxldCBjb3VudCA9IHRoaXMuX25vZGVPcmRpbmFsVG9GaXJzdEluY29taW5nRWRnZVtu
b2RlT3JkaW5hbF07CisgICAgICAgICAgICB0aGlzLl9ub2RlT3JkaW5hbFRvRmlyc3RJbmNvbWlu
Z0VkZ2Vbbm9kZU9yZGluYWxdID0gcnVubmluZ0ZpcnN0SW5kZXg7CisgICAgICAgICAgICB0aGlz
Ll9pbmNvbWluZ05vZGVzW3J1bm5pbmdGaXJzdEluZGV4XSA9IGNvdW50OworICAgICAgICAgICAg
cnVubmluZ0ZpcnN0SW5kZXggKz0gY291bnQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBGaWxs
IGluIHRoZSBpbmNvbWluZyBlZGdlcyBsaXN0LiBVc2UgdGhlIGNvdW50IGFzIGFuIG9mZnNldCB3
aGVuIHBsYWNpbmcgZWRnZXMgaW4gdGhlIGxpc3QuCisgICAgICAgIGZvciAobGV0IGVkZ2VJbmRl
eCA9IDA7IGVkZ2VJbmRleCA8IHRoaXMuX2VkZ2VzLmxlbmd0aDsgZWRnZUluZGV4ICs9IGVkZ2VG
aWVsZENvdW50KSB7CisgICAgICAgICAgICBsZXQgZnJvbUlkZW50aWZpZXIgPSB0aGlzLl9lZGdl
c1tlZGdlSW5kZXggKyBlZGdlRnJvbUlkT2Zmc2V0XTsKKyAgICAgICAgICAgIGxldCBmcm9tTm9k
ZU9yZGluYWwgPSB0aGlzLl9ub2RlSWRlbnRpZmllclRvT3JkaW5hbC5nZXQoZnJvbUlkZW50aWZp
ZXIpOworICAgICAgICAgICAgbGV0IHRvSWRlbnRpZmllciA9IHRoaXMuX2VkZ2VzW2VkZ2VJbmRl
eCArIGVkZ2VUb0lkT2Zmc2V0XTsKKyAgICAgICAgICAgIGxldCB0b05vZGVPcmRpbmFsID0gdGhp
cy5fbm9kZUlkZW50aWZpZXJUb09yZGluYWwuZ2V0KHRvSWRlbnRpZmllcik7CisKKyAgICAgICAg
ICAgIGxldCBmaXJzdEluY29taW5nRWRnZUluZGV4ID0gdGhpcy5fbm9kZU9yZGluYWxUb0ZpcnN0
SW5jb21pbmdFZGdlW3RvTm9kZU9yZGluYWxdOworICAgICAgICAgICAgY29uc29sZS5hc3NlcnQo
dGhpcy5faW5jb21pbmdOb2Rlc1tmaXJzdEluY29taW5nRWRnZUluZGV4XSA+IDAsICJTaG91bGQg
YmUgZXhwZWN0aW5nIGVkZ2VzIGZvciB0aGlzIG5vZGUiKTsKKyAgICAgICAgICAgIGxldCBjb3Vu
dEFzT2Zmc2V0ID0gdGhpcy5faW5jb21pbmdOb2Rlc1tmaXJzdEluY29taW5nRWRnZUluZGV4XS0t
OworICAgICAgICAgICAgbGV0IGluZGV4ID0gZmlyc3RJbmNvbWluZ0VkZ2VJbmRleCArIGNvdW50
QXNPZmZzZXQgLSAxOworICAgICAgICAgICAgdGhpcy5faW5jb21pbmdOb2Rlc1tpbmRleF0gPSBm
cm9tTm9kZU9yZGluYWw7CisgICAgICAgICAgICB0aGlzLl9pbmNvbWluZ0VkZ2VzW2luZGV4XSA9
IGVkZ2VJbmRleDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIER1cGxpY2F0ZSB2YWx1ZSBvbiB0
aGUgZW5kLiBJbmNvbWluZyBlZGdlIGl0ZXJhdGlvbiB3YWxrcyBmaXJzdEluY29taW5nRWRnZShv
cmRpbmFsKSB0byBmaXJzdEluY29taW5nRWRnZShvcmRpbmFsKzEpLgorICAgICAgICB0aGlzLl9u
b2RlT3JkaW5hbFRvRmlyc3RJbmNvbWluZ0VkZ2VbdGhpcy5fbm9kZUNvdW50XSA9IHRoaXMuX25v
ZGVPcmRpbmFsVG9GaXJzdEluY29taW5nRWRnZVt0aGlzLl9ub2RlQ291bnQgLSAxXTsKKyAgICB9
CisKKyAgICBfYnVpbGRQb3N0T3JkZXJJbmRleGVzKCkKKyAgICB7CisgICAgICAgIGxldCBwb3N0
T3JkZXJJbmRleCA9IDA7CisgICAgICAgIGxldCBub2RlT3JkaW5hbFRvUG9zdE9yZGVySW5kZXgg
PSBuZXcgVWludDMyQXJyYXkodGhpcy5fbm9kZUNvdW50KTsKKyAgICAgICAgbGV0IHBvc3RPcmRl
ckluZGV4VG9Ob2RlT3JkaW5hbCA9IG5ldyBVaW50MzJBcnJheSh0aGlzLl9ub2RlQ291bnQpOwor
CisgICAgICAgIGxldCBzdGFja05vZGVzID0gbmV3IFVpbnQzMkFycmF5KHRoaXMuX25vZGVDb3Vu
dCk7IC8vIG5vZGVPcmRpbmFsLgorICAgICAgICBsZXQgc3RhY2tFZGdlcyA9IG5ldyBVaW50MzJB
cnJheSh0aGlzLl9ub2RlQ291bnQpOyAvLyBlZGdlSW5kZXguCisgICAgICAgIGxldCB2aXNpdGVk
ID0gbmV3IFVpbnQ4QXJyYXkodGhpcy5fbm9kZUNvdW50KTsKKworICAgICAgICBsZXQgc3RhY2tU
b3AgPSAwOworICAgICAgICBzdGFja05vZGVzW3N0YWNrVG9wXSA9IHJvb3ROb2RlT3JkaW5hbDsK
KyAgICAgICAgc3RhY2tFZGdlc1tzdGFja1RvcF0gPSB0aGlzLl9ub2RlT3JkaW5hbFRvRmlyc3RP
dXRnb2luZ0VkZ2Vbcm9vdE5vZGVPcmRpbmFsXTsKKworICAgICAgICB3aGlsZSAoc3RhY2tUb3Ag
Pj0gMCkgeworICAgICAgICAgICAgbGV0IG5vZGVPcmRpbmFsID0gc3RhY2tOb2Rlc1tzdGFja1Rv
cF07CisgICAgICAgICAgICBsZXQgbm9kZUlkZW50aWZpZXIgPSB0aGlzLl9ub2Rlc1sobm9kZU9y
ZGluYWwgKiBub2RlRmllbGRDb3VudCkgKyBub2RlSWRPZmZzZXRdOworICAgICAgICAgICAgbGV0
IGVkZ2VJbmRleCA9IHN0YWNrRWRnZXNbc3RhY2tUb3BdOworCisgICAgICAgICAgICBpZiAodGhp
cy5fZWRnZXNbZWRnZUluZGV4ICsgZWRnZUZyb21JZE9mZnNldF0gPT09IG5vZGVJZGVudGlmaWVy
KSB7CisgICAgICAgICAgICAgICAgLy8gUHJlcGFyZSB0aGUgbmV4dCBjaGlsZCBmb3IgdGhlIGN1
cnJlbnQgbm9kZS4KKyAgICAgICAgICAgICAgICBzdGFja0VkZ2VzW3N0YWNrVG9wXSArPSBlZGdl
RmllbGRDb3VudDsKKworICAgICAgICAgICAgICAgIGxldCB0b0lkZW50aWZpZXIgPSB0aGlzLl9l
ZGdlc1tlZGdlSW5kZXggKyBlZGdlVG9JZE9mZnNldF07CisgICAgICAgICAgICAgICAgbGV0IHRv
Tm9kZU9yZGluYWwgPSB0aGlzLl9ub2RlSWRlbnRpZmllclRvT3JkaW5hbC5nZXQodG9JZGVudGlm
aWVyKTsKKyAgICAgICAgICAgICAgICBpZiAodmlzaXRlZFt0b05vZGVPcmRpbmFsXSkKKyAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICAvLyBDaGlsZC4KKyAg
ICAgICAgICAgICAgICBzdGFja1RvcCsrOworICAgICAgICAgICAgICAgIHN0YWNrTm9kZXNbc3Rh
Y2tUb3BdID0gdG9Ob2RlT3JkaW5hbDsKKyAgICAgICAgICAgICAgICBzdGFja0VkZ2VzW3N0YWNr
VG9wXSA9IHRoaXMuX25vZGVPcmRpbmFsVG9GaXJzdE91dGdvaW5nRWRnZVt0b05vZGVPcmRpbmFs
XTsKKyAgICAgICAgICAgICAgICB2aXNpdGVkW3RvTm9kZU9yZGluYWxdID0gMTsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gU2VsZi4KKyAgICAgICAgICAgICAgICBu
b2RlT3JkaW5hbFRvUG9zdE9yZGVySW5kZXhbbm9kZU9yZGluYWxdID0gcG9zdE9yZGVySW5kZXg7
CisgICAgICAgICAgICAgICAgcG9zdE9yZGVySW5kZXhUb05vZGVPcmRpbmFsW3Bvc3RPcmRlcklu
ZGV4XSA9IG5vZGVPcmRpbmFsOworICAgICAgICAgICAgICAgIHBvc3RPcmRlckluZGV4Kys7Cisg
ICAgICAgICAgICAgICAgc3RhY2tUb3AtLTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIC8vIFVudmlzaXRlZCBub2Rlcy4KKyAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlm
IHRoZSBwYXJlbnQgbm9kZSB3YXMgZGlzYWxsb3dlZCBvbiB0aGUgYmFja2VuZCwgYnV0IG90aGVy
IG5vZGVzCisgICAgICAgIC8vIHRoYXQgd2VyZSBvbmx5IHJlZmVyZW5jZWQgZnJvbSB0aGF0IGRp
c2FsbG93ZWQgbm9kZSB3ZXJlIGV2ZW50dWFsbHkgYWxsb3dlZCBiZWNhdXNlCisgICAgICAgIC8v
IHRoZXkgbWF5IGJlIGdlbmVyaWMgc3lzdGVtIG9iamVjdHMuIEdpdmUgdGhlc2Ugbm9kZXMgYSBw
b3N0T3JkZXJJbmRleCBhbnl3YXlzLgorICAgICAgICBpZiAocG9zdE9yZGVySW5kZXggIT09IHRo
aXMuX25vZGVDb3VudCkgeworICAgICAgICAgICAgLy8gUm9vdCB3YXMgdGhlIGxhc3Qgbm9kZSB2
aXNpdGVkLiBSZXZlcnQgYXNzaWduaW5nIGl0IGFuIGluZGV4LCBhZGQgaXQgYmFjayBhdCB0aGUg
ZW5kLgorICAgICAgICAgICAgcG9zdE9yZGVySW5kZXgtLTsKKworICAgICAgICAgICAgLy8gVmlz
aXQgdW52aXNpdGVkIG5vZGVzLgorICAgICAgICAgICAgZm9yIChsZXQgbm9kZU9yZGluYWwgPSAx
OyBub2RlT3JkaW5hbCA8IHRoaXMuX25vZGVDb3VudDsgKytub2RlT3JkaW5hbCkgeworICAgICAg
ICAgICAgICAgIGlmICh2aXNpdGVkW25vZGVPcmRpbmFsXSkKKyAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICAgICAgbm9kZU9yZGluYWxUb1Bvc3RPcmRlckluZGV4W25v
ZGVPcmRpbmFsXSA9IHBvc3RPcmRlckluZGV4OworICAgICAgICAgICAgICAgIHBvc3RPcmRlcklu
ZGV4VG9Ob2RlT3JkaW5hbFtwb3N0T3JkZXJJbmRleF0gPSBub2RlT3JkaW5hbDsKKyAgICAgICAg
ICAgICAgICBwb3N0T3JkZXJJbmRleCsrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAv
LyBWaXNpdCByb290IGFnYWluLgorICAgICAgICAgICAgbm9kZU9yZGluYWxUb1Bvc3RPcmRlcklu
ZGV4W3Jvb3ROb2RlT3JkaW5hbF0gPSBwb3N0T3JkZXJJbmRleDsKKyAgICAgICAgICAgIHBvc3RP
cmRlckluZGV4VG9Ob2RlT3JkaW5hbFtwb3N0T3JkZXJJbmRleF0gPSByb290Tm9kZU9yZGluYWw7
CisgICAgICAgICAgICBwb3N0T3JkZXJJbmRleCsrOworICAgICAgICB9CisKKyAgICAgICAgY29u
c29sZS5hc3NlcnQocG9zdE9yZGVySW5kZXggPT09IHRoaXMuX25vZGVDb3VudCwgIkFsbCBub2Rl
cyB3ZXJlIHZpc2l0ZWQiKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQobm9kZU9yZGluYWxUb1Bv
c3RPcmRlckluZGV4W3Jvb3ROb2RlT3JkaW5hbF0gPT09IHRoaXMuX25vZGVDb3VudCAtIDEsICJS
b290IG5vZGUgc2hvdWxkIGhhdmUgdGhlIGxhc3QgcG9zc2libGUgcG9zdE9yZGVySW5kZXgiKTsK
KworICAgICAgICByZXR1cm4ge25vZGVPcmRpbmFsVG9Qb3N0T3JkZXJJbmRleCwgcG9zdE9yZGVy
SW5kZXhUb05vZGVPcmRpbmFsfTsKKyAgICB9CisKKyAgICBfYnVpbGREb21pbmF0b3JJbmRleGVz
KG5vZGVPcmRpbmFsVG9Qb3N0T3JkZXJJbmRleCwgcG9zdE9yZGVySW5kZXhUb05vZGVPcmRpbmFs
KQorICAgIHsKKyAgICAgICAgLy8gVGhlIGFsZ29yaXRobSBpcyBiYXNlZCBvbiB0aGUgYXJ0aWNs
ZToKKyAgICAgICAgLy8gSy4gQ29vcGVyLCBULiBIYXJ2ZXkgYW5kIEsuIEtlbm5lZHkgIkEgU2lt
cGxlLCBGYXN0IERvbWluYW5jZSBBbGdvcml0aG0iCisKKyAgICAgICAgbGV0IHJvb3RQb3N0T3Jk
ZXJJbmRleCA9IHRoaXMuX25vZGVDb3VudCAtIDE7CisgICAgICAgIGxldCBub0VudHJ5ID0gdGhp
cy5fbm9kZUNvdW50OworCisgICAgICAgIGxldCBhZmZlY3RlZCA9IG5ldyBVaW50OEFycmF5KHRo
aXMuX25vZGVDb3VudCk7CisgICAgICAgIGxldCBkb21pbmF0b3JzID0gbmV3IFVpbnQzMkFycmF5
KHRoaXMuX25vZGVDb3VudCk7CisKKyAgICAgICAgLy8gSW5pdGlhbGl6ZSB3aXRoIHVuc2V0IHZh
bHVlLgorICAgICAgICBkb21pbmF0b3JzLmZpbGwobm9FbnRyeSk7CisKKyAgICAgICAgLy8gTWFy
ayB0aGUgcm9vdCdzIGRvbWluYXRvciB2YWx1ZS4KKyAgICAgICAgZG9taW5hdG9yc1tyb290UG9z
dE9yZGVySW5kZXhdID0gcm9vdFBvc3RPcmRlckluZGV4OworCisgICAgICAgIC8vIEFmZmVjdCB0
aGUgcm9vdCdzIGNoaWxkcmVuLiBBbHNvIHVzZSB0aGlzIG9wcG9ydHVuaXR5IHRvIG1hcmsgdGhl
bSBhcyBHQyByb290cy4KKyAgICAgICAgbGV0IHJvb3RFZGdlSW5kZXggPSB0aGlzLl9ub2RlT3Jk
aW5hbFRvRmlyc3RPdXRnb2luZ0VkZ2Vbcm9vdE5vZGVPcmRpbmFsXTsKKyAgICAgICAgZm9yIChs
ZXQgZWRnZUluZGV4ID0gcm9vdEVkZ2VJbmRleDsgdGhpcy5fZWRnZXNbZWRnZUluZGV4ICsgZWRn
ZUZyb21JZE9mZnNldF0gPT09IHJvb3ROb2RlSWRlbnRpZmllcjsgZWRnZUluZGV4ICs9IGVkZ2VG
aWVsZENvdW50KSB7CisgICAgICAgICAgICBsZXQgdG9JZGVudGlmaWVyID0gdGhpcy5fZWRnZXNb
ZWRnZUluZGV4ICsgZWRnZVRvSWRPZmZzZXRdOworICAgICAgICAgICAgbGV0IHRvTm9kZU9yZGlu
YWwgPSB0aGlzLl9ub2RlSWRlbnRpZmllclRvT3JkaW5hbC5nZXQodG9JZGVudGlmaWVyKTsKKyAg
ICAgICAgICAgIGxldCB0b1Bvc3RPcmRlckluZGV4ID0gbm9kZU9yZGluYWxUb1Bvc3RPcmRlcklu
ZGV4W3RvTm9kZU9yZGluYWxdOworICAgICAgICAgICAgYWZmZWN0ZWRbdG9Qb3N0T3JkZXJJbmRl
eF0gPSAxOworICAgICAgICAgICAgdGhpcy5fbm9kZU9yZGluYWxJc0dDUm9vdFt0b05vZGVPcmRp
bmFsXSA9IDE7CisgICAgICAgIH0KKworICAgICAgICBsZXQgY2hhbmdlZCA9IHRydWU7CisgICAg
ICAgIHdoaWxlIChjaGFuZ2VkKSB7CisgICAgICAgICAgICBjaGFuZ2VkID0gZmFsc2U7CisKKyAg
ICAgICAgICAgIGZvciAobGV0IHBvc3RPcmRlckluZGV4ID0gcm9vdFBvc3RPcmRlckluZGV4IC0g
MTsgcG9zdE9yZGVySW5kZXggPj0gMDsgLS1wb3N0T3JkZXJJbmRleCkgeworICAgICAgICAgICAg
ICAgIGlmICghYWZmZWN0ZWRbcG9zdE9yZGVySW5kZXhdKQorICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgICAgICBhZmZlY3RlZFtwb3N0T3JkZXJJbmRleF0gPSAwOwor
CisgICAgICAgICAgICAgICAgLy8gVGhlIGRvbWluYXRvciBpcyBhbHJlYWR5IHRoZSByb290LCBu
b3RoaW5nIHRvIGRvLgorICAgICAgICAgICAgICAgIGlmIChkb21pbmF0b3JzW3Bvc3RPcmRlcklu
ZGV4XSA9PT0gcm9vdFBvc3RPcmRlckluZGV4KQorICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICAgICAgICAgIGxldCBuZXdEb21pbmF0b3JJbmRleCA9IG5vRW50cnk7Cisg
ICAgICAgICAgICAgICAgbGV0IG5vZGVPcmRpbmFsID0gcG9zdE9yZGVySW5kZXhUb05vZGVPcmRp
bmFsW3Bvc3RPcmRlckluZGV4XTsKKyAgICAgICAgICAgICAgICBsZXQgaW5jb21pbmdFZGdlSW5k
ZXggPSB0aGlzLl9ub2RlT3JkaW5hbFRvRmlyc3RJbmNvbWluZ0VkZ2Vbbm9kZU9yZGluYWxdOwor
ICAgICAgICAgICAgICAgIGxldCBpbmNvbWluZ0VkZ2VJbmRleEVuZCA9IHRoaXMuX25vZGVPcmRp
bmFsVG9GaXJzdEluY29taW5nRWRnZVtub2RlT3JkaW5hbCArIDFdOworICAgICAgICAgICAgICAg
IGZvciAobGV0IGVkZ2VJbmRleCA9IGluY29taW5nRWRnZUluZGV4OyBlZGdlSW5kZXggPCBpbmNv
bWluZ0VkZ2VJbmRleEVuZDsgKytlZGdlSW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0
IGZyb21Ob2RlT3JkaW5hbCA9IHRoaXMuX2luY29taW5nTm9kZXNbZWRnZUluZGV4XTsKKyAgICAg
ICAgICAgICAgICAgICAgbGV0IGZyb21Qb3N0T3JkZXJJbmRleCA9IG5vZGVPcmRpbmFsVG9Qb3N0
T3JkZXJJbmRleFtmcm9tTm9kZU9yZGluYWxdOworICAgICAgICAgICAgICAgICAgICBpZiAoZG9t
aW5hdG9yc1tmcm9tUG9zdE9yZGVySW5kZXhdICE9PSBub0VudHJ5KSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAobmV3RG9taW5hdG9ySW5kZXggPT09IG5vRW50cnkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmV3RG9taW5hdG9ySW5kZXggPSBmcm9tUG9zdE9yZGVySW5kZXg7
CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3aGlsZSAoZnJvbVBvc3RPcmRlckluZGV4ICE9PSBuZXdEb21pbmF0b3JJbmRleCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoZnJvbVBvc3RPcmRlckluZGV4
IDwgbmV3RG9taW5hdG9ySW5kZXgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmcm9tUG9zdE9yZGVySW5kZXggPSBkb21pbmF0b3JzW2Zyb21Qb3N0T3JkZXJJbmRleF07Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChuZXdEb21pbmF0b3JJbmRleCA8
IGZyb21Qb3N0T3JkZXJJbmRleCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG5ld0RvbWluYXRvckluZGV4ID0gZG9taW5hdG9yc1tuZXdEb21pbmF0b3JJbmRleF07CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChuZXdEb21pbmF0b3JJ
bmRleCA9PT0gcm9vdFBvc3RPcmRlckluZGV4KQorICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gQ2hhbmdlZC4gQWZm
ZWN0IGNoaWxkcmVuLgorICAgICAgICAgICAgICAgIGlmIChuZXdEb21pbmF0b3JJbmRleCAhPT0g
bm9FbnRyeSAmJiBkb21pbmF0b3JzW3Bvc3RPcmRlckluZGV4XSAhPT0gbmV3RG9taW5hdG9ySW5k
ZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgZG9taW5hdG9yc1twb3N0T3JkZXJJbmRleF0gPSBu
ZXdEb21pbmF0b3JJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CisK
KyAgICAgICAgICAgICAgICAgICAgbGV0IG91dGdvaW5nRWRnZUluZGV4ID0gdGhpcy5fbm9kZU9y
ZGluYWxUb0ZpcnN0T3V0Z29pbmdFZGdlW25vZGVPcmRpbmFsXTsKKyAgICAgICAgICAgICAgICAg
ICAgbGV0IG5vZGVJZGVudGlmaWVyID0gdGhpcy5fbm9kZXNbKG5vZGVPcmRpbmFsICogbm9kZUZp
ZWxkQ291bnQpICsgbm9kZUlkT2Zmc2V0XTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQg
ZWRnZUluZGV4ID0gb3V0Z29pbmdFZGdlSW5kZXg7IHRoaXMuX2VkZ2VzW2VkZ2VJbmRleCArIGVk
Z2VGcm9tSWRPZmZzZXRdID09PSBub2RlSWRlbnRpZmllcjsgZWRnZUluZGV4ICs9IGVkZ2VGaWVs
ZENvdW50KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdG9Ob2RlSWRlbnRpZmllciA9
IHRoaXMuX2VkZ2VzW2VkZ2VJbmRleCArIGVkZ2VUb0lkT2Zmc2V0XTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCB0b05vZGVPcmRpbmFsID0gdGhpcy5fbm9kZUlkZW50aWZpZXJUb09yZGlu
YWwuZ2V0KHRvTm9kZUlkZW50aWZpZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRv
Tm9kZVBvc3RPcmRlciA9IG5vZGVPcmRpbmFsVG9Qb3N0T3JkZXJJbmRleFt0b05vZGVPcmRpbmFs
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFmZmVjdGVkW3RvTm9kZVBvc3RPcmRlcl0gPSAx
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcG9zdE9yZGVySW5kZXggPSAwOyBwb3N0
T3JkZXJJbmRleCA8IHRoaXMuX25vZGVDb3VudDsgKytwb3N0T3JkZXJJbmRleCkgeworICAgICAg
ICAgICAgbGV0IG5vZGVPcmRpbmFsID0gcG9zdE9yZGVySW5kZXhUb05vZGVPcmRpbmFsW3Bvc3RP
cmRlckluZGV4XTsKKyAgICAgICAgICAgIGxldCBkb21pbmF0b3JOb2RlT3JkaW5hbCA9IHBvc3RP
cmRlckluZGV4VG9Ob2RlT3JkaW5hbFtkb21pbmF0b3JzW3Bvc3RPcmRlckluZGV4XV07CisgICAg
ICAgICAgICB0aGlzLl9ub2RlT3JkaW5hbFRvRG9taW5hdG9yTm9kZU9yZGluYWxbbm9kZU9yZGlu
YWxdID0gZG9taW5hdG9yTm9kZU9yZGluYWw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfYnVp
bGRSZXRhaW5lZFNpemVzKHBvc3RPcmRlckluZGV4VG9Ob2RlT3JkaW5hbCkKKyAgICB7CisgICAg
ICAgIC8vIFNlbGYgc2l6ZS4KKyAgICAgICAgZm9yIChsZXQgbm9kZUluZGV4ID0gMCwgbm9kZU9y
ZGluYWwgPSAwOyBub2RlT3JkaW5hbCA8IHRoaXMuX25vZGVDb3VudDsgbm9kZUluZGV4ICs9IG5v
ZGVGaWVsZENvdW50LCBub2RlT3JkaW5hbCsrKQorICAgICAgICAgICAgdGhpcy5fbm9kZU9yZGlu
YWxUb1JldGFpbmVkU2l6ZXNbbm9kZU9yZGluYWxdID0gdGhpcy5fbm9kZXNbbm9kZUluZGV4ICsg
bm9kZVNpemVPZmZzZXRdOworCisgICAgICAgIC8vIEF0dHJpYnV0ZSBzaXplIHRvIGRvbWluYXRv
ci4KKyAgICAgICAgZm9yIChsZXQgcG9zdE9yZGVySW5kZXggPSAwOyBwb3N0T3JkZXJJbmRleCA8
IHRoaXMuX25vZGVDb3VudCAtIDE7ICsrcG9zdE9yZGVySW5kZXgpIHsKKyAgICAgICAgICAgIGxl
dCBub2RlT3JkaW5hbCA9IHBvc3RPcmRlckluZGV4VG9Ob2RlT3JkaW5hbFtwb3N0T3JkZXJJbmRl
eF07CisgICAgICAgICAgICBsZXQgbm9kZVJldGFpbmVkU2l6ZSA9IHRoaXMuX25vZGVPcmRpbmFs
VG9SZXRhaW5lZFNpemVzW25vZGVPcmRpbmFsXTsKKyAgICAgICAgICAgIGxldCBkb21pbmF0b3JO
b2RlT3JkaW5hbCA9IHRoaXMuX25vZGVPcmRpbmFsVG9Eb21pbmF0b3JOb2RlT3JkaW5hbFtub2Rl
T3JkaW5hbF07CisgICAgICAgICAgICB0aGlzLl9ub2RlT3JkaW5hbFRvUmV0YWluZWRTaXplc1tk
b21pbmF0b3JOb2RlT3JkaW5hbF0gKz0gbm9kZVJldGFpbmVkU2l6ZTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIF9tYXJrRGVhZE5vZGVzKGNvbGxlY3RlZE5vZGVzTGlzdCkKKyAgICB7CisgICAg
ICAgIGxldCBhZmZlY3RlZCA9IGZhbHNlOworCisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
Y29sbGVjdGVkTm9kZXNMaXN0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBsZXQgbm9kZUlk
ZW50aWZpZXIgPSBjb2xsZWN0ZWROb2Rlc0xpc3RbaV07CisgICAgICAgICAgICBpZiAobm9kZUlk
ZW50aWZpZXIgPiB0aGlzLl9sYXN0Tm9kZUlkZW50aWZpZXIpCisgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICBsZXQgbm9kZU9yZGluYWwgPSB0aGlzLl9ub2RlSWRlbnRpZmll
clRvT3JkaW5hbC5nZXQobm9kZUlkZW50aWZpZXIpOworICAgICAgICAgICAgdGhpcy5fbm9kZU9y
ZGluYWxJc0RlYWRbbm9kZU9yZGluYWxdID0gMTsKKyAgICAgICAgICAgIGFmZmVjdGVkID0gdHJ1
ZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBhZmZlY3RlZDsKKyAgICB9CisKKyAgICBf
aXNOb2RlR2xvYmFsT2JqZWN0KG5vZGVJbmRleCkKKyAgICB7CisgICAgICAgIGxldCBjbGFzc05h
bWUgPSB0aGlzLl9ub2RlQ2xhc3NOYW1lc1RhYmxlW3RoaXMuX25vZGVzW25vZGVJbmRleCArIG5v
ZGVDbGFzc05hbWVPZmZzZXRdXTsKKyAgICAgICAgcmV0dXJuIGNsYXNzTmFtZSA9PT0gIldpbmRv
dyIKKyAgICAgICAgICAgIHx8IGNsYXNzTmFtZSA9PT0gIkpTV2luZG93UHJveHkiCisgICAgICAg
ICAgICB8fCBjbGFzc05hbWUgPT09ICJHbG9iYWxPYmplY3QiOworICAgIH0KKworICAgIF9nY1Jv
b3RQYXRocyhub2RlSWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIGxldCB0YXJnZXROb2RlT3Jk
aW5hbCA9IHRoaXMuX25vZGVJZGVudGlmaWVyVG9PcmRpbmFsLmdldChub2RlSWRlbnRpZmllcik7
CisKKyAgICAgICAgaWYgKHRoaXMuX25vZGVPcmRpbmFsSXNHQ1Jvb3RbdGFyZ2V0Tm9kZU9yZGlu
YWxdKQorICAgICAgICAgICAgcmV0dXJuIFtdOworCisgICAgICAgIC8vIEZJWE1FOiBBcnJheSBw
dXNoL3BvcCBjYW4gYWZmZWN0IHBlcmZvcm1hbmNlIGhlcmUsIGJ1dCBpbiBwcmFjdGljZSBpdCBo
YXNuJ3QgYmVlbiBhbiBpc3N1ZS4KKworICAgICAgICBsZXQgcGF0aHMgPSBbXTsKKyAgICAgICAg
bGV0IGN1cnJlbnRQYXRoID0gW107CisgICAgICAgIGxldCB2aXNpdGVkID0gbmV3IFVpbnQ4QXJy
YXkodGhpcy5fbm9kZUNvdW50KTsKKworICAgICAgICBmdW5jdGlvbiB2aXNpdE5vZGUobm9kZU9y
ZGluYWwpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzLl9ub2RlT3JkaW5hbElzR0NS
b290W25vZGVPcmRpbmFsXSkgeworICAgICAgICAgICAgICAgIGxldCBmdWxsUGF0aCA9IGN1cnJl
bnRQYXRoLnNsaWNlKCk7CisgICAgICAgICAgICAgICAgbGV0IG5vZGVJbmRleCA9IG5vZGVPcmRp
bmFsICogbm9kZUZpZWxkQ291bnQ7CisgICAgICAgICAgICAgICAgZnVsbFBhdGgucHVzaCh7bm9k
ZTogbm9kZUluZGV4fSk7CisgICAgICAgICAgICAgICAgcGF0aHMucHVzaChmdWxsUGF0aCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAo
dmlzaXRlZFtub2RlT3JkaW5hbF0pCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgdmlzaXRlZFtub2RlT3JkaW5hbF0gPSAxOworCisgICAgICAgICAgICBsZXQgbm9kZUluZGV4
ID0gbm9kZU9yZGluYWwgKiBub2RlRmllbGRDb3VudDsKKyAgICAgICAgICAgIGN1cnJlbnRQYXRo
LnB1c2goe25vZGU6IG5vZGVJbmRleH0pOworCisgICAgICAgICAgICAvLyBMb29wIGluIHJldmVy
c2Ugb3JkZXIgYmVjYXVzZSBlZGdlcyB3ZXJlIGFkZGVkIGluIHJldmVyc2Ugb3JkZXIuCisgICAg
ICAgICAgICAvLyBJdCBkb2Vzbid0IHBhcnRpY3VsYXJseSBtYXR0ZXIgb3RoZXIgdGhlbiBjb25z
aXN0ZW5jeSB3aXRoIHByZXZpb3VzIGNvZGUuCisgICAgICAgICAgICBsZXQgaW5jb21pbmdFZGdl
SW5kZXhTdGFydCA9IHRoaXMuX25vZGVPcmRpbmFsVG9GaXJzdEluY29taW5nRWRnZVtub2RlT3Jk
aW5hbF07CisgICAgICAgICAgICBsZXQgaW5jb21pbmdFZGdlSW5kZXhFbmQgPSB0aGlzLl9ub2Rl
T3JkaW5hbFRvRmlyc3RJbmNvbWluZ0VkZ2Vbbm9kZU9yZGluYWwgKyAxXTsKKyAgICAgICAgICAg
IGZvciAobGV0IGluY29taW5nRWRnZUluZGV4ID0gaW5jb21pbmdFZGdlSW5kZXhFbmQgLSAxOyBp
bmNvbWluZ0VkZ2VJbmRleCA+PSBpbmNvbWluZ0VkZ2VJbmRleFN0YXJ0OyAtLWluY29taW5nRWRn
ZUluZGV4KSB7CisgICAgICAgICAgICAgICAgbGV0IGZyb21Ob2RlT3JkaW5hbCA9IHRoaXMuX2lu
Y29taW5nTm9kZXNbaW5jb21pbmdFZGdlSW5kZXhdOworICAgICAgICAgICAgICAgIGxldCBmcm9t
Tm9kZUluZGV4ID0gZnJvbU5vZGVPcmRpbmFsICogbm9kZUZpZWxkQ291bnQ7CisgICAgICAgICAg
ICAgICAgLy8gbGV0IGZyb21Ob2RlSXNJbnRlcm5hbCA9IHRoaXMuX25vZGVzW2Zyb21Ob2RlSW5k
ZXggKyBub2RlSW50ZXJuYWxPZmZzZXRdOworICAgICAgICAgICAgICAgIC8vIGlmIChmcm9tTm9k
ZUlzSW50ZXJuYWwpCisgICAgICAgICAgICAgICAgLy8gICAgIGNvbnRpbnVlOworCisgICAgICAg
ICAgICAgICAgbGV0IGVkZ2VJbmRleCA9IHRoaXMuX2luY29taW5nRWRnZXNbaW5jb21pbmdFZGdl
SW5kZXhdOworICAgICAgICAgICAgICAgIGN1cnJlbnRQYXRoLnB1c2goe2VkZ2U6IGVkZ2VJbmRl
eH0pOworICAgICAgICAgICAgICAgIHZpc2l0Tm9kZS5jYWxsKHRoaXMsIGZyb21Ob2RlT3JkaW5h
bCk7CisgICAgICAgICAgICAgICAgY3VycmVudFBhdGgucG9wKCk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGN1cnJlbnRQYXRoLnBvcCgpOworICAgICAgICB9CisKKyAgICAgICAgdmlz
aXROb2RlLmNhbGwodGhpcywgdGFyZ2V0Tm9kZU9yZGluYWwpOworCisgICAgICAgIHJldHVybiBw
YXRoczsKKyAgICB9Cit9OworCitIZWFwU25hcHNob3REaWZmID0gY2xhc3MgSGVhcFNuYXBzaG90
RGlmZgoreworICAgIGNvbnN0cnVjdG9yKG9iamVjdElkLCBzbmFwc2hvdDEsIHNuYXBzaG90MikK
KyAgICB7CisgICAgICAgIHRoaXMuX29iamVjdElkID0gb2JqZWN0SWQ7CisKKyAgICAgICAgdGhp
cy5fc25hcHNob3QxID0gc25hcHNob3QxOworICAgICAgICB0aGlzLl9zbmFwc2hvdDIgPSBzbmFw
c2hvdDI7CisKKyAgICAgICAgdGhpcy5fdG90YWxTaXplID0gMDsKKyAgICAgICAgdGhpcy5fYWRk
ZWROb2RlSWRlbnRpZmllcnMgPSBuZXcgU2V0OworCisgICAgICAgIGxldCBrbm93biA9IG5ldyBN
YXA7CisgICAgICAgIGZvciAobGV0IG5vZGVJbmRleCA9IDA7IG5vZGVJbmRleCA8IHRoaXMuX3Nu
YXBzaG90MS5fbm9kZXMubGVuZ3RoOyBub2RlSW5kZXggKz0gbm9kZUZpZWxkQ291bnQpIHsKKyAg
ICAgICAgICAgIGxldCBub2RlSWRlbnRpZmllciA9IHRoaXMuX3NuYXBzaG90MS5fbm9kZXNbbm9k
ZUluZGV4ICsgbm9kZUlkT2Zmc2V0XTsKKyAgICAgICAgICAgIGtub3duLnNldChub2RlSWRlbnRp
Zmllciwgbm9kZUluZGV4KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IG5vZGVJbmRl
eCA9IDA7IG5vZGVJbmRleCA8IHRoaXMuX3NuYXBzaG90Mi5fbm9kZXMubGVuZ3RoOyBub2RlSW5k
ZXggKz0gbm9kZUZpZWxkQ291bnQpIHsKKyAgICAgICAgICAgIGxldCBub2RlSWRlbnRpZmllciA9
IHRoaXMuX3NuYXBzaG90Mi5fbm9kZXNbbm9kZUluZGV4ICsgbm9kZUlkT2Zmc2V0XTsKKyAgICAg
ICAgICAgIGxldCBleGlzdGVkID0ga25vd24uZGVsZXRlKG5vZGVJZGVudGlmaWVyKTsKKyAgICAg
ICAgICAgIGlmICghZXhpc3RlZCkgeworICAgICAgICAgICAgICAgIHRoaXMuX2FkZGVkTm9kZUlk
ZW50aWZpZXJzLmFkZChub2RlSWRlbnRpZmllcik7CisgICAgICAgICAgICAgICAgdGhpcy5fdG90
YWxTaXplICs9IHRoaXMuX3NuYXBzaG90Mi5fbm9kZXNbbm9kZUluZGV4ICsgbm9kZVNpemVPZmZz
ZXRdOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbGV0IHtsaXZlU2l6ZSwg
Y2F0ZWdvcmllc30gPSBIZWFwU25hcHNob3QudXBkYXRlQ2F0ZWdvcmllc0FuZE1ldGFkYXRhKHRo
aXMuX3NuYXBzaG90MiwgKG5vZGVJZGVudGlmaWVyKSA9PiB0aGlzLl9hZGRlZE5vZGVJZGVudGlm
aWVycy5oYXMobm9kZUlkZW50aWZpZXIpKTsKKyAgICAgICAgdGhpcy5fY2F0ZWdvcmllcyA9IGNh
dGVnb3JpZXM7CisgICAgfQorCisgICAgLy8gV29ya2VyIE1ldGhvZHMKKworICAgIGFsbG9jYXRp
b25CdWNrZXRDb3VudHMoYnVja2V0U2l6ZXMpCisgICAgeworICAgICAgICByZXR1cm4gSGVhcFNu
YXBzaG90LmFsbG9jYXRpb25CdWNrZXRDb3VudHModGhpcy5fc25hcHNob3QyLCBidWNrZXRTaXpl
cywgKG5vZGVJZGVudGlmaWVyKSA9PiB0aGlzLl9hZGRlZE5vZGVJZGVudGlmaWVycy5oYXMobm9k
ZUlkZW50aWZpZXIpKTsKKyAgICB9CisKKyAgICBpbnN0YW5jZXNXaXRoQ2xhc3NOYW1lKGNsYXNz
TmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBIZWFwU25hcHNob3QuaW5zdGFuY2VzV2l0aENs
YXNzTmFtZSh0aGlzLl9zbmFwc2hvdDIsIGNsYXNzTmFtZSwgKG5vZGVJZGVudGlmaWVyKSA9PiB0
aGlzLl9hZGRlZE5vZGVJZGVudGlmaWVycy5oYXMobm9kZUlkZW50aWZpZXIpKTsKKyAgICB9CisK
KyAgICB1cGRhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEhlYXBTbmFwc2hvdC51cGRhdGVD
YXRlZ29yaWVzQW5kTWV0YWRhdGEodGhpcy5fc25hcHNob3QyLCAobm9kZUlkZW50aWZpZXIpID0+
IHRoaXMuX2FkZGVkTm9kZUlkZW50aWZpZXJzLmhhcyhub2RlSWRlbnRpZmllcikpOworICAgIH0K
KworICAgIG5vZGVXaXRoSWRlbnRpZmllcihub2RlSWRlbnRpZmllcikgeyByZXR1cm4gdGhpcy5f
c25hcHNob3QyLm5vZGVXaXRoSWRlbnRpZmllcihub2RlSWRlbnRpZmllcik7IH0KKyAgICBzaG9y
dGVzdEdDUm9vdFBhdGgobm9kZUlkZW50aWZpZXIpIHsgcmV0dXJuIHRoaXMuX3NuYXBzaG90Mi5z
aG9ydGVzdEdDUm9vdFBhdGgobm9kZUlkZW50aWZpZXIpOyB9CisgICAgZG9taW5hdGVkTm9kZXMo
bm9kZUlkZW50aWZpZXIpIHsgcmV0dXJuIHRoaXMuX3NuYXBzaG90Mi5kb21pbmF0ZWROb2Rlcyhu
b2RlSWRlbnRpZmllcik7IH0KKyAgICByZXRhaW5lZE5vZGVzKG5vZGVJZGVudGlmaWVyKSB7IHJl
dHVybiB0aGlzLl9zbmFwc2hvdDIucmV0YWluZWROb2Rlcyhub2RlSWRlbnRpZmllcik7IH0KKyAg
ICByZXRhaW5lcnMobm9kZUlkZW50aWZpZXIpIHsgcmV0dXJuIHRoaXMuX3NuYXBzaG90Mi5yZXRh
aW5lcnMobm9kZUlkZW50aWZpZXIpOyB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIHNlcmlhbGl6
ZSgpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgc25hcHNob3QxOiB0aGlz
Ll9zbmFwc2hvdDEuc2VyaWFsaXplKCksCisgICAgICAgICAgICBzbmFwc2hvdDI6IHRoaXMuX3Nu
YXBzaG90Mi5zZXJpYWxpemUoKSwKKyAgICAgICAgICAgIHRvdGFsU2l6ZTogdGhpcy5fdG90YWxT
aXplLAorICAgICAgICAgICAgdG90YWxPYmplY3RDb3VudDogdGhpcy5fYWRkZWROb2RlSWRlbnRp
ZmllcnMuc2l6ZSwKKyAgICAgICAgICAgIGNhdGVnb3JpZXM6IHRoaXMuX2NhdGVnb3JpZXMsCisg
ICAgICAgIH07CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0dDSGVhcEluc3BlY3Rvci9z
Y3JpcHQvaW50ZXJmYWNlLmpzIGIvVG9vbHMvR0NIZWFwSW5zcGVjdG9yL3NjcmlwdC9pbnRlcmZh
Y2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjZlNjc5MzA5ZmVjMTZhYWM5YjNiM2U5YmNkZTk1NjZiMDZmODdi
NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0dDSGVhcEluc3BlY3Rvci9zY3JpcHQvaW50ZXJm
YWNlLmpzCkBAIC0wLDAgKzEsNTE1IEBACisKKworLy8gRE9NIEhlbHBlcnMKK2NsYXNzIERPTVV0
aWxzCit7CisgICAgc3RhdGljIHJlbW92ZUFsbENoaWxkcmVuKG5vZGUpCisgICAgeworICAgICAg
ICB3aGlsZSAobm9kZS5sYXN0Q2hpbGQpCisgICAgICAgICAgICAgbm9kZS5yZW1vdmVDaGlsZChu
b2RlLmxhc3RDaGlsZCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVEZXRhaWxzKHN1
bW1hcnlUZXh0KQorICAgIHsKKyAgICAgICAgbGV0IHN1bW1hcnkgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdzdW1tYXJ5Jyk7CisgICAgICAgIHN1bW1hcnkudGV4dENvbnRlbnQgPSBzdW1tYXJ5
VGV4dDsKKyAgICAKKyAgICAgICAgbGV0IGRldGFpbHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkZXRhaWxzJyk7CisgICAgICAgIGRldGFpbHMuYXBwZW5kQ2hpbGQoc3VtbWFyeSk7CisgICAg
ICAgIAorICAgICAgICBkZXRhaWxzLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlv
bihldmVudCkgeworICAgICAgICAgICAgY29uc3QgcmlnaHRBcnJvd0tleUNvZGUgPSAzOTsKKyAg
ICAgICAgICAgIGNvbnN0IGxlZnRBcnJvd0tleUNvZGUgPSAzNzsKKyAgICAgICAgICAgIGlmIChl
dmVudC5rZXlDb2RlID09IHJpZ2h0QXJyb3dLZXlDb2RlKQorICAgICAgICAgICAgICAgIHRoaXMu
b3BlbiA9IHRydWU7CisgICAgICAgICAgICBlbHNlIGlmIChldmVudC5rZXlDb2RlID09IGxlZnRB
cnJvd0tleUNvZGUpCisgICAgICAgICAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7CisgICAgICAg
IH0sIGZhbHNlKTsKKworICAgICAgICByZXR1cm4gZGV0YWlsczsKKyAgICB9Cit9OworCisvLyBI
ZWFwIEluc3BlY3RvciBIZWxwZXJzCitjbGFzcyBIZWFwSW5zcGVjdG9yVXRpbHMKK3sKKyAgICBz
dGF0aWMgaHVtYW5SZWFkYWJsZVNpemUoc2l6ZUluQnl0ZXMpCisgICAgeworICAgICAgICB2YXIg
aSA9IC0xOworICAgICAgICBpZiAoc2l6ZUluQnl0ZXMgPCA1MTIpCisgICAgICAgICAgICByZXR1
cm4gc2l6ZUluQnl0ZXMgKyAnJnRoaW5zcDtCJzsKKyAgICAgICAgdmFyIGJ5dGVVbml0cyA9IFsn
JnRoaW5zcDtLQicsICcmdGhpbnNwO01CJywgJyZ0aGluc3A7R0InXTsKKyAgICAgICAgZG8gewor
ICAgICAgICAgICAgc2l6ZUluQnl0ZXMgPSBzaXplSW5CeXRlcyAvIDEwMjQ7CisgICAgICAgICAg
ICBpKys7CisgICAgICAgIH0gd2hpbGUgKHNpemVJbkJ5dGVzID4gMTAyNCk7CisKKyAgICAgICAg
cmV0dXJuIE1hdGgubWF4KHNpemVJbkJ5dGVzLCAwLjEpLnRvRml4ZWQoMSkgKyBieXRlVW5pdHNb
aV07CisgICAgfQorCisgICAgc3RhdGljIGFkZHJlc3NGb3JOb2RlKG5vZGUpCisgICAgeworICAg
ICAgICByZXR1cm4gbm9kZS53cmFwcGVkQWRkcmVzcyA/IG5vZGUud3JhcHBlZEFkZHJlc3MgOiBu
b2RlLmFkZHJlc3M7CisgICAgfQorCisgICAgc3RhdGljIG5vZGVOYW1lKHNuYXBzaG90LCBub2Rl
KQorICAgIHsKKyAgICAgICAgaWYgKG5vZGUudHlwZSA9PSAiSW50ZXJuYWwiKQorICAgICAgICAg
ICAgcmV0dXJuICdJbnRlcm5hbCBub2RlJzsKKworICAgICAgICBsZXQgcmVzdWx0ID0gbm9kZS5j
bGFzc05hbWUgKyAnIEAnICsgbm9kZS5pZCArICcgKCcgKyBIZWFwSW5zcGVjdG9yVXRpbHMuYWRk
cmVzc0Zvck5vZGUobm9kZSkgKyAnICcgKyBub2RlLmxhYmVsICsgJyknOworICAgICAgICBpZiAo
bm9kZS5nY1Jvb3QgfHwgbm9kZS5tYXJrZWRSb290KQorICAgICAgICAgICAgcmVzdWx0ICs9ICcg
KEdDIHJvb3TigJQnICsgc25hcHNob3QucmVhc29uTmFtZXNGb3JSb290KG5vZGUuaWQpLmpvaW4o
JywgJykgKyAnKSc7CisgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAg
c3RhdGljIHNwYW5Gb3JOb2RlKGluc3BlY3Rvciwgbm9kZSwgc2hvd1BhdGhCdXR0b24pCisgICAg
eworICAgICAgICBsZXQgbm9kZVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7
CisKKyAgICAgICAgaWYgKG5vZGUudHlwZSA9PSAiSW50ZXJuYWwiKSB7CisgICAgICAgICAgICBu
b2RlU3Bhbi50ZXh0Q29udGVudCA9ICdJbnRlcm5hbCBub2RlJzsKKyAgICAgICAgICAgIHJldHVy
biBub2RlU3BhbjsKKyAgICAgICAgfQorCisgICAgICAgIGxldCB3cmFwcGVkQWRkcmVzc1N0cmlu
ZyA9IG5vZGUud3JhcHBlZEFkZHJlc3MgPyBgd3JhcHBlZCAke25vZGUud3JhcHBlZEFkZHJlc3N9
YCA6ICcnOworCisgICAgICAgIGxldCBub2RlSFRNTCA9IG5vZGUuY2xhc3NOYW1lICsgYCA8c3Bh
biBjbGFzcz0ibm9kZS1pZCI+JHtub2RlLmlkfTwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5vZGUtYWRk
cmVzcyI+Y2VsbCAke25vZGUuYWRkcmVzc30gJHt3cmFwcGVkQWRkcmVzc1N0cmluZ308L3NwYW4+
IDxzcGFuIGNsYXNzPSJub2RlLXNpemUiPihyZXRhaW5zICR7SGVhcEluc3BlY3RvclV0aWxzLmh1
bWFuUmVhZGFibGVTaXplKG5vZGUucmV0YWluZWRTaXplKX0pPC9zcGFuPmA7CisgICAgCisgICAg
ICAgIGlmIChub2RlLmxhYmVsLmxlbmd0aCkKKyAgICAgICAgICAgIG5vZGVIVE1MICs9IGAgPHNw
YW4gY2xhc3M9Im5vZGUtbGFiZWwiPuKAnCR7bm9kZS5sYWJlbH3igJ08L3NwYW4+YDsKKyAgICAK
KyAgICAgICAgbm9kZVNwYW4uaW5uZXJIVE1MID0gbm9kZUhUTUw7CisKKyAgICAgICAgaWYgKG5v
ZGUuZ2NSb290IHx8IG5vZGUubWFya2VkUm9vdCkgeworICAgICAgICAgICAgbGV0IGdjUm9vdFNw
YW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAgICAgICAgICBnY1Jvb3RT
cGFuLmNsYXNzTmFtZSA9ICdub2RlLWdjLXJvb3QnOworICAgICAgICAgICAgZ2NSb290U3Bhbi50
ZXh0Q29udGVudCA9ICcgKEdDIHJvb3TigJQnICsgaW5zcGVjdG9yLnNuYXBzaG90LnJlYXNvbk5h
bWVzRm9yUm9vdChub2RlLmlkKS5qb2luKCcsICcpICsgJyknOworICAgICAgICAgICAgbm9kZVNw
YW4uYXBwZW5kQ2hpbGQoZ2NSb290U3Bhbik7CisgICAgICAgIH0gZWxzZSBpZiAoc2hvd1BhdGhC
dXR0b24pIHsKKyAgICAgICAgICAgIGxldCBzaG93QWxsUGF0aHNBbmNob3IgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdidXR0b24nKTsKKyAgICAgICAgICAgIHNob3dBbGxQYXRoc0FuY2hvci5j
bGFzc05hbWUgPSAnbm9kZS1zaG93LWFsbC1wYXRocyc7CisgICAgICAgICAgICBzaG93QWxsUGF0
aHNBbmNob3IudGV4dENvbnRlbnQgPSAnU2hvdyBhbGwgcGF0aHMnOworICAgICAgICAgICAgc2hv
d0FsbFBhdGhzQW5jaG9yLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgICAgIGluc3BlY3Rvci5zaG93QWxsUGF0aHNUb05vZGUobm9kZSk7CisgICAg
ICAgICAgICB9LCBmYWxzZSk7CisgICAgICAgICAgICBub2RlU3Bhbi5hcHBlbmRDaGlsZChzaG93
QWxsUGF0aHNBbmNob3IpOworICAgICAgICB9CisgICAgCisgICAgICAgIHJldHVybiBub2RlU3Bh
bjsKKyAgICB9CisKKyAgICBzdGF0aWMgc3BhbkZvckVkZ2Uoc25hcHNob3QsIGVkZ2UpCisgICAg
eworICAgICAgICBsZXQgZWRnZVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7
CisgICAgICAgIGVkZ2VTcGFuLmNsYXNzTmFtZSA9ICdlZGdlJzsKKyAgICAgICAgZWRnZVNwYW4u
aW5uZXJIVE1MID0gJzxzcGFuIGNsYXNzPSJlZGdlLXR5cGUiPicgKyBlZGdlLnR5cGUgKyAnPC9z
cGFuPiA8c3BhbiBjbGFzcz0iZWRnZS1kYXRhIj4nICsgZWRnZS5kYXRhICsgJzwvc3Bhbj4nOwor
ICAgICAgICByZXR1cm4gZWRnZVNwYW47CisgICAgfQorCisgICAgc3RhdGljIHN1bW1hcnlTcGFu
Rm9yUGF0aChpbnNwZWN0b3IsIHBhdGgpCisgICAgeworICAgICAgICBsZXQgcGF0aFNwYW4gPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAgICAgIHBhdGhTcGFuLmNsYXNzTmFt
ZSA9ICdwYXRoLXN1bW1hcnknOworICAgIAorICAgICAgICBpZiAocGF0aC5sZW5ndGggPiAwKSB7
CisgICAgICAgICAgICBsZXQgcGF0aExlbmd0aCA9IChwYXRoLmxlbmd0aCAtIDEpIC8gMjsKKyAg
ICAgICAgICAgIHBhdGhTcGFuLnRleHRDb250ZW50ID0gcGF0aExlbmd0aCArICcgc3RlcCcgKyAo
cGF0aExlbmd0aCA+IDEgPyAncycgOiAnJykgKyAnIGZyb20gJzsKKyAgICAgICAgICAgIHBhdGhT
cGFuLmFwcGVuZENoaWxkKEhlYXBJbnNwZWN0b3JVdGlscy5zcGFuRm9yTm9kZShpbnNwZWN0b3Is
IHBhdGhbMF0pLCB0cnVlKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBwYXRoU3BhbjsK
KyAgICB9CisKKyAgICBzdGF0aWMgZWRnZU5hbWUoZWRnZSkKKyAgICB7CisgICAgICAgIHJldHVy
biAn4oeSICcgKyBlZGdlLnR5cGUgKyAnICcgKyBlZGdlLmRhdGEgKyAnIOKHkic7CisgICAgfQor
fTsKKworCisvLyBNYW5hZ2VzIGEgbGlzdCBvZiBoZWFwIHNuYXBzaG90IG5vZGVzIHRoYXQgY2Fu
IGR5bmFtaWNhbGx5IGJ1aWxkIHRoZSBjb250ZW50cyBvZiBhbiBIVE1MTGlzdEVsZW1lbnQuCitj
bGFzcyBJbnN0YW5jZUxpc3QKK3sKKyAgICBjb25zdHJ1Y3RvcihsaXN0RWxlbWVudCwgc25hcHNo
b3QsIGxpc3RHZW5lcmF0b3JGdW5jKQorICAgIHsKKyAgICAgICAgdGhpcy5saXN0RWxlbWVudCA9
IGxpc3RFbGVtZW50OworICAgICAgICB0aGlzLnNuYXBzaG90ID0gc25hcHNob3Q7CisgICAgICAg
IHRoaXMubm9kZUxpc3QgPSBsaXN0R2VuZXJhdG9yRnVuYyh0aGlzLnNuYXBzaG90KTsKKyAgICAg
ICAgdGhpcy5lbnRyaWVzQWRkZWQgPSAwOworICAgICAgICB0aGlzLmluaXRpYWxFbnRyaWVzID0g
MTAwOworICAgICAgICB0aGlzLmVudHJpZXNRdWFudHVtID0gNTA7CisgICAgICAgIHRoaXMuc2hv
d01vcmVJdGVtID0gdW5kZWZpbmVkOworICAgIH0KKyAgICAKKyAgICBidWlsZExpc3QoKQorICAg
IHsKKyAgICAgICAgRE9NVXRpbHMucmVtb3ZlQWxsQ2hpbGRyZW4odGhpcy5saXN0RWxlbWVudCk7
CisgICAgICAgIGlmICh0aGlzLm5vZGVMaXN0Lmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGxldCBtYXhJbmRleCA9IE1hdGgubWluKHRoaXMubm9kZUxpc3QubGVu
Z3RoLCB0aGlzLmluaXRpYWxFbnRyaWVzKTsKKyAgICAgICAgdGhpcy5hcHBlbmRJdGVtc0ZvclJh
bmdlKDAsIG1heEluZGV4KTsKKyAgICAgICAgCisgICAgICAgIGlmIChtYXhJbmRleCA8IHRoaXMu
bm9kZUxpc3QubGVuZ3RoKSB7CisgICAgICAgICAgICB0aGlzLnNob3dNb3JlSXRlbSA9IHRoaXMu
bWFrZVNob3dNb3JlSXRlbSgpOworICAgICAgICAgICAgdGhpcy5saXN0RWxlbWVudC5hcHBlbmRD
aGlsZCh0aGlzLnNob3dNb3JlSXRlbSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRo
aXMuZW50cmllc0FkZGVkID0gbWF4SW5kZXg7CisgICAgfQorICAgIAorICAgIGFwcGVuZEl0ZW1z
Rm9yUmFuZ2Uoc3RhcnRJbmRleCwgZW5kSW5kZXgpCisgICAgeworICAgICAgICBmb3IgKGxldCBp
bmRleCA9IHN0YXJ0SW5kZXg7IGluZGV4IDwgZW5kSW5kZXg7ICsraW5kZXgpIHsKKyAgICAgICAg
ICAgIGxldCBpbnN0YW5jZSA9IHRoaXMubm9kZUxpc3RbaW5kZXhdOworICAgICAgICAgICAgbGV0
IGxpc3RJdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKKyAgICAgICAgICAgIGxp
c3RJdGVtLmFwcGVuZENoaWxkKEhlYXBJbnNwZWN0b3JVdGlscy5zcGFuRm9yTm9kZSh0aGlzLCBp
bnN0YW5jZSwgdHJ1ZSkpOworICAgICAgICAgICAgdGhpcy5saXN0RWxlbWVudC5hcHBlbmRDaGls
ZChsaXN0SXRlbSk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmVudHJpZXNBZGRlZCA9IGVu
ZEluZGV4OworICAgIH0KKyAgICAKKyAgICBhcHBlbmRNb3JlRW50cmllcygpCisgICAgeworICAg
ICAgICBsZXQgbnVtUmVtYWluaW5nID0gdGhpcy5ub2RlTGlzdC5sZW5ndGggLSB0aGlzLmVudHJp
ZXNBZGRlZDsKKyAgICAgICAgaWYgKG51bVJlbWFpbmluZyA9PSAwKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIHRoaXMuc2hvd01vcmVJdGVtLnJlbW92ZSgpOworCisgICAgICAgIGxl
dCBmcm9tSW5kZXggPSB0aGlzLmVudHJpZXNBZGRlZDsKKyAgICAgICAgbGV0IHRvSW5kZXggPSBN
YXRoLm1pbih0aGlzLm5vZGVMaXN0Lmxlbmd0aCwgZnJvbUluZGV4ICsgdGhpcy5lbnRyaWVzUXVh
bnR1bSk7CisgICAgICAgIHRoaXMuYXBwZW5kSXRlbXNGb3JSYW5nZShmcm9tSW5kZXgsIHRvSW5k
ZXgpOworICAgICAgICAKKyAgICAgICAgaWYgKHRvSW5kZXggPCB0aGlzLm5vZGVMaXN0Lmxlbmd0
aCkgeworICAgICAgICAgICAgdGhpcy5zaG93TW9yZUl0ZW0gPSB0aGlzLm1ha2VTaG93TW9yZUl0
ZW0oKTsKKyAgICAgICAgICAgIHRoaXMubGlzdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5zaG93
TW9yZUl0ZW0pOworICAgICAgICB9CisgICAgfQorCisgICAgbWFrZVNob3dNb3JlSXRlbSgpCisg
ICAgeworICAgICAgICBsZXQgbnVtYmVyUmVtYWluaW5nID0gdGhpcy5ub2RlTGlzdC5sZW5ndGgg
LSB0aGlzLmVudHJpZXNBZGRlZDsKKyAgICAgICAgCisgICAgICAgIGxldCBsaXN0SXRlbSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CisgICAgICAgIGxpc3RJdGVtLmNsYXNzTmFtZSA9
ICdzaG93LW1vcmUnOworICAgICAgICBsaXN0SXRlbS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZShgJHtudW1iZXJSZW1haW5pbmd9IG1vcmUgYCkpOworCisgICAgICAgIGxldCBt
b3JlQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CisgICAgICAgIG1v
cmVCdXR0b24udGV4dENvbnRlbnQgPSBgU2hvdyAke01hdGgubWluKHRoaXMuZW50cmllc1F1YW50
dW0sIG51bWJlclJlbWFpbmluZyl9IG1vcmVgOworCisgICAgICAgIGxldCB0aGlzTGlzdCA9IHRo
aXM7CisgICAgICAgIG1vcmVCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlv
bihlKSB7CisgICAgICAgICAgICB0aGlzTGlzdC5hcHBlbmRNb3JlRW50cmllcygxMCk7CisgICAg
ICAgIH0sIGZhbHNlKTsKKyAgICAgICAgCisgICAgICAgIGxpc3RJdGVtLmFwcGVuZENoaWxkKG1v
cmVCdXR0b24pOworICAgICAgICByZXR1cm4gbGlzdEl0ZW07CisgICAgfQorfTsKKworCitjbGFz
cyBIZWFwU25hcHNob3RJbnNwZWN0b3IKK3sKKyAgICBjb25zdHJ1Y3Rvcihjb250YWluZXJFbGVt
ZW50LCBoZWFwSlNPTkRhdGEsIGZpbGVuYW1lKQorICAgIHsKKyAgICAgICAgdGhpcy5jb250YWlu
ZXJFbGVtZW50ID0gY29udGFpbmVyRWxlbWVudDsKKyAgICAgICAgdGhpcy5yZXNldFVJKCk7CisK
KyAgICAgICAgdGhpcy5zbmFwc2hvdCA9IG5ldyBIZWFwU25hcHNob3QoMSwgaGVhcEpTT05EYXRh
LCBmaWxlbmFtZSk7CisgICAgICAgIAorICAgICAgICB0aGlzLmJ1aWxkUm9vdHMoKTsKKyAgICAg
ICAgdGhpcy5idWlsZEFsbE9iamVjdHNCeVR5cGUoKTsKKworICAgICAgICB0aGlzLmJ1aWxkUGF0
aHNUb1Jvb3RzT2ZUeXBlKCdXaW5kb3cnKTsKKyAgICAgICAgdGhpcy5idWlsZFBhdGhzVG9Sb290
c09mVHlwZSgnSFRNTERvY3VtZW50Jyk7CisgICAgfQorICAgIAorICAgIHJlc2V0VUkoKQorICAg
IHsKKyAgICAgICAgRE9NVXRpbHMucmVtb3ZlQWxsQ2hpbGRyZW4odGhpcy5jb250YWluZXJFbGVt
ZW50KTsKKyAgICAgICAgCisgICAgICAgIHRoaXMub2JqZWN0QnlUeXBlQ29udGFpbmVyID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnc2VjdGlvbicpOworICAgICAgICB0aGlzLm9iamVjdEJ5VHlw
ZUNvbnRhaW5lci5pZCA9ICdhbGwtb2JqZWN0cy1ieS10eXBlJzsKKworICAgICAgICBsZXQgaGVh
ZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaDEnKTsKKyAgICAgICAgaGVhZGVyLnRleHRD
b250ZW50ID0gJ0FsbCBPYmplY3RzIGJ5IFR5cGUnCisgICAgICAgIHRoaXMub2JqZWN0QnlUeXBl
Q29udGFpbmVyLmFwcGVuZENoaWxkKGhlYWRlcik7CisgICAgICAgIAorICAgICAgICB0aGlzLnJv
b3RzQ29udGFpbmVyID0gIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlY3Rpb24nKTsKKyAgICAg
ICAgdGhpcy5yb290c0NvbnRhaW5lci5pZCA9ICdyb290cyc7CisgICAgICAgIGhlYWRlciA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gxJyk7CisgICAgICAgIGhlYWRlci50ZXh0Q29udGVudCA9
ICdSb290cycKKyAgICAgICAgdGhpcy5yb290c0NvbnRhaW5lci5hcHBlbmRDaGlsZChoZWFkZXIp
OworCisgICAgICAgIHRoaXMucGF0aHNUb1Jvb3RzQ29udGFpbmVyID0gIGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ3NlY3Rpb24nKTsKKyAgICAgICAgdGhpcy5wYXRoc1RvUm9vdHNDb250YWluZXIu
aWQgPSAncGF0aHMtdG8tcm9vdHMnOworICAgICAgICBoZWFkZXIgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdoMScpOworICAgICAgICBoZWFkZXIudGV4dENvbnRlbnQgPSAnUGF0aHMgdG8gcm9v
dHMnCisgICAgICAgIHRoaXMucGF0aHNUb1Jvb3RzQ29udGFpbmVyLmFwcGVuZENoaWxkKGhlYWRl
cik7CisKKyAgICAgICAgdGhpcy5hbGxQYXRoc0NvbnRhaW5lciA9ICBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdzZWN0aW9uJyk7CisgICAgICAgIHRoaXMuYWxsUGF0aHNDb250YWluZXIuaWQgPSAn
YWxsLXBhdGhzJzsKKyAgICAgICAgaGVhZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaDEn
KTsKKyAgICAgICAgaGVhZGVyLnRleHRDb250ZW50ID0gJ0FsbCBwYXRocyB0b+KApicKKyAgICAg
ICAgdGhpcy5hbGxQYXRoc0NvbnRhaW5lci5hcHBlbmRDaGlsZChoZWFkZXIpOworCisgICAgICAg
IHRoaXMuY29udGFpbmVyRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnBhdGhzVG9Sb290c0NvbnRh
aW5lcik7CisgICAgICAgIHRoaXMuY29udGFpbmVyRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmFs
bFBhdGhzQ29udGFpbmVyKTsKKyAgICAgICAgdGhpcy5jb250YWluZXJFbGVtZW50LmFwcGVuZENo
aWxkKHRoaXMucm9vdHNDb250YWluZXIpOworICAgICAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQu
YXBwZW5kQ2hpbGQodGhpcy5vYmplY3RCeVR5cGVDb250YWluZXIpOworICAgIH0KKworICAgIGJ1
aWxkQWxsT2JqZWN0c0J5VHlwZSgpCisgICAgeworICAgICAgICBsZXQgY2F0ZWdvcmllcyA9IHRo
aXMuc25hcHNob3QuX2NhdGVnb3JpZXM7CisgICAgICAgIGxldCBjYXRlZ29yeU5hbWVzID0gT2Jq
ZWN0LmtleXMoY2F0ZWdvcmllcykuc29ydCgpOworICAgIAorICAgICAgICBmb3IgKHZhciBjYXRl
Z29yeU5hbWUgb2YgY2F0ZWdvcnlOYW1lcykgeworICAgICAgICAgICAgbGV0IGNhdGVnb3J5ID0g
Y2F0ZWdvcmllc1tjYXRlZ29yeU5hbWVdOworCisgICAgICAgICAgICBsZXQgZGV0YWlscyA9IERP
TVV0aWxzLmNyZWF0ZURldGFpbHMoYCR7Y2F0ZWdvcnkuY2xhc3NOYW1lfSAoJHtjYXRlZ29yeS5j
b3VudH0pYCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxldCBpbnN0YW5jZUxpc3RFbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndWwnKTsKKyAgICAgICAgICAgIGluc3RhbmNl
TGlzdEVsZW1lbnQuY2xhc3NOYW1lID0gJ2luc3RhbmNlLWxpc3QnOworICAgICAgICAgICAgCisg
ICAgICAgICAgICBsZXQgaW5zdGFuY2VMaXN0ID0gbmV3IEluc3RhbmNlTGlzdChpbnN0YW5jZUxp
c3RFbGVtZW50LCB0aGlzLnNuYXBzaG90LCBmdW5jdGlvbihzbmFwc2hvdCkgeworICAgICAgICAg
ICAgICAgIHJldHVybiBIZWFwU25hcHNob3QuaW5zdGFuY2VzV2l0aENsYXNzTmFtZShzbmFwc2hv
dCwgY2F0ZWdvcnlOYW1lKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBpbnN0YW5jZUxpc3QuYnVpbGRMaXN0KCk7CisKKyAgICAgICAgICAgIGRldGFpbHMuYXBw
ZW5kQ2hpbGQoaW5zdGFuY2VMaXN0RWxlbWVudCk7CisgICAgICAgICAgICB0aGlzLm9iamVjdEJ5
VHlwZUNvbnRhaW5lci5hcHBlbmRDaGlsZChkZXRhaWxzKTsKKyAgICAgICAgfQorICAgIH0KKyAg
ICAKKyAgICBidWlsZFJvb3RzKCkKKyAgICB7CisgICAgICAgIGxldCByb290cyA9IHRoaXMuc25h
cHNob3Qucm9vdE5vZGVzKCk7CisgICAgICAgIGlmIChyb290cy5sZW5ndGggPT0gMCkKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBsZXQgZ3JvdXBpbmdzID0gcm9vdHMucmVkdWNlKGZ1
bmN0aW9uKGFjY3VtdWxhdG9yLCBub2RlKSB7CisgICAgICAgICAgICB2YXIga2V5ID0gbm9kZS5j
bGFzc05hbWU7CisgICAgICAgICAgICAgICAgaWYgKCFhY2N1bXVsYXRvcltrZXldKSB7CisgICAg
ICAgICAgICAgICAgICBhY2N1bXVsYXRvcltrZXldID0gW107CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIGFjY3VtdWxhdG9yW2tleV0ucHVzaChub2RlKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gYWNjdW11bGF0b3I7ICAgICAgICAKKyAgICAgICAgfSwge30pOworICAgIAor
ICAgICAgICBsZXQgcm9vdE5hbWVzID0gT2JqZWN0LmtleXMoZ3JvdXBpbmdzKS5zb3J0KCk7Cisg
ICAgCisgICAgICAgIGZvciAodmFyIHJvb3RDbGFzc05hbWUgb2Ygcm9vdE5hbWVzKSB7CisgICAg
ICAgICAgICBsZXQgcm9vdHNPZlR5cGUgPSBncm91cGluZ3Nbcm9vdENsYXNzTmFtZV07CisgICAg
ICAgIAorICAgICAgICAgICAgcm9vdHNPZlR5cGUuc29ydChmdW5jdGlvbihhLCBiKSB7CisgICAg
ICAgICAgICAgICAgbGV0IGFkZHJlc3NBID0gSGVhcEluc3BlY3RvclV0aWxzLmFkZHJlc3NGb3JO
b2RlKGEpOworICAgICAgICAgICAgICAgIGxldCBhZGRyZXNzQiA9IEhlYXBJbnNwZWN0b3JVdGls
cy5hZGRyZXNzRm9yTm9kZShiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKGFkZHJlc3NBIDwg
YWRkcmVzc0IpID8gLTEgOiAoYWRkcmVzc0EgPiBhZGRyZXNzQikgPyAxIDogMDsKKyAgICAgICAg
ICAgIH0pCisKKyAgICAgICAgICAgIGxldCBkZXRhaWxzID0gRE9NVXRpbHMuY3JlYXRlRGV0YWls
cyhgJHtyb290Q2xhc3NOYW1lfSAoJHtyb290c09mVHlwZS5sZW5ndGh9KWApOworICAgICAgICAg
ICAgbGV0IHJvb3RzVHlwZUxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd1bCcpCisgICAg
ICAgICAgICByb290c1R5cGVMaXN0LmNsYXNzTmFtZSA9ICdpbnN0YW5jZS1saXN0JzsKKworICAg
ICAgICAgICAgZm9yIChsZXQgcm9vdCBvZiByb290c09mVHlwZSkgeworICAgICAgICAgICAgICAg
IGxldCByb290TGlzdEl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOworICAgICAg
ICAgICAgICAgIHJvb3RMaXN0SXRlbS5hcHBlbmRDaGlsZChIZWFwSW5zcGVjdG9yVXRpbHMuc3Bh
bkZvck5vZGUodGhpcywgcm9vdCwgdHJ1ZSkpOworICAgICAgICAgICAgICAgIHJvb3RzVHlwZUxp
c3QuYXBwZW5kQ2hpbGQocm9vdExpc3RJdGVtKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgZGV0YWlscy5hcHBlbmRDaGlsZChyb290c1R5cGVMaXN0KTsKKworICAgICAgICAgICAgdGhp
cy5yb290c0NvbnRhaW5lci5hcHBlbmRDaGlsZChkZXRhaWxzKTsKKyAgICAgICAgfQorICAgIH0K
KyAgICAKKyAgICBidWlsZFBhdGhzVG9Sb290c09mVHlwZSh0eXBlKQorICAgIHsKKyAgICAgICAg
bGV0IGluc3RhbmNlcyA9IEhlYXBTbmFwc2hvdC5pbnN0YW5jZXNXaXRoQ2xhc3NOYW1lKHRoaXMu
c25hcHNob3QsIHR5cGUpOworICAgICAgICBpZiAoaW5zdGFuY2VzLmxlbmd0aCA9PSAwKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxldCBoZWFkZXIgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdoMicpOworICAgICAgICBoZWFkZXIudGV4dENvbnRlbnQgPSAnU2hvcnRlc3QgcGF0
aHMgdG8gYWxsICcgKyB0eXBlICsgJ3MnOworICAgIAorICAgICAgICBsZXQgZGV0YWlsc0NvbnRh
aW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlY3Rpb24nKQorICAgICAgICBkZXRhaWxz
Q29udGFpbmVyLmNsYXNzTmFtZSA9ICdwYXRoJzsKKworICAgICAgICBmb3IgKHZhciBpbnN0YW5j
ZSBvZiBpbnN0YW5jZXMpIHsKKyAgICAgICAgICAgIGxldCBzaG9ydGVzdFBhdGggPSB0aGlzLnNu
YXBzaG90LnNob3J0ZXN0R0NSb290UGF0aChpbnN0YW5jZS5pZCkucmV2ZXJzZSgpOworCisgICAg
ICAgICAgICBsZXQgZGV0YWlscyA9IERPTVV0aWxzLmNyZWF0ZURldGFpbHMoJycpOworICAgICAg
ICAgICAgbGV0IHN1bW1hcnkgPSBkZXRhaWxzLmZpcnN0Q2hpbGQ7CisgICAgICAgICAgICBzdW1t
YXJ5LmFwcGVuZENoaWxkKEhlYXBJbnNwZWN0b3JVdGlscy5zcGFuRm9yTm9kZSh0aGlzLCBpbnN0
YW5jZSwgdHJ1ZSkpOworICAgICAgICAgICAgc3VtbWFyeS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgn4oCUJykpOworICAgICAgICAgICAgc3VtbWFyeS5hcHBlbmRDaGlsZChI
ZWFwSW5zcGVjdG9yVXRpbHMuc3VtbWFyeVNwYW5Gb3JQYXRoKHRoaXMsIHNob3J0ZXN0UGF0aCkp
OworCisgICAgICAgICAgICBsZXQgcGF0aExpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd1
bCcpOworICAgICAgICAgICAgcGF0aExpc3QuY2xhc3NOYW1lID0gJ3BhdGgnOworCisgICAgICAg
ICAgICBsZXQgaXNOb2RlID0gdHJ1ZTsKKyAgICAgICAgICAgIGxldCBjdXJySXRlbSA9IHVuZGVm
aW5lZDsKKyAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2Ygc2hvcnRlc3RQYXRoKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGlzTm9kZSkgeworICAgICAgICAgICAgICAgICAgICBjdXJySXRlbSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CisgICAgICAgICAgICAgICAgICAgIGN1cnJJ
dGVtLmFwcGVuZENoaWxkKEhlYXBJbnNwZWN0b3JVdGlscy5zcGFuRm9yTm9kZSh0aGlzLCBpdGVt
KSk7CisgICAgICAgICAgICAgICAgICAgIHBhdGhMaXN0LmFwcGVuZENoaWxkKGN1cnJJdGVtKTsK
KyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjdXJySXRlbS5h
cHBlbmRDaGlsZChIZWFwSW5zcGVjdG9yVXRpbHMuc3BhbkZvckVkZ2UodGhpcy5zbmFwc2hvdCwg
aXRlbSkpOworICAgICAgICAgICAgICAgICAgICBjdXJySXRlbSA9IHVuZGVmaW5lZDsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaXNOb2RlID0gIWlzTm9kZTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBkZXRhaWxzLmFwcGVuZENoaWxkKHBhdGhMaXN0
KTsKKyAgICAgICAgICAgIGRldGFpbHNDb250YWluZXIuYXBwZW5kQ2hpbGQoZGV0YWlscyk7Cisg
ICAgICAgIH0KKworICAgICAgICB0aGlzLnBhdGhzVG9Sb290c0NvbnRhaW5lci5hcHBlbmRDaGls
ZChoZWFkZXIpOworICAgICAgICB0aGlzLnBhdGhzVG9Sb290c0NvbnRhaW5lci5hcHBlbmRDaGls
ZChkZXRhaWxzQ29udGFpbmVyKTsKKyAgICB9CisKKyAgICBzaG93QWxsUGF0aHNUb05vZGUobm9k
ZSkKKyAgICB7CisgICAgICAgIGxldCBwYXRocyA9IHRoaXMuc25hcHNob3QuX2djUm9vdFBhdGhz
KG5vZGUuaWQpOworICAgIAorICAgICAgICBsZXQgZGV0YWlscyA9IERPTVV0aWxzLmNyZWF0ZURl
dGFpbHMoJycpOworICAgICAgICBsZXQgc3VtbWFyeSA9IGRldGFpbHMuZmlyc3RDaGlsZDsKKyAg
ICAgICAgc3VtbWFyeS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShgJHtwYXRo
cy5sZW5ndGh9IHBhdGgke3BhdGhzLmxlbmd0aCA+IDEgPyAncycgOiAnJ30gdG8gYCkpOworICAg
ICAgICBzdW1tYXJ5LmFwcGVuZENoaWxkKEhlYXBJbnNwZWN0b3JVdGlscy5zcGFuRm9yTm9kZSh0
aGlzLCBub2RlLCBmYWxzZSkpOworCisgICAgICAgIGxldCBkZXRhaWxzQ29udGFpbmVyID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnc2VjdGlvbicpCisgICAgICAgIGRldGFpbHNDb250YWluZXIu
Y2xhc3NOYW1lID0gJ3BhdGgnOworICAgIAorICAgICAgICBmb3IgKGxldCBwYXRoIG9mIHBhdGhz
KSB7CisgICAgICAgICAgICBsZXQgcGF0aE5vZGVzID0gcGF0aC5tYXAoKGNvbXBvbmVudCkgPT4g
eworICAgICAgICAgICAgICAgIGlmIChjb21wb25lbnQubm9kZSkKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuc25hcHNob3Quc2VyaWFsaXplTm9kZShjb21wb25lbnQubm9kZSk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc25hcHNob3Quc2VyaWFsaXplRWRnZShjb21wb25l
bnQuZWRnZSk7CisgICAgICAgICAgICB9KS5yZXZlcnNlKCk7CisKKyAgICAgICAgICAgIGxldCBw
YXRoRGV0YWlscyA9IERPTVV0aWxzLmNyZWF0ZURldGFpbHMoJycpOworICAgICAgICAgICAgbGV0
IHBhdGhTdW1tYXJ5ID0gcGF0aERldGFpbHMuZmlyc3RDaGlsZDsKKyAgICAgICAgICAgIHBhdGhT
dW1tYXJ5LmFwcGVuZENoaWxkKEhlYXBJbnNwZWN0b3JVdGlscy5zdW1tYXJ5U3BhbkZvclBhdGgo
dGhpcywgcGF0aE5vZGVzKSk7CisgICAgICAgIAorICAgICAgICAgICAgbGV0IHBhdGhMaXN0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndWwnKTsKKyAgICAgICAgICAgIHBhdGhMaXN0LmNsYXNz
TmFtZSA9ICdwYXRoJzsKKworICAgICAgICAgICAgbGV0IGlzTm9kZSA9IHRydWU7CisgICAgICAg
ICAgICBsZXQgY3Vyckl0ZW0gPSB1bmRlZmluZWQ7CisgICAgICAgICAgICBmb3IgKGxldCBpdGVt
IG9mIHBhdGhOb2RlcykgeworICAgICAgICAgICAgICAgIGlmIChpc05vZGUpIHsKKyAgICAgICAg
ICAgICAgICAgICAgY3Vyckl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOworICAg
ICAgICAgICAgICAgICAgICBjdXJySXRlbS5hcHBlbmRDaGlsZChIZWFwSW5zcGVjdG9yVXRpbHMu
c3BhbkZvck5vZGUodGhpcywgaXRlbSkpOworICAgICAgICAgICAgICAgICAgICBwYXRoTGlzdC5h
cHBlbmRDaGlsZChjdXJySXRlbSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgY3Vyckl0ZW0uYXBwZW5kQ2hpbGQoSGVhcEluc3BlY3RvclV0aWxzLnNwYW5G
b3JFZGdlKHRoaXMuc25hcHNob3QsIGl0ZW0pKTsKKyAgICAgICAgICAgICAgICAgICAgY3Vyckl0
ZW0gPSB1bmRlZmluZWQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlzTm9k
ZSA9ICFpc05vZGU7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBwYXRoRGV0YWls
cy5hcHBlbmRDaGlsZChwYXRoTGlzdCk7CisgICAgICAgICAgICBkZXRhaWxzQ29udGFpbmVyLmFw
cGVuZENoaWxkKHBhdGhEZXRhaWxzKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBkZXRhaWxz
LmFwcGVuZENoaWxkKGRldGFpbHNDb250YWluZXIpOworICAgICAgICB0aGlzLmFsbFBhdGhzQ29u
dGFpbmVyLmFwcGVuZENoaWxkKGRldGFpbHMpOworICAgIH0KKworfTsKKworCitmdW5jdGlvbiBs
b2FkUmVzdWx0cyhkYXRhU3RyaW5nLCBmaWxlbmFtZSkKK3sKKyAgICBsZXQgaW5zcGVjdG9yQ29u
dGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VpQ29udGFpbmVyJyk7CisgICAgaW5z
cGVjdG9yID0gbmV3IEhlYXBTbmFwc2hvdEluc3BlY3RvcihpbnNwZWN0b3JDb250YWluZXIsIGRh
dGFTdHJpbmcsIGZpbGVuYW1lKQorfQorCitmdW5jdGlvbiBmaWxlbmFtZUZvclBhdGgoZmlsZXBh
dGgpCit7CisgICAgcmV0dXJuIGZpbGVwYXRoLm1hdGNoKC8oW15cL10rKSg/PVwuXHcrJCkvKVsw
XTsKK30KKworZnVuY3Rpb24gaGlkZURlc2NyaXB0aW9uKCkKK3sKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZGVzY3JpcHRpb24nKS5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsKK30KKwor
dmFyIGluc3BlY3RvcjsKKworZnVuY3Rpb24gc2V0dXBJbnRlcmZhY2UoKQoreworICAgIC8vIFNl
ZSBpZiB3ZSBoYXZlIGEgZmlsZSB0byBsb2FkIHNwZWNpZmllZCBpbiB0aGUgcXVlcnkgc3RyaW5n
LgorICAgIHZhciBxdWVyeV9wYXJhbWV0ZXJzID0ge307CisgICAgdmFyIHBhaXJzID0gd2luZG93
LmxvY2F0aW9uLmhyZWYuc2xpY2Uod2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZignPycpICsg
MSkuc3BsaXQoJyYnKTsKKyAgICB2YXIgZmlsZW5hbWUgPSAidGVzdC1oZWFwLmpzb24iOworCisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYWlycy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIg
cGFpciA9IHBhaXJzW2ldLnNwbGl0KCc9Jyk7CisgICAgICAgIHF1ZXJ5X3BhcmFtZXRlcnNbcGFp
clswXV0gPSBkZWNvZGVVUklDb21wb25lbnQocGFpclsxXSk7CisgICAgfQorCisgICAgaWYgKCJm
aWxlbmFtZSIgaW4gcXVlcnlfcGFyYW1ldGVycykKKyAgICAgICAgZmlsZW5hbWUgPSBxdWVyeV9w
YXJhbWV0ZXJzWyJmaWxlbmFtZSJdOworCisgICAgZmV0Y2goZmlsZW5hbWUpCisgICAgICAudGhl
bihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgIGlmIChyZXNwb25zZS5vaykKKyAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsKKyAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoJ0ZhaWxlZCB0byBsb2FkIGRhdGEgZmlsZSAnICsgZmlsZW5hbWUpOworICAgICAgfSkKKyAg
ICAgIC50aGVuKGZ1bmN0aW9uKGRhdGFTdHJpbmcpIHsKKyAgICAgICAgICBsb2FkUmVzdWx0cyhk
YXRhU3RyaW5nLCBmaWxlbmFtZUZvclBhdGgoZmlsZW5hbWUpKTsKKyAgICAgICAgICBoaWRlRGVz
Y3JpcHRpb24oKTsKKyAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndWlDb250YWlu
ZXInKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKKyAgICAgIH0pOworCisgICAgdmFyIGRyb3Bf
dGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyb3BUYXJnZXQiKTsKKworICAgIGRy
b3BfdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbnRlciIsIGZ1bmN0aW9uIChlKSB7Cisg
ICAgICAgIGRyb3BfdGFyZ2V0LmNsYXNzTmFtZSA9ICJkcmFnT3ZlciI7CisgICAgICAgIGUuc3Rv
cFByb3BhZ2F0aW9uKCk7CisgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICB9LCBmYWxz
ZSk7CisKKyAgICBkcm9wX3RhcmdldC5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsIGZ1bmN0
aW9uIChlKSB7CisgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIGUucHJldmVu
dERlZmF1bHQoKTsKKyAgICB9LCBmYWxzZSk7CisKKyAgICBkcm9wX3RhcmdldC5hZGRFdmVudExp
c3RlbmVyKCJkcmFnbGVhdmUiLCBmdW5jdGlvbiAoZSkgeworICAgICAgICBkcm9wX3RhcmdldC5j
bGFzc05hbWUgPSAiIjsKKyAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgZS5w
cmV2ZW50RGVmYXVsdCgpOworICAgIH0sIGZhbHNlKTsKKworICAgIGRyb3BfdGFyZ2V0LmFkZEV2
ZW50TGlzdGVuZXIoImRyb3AiLCBmdW5jdGlvbiAoZSkgeworICAgICAgICBkcm9wX3RhcmdldC5j
bGFzc05hbWUgPSAiIjsKKyAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgZS5w
cmV2ZW50RGVmYXVsdCgpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZS5kYXRhVHJh
bnNmZXIuZmlsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBmaWxlID0gZS5kYXRh
VHJhbnNmZXIuZmlsZXNbaV07CisKKyAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJl
YWRlcigpOworICAgICAgICAgICAgcmVhZGVyLmZpbGVuYW1lID0gZmlsZS5uYW1lOworICAgICAg
ICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBsb2Fk
UmVzdWx0cyhlLnRhcmdldC5yZXN1bHQsIGZpbGVuYW1lRm9yUGF0aCh0aGlzLmZpbGVuYW1lKSk7
CisgICAgICAgICAgICAgICAgaGlkZURlc2NyaXB0aW9uKCk7CisgICAgICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VpQ29udGFpbmVyJykuc3R5bGUuZGlzcGxheSA9ICdibG9j
ayc7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICByZWFkZXIucmVhZEFzVGV4dChmaWxl
KTsKKyAgICAgICAgICAgIGRvY3VtZW50LnRpdGxlID0gIkdDIEhlYXA6ICIgKyByZWFkZXIuZmls
ZW5hbWU7CisgICAgICAgIH0KKyAgICB9LCBmYWxzZSk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgc2V0dXBJbnRlcmZhY2UsIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0dDSGVhcEluc3BlY3Rvci90ZXN0LWhlYXAuanNvbiBiL1Rvb2xzL0dDSGVhcEluc3BlY3Rvci90
ZXN0LWhlYXAuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmI4NzViMGY0NDMwN2I5YjhiY2Y0OGYxNTliZjVh
MWE1NmQ1ZDNhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvR0NIZWFwSW5zcGVjdG9yL3Rlc3Qt
aGVhcC5qc29uCkBAIC0wLDAgKzEgQEAKK3sidmVyc2lvbiI6MSwidHlwZSI6IkdDRGVidWdnaW5n
Iiwibm9kZXMiOlswLDAsMCwwLDAsIjB4MCIsIjB4MCIsMTEzMiwyMjQsMSwxLDAsIjB4MTI0MDhj
MDAwIiwiMHgwIiwzMjksNDA3OCwyLDAsMSwiMHgxMjQxZTZmMTAiLCIweDAiLDExNzksODAsMywx
LDAsIjB4MTI0MWVhNjcwIiwiMHgwIiwxNzMxLDgwLDMsMSwwLCIweDEyNDFlYTZjMCIsIjB4MCIs
MTMzMiw4MCwzLDEsMCwiMHgxMjQxZWE3MTAiLCIweDAiLDE0MzEsODAsMywxLDAsIjB4MTI0MWVh
NzYwIiwiMHgwIiw3OTEsODAsMywxLDAsIjB4MTI0MWVhN2IwIiwiMHgwIiwxNDU1LDgwLDMsMSww
LCIweDEyNDFlYTgwMCIsIjB4MCIsNzk1LDgwLDMsMSwwLCIweDEyNDFlYTg1MCIsIjB4MCIsMTgx
OSw4MCwzLDEsMCwiMHgxMjQxZWE4YTAiLCIweDAiLDgyNSw4MCwzLDEsMCwiMHgxMjQxZWE4ZjAi
LCIweDAiLDU2LDQ4LDQsMCwwLCIweDEyNDg1NDAwMCIsIjB4MCIsMjM2OSwxNiw1LDEsMCwiMHgx
MjQ4NWMwZDAiLCIweDAiLDIzNzMsMTYsNSwxLDAsIjB4MTI0ODVjMGUwIiwiMHgwIiwyMzc0LDE2
LDUsMSwwLCIweDEyNDg1YzBmMCIsIjB4MCIsMjM3NSwxNiw1LDEsMCwiMHgxMjQ4NWMxMDAiLCIw
eDAiLDIzNzYsMTYsNSwxLDAsIjB4MTI0ODVjMTEwIiwiMHgwIiwyMzc3LDE2LDUsMSwwLCIweDEy
NDg1YzEyMCIsIjB4MCIsMjM4MSwxNiw1LDEsMCwiMHgxMjQ4NWMxMzAiLCIweDAiLDIzODQsMTYs
NSwxLDAsIjB4MTI0ODVjMTQwIiwiMHgwIiwyMzg2LDE2LDUsMSwwLCIweDEyNDg1YzE1MCIsIjB4
MCIsMjM4OCwxNiw1LDEsMCwiMHgxMjQ4NWMxNjAiLCIweDAiLDIzODksMTYsNSwxLDAsIjB4MTI0
ODVjMTcwIiwiMHgwIiwyMzkwLDE2LDUsMSwwLCIweDEyNDg1YzE4MCIsIjB4MCIsOTI0LDY3LDYs
MCwwLCIweDEyNDg4N2UwMCIsIjB4MCIsMTgxNCw5Niw3LDEsMCwiMHgxMjQ4OTQwMDAiLCIweDAi
LDE4MjIsOTYsNywxLDAsIjB4MTI0ODk0MDYwIiwiMHgwIiwxODI4LDk2LDcsMSwwLCIweDEyNDg5
NDBjMCIsIjB4MCIsNDk3LDk2LDcsMSwwLCIweDEyNDg5NDEyMCIsIjB4MCIsNTAwLDk2LDcsMSww
LCIweDEyNDg5NDE4MCIsIjB4MCIsNTAzLDk2LDcsMSwwLCIweDEyNDg5NDFlMCIsIjB4MCIsNTA2
LDk2LDcsMSwwLCIweDEyNDg5NDI0MCIsIjB4MCIsNTA5LDk2LDcsMSwwLCIweDEyNDg5NDJhMCIs
IjB4MCIsNTEyLDk2LDcsMSwwLCIweDEyNDg5NDMwMCIsIjB4MCIsNTE1LDk2LDcsMSwwLCIweDEy
NDg5NDM2MCIsIjB4MCIsNTE4LDk2LDcsMSwwLCIweDEyNDg5NDNjMCIsIjB4MCIsNTIxLDk2LDcs
MSwwLCIweDEyNDg5NDQyMCIsIjB4MCIsNTI0LDk2LDcsMSwwLCIweDEyNDg5NDQ4MCIsIjB4MCIs
NTI3LDk2LDcsMSwwLCIweDEyNDg5NDRlMCIsIjB4MCIsNTMwLDk2LDcsMSwwLCIweDEyNDg5NDU0
MCIsIjB4MCIsMTc2Myw5Niw3LDEsMCwiMHgxMjQ4OTQ1YTAiLCIweDAiLDE3NjcsOTYsNywxLDAs
IjB4MTI0ODk0NjAwIiwiMHgwIiwxNzU0LDk2LDcsMSwwLCIweDEyNDg5NDY2MCIsIjB4MCIsMTc0
OSw5Niw3LDEsMCwiMHgxMjQ4OTQ2YzAiLCIweDAiLDE3NDIsOTYsNywxLDAsIjB4MTI0ODk0NzIw
IiwiMHgwIiwxNzUzLDk2LDcsMSwwLCIweDEyNDg5NDc4MCIsIjB4MCIsMTc0MSw5Niw3LDEsMCwi
MHgxMjQ4OTQ3ZTAiLCIweDAiLDE3MzYsOTYsNywxLDAsIjB4MTI0ODk0ODQwIiwiMHgwIiwxNzE3
LDk2LDcsMSwwLCIweDEyNDg5NDhhMCIsIjB4MCIsMTcyMiw5Niw3LDEsMCwiMHgxMjQ4OTQ5MDAi
LCIweDAiLDE3MTUsOTYsNywxLDAsIjB4MTI0ODk0OTYwIiwiMHgwIiwxNzA4LDk2LDcsMSwwLCIw
eDEyNDg5NDljMCIsIjB4MCIsMTY5Nyw5Niw3LDEsMCwiMHgxMjQ4OTRhMjAiLCIweDAiLDE2ODYs
OTYsNywxLDAsIjB4MTI0ODk0YTgwIiwiMHgwIiwxNjk2LDk2LDcsMSwwLCIweDEyNDg5NGFlMCIs
IjB4MCIsMTY4Nyw5Niw3LDEsMCwiMHgxMjQ4OTRiNDAiLCIweDAiLDE2NzUsOTYsNywxLDAsIjB4
MTI0ODk0YmEwIiwiMHgwIiwxNjY1LDk2LDcsMSwwLCIweDEyNDg5NGMwMCIsIjB4MCIsMTY2Nyw5
Niw3LDEsMCwiMHgxMjQ4OTRjNjAiLCIweDAiLDE2NjYsOTYsNywxLDAsIjB4MTI0ODk0Y2MwIiwi
MHgwIiwxNjU0LDk2LDcsMSwwLCIweDEyNDg5NGQyMCIsIjB4MCIsMTY0Nyw5Niw3LDEsMCwiMHgx
MjQ4OTRkODAiLCIweDAiLDE2NDYsOTYsNywxLDAsIjB4MTI0ODk0ZGUwIiwiMHgwIiwxNjM4LDk2
LDcsMSwwLCIweDEyNDg5NGU0MCIsIjB4MCIsMTYyOCw5Niw3LDEsMCwiMHgxMjQ4OTRlYTAiLCIw
eDAiLDE2MzMsOTYsNywxLDAsIjB4MTI0ODk0ZjAwIiwiMHgwIiwxNjE1LDk2LDcsMSwwLCIweDEy
NDg5NGY2MCIsIjB4MCIsMTYyMSw5Niw3LDEsMCwiMHgxMjQ4OTRmYzAiLCIweDAiLDE1OTQsOTYs
NywxLDAsIjB4MTI0ODk1MDIwIiwiMHgwIiwxNjA4LDk2LDcsMSwwLCIweDEyNDg5NTA4MCIsIjB4
MCIsMTU5MSw5Niw3LDEsMCwiMHgxMjQ4OTUwZTAiLCIweDAiLDE1OTksOTYsNywxLDAsIjB4MTI0
ODk1MTQwIiwiMHgwIiwxNTc2LDk2LDcsMSwwLCIweDEyNDg5NTFhMCIsIjB4MCIsMTU3NSw5Niw3
LDEsMCwiMHgxMjQ4OTUyNjAiLCIweDAiLDE1NTUsOTYsNywxLDAsIjB4MTI0ODk1MmMwIiwiMHgw
IiwxNTUxLDk2LDcsMSwwLCIweDEyNDg5NTMyMCIsIjB4MCIsMTU2Miw5Niw3LDEsMCwiMHgxMjQ4
OTUzODAiLCIweDAiLDE1NDQsOTYsNywxLDAsIjB4MTI0ODk1M2UwIiwiMHgwIiwxNTM2LDk2LDcs
MSwwLCIweDEyNDg5NTQ0MCIsIjB4MCIsMTUyMyw5Niw3LDEsMCwiMHgxMjQ4OTU0YTAiLCIweDAi
LDE3ODksMTEyLDgsMSwyLCIweDEyNGQ2YzA3MCIsIjB4MCIsMTc5MiwxMTIsOCwxLDIsIjB4MTI0
ZDZjMWMwIiwiMHgwIiwxNzk2LDExMiw4LDEsMiwiMHgxMjRkNmMyMzAiLCIweDAiLDE4MDIsMTEy
LDgsMSwyLCIweDEyNGQ2YzM4MCIsIjB4MCIsMTgwMywxMTIsOCwxLDIsIjB4MTI0ZDZjYWYwIiwi
MHgwIiwxODA4LDExMiw4LDEsMiwiMHgxMjRkNmUxYjAiLCIweDAiLDE4MTIsMTEyLDgsMSwzLCIw
eDEyNGQ2ZjQxMCIsIjB4MCIsMTA1MywxMTIsOCwxLDQsIjB4MTI0ZDZmNDgwIiwiMHgwIiwxMDY3
LDExMiw4LDEsNCwiMHgxMjRkNmY0ZjAiLCIweDAiLDEwNDYsMTEyLDgsMSw0LCIweDEyNGQ2ZjU2
MCIsIjB4MCIsMTAzMywxMTIsOCwxLDQsIjB4MTI0ZDZmNWQwIiwiMHgwIiwxMDc3LDExMiw4LDEs
MiwiMHgxMjRkNmY2NDAiLCIweDAiLDEwMjIsMTEyLDgsMSwyLCIweDEyNGQ2ZjZiMCIsIjB4MCIs
MTAyOSwxMTIsOCwxLDUsIjB4MTI0ZDZmYjEwIiwiMHgwIiwxMDE2LDExMiw4LDEsNiwiMHgxMjRk
NmZiODAiLCIweDAiLDUzNiwxMTIsOCwxLDYsIjB4MTI0ZDZmYzYwIiwiMHgwIiwxMDYwLDExMiw4
LDEsMiwiMHgxMjRkNmZjZDAiLCIweDAiLDExNTcsMTEyLDgsMSwyLCIweDEyNGQ2ZmQ0MCIsIjB4
MCIsMjE3NCwzMiw5LDAsMSwiMHgxMjRkZTJkYTAiLCIweDEyNzgwMGEwMCIsMSwxMTIsOCwxLDcs
IjB4MTI1MDAwMDAwIiwiMHgwIiwyLDExMiw4LDEsOCwiMHgxMjUwMDAwNzAiLCIweDAiLDMsMTEy
LDgsMSw5LCIweDEyNTAwMDBlMCIsIjB4MCIsNCwxMTIsOCwxLDEwLCIweDEyNTAwMDE1MCIsIjB4
MCIsNSwxMTIsOCwxLDExLCIweDEyNTAwMDFjMCIsIjB4MCIsNiwxMTIsOCwxLDEyLCIweDEyNTAw
MDIzMCIsIjB4MCIsNywxMTIsOCwxLDEzLCIweDEyNTAwMDJhMCIsIjB4MCIsOCwxMTIsOCwxLDE0
LCIweDEyNTAwMDMxMCIsIjB4MCIsOSwxMTIsOCwxLDE1LCIweDEyNTAwMDM4MCIsIjB4MCIsMTAs
MTEyLDgsMSwxNiwiMHgxMjUwMDAzZjAiLCIweDAiLDExLDExMiw4LDEsMTcsIjB4MTI1MDAwNDYw
IiwiMHgwIiwxMiwxMTIsOCwxLDE4LCIweDEyNTAwMDRkMCIsIjB4MCIsMTMsMTEyLDgsMSwxOSwi
MHgxMjUwMDA1NDAiLCIweDAiLDE0LDExMiw4LDEsMjAsIjB4MTI1MDAwNWIwIiwiMHgwIiwxNSwx
MTIsOCwxLDIxLCIweDEyNTAwMDYyMCIsIjB4MCIsMTYsMTEyLDgsMSwyMiwiMHgxMjUwMDA2OTAi
LCIweDAiLDE3LDExMiw4LDEsMjMsIjB4MTI1MDAwNzAwIiwiMHgwIiwxOCwxMTIsOCwxLDI0LCIw
eDEyNTAwMDc3MCIsIjB4MCIsMTksMTEyLDgsMSwyNSwiMHgxMjUwMDA3ZTAiLCIweDAiLDIwLDEx
Miw4LDEsMjYsIjB4MTI1MDAwODUwIiwiMHgwIiwyMSwxMTIsOCwxLDI2LCIweDEyNTAwMDhjMCIs
IjB4MCIsMjIsMTEyLDgsMSwyNiwiMHgxMjUwMDA5MzAiLCIweDAiLDIzLDExMiw4LDEsMjcsIjB4
MTI1MDAwOWEwIiwiMHgwIiwyNCwxMTIsOCwxLDI4LCIweDEyNTAwMGExMCIsIjB4MCIsMjUsMTEy
LDgsMSwyOSwiMHgxMjUwMDBhODAiLCIweDAiLDI2LDExMiw4LDEsMzAsIjB4MTI1MDAwYWYwIiwi
MHgwIiwyNywxMTIsOCwxLDMxLCIweDEyNTAwMGI2MCIsIjB4MCIsMjgsMTEyLDgsMSwzMiwiMHgx
MjUwMDBiZDAiLCIweDAiLDI5LDExMiw4LDEsMzMsIjB4MTI1MDAwYzQwIiwiMHgwIiwzMCwxMTIs
OCwxLDM0LCIweDEyNTAwMGNiMCIsIjB4MCIsMzEsMTEyLDgsMSwzNSwiMHgxMjUwMDBkMjAiLCIw
eDAiLDMyLDExMiw4LDEsMzYsIjB4MTI1MDAwZDkwIiwiMHgwIiwzMywxMTIsOCwxLDM3LCIweDEy
NTAwMGUwMCIsIjB4MCIsMzQsMTEyLDgsMSwzOCwiMHgxMjUwMDBlNzAiLCIweDAiLDM1LDExMiw4
LDEsMzksIjB4MTI1MDAwZWUwIiwiMHgwIiwzNiwxMTIsOCwxLDQwLCIweDEyNTAwMGY1MCIsIjB4
MCIsMzcsMTEyLDgsMSw0MSwiMHgxMjUwMDBmYzAiLCIweDAiLDM4LDExMiw4LDEsNDIsIjB4MTI1
MDAxMDMwIiwiMHgwIiwzOSwxMTIsOCwxLDQzLCIweDEyNTAwMTBhMCIsIjB4MCIsNDAsMTEyLDgs
MSw0NCwiMHgxMjUwMDExMTAiLCIweDAiLDQxLDExMiw4LDEsNDUsIjB4MTI1MDAxMTgwIiwiMHgw
Iiw0MiwxMTIsOCwxLDQ2LCIweDEyNTAwMTFmMCIsIjB4MCIsNDMsMTEyLDgsMSw0NywiMHgxMjUw
MDEyNjAiLCIweDAiLDQ0LDExMiw4LDEsNDgsIjB4MTI1MDAxMmQwIiwiMHgwIiw0NSwxMTIsOCwx
LDQ5LCIweDEyNTAwMTM0MCIsIjB4MCIsNDYsMTEyLDgsMSw1MCwiMHgxMjUwMDEzYjAiLCIweDAi
LDQ3LDExMiw4LDEsNTEsIjB4MTI1MDAxNDIwIiwiMHgwIiw0OCwxMTIsOCwxLDUxLCIweDEyNTAw
MTQ5MCIsIjB4MCIsNDksMTEyLDgsMSw1MiwiMHgxMjUwMDE1MDAiLCIweDAiLDUwLDExMiw4LDEs
NTMsIjB4MTI1MDAxNTcwIiwiMHgwIiw1MSwxMTIsOCwxLDU0LCIweDEyNTAwMTVlMCIsIjB4MCIs
NTIsMTEyLDgsMSw1NSwiMHgxMjUwMDE2NTAiLCIweDAiLDUzLDExMiw4LDEsNTYsIjB4MTI1MDAx
NmMwIiwiMHgwIiw1NSwzMiwxMCwxLDAsIjB4MTI1MDA4MDAwIiwiMHgwIiwxNDk5LDMyLDExLDEs
MCwiMHgxMjUwMGE1NDAiLCIweDAiLDQyNSwzMiwxMSwxLDAsIjB4MTI1MDBhNTYwIiwiMHgwIiw0
MjMsMzIsMTEsMSwwLCIweDEyNTAwYTU4MCIsIjB4MCIsMzc4LDMyLDExLDEsMCwiMHgxMjUwMGE1
YTAiLCIweDAiLDM0OCwzMiwxMSwxLDAsIjB4MTI1MDBhNWMwIiwiMHgwIiwxNTY0LDMyLDExLDEs
MCwiMHgxMjUwMGE1ZTAiLCIweDAiLDMzMiwzMiwxMSwxLDAsIjB4MTI1MDBhNjAwIiwiMHgwIiwy
MzA5LDMyLDExLDEsMCwiMHgxMjUwMGE2MjAiLCIweDAiLDIzMDEsMzIsMTEsMSwwLCIweDEyNTAw
YTY0MCIsIjB4MCIsMjMwMCwzMiwxMSwxLDAsIjB4MTI1MDBhNjYwIiwiMHgwIiwyMjk4LDMyLDEx
LDEsMCwiMHgxMjUwMGE2ODAiLCIweDAiLDIyOTYsMzIsMTEsMSwwLCIweDEyNTAwYTZhMCIsIjB4
MCIsMjI5MiwzMiwxMSwxLDAsIjB4MTI1MDBhNmMwIiwiMHgwIiwyMjkwLDMyLDExLDEsMCwiMHgx
MjUwMGE2ZTAiLCIweDAiLDIyODcsMzIsMTEsMSwwLCIweDEyNTAwYTcwMCIsIjB4MCIsMjI4MSwz
MiwxMSwxLDAsIjB4MTI1MDBhNzIwIiwiMHgwIiwyMjc5LDMyLDExLDEsMCwiMHgxMjUwMGE3NDAi
LCIweDAiLDIyNzUsMzIsMTEsMSwwLCIweDEyNTAwYTc2MCIsIjB4MCIsMjI3NCwzMiwxMSwxLDAs
IjB4MTI1MDBhNzgwIiwiMHgwIiwyMjczLDMyLDExLDEsMCwiMHgxMjUwMGE3YTAiLCIweDAiLDIy
NzEsMzIsMTEsMSwwLCIweDEyNTAwYTdjMCIsIjB4MCIsMjI3MCwzMiwxMSwxLDAsIjB4MTI1MDBh
N2UwIiwiMHgwIiwyMjY5LDMyLDExLDEsMCwiMHgxMjUwMGE4MDAiLCIweDAiLDIyNjgsMzIsMTEs
MSwwLCIweDEyNTAwYTgyMCIsIjB4MCIsMjI2NywzMiwxMSwxLDAsIjB4MTI1MDBhODQwIiwiMHgw
IiwyMjY2LDMyLDExLDEsMCwiMHgxMjUwMGE4NjAiLCIweDAiLDIyNjUsMzIsMTEsMSwwLCIweDEy
NTAwYTg4MCIsIjB4MCIsMjI2NCwzMiwxMSwxLDAsIjB4MTI1MDBhOGEwIiwiMHgwIiwyMjYzLDMy
LDExLDEsMCwiMHgxMjUwMGE4YzAiLCIweDAiLDIyNjIsMzIsMTEsMSwwLCIweDEyNTAwYThlMCIs
IjB4MCIsMjI3MiwzMiwxMSwxLDAsIjB4MTI1MDBhOTAwIiwiMHgwIiwyMjc3LDMyLDExLDEsMCwi
MHgxMjUwMGE5MjAiLCIweDAiLDIyNzYsMzIsMTEsMSwwLCIweDEyNTAwYTk0MCIsIjB4MCIsMjI3
OCwzMiwxMSwxLDAsIjB4MTI1MDBhOTYwIiwiMHgwIiwyMjg0LDMyLDExLDEsMCwiMHgxMjUwMGE5
ODAiLCIweDAiLDIyODAsMzIsMTEsMSwwLCIweDEyNTAwYTlhMCIsIjB4MCIsMjI4MywzMiwxMSwx
LDAsIjB4MTI1MDBhOWMwIiwiMHgwIiwyMjgyLDMyLDExLDEsMCwiMHgxMjUwMGE5ZTAiLCIweDAi
LDIyODgsMzIsMTEsMSwwLCIweDEyNTAwYWEwMCIsIjB4MCIsMjI4NSwzMiwxMSwxLDAsIjB4MTI1
MDBhYTIwIiwiMHgwIiwyMjkzLDMyLDExLDEsMCwiMHgxMjUwMGFhNDAiLCIweDAiLDIyOTEsMzIs
MTEsMSwwLCIweDEyNTAwYWE2MCIsIjB4MCIsMjI4NiwzMiwxMSwxLDAsIjB4MTI1MDBhYTgwIiwi
MHgwIiwyMjg5LDMyLDExLDEsMCwiMHgxMjUwMGFhYTAiLCIweDAiLDU0LDQ4LDEwLDEsMCwiMHgx
MjUwMTAwMDAiLCIweDAiLDMyOCwzMiwxMiwwLDAsIjB4MTI1MDE4MDAwIiwiMHgwIiwzMjcsMzMs
MTIsMCwwLCIweDEyNTAxODAyMCIsIjB4MCIsMzI2LDMzLDEyLDAsMCwiMHgxMjUwMTgwNDAiLCIw
eDAiLDMyNSwzMywxMiwwLDAsIjB4MTI1MDE4MDYwIiwiMHgwIiwzMjQsMzMsMTIsMCwwLCIweDEy
NTAxODA4MCIsIjB4MCIsMzIzLDMzLDEyLDAsMCwiMHgxMjUwMTgwYTAiLCIweDAiLDMyMiwzMywx
MiwwLDAsIjB4MTI1MDE4MGMwIiwiMHgwIiwzMjEsMzMsMTIsMCwwLCIweDEyNTAxODBlMCIsIjB4
MCIsMzIwLDMzLDEyLDAsMCwiMHgxMjUwMTgxMDAiLCIweDAiLDMxOSwzMywxMiwwLDAsIjB4MTI1
MDE4MTIwIiwiMHgwIiwzMTgsMzMsMTIsMCwwLCIweDEyNTAxODE0MCIsIjB4MCIsMzE3LDMzLDEy
LDAsMCwiMHgxMjUwMTgxNjAiLCIweDAiLDMxNiwzMywxMiwwLDAsIjB4MTI1MDE4MTgwIiwiMHgw
IiwzMTUsMzMsMTIsMCwwLCIweDEyNTAxODFhMCIsIjB4MCIsMzE0LDMzLDEyLDAsMCwiMHgxMjUw
MTgxYzAiLCIweDAiLDMxMywzMywxMiwwLDAsIjB4MTI1MDE4MWUwIiwiMHgwIiwzMTIsMzMsMTIs
MCwwLCIweDEyNTAxODIwMCIsIjB4MCIsMzExLDMzLDEyLDAsMCwiMHgxMjUwMTgyMjAiLCIweDAi
LDMxMCwzMywxMiwwLDAsIjB4MTI1MDE4MjQwIiwiMHgwIiwzMDksMzMsMTIsMCwwLCIweDEyNTAx
ODI2MCIsIjB4MCIsMzA4LDMzLDEyLDAsMCwiMHgxMjUwMTgyODAiLCIweDAiLDMwNywzMywxMiww
LDAsIjB4MTI1MDE4MmEwIiwiMHgwIiwzMDYsMzMsMTIsMCwwLCIweDEyNTAxODJjMCIsIjB4MCIs
MzA1LDMzLDEyLDAsMCwiMHgxMjUwMTgyZTAiLCIweDAiLDMwNCwzMywxMiwwLDAsIjB4MTI1MDE4
MzAwIiwiMHgwIiwzMDMsMzMsMTIsMCwwLCIweDEyNTAxODMyMCIsIjB4MCIsMzAyLDMzLDEyLDAs
MCwiMHgxMjUwMTgzNDAiLCIweDAiLDMwMSwzMywxMiwwLDAsIjB4MTI1MDE4MzYwIiwiMHgwIiwz
MDAsMzMsMTIsMCwwLCIweDEyNTAxODM4MCIsIjB4MCIsMjk5LDMzLDEyLDAsMCwiMHgxMjUwMTgz
YTAiLCIweDAiLDI5OCwzMywxMiwwLDAsIjB4MTI1MDE4M2MwIiwiMHgwIiwyOTcsMzMsMTIsMCww
LCIweDEyNTAxODNlMCIsIjB4MCIsMjk2LDMzLDEyLDAsMCwiMHgxMjUwMTg0MDAiLCIweDAiLDI5
NSwzMywxMiwwLDAsIjB4MTI1MDE4NDIwIiwiMHgwIiwyOTQsMzMsMTIsMCwwLCIweDEyNTAxODQ0
MCIsIjB4MCIsMjkzLDMzLDEyLDAsMCwiMHgxMjUwMTg0NjAiLCIweDAiLDI5MiwzMywxMiwwLDAs
IjB4MTI1MDE4NDgwIiwiMHgwIiwyOTEsMzMsMTIsMCwwLCIweDEyNTAxODRhMCIsIjB4MCIsMjkw
LDMzLDEyLDAsMCwiMHgxMjUwMTg0YzAiLCIweDAiLDI4OSwzMywxMiwwLDAsIjB4MTI1MDE4NGUw
IiwiMHgwIiwyODgsMzMsMTIsMCwwLCIweDEyNTAxODUwMCIsIjB4MCIsMjg1LDMzLDEyLDAsMCwi
MHgxMjUwMTg1MjAiLCIweDAiLDI4MywzMywxMiwwLDAsIjB4MTI1MDE4NTQwIiwiMHgwIiwyODEs
MzMsMTIsMCwwLCIweDEyNTAxODU2MCIsIjB4MCIsMjc4LDMzLDEyLDAsMCwiMHgxMjUwMTg1ODAi
LCIweDAiLDI3NCwzMywxMiwwLDAsIjB4MTI1MDE4NWEwIiwiMHgwIiwyNjksMzMsMTIsMCwwLCIw
eDEyNTAxODVjMCIsIjB4MCIsMjY2LDMzLDEyLDAsMCwiMHgxMjUwMTg1ZTAiLCIweDAiLDI2Mywz
MywxMiwwLDAsIjB4MTI1MDE4NjAwIiwiMHgwIiwyNTksMzMsMTIsMCwwLCIweDEyNTAxODYyMCIs
IjB4MCIsMjU2LDMzLDEyLDAsMCwiMHgxMjUwMTg2NDAiLCIweDAiLDI1MSwzMywxMiwwLDAsIjB4
MTI1MDE4NjYwIiwiMHgwIiwyNDgsMzMsMTIsMCwwLCIweDEyNTAxODY4MCIsIjB4MCIsMjQ0LDMz
LDEyLDAsMCwiMHgxMjUwMTg2YTAiLCIweDAiLDI0MiwzMywxMiwwLDAsIjB4MTI1MDE4NmMwIiwi
MHgwIiwyMzksMzMsMTIsMCwwLCIweDEyNTAxODZlMCIsIjB4MCIsMjM2LDMzLDEyLDAsMCwiMHgx
MjUwMTg3MDAiLCIweDAiLDIzNCwzMywxMiwwLDAsIjB4MTI1MDE4NzIwIiwiMHgwIiwyMzEsMzMs
MTIsMCwwLCIweDEyNTAxODc0MCIsIjB4MCIsMjI4LDMzLDEyLDAsMCwiMHgxMjUwMTg3NjAiLCIw
eDAiLDIyMywzMywxMiwwLDAsIjB4MTI1MDE4NzgwIiwiMHgwIiwyMjAsMzMsMTIsMCwwLCIweDEy
NTAxODdhMCIsIjB4MCIsMjE1LDMzLDEyLDAsMCwiMHgxMjUwMTg3YzAiLCIweDAiLDIxMywzMywx
MiwwLDAsIjB4MTI1MDE4N2UwIiwiMHgwIiwyMTEsMzMsMTIsMCwwLCIweDEyNTAxODgwMCIsIjB4
MCIsMjA4LDMzLDEyLDAsMCwiMHgxMjUwMTg4MjAiLCIweDAiLDIwNSwzMywxMiwwLDAsIjB4MTI1
MDE4ODQwIiwiMHgwIiwyMDIsMzMsMTIsMCwwLCIweDEyNTAxODg2MCIsIjB4MCIsMTk5LDMzLDEy
LDAsMCwiMHgxMjUwMTg4ODAiLCIweDAiLDE5NywzMywxMiwwLDAsIjB4MTI1MDE4OGEwIiwiMHgw
IiwxOTUsMzMsMTIsMCwwLCIweDEyNTAxODhjMCIsIjB4MCIsMTkxLDMzLDEyLDAsMCwiMHgxMjUw
MTg4ZTAiLCIweDAiLDE4NiwzMywxMiwwLDAsIjB4MTI1MDE4OTAwIiwiMHgwIiwxODQsMzMsMTIs
MCwwLCIweDEyNTAxODkyMCIsIjB4MCIsMTgxLDMzLDEyLDAsMCwiMHgxMjUwMTg5NDAiLCIweDAi
LDE3NiwzMywxMiwwLDAsIjB4MTI1MDE4OTYwIiwiMHgwIiwxNzIsMzMsMTIsMCwwLCIweDEyNTAx
ODk4MCIsIjB4MCIsMTY5LDMzLDEyLDAsMCwiMHgxMjUwMTg5YTAiLCIweDAiLDE2NSwzMywxMiww
LDAsIjB4MTI1MDE4OWMwIiwiMHgwIiwxNjMsMzMsMTIsMCwwLCIweDEyNTAxODllMCIsIjB4MCIs
MTYyLDMzLDEyLDAsMCwiMHgxMjUwMThhMDAiLCIweDAiLDE2MSwzMywxMiwwLDAsIjB4MTI1MDE4
YTIwIiwiMHgwIiwxNjAsMzMsMTIsMCwwLCIweDEyNTAxOGE0MCIsIjB4MCIsMTU5LDMzLDEyLDAs
MCwiMHgxMjUwMThhNjAiLCIweDAiLDE1OCwzMywxMiwwLDAsIjB4MTI1MDE4YTgwIiwiMHgwIiwx
NTcsMzMsMTIsMCwwLCIweDEyNTAxOGFhMCIsIjB4MCIsMTY0LDMzLDEyLDAsMCwiMHgxMjUwMThh
YzAiLCIweDAiLDE2NiwzMywxMiwwLDAsIjB4MTI1MDE4YWUwIiwiMHgwIiwxNjgsMzMsMTIsMCww
LCIweDEyNTAxOGIwMCIsIjB4MCIsMTcxLDMzLDEyLDAsMCwiMHgxMjUwMThiMjAiLCIweDAiLDE3
MywzMywxMiwwLDAsIjB4MTI1MDE4YjQwIiwiMHgwIiwxNjcsMzMsMTIsMCwwLCIweDEyNTAxOGI2
MCIsIjB4MCIsMTcwLDMzLDEyLDAsMCwiMHgxMjUwMThiODAiLCIweDAiLDE3OSwzMywxMiwwLDAs
IjB4MTI1MDE4YmEwIiwiMHgwIiwxNzUsMzMsMTIsMCwwLCIweDEyNTAxOGJjMCIsIjB4MCIsMTc0
LDMzLDEyLDAsMCwiMHgxMjUwMThiZTAiLCIweDAiLDE3NywzMywxMiwwLDAsIjB4MTI1MDE4YzAw
IiwiMHgwIiwxNzgsMzMsMTIsMCwwLCIweDEyNTAxOGMyMCIsIjB4MCIsMTgwLDMzLDEyLDAsMCwi
MHgxMjUwMThjNDAiLCIweDAiLDE4MywzMywxMiwwLDAsIjB4MTI1MDE4YzYwIiwiMHgwIiwxODIs
MzMsMTIsMCwwLCIweDEyNTAxOGM4MCIsIjB4MCIsMTg1LDMzLDEyLDAsMCwiMHgxMjUwMThjYTAi
LCIweDAiLDE4OCwzMywxMiwwLDAsIjB4MTI1MDE4Y2MwIiwiMHgwIiwxODcsMzMsMTIsMCwwLCIw
eDEyNTAxOGNlMCIsIjB4MCIsMTg5LDMzLDEyLDAsMCwiMHgxMjUwMThkMDAiLCIweDAiLDE5MCwz
MywxMiwwLDAsIjB4MTI1MDE4ZDIwIiwiMHgwIiwxOTIsMzMsMTIsMCwwLCIweDEyNTAxOGQ0MCIs
IjB4MCIsMjAwLDMzLDEyLDAsMCwiMHgxMjUwMThkNjAiLCIweDAiLDIwMSwzMywxMiwwLDAsIjB4
MTI1MDE4ZDgwIiwiMHgwIiwyMDYsMzMsMTIsMCwwLCIweDEyNTAxOGRhMCIsIjB4MCIsMTk2LDMz
LDEyLDAsMCwiMHgxMjUwMThkYzAiLCIweDAiLDE5OCwzMywxMiwwLDAsIjB4MTI1MDE4ZGUwIiwi
MHgwIiwxOTMsMzMsMTIsMCwwLCIweDEyNTAxOGUwMCIsIjB4MCIsMTk0LDMzLDEyLDAsMCwiMHgx
MjUwMThlMjAiLCIweDAiLDIwMywzMywxMiwwLDAsIjB4MTI1MDE4ZTQwIiwiMHgwIiwyMDQsMzMs
MTIsMCwwLCIweDEyNTAxOGU2MCIsIjB4MCIsMjA3LDMzLDEyLDAsMCwiMHgxMjUwMThlODAiLCIw
eDAiLDIwOSwzMywxMiwwLDAsIjB4MTI1MDE4ZWEwIiwiMHgwIiwyMTAsMzMsMTIsMCwwLCIweDEy
NTAxOGVjMCIsIjB4MCIsMjEyLDMzLDEyLDAsMCwiMHgxMjUwMThlZTAiLCIweDAiLDIxNCwzMywx
MiwwLDAsIjB4MTI1MDE4ZjAwIiwiMHgwIiwyMTcsMzMsMTIsMCwwLCIweDEyNTAxOGYyMCIsIjB4
MCIsMjE2LDMzLDEyLDAsMCwiMHgxMjUwMThmNDAiLCIweDAiLDIyMSwzMywxMiwwLDAsIjB4MTI1
MDE4ZjYwIiwiMHgwIiwyMTgsMzMsMTIsMCwwLCIweDEyNTAxOGY4MCIsIjB4MCIsMjE5LDMzLDEy
LDAsMCwiMHgxMjUwMThmYTAiLCIweDAiLDIyMiwzMywxMiwwLDAsIjB4MTI1MDE4ZmMwIiwiMHgw
IiwyMjQsMzMsMTIsMCwwLCIweDEyNTAxOGZlMCIsIjB4MCIsMjI1LDMzLDEyLDAsMCwiMHgxMjUw
MTkwMDAiLCIweDAiLDIyNiwzMywxMiwwLDAsIjB4MTI1MDE5MDIwIiwiMHgwIiwyMjcsMzMsMTIs
MCwwLCIweDEyNTAxOTA0MCIsIjB4MCIsMjI5LDMzLDEyLDAsMCwiMHgxMjUwMTkwNjAiLCIweDAi
LDIzMCwzMywxMiwwLDAsIjB4MTI1MDE5MDgwIiwiMHgwIiwyMzIsMzMsMTIsMCwwLCIweDEyNTAx
OTBhMCIsIjB4MCIsMjMzLDMzLDEyLDAsMCwiMHgxMjUwMTkwYzAiLCIweDAiLDIzNSwzMywxMiww
LDAsIjB4MTI1MDE5MGUwIiwiMHgwIiwyMzcsMzMsMTIsMCwwLCIweDEyNTAxOTEwMCIsIjB4MCIs
MjM4LDMzLDEyLDAsMCwiMHgxMjUwMTkxMjAiLCIweDAiLDI0MCwzMywxMiwwLDAsIjB4MTI1MDE5
MTQwIiwiMHgwIiwyNDEsMzMsMTIsMCwwLCIweDEyNTAxOTE2MCIsIjB4MCIsMjQzLDMzLDEyLDAs
MCwiMHgxMjUwMTkxODAiLCIweDAiLDI0NSwzMywxMiwwLDAsIjB4MTI1MDE5MWEwIiwiMHgwIiwy
NDYsMzMsMTIsMCwwLCIweDEyNTAxOTFjMCIsIjB4MCIsMjQ3LDMzLDEyLDAsMCwiMHgxMjUwMTkx
ZTAiLCIweDAiLDI0OSwzMywxMiwwLDAsIjB4MTI1MDE5MjAwIiwiMHgwIiwyNTAsMzMsMTIsMCww
LCIweDEyNTAxOTIyMCIsIjB4MCIsMjUzLDMzLDEyLDAsMCwiMHgxMjUwMTkyNDAiLCIweDAiLDI1
MiwzMywxMiwwLDAsIjB4MTI1MDE5MjYwIiwiMHgwIiwyNTQsMzMsMTIsMCwwLCIweDEyNTAxOTI4
MCIsIjB4MCIsMjU1LDMzLDEyLDAsMCwiMHgxMjUwMTkyYTAiLCIweDAiLDI1NywzMywxMiwwLDAs
IjB4MTI1MDE5MmMwIiwiMHgwIiwyNTgsMzMsMTIsMCwwLCIweDEyNTAxOTJlMCIsIjB4MCIsMjYw
LDMzLDEyLDAsMCwiMHgxMjUwMTkzMDAiLCIweDAiLDI2MSwzMywxMiwwLDAsIjB4MTI1MDE5MzIw
IiwiMHgwIiwyNjIsMzMsMTIsMCwwLCIweDEyNTAxOTM0MCIsIjB4MCIsMjY0LDMzLDEyLDAsMCwi
MHgxMjUwMTkzNjAiLCIweDAiLDI2NSwzMywxMiwwLDAsIjB4MTI1MDE5MzgwIiwiMHgwIiwyNjcs
MzMsMTIsMCwwLCIweDEyNTAxOTNhMCIsIjB4MCIsMjczLDMzLDEyLDAsMCwiMHgxMjUwMTkzYzAi
LCIweDAiLDI2OCwzMywxMiwwLDAsIjB4MTI1MDE5M2UwIiwiMHgwIiwyNzUsMzMsMTIsMCwwLCIw
eDEyNTAxOTQwMCIsIjB4MCIsMjcxLDMzLDEyLDAsMCwiMHgxMjUwMTk0MjAiLCIweDAiLDI3MCwz
MywxMiwwLDAsIjB4MTI1MDE5NDQwIiwiMHgwIiwyNzIsMzMsMTIsMCwwLCIweDEyNTAxOTQ2MCIs
IjB4MCIsMjc2LDMzLDEyLDAsMCwiMHgxMjUwMTk0ODAiLCIweDAiLDI3NywzMywxMiwwLDAsIjB4
MTI1MDE5NGEwIiwiMHgwIiwyNzksMzMsMTIsMCwwLCIweDEyNTAxOTRjMCIsIjB4MCIsMjgwLDMz
LDEyLDAsMCwiMHgxMjUwMTk0ZTAiLCIweDAiLDI4MiwzMywxMiwwLDAsIjB4MTI1MDE5NTAwIiwi
MHgwIiwyODQsMzMsMTIsMCwwLCIweDEyNTAxOTUyMCIsIjB4MCIsMjg2LDMzLDEyLDAsMCwiMHgx
MjUwMTk1NDAiLCIweDAiLDI4NywzMywxMiwwLDAsIjB4MTI1MDE5NTYwIiwiMHgwIiwxNTYsMzMs
MTIsMCwwLCIweDEyNTAxOTU4MCIsIjB4MCIsMTU1LDMzLDEyLDAsMCwiMHgxMjUwMTk1YTAiLCIw
eDAiLDE1NCwzMywxMiwwLDAsIjB4MTI1MDE5NWMwIiwiMHgwIiwxNTMsMzMsMTIsMCwwLCIweDEy
NTAxOTVlMCIsIjB4MCIsMTUyLDMzLDEyLDAsMCwiMHgxMjUwMTk2MDAiLCIweDAiLDE1MSwzMywx
MiwwLDAsIjB4MTI1MDE5NjIwIiwiMHgwIiwxNTAsMzMsMTIsMCwwLCIweDEyNTAxOTY0MCIsIjB4
MCIsMTQ5LDMzLDEyLDAsMCwiMHgxMjUwMTk2NjAiLCIweDAiLDE0OCwzMywxMiwwLDAsIjB4MTI1
MDE5NjgwIiwiMHgwIiwxNDcsMzMsMTIsMCwwLCIweDEyNTAxOTZhMCIsIjB4MCIsMTQ2LDMzLDEy
LDAsMCwiMHgxMjUwMTk2YzAiLCIweDAiLDE0NSwzMywxMiwwLDAsIjB4MTI1MDE5NmUwIiwiMHgw
IiwxNDQsMzMsMTIsMCwwLCIweDEyNTAxOTcwMCIsIjB4MCIsMTQzLDMzLDEyLDAsMCwiMHgxMjUw
MTk3MjAiLCIweDAiLDE0MiwzMywxMiwwLDAsIjB4MTI1MDE5NzQwIiwiMHgwIiwxNDEsMzMsMTIs
MCwwLCIweDEyNTAxOTc2MCIsIjB4MCIsMTQwLDMzLDEyLDAsMCwiMHgxMjUwMTk3ODAiLCIweDAi
LDEzOSwzMywxMiwwLDAsIjB4MTI1MDE5N2EwIiwiMHgwIiwxMzgsMzMsMTIsMCwwLCIweDEyNTAx
OTdjMCIsIjB4MCIsMTM3LDMzLDEyLDAsMCwiMHgxMjUwMTk3ZTAiLCIweDAiLDEzNiwzMywxMiww
LDAsIjB4MTI1MDE5ODAwIiwiMHgwIiwxMzUsMzMsMTIsMCwwLCIweDEyNTAxOTgyMCIsIjB4MCIs
MTM0LDMzLDEyLDAsMCwiMHgxMjUwMTk4NDAiLCIweDAiLDEzMywzMywxMiwwLDAsIjB4MTI1MDE5
ODYwIiwiMHgwIiwxMzIsMzMsMTIsMCwwLCIweDEyNTAxOTg4MCIsIjB4MCIsMTMxLDMzLDEyLDAs
MCwiMHgxMjUwMTk4YTAiLCIweDAiLDEzMCwzMywxMiwwLDAsIjB4MTI1MDE5OGMwIiwiMHgwIiwx
MjksMzMsMTIsMCwwLCIweDEyNTAxOThlMCIsIjB4MCIsMTI4LDMzLDEyLDAsMCwiMHgxMjUwMTk5
MDAiLCIweDAiLDEyNywzMywxMiwwLDAsIjB4MTI1MDE5OTIwIiwiMHgwIiwxMjYsMzMsMTIsMCww
LCIweDEyNTAxOTk0MCIsIjB4MCIsMTI1LDMzLDEyLDAsMCwiMHgxMjUwMTk5NjAiLCIweDAiLDEy
NCwzMywxMiwwLDAsIjB4MTI1MDE5OTgwIiwiMHgwIiwxMjMsMzMsMTIsMCwwLCIweDEyNTAxOTlh
MCIsIjB4MCIsMTIyLDMzLDEyLDAsMCwiMHgxMjUwMTk5YzAiLCIweDAiLDEyMSwzMywxMiwwLDAs
IjB4MTI1MDE5OWUwIiwiMHgwIiwxMjAsMzMsMTIsMCwwLCIweDEyNTAxOWEwMCIsIjB4MCIsMTE5
LDMzLDEyLDAsMCwiMHgxMjUwMTlhMjAiLCIweDAiLDExOCwzMywxMiwwLDAsIjB4MTI1MDE5YTQw
IiwiMHgwIiwxMTcsMzMsMTIsMCwwLCIweDEyNTAxOWE2MCIsIjB4MCIsMTE2LDMzLDEyLDAsMCwi
MHgxMjUwMTlhODAiLCIweDAiLDExNSwzMywxMiwwLDAsIjB4MTI1MDE5YWEwIiwiMHgwIiwxMTQs
MzMsMTIsMCwwLCIweDEyNTAxOWFjMCIsIjB4MCIsMTEzLDMzLDEyLDAsMCwiMHgxMjUwMTlhZTAi
LCIweDAiLDExMiwzMywxMiwwLDAsIjB4MTI1MDE5YjAwIiwiMHgwIiwxMTEsMzMsMTIsMCwwLCIw
eDEyNTAxOWIyMCIsIjB4MCIsMTEwLDMzLDEyLDAsMCwiMHgxMjUwMTliNDAiLCIweDAiLDEwOSwz
MywxMiwwLDAsIjB4MTI1MDE5YjYwIiwiMHgwIiwxMDgsMzMsMTIsMCwwLCIweDEyNTAxOWI4MCIs
IjB4MCIsMTA3LDMzLDEyLDAsMCwiMHgxMjUwMTliYTAiLCIweDAiLDEwNiwzMywxMiwwLDAsIjB4
MTI1MDE5YmMwIiwiMHgwIiwxMDUsMzMsMTIsMCwwLCIweDEyNTAxOWJlMCIsIjB4MCIsMTA0LDMz
LDEyLDAsMCwiMHgxMjUwMTljMDAiLCIweDAiLDEwMywzMywxMiwwLDAsIjB4MTI1MDE5YzIwIiwi
MHgwIiwxMDIsMzMsMTIsMCwwLCIweDEyNTAxOWM0MCIsIjB4MCIsMTAxLDMzLDEyLDAsMCwiMHgx
MjUwMTljNjAiLCIweDAiLDEwMCwzMywxMiwwLDAsIjB4MTI1MDE5YzgwIiwiMHgwIiw5OSwzMywx
MiwwLDAsIjB4MTI1MDE5Y2EwIiwiMHgwIiw5OCwzMywxMiwwLDAsIjB4MTI1MDE5Y2MwIiwiMHgw
Iiw5NywzMywxMiwwLDAsIjB4MTI1MDE5Y2UwIiwiMHgwIiw5NiwzMywxMiwwLDAsIjB4MTI1MDE5
ZDAwIiwiMHgwIiw5NSwzMywxMiwwLDAsIjB4MTI1MDE5ZDIwIiwiMHgwIiw5NCwzMywxMiwwLDAs
IjB4MTI1MDE5ZDQwIiwiMHgwIiw5MywzMywxMiwwLDAsIjB4MTI1MDE5ZDYwIiwiMHgwIiw5Miwz
MywxMiwwLDAsIjB4MTI1MDE5ZDgwIiwiMHgwIiw5MSwzMywxMiwwLDAsIjB4MTI1MDE5ZGEwIiwi
MHgwIiw5MCwzMywxMiwwLDAsIjB4MTI1MDE5ZGMwIiwiMHgwIiw4OSwzMywxMiwwLDAsIjB4MTI1
MDE5ZGUwIiwiMHgwIiw4OCwzMywxMiwwLDAsIjB4MTI1MDE5ZTAwIiwiMHgwIiw4NywzMywxMiww
LDAsIjB4MTI1MDE5ZTIwIiwiMHgwIiw4NiwzMywxMiwwLDAsIjB4MTI1MDE5ZTQwIiwiMHgwIiw4
NSwzMywxMiwwLDAsIjB4MTI1MDE5ZTYwIiwiMHgwIiw4NCwzMywxMiwwLDAsIjB4MTI1MDE5ZTgw
IiwiMHgwIiw4MywzMywxMiwwLDAsIjB4MTI1MDE5ZWEwIiwiMHgwIiw4MiwzMywxMiwwLDAsIjB4
MTI1MDE5ZWMwIiwiMHgwIiw4MSwzMywxMiwwLDAsIjB4MTI1MDE5ZWUwIiwiMHgwIiw4MCwzMywx
MiwwLDAsIjB4MTI1MDE5ZjAwIiwiMHgwIiw3OSwzMywxMiwwLDAsIjB4MTI1MDE5ZjIwIiwiMHgw
Iiw3OCwzMywxMiwwLDAsIjB4MTI1MDE5ZjQwIiwiMHgwIiw3NywzMywxMiwwLDAsIjB4MTI1MDE5
ZjYwIiwiMHgwIiw3NiwzMywxMiwwLDAsIjB4MTI1MDE5ZjgwIiwiMHgwIiw3NSwzMywxMiwwLDAs
IjB4MTI1MDE5ZmEwIiwiMHgwIiw3NCwzMywxMiwwLDAsIjB4MTI1MDE5ZmMwIiwiMHgwIiw3Mywz
MywxMiwwLDAsIjB4MTI1MDE5ZmUwIiwiMHgwIiw3MiwzMywxMiwwLDAsIjB4MTI1MDFhMDAwIiwi
MHgwIiw3MSwzNSwxMiwwLDAsIjB4MTI1MDFhMDIwIiwiMHgwIiw3MCwzOSwxMiwwLDAsIjB4MTI1
MDFhMDQwIiwiMHgwIiw2OSwzNSwxMiwwLDAsIjB4MTI1MDFhMDYwIiwiMHgwIiw2OCwzNiwxMiww
LDAsIjB4MTI1MDFhMDgwIiwiMHgwIiw2NywzNCwxMiwwLDAsIjB4MTI1MDFhMGEwIiwiMHgwIiw2
NiwzMywxMiwwLDAsIjB4MTI1MDFhMGMwIiwiMHgwIiw2NSwzNCwxMiwwLDAsIjB4MTI1MDFhMGUw
IiwiMHgwIiw2NCwzNCwxMiwwLDAsIjB4MTI1MDFhMTAwIiwiMHgwIiw2MywzOCwxMiwwLDAsIjB4
MTI1MDFhMTIwIiwiMHgwIiw2MiwzMywxMiwwLDAsIjB4MTI1MDFhMTQwIiwiMHgwIiw2MSwzOCwx
MiwwLDAsIjB4MTI1MDFhMTYwIiwiMHgwIiw2MCwzNCwxMiwwLDAsIjB4MTI1MDFhMTgwIiwiMHgw
Iiw1OSw0MCwxMiwwLDAsIjB4MTI1MDFhMWEwIiwiMHgwIiw1OCw0NSwxMiwwLDAsIjB4MTI1MDFh
MWMwIiwiMHgwIiw1Nyw1MCwxMiwwLDAsIjB4MTI1MDFhMWUwIiwiMHgwIiwyMjE2LDE0OCw2LDAs
MCwiMHgxMjUwNDdjYzAiLCIweDAiLDE0OTUsMTcsMTMsMCwwLCIweDEyNTE3MWU4MCIsIjB4MCIs
MzQ3LDIxNSwxNCwwLDAsIjB4MTI1MTcxZTkwIiwiMHgwIiwxNTU0LDY0LDE1LDAsMCwiMHgxMjUx
NzFlYTAiLCIweDAiLDMzMSwyMCwxNiwwLDAsIjB4MTI1MTcxZWIwIiwiMHgwIiwxNDY3LDE3LDE3
LDAsMCwiMHgxMjUxNzFlYzAiLCIweDAiLDE0NTgsMTcsMTgsMCwwLCIweDEyNTE3MWVkMCIsIjB4
MCIsMTQ0NSwxNywxOSwwLDAsIjB4MTI1MTcxZWUwIiwiMHgwIiwxNDM0LDE3LDIwLDAsMCwiMHgx
MjUxNzFlZjAiLCIweDAiLDEzOTUsMTcsMjEsMCwwLCIweDEyNTE3MWYwMCIsIjB4MCIsMTM3OSwx
NywyMiwwLDAsIjB4MTI1MTcxZjEwIiwiMHgwIiwxMzY1LDE3LDIzLDAsMCwiMHgxMjUxNzFmMzAi
LCIweDAiLDIyOTQsMjMsMjQsMCwwLCIweDEyNTE3MWY1MCIsIjB4MCIsMTI4MCwxNiwyNCwwLDAs
IjB4MTI1MTcxZjYwIiwiMHgwIiw4NjMsMTcsMjUsMCwwLCIweDEyNTE3MWY3MCIsIjB4MCIsNzIy
LDE4LDI2LDAsMCwiMHgxMjUxNzFmZTAiLCIweDAiLDcyOSwxOCwyNywwLDAsIjB4MTI1MTcxZmYw
IiwiMHgwIiw4ODksMTksMjgsMCwwLCIweDEyNTE3MjAwMCIsIjB4MCIsNzczLDE4LDI5LDAsMCwi
MHgxMjUxNzIwMjAiLCIweDAiLDkzMSwxNywzMCwwLDAsIjB4MTI1MTcyMDQwIiwiMHgwIiwyMjk1
LDE4LDMxLDAsMCwiMHgxMjUxNzIwNjAiLCIweDAiLDEyMDQsMTgsMzEsMCwwLCIweDEyNTE3MjA3
MCIsIjB4MCIsMTA0NywxOSwzMSwwLDAsIjB4MTI1MTcyMDgwIiwiMHgwIiwxMTIyLDE5LDMxLDAs
MCwiMHgxMjUxNzIwOTAiLCIweDAiLDk1MywxOCwzMSwwLDAsIjB4MTI1MTcyMGMwIiwiMHgwIiwy
Mjk3LDIxLDMxLDAsMCwiMHgxMjUxNzIwZDAiLCIweDAiLDEwMjMsMjAsMzIsMCwwLCIweDEyNTE3
MjFiMCIsIjB4MCIsOTg5LDE5LDMzLDAsMCwiMHgxMjUxNzIxZDAiLCIweDAiLDk3MCwyMCwzNCww
LDAsIjB4MTI1MTcyMWUwIiwiMHgwIiwyMjM1LDE5LDMxLDAsMCwiMHgxMjUxNzIxZjAiLCIweDAi
LDIyMjQsMTksMzEsMCwwLCIweDEyNTE3MjIwMCIsIjB4MCIsMTI2NSwxOCwzNSwwLDAsIjB4MTI1
MTcyMjEwIiwiMHgwIiwxMjI2LDE4LDM2LDAsMCwiMHgxMjUxNzIyMjAiLCIweDAiLDEyMTAsMTks
MzcsMCwwLCIweDEyNTE3MjI0MCIsIjB4MCIsMTIwNSwyOCwzOCwwLDAsIjB4MTI1MTcyMjUwIiwi
MHgwIiwxMjAwLDI4LDM5LDAsMCwiMHgxMjUxNzIyNjAiLCIweDAiLDk1MiwxOSwzMSwwLDAsIjB4
MTI1MTcyMjgwIiwiMHgwIiwxMTM1LDE5LDQwLDAsMCwiMHgxMjUxNzIyOTAiLCIweDAiLDk5OSwx
OCwzMiwwLDAsIjB4MTI1MTcyMmEwIiwiMHgwIiw5ODEsMTgsNDEsMCwwLCIweDEyNTE3MjJjMCIs
IjB4MCIsMTAxMiwxNyw0MiwwLDAsIjB4MTI1MTcyMmQwIiwiMHgwIiw5NTcsMTcsNDMsMCwwLCIw
eDEyNTE3MjJlMCIsIjB4MCIsOTUwLDI4LDMxLDAsMCwiMHgxMjUxNzIyZjAiLCIweDAiLDIzNzIs
MTYsNDQsMCwwLCIweDEyNTE3MjMxMCIsIjB4MCIsMTM2MCwzMywxMiwwLDAsIjB4MTI1MWU4MDAw
IiwiMHgwIiwxMzIwLDMzLDEyLDAsMCwiMHgxMjUxZTgwNDAiLCIweDAiLDEzMDUsMzMsMTIsMCww
LCIweDEyNTFlODBlMCIsIjB4MCIsMTI4NSwzMywxMiwwLDAsIjB4MTI1MWU4MTIwIiwiMHgwIiwx
MjYwLDMzLDEyLDAsMCwiMHgxMjUxZTgxNDAiLCIweDAiLDEyNDIsMzMsMTIsMCwwLCIweDEyNTFl
ODIwMCIsIjB4MCIsMTIxNywzMywxMiwwLDAsIjB4MTI1MWU4MjIwIiwiMHgwIiw5NTQsMzcsMTIs
MCwwLCIweDEyNTFlODI0MCIsIjB4MCIsOTMyLDMzLDEyLDAsMCwiMHgxMjUxZTgyNjAiLCIweDAi
LDExNjYsNTIsMTIsMCwwLCIweDEyNTFlODI4MCIsIjB4MCIsMTEzOSwzOCwxMiwwLDAsIjB4MTI1
MWU4MmEwIiwiMHgwIiwxNzEwLDQ5LDEyLDAsMCwiMHgxMjUxZTgyYzAiLCIweDAiLDE2NzksMzks
MTIsMCwwLCIweDEyNTFlODMwMCIsIjB4MCIsMTY0OCw0MSwxMiwwLDAsIjB4MTI1MWU4MzIwIiwi
MHgwIiwxNjMyLDMzLDEyLDAsMCwiMHgxMjUxZTgzNjAiLCIweDAiLDE2MDcsMzQsMTIsMCwwLCIw
eDEyNTFlODM4MCIsIjB4MCIsMTU5MCwzMywxMiwwLDAsIjB4MTI1MWU4NDAwIiwiMHgwIiwxNTYz
LDM0LDEyLDAsMCwiMHgxMjUxZTg0NDAiLCIweDAiLDE1MzQsMzUsMTIsMCwwLCIweDEyNTFlODQ2
MCIsIjB4MCIsMTUxOSwzMywxMiwwLDAsIjB4MTI1MWU4NDgwIiwiMHgwIiwxNTA2LDM3LDEyLDAs
MCwiMHgxMjUxZTg0YTAiLCIweDAiLDE0NzksMzcsMTIsMCwwLCIweDEyNTFlODRjMCIsIjB4MCIs
MTQyOCwzNSwxMiwwLDAsIjB4MTI1MWU4NGUwIiwiMHgwIiwxNDEwLDM1LDEyLDAsMCwiMHgxMjUx
ZTg1MDAiLCIweDAiLDEzOTAsMzUsMTIsMCwwLCIweDEyNTFlODUyMCIsIjB4MCIsMTM2NiwzNCwx
MiwwLDAsIjB4MTI1MWU4NTQwIiwiMHgwIiwxMzQ2LDMzLDEyLDAsMCwiMHgxMjUxZTg1NjAiLCIw
eDAiLDEzMzMsMzMsMTIsMCwwLCIweDEyNTFlODU4MCIsIjB4MCIsMTMxMywzMywxMiwwLDAsIjB4
MTI1MWU4NWMwIiwiMHgwIiwxMjk2LDM0LDEyLDAsMCwiMHgxMjUxZTg1ZTAiLCIweDAiLDEyNzks
MzMsMTIsMCwwLCIweDEyNTFlODYwMCIsIjB4MCIsMTI2NCwzNSwxMiwwLDAsIjB4MTI1MWU4NjIw
IiwiMHgwIiwxMjQ1LDM0LDEyLDAsMCwiMHgxMjUxZTg2NDAiLCIweDAiLDEyMjUsMzQsMTIsMCww
LCIweDEyNTFlODY2MCIsIjB4MCIsMTE5MywzMywxMiwwLDAsIjB4MTI1MWU4NjgwIiwiMHgwIiwx
MTc3LDMzLDEyLDAsMCwiMHgxMjUxZTg2YTAiLCIweDAiLDEwMDQsNDYsMTIsMCwwLCIweDEyNTFl
ODZjMCIsIjB4MCIsOTg2LDQxLDEyLDAsMCwiMHgxMjUxZTg2ZTAiLCIweDAiLDExODAsNDYsMTIs
MCwwLCIweDEyNTFlODcwMCIsIjB4MCIsMTE1Niw0MywxMiwwLDAsIjB4MTI1MWU4NzIwIiwiMHgw
IiwxMTQ4LDMzLDEyLDAsMCwiMHgxMjUxZTg3NDAiLCIweDAiLDIyMTEsMzQsMTIsMCwwLCIweDEy
NTFlODc2MCIsIjB4MCIsMjIwNSwzNCwxMiwwLDAsIjB4MTI1MWU4NzgwIiwiMHgwIiwxMzI4LDQx
LDEyLDAsMCwiMHgxMjUxZTg3YTAiLCIweDAiLDE0NDQsNDIsMTIsMCwwLCIweDEyNTFlODdjMCIs
IjB4MCIsMTQ5OCw0MywxMiwwLDAsIjB4MTI1MWU4N2UwIiwiMHgwIiwxNDY4LDQyLDEyLDAsMCwi
MHgxMjUxZTg4MDAiLCIweDAiLDE0MTQsNDUsMTIsMCwwLCIweDEyNTFlODgyMCIsIjB4MCIsMTM4
NCw0NiwxMiwwLDAsIjB4MTI1MWU4ODQwIiwiMHgwIiwxMjM1LDQyLDEyLDAsMCwiMHgxMjUxZTg4
NjAiLCIweDAiLDEzNTcsNDIsMTIsMCwwLCIweDEyNTFlODg4MCIsIjB4MCIsMTIwNiwzMywxMiww
LDAsIjB4MTI1MWU4OGEwIiwiMHgwIiwxNTEzLDMzLDEyLDAsMCwiMHgxMjUxZTg4YzAiLCIweDAi
LDExNjcsMzQsMTIsMCwwLCIweDEyNTFlODhlMCIsIjB4MCIsMTQxOSwzNCwxMiwwLDAsIjB4MTI1
MWU4OTAwIiwiMHgwIiwxMzk4LDMzLDEyLDAsMCwiMHgxMjUxZTg5MjAiLCIweDAiLDEzMTgsMzQs
MTIsMCwwLCIweDEyNTFlODk0MCIsIjB4MCIsMTMwMywzNCwxMiwwLDAsIjB4MTI1MWU4OTYwIiwi
MHgwIiwxMjM3LDMzLDEyLDAsMCwiMHgxMjUxZTg5ODAiLCIweDAiLDEyMTEsMzMsMTIsMCwwLCIw
eDEyNTFlODlhMCIsIjB4MCIsMTE5MCwzMywxMiwwLDAsIjB4MTI1MWU4OWMwIiwiMHgwIiwxMTY0
LDM0LDEyLDAsMCwiMHgxMjUxZTg5ZTAiLCIweDAiLDExNDMsMzMsMTIsMCwwLCIweDEyNTFlOGEw
MCIsIjB4MCIsMTEyNywzMywxMiwwLDAsIjB4MTI1MWU4YTIwIiwiMHgwIiwxMTEyLDMzLDEyLDAs
MCwiMHgxMjUxZThhNDAiLCIweDAiLDEwODYsMzMsMTIsMCwwLCIweDEyNTFlOGE2MCIsIjB4MCIs
MTAwMiwzMywxMiwwLDAsIjB4MTI1MWU4YWEwIiwiMHgwIiw5MjMsMzMsMTIsMCwwLCIweDEyNTFl
OGFjMCIsIjB4MCIsMTEyOSw0NSwxMiwwLDAsIjB4MTI1MWU4YWUwIiwiMHgwIiwxMTUwLDQ1LDEy
LDAsMCwiMHgxMjUxZThiYzAiLCIweDAiLDExMDAsMzYsMTIsMCwwLCIweDEyNTFlOGQyMCIsIjB4
MCIsMTA4OCwzNiwxMiwwLDAsIjB4MTI1MWU4ZDQwIiwiMHgwIiwxMDc1LDM2LDEyLDAsMCwiMHgx
MjUxZThkYTAiLCIweDAiLDEwNjEsMzYsMTIsMCwwLCIweDEyNTFlOGRjMCIsIjB4MCIsMTA0MCwz
NSwxMiwwLDAsIjB4MTI1MWU4ZTIwIiwiMHgwIiwxMDMwLDM1LDEyLDAsMCwiMHgxMjUxZThlNDAi
LCIweDAiLDEwMDcsMzUsMTIsMCwwLCIweDEyNTFlOGVhMCIsIjB4MCIsOTMzLDMzLDEyLDAsMCwi
MHgxMjUxZThlYzAiLCIweDAiLDk5MCwzMywxMiwwLDAsIjB4MTI1MWU4ZjIwIiwiMHgwIiw5NjQs
MzMsMTIsMCwwLCIweDEyNTFlOGY0MCIsIjB4MCIsOTc1LDMzLDEyLDAsMCwiMHgxMjUxZThmYTAi
LCIweDAiLDIzOTYsMzUsMTIsMCwwLCIweDEyNTFlOWRjMCIsIjB4MCIsMTI5MiwxNzYsNDUsMSww
LCIweDEyNTIwOGM2MCIsIjB4MCIsMTYxMSwxNzYsNDUsMSwwLCIweDEyNTIwOGZkMCIsIjB4MCIs
MTI2MiwxNzYsNDUsMSwwLCIweDEyNTIwOWEyMCIsIjB4MCIsMTY5MSwxNzYsNDUsMSwwLCIweDEy
NTIwOWI4MCIsIjB4MCIsMTY2MCwxNzYsNDUsMSwwLCIweDEyNTIwOWVmMCIsIjB4MCIsMTYyMiwx
NzYsNDUsMSwwLCIweDEyNTIwOWZhMCIsIjB4MCIsMTU4MiwxNzYsNDUsMSwwLCIweDEyNTIwYTEw
MCIsIjB4MCIsMTc3MiwxNzYsNDUsMSwwLCIweDEyNTIwYTFiMCIsIjB4MCIsMTcxOSwxNzYsNDUs
MSwwLCIweDEyNTIwYTI2MCIsIjB4MCIsMTU0NiwxNzYsNDUsMSwwLCIweDEyNTIwYTMxMCIsIjB4
MCIsMTUyNCwxNzYsNDUsMSwwLCIweDEyNTIwYTNjMCIsIjB4MCIsMTUwMCwxNzYsNDUsMSwwLCIw
eDEyNTIwYTQ3MCIsIjB4MCIsMTQ4NiwxNzYsNDUsMSwwLCIweDEyNTIwYTY4MCIsIjB4MCIsMTQ1
MSwxNzYsNDUsMSwwLCIweDEyNTIwYTczMCIsIjB4MCIsMTQzMywxNzYsNDUsMSwwLCIweDEyNTIw
YTdlMCIsIjB4MCIsMTM2NywxNzYsNDUsMSwwLCIweDEyNTIwYTlmMCIsIjB4MCIsMTc1MCwxNzYs
NDUsMSwwLCIweDEyNTIwYWI1MCIsIjB4MCIsMTM0MywxNzYsNDUsMSwwLCIweDEyNTIwYWMwMCIs
IjB4MCIsMTI3NCwxNzYsNDUsMSwwLCIweDEyNTIwYWNiMCIsIjB4MCIsMTA0OSwxNzYsNDUsMSww
LCIweDEyNTIwYWQ2MCIsIjB4MCIsMTAxMywxNzYsNDUsMSwwLCIweDEyNTIwYWVjMCIsIjB4MCIs
OTE1LDE3Niw0NSwxLDAsIjB4MTI1MjBiMDIwIiwiMHgwIiwxNTM3LDE3Niw0NSwxLDAsIjB4MTI1
MjBiMjMwIiwiMHgwIiw5NDAsMTc2LDQ1LDEsMCwiMHgxMjUyMGIyZTAiLCIweDAiLDkzNSwxNzYs
NDUsMSwwLCIweDEyNTIwYjRmMCIsIjB4MCIsOTk1LDE3Niw0NSwxLDAsIjB4MTI1MjBiNWEwIiwi
MHgwIiw4OTIsMTc2LDQ1LDEsMCwiMHgxMjUyMGI2NTAiLCIweDAiLDkwMiwxNzYsNDUsMSwwLCIw
eDEyNTIwYjcwMCIsIjB4MCIsMTY1MSwzNywxMiwwLDAsIjB4MTI1MjEwMDgwIiwiMHgwIiwxNjUw
LDM0LDEyLDAsMCwiMHgxMjUyMTAxODAiLCIweDAiLDE2NTcsMzYsMTIsMCwwLCIweDEyNTIxMDRj
MCIsIjB4MCIsMTY2OSwzNiwxMiwwLDAsIjB4MTI1MjEwODAwIiwiMHgwIiwxNjc2LDM1LDEyLDAs
MCwiMHgxMjUyMTA4MjAiLCIweDAiLDE2NzAsMzcsMTIsMCwwLCIweDEyNTIxMDg0MCIsIjB4MCIs
MTY3OCwzOCwxMiwwLDAsIjB4MTI1MjExMWUwIiwiMHgwIiwxNjkwLDM3LDEyLDAsMCwiMHgxMjUy
MTEyMDAiLCIweDAiLDE2OTksMzcsMTIsMCwwLCIweDEyNTIxMTIyMCIsIjB4MCIsMTY4OCwzNywx
MiwwLDAsIjB4MTI1MjExMjQwIiwiMHgwIiwxNzAxLDM1LDEyLDAsMCwiMHgxMjUyMTEyNjAiLCIw
eDAiLDE3MTIsMzQsMTIsMCwwLCIweDEyNTIxMTI4MCIsIjB4MCIsMTcxOCwzNCwxMiwwLDAsIjB4
MTI1MjExOGMwIiwiMHgwIiwxNzI1LDMzLDEyLDAsMCwiMHgxMjUyMTE4ZTAiLCIweDAiLDE3Mjcs
MzMsMTIsMCwwLCIweDEyNTIxMTkwMCIsIjB4MCIsMTczOSwzMywxMiwwLDAsIjB4MTI1MjExOTgw
IiwiMHgwIiwxNzQ0LDM3LDEyLDAsMCwiMHgxMjUyMTFhMDAiLCIweDAiLDE3NTgsMzYsMTIsMCww
LCIweDEyNTIxMWEyMCIsIjB4MCIsMTc0NiwzNywxMiwwLDAsIjB4MTI1MjExYTQwIiwiMHgwIiwx
NzYwLDM1LDEyLDAsMCwiMHgxMjUyMTFhNjAiLCIweDAiLDE3NTksMzUsMTIsMCwwLCIweDEyNTIx
MWE4MCIsIjB4MCIsMTc2OSwzNywxMiwwLDAsIjB4MTI1MjExYWEwIiwiMHgwIiwxNzY2LDM2LDEy
LDAsMCwiMHgxMjUyMTFhYzAiLCIweDAiLDUzMSwzNSwxMiwwLDAsIjB4MTI1MjExYWUwIiwiMHgw
Iiw1MjgsMzUsMTIsMCwwLCIweDEyNTIxMWIwMCIsIjB4MCIsNTI1LDM5LDEyLDAsMCwiMHgxMjUy
MTFiMjAiLCIweDAiLDUyMiwzNiwxMiwwLDAsIjB4MTI1MjExZDgwIiwiMHgwIiw1MTksMzcsMTIs
MCwwLCIweDEyNTIxMWZlMCIsIjB4MCIsNTE2LDM2LDEyLDAsMCwiMHgxMjUyMTJlYzAiLCIweDAi
LDUxMywzOCwxMiwwLDAsIjB4MTI1MjEyZWUwIiwiMHgwIiw1MTAsMzYsMTIsMCwwLCIweDEyNTIx
MmYwMCIsIjB4MCIsNTA3LDM1LDEyLDAsMCwiMHgxMjUyMTJmMjAiLCIweDAiLDUwNCwzNywxMiww
LDAsIjB4MTI1MjEyZjQwIiwiMHgwIiw1MDEsMzgsMTIsMCwwLCIweDEyNTIxMmZlMCIsIjB4MCIs
NDk4LDM3LDEyLDAsMCwiMHgxMjUyMTMwMDAiLCIweDAiLDE4MjksMzUsMTIsMCwwLCIweDEyNTIx
MzAyMCIsIjB4MCIsMTgyMywzNSwxMiwwLDAsIjB4MTI1MjEzMDQwIiwiMHgwIiwxODE3LDM1LDEy
LDAsMCwiMHgxMjUyMTMwNjAiLCIweDAiLDE4MDksMzUsMTIsMCwwLCIweDEyNTIxMzA4MCIsIjB4
MCIsMTgwMSwzNywxMiwwLDAsIjB4MTI1MjEzMGEwIiwiMHgwIiwxNzkzLDM3LDEyLDAsMCwiMHgx
MjUyMTMwYzAiLCIweDAiLDE3ODUsMzUsMTIsMCwwLCIweDEyNTIxMzBlMCIsIjB4MCIsMTc3Nywz
NCwxMiwwLDAsIjB4MTI1MjEzMTAwIiwiMHgwIiwxNzYyLDM4LDEyLDAsMCwiMHgxMjUyMTMxMjAi
LCIweDAiLDE3MzIsMzUsMTIsMCwwLCIweDEyNTIxMzE0MCIsIjB4MCIsMTcxNiwzNSwxMiwwLDAs
IjB4MTI1MjEzMTYwIiwiMHgwIiwxNjk1LDM1LDEyLDAsMCwiMHgxMjUyMTMxODAiLCIweDAiLDE2
NzcsMzQsMTIsMCwwLCIweDEyNTIxMzFhMCIsIjB4MCIsMTY0NCwzNiwxMiwwLDAsIjB4MTI1MjEz
MjQwIiwiMHgwIiwxNjIzLDM1LDEyLDAsMCwiMHgxMjUyMTMyODAiLCIweDAiLDM0MywzNiwxMiww
LDAsIjB4MTI1MjEzMmEwIiwiMHgwIiwzNDAsMzcsMTIsMCwwLCIweDEyNTIxMzMwMCIsIjB4MCIs
MzM1LDM2LDEyLDAsMCwiMHgxMjUyMTMzMjAiLCIweDAiLDIzNTEsMzUsMTIsMCwwLCIweDEyNTIx
MzM0MCIsIjB4MCIsMjMzNSwzMywxMiwwLDAsIjB4MTI1MjEzMzYwIiwiMHgwIiwxNDg0LDM3LDEy
LDAsMCwiMHgxMjUyMTMzODAiLCIweDAiLDE0NzEsNDQsMTIsMCwwLCIweDEyNTIxMzNhMCIsIjB4
MCIsMTQ2NSwzOCwxMiwwLDAsIjB4MTI1MjEzM2MwIiwiMHgwIiwxNDQ3LDM4LDEyLDAsMCwiMHgx
MjUyMTMzZTAiLCIweDAiLDE0MDYsNDEsMTIsMCwwLCIweDEyNTIxMzQwMCIsIjB4MCIsMTM5Niw0
MCwxMiwwLDAsIjB4MTI1MjEzNDQwIiwiMHgwIiwxMzgzLDQ0LDEyLDAsMCwiMHgxMjUyMTM0ODAi
LCIweDAiLDc1NSw0NCwxMiwwLDAsIjB4MTI1MjEzNGEwIiwiMHgwIiw3NzAsNDQsMTIsMCwwLCIw
eDEyNTIxMzRjMCIsIjB4MCIsNzc4LDQ2LDEyLDAsMCwiMHgxMjUyMTM0ZTAiLCIweDAiLDIzMjQs
MzMsMTIsMCwwLCIweDEyNTIxMzUwMCIsIjB4MCIsMjMxMywzMywxMiwwLDAsIjB4MTI1MjEzNTIw
IiwiMHgwIiwyMzE5LDM3LDEyLDAsMCwiMHgxMjUyMTM1NDAiLCIweDAiLDExOTcsNDMsMTIsMCww
LCIweDEyNTIxMzU2MCIsIjB4MCIsMTIwOCwzOCwxMiwwLDAsIjB4MTI1MjEzNTgwIiwiMHgwIiwx
MDM5LDQ2LDEyLDAsMCwiMHgxMjUyMTM1YTAiLCIweDAiLDEwNjksMzgsMTIsMCwwLCIweDEyNTIx
MzVjMCIsIjB4MCIsMTA2NCwzNCwxMiwwLDAsIjB4MTI1MjEzNWUwIiwiMHgwIiwxMTE2LDQ0LDEy
LDAsMCwiMHgxMjUyMTM2MDAiLCIweDAiLDExNDQsMzgsMTIsMCwwLCIweDEyNTIxMzY0MCIsIjB4
MCIsMTE0MSwzNCwxMiwwLDAsIjB4MTI1MjEzNjYwIiwiMHgwIiw5NDcsNDAsMTIsMCwwLCIweDEy
NTIxMzY4MCIsIjB4MCIsOTU2LDM4LDEyLDAsMCwiMHgxMjUyMTM2YTAiLCIweDAiLDIzMDcsMzMs
MTIsMCwwLCIweDEyNTIxMzZjMCIsIjB4MCIsMTAzNCw1NCwxMiwwLDAsIjB4MTI1MjEzNmUwIiwi
MHgwIiwxMDI2LDU0LDEyLDAsMCwiMHgxMjUyMTM3MDAiLCIweDAiLDEwMTEsNDUsMTIsMCwwLCIw
eDEyNTIxMzcyMCIsIjB4MCIsOTkyLDQ1LDEyLDAsMCwiMHgxMjUyMTM3NDAiLCIweDAiLDk4Myw0
OSwxMiwwLDAsIjB4MTI1MjEzNzYwIiwiMHgwIiw5NzIsNDksMTIsMCwwLCIweDEyNTIxMzc4MCIs
IjB4MCIsMjIzNiwzNywxMiwwLDAsIjB4MTI1MjEzN2EwIiwiMHgwIiwyMjM0LDM3LDEyLDAsMCwi
MHgxMjUyMTM3ZTAiLCIweDAiLDIyMjUsMzcsMTIsMCwwLCIweDEyNTIxMzg2MCIsIjB4MCIsMjIy
MywzNywxMiwwLDAsIjB4MTI1MjEzOGEwIiwiMHgwIiw3MTksMzksMTIsMCwwLCIweDEyNTIxMzhj
MCIsIjB4MCIsMjMxNiwzOSwxMiwwLDAsIjB4MTI1MjEzOTAwIiwiMHgwIiwyMzA4LDM1LDEyLDAs
MCwiMHgxMjUyMTM5YTAiLCIweDAiLDIzMTEsMzUsMTIsMCwwLCIweDEyNTIxMzljMCIsIjB4MCIs
MjMxNywzNywxMiwwLDAsIjB4MTI1MjEzOWUwIiwiMHgwIiwyMzIwLDM5LDEyLDAsMCwiMHgxMjUy
MTNhMDAiLCIweDAiLDIzNzEsMzUsMTIsMCwwLCIweDEyNTIxM2EyMCIsIjB4MCIsMjM0NywzOCwx
MiwwLDAsIjB4MTI1MjEzYTQwIiwiMHgwIiwyMzU5LDM4LDEyLDAsMCwiMHgxMjUyMTNhNjAiLCIw
eDAiLDIzNTIsMzgsMTIsMCwwLCIweDEyNTIxM2E4MCIsIjB4MCIsMjM2MCwzMywxMiwwLDAsIjB4
MTI1MjEzYWEwIiwiMHgwIiwyMjYxLDMzLDEyLDAsMCwiMHgxMjUyMTNhYzAiLCIweDAiLDIyNTgs
NDMsMTIsMCwwLCIweDEyNTIxM2FlMCIsIjB4MCIsMjIxNywzOCwxMiwwLDAsIjB4MTI1MjEzYjAw
IiwiMHgwIiwyMjU0LDM3LDEyLDAsMCwiMHgxMjUyMTNiMjAiLCIweDAiLDIyMTMsNDAsMTIsMCww
LCIweDEyNTIxM2I0MCIsIjB4MCIsMjI1MCwzMywxMiwwLDAsIjB4MTI1MjEzYjYwIiwiMHgwIiwy
MjQ3LDMzLDEyLDAsMCwiMHgxMjUyMTNiODAiLCIweDAiLDIyNDQsMzMsMTIsMCwwLCIweDEyNTIx
M2JhMCIsIjB4MCIsMjI0MSwzMywxMiwwLDAsIjB4MTI1MjEzYmMwIiwiMHgwIiwyMjM4LDM4LDEy
LDAsMCwiMHgxMjUyMTNiZTAiLCIweDAiLDEyNjcsNDcsMTIsMCwwLCIweDEyNTIxM2M0MCIsIjB4
MCIsMTIzMCwzOSwxMiwwLDAsIjB4MTI1MjEzY2EwIiwiMHgwIiwxMjE0LDM5LDEyLDAsMCwiMHgx
MjUyMTNjYzAiLCIweDAiLDE0MDAsNDAsMTIsMCwwLCIweDEyNTIxM2Q2MCIsIjB4MCIsMTM1OCwz
NSwxMiwwLDAsIjB4MTI1MjEzZDgwIiwiMHgwIiwxMzI5LDMzLDEyLDAsMCwiMHgxMjUyMTNkYTAi
LCIweDAiLDEzMDQsMzMsMTIsMCwwLCIweDEyNTIxM2RjMCIsIjB4MCIsMTI4OSwzMywxMiwwLDAs
IjB4MTI1MjEzZGUwIiwiMHgwIiwxMjY5LDMzLDEyLDAsMCwiMHgxMjUyMTNlMDAiLCIweDAiLDEy
NDgsMzMsMTIsMCwwLCIweDEyNTIxM2UyMCIsIjB4MCIsMTIyMCwzMywxMiwwLDAsIjB4MTI1MjEz
ZTQwIiwiMHgwIiwxNDQxLDQwLDEyLDAsMCwiMHgxMjUyMTNlNjAiLCIweDAiLDEzOTcsMzUsMTIs
MCwwLCIweDEyNTIxM2VhMCIsIjB4MCIsMTUyOSwzNiwxMiwwLDAsIjB4MTI1MjRiMTIwIiwiMHgw
IiwxNTM5LDM2LDEyLDAsMCwiMHgxMjUyNGIxNDAiLCIweDAiLDE1NTAsMzQsMTIsMCwwLCIweDEy
NTI0YjE2MCIsIjB4MCIsMTU2NywzNCwxMiwwLDAsIjB4MTI1MjRiMzAwIiwiMHgwIiwxNTU2LDM1
LDEyLDAsMCwiMHgxMjUyNGI4NjAiLCIweDAiLDE1NTgsMzcsMTIsMCwwLCIweDEyNTI0Yjg4MCIs
IjB4MCIsMTU3OSwzNiwxMiwwLDAsIjB4MTI1MjRiOGEwIiwiMHgwIiwxNTgwLDM2LDEyLDAsMCwi
MHgxMjUyNGI5MjAiLCIweDAiLDE2MDIsMzYsMTIsMCwwLCIweDEyNTI0Yjk4MCIsIjB4MCIsMTU5
OCwzMywxMiwwLDAsIjB4MTI1MjRiOWEwIiwiMHgwIiwxNjIwLDM3LDEyLDAsMCwiMHgxMjUyNGI5
YzAiLCIweDAiLDE2MDAsMzYsMTIsMCwwLCIweDEyNTI0YjllMCIsIjB4MCIsMTYyNCwzNywxMiww
LDAsIjB4MTI1MjRiYTQwIiwiMHgwIiwxNjE3LDM3LDEyLDAsMCwiMHgxMjUyNGJhNjAiLCIweDAi
LDE2MzYsMzYsMTIsMCwwLCIweDEyNTI0YmE4MCIsIjB4MCIsMTYzMCwzNiwxMiwwLDAsIjB4MTI1
MjRiYWEwIiwiMHgwIiwxNjQ1LDM4LDEyLDAsMCwiMHgxMjUyNGJhZTAiLCIweDAiLDgzMSwzMiw0
NiwxLDAsIjB4MTI1MzgwMDQwIiwiMHgwIiw3MTcsMzIsNDYsMSwwLCIweDEyNTM4MDA4MCIsIjB4
MCIsNzI1LDMyLDQ2LDEsMCwiMHgxMjUzODAwYzAiLCIweDAiLDczNiwzMiw0NiwxLDAsIjB4MTI1
MzgwM2MwIiwiMHgwIiw3NTcsMzIsNDYsMSwwLCIweDEyNTM4MDUyMCIsIjB4MCIsNzYyLDMyLDQ2
LDEsMCwiMHgxMjUzODA1NDAiLCIweDAiLDc2NywzMiw0NiwxLDAsIjB4MTI1MzgwNTgwIiwiMHgw
Iiw3NjUsMzIsNDYsMSwwLCIweDEyNTM4MDcwMCIsIjB4MCIsNzc0LDMyLDQ2LDEsMCwiMHgxMjUz
ODA3MjAiLCIweDAiLDc4OSwzMiw0NiwxLDAsIjB4MTI1MzgwN2EwIiwiMHgwIiw4MDQsMzIsNDYs
MSwwLCIweDEyNTM4MDdjMCIsIjB4MCIsNzk0LDMyLDQ2LDEsMCwiMHgxMjUzODA4ODAiLCIweDAi
LDgwMSwzMiw0NiwxLDAsIjB4MTI1MzgwOGEwIiwiMHgwIiw4NTMsMzIsNDYsMSwwLCIweDEyNTM4
MDhjMCIsIjB4MCIsODEzLDMyLDQ2LDEsMCwiMHgxMjUzODA4ZTAiLCIweDAiLDgzNCwzMiw0Niwx
LDAsIjB4MTI1MzgwOTAwIiwiMHgwIiw4MjYsMzIsNDYsMSwwLCIweDEyNTM4MDkyMCIsIjB4MCIs
ODM3LDMyLDQ2LDEsMCwiMHgxMjUzODA5NDAiLCIweDAiLDg0NSwzMiw0NiwxLDAsIjB4MTI1Mzgw
YTIwIiwiMHgwIiw4NTksMzIsNDYsMSwwLCIweDEyNTM4MGJhMCIsIjB4MCIsODY0LDMyLDQ2LDEs
MCwiMHgxMjUzODBiYzAiLCIweDAiLDg1OCwzMiw0NiwxLDAsIjB4MTI1MzgwYmUwIiwiMHgwIiw4
NjgsMzIsNDYsMSwwLCIweDEyNTM4MGMwMCIsIjB4MCIsODc4LDMyLDQ2LDEsMCwiMHgxMjUzODBj
NjAiLCIweDAiLDg3NiwzMiw0NiwxLDAsIjB4MTI1MzgwYzgwIiwiMHgwIiwyMzY0LDMyLDQ2LDEs
MCwiMHgxMjUzODBjZTAiLCIweDAiLDIzNDIsMzIsNDYsMSwwLCIweDEyNTM4MGQwMCIsIjB4MCIs
Nzc5LDMyLDQ2LDEsMCwiMHgxMjUzODBmNDAiLCIweDAiLDEyMzMsMzIsNDYsMSwwLCIweDEyNTM4
MGY2MCIsIjB4MCIsMTM0NCwzMiw0NiwxLDAsIjB4MTI1MzgwZjgwIiwiMHgwIiwxMzg5LDMyLDQ2
LDEsMCwiMHgxMjUzODBmYzAiLCIweDAiLDExNTUsMzIsNDYsMSwwLCIweDEyNTM4MGZlMCIsIjB4
MCIsMTQ1NiwzMiw0NiwxLDAsIjB4MTI1MzgxMDAwIiwiMHgwIiwxMDQ4LDMyLDQ2LDEsMCwiMHgx
MjUzODEwODAiLCIweDAiLDk3NCwzMiw0NiwxLDAsIjB4MTI1MzgxMTAwIiwiMHgwIiwxMzU1LDMy
LDQ2LDEsMCwiMHgxMjUzODE1ZTAiLCIweDAiLDEzMjcsMzIsNDYsMSwwLCIweDEyNTM4MTYwMCIs
IjB4MCIsMTI5NCwzMiw0NiwxLDAsIjB4MTI1MzgxNzYwIiwiMHgwIiwxNjEzLDMyLDQ2LDEsMCwi
MHgxMjUzODE4YTAiLCIweDAiLDEyNjMsMzIsNDYsMSwwLCIweDEyNTM4MThjMCIsIjB4MCIsMTY5
MywzMiw0NiwxLDAsIjB4MTI1MzgxYTAwIiwiMHgwIiwxNjYyLDMyLDQ2LDEsMCwiMHgxMjUzODFh
NDAiLCIweDAiLDE2MjUsMzIsNDYsMSwwLCIweDEyNTM4MWE2MCIsIjB4MCIsMTU4NCwzMiw0Niwx
LDAsIjB4MTI1MzgxYTgwIiwiMHgwIiwxNzczLDMyLDQ2LDEsMCwiMHgxMjUzODFiNDAiLCIweDAi
LDE3MjEsMzIsNDYsMSwwLCIweDEyNTM4MWI4MCIsIjB4MCIsMTU0OCwzMiw0NiwxLDAsIjB4MTI1
MzgxY2EwIiwiMHgwIiwxNTI2LDMyLDQ2LDEsMCwiMHgxMjUzODFkNjAiLCIweDAiLDE1MDMsMzIs
NDYsMSwwLCIweDEyNTM4MWRhMCIsIjB4MCIsMTQ4NywzMiw0NiwxLDAsIjB4MTI1MzgyMGMwIiwi
MHgwIiwxNDUyLDMyLDQ2LDEsMCwiMHgxMjUzODIzODAiLCIweDAiLDE0MzYsMzIsNDYsMSwwLCIw
eDEyNTM4MjNhMCIsIjB4MCIsMTM2OCwzMiw0NiwxLDAsIjB4MTI1MzgyNDAwIiwiMHgwIiwxNzUy
LDMyLDQ2LDEsMCwiMHgxMjUzODI0MjAiLCIweDAiLDEzNDUsMzIsNDYsMSwwLCIweDEyNTM4MjQ4
MCIsIjB4MCIsMTI3NiwzMiw0NiwxLDAsIjB4MTI1MzgyNjIwIiwiMHgwIiwxMDU3LDMyLDQ2LDEs
MCwiMHgxMjUzODI2ZTAiLCIweDAiLDEwMTQsMzIsNDYsMSwwLCIweDEyNTM4MmFjMCIsIjB4MCIs
OTE2LDMyLDQ2LDEsMCwiMHgxMjUzODJhZTAiLCIweDAiLDE1MzgsMzIsNDYsMSwwLCIweDEyNTM4
MmIwMCIsIjB4MCIsOTQzLDMyLDQ2LDEsMCwiMHgxMjUzODJiMjAiLCIweDAiLDkzNywzMiw0Niwx
LDAsIjB4MTI1MzgyYmEwIiwiMHgwIiw5OTcsMzIsNDYsMSwwLCIweDEyNTM4MmNhMCIsIjB4MCIs
ODk0LDMyLDQ2LDEsMCwiMHgxMjUzODMyODAiLCIweDAiLDkwNCwzMiw0NiwxLDAsIjB4MTI1Mzgz
MmMwIiwiMHgwIiw4ODYsMzIsNDYsMSwwLCIweDEyNTM4MzJlMCIsIjB4MCIsMjE4NiwzMiw0Niwx
LDAsIjB4MTI1MzgzMzAwIiwiMHgwIiw3NjAsMTc2LDQ1LDEsMCwiMHgxMjUzZWQ4YzAiLCIweDAi
LDc2NCwxNzYsNDUsMSwwLCIweDEyNTNlZGMzMCIsIjB4MCIsNzYzLDE3Niw0NSwxLDAsIjB4MTI1
M2VkY2UwIiwiMHgwIiw3NzIsMTc2LDQ1LDEsMCwiMHgxMjUzZWRkOTAiLCIweDAiLDc4OCwxNzYs
NDUsMSwwLCIweDEyNTNlZGU0MCIsIjB4MCIsODAzLDE3Niw0NSwxLDAsIjB4MTI1M2VkZWYwIiwi
MHgwIiw3OTIsMTc2LDQ1LDEsMCwiMHgxMjUzZWRmYTAiLCIweDAiLDgwMCwxNzYsNDUsMSwwLCIw
eDEyNTNlZTA1MCIsIjB4MCIsODQ4LDE3Niw0NSwxLDAsIjB4MTI1M2VlMTAwIiwiMHgwIiw4MTEs
MTc2LDQ1LDEsMCwiMHgxMjUzZWUxYjAiLCIweDAiLDgzMiwxNzYsNDUsMSwwLCIweDEyNTNlZTI2
MCIsIjB4MCIsODIyLDE3Niw0NSwxLDAsIjB4MTI1M2VlMzEwIiwiMHgwIiw4MzUsMTc2LDQ1LDEs
MCwiMHgxMjUzZWUzYzAiLCIweDAiLDg0MywxNzYsNDUsMSwwLCIweDEyNTNlZTQ3MCIsIjB4MCIs
ODU3LDE3Niw0NSwxLDAsIjB4MTI1M2VlOTQwIiwiMHgwIiw4NjAsMTc2LDQ1LDEsMCwiMHgxMjUz
ZWVhYTAiLCIweDAiLDg1NiwxNzYsNDUsMSwwLCIweDEyNTNlZWI1MCIsIjB4MCIsODY1LDE3Niw0
NSwxLDAsIjB4MTI1M2VmOTEwIiwiMHgwIiw4NzcsMTc2LDQ1LDEsMCwiMHgxMjUzZWY5YzAiLCIw
eDAiLDg3Myw4MCw0NywwLDAsIjB4MTI2MDQzZGUwIiwiMHgwIiw5NzEsOTYsNywxLDAsIjB4MTI2
MDUwMDAwIiwiMHgwIiw5NjAsOTYsNywxLDAsIjB4MTI2MDUwMDYwIiwiMHgwIiw5ODcsOTYsNywx
LDAsIjB4MTI2MDUwMGMwIiwiMHgwIiw5MjksOTYsNywxLDAsIjB4MTI2MDUwMTIwIiwiMHgwIiwx
MDAzLDk2LDcsMSwwLCIweDEyNjA1MDE4MCIsIjB4MCIsMTAyNyw5Niw3LDEsMCwiMHgxMjYwNTAx
ZTAiLCIweDAiLDEwMzcsOTYsNywxLDAsIjB4MTI2MDUwMjQwIiwiMHgwIiwxMDU0LDk2LDcsMSww
LCIweDEyNjA1MDJhMCIsIjB4MCIsMTA3Myw5Niw3LDEsMCwiMHgxMjYwNTAzMDAiLCIweDAiLDEw
ODQsOTYsNywxLDAsIjB4MTI2MDUwMzYwIiwiMHgwIiwxMDk4LDk2LDcsMSwwLCIweDEyNjA1MDNj
MCIsIjB4MCIsMTE0NSw5Niw3LDEsMCwiMHgxMjYwNTA0MjAiLCIweDAiLDExMjYsOTYsNywxLDAs
IjB4MTI2MDUwNDgwIiwiMHgwIiw5NDIsOTYsNywxLDAsIjB4MTI2MDUwNGUwIiwiMHgwIiw5MTEs
OTYsNywxLDAsIjB4MTI2MDUwNTQwIiwiMHgwIiw5OTYsOTYsNywxLDAsIjB4MTI2MDUwNWEwIiwi
MHgwIiwxMDgxLDk2LDcsMSwwLCIweDEyNjA1MDYwMCIsIjB4MCIsMTEwNyw5Niw3LDEsMCwiMHgx
MjYwNTA2NjAiLCIweDAiLDExMjQsOTYsNywxLDAsIjB4MTI2MDUwNmMwIiwiMHgwIiwxMTM3LDk2
LDcsMSwwLCIweDEyNjA1MDcyMCIsIjB4MCIsMTE1OCw5Niw3LDEsMCwiMHgxMjYwNTA3ODAiLCIw
eDAiLDExODMsOTYsNywxLDAsIjB4MTI2MDUwN2UwIiwiMHgwIiwxMjAzLDk2LDcsMSwwLCIweDEy
NjA1MDg0MCIsIjB4MCIsMTIzNCw5Niw3LDEsMCwiMHgxMjYwNTA4YTAiLCIweDAiLDEzMDAsOTYs
NywxLDAsIjB4MTI2MDUwOTAwIiwiMHgwIiwxMzE3LDk2LDcsMSwwLCIweDEyNjA1MDk2MCIsIjB4
MCIsMTM5Myw5Niw3LDEsMCwiMHgxMjYwNTA5YzAiLCIweDAiLDE0MTcsOTYsNywxLDAsIjB4MTI2
MDUwYTIwIiwiMHgwIiwxMTUyLDk2LDcsMSwwLCIweDEyNjA1MGE4MCIsIjB4MCIsMTUxMiw5Niw3
LDEsMCwiMHgxMjYwNTBhZTAiLCIweDAiLDEyMDIsOTYsNywxLDAsIjB4MTI2MDUwYjQwIiwiMHgw
IiwxMzUzLDk2LDcsMSwwLCIweDEyNjA1MGJhMCIsIjB4MCIsMTIzMSw5Niw3LDEsMCwiMHgxMjYw
NTBjMDAiLCIweDAiLDEzODAsOTYsNywxLDAsIjB4MTI2MDUwYzYwIiwiMHgwIiwxNDEzLDk2LDcs
MSwwLCIweDEyNjA1MGNjMCIsIjB4MCIsMTQ2Niw5Niw3LDEsMCwiMHgxMjYwNTBkMjAiLCIweDAi
LDE0OTEsOTYsNywxLDAsIjB4MTI2MDUwZDgwIiwiMHgwIiwxNDQzLDk2LDcsMSwwLCIweDEyNjA1
MGRlMCIsIjB4MCIsMTMyMyw5Niw3LDEsMCwiMHgxMjYwNTBlNDAiLCIweDAiLDIyMDIsOTYsNywx
LDAsIjB4MTI2MDUwZWEwIiwiMHgwIiwyMjEwLDk2LDcsMSwwLCIweDEyNjA1MGYwMCIsIjB4MCIs
MTE0Niw5Niw3LDEsMCwiMHgxMjYwNTBmNjAiLCIweDAiLDExNzYsOTYsNywxLDAsIjB4MTI2MDUw
ZmMwIiwiMHgwIiwxMTczLDk2LDcsMSwwLCIweDEyNjA1MTAyMCIsIjB4MCIsMTE5MSw5Niw3LDEs
MCwiMHgxMjYwNTEwODAiLCIweDAiLDEyMjEsOTYsNywxLDAsIjB4MTI2MDUxMGUwIiwiMHgwIiwx
MjQxLDk2LDcsMSwwLCIweDEyNjA1MTE0MCIsIjB4MCIsMTI1OSw5Niw3LDEsMCwiMHgxMjYwNTEx
YTAiLCIweDAiLDEyNzUsOTYsNywxLDAsIjB4MTI2MDUxMjAwIiwiMHgwIiwxMjkzLDk2LDcsMSww
LCIweDEyNjA1MTI2MCIsIjB4MCIsMTMxMCw5Niw3LDEsMCwiMHgxMjYwNTEyYzAiLCIweDAiLDEz
MzAsOTYsNywxLDAsIjB4MTI2MDUxMzIwIiwiMHgwIiwxMzQyLDk2LDcsMSwwLCIweDEyNjA1MTM4
MCIsIjB4MCIsMTM2NCw5Niw3LDEsMCwiMHgxMjYwNTEzZTAiLCIweDAiLDEzODEsOTYsNywxLDAs
IjB4MTI2MDUxNDQwIiwiMHgwIiwxNDA1LDk2LDcsMSwwLCIweDEyNjA1MTRhMCIsIjB4MCIsMTQy
NSw5Niw3LDEsMCwiMHgxMjYwNTE1MDAiLCIweDAiLDE0NzIsOTYsNywxLDAsIjB4MTI2MDUxNTYw
IiwiMHgwIiwxNTAyLDk2LDcsMSwwLCIweDEyNjA1MTVjMCIsIjB4MCIsMTUxNiw5Niw3LDEsMCwi
MHgxMjYwNTE2MjAiLCIweDAiLDE1MzAsOTYsNywxLDAsIjB4MTI2MDUxNjgwIiwiMHgwIiwxNTYw
LDk2LDcsMSwwLCIweDEyNjA1MTZlMCIsIjB4MCIsMTU4Niw5Niw3LDEsMCwiMHgxMjYwNTE3NDAi
LCIweDAiLDE2MDMsOTYsNywxLDAsIjB4MTI2MDUxN2EwIiwiMHgwIiwxNjI5LDk2LDcsMSwwLCIw
eDEyNjA1MTgwMCIsIjB4MCIsMTY0Miw5Niw3LDEsMCwiMHgxMjYwNTE4NjAiLCIweDAiLDE2NzMs
OTYsNywxLDAsIjB4MTI2MDUxOGMwIiwiMHgwIiwxNzAyLDk2LDcsMSwwLCIweDEyNjA1MTkyMCIs
IjB4MCIsMTE2Miw5Niw3LDEsMCwiMHgxMjYwNTE5ODAiLCIweDAiLDkyNiw5Niw3LDEsMCwiMHgx
MjYwNTE5ZTAiLCIweDAiLDEyMTIsOTYsNywxLDAsIjB4MTI2MDUxYTQwIiwiMHgwIiwxMjQwLDk2
LDcsMSwwLCIweDEyNjA1MWFhMCIsIjB4MCIsMTI1Nyw5Niw3LDEsMCwiMHgxMjYwNTFiMDAiLCIw
eDAiLDEyODIsOTYsNywxLDAsIjB4MTI2MDUxYjYwIiwiMHgwIiwxMzAyLDk2LDcsMSwwLCIweDEy
NjA1MWJjMCIsIjB4MCIsMTMxNiw5Niw3LDEsMCwiMHgxMjYwNTFjMjAiLCIweDAiLDEzNTIsOTYs
NywxLDAsIjB4MTI2MDUxYzgwIiwiMHgwIiwxNDM3LDk2LDcsMSwwLCIweDEyNjA1MWNlMCIsIjB4
MCIsMTIxNiw5Niw3LDEsMCwiMHgxMjYwNTFkNDAiLCIweDAiLDEyNDQsOTYsNywxLDAsIjB4MTI2
MDUxZGEwIiwiMHgwIiwxMjYxLDk2LDcsMSwwLCIweDEyNjA1MWUwMCIsIjB4MCIsMTI4Nyw5Niw3
LDEsMCwiMHgxMjYwNTFlNjAiLCIweDAiLDEzMDEsOTYsNywxLDAsIjB4MTI2MDUxZWMwIiwiMHgw
IiwxMzI1LDk2LDcsMSwwLCIweDEyNjA1MWYyMCIsIjB4MCIsMTM4OCw5Niw3LDEsMCwiMHgxMjYw
NTFmODAiLCIweDAiLDIyNDAsOTYsNywxLDAsIjB4MTI2MDUxZmUwIiwiMHgwIiwyMjQzLDk2LDcs
MSwwLCIweDEyNjA1MjA0MCIsIjB4MCIsMjI0Niw5Niw3LDEsMCwiMHgxMjYwNTIwYTAiLCIweDAi
LDIyNDksOTYsNywxLDAsIjB4MTI2MDUyMTAwIiwiMHgwIiw4OTgsOTYsNywxLDAsIjB4MTI2MDUy
MTYwIiwiMHgwIiwyMjYwLDk2LDcsMSwwLCIweDEyNjA1MjFjMCIsIjB4MCIsMjM1OCw5Niw3LDEs
MCwiMHgxMjYwNTIyMjAiLCIweDAiLDIzNjcsOTYsNywxLDAsIjB4MTI2MDUyMjgwIiwiMHgwIiwy
MzAzLDk2LDcsMSwwLCIweDEyNjA1MjJlMCIsIjB4MCIsMTEzOCw5Niw3LDEsMCwiMHgxMjYwNTIz
NDAiLCIweDAiLDEwNTksOTYsNywxLDAsIjB4MTI2MDUyM2EwIiwiMHgwIiwyMzEyLDk2LDcsMSww
LCIweDEyNjA1MjQwMCIsIjB4MCIsMjMwNSw5Niw3LDEsMCwiMHgxMjYwNTI0NjAiLCIweDAiLDIz
MjMsOTYsNywxLDAsIjB4MTI2MDUyNGMwIiwiMHgwIiw2NDAsOTYsNywxLDAsIjB4MTI2MDUyNTIw
IiwiMHgwIiw2NDgsOTYsNywxLDAsIjB4MTI2MDUyNTgwIiwiMHgwIiw2NjMsOTYsNywxLDAsIjB4
MTI2MDUyNWUwIiwiMHgwIiw2NzcsOTYsNywxLDAsIjB4MTI2MDUyNjQwIiwiMHgwIiw2OTksOTYs
NywxLDAsIjB4MTI2MDUyNmEwIiwiMHgwIiw1NDMsOTYsNywxLDAsIjB4MTI2MDUyNzAwIiwiMHgw
Iiw1NTQsOTYsNywxLDAsIjB4MTI2MDUyNzYwIiwiMHgwIiw1MzgsOTYsNywxLDAsIjB4MTI2MDUy
N2MwIiwiMHgwIiw1MzUsOTYsNywxLDAsIjB4MTI2MDUyODIwIiwiMHgwIiw1NDIsOTYsNywxLDAs
IjB4MTI2MDUyODgwIiwiMHgwIiw1MzMsOTYsNywxLDAsIjB4MTI2MDUyOGUwIiwiMHgwIiw1NDUs
OTYsNywxLDAsIjB4MTI2MDUyOTQwIiwiMHgwIiw1NTYsOTYsNywxLDAsIjB4MTI2MDUyOWEwIiwi
MHgwIiw1NzEsOTYsNywxLDAsIjB4MTI2MDUyYTAwIiwiMHgwIiw1OTgsOTYsNywxLDAsIjB4MTI2
MDUyYTYwIiwiMHgwIiw2MjAsOTYsNywxLDAsIjB4MTI2MDUyYWMwIiwiMHgwIiw4OTksOTYsNywx
LDAsIjB4MTI2MDUyYjIwIiwiMHgwIiw5MTIsOTYsNywxLDAsIjB4MTI2MDUyYjgwIiwiMHgwIiw4
MTQsOTYsNywxLDAsIjB4MTI2MDUyYmUwIiwiMHgwIiw4MDcsOTYsNywxLDAsIjB4MTI2MDUyYzQw
IiwiMHgwIiw4MzAsOTYsNywxLDAsIjB4MTI2MDUyY2EwIiwiMHgwIiw4NDIsOTYsNywxLDAsIjB4
MTI2MDUyZDAwIiwiMHgwIiwxNzU3LDk2LDcsMSwwLCIweDEyNjA1MmQ2MCIsIjB4MCIsMTc3MCw5
Niw3LDEsMCwiMHgxMjYwNTJkYzAiLCIweDAiLDE3NzgsOTYsNywxLDAsIjB4MTI2MDUyZTIwIiwi
MHgwIiwxNzgzLDk2LDcsMSwwLCIweDEyNjA1MmU4MCIsIjB4MCIsMTc4OCw5Niw3LDEsMCwiMHgx
MjYwNTJlZTAiLCIweDAiLDE3OTUsOTYsNywxLDAsIjB4MTI2MDUyZjQwIiwiMHgwIiwxODAwLDk2
LDcsMSwwLCIweDEyNjA1MmZhMCIsIjB4MCIsNTQ5LDk2LDcsMSwwLCIweDEyNjA1MzAwMCIsIjB4
MCIsNzUzLDk2LDcsMSwwLCIweDEyNjA1MzA2MCIsIjB4MCIsODU0LDk2LDcsMSwwLCIweDEyNjA1
MzBjMCIsIjB4MCIsMTI4MSw5Niw3LDEsMCwiMHgxMjYwNTMxMjAiLCIweDAiLDE1MzUsOTYsNywx
LDAsIjB4MTI2MDUzMTgwIiwiMHgwIiwxNTQ3LDk2LDcsMSwwLCIweDEyNjA1MzFlMCIsIjB4MCIs
MTU2MSw5Niw3LDEsMCwiMHgxMjYwNTMyNDAiLCIweDAiLDE1NzgsOTYsNywxLDAsIjB4MTI2MDUz
MmEwIiwiMHgwIiwxNjUzLDk2LDcsMSwwLCIweDEyNjA1MzMwMCIsIjB4MCIsMTY3Miw5Niw3LDEs
MCwiMHgxMjYwNTMzNjAiLCIweDAiLDE2ODQsOTYsNywxLDAsIjB4MTI2MDUzM2MwIiwiMHgwIiwx
NzA3LDk2LDcsMSwwLCIweDEyNjA1MzQyMCIsIjB4MCIsMTcyMyw5Niw3LDEsMCwiMHgxMjYwNTM0
ODAiLCIweDAiLDE3MzcsOTYsNywxLDAsIjB4MTI2MDUzNGUwIiwiMHgwIiwxODA2LDk2LDcsMSww
LCIweDEyNjA1MzU0MCIsIjB4MCIsMTg1OSw5Niw3LDEsMCwiMHgxMjYwNTM1YTAiLCIweDAiLDE4
NjMsOTYsNywxLDAsIjB4MTI2MDUzNjAwIiwiMHgwIiwxODcwLDk2LDcsMSwwLCIweDEyNjA1MzY2
MCIsIjB4MCIsMTg4Miw5Niw3LDEsMCwiMHgxMjYwNTM2YzAiLCIweDAiLDE5MDEsOTYsNywxLDAs
IjB4MTI2MDUzNzIwIiwiMHgwIiwyMTUzLDk2LDcsMSwwLCIweDEyNjA1Mzc4MCIsIjB4MCIsMjE2
Miw5Niw3LDEsMCwiMHgxMjYwNTM3ZTAiLCIweDAiLDIzMzIsOTYsNywxLDAsIjB4MTI2MDUzODQw
IiwiMHgwIiwyMzUwLDk2LDcsMSwwLCIweDEyNjA1MzhhMCIsIjB4MCIsMzM0LDk2LDcsMSwwLCIw
eDEyNjA1MzkwMCIsIjB4MCIsMzM5LDk2LDcsMSwwLCIweDEyNjA1Mzk2MCIsIjB4MCIsMzQyLDk2
LDcsMSwwLCIweDEyNjA1MzljMCIsIjB4MCIsMTYxOSw5Niw3LDEsMCwiMHgxMjYwNTNhMjAiLCIw
eDAiLDE2MzksOTYsNywxLDAsIjB4MTI2MDUzYTgwIiwiMHgwIiwxNjY0LDk2LDcsMSwwLCIweDEy
NjA1M2FlMCIsIjB4MCIsMTY5Miw5Niw3LDEsMCwiMHgxMjYwNTNiNDAiLCIweDAiLDE3MDYsOTYs
NywxLDAsIjB4MTI2MDUzYmEwIiwiMHgwIiwxNzMwLDk2LDcsMSwwLCIweDEyNjA1M2MwMCIsIjB4
MCIsMTc1Niw5Niw3LDEsMCwiMHgxMjYwNTNjNjAiLCIweDAiLDE3NzQsOTYsNywxLDAsIjB4MTI2
MDUzY2MwIiwiMHgwIiwxNzg0LDk2LDcsMSwwLCIweDEyNjA1M2QyMCIsIjB4MCIsMTc5MSw5Niw3
LDEsMCwiMHgxMjYwNTNkODAiLCIweDAiLDE3OTksOTYsNywxLDAsIjB4MTI2MDUzZGUwIiwiMHgw
IiwxODA3LDk2LDcsMSwwLCIweDEyNjA1M2U0MCIsIjB4MCIsMTg4NSwxNzYsNDUsMSwwLCIweDEy
NjExMTZiMCIsIjB4MCIsMTg3NSwxNzYsNDUsMSwwLCIweDEyNjExMmQ2MCIsIjB4MCIsMTg3Nywx
NzYsNDUsMSwwLCIweDEyNjExMzJlMCIsIjB4MCIsMTkzNSwxNzYsNDUsMSwwLCIweDEyNjExMzM5
MCIsIjB4MCIsMTkyNiwxNzYsNDUsMSwwLCIweDEyNjExMzY1MCIsIjB4MCIsMTkyOSwxNzYsNDUs
MSwwLCIweDEyNjExMzkxMCIsIjB4MCIsMTkxNSwxNzYsNDUsMSwwLCIweDEyNjExMzljMCIsIjB4
MCIsMTkwNiwxNzYsNDUsMSwwLCIweDEyNjExM2E3MCIsIjB4MCIsMTkwNCwxNzYsNDUsMSwwLCIw
eDEyNjExM2IyMCIsIjB4MCIsMTkwNywxNzYsNDUsMSwwLCIweDEyNjExM2M4MCIsIjB4MCIsMTkw
NSwxNzYsNDUsMSwwLCIweDEyNjExM2QzMCIsIjB4MCIsODc1LDE3Niw0NSwxLDAsIjB4MTI2MWU4
NDIwIiwiMHgwIiwyMzYxLDE3Niw0NSwxLDAsIjB4MTI2MWU4NGQwIiwiMHgwIiwyMzM5LDE3Niw0
NSwxLDAsIjB4MTI2MWU4NTgwIiwiMHgwIiw3NzcsMTc2LDQ1LDEsMCwiMHgxMjYxZTlkOTAiLCIw
eDAiLDEyMzIsMTc2LDQ1LDEsMCwiMHgxMjYxZTllNDAiLCIweDAiLDEzNDEsMTc2LDQ1LDEsMCwi
MHgxMjYxZWExYjAiLCIweDAiLDEzODcsMTc2LDQ1LDEsMCwiMHgxMjYxZWEyNjAiLCIweDAiLDEx
NTMsMTc2LDQ1LDEsMCwiMHgxMjYxZWEzMTAiLCIweDAiLDE0NTQsMTc2LDQ1LDEsMCwiMHgxMjYx
ZWE5ZjAiLCIweDAiLDEwNDQsMTc2LDQ1LDEsMCwiMHgxMjYxZWFjMDAiLCIweDAiLDk3MywxNzYs
NDUsMSwwLCIweDEyNjFlYWQ2MCIsIjB4MCIsMTM1NCwxNzYsNDUsMSwwLCIweDEyNjFlYjIzMCIs
IjB4MCIsMTMyNCwxNzYsNDUsMSwwLCIweDEyNjFlYjJlMCIsIjB4MCIsMTg4OCwzMiw0NiwxLDAs
IjB4MTI2MzAwMzIwIiwiMHgwIiwxODczLDMyLDQ2LDEsMCwiMHgxMjYzMDA0YzAiLCIweDAiLDE4
ODQsMzIsNDYsMSwwLCIweDEyNjMwMDUwMCIsIjB4MCIsMTg4NywzMiw0NiwxLDAsIjB4MTI2MzAw
NTIwIiwiMHgwIiwxODc4LDMyLDQ2LDEsMCwiMHgxMjYzMDA2NjAiLCIweDAiLDE4ODEsMzIsNDYs
MSwwLCIweDEyNjMwMDY4MCIsIjB4MCIsMTkzNywzMiw0NiwxLDAsIjB4MTI2MzAwNmMwIiwiMHgw
IiwxOTI3LDMyLDQ2LDEsMCwiMHgxMjYzMDA2ZTAiLCIweDAiLDE5MzMsMzIsNDYsMSwwLCIweDEy
NjMwMDcyMCIsIjB4MCIsMTkyMSwzMiw0NiwxLDAsIjB4MTI2MzAwODQwIiwiMHgwIiwxOTEzLDMy
LDQ2LDEsMCwiMHgxMjYzMDA4YzAiLCIweDAiLDE5MTIsMzIsNDYsMSwwLCIweDEyNjMwMDhlMCIs
IjB4MCIsMTkxMCwzMiw0NiwxLDAsIjB4MTI2MzAwOTIwIiwiMHgwIiwxOTA4LDMyLDQ2LDEsMCwi
MHgxMjYzMDA5NjAiLCIweDAiLDE5MDMsMzIsNDYsMSwwLCIweDEyNjMwMGE4MCIsIjB4MCIsMjAx
MywzMiw0NiwxLDAsIjB4MTI2MzAwYjIwIiwiMHgwIiwxOTcxLDMyLDQ2LDEsMCwiMHgxMjYzMDBi
NDAiLCIweDAiLDIwNjcsMzIsNDYsMSwwLCIweDEyNjMwMTFhMCIsIjB4MCIsMjAzNSwzMiw0Niwx
LDAsIjB4MTI2MzAxMWUwIiwiMHgwIiwxOTg5LDMyLDQ2LDEsMCwiMHgxMjYzMDEyMDAiLCIweDAi
LDIwMDUsMzIsNDYsMSwwLCIweDEyNjMwMTIyMCIsIjB4MCIsMTk2NCwzMiw0NiwxLDAsIjB4MTI2
MzAxMjQwIiwiMHgwIiwyMDI4LDMyLDQ2LDEsMCwiMHgxMjYzMDEyNjAiLCIweDAiLDIwMTYsMzIs
NDYsMSwwLCIweDEyNjMwMTI4MCIsIjB4MCIsMTk4NiwzMiw0NiwxLDAsIjB4MTI2MzAxMmMwIiwi
MHgwIiwyMDA5LDMyLDQ2LDEsMCwiMHgxMjYzMDEyZTAiLCIweDAiLDIwMzAsMzIsNDYsMSwwLCIw
eDEyNjMwMTMwMCIsIjB4MCIsMTk2MSwzMiw0NiwxLDAsIjB4MTI2MzAxMzIwIiwiMHgwIiwxOTkz
LDMyLDQ2LDEsMCwiMHgxMjYzMDEzNDAiLCIweDAiLDIwNTAsMzIsNDYsMSwwLCIweDEyNjMwMTM2
MCIsIjB4MCIsMjAxOCwzMiw0NiwxLDAsIjB4MTI2MzAxMzgwIiwiMHgwIiwxOTgwLDMyLDQ2LDEs
MCwiMHgxMjYzMDEzYzAiLCIweDAiLDIwNjEsMzIsNDYsMSwwLCIweDEyNjMwMTNlMCIsIjB4MCIs
MjA1OCwzMiw0NiwxLDAsIjB4MTI2MzAxNDIwIiwiMHgwIiwyMDY1LDMyLDQ2LDEsMCwiMHgxMjYz
MDE0NDAiLCIweDAiLDE5NTQsMzIsNDYsMSwwLCIweDEyNjMwMTQ2MCIsIjB4MCIsMTk0OSwzMiw0
NiwxLDAsIjB4MTI2MzAxNDgwIiwiMHgwIiwxOTM4LDMyLDQ2LDEsMCwiMHgxMjYzMDE1MDAiLCIw
eDAiLDIwOTUsMzIsNDYsMSwwLCIweDEyNjMwMTUyMCIsIjB4MCIsMTk0MywzMiw0NiwxLDAsIjB4
MTI2MzAxNTQwIiwiMHgwIiwxOTczLDMyLDQ2LDEsMCwiMHgxMjYzMDE1NjAiLCIweDAiLDIwMDAs
MzIsNDYsMSwwLCIweDEyNjMwMTVhMCIsIjB4MCIsMjA0NiwzMiw0NiwxLDAsIjB4MTI2MzAxNWMw
IiwiMHgwIiwxOTc2LDMyLDQ2LDEsMCwiMHgxMjYzMDE2MjAiLCIweDAiLDIwNDEsMzIsNDYsMSww
LCIweDEyNjMwMTY0MCIsIjB4MCIsMjA4NywzMiw0NiwxLDAsIjB4MTI2MzAxNzYwIiwiMHgwIiwy
MTM5LDMyLDQ2LDEsMCwiMHgxMjYzMDE3ODAiLCIweDAiLDIwNzYsMzIsNDYsMSwwLCIweDEyNjMw
MTg4MCIsIjB4MCIsMjA4OCwzMiw0NiwxLDAsIjB4MTI2MzAxOGMwIiwiMHgwIiwyMTY4LDMyLDQ2
LDEsMCwiMHgxMjYzMDE5ODAiLCIweDAiLDIxODIsMzIsNDYsMSwwLCIweDEyNjMwMTlhMCIsIjB4
MCIsMjE1NCwzMiw0NiwxLDAsIjB4MTI2MzAxYTYwIiwiMHgwIiwyMTAyLDMyLDQ2LDEsMCwiMHgx
MjYzMDFhODAiLCIweDAiLDIxNDYsMzIsNDYsMSwwLCIweDEyNjMwMWFhMCIsIjB4MCIsMjE0NCwz
Miw0NiwxLDAsIjB4MTI2MzAxY2UwIiwiMHgwIiwyMTIyLDMyLDQ2LDEsMCwiMHgxMjYzMDFkMDAi
LCIweDAiLDIxMDUsMzIsNDYsMSwwLCIweDEyNjMwMWRhMCIsIjB4MCIsMjExNywzMiw0NiwxLDAs
IjB4MTI2MzAxZGMwIiwiMHgwIiwyMTI0LDMyLDQ2LDEsMCwiMHgxMjYzMDFkZTAiLCIweDAiLDIx
MTYsMzIsNDYsMSwwLCIweDEyNjMwMWUwMCIsIjB4MCIsMjE3NywzMiw0NiwxLDAsIjB4MTI2MzAx
ZTgwIiwiMHgwIiwyMTcxLDMyLDQ2LDEsMCwiMHgxMjYzMDFmMDAiLCIweDAiLDIwNTMsMzIsNDYs
MSwwLCIweDEyNjMwMWYyMCIsIjB4MCIsMjIwNCwzMiw0NiwxLDAsIjB4MTI2MzAxZmEwIiwiMHgw
IiwyMTA4LDMyLDQ2LDEsMCwiMHgxMjYzMDFmYzAiLCIweDAiLDIxMzQsMzIsNDYsMSwwLCIweDEy
NjMwMWZlMCIsIjB4MCIsMjE1OCwzMiw0NiwxLDAsIjB4MTI2MzAyMDQwIiwiMHgwIiwyMDc5LDMy
LDQ2LDEsMCwiMHgxMjYzMDIwODAiLCIweDAiLDIwODEsMzIsNDYsMSwwLCIweDEyNjMwMjBhMCIs
IjB4MCIsMjE1MCwzMiw0NiwxLDAsIjB4MTI2MzAyMGUwIiwiMHgwIiwyMTkxLDMyLDQ2LDEsMCwi
MHgxMjYzMDIxMDAiLCIweDAiLDIxODcsMzIsNDYsMSwwLCIweDEyNjMwMjE0MCIsIjB4MCIsMjE3
OCwzMiw0NiwxLDAsIjB4MTI2MzAyMWMwIiwiMHgwIiwyMjAwLDMyLDQ2LDEsMCwiMHgxMjYzMDIx
ZTAiLCIweDAiLDE4NDYsMzIsNDYsMSwwLCIweDEyNjMwMjIwMCIsIjB4MCIsMTg1MCwzMiw0Niwx
LDAsIjB4MTI2MzAyMjIwIiwiMHgwIiwxODQyLDMyLDQ2LDEsMCwiMHgxMjYzMDIyNDAiLCIweDAi
LDIyMDcsMzIsNDYsMSwwLCIweDEyNjMwMjNhMCIsIjB4MCIsMTg1NCwzMiw0NiwxLDAsIjB4MTI2
MzAyM2MwIiwiMHgwIiwyMTk0LDMyLDQ2LDEsMCwiMHgxMjYzMDIzZTAiLCIweDAiLDE4MzMsMzIs
NDYsMSwwLCIweDEyNjMwMjRhMCIsIjB4MCIsMTgxNSwzMiw0NiwxLDAsIjB4MTI2MzAyNGMwIiwi
MHgwIiwxODM4LDMyLDQ2LDEsMCwiMHgxMjYzMDI0ZTAiLCIweDAiLDE4MjUsMzIsNDYsMSwwLCIw
eDEyNjMwMjUwMCIsIjB4MCIsMTI4NiwzMiw0NiwxLDAsIjB4MTI2MzAyNTIwIiwiMHgwIiw3OTgs
MzIsNDYsMSwwLCIweDEyNjMwMjVlMCIsIjB4MCIsNzM5LDMyLDQ2LDEsMCwiMHgxMjYzMDI2MDAi
LCIweDAiLDc1NCwzMiw0NiwxLDAsIjB4MTI2MzAyNjIwIiwiMHgwIiw5NDgsMzIsNDYsMSwwLCIw
eDEyNjMwMjY2MCIsIjB4MCIsOTIyLDMyLDQ2LDEsMCwiMHgxMjYzMDI2ODAiLCIweDAiLDkwMywz
Miw0NiwxLDAsIjB4MTI2MzAyNmMwIiwiMHgwIiw1ODYsMzIsNDYsMSwwLCIweDEyNjMwMjZlMCIs
IjB4MCIsNTUzLDMyLDQ2LDEsMCwiMHgxMjYzMDI3MjAiLCIweDAiLDYwNSwzMiw0NiwxLDAsIjB4
MTI2MzAyOTYwIiwiMHgwIiw1NzUsMzIsNDYsMSwwLCIweDEyNjMwMjk4MCIsIjB4MCIsNTkzLDMy
LDQ2LDEsMCwiMHgxMjYzMDJhNDAiLCIweDAiLDU2MSwzMiw0NiwxLDAsIjB4MTI2MzAyYTYwIiwi
MHgwIiw1OTEsMzIsNDYsMSwwLCIweDEyNjMwMmE4MCIsIjB4MCIsNTcyLDMyLDQ2LDEsMCwiMHgx
MjYzMDJiZTAiLCIweDAiLDU4OCwzMiw0NiwxLDAsIjB4MTI2MzAyYzAwIiwiMHgwIiw1NjUsMzIs
NDYsMSwwLCIweDEyNjMwMmMyMCIsIjB4MCIsNjAzLDMyLDQ2LDEsMCwiMHgxMjYzMDJkNjAiLCIw
eDAiLDU3MywzMiw0NiwxLDAsIjB4MTI2MzAyZGEwIiwiMHgwIiw2MTgsMzIsNDYsMSwwLCIweDEy
NjMwMmZhMCIsIjB4MCIsNTgyLDMyLDQ2LDEsMCwiMHgxMjYzMDJmYzAiLCIweDAiLDY0NiwzMiw0
NiwxLDAsIjB4MTI2MzAzMTAwIiwiMHgwIiw2MjIsMzIsNDYsMSwwLCIweDEyNjMwMzEyMCIsIjB4
MCIsNjU1LDMyLDQ2LDEsMCwiMHgxMjYzMDMxNjAiLCIweDAiLDYyNywzMiw0NiwxLDAsIjB4MTI2
MzAzMTgwIiwiMHgwIiw2NTYsMzIsNDYsMSwwLCIweDEyNjMwMzFhMCIsIjB4MCIsNjE1LDMyLDQ2
LDEsMCwiMHgxMjYzMDMxYzAiLCIweDAiLDY2NSwzMiw0NiwxLDAsIjB4MTI2MzAzMjIwIiwiMHgw
Iiw2MzAsMzIsNDYsMSwwLCIweDEyNjMwMzM4MCIsIjB4MCIsNjY3LDMyLDQ2LDEsMCwiMHgxMjYz
MDMzYTAiLCIweDAiLDYyOSwzMiw0NiwxLDAsIjB4MTI2MzAzNTQwIiwiMHgwIiw2NzEsMzIsNDYs
MSwwLCIweDEyNjMwMzU2MCIsIjB4MCIsNjM0LDMyLDQ2LDEsMCwiMHgxMjYzMDM2NjAiLCIweDAi
LDY4NCwzMiw0NiwxLDAsIjB4MTI2MzAzNjgwIiwiMHgwIiw2NDksMzIsNDYsMSwwLCIweDEyNjMw
Mzg0MCIsIjB4MCIsNzA2LDMyLDQ2LDEsMCwiMHgxMjYzMDM4NjAiLCIweDAiLDY4MSwzMiw0Niwx
LDAsIjB4MTI2MzAzOGEwIiwiMHgwIiw2OTYsMzIsNDYsMSwwLCIweDEyNjMwMzhjMCIsIjB4MCIs
NjcyLDMyLDQ2LDEsMCwiMHgxMjYzMDNjNDAiLCIweDAiLDcyMCwzMiw0NiwxLDAsIjB4MTI2MzAz
YzYwIiwiMHgwIiw2ODgsMzIsNDYsMSwwLCIweDEyNjMwM2NjMCIsIjB4MCIsNzMwLDMyLDQ2LDEs
MCwiMHgxMjYzMDNjZTAiLCIweDAiLDY5OCwzMiw0NiwxLDAsIjB4MTI2MzAzZDIwIiwiMHgwIiw3
NDUsMzIsNDYsMSwwLCIweDEyNjMwM2RjMCIsIjB4MCIsNzA5LDMyLDQ2LDEsMCwiMHgxMjYzMDNk
ZTAiLCIweDAiLDg0MSwzMiw0NiwxLDAsIjB4MTI2MzAzZTYwIiwiMHgwIiw3MDgsMzIsNDYsMSww
LCIweDEyNjMwM2U4MCIsIjB4MCIsMTQ2OSw1MCw2LDAsNTcsIjB4MTI2MzgwMDYwIiwiMHgwIiwx
NDM5LDQ4LDYsMCw1OCwiMHgxMjYzODAwOTAiLCIweDAiLDE0MjIsNTAsNiwwLDU5LCIweDEyNjM4
MDBjMCIsIjB4MCIsMTQwMSw1MCw2LDAsNjAsIjB4MTI2MzgwMjEwIiwiMHgwIiwxMzc0LDUwLDYs
MCw2MSwiMHgxMjYzODAyYTAiLCIweDAiLDEzNjIsNTAsNiwwLDYyLCIweDEyNjM4MDJkMCIsIjB4
MCIsMTMzOSw1MCw2LDAsNjMsIjB4MTI2MzgwMzAwIiwiMHgwIiwxMzI2LDUwLDYsMCw2NCwiMHgx
MjYzODAzMzAiLCIweDAiLDEzMDgsNTAsNiwwLDY0LCIweDEyNjM4MDM2MCIsIjB4MCIsMTI5MSw1
MCw2LDAsNjUsIjB4MTI2MzgwMzkwIiwiMHgwIiwxMjcwLDUwLDYsMCw2NiwiMHgxMjYzODAzYzAi
LCIweDAiLDEyNTMsNTAsNiwwLDY3LCIweDEyNjM4MDNmMCIsIjB4MCIsMTIzOSw1MCw2LDAsNjgs
IjB4MTI2MzgwNDUwIiwiMHgwIiwxMjEzLDUwLDYsMCw2OSwiMHgxMjYzODA0ODAiLCIweDAiLDEx
ODcsNTAsNiwwLDcwLCIweDEyNjM4MDRlMCIsIjB4MCIsMTE2OSw1MCw2LDAsNzEsIjB4MTI2Mzgw
NTEwIiwiMHgwIiwxMDM4LDQ4LDYsMCw3MiwiMHgxMjYzODA1NDAiLCIweDAiLDk2Miw0OCw2LDAs
NzMsIjB4MTI2MzgwNTcwIiwiMHgwIiwxMTcyLDUwLDYsMCw3NCwiMHgxMjYzODA1YTAiLCIweDAi
LDExNDAsNTAsNiwwLDYzLCIweDEyNjM4MDVkMCIsIjB4MCIsMjIwOSw1MCw2LDAsNzUsIjB4MTI2
MzgwNjAwIiwiMHgwIiwyMTk3LDUwLDYsMCw3NiwiMHgxMjYzODA2MzAiLCIweDAiLDEzNDAsNDgs
NiwwLDc3LCIweDEyNjM4MDY2MCIsIjB4MCIsMTMxNSw0OCw2LDAsNzgsIjB4MTI2MzgwNmMwIiwi
MHgwIiwxMjkwLDQ4LDYsMCw3OSwiMHgxMjYzODA2ZjAiLCIweDAiLDE2MDUsNDgsNiwwLDgwLCIw
eDEyNjM4MDcyMCIsIjB4MCIsMTI0Niw0OCw2LDAsODEsIjB4MTI2MzgwNzgwIiwiMHgwIiwxMzIx
LDUwLDYsMCw4MiwiMHgxMjYzODA3ZTAiLCIweDAiLDE0NDAsNTAsNiwwLDgzLCIweDEyNjM4MDgx
MCIsIjB4MCIsMTQ4NSw1MCw2LDAsODQsIjB4MTI2MzgwODQwIiwiMHgwIiwxNDY0LDUwLDYsMCw4
NSwiMHgxMjYzODA5MzAiLCIweDAiLDE0MDcsNTAsNiwwLDg2LCIweDEyNjM4MDk2MCIsIjB4MCIs
MTM3Nyw1MCw2LDAsODcsIjB4MTI2MzgwOTkwIiwiMHgwIiwxMjI4LDUwLDYsMCw4OCwiMHgxMjYz
ODA5ZjAiLCIweDAiLDEzNDgsNTAsNiwwLDg5LCIweDEyNjM4MGEyMCIsIjB4MCIsMTE5Niw1MCw2
LDAsNzEsIjB4MTI2MzgwYTUwIiwiMHgwIiwxNTA5LDUwLDYsMCw5MCwiMHgxMjYzODBhODAiLCIw
eDAiLDExNDksNTAsNiwwLDkxLCIweDEyNjM4MGFiMCIsIjB4MCIsMTY4Myw0OCw2LDAsOTIsIjB4
MTI2MzgwYWUwIiwiMHgwIiwxNjU1LDQ4LDYsMCw5MywiMHgxMjYzODBiMTAiLCIweDAiLDE2MDYs
NDgsNiwwLDk0LCIweDEyNjM4MGI0MCIsIjB4MCIsMTU2NSw0OCw2LDAsOTUsIjB4MTI2MzgwYmEw
IiwiMHgwIiwxNzY4LDQ4LDYsMCw5NiwiMHgxMjYzODBjMDAiLCIweDAiLDE3MTEsNDgsNiwwLDk3
LCIweDEyNjM4MGMzMCIsIjB4MCIsMTU0MSw0OCw2LDAsOTgsIjB4MTI2MzgwYzYwIiwiMHgwIiwx
NTE0LDQ4LDYsMCw5OSwiMHgxMjYzODBjOTAiLCIweDAiLDE0OTQsNDgsNiwwLDEwMCwiMHgxMjYz
ODBjYzAiLCIweDAiLDE0NzQsNDgsNiwwLDEwMSwiMHgxMjYzODBjZjAiLCIweDAiLDE0NDYsNDgs
NiwwLDEwMiwiMHgxMjYzODBkMjAiLCIweDAiLDE0MjQsNDgsNiwwLDEwMywiMHgxMjYzODBkNTAi
LCIweDAiLDE0MTEsNTAsNiwwLDY1LCIweDEyNjM4MGQ4MCIsIjB4MCIsMTM4Miw1MCw2LDAsNjYs
IjB4MTI2MzgwZGIwIiwiMHgwIiwxMzYzLDQ4LDYsMCwxMDQsIjB4MTI2MzgwZGUwIiwiMHgwIiwx
NzM4LDQ4LDYsMCwxMDUsIjB4MTI2MzgwZTEwIiwiMHgwIiwxMzM1LDQ4LDYsMCwxMDYsIjB4MTI2
MzgwZTcwIiwiMHgwIiwxMzEyLDUwLDYsMCwxMDcsIjB4MTI2MzgwZWEwIiwiMHgwIiwxMjk1LDUw
LDYsMCwxMDgsIjB4MTI2MzgwZWQwIiwiMHgwIiwxMjU2LDQ4LDYsMCwxMDksIjB4MTI2MzgxMTEw
IiwiMHgwIiwxMjIyLDUwLDYsMCw2MywiMHgxMjYzODExNzAiLCIweDAiLDExOTgsNTAsNiwwLDY0
LCIweDEyNjM4MTFhMCIsIjB4MCIsMTE4MSw1MCw2LDAsMTEwLCIweDEyNjM4MTFkMCIsIjB4MCIs
MTE1NCw1MCw2LDAsMTExLCIweDEyNjM4MTIwMCIsIjB4MCIsMTEzMyw1MCw2LDAsNjQsIjB4MTI2
MzgxMjMwIiwiMHgwIiwxMTIxLDUwLDYsMCwxMTIsIjB4MTI2MzgxMjYwIiwiMHgwIiwxMTA1LDUw
LDYsMCwxMTMsIjB4MTI2MzgxMzIwIiwiMHgwIiwxMDcyLDUwLDYsMCwxMTQsIjB4MTI2MzgxMzgw
IiwiMHgwIiwxMDI0LDQ4LDYsMCwxMTUsIjB4MTI2MzgxM2IwIiwiMHgwIiwxMDA5LDQ4LDYsMCwx
MTYsIjB4MTI2MzgxNDEwIiwiMHgwIiw5OTMsNTAsNiwwLDExNywiMHgxMjYzODE0NzAiLCIweDAi
LDkwNiw0OCw2LDAsMTE4LCIweDEyNjM4MTRhMCIsIjB4MCIsOTA5LDUwLDYsMCw3MSwiMHgxMjYz
ODE0ZDAiLCIweDAiLDE1MTgsNDgsNiwwLDExOSwiMHgxMjYzODE1MDAiLCIweDAiLDkzOCw0OSw2
LDAsMCwiMHgxMjYzODE1MzAiLCIweDAiLDExMjMsNTAsNiwwLDEyMCwiMHgxMjYzODE1NjAiLCIw
eDAiLDExNDIsNTAsNiwwLDEyMSwiMHgxMjYzODE1OTAiLCIweDAiLDEwOTIsNTAsNiwwLDEyMiwi
MHgxMjYzODE1YzAiLCIweDAiLDEwODIsNTAsNiwwLDEyMywiMHgxMjYzODE1ZjAiLCIweDAiLDEw
NzEsNTAsNiwwLDEyNCwiMHgxMjYzODE2MjAiLCIweDAiLDEwNTEsNTAsNiwwLDEyNSwiMHgxMjYz
ODE2ODAiLCIweDAiLDEwMzUsNTAsNiwwLDEyNiwiMHgxMjYzODE2YjAiLCIweDAiLDEwMjUsNTAs
NiwwLDEyNywiMHgxMjYzODE2ZTAiLCIweDAiLDEwMDAsNTAsNiwwLDEyOCwiMHgxMjYzODE3MTAi
LCIweDAiLDkyMCw1MCw2LDAsNzAsIjB4MTI2MzgxNzQwIiwiMHgwIiw5ODUsNTAsNiwwLDExNywi
MHgxMjYzODE3NzAiLCIweDAiLDk1OSw1MCw2LDAsNzEsIjB4MTI2MzgxN2EwIiwiMHgwIiw5MTks
NDgsNiwwLDEyOSwiMHgxMjYzODE3ZDAiLCIweDAiLDkyOCw0OCw2LDAsMTMwLCIweDEyNjM4MTgw
MCIsIjB4MCIsOTg0LDQ4LDYsMCwxMzEsIjB4MTI2MzgxODYwIiwiMHgwIiw4ODgsNDgsNiwwLDEz
MiwiMHgxMjYzODE4OTAiLCIweDAiLDg5NSw0OCw2LDAsMTMzLCIweDEyNjM4MThjMCIsIjB4MCIs
OTY5LDUwLDYsMCw3MSwiMHgxMjYzODE4ZjAiLCIweDAiLDcyNywxMTIsOCwxLDYsIjB4MTI2NGYw
YzQwIiwiMHgwIiw3MzcsMTEyLDgsMSw2LCIweDEyNjRmMTU3MCIsIjB4MCIsMjM3OCwxMTIsOCwx
LDYsIjB4MTI2NGYxNjUwIiwiMHgwIiwyMzIyLDExMiw4LDEsNiwiMHgxMjY0ZjE3YTAiLCIweDAi
LDIzMzEsMTEyLDgsMSw2LCIweDEyNjRmMWI5MCIsIjB4MCIsMjMyOSwxMTIsOCwxLDYsIjB4MTI2
NGYxYzcwIiwiMHgwIiwyMzQwLDExMiw4LDEsNiwiMHgxMjY0ZjI0YzAiLCIweDAiLDIzMjUsMTEy
LDgsMSw2LCIweDEyNjRmMzJjMCIsIjB4MCIsMjMzNCwxMTIsOCwxLDYsIjB4MTI2NGYzM2EwIiwi
MHgwIiwyMTI2LDE3Niw0NSwxLDAsIjB4MTI2NmQ1NzYwIiwiMHgwIiwyMDg2LDE3Niw0NSwxLDAs
IjB4MTI2NmQ1YWQwIiwiMHgwIiwyMDIxLDE3Niw0NSwxLDAsIjB4MTI2NmQ1YjgwIiwiMHgwIiwx
OTYzLDE3Niw0NSwxLDAsIjB4MTI2NmQ2MWIwIiwiMHgwIiwxOTI4LDE3Niw0NSwxLDAsIjB4MTI2
NmQ2MjYwIiwiMHgwIiwxODY3LDE3Niw0NSwxLDAsIjB4MTI2NmQ3MmUwIiwiMHgwIiwxODg2LDE3
Niw0NSwxLDAsIjB4MTI2NmQ3OTEwIiwiMHgwIiwxODcxLDE3Niw0NSwxLDAsIjB4MTI2NmQ3ZDMw
IiwiMHgwIiwxODgzLDE3Niw0NSwxLDAsIjB4MTI2NmQ3ZGUwIiwiMHgwIiwxMTEwLDExMiw4LDEs
MTM0LCIweDEyNjczODBlMCIsIjB4MCIsMTExMSwxMTIsOCwxLDMsIjB4MTI2NzM4NzcwIiwiMHgw
IiwxMTA0LDExMiw4LDEsMywiMHgxMjY3Mzg4YzAiLCIweDAiLDExMTMsMTEyLDgsMSwzLCIweDEy
NjczOTAzMCIsIjB4MCIsMTEwOSwxMTIsOCwxLDIyLCIweDEyNjczOTBhMCIsIjB4MCIsMTM3Mywx
MTIsOCwxLDIsIjB4MTI2NzM5MTEwIiwiMHgwIiwxMDc5LDExMiw4LDEsMywiMHgxMjY3MzlkYzAi
LCIweDAiLDEwODMsMTEyLDgsMSwzLCIweDEyNjczOWUzMCIsIjB4MCIsMTA3OCwxMTIsOCwxLDMs
IjB4MTI2NzM5ZWEwIiwiMHgwIiwxMDc0LDExMiw4LDEsMywiMHgxMjY3MzlmMTAiLCIweDAiLDEw
NzYsMTEyLDgsMSwzLCIweDEyNjczOWY4MCIsIjB4MCIsMTA2NiwxMTIsOCwxLDMsIjB4MTI2NzNh
YmMwIiwiMHgwIiwxMDcwLDExMiw4LDEsMywiMHgxMjY3M2FjMzAiLCIweDAiLDEwNjgsMTEyLDgs
MSwzLCIweDEyNjczYWU2MCIsIjB4MCIsMTA1OCwxMTIsOCwxLDMsIjB4MTI2NzNhZWQwIiwiMHgw
IiwxNzgyLDExMiw4LDEsMiwiMHgxMjY3M2IxZTAiLCIweDAiLDE3ODYsMTEyLDgsMSwyLCIweDEy
NjczYjgwMCIsIjB4MCIsMjM3OSwxMTIsOCwxLDYsIjB4MTI2NzZjMDAwIiwiMHgwIiwyMzkyLDEx
Miw4LDEsNiwiMHgxMjY3NmMxNTAiLCIweDAiLDIzNjUsMTEyLDgsMSw2LCIweDEyNjc2YzMxMCIs
IjB4MCIsMjM1NSwxMTIsOCwxLDYsIjB4MTI2NzZjNGQwIiwiMHgwIiwyMjE4LDExMiw4LDEsNiwi
MHgxMjY3NmM3NzAiLCIweDAiLDIyMTksMTEyLDgsMSw2LCIweDEyNjc2YzdlMCIsIjB4MCIsMjI1
NSwxMTIsOCwxLDYsIjB4MTI2NzZjOGMwIiwiMHgwIiwyMjE0LDExMiw4LDEsNiwiMHgxMjY3NmNh
MTAiLCIweDAiLDIyNTEsMTEyLDgsMSw2LCIweDEyNjc2Y2Y1MCIsIjB4MCIsMTI2NiwxMTIsOCwx
LDEzNSwiMHgxMjY3NmQxMTAiLCIweDAiLDEzNTEsMTEyLDgsMSwxMzUsIjB4MTI2NzZkMTgwIiwi
MHgwIiwxMjU1LDExMiw4LDEsMTM2LCIweDEyNjc2ZDFmMCIsIjB4MCIsMTI0OSwxMTIsOCwxLDEz
NywiMHgxMjY3NmQyNjAiLCIweDAiLDEyMTgsMTEyLDgsMSwxMzgsIjB4MTI2NzZkMmQwIiwiMHgw
IiwxMjUxLDExMiw4LDEsMTM5LCIweDEyNjc2ZDNiMCIsIjB4MCIsMTIwNywxMTIsOCwxLDE0MCwi
MHgxMjY3NmQ0OTAiLCIweDAiLDE0MjEsMTEyLDgsMSwxNDAsIjB4MTI2NzZkNTAwIiwiMHgwIiwx
MTk1LDExMiw4LDEsMTQxLCIweDEyNjc2ZDVlMCIsIjB4MCIsMTQ0OCwxMTIsOCwxLDE0MSwiMHgx
MjY3NmQ2NTAiLCIweDAiLDEwODAsMTEyLDgsMSwxNDIsIjB4MTI2NzZlMGQwIiwiMHgwIiw5NjYs
MTEyLDgsMSwyLCIweDEyNjc2ZTFiMCIsIjB4MCIsMTE4OCwxMTIsOCwxLDE0MywiMHgxMjY3NmUz
MDAiLCIweDAiLDExOTksMTEyLDgsMSwxNDMsIjB4MTI2NzZlMzcwIiwiMHgwIiwxMTc4LDExMiw4
LDEsMTQ0LCIweDEyNjc2ZTNlMCIsIjB4MCIsMTE3MSwxMTIsOCwxLDE0NCwiMHgxMjY3NmU0NTAi
LCIweDAiLDEwOTUsMTEyLDgsMSwxNDUsIjB4MTI2NzZlNjgwIiwiMHgwIiwxMTgyLDExMiw4LDEs
MTQ1LCIweDEyNjc2ZTZmMCIsIjB4MCIsMTEzMCwxMTIsOCwxLDE0NiwiMHgxMjY3NmU4YjAiLCIw
eDAiLDE3MjYsMTEyLDgsMSwxNDYsIjB4MTI2NzZlOTIwIiwiMHgwIiwxMDEwLDExMiw4LDEsMTQ3
LCIweDEyNjc2ZTk5MCIsIjB4MCIsMTAwNiwxMTIsOCwxLDE0OCwiMHgxMjY3NmVhNzAiLCIweDAi
LDEwNjMsMTEyLDgsMSwxNDksIjB4MTI2NzZlYWUwIiwiMHgwIiw5ODgsMTEyLDgsMSwxNTAsIjB4
MTI2NzZlYjUwIiwiMHgwIiwxMTI1LDExMiw4LDEsMTUxLCIweDEyNjc2ZWJjMCIsIjB4MCIsMTE4
OSwxMTIsOCwxLDE1MiwiMHgxMjY3NmVkMTAiLCIweDAiLDExMjAsMTEyLDgsMSwxNTMsIjB4MTI2
NzZmNzkwIiwiMHgwIiwxMTE4LDExMiw4LDEsMTU0LCIweDEyNjc2ZmJmMCIsIjB4MCIsMTExOSwx
MTIsOCwxLDE1NCwiMHgxMjY3NmZjNjAiLCIweDAiLDExMTcsMTEyLDgsMSwxNTUsIjB4MTI2NzZm
ZGIwIiwiMHgwIiwxNDgxLDUxLDYsMCwwLCIweDEyNjgzNmY3MCIsIjB4MCIsMTQ3MCw1MSw2LDAs
MCwiMHgxMjY4MzZmYTAiLCIweDAiLDE0NjIsNTEsNiwwLDAsIjB4MTI2ODM2ZmQwIiwiMHgwIiwx
NDQyLDUxLDYsMCwwLCIweDEyNjgzNzAwMCIsIjB4MCIsMTQwMyw1MSw2LDAsMCwiMHgxMjY4Mzcw
MzAiLCIweDAiLDEzOTEsNTEsNiwwLDAsIjB4MTI2ODM3MDYwIiwiMHgwIiwxMzc4LDUxLDYsMCww
LCIweDEyNjgzNzA5MCIsIjB4MCIsMTAzMiw1MSw0OCwwLDAsIjB4MTI2ODM3MGMwIiwiMHgwIiwx
MDA1LDUxLDMzLDAsMCwiMHgxMjY4MzcwZjAiLCIweDAiLDk3OSw1MSwzNCwwLDAsIjB4MTI2ODM3
MTIwIiwiMHgwIiw3MTQsNTIsNiwwLDAsIjB4MTI2ODM3MTUwIiwiMHgwIiwyMzE0LDU0LDYsMCww
LCIweDEyNjgzNzE4MCIsIjB4MCIsMjMwNCw1Miw2LDAsMCwiMHgxMjY4MzcxYjAiLCIweDAiLDIz
MDYsNTIsNiwwLDAsIjB4MTI2ODM3MWUwIiwiMHgwIiwyMzE4LDUxLDYsMCwwLCIweDEyNjgzNzIx
MCIsIjB4MCIsMjMzNiw2Miw2LDAsMCwiMHgxMjY4MzcyNDAiLCIweDAiLDIzNTQsNjMsNiwwLDAs
IjB4MTI2ODM3MjcwIiwiMHgwIiwyMzQ5LDUxLDYsMCwwLCIweDEyNjgzNzJhMCIsIjB4MCIsMjI1
Myw1Myw2LDAsMCwiMHgxMjY4MzcyZDAiLCIweDAiLDIyMTIsNTEsNiwwLDAsIjB4MTI2ODM3MzAw
IiwiMHgwIiwyMjM3LDU1LDYsMCwwLCIweDEyNjgzNzMzMCIsIjB4MCIsODg3LDQ5LDYsMCwwLCIw
eDEyNjgzNzM2MCIsIjB4MCIsODgyLDQ5LDYsMCwwLCIweDEyNjgzNzM5MCIsIjB4MCIsOTQ2LDU4
LDYsMCwwLCIweDEyNjgzNzNjMCIsIjB4MCIsMTE4NSw2Nyw2LDAsMCwiMHgxMjY4M2ZlMDAiLCIw
eDAiLDE1MjAsNDgsNDksMSwwLCIweDEyNjg1ZDcxMCIsIjB4MCIsMTUzMiw0OCw0OSwxLDAsIjB4
MTI2ODVkNzcwIiwiMHgwIiwxODM0LDQ4LDQ5LDEsMCwiMHgxMjY4NWQ3ZDAiLCIweDAiLDIzOTUs
NDgsNDksMSwwLCIweDEyNjg1ZDgwMCIsIjB4MCIsMzQ1LDQ4LDQ5LDEsMCwiMHgxMjY4NWQ4MzAi
LCIweDAiLDIzODUsNDgsNDksMSwwLCIweDEyNjg1ZDg2MCIsIjB4MCIsMjM2Niw0OCw0OSwxLDAs
IjB4MTI2ODVkODkwIiwiMHgwIiwxNTA4LDQ4LDQ5LDEsMCwiMHgxMjY4NWQ5MjAiLCIweDAiLDE0
OTMsNDgsNDksMSwwLCIweDEyNjg1ZDk1MCIsIjB4MCIsMTUxMCw0OCw0OSwxLDAsIjB4MTI2ODVk
OTgwIiwiMHgwIiwxNDgyLDQ4LDQ5LDEsMCwiMHgxMjY4NWQ5YjAiLCIweDAiLDE1MDEsNDgsNDks
MSwwLCIweDEyNjg1ZDllMCIsIjB4MCIsMTQ4OCw0OCw0OSwxLDAsIjB4MTI2ODVkYTEwIiwiMHgw
IiwxNDc2LDQ4LDQ5LDEsMCwiMHgxMjY4NWRhZDAiLCIweDAiLDE0NjMsNDgsNDksMSwwLCIweDEy
Njg1ZGIwMCIsIjB4MCIsMTQzNSw0OCw0OSwxLDAsIjB4MTI2ODVkYjMwIiwiMHgwIiwxNDE4LDQ4
LDQ5LDEsMCwiMHgxMjY4NWRiNjAiLCIweDAiLDE0MjYsNDgsNDksMSwwLCIweDEyNjg1ZGI5MCIs
IjB4MCIsMTQxMiw0OCw0OSwxLDAsIjB4MTI2ODVkYmMwIiwiMHgwIiwxMjcxLDQ4LDQ5LDEsMCwi
MHgxMjY4NWRiZjAiLCIweDAiLDE0MTUsNDgsNDksMSwwLCIweDEyNjg1ZGMyMCIsIjB4MCIsMTQw
Miw0OCw0OSwxLDAsIjB4MTI2ODVkYzUwIiwiMHgwIiw4ODUsNDgsNDksMSwwLCIweDEyNjg1ZGM4
MCIsIjB4MCIsNzgzLDQ4LDQ5LDEsMCwiMHgxMjY4NWRjYjAiLCIweDAiLDc5MCw0OCw0OSwxLDAs
IjB4MTI2ODVkY2UwIiwiMHgwIiw5NjUsNDgsNDksMSwwLCIweDEyNjg1ZGQ3MCIsIjB4MCIsODI5
LDQ4LDQ5LDEsMCwiMHgxMjY4NWRmMjAiLCIweDAiLDIzNDUsNDgsNDksMSwwLCIweDEyNjg1ZGY4
MCIsIjB4MCIsMjM0Myw0OCw0OSwxLDAsIjB4MTI2ODVkZmUwIiwiMHgwIiwxMjQ3LDQ4LDQ5LDEs
MCwiMHgxMjY4NWUwMTAiLCIweDAiLDEyMjcsNDgsNDksMSwwLCIweDEyNjg1ZTA0MCIsIjB4MCIs
MTA5Nyw0OCw0OSwxLDAsIjB4MTI2ODVlMDcwIiwiMHgwIiwxMDkwLDQ4LDQ5LDEsMCwiMHgxMjY4
NWUwYTAiLCIweDAiLDExNzQsNDgsNDksMSwwLCIweDEyNjg1ZTBkMCIsIjB4MCIsMTE2OCw0OCw0
OSwxLDAsIjB4MTI2ODVlMTAwIiwiMHgwIiw5ODIsNDgsNDksMSwwLCIweDEyNjg1ZTEzMCIsIjB4
MCIsOTY3LDQ4LDQ5LDEsMCwiMHgxMjY4NWUxNjAiLCIweDAiLDEwNDUsNDgsNDksMSwwLCIweDEy
Njg1ZTFjMCIsIjB4MCIsMTA1Niw0OCw0OSwxLDAsIjB4MTI2ODVlMWYwIiwiMHgwIiwxMDMxLDQ4
LDQ5LDEsMCwiMHgxMjY4NWUyMjAiLCIweDAiLDEwNDEsNDgsNDksMSwwLCIweDEyNjg1ZTI1MCIs
IjB4MCIsOTk4LDQ4LDQ5LDEsMCwiMHgxMjY4NWUyODAiLCIweDAiLDEwMTgsNDgsNDksMSwwLCIw
eDEyNjg1ZTJiMCIsIjB4MCIsNzQwLDQ4LDQ5LDEsMCwiMHgxMjY4NWU0NjAiLCIweDAiLDIzODAs
NDgsNDksMSwwLCIweDEyNjg1ZTRjMCIsIjB4MCIsMjMzMyw0OCw0OSwxLDAsIjB4MTI2ODVlNTUw
IiwiMHgwIiwyMzQ0LDQ4LDQ5LDEsMCwiMHgxMjY4NWU1YjAiLCIweDAiLDIzMjcsNDgsNDksMSww
LCIweDEyNjg1ZTVlMCIsIjB4MCIsMTIwMSw0OCw0OSwxLDAsIjB4MTI2ODVlNjEwIiwiMHgwIiwy
MzM3LDQ4LDQ5LDEsMCwiMHgxMjY4NWU2NDAiLCIweDAiLDIzODMsNDgsNDksMSwwLCIweDEyNjg1
ZTY3MCIsIjB4MCIsMjM5NCw0OCw0OSwxLDAsIjB4MTI2ODVlNmQwIiwiMHgwIiwyMzcwLDQ4LDQ5
LDEsMCwiMHgxMjY4NWU3MDAiLCIweDAiLDIzNTcsNDgsNDksMSwwLCIweDEyNjg1ZTc5MCIsIjB4
MCIsMjIyMCw0OCw0OSwxLDAsIjB4MTI2ODVlODUwIiwiMHgwIiwyMjU2LDQ4LDQ5LDEsMCwiMHgx
MjY4NWU4ODAiLCIweDAiLDIyMTUsNDgsNDksMSwwLCIweDEyNjg1ZThlMCIsIjB4MCIsMjI1Miw0
OCw0OSwxLDAsIjB4MTI2ODVlOTQwIiwiMHgwIiwxMzYxLDQ4LDQ5LDEsMCwiMHgxMjY4NWU5NzAi
LCIweDAiLDEyNTAsNDgsNDksMSwwLCIweDEyNjg1ZTlhMCIsIjB4MCIsMTI1NCw0OCw0OSwxLDAs
IjB4MTI2ODVlOWQwIiwiMHgwIiwxNDIzLDQ4LDQ5LDEsMCwiMHgxMjY4NWVhNjAiLCIweDAiLDE0
NTAsNDgsNDksMSwwLCIweDEyNjg1ZWFjMCIsIjB4MCIsOTY4LDQ4LDQ5LDEsMCwiMHgxMjY4NWVi
MjAiLCIweDAiLDExNzUsNDgsNDksMSwwLCIweDEyNjg1ZWI1MCIsIjB4MCIsMTE4Niw0OCw0OSwx
LDAsIjB4MTI2ODVlYjgwIiwiMHgwIiwxNzI4LDQ4LDQ5LDEsMCwiMHgxMjY4NWViYjAiLCIweDAi
LDEwMTUsNDgsNDksMSwwLCIweDEyNjg1ZWJlMCIsIjB4MCIsMTAwOCw0OCw0OSwxLDAsIjB4MTI2
ODVlYzEwIiwiMHgwIiwxMDY1LDQ4LDQ5LDEsMCwiMHgxMjY4NWVjNDAiLCIweDAiLDk5MSw0OCw0
OSwxLDAsIjB4MTI2ODVlYzcwIiwiMHgwIiwxMTkyLDQ4LDQ5LDEsMCwiMHgxMjY4NWVjYTAiLCIw
eDAiLDEzNzUsNDgsNDksMSwwLCIweDEyNjg1ZWQzMCIsIjB4MCIsMTgxNiw0OCw0OSwxLDAsIjB4
MTI2ODVlZTIwIiwiMHgwIiwxMDQzLDQ4LDQ5LDEsMCwiMHgxMjY4NWVlYjAiLCIweDAiLDExNjAs
NDgsNDksMSwwLCIweDEyNjg1ZWY0MCIsIjB4MCIsODg0LDExMiw1MCwxLDAsIjB4MTI2ODY1ZGMw
IiwiMHgwIiwyMTgxLDExMiw1MCwxLDAsIjB4MTI2ODY1ZmYwIiwiMHgwIiw5MDgsMTYwLDUxLDEs
MCwiMHgxMjcwMjgwMDAiLCIweDAiLDg5NywxNjAsNTEsMSwwLCIweDEyNzAyODBhMCIsIjB4MCIs
MTAwMSwxNjAsNTEsMSwwLCIweDEyNzAyODE0MCIsIjB4MCIsOTQxLDE2MCw1MSwxLDAsIjB4MTI3
MDI4MWUwIiwiMHgwIiw2MzEsMTYwLDUxLDEsMCwiMHgxMjcwMjgyODAiLCIweDAiLDE1NDAsMTYw
LDUxLDEsMCwiMHgxMjcwMjgzMjAiLCIweDAiLDkxNywxNjAsNTEsMSwwLCIweDEyNzAyODNjMCIs
IjB4MCIsMTAxOSwxNjAsNTEsMSwwLCIweDEyNzAyODQ2MCIsIjB4MCIsMTA2MiwxNjAsNTEsMSww
LCIweDEyNzAyODUwMCIsIjB4MCIsMTI4OCwxNjAsNTEsMSwwLCIweDEyNzAyODVhMCIsIjB4MCIs
MTM0OSwxNjAsNTEsMSwwLCIweDEyNzAyODY0MCIsIjB4MCIsMTc1NSwxNjAsNTEsMSwwLCIweDEy
NzAyODZlMCIsIjB4MCIsMTM3MCwxNjAsNTEsMSwwLCIweDEyNzAyODc4MCIsIjB4MCIsMTQzOCwx
NjAsNTEsMSwwLCIweDEyNzAyODgyMCIsIjB4MCIsMTQ2MCwxNjAsNTEsMSwwLCIweDEyNzAyODhj
MCIsIjB4MCIsMTQ4OSwxNjAsNTEsMSwwLCIweDEyNzAyODk2MCIsIjB4MCIsMTUwNywxNjAsNTEs
MSwwLCIweDEyNzAyOGEwMCIsIjB4MCIsMTUzMywxNjAsNTEsMSwwLCIweDEyNzAyOGFhMCIsIjB4
MCIsMTU1MiwxNjAsNTEsMSwwLCIweDEyNzAyOGI0MCIsIjB4MCIsMTcyNCwxNjAsNTEsMSwwLCIw
eDEyNzAyOGJlMCIsIjB4MCIsMTc3NSwxNjAsNTEsMSwwLCIweDEyNzAyOGM4MCIsIjB4MCIsMTU5
NSwxNjAsNTEsMSwwLCIweDEyNzAyOGQyMCIsIjB4MCIsMTYzNSwxNjAsNTEsMSwwLCIweDEyNzAy
OGRjMCIsIjB4MCIsMTY3NCwxNjAsNTEsMSwwLCIweDEyNzAyOGU2MCIsIjB4MCIsMTcwMCwxNjAs
NTEsMSwwLCIweDEyNzAyOGYwMCIsIjB4MCIsMTI3NywxNjAsNTEsMSwwLCIweDEyNzAyOGZhMCIs
IjB4MCIsMTYzMSwxNjAsNTEsMSwwLCIweDEyNzAyOTA0MCIsIjB4MCIsMTI5NywxNjAsNTEsMSww
LCIweDEyNzAyOTBlMCIsIjB4MCIsMTMzNCwxNjAsNTEsMSwwLCIweDEyNzAyOTE4MCIsIjB4MCIs
MTM1OSwxNjAsNTEsMSwwLCIweDEyNzAyOTIyMCIsIjB4MCIsOTc2LDE2MCw1MSwxLDAsIjB4MTI3
MDI5MmMwIiwiMHgwIiwxMDUwLDE2MCw1MSwxLDAsIjB4MTI3MDI5MzYwIiwiMHgwIiwxNDYxLDE2
MCw1MSwxLDAsIjB4MTI3MDI5NDAwIiwiMHgwIiwxMTU5LDE2MCw1MSwxLDAsIjB4MTI3MDI5NGEw
IiwiMHgwIiwxMzkyLDE2MCw1MSwxLDAsIjB4MTI3MDI5NTQwIiwiMHgwIiwxMzUwLDE2MCw1MSwx
LDAsIjB4MTI3MDI5NWUwIiwiMHgwIiwxMjM2LDE2MCw1MSwxLDAsIjB4MTI3MDI5NjgwIiwiMHgw
Iiw3ODIsMTYwLDUxLDEsMCwiMHgxMjcwMjk3MjAiLCIweDAiLDIzNDYsMTYwLDUxLDEsMCwiMHgx
MjcwMjk3YzAiLCIweDAiLDIzNjgsMTYwLDUxLDEsMCwiMHgxMjcwMjk4NjAiLCIweDAiLDg4Mywx
NjAsNTEsMSwwLCIweDEyNzAyOTkwMCIsIjB4MCIsODgxLDE2MCw1MSwxLDAsIjB4MTI3MDI5OWEw
IiwiMHgwIiw4NzIsMTYwLDUxLDEsMCwiMHgxMjcwMjlhNDAiLCIweDAiLDg2MiwxNjAsNTEsMSww
LCIweDEyNzAyOWFlMCIsIjB4MCIsODY3LDE2MCw1MSwxLDAsIjB4MTI3MDI5YjgwIiwiMHgwIiw4
NjksMTYwLDUxLDEsMCwiMHgxMjcwMjljMjAiLCIweDAiLDg1MSwxNjAsNTEsMSwwLCIweDEyNzAy
OWNjMCIsIjB4MCIsODQ3LDE2MCw1MSwxLDAsIjB4MTI3MDI5ZDYwIiwiMHgwIiw4MjgsMTYwLDUx
LDEsMCwiMHgxMjcwMjllMDAiLCIweDAiLDg0MCwxNjAsNTEsMSwwLCIweDEyNzAyOWVhMCIsIjB4
MCIsODE2LDE2MCw1MSwxLDAsIjB4MTI3MDI5ZjQwIiwiMHgwIiw4NjEsMTYwLDUxLDEsMCwiMHgx
MjcwMjlmZTAiLCIweDAiLDgwOSwxNjAsNTEsMSwwLCIweDEyNzAyYTA4MCIsIjB4MCIsNzk2LDE2
MCw1MSwxLDAsIjB4MTI3MDJhMTIwIiwiMHgwIiw4MDUsMTYwLDUxLDEsMCwiMHgxMjcwMmExYzAi
LCIweDAiLDc5MywxNjAsNTEsMSwwLCIweDEyNzAyYTI2MCIsIjB4MCIsNzc2LDE2MCw1MSwxLDAs
IjB4MTI3MDJhMzAwIiwiMHgwIiw3NjksMTYwLDUxLDEsMCwiMHgxMjcwMmEzYTAiLCIweDAiLDc3
MSwxNjAsNTEsMSwwLCIweDEyNzAyYTQ0MCIsIjB4MCIsNzY2LDE2MCw1MSwxLDAsIjB4MTI3MDJh
NGUwIiwiMHgwIiw3NjEsMTYwLDUxLDEsMCwiMHgxMjcwMmE1ODAiLCIweDAiLDc0NCwxNjAsNTEs
MSwwLCIweDEyNzAyYTYyMCIsIjB4MCIsNzI4LDE2MCw1MSwxLDAsIjB4MTI3MDJhNmMwIiwiMHgw
Iiw3MjEsMTYwLDUxLDEsMCwiMHgxMjcwMmE3NjAiLCIweDAiLDgzNiwxNjAsNTEsMSwwLCIweDEy
NzAyYTgwMCIsIjB4MCIsNzExLDE2MCw1MSwxLDAsIjB4MTI3MDJhOGEwIiwiMHgwIiw4NDQsMTYw
LDUxLDEsMCwiMHgxMjcwMmE5NDAiLCIweDAiLDcxMywxNjAsNTEsMSwwLCIweDEyNzAyYTllMCIs
IjB4MCIsNzQ3LDE2MCw1MSwxLDAsIjB4MTI3MDJhYTgwIiwiMHgwIiw3MDEsMTYwLDUxLDEsMCwi
MHgxMjcwMmFiMjAiLCIweDAiLDczMywxNjAsNTEsMSwwLCIweDEyNzAyYWJjMCIsIjB4MCIsNjkx
LDE2MCw1MSwxLDAsIjB4MTI3MDJhYzYwIiwiMHgwIiw3MzIsMTYwLDUxLDEsMCwiMHgxMjcwMmFk
MDAiLCIweDAiLDY4MCwxNjAsNTEsMSwwLCIweDEyNzAyYWRhMCIsIjB4MCIsNzAwLDE2MCw1MSwx
LDAsIjB4MTI3MDJhZTQwIiwiMHgwIiw2ODUsMTYwLDUxLDEsMCwiMHgxMjcwMmFlZTAiLCIweDAi
LDcxMCwxNjAsNTEsMSwwLCIweDEyNzAyYWY4MCIsIjB4MCIsNjUzLDE2MCw1MSwxLDAsIjB4MTI3
MDJiMDIwIiwiMHgwIiw2ODcsMTYwLDUxLDEsMCwiMHgxMjcwMmIwYzAiLCIweDAiLDY0MywxNjAs
NTEsMSwwLCIweDEyNzAyYjE2MCIsIjB4MCIsNjc2LDE2MCw1MSwxLDAsIjB4MTI3MDJiMjAwIiwi
MHgwIiw2MzUsMTYwLDUxLDEsMCwiMHgxMjcwMmIyYTAiLCIweDAiLDY3OCwxNjAsNTEsMSwwLCIw
eDEyNzAyYjM0MCIsIjB4MCIsNjM3LDE2MCw1MSwxLDAsIjB4MTI3MDJiM2UwIiwiMHgwIiw2NzMs
MTYwLDUxLDEsMCwiMHgxMjcwMmI0ODAiLCIweDAiLDYxNywxNjAsNTEsMSwwLCIweDEyNzAyYjUy
MCIsIjB4MCIsNjYwLDE2MCw1MSwxLDAsIjB4MTI3MDJiNWMwIiwiMHgwIiw2NTgsMTYwLDUxLDEs
MCwiMHgxMjcwMmI2NjAiLCIweDAiLDYyNCwxNjAsNTEsMSwwLCIweDEyNzAyYjcwMCIsIjB4MCIs
NjUwLDE2MCw1MSwxLDAsIjB4MTI3MDJiN2EwIiwiMHgwIiw1ODUsMTYwLDUxLDEsMCwiMHgxMjcw
MmI4NDAiLCIweDAiLDYyNiwxNjAsNTEsMSwwLCIweDEyNzAyYjhlMCIsIjB4MCIsNTc3LDE2MCw1
MSwxLDAsIjB4MTI3MDJiOTgwIiwiMHgwIiw2MDYsMTYwLDUxLDEsMCwiMHgxMjcwMmJhMjAiLCIw
eDAiLDU2NywxNjAsNTEsMSwwLCIweDEyNzAyYmFjMCIsIjB4MCIsNTk3LDE2MCw1MSwxLDAsIjB4
MTI3MDJiYjYwIiwiMHgwIiw1NzYsMTYwLDUxLDEsMCwiMHgxMjcwMmJjMDAiLCIweDAiLDU5OSwx
NjAsNTEsMSwwLCIweDEyNzAyYmNhMCIsIjB4MCIsNTY4LDE2MCw1MSwxLDAsIjB4MTI3MDJiZDQw
IiwiMHgwIiw1OTYsMTYwLDUxLDEsMCwiMHgxMjcwMmJkZTAiLCIweDAiLDY0NCwxNzYsNDUsMSww
LCIweDEyNzA5ODM3MCIsIjB4MCIsNjIxLDE3Niw0NSwxLDAsIjB4MTI3MDk4NzkwIiwiMHgwIiw2
NTEsMTc2LDQ1LDEsMCwiMHgxMjcwOThkMTAiLCIweDAiLDYyMywxNzYsNDUsMSwwLCIweDEyNzA5
OGZkMCIsIjB4MCIsNjU0LDE3Niw0NSwxLDAsIjB4MTI3MDk5OTcwIiwiMHgwIiw2MTMsMTc2LDQ1
LDEsMCwiMHgxMjcwOTlhMjAiLCIweDAiLDY2MSwxNzYsNDUsMSwwLCIweDEyNzA5OWFkMCIsIjB4
MCIsNjI4LDE3Niw0NSwxLDAsIjB4MTI3MDk5Y2UwIiwiMHgwIiw2NjQsMTc2LDQ1LDEsMCwiMHgx
MjcwOWE0NzAiLCIweDAiLDYyNSwxNzYsNDUsMSwwLCIweDEyNzA5YTVkMCIsIjB4MCIsNjY4LDE3
Niw0NSwxLDAsIjB4MTI3MDlhNjgwIiwiMHgwIiw2MzIsMTc2LDQ1LDEsMCwiMHgxMjcwOWE3ZTAi
LCIweDAiLDY4MiwxNzYsNDUsMSwwLCIweDEyNzA5YTk0MCIsIjB4MCIsNjQ3LDE3Niw0NSwxLDAs
IjB4MTI3MDlhYWEwIiwiMHgwIiw3MDMsMTc2LDQ1LDEsMCwiMHgxMjcwOWIyZTAiLCIweDAiLDY3
OSwxNzYsNDUsMSwwLCIweDEyNzA5YjVhMCIsIjB4MCIsNjkyLDE3Niw0NSwxLDAsIjB4MTI3MDli
ODYwIiwiMHgwIiw2NzAsMTc2LDQ1LDEsMCwiMHgxMjcwOWJiMjAiLCIweDAiLDEzNzIsMzIsNTIs
MCwwLCIweDEyNzI5MmRhMCIsIjB4MCIsMTQwNCwzMiw1MiwwLDAsIjB4MTI3MjkyZGMwIiwiMHgw
IiwxMTY1LDMyLDUyLDAsMCwiMHgxMjcyOTJlMDAiLCIweDAiLDExMjgsMzYsNTMsMCwwLCIweDEy
NzI5MmUyMCIsIjB4MCIsMTMwNiwzMiw1MiwwLDAsIjB4MTI3MjkzMDQwIiwiMHgwIiwxNDI3LDMy
LDUyLDAsMCwiMHgxMjcyOTMwNjAiLCIweDAiLDE0NzcsMzIsNTIsMCwwLCIweDEyNzI5MzA4MCIs
IjB4MCIsMTQ1MywzMiw1MiwwLDAsIjB4MTI3MjkzMGUwIiwiMHgwIiwxMzk0LDMyLDUyLDAsMCwi
MHgxMjcyOTMzMDAiLCIweDAiLDEzNjksMzIsNTIsMCwwLCIweDEyNzI5MzM2MCIsIjB4MCIsMTIx
OSwzMiw1MiwwLDAsIjB4MTI3MjkzMzgwIiwiMHgwIiwxMzM3LDMyLDUyLDAsMCwiMHgxMjcyOTM0
ODAiLCIweDAiLDExMzEsNDksMzEsMCwwLCIweDEyNzI5MzRhMCIsIjB4MCIsOTc3LDcyLDU0LDAs
MCwiMHgxMjcyOTM0ZTAiLCIweDAiLDE1MTEsMzIsNTIsMCwwLCIweDEyNzI5MzU0MCIsIjB4MCIs
OTMwLDMyLDUyLDAsMCwiMHgxMjcyOTM1YzAiLCIweDAiLDExMDYsMzIsNTIsMCwwLCIweDEyNzI5
MzY0MCIsIjB4MCIsODcxLDMyLDU1LDAsMCwiMHgxMjcyOTM2NjAiLCIweDAiLDcxOCwxNzYsNDUs
MSwwLCIweDEyNzJhNDBiMCIsIjB4MCIsNjg2LDE3Niw0NSwxLDAsIjB4MTI3MmE1NTUwIiwiMHgw
Iiw3MjYsMTc2LDQ1LDEsMCwiMHgxMjcyYTU3NjAiLCIweDAiLDY5NywxNzYsNDUsMSwwLCIweDEy
NzJhNTgxMCIsIjB4MCIsNzQzLDE3Niw0NSwxLDAsIjB4MTI3MmE1OGMwIiwiMHgwIiw3MDUsMTc2
LDQ1LDEsMCwiMHgxMjcyYTU5NzAiLCIweDAiLDgzOCwxNzYsNDUsMSwwLCIweDEyNzJhNWEyMCIs
IjB4MCIsNzA3LDE3Niw0NSwxLDAsIjB4MTI3MmE1YWQwIiwiMHgwIiw4MjQsMTc2LDQ1LDEsMCwi
MHgxMjcyYTVkOTAiLCIweDAiLDcxNSwxNzYsNDUsMSwwLCIweDEyNzJhNjQ3MCIsIjB4MCIsNzI0
LDE3Niw0NSwxLDAsIjB4MTI3MmE2ODkwIiwiMHgwIiw3MzUsMTc2LDQ1LDEsMCwiMHgxMjcyYTcz
OTAiLCIweDAiLDc1NiwxNzYsNDUsMSwwLCIweDEyNzJhNzg2MCIsIjB4MCIsNTc0LDE3Niw0NSwx
LDAsIjB4MTI3MzkxYWQwIiwiMHgwIiw1OTIsMTc2LDQ1LDEsMCwiMHgxMjczOTI0NzAiLCIweDAi
LDU2MCwxNzYsNDUsMSwwLCIweDEyNzM5MjUyMCIsIjB4MCIsNTkwLDE3Niw0NSwxLDAsIjB4MTI3
MzkyNWQwIiwiMHgwIiw1NjksMTc2LDQ1LDEsMCwiMHgxMjczOTI2ODAiLCIweDAiLDU4NywxNzYs
NDUsMSwwLCIweDEyNzM5MjlmMCIsIjB4MCIsNTYyLDE3Niw0NSwxLDAsIjB4MTI3MzkyYWEwIiwi
MHgwIiw2MDIsMTc2LDQ1LDEsMCwiMHgxMjczOTM1YTAiLCIweDAiLDU3MCwxNzYsNDUsMSwwLCIw
eDEyNzM5M2M4MCIsIjB4MCIsNjE2LDE3Niw0NSwxLDAsIjB4MTI3MzkzZDMwIiwiMHgwIiw1ODEs
MTc2LDQ1LDEsMCwiMHgxMjczOTNkZTAiLCIweDAiLDEyNDMsMTEyLDgsMSw2LCIweDEyNzRjNDcw
MCIsIjB4MCIsMTE5NCwxMTIsOCwxLDIsIjB4MTI3NGM0N2UwIiwiMHgwIiwxMjI0LDExMiw4LDEs
MiwiMHgxMjc0YzQ4NTAiLCIweDAiLDEwOTQsMTEyLDgsMSw2LCIweDEyNzRjNDhjMCIsIjB4MCIs
MTAyOCwxMTIsOCwxLDIsIjB4MTI3NGM0OWEwIiwiMHgwIiwxMDg1LDExMiw4LDEsMiwiMHgxMjc0
YzRhMTAiLCIweDAiLDExNzAsMTEyLDgsMSw2LCIweDEyNzRjNGE4MCIsIjB4MCIsMTExNCwxMTIs
OCwxLDIsIjB4MTI3NGM1M2IwIiwiMHgwIiwxMTYzLDExMiw4LDEsMiwiMHgxMjc0YzU0MjAiLCIw
eDAiLDk3OCwxMTIsOCwxLDYsIjB4MTI3NGM1NDkwIiwiMHgwIiw5MzksMTEyLDgsMSwyLCIweDEy
NzRjNTU3MCIsIjB4MCIsOTYzLDExMiw4LDEsMiwiMHgxMjc0YzU1ZTAiLCIweDAiLDIzMzgsMTEy
LDgsMSwyLCIweDEyNzRjNTY1MCIsIjB4MCIsMTEwMywxMTIsOCwxLDIsIjB4MTI3NGM1NmMwIiwi
MHgwIiwxMTE1LDExMiw4LDEsMiwiMHgxMjc0YzU3MzAiLCIweDAiLDExMDIsMTEyLDgsMSwxNTYs
IjB4MTI3NGM1N2EwIiwiMHgwIiwxMDQyLDExMiw4LDEsMTU3LCIweDEyNzRjNTgxMCIsIjB4MCIs
MTA1MiwxMTIsOCwxLDE0NywiMHgxMjc0YzU4ZjAiLCIweDAiLDExMDEsMTEyLDgsMSwxNTgsIjB4
MTI3NGM1OTYwIiwiMHgwIiwxMDIwLDExMiw4LDEsMTU4LCIweDEyNzRjNTlkMCIsIjB4MCIsMTAz
NiwxMTIsOCwxLDE1OCwiMHgxMjc0YzVhYjAiLCIweDAiLDEwOTksMTEyLDgsMSwxNTksIjB4MTI3
NGM1YjIwIiwiMHgwIiw5OTQsMTEyLDgsMSwxNTksIjB4MTI3NGM1YjkwIiwiMHgwIiwxMDE3LDEx
Miw4LDEsMTU5LCIweDEyNzRjNWM3MCIsIjB4MCIsMjIzMywxMTIsOCwxLDE0MiwiMHgxMjc0YzVj
ZTAiLCIweDAiLDIyMjIsMTEyLDgsMSwxNDIsIjB4MTI3NGM1ZDUwIiwiMHgwIiwyMjI5LDExMiw4
LDEsNiwiMHgxMjc0YzVkYzAiLCIweDAiLDIyMzAsMTEyLDgsMSw2LCIweDEyNzRjNWUzMCIsIjB4
MCIsMjIyNiwxMTIsOCwxLDIsIjB4MTI3NGM2MzcwIiwiMHgwIiwyMjI3LDExMiw4LDEsMiwiMHgx
Mjc0YzY4NDAiLCIweDAiLDIyMjgsMTEyLDgsMSwyLCIweDEyNzRjNjk5MCIsIjB4MCIsMjIzMSwx
MTIsOCwxLDYsIjB4MTI3NGM2YTAwIiwiMHgwIiw4ODAsMTEyLDgsMSw2LCIweDEyNzRjNmE3MCIs
IjB4MCIsODc0LDExMiw4LDEsMiwiMHgxMjc0YzZhZTAiLCIweDAiLDE0NTcsMTEyLDgsMSwxNjAs
IjB4MTI3ODUyNWEwIiwiMHgwIiwxNDk3LDExMiw4LDEsMTYwLCIweDEyNzg1MjYxMCIsIjB4MCIs
MTQ1OSwxMTIsOCwxLDYsIjB4MTI3ODUyNjgwIiwiMHgwIiwxNDQ5LDExMiw4LDEsMTYxLCIweDEy
Nzg1Mjc2MCIsIjB4MCIsMTQ3NSwxMTIsOCwxLDE2MSwiMHgxMjc4NTI3ZDAiLCIweDAiLDE0MTYs
MTEyLDgsMSw2LCIweDEyNzg1MjhiMCIsIjB4MCIsMTQyOSwxMTIsOCwxLDE0MiwiMHgxMjc4NTI5
OTAiLCIweDAiLDE0MzAsMTEyLDgsMSwxNjIsIjB4MTI3ODUyYTAwIiwiMHgwIiwxNDA4LDExMiw4
LDEsNiwiMHgxMjc4NTJhNzAiLCIweDAiLDEzODYsMTEyLDgsMSwxNjMsIjB4MTI3ODUyYzMwIiwi
MHgwIiwxNDIwLDExMiw4LDEsMTYzLCIweDEyNzg1MmNhMCIsIjB4MCIsMTM5OSwxMTIsOCwxLDYs
IjB4MTI3ODUyZDEwIiwiMHgwIiwxMzcxLDExMiw4LDEsMTQyLCIweDEyNzg1MmRmMCIsIjB4MCIs
MTQwOSwxMTIsOCwxLDE2NCwiMHgxMjc4NTJlNjAiLCIweDAiLDEzNTYsMTEyLDgsMSwxNjUsIjB4
MTI3ODUzMDkwIiwiMHgwIiwxMzQ3LDExMiw4LDEsMTY2LCIweDEyNzg1MzJjMCIsIjB4MCIsMTMz
MSwxMTIsOCwxLDE2NywiMHgxMjc4NTMzMzAiLCIweDAiLDEzMjIsMTEyLDgsMSwxNjgsIjB4MTI3
ODUzM2EwIiwiMHgwIiwxMjY4LDExMiw4LDEsMTY5LCIweDEyNzg1MzQxMCIsIjB4MCIsMTMwNywx
MTIsOCwxLDE2OSwiMHgxMjc4NTM5NTAiLCIweDAiLDg3OSwxMTIsOCwxLDE3MCwiMHgxMjc4NTM5
YzAiLCIweDAiLDc4MCwxMTIsOCwxLDUyLCIweDEyNzg1M2EzMCIsIjB4MCIsNzg2LDExMiw4LDEs
NTMsIjB4MTI3ODUzYWEwIiwiMHgwIiw5ODAsMTEyLDgsMSw2LCIweDEyNzg1M2IxMCIsIjB4MCIs
OTYxLDExMiw4LDEsMTcxLCIweDEyNzg1M2I4MCIsIjB4MCIsODAyLDExMiw4LDEsNiwiMHgxMjc4
NTNiZjAiLCIweDAiLDgyNywxMTIsOCwxLDE3MiwiMHgxMjc4NTNjNjAiLCIweDAiLDk1NSwxMTIs
OCwxLDE3MywiMHgxMjc4NTNjZDAiLCIweDAiLDk1OCwxMTIsOCwxLDE3MywiMHgxMjc4NTNkNDAi
LCIweDAiLDIzNDEsMTEyLDgsMSwyLCIweDEyNzg1M2RiMCIsIjB4MCIsMjMyNiwxMTIsOCwxLDIs
IjB4MTI3ODUzZTIwIiwiMHgwIiwxODMyLDExMiw4LDEsMTc0LCIweDEyNzg2NDAwMCIsIjB4MCIs
MjM5MywxMTIsOCwxLDE3NSwiMHgxMjc4NjQwZTAiLCIweDAiLDIzOTEsMTEyLDgsMSwxNzYsIjB4
MTI3ODY0MTUwIiwiMHgwIiwzMzAsMTEyLDgsMSwxNzcsIjB4MTI3ODY0MWMwIiwiMHgwIiwzNDQs
MTEyLDgsMSwxNzgsIjB4MTI3ODY0MzgwIiwiMHgwIiwyMTQwLDExMiw4LDEsMTc5LCIweDEyNzg2
NDQ2MCIsIjB4MCIsMjA5OSwxMTIsOCwxLDE4MCwiMHgxMjc4NjQ0ZDAiLCIweDAiLDIwNDIsMTEy
LDgsMSwxODEsIjB4MTI3ODY0NjIwIiwiMHgwIiwxOTgyLDExMiw4LDEsMTgyLCIweDEyNzg2NDdl
MCIsIjB4MCIsMTk0MiwxMTIsOCwxLDE4MywiMHgxMjc4NjQ4NTAiLCIweDAiLDIzODIsMTEyLDgs
MSwxODQsIjB4MTI3ODY0YmQwIiwiMHgwIiwyMzYyLDExMiw4LDEsMTg1LCIweDEyNzg2NGM0MCIs
IjB4MCIsMTMxOSwxMTIsOCwxLDEzNSwiMHgxMjc4NjRjYjAiLCIweDAiLDgxNywxMTIsOCwxLDE3
MiwiMHgxMjc4NjRkMjAiLCIweDAiLDE0OTIsMTEyLDgsMSw2LCIweDEyNzg2NGQ5MCIsIjB4MCIs
MTQ4MywxMTIsOCwxLDE4NiwiMHgxMjc4NjRlNzAiLCIweDAiLDE1MDUsMTEyLDgsMSwxODYsIjB4
MTI3ODY0ZjUwIiwiMHgwIiwxNDc4LDExMiw4LDEsNiwiMHgxMjc4NjUxMTAiLCIweDAiLDE0ODAs
MTEyLDgsMSwxNDIsIjB4MTI3ODY2MWIwIiwiMHgwIiwxNTA0LDExMiw4LDEsMTg3LCIweDEyNzg2
NjIyMCIsIjB4MCIsMTQ3MywxMTIsOCwxLDYsIjB4MTI3ODY2MjkwIiwiMHgwIiw1ODAsMTYwLDUx
LDEsMCwiMHgxMjc4ODAwMDAiLCIweDAiLDYwOCwxNjAsNTEsMSwwLCIweDEyNzg4MDBhMCIsIjB4
MCIsNTU4LDE2MCw1MSwxLDAsIjB4MTI3ODgwMTQwIiwiMHgwIiw1OTUsMTYwLDUxLDEsMCwiMHgx
Mjc4ODAxZTAiLCIweDAiLDkwNSwxNjAsNTEsMSwwLCIweDEyNzg4MDI4MCIsIjB4MCIsOTI3LDE2
MCw1MSwxLDAsIjB4MTI3ODgwMzIwIiwiMHgwIiw5NTEsMTYwLDUxLDEsMCwiMHgxMjc4ODAzYzAi
LCIweDAiLDc1OSwxNjAsNTEsMSwwLCIweDEyNzg4MDQ2MCIsIjB4MCIsNzQ2LDE2MCw1MSwxLDAs
IjB4MTI3ODgwNTAwIiwiMHgwIiw4MDYsMTYwLDUxLDEsMCwiMHgxMjc4ODA1YTAiLCIweDAiLDEz
MTEsMTYwLDUxLDEsMCwiMHgxMjc4ODA2NDAiLCIweDAiLDE4MjYsMTYwLDUxLDEsMCwiMHgxMjc4
ODA2ZTAiLCIweDAiLDE4MzksMTYwLDUxLDEsMCwiMHgxMjc4ODA3ODAiLCIweDAiLDE4MTgsMTYw
LDUxLDEsMCwiMHgxMjc4ODA4MjAiLCIweDAiLDE4MzUsMTYwLDUxLDEsMCwiMHgxMjc4ODA4YzAi
LCIweDAiLDIxOTUsMTYwLDUxLDEsMCwiMHgxMjc4ODA5NjAiLCIweDAiLDE4NTUsMTYwLDUxLDEs
MCwiMHgxMjc4ODBhMDAiLCIweDAiLDIwMjcsMTYwLDUxLDEsMCwiMHgxMjc4ODBhYTAiLCIweDAi
LDE4NDMsMTYwLDUxLDEsMCwiMHgxMjc4ODBiNDAiLCIweDAiLDE4NTEsMTYwLDUxLDEsMCwiMHgx
Mjc4ODBiZTAiLCIweDAiLDE4NDcsMTYwLDUxLDEsMCwiMHgxMjc4ODBjODAiLCIweDAiLDIyMDMs
MTYwLDUxLDEsMCwiMHgxMjc4ODBkMjAiLCIweDAiLDIxOTMsMTYwLDUxLDEsMCwiMHgxMjc4ODBk
YzAiLCIweDAiLDIxOTAsMTYwLDUxLDEsMCwiMHgxMjc4ODBlNjAiLCIweDAiLDIxOTYsMTYwLDUx
LDEsMCwiMHgxMjc4ODBmMDAiLCIweDAiLDIxNjAsMTYwLDUxLDEsMCwiMHgxMjc4ODBmYTAiLCIw
eDAiLDIwOTAsMTYwLDUxLDEsMCwiMHgxMjc4ODEwNDAiLCIweDAiLDIwODIsMTYwLDUxLDEsMCwi
MHgxMjc4ODEwZTAiLCIweDAiLDIxNjMsMTYwLDUxLDEsMCwiMHgxMjc4ODExODAiLCIweDAiLDIx
MzgsMTYwLDUxLDEsMCwiMHgxMjc4ODEyMjAiLCIweDAiLDIxMTIsMTYwLDUxLDEsMCwiMHgxMjc4
ODEyYzAiLCIweDAiLDIyMDgsMTYwLDUxLDEsMCwiMHgxMjc4ODEzNjAiLCIweDAiLDIwNjAsMTYw
LDUxLDEsMCwiMHgxMjc4ODE0MDAiLCIweDAiLDIxODAsMTYwLDUxLDEsMCwiMHgxMjc4ODE0YTAi
LCIweDAiLDIxODMsMTYwLDUxLDEsMCwiMHgxMjc4ODE1NDAiLCIweDAiLDIxMjUsMTYwLDUxLDEs
MCwiMHgxMjc4ODE1ZTAiLCIweDAiLDIxMjcsMTYwLDUxLDEsMCwiMHgxMjc4ODE2ODAiLCIweDAi
LDIxMjEsMTYwLDUxLDEsMCwiMHgxMjc4ODE3MjAiLCIweDAiLDIxMTQsMTYwLDUxLDEsMCwiMHgx
Mjc4ODE3YzAiLCIweDAiLDIxMzEsMTYwLDUxLDEsMCwiMHgxMjc4ODE4NjAiLCIweDAiLDIxNDgs
MTYwLDUxLDEsMCwiMHgxMjc4ODE5MDAiLCIweDAiLDIxNDksMTYwLDUxLDEsMCwiMHgxMjc4ODE5
YTAiLCIweDAiLDIxMTEsMTYwLDUxLDEsMCwiMHgxMjc4ODFhNDAiLCIweDAiLDIxNTcsMTYwLDUx
LDEsMCwiMHgxMjc4ODFhZTAiLCIweDAiLDIxODUsMTYwLDUxLDEsMCwiMHgxMjc4ODFiODAiLCIw
eDAiLDIxNzMsMTYwLDUxLDEsMCwiMHgxMjc4ODFjMjAiLCIweDAiLDIwOTIsMTYwLDUxLDEsMCwi
MHgxMjc4ODFjYzAiLCIweDAiLDIwODMsMTYwLDUxLDEsMCwiMHgxMjc4ODFkNjAiLCIweDAiLDIx
NDMsMTYwLDUxLDEsMCwiMHgxMjc4ODFlMDAiLCIweDAiLDIwOTQsMTYwLDUxLDEsMCwiMHgxMjc4
ODFlYTAiLCIweDAiLDIwNDcsMTYwLDUxLDEsMCwiMHgxMjc4ODFmNDAiLCIweDAiLDE5ODcsMTYw
LDUxLDEsMCwiMHgxMjc4ODFmZTAiLCIweDAiLDE5MzQsMTYwLDUxLDEsMCwiMHgxMjc4ODIwODAi
LCIweDAiLDIwMDMsMTYwLDUxLDEsMCwiMHgxMjc4ODIxMjAiLCIweDAiLDE5ODEsMTYwLDUxLDEs
MCwiMHgxMjc4ODIxYzAiLCIweDAiLDE5NDYsMTYwLDUxLDEsMCwiMHgxMjc4ODIyNjAiLCIweDAi
LDIwOTcsMTYwLDUxLDEsMCwiMHgxMjc4ODIzMDAiLCIweDAiLDE5NDUsMTYwLDUxLDEsMCwiMHgx
Mjc4ODIzYTAiLCIweDAiLDE5NTAsMTYwLDUxLDEsMCwiMHgxMjc4ODI0NDAiLCIweDAiLDE5NTcs
MTYwLDUxLDEsMCwiMHgxMjc4ODI0ZTAiLCIweDAiLDIwNjgsMTYwLDUxLDEsMCwiMHgxMjc4ODI1
ODAiLCIweDAiLDIwNjMsMTYwLDUxLDEsMCwiMHgxMjc4ODI2MjAiLCIweDAiLDIwNjIsMTYwLDUx
LDEsMCwiMHgxMjc4ODI2YzAiLCIweDAiLDE5ODMsMTYwLDUxLDEsMCwiMHgxMjc4ODI3NjAiLCIw
eDAiLDIwMjIsMTYwLDUxLDEsMCwiMHgxMjc4ODI4MDAiLCIweDAiLDIwNTEsMTYwLDUxLDEsMCwi
MHgxMjc4ODI4YTAiLCIweDAiLDE5OTksMTYwLDUxLDEsMCwiMHgxMjc4ODI5NDAiLCIweDAiLDE5
NjcsMTYwLDUxLDEsMCwiMHgxMjc4ODI5ZTAiLCIweDAiLDIwMzYsMTYwLDUxLDEsMCwiMHgxMjc4
ODJhODAiLCIweDAiLDIwMjAsMTYwLDUxLDEsMCwiMHgxMjc4ODJiMjAiLCIweDAiLDE5OTAsMTYw
LDUxLDEsMCwiMHgxMjc4ODJiYzAiLCIweDAiLDIwMTksMTYwLDUxLDEsMCwiMHgxMjc4ODJjNjAi
LCIweDAiLDIwMzIsMTYwLDUxLDEsMCwiMHgxMjc4ODJkMDAiLCIweDAiLDE5NjgsMTYwLDUxLDEs
MCwiMHgxMjc4ODJkYTAiLCIweDAiLDIwMTAsMTYwLDUxLDEsMCwiMHgxMjc4ODJlNDAiLCIweDAi
LDE5OTYsMTYwLDUxLDEsMCwiMHgxMjc4ODJlZTAiLCIweDAiLDIwNDAsMTYwLDUxLDEsMCwiMHgx
Mjc4ODJmODAiLCIweDAiLDIwNjksMTYwLDUxLDEsMCwiMHgxMjc4ODMwMjAiLCIweDAiLDE5NzUs
MTYwLDUxLDEsMCwiMHgxMjc4ODMwYzAiLCIweDAiLDIwMjMsMTYwLDUxLDEsMCwiMHgxMjc4ODMx
NjAiLCIweDAiLDE5MTEsMTYwLDUxLDEsMCwiMHgxMjc4ODMyMDAiLCIweDAiLDE5MjAsMTYwLDUx
LDEsMCwiMHgxMjc4ODMyYTAiLCIweDAiLDE5MTQsMTYwLDUxLDEsMCwiMHgxMjc4ODMzNDAiLCIw
eDAiLDE5MTksMTYwLDUxLDEsMCwiMHgxMjc4ODMzZTAiLCIweDAiLDE5MTgsMTYwLDUxLDEsMCwi
MHgxMjc4ODM0ODAiLCIweDAiLDE5MjIsMTYwLDUxLDEsMCwiMHgxMjc4ODM1MjAiLCIweDAiLDE5
MzksMTYwLDUxLDEsMCwiMHgxMjc4ODM1YzAiLCIweDAiLDE5MzIsMTYwLDUxLDEsMCwiMHgxMjc4
ODM2NjAiLCIweDAiLDE5NTYsMTYwLDUxLDEsMCwiMHgxMjc4ODM3MDAiLCIweDAiLDE4OTQsMTYw
LDUxLDEsMCwiMHgxMjc4ODM3YTAiLCIweDAiLDE4ODksMTYwLDUxLDEsMCwiMHgxMjc4ODM4NDAi
LCIweDAiLDE4OTEsMTYwLDUxLDEsMCwiMHgxMjc4ODM4ZTAiLCIweDAiLDE4OTAsMTYwLDUxLDEs
MCwiMHgxMjc4ODM5ODAiLCIweDAiLDE4NzksMTYwLDUxLDEsMCwiMHgxMjc4ODNhMjAiLCIweDAi
LDE4OTIsMTYwLDUxLDEsMCwiMHgxMjc4ODNhYzAiLCIweDAiLDE4NzIsMTYwLDUxLDEsMCwiMHgx
Mjc4ODNiNjAiLCIweDAiLDE0OTAsMTEyLDgsMSwxODgsIjB4MTI3YmUyZDEwIiwiMHgwIiwxNTE3
LDExMiw4LDEsMTg5LCIweDEyN2JlMmRmMCIsIjB4MCIsMzQ2LDExMiw4LDEsMTkwLCIweDEyN2Jl
MmY0MCIsIjB4MCIsNDM1LDExMiw4LDEsMiwiMHgxMjdiZTM1ZDAiLCIweDAiLDQzOSwxMTIsOCwx
LDIsIjB4MTI3YmUzYTMwIiwiMHgwIiwxNTI1LDExMiw4LDEsMTkxLCIweDEyN2JlM2FhMCIsIjB4
MCIsMTUyMSwxMTIsOCwxLDE5MiwiMHgxMjdiZTNlMjAiLCIweDAiLDIxMjksMzIsNDYsMSwwLCIw
eDEyODEzYTk4MCIsIjB4MCIsMjA4OSwzMiw0NiwxLDAsIjB4MTI4MTNiNGUwIiwiMHgwIiwyMDI0
LDMyLDQ2LDEsMCwiMHgxMjgxM2I2NDAiLCIweDAiLDE5NjUsMzIsNDYsMSwwLCIweDEyODEzYjc4
MCIsIjB4MCIsMTkzMSwzMiw0NiwxLDAsIjB4MTI4MTNiN2EwIiwiMHgwIiwxODY4LDMyLDQ2LDEs
MCwiMHgxMjgxM2JhNDAiLCIweDAiLDE4MzEsMTc2LDQ1LDEsMCwiMHgxMjgxYzhkYzAiLCIweDAi
LDE4MTMsMTc2LDQ1LDEsMCwiMHgxMjgxYzhmMjAiLCIweDAiLDE4MzcsMTc2LDQ1LDEsMCwiMHgx
MjgxYzhmZDAiLCIweDAiLDE4MjQsMTc2LDQ1LDEsMCwiMHgxMjgxYzkxMzAiLCIweDAiLDEyODQs
MTc2LDQ1LDEsMCwiMHgxMjgxYzkxZTAiLCIweDAiLDc5NywxNzYsNDUsMSwwLCIweDEyODFjOTI5
MCIsIjB4MCIsNzM4LDE3Niw0NSwxLDAsIjB4MTI4MWM5MzQwIiwiMHgwIiw3NTIsMTc2LDQ1LDEs
MCwiMHgxMjgxYzkzZjAiLCIweDAiLDk0NSwxNzYsNDUsMSwwLCIweDEyODFjOTRhMCIsIjB4MCIs
OTIxLDE3Niw0NSwxLDAsIjB4MTI4MWM5NTUwIiwiMHgwIiw5MDEsMTc2LDQ1LDEsMCwiMHgxMjgx
Yzk2MDAiLCIweDAiLDU4NCwxNzYsNDUsMSwwLCIweDEyODFjOTZiMCIsIjB4MCIsNTUwLDE3Niw0
NSwxLDAsIjB4MTI4MWM5NzYwIiwiMHgwIiw2MDQsMTc2LDQ1LDEsMCwiMHgxMjgxYzk4MTAiLCIw
eDAiLDIxNTIsMTc2LDQ1LDEsMCwiMHgxMjgyYTFjZTAiLCIweDAiLDIxMDEsMTc2LDQ1LDEsMCwi
MHgxMjgyYTFkOTAiLCIweDAiLDIxNDUsMTc2LDQ1LDEsMCwiMHgxMjgyYTFlNDAiLCIweDAiLDIx
NDIsMTc2LDQ1LDEsMCwiMHgxMjgyYTFlZjAiLCIweDAiLDIxMjAsMTc2LDQ1LDEsMCwiMHgxMjgy
YTFmYTAiLCIweDAiLDIxMDQsMTc2LDQ1LDEsMCwiMHgxMjgyYTIwNTAiLCIweDAiLDIxMTUsMTc2
LDQ1LDEsMCwiMHgxMjgyYTIxMDAiLCIweDAiLDIxMTksMTc2LDQ1LDEsMCwiMHgxMjgyYTI1ZDAi
LCIweDAiLDIxMTMsMTc2LDQ1LDEsMCwiMHgxMjgyYTI2ODAiLCIweDAiLDIxNzAsMTc2LDQ1LDEs
MCwiMHgxMjgyYTI3MzAiLCIweDAiLDIxNjksMTc2LDQ1LDEsMCwiMHgxMjgyYTI3ZTAiLCIweDAi
LDIwNTIsMTc2LDQ1LDEsMCwiMHgxMjgyYTI4OTAiLCIweDAiLDIyMDEsMTc2LDQ1LDEsMCwiMHgx
MjgyYTI5NDAiLCIweDAiLDIxMDcsMTc2LDQ1LDEsMCwiMHgxMjgyYTI5ZjAiLCIweDAiLDIxMzIs
MTc2LDQ1LDEsMCwiMHgxMjgyYTJhYTAiLCIweDAiLDIxNTYsMTc2LDQ1LDEsMCwiMHgxMjgyYTJi
NTAiLCIweDAiLDIwNzgsMTc2LDQ1LDEsMCwiMHgxMjgyYTJjMDAiLCIweDAiLDIwODAsMTc2LDQ1
LDEsMCwiMHgxMjgyYTJjYjAiLCIweDAiLDIxNDcsMTc2LDQ1LDEsMCwiMHgxMjgyYTM0ZjAiLCIw
eDAiLDIxODksMTc2LDQ1LDEsMCwiMHgxMjgyYTM3MDAiLCIweDAiLDIxODQsMTc2LDQ1LDEsMCwi
MHgxMjgyYTM3YjAiLCIweDAiLDIxNzYsMTc2LDQ1LDEsMCwiMHgxMjgyYTM5MTAiLCIweDAiLDIx
OTgsMTc2LDQ1LDEsMCwiMHgxMjgyYTM5YzAiLCIweDAiLDE4NDUsMTc2LDQ1LDEsMCwiMHgxMjgy
YTNhNzAiLCIweDAiLDE4NDksMTc2LDQ1LDEsMCwiMHgxMjgyYTNiMjAiLCIweDAiLDE4NDEsMTc2
LDQ1LDEsMCwiMHgxMjgyYTNiZDAiLCIweDAiLDIyMDYsMTc2LDQ1LDEsMCwiMHgxMjgyYTNjODAi
LCIweDAiLDE4NTMsMTc2LDQ1LDEsMCwiMHgxMjgyYTNkMzAiLCIweDAiLDE4NTcsMTc2LDQ1LDEs
MCwiMHgxMjgyYTNkZTAiLCIweDAiLDE5MDIsMTc2LDQ1LDEsMCwiMHgxMjgzMzQwMDAiLCIweDAi
LDIwMTEsMTc2LDQ1LDEsMCwiMHgxMjgzMzQ2MzAiLCIweDAiLDE5NzAsMTc2LDQ1LDEsMCwiMHgx
MjgzMzQ2ZTAiLCIweDAiLDIwNjYsMTc2LDQ1LDEsMCwiMHgxMjgzMzQ3OTAiLCIweDAiLDIwMzQs
MTc2LDQ1LDEsMCwiMHgxMjgzMzQ4NDAiLCIweDAiLDE5ODgsMTc2LDQ1LDEsMCwiMHgxMjgzMzQ5
YTAiLCIweDAiLDIwMDQsMTc2LDQ1LDEsMCwiMHgxMjgzMzRiMDAiLCIweDAiLDE5NjIsMTc2LDQ1
LDEsMCwiMHgxMjgzMzRiYjAiLCIweDAiLDIwMjYsMTc2LDQ1LDEsMCwiMHgxMjgzMzRjNjAiLCIw
eDAiLDIwMTQsMTc2LDQ1LDEsMCwiMHgxMjgzMzRkMTAiLCIweDAiLDE5ODUsMTc2LDQ1LDEsMCwi
MHgxMjgzMzRkYzAiLCIweDAiLDIwMDcsMTc2LDQ1LDEsMCwiMHgxMjgzMzRlNzAiLCIweDAiLDIw
MjUsMTc2LDQ1LDEsMCwiMHgxMjgzMzUxMzAiLCIweDAiLDE5NjAsMTc2LDQ1LDEsMCwiMHgxMjgz
MzUxZTAiLCIweDAiLDE5OTIsMTc2LDQ1LDEsMCwiMHgxMjgzMzUyOTAiLCIweDAiLDIwNDksMTc2
LDQ1LDEsMCwiMHgxMjgzMzUzNDAiLCIweDAiLDIwMTUsMTc2LDQ1LDEsMCwiMHgxMjgzMzUzZjAi
LCIweDAiLDE5NzgsMTc2LDQ1LDEsMCwiMHgxMjgzMzU0YTAiLCIweDAiLDIwNTcsMTc2LDQ1LDEs
MCwiMHgxMjgzMzU1NTAiLCIweDAiLDIwNTYsMTc2LDQ1LDEsMCwiMHgxMjgzMzU2MDAiLCIweDAi
LDIwNjQsMTc2LDQ1LDEsMCwiMHgxMjgzMzU2YjAiLCIweDAiLDE5NTMsMTc2LDQ1LDEsMCwiMHgx
MjgzMzU3NjAiLCIweDAiLDE5NDcsMTc2LDQ1LDEsMCwiMHgxMjgzMzU4MTAiLCIweDAiLDE5MzYs
MTc2LDQ1LDEsMCwiMHgxMjgzMzU4YzAiLCIweDAiLDIwOTMsMTc2LDQ1LDEsMCwiMHgxMjgzMzU5
NzAiLCIweDAiLDE5NDEsMTc2LDQ1LDEsMCwiMHgxMjgzMzVhMjAiLCIweDAiLDE5NzIsMTc2LDQ1
LDEsMCwiMHgxMjgzMzVhZDAiLCIweDAiLDE5OTgsMTc2LDQ1LDEsMCwiMHgxMjgzMzViODAiLCIw
eDAiLDIwNDQsMTc2LDQ1LDEsMCwiMHgxMjgzMzVlNDAiLCIweDAiLDE5NzQsMTc2LDQ1LDEsMCwi
MHgxMjgzMzVlZjAiLCIweDAiLDIwMzksMTc2LDQ1LDEsMCwiMHgxMjgzMzVmYTAiLCIweDAiLDIw
ODUsMTc2LDQ1LDEsMCwiMHgxMjgzMzYwNTAiLCIweDAiLDIxMzcsMTc2LDQ1LDEsMCwiMHgxMjgz
MzZjYjAiLCIweDAiLDIwNzUsMTc2LDQ1LDEsMCwiMHgxMjgzMzZlMTAiLCIweDAiLDIwODQsMTc2
LDQ1LDEsMCwiMHgxMjgzMzcwMjAiLCIweDAiLDIxNjcsMTc2LDQ1LDEsMCwiMHgxMjgzMzcwZDAi
LCIweDAiLDIxNzIsMTc2LDQ1LDEsMCwiMHgxMjgzMzcyMzAiLCIweDAiLDkxMywxMTIsOCwxLDYs
IjB4MTI4MzNjMDcwIiwiMHgwIiw5MTgsMTEyLDgsMSw2LCIweDEyODMzYzBlMCIsIjB4MCIsOTAw
LDExMiw4LDEsNiwiMHgxMjgzM2M0NjAiLCIweDAiLDkxMCwxMTIsOCwxLDYsIjB4MTI4MzNjNGQw
IiwiMHgwIiwzMzYsMTEyLDgsMSw2LCIweDEyODMzYzU0MCIsIjB4MCIsMzM3LDExMiw4LDEsNiwi
MHgxMjgzM2M1YjAiLCIweDAiLDEwOTEsMTEyLDgsMSwxOTMsIjB4MTI4MzNjNjkwIiwiMHgwIiwx
MDkzLDExMiw4LDEsNiwiMHgxMjgzM2M3MDAiLCIweDAiLDEwODksMTEyLDgsMSw2LCIweDEyODMz
Yzc3MCIsIjB4MCIsMTA5NiwxMTIsOCwxLDYsIjB4MTI4MzNjN2UwIiwiMHgwIiw4OTAsMTEyLDgs
MSwxOTQsIjB4MTI4MzNjODUwIiwiMHgwIiwxMDg3LDExMiw4LDEsMTk1LCIweDEyODMzYzhjMCIs
IjB4MCIsMjMxNSw2OCw2LDAsMCwiMHgxMmYwMmJlMDAiLCIweDAiLDIzOTcsNjQsNTYsMSwwLCIw
eDEyZjEwNjkwMCIsIjB4MCIsNDM4LDQ4LDU3LDEsMCwiMHgxMmYxNDRjNjAiLCIweDAiLDQzNyw0
OCw1NywxLDAsIjB4MTJmMTQ0YzkwIiwiMHgwIiw0MzYsNDgsNTcsMSwwLCIweDEyZjE0NGNjMCIs
IjB4MCIsNDM0LDQ4LDU3LDEsMCwiMHgxMmYxNDRjZjAiLCIweDAiLDQzMyw0OCw1NywxLDAsIjB4
MTJmMTQ0ZDIwIiwiMHgwIiw0MzIsNDgsNTcsMSwwLCIweDEyZjE0NGQ1MCIsIjB4MCIsNDMxLDQ4
LDU3LDEsMCwiMHgxMmYxNDRkODAiLCIweDAiLDQzMCw0OCw1NywxLDAsIjB4MTJmMTQ0ZGIwIiwi
MHgwIiw0MjgsNDgsNTcsMSwwLCIweDEyZjE0NGRlMCIsIjB4MCIsNDI3LDQ4LDU3LDEsMCwiMHgx
MmYxNDRlMTAiLCIweDAiLDQxNSw0OCw1NywxLDAsIjB4MTJmMTQ0ZTQwIiwiMHgwIiw0MTMsNDgs
NTcsMSwwLCIweDEyZjE0NGU3MCIsIjB4MCIsNDExLDQ4LDU3LDEsMCwiMHgxMmYxNDRlYTAiLCIw
eDAiLDQwOSw0OCw1NywxLDAsIjB4MTJmMTQ0ZWQwIiwiMHgwIiw0MDcsNDgsNTcsMSwwLCIweDEy
ZjE0NGYwMCIsIjB4MCIsNDA1LDQ4LDU3LDEsMCwiMHgxMmYxNDRmMzAiLCIweDAiLDQwMyw0OCw1
NywxLDAsIjB4MTJmMTQ0ZjYwIiwiMHgwIiw0MDEsNDgsNTcsMSwwLCIweDEyZjE0NGY5MCIsIjB4
MCIsMzk5LDQ4LDU3LDEsMCwiMHgxMmYxNDRmYzAiLCIweDAiLDM5Nyw0OCw1NywxLDAsIjB4MTJm
MTQ0ZmYwIiwiMHgwIiwzOTYsNDgsNTcsMSwwLCIweDEyZjE0NTAyMCIsIjB4MCIsMzk0LDQ4LDU3
LDEsMCwiMHgxMmYxNDUwNTAiLCIweDAiLDM5Miw0OCw1NywxLDAsIjB4MTJmMTQ1MDgwIiwiMHgw
IiwzOTAsNDgsNTcsMSwwLCIweDEyZjE0NTBiMCIsIjB4MCIsMzg4LDQ4LDU3LDEsMCwiMHgxMmYx
NDUwZTAiLCIweDAiLDM4Niw0OCw1NywxLDAsIjB4MTJmMTQ1MTEwIiwiMHgwIiwzODQsNDgsNTcs
MSwwLCIweDEyZjE0NTE0MCIsIjB4MCIsMzgyLDQ4LDU3LDEsMCwiMHgxMmYxNDUxNzAiLCIweDAi
LDQ4Myw0OCw1NywxLDAsIjB4MTJmMTQ1MWEwIiwiMHgwIiw0ODEsNDgsNTcsMSwwLCIweDEyZjE0
NTFkMCIsIjB4MCIsNDc5LDQ4LDU3LDEsMCwiMHgxMmYxNDUyMDAiLCIweDAiLDQ3Nyw0OCw1Nywx
LDAsIjB4MTJmMTQ1MjMwIiwiMHgwIiw0NzUsNDgsNTcsMSwwLCIweDEyZjE0NTI2MCIsIjB4MCIs
NDczLDQ4LDU3LDEsMCwiMHgxMmYxNDUyOTAiLCIweDAiLDQ3MSw0OCw1NywxLDAsIjB4MTJmMTQ1
MmMwIiwiMHgwIiw0NjksNDgsNTcsMSwwLCIweDEyZjE0NTJmMCIsIjB4MCIsNDY3LDQ4LDU3LDEs
MCwiMHgxMmYxNDUzMjAiLCIweDAiLDQ2NSw0OCw1NywxLDAsIjB4MTJmMTQ1MzUwIiwiMHgwIiw0
NjMsNDgsNTcsMSwwLCIweDEyZjE0NTM4MCIsIjB4MCIsNDYxLDQ4LDU3LDEsMCwiMHgxMmYxNDUz
YjAiLCIweDAiLDQ1OSw0OCw1NywxLDAsIjB4MTJmMTQ1M2UwIiwiMHgwIiw0NTcsNDgsNTcsMSww
LCIweDEyZjE0NTQxMCIsIjB4MCIsNDU1LDQ4LDU3LDEsMCwiMHgxMmYxNDU0NDAiLCIweDAiLDQ1
Myw0OCw1NywxLDAsIjB4MTJmMTQ1NDcwIiwiMHgwIiw0NTEsNDgsNTcsMSwwLCIweDEyZjE0NTRh
MCIsIjB4MCIsNDQ5LDQ4LDU3LDEsMCwiMHgxMmYxNDU0ZDAiLCIweDAiLDQ0Nyw0OCw1NywxLDAs
IjB4MTJmMTQ1NTAwIiwiMHgwIiw0NDUsNDgsNTcsMSwwLCIweDEyZjE0NTUzMCIsIjB4MCIsNDQz
LDQ4LDU3LDEsMCwiMHgxMmYxNDU1NjAiLCIweDAiLDQ0MSw0OCw1NywxLDAsIjB4MTJmMTQ1NTkw
IiwiMHgwIiw0MjYsNDgsNTcsMSwwLCIweDEyZjE0NTVmMCIsIjB4MCIsNDI0LDQ4LDU3LDEsMCwi
MHgxMmYxNDU2MjAiLCIweDAiLDQyMiw0OCw1NywxLDAsIjB4MTJmMTQ1NjUwIiwiMHgwIiw0MjEs
NDgsNTcsMSwwLCIweDEyZjE0NTY4MCIsIjB4MCIsNDIwLDQ4LDU3LDEsMCwiMHgxMmYxNDU2YjAi
LCIweDAiLDQxOSw0OCw1NywxLDAsIjB4MTJmMTQ1NmUwIiwiMHgwIiw0MTgsNDgsNTcsMSwwLCIw
eDEyZjE0NTcxMCIsIjB4MCIsNDE3LDQ4LDU3LDEsMCwiMHgxMmYxNDU3NDAiLCIweDAiLDQxNiw0
OCw1NywxLDAsIjB4MTJmMTQ1NzcwIiwiMHgwIiw0MTQsNDgsNTcsMSwwLCIweDEyZjE0NTdhMCIs
IjB4MCIsNDEyLDQ4LDU3LDEsMCwiMHgxMmYxNDU3ZDAiLCIweDAiLDQxMCw0OCw1NywxLDAsIjB4
MTJmMTQ1ODAwIiwiMHgwIiw0MDgsNDgsNTcsMSwwLCIweDEyZjE0NTgzMCIsIjB4MCIsNDA2LDQ4
LDU3LDEsMCwiMHgxMmYxNDU4NjAiLCIweDAiLDQwNCw0OCw1NywxLDAsIjB4MTJmMTQ1ODkwIiwi
MHgwIiw0MDIsNDgsNTcsMSwwLCIweDEyZjE0NThjMCIsIjB4MCIsNDAwLDQ4LDU3LDEsMCwiMHgx
MmYxNDU4ZjAiLCIweDAiLDM5OCw0OCw1NywxLDAsIjB4MTJmMTQ1OTIwIiwiMHgwIiwzOTUsNDgs
NTcsMSwwLCIweDEyZjE0NTk1MCIsIjB4MCIsMzkzLDQ4LDU3LDEsMCwiMHgxMmYxNDU5ODAiLCIw
eDAiLDM5MSw0OCw1NywxLDAsIjB4MTJmMTQ1OWIwIiwiMHgwIiwzODksNDgsNTcsMSwwLCIweDEy
ZjE0NTllMCIsIjB4MCIsMzg3LDQ4LDU3LDEsMCwiMHgxMmYxNDVhMTAiLCIweDAiLDM4NSw0OCw1
NywxLDAsIjB4MTJmMTQ1YTQwIiwiMHgwIiwzODMsNDgsNTcsMSwwLCIweDEyZjE0NWE3MCIsIjB4
MCIsMzgxLDQ4LDU3LDEsMCwiMHgxMmYxNDVhYTAiLCIweDAiLDM4MCw0OCw1NywxLDAsIjB4MTJm
MTQ1YWQwIiwiMHgwIiwzNzksNDgsNTcsMSwwLCIweDEyZjE0NWIwMCIsIjB4MCIsMzc3LDQ4LDU3
LDEsMCwiMHgxMmYxNDViMzAiLCIweDAiLDM3Niw0OCw1NywxLDAsIjB4MTJmMTQ1YjYwIiwiMHgw
IiwzNzUsNDgsNTcsMSwwLCIweDEyZjE0NWI5MCIsIjB4MCIsMzc0LDQ4LDU3LDEsMCwiMHgxMmYx
NDViYzAiLCIweDAiLDM3Myw0OCw1NywxLDAsIjB4MTJmMTQ1YmYwIiwiMHgwIiwzNzIsNDgsNTcs
MSwwLCIweDEyZjE0NWMyMCIsIjB4MCIsMzcxLDQ4LDU3LDEsMCwiMHgxMmYxNDVjNTAiLCIweDAi
LDM3MCw0OCw1NywxLDAsIjB4MTJmMTQ1YzgwIiwiMHgwIiwzNjksNDgsNTcsMSwwLCIweDEyZjE0
NWNiMCIsIjB4MCIsMzY4LDQ4LDU3LDEsMCwiMHgxMmYxNDVjZTAiLCIweDAiLDM2Nyw0OCw1Nywx
LDAsIjB4MTJmMTQ1ZDEwIiwiMHgwIiwzNjYsNDgsNTcsMSwwLCIweDEyZjE0NWQ0MCIsIjB4MCIs
MzY1LDQ4LDU3LDEsMCwiMHgxMmYxNDVkNzAiLCIweDAiLDM2NCw0OCw1NywxLDAsIjB4MTJmMTQ1
ZGEwIiwiMHgwIiwzNjMsNDgsNTcsMSwwLCIweDEyZjE0NWRkMCIsIjB4MCIsMzYyLDQ4LDU3LDEs
MCwiMHgxMmYxNDVlMDAiLCIweDAiLDM2MSw0OCw1NywxLDAsIjB4MTJmMTQ1ZTMwIiwiMHgwIiwz
NjAsNDgsNTcsMSwwLCIweDEyZjE0NWU2MCIsIjB4MCIsMzU5LDQ4LDU3LDEsMCwiMHgxMmYxNDVl
OTAiLCIweDAiLDM1OCw0OCw1NywxLDAsIjB4MTJmMTQ1ZWMwIiwiMHgwIiwzNTcsNDgsNTcsMSww
LCIweDEyZjE0NWVmMCIsIjB4MCIsMzU2LDQ4LDU3LDEsMCwiMHgxMmYxNDVmMjAiLCIweDAiLDM1
NSw0OCw1NywxLDAsIjB4MTJmMTQ1ZjUwIiwiMHgwIiwzNTQsNDgsNTcsMSwwLCIweDEyZjE0NWY4
MCIsIjB4MCIsMzUzLDQ4LDU3LDEsMCwiMHgxMmYxNDVmYjAiLCIweDAiLDM1Miw0OCw1NywxLDAs
IjB4MTJmMTQ1ZmUwIiwiMHgwIiwzNTEsNDgsNTcsMSwwLCIweDEyZjE0NjAxMCIsIjB4MCIsMzUw
LDQ4LDU3LDEsMCwiMHgxMmYxNDYwNDAiLCIweDAiLDM0OSw0OCw1NywxLDAsIjB4MTJmMTQ2MDcw
IiwiMHgwIiwxNjEwLDQ4LDU3LDEsMCwiMHgxMmYxNDYwYTAiLCIweDAiLDE2MDksNDgsNTcsMSww
LCIweDEyZjE0NjBkMCIsIjB4MCIsMTU5Niw0OCw1NywxLDAsIjB4MTJmMTQ2MTAwIiwiMHgwIiwx
NTkzLDQ4LDU3LDEsMCwiMHgxMmYxNDYxMzAiLCIweDAiLDE1ODksNDgsNTcsMSwwLCIweDEyZjE0
NjE2MCIsIjB4MCIsMTU4Nyw0OCw1NywxLDAsIjB4MTJmMTQ2MTkwIiwiMHgwIiwxNTg1LDQ4LDU3
LDEsMCwiMHgxMmYxNDYxYzAiLCIweDAiLDE1ODMsNDgsNTcsMSwwLCIweDEyZjE0NjFmMCIsIjB4
MCIsMTU4MSw0OCw1NywxLDAsIjB4MTJmMTQ2MjIwIiwiMHgwIiwxNTc3LDQ4LDU3LDEsMCwiMHgx
MmYxNDYyNTAiLCIweDAiLDE1NzMsNDgsNTcsMSwwLCIweDEyZjE0NjI4MCIsIjB4MCIsMTU3MCw0
OCw1NywxLDAsIjB4MTJmMTQ2MmIwIiwiMHgwIiwxNTY4LDQ4LDU3LDEsMCwiMHgxMmYxNDYyZTAi
LCIweDAiLDE1NjYsNDgsNTcsMSwwLCIweDEyZjE0NjMxMCIsIjB4MCIsOTQ0LDQ4LDEwLDEsMCwi
MHgxMmYxNDYzNDAiLCIweDAiLDk0OSw0OCwxMCwxLDAsIjB4MTJmMTQ2NDkwIiwiMHgwIiwyMjMy
LDY3LDYsMCwwLCIweDEzZjgwN2M0MCIsIjB4MCIsMjIyMSw2Nyw2LDAsMCwiMHgxM2Y4MDdjODAi
LCIweDAiLDIyNTcsNzAsNiwwLDAsIjB4MTQzMDA3ZTAwIiwiMHgwIiwxMTA4LDY3LDYsMCwwLCIw
eDE0MzAwZmUwMCIsIjB4MCIsMTAyMSw2Nyw2LDAsMCwiMHgxNDMwMTdlMDAiLCIweDAiLDQyOSw2
NCwzMSwwLDAsIjB4MTQ0YWVhNjQwIiwiMHgwIiw5MzYsMjMyLDM5LDAsMCwiMHgxNDRhZWE2ODAi
LCIweDAiLDE3NzksNjYsMzEsMCwwLCIweDE0NGFlYTZjMCIsIjB4MCIsNDk1LDQ4LDU3LDEsMCwi
MHgxNDRkMDgyNzAiLCIweDAiLDQ5NCw0OCw1NywxLDAsIjB4MTQ0ZDA4MmEwIiwiMHgwIiw0OTMs
NDgsNTcsMSwwLCIweDE0NGQwODJkMCIsIjB4MCIsNDkyLDQ4LDU3LDEsMCwiMHgxNDRkMDgzMDAi
LCIweDAiLDQ5MSw0OCw1NywxLDAsIjB4MTQ0ZDA4MzMwIiwiMHgwIiw0OTAsNDgsNTcsMSwwLCIw
eDE0NGQwODM2MCIsIjB4MCIsNDg5LDQ4LDU3LDEsMCwiMHgxNDRkMDgzOTAiLCIweDAiLDQ4OCw0
OCw1NywxLDAsIjB4MTQ0ZDA4M2MwIiwiMHgwIiw0ODcsNDgsNTcsMSwwLCIweDE0NGQwODNmMCIs
IjB4MCIsNDg2LDQ4LDU3LDEsMCwiMHgxNDRkMDg0MjAiLCIweDAiLDQ4NSw0OCw1NywxLDAsIjB4
MTQ0ZDA4NDUwIiwiMHgwIiw0ODQsNDgsNTcsMSwwLCIweDE0NGQwODQ4MCIsIjB4MCIsNDgyLDQ4
LDU3LDEsMCwiMHgxNDRkMDg0YjAiLCIweDAiLDQ4MCw0OCw1NywxLDAsIjB4MTQ0ZDA4NGUwIiwi
MHgwIiw0NzgsNDgsNTcsMSwwLCIweDE0NGQwODUxMCIsIjB4MCIsNDc2LDQ4LDU3LDEsMCwiMHgx
NDRkMDg1NDAiLCIweDAiLDQ3NCw0OCw1NywxLDAsIjB4MTQ0ZDA4NTcwIiwiMHgwIiw0NzIsNDgs
NTcsMSwwLCIweDE0NGQwODVhMCIsIjB4MCIsNDcwLDQ4LDU3LDEsMCwiMHgxNDRkMDg1ZDAiLCIw
eDAiLDQ2OCw0OCw1NywxLDAsIjB4MTQ0ZDA4NjAwIiwiMHgwIiw0NjYsNDgsNTcsMSwwLCIweDE0
NGQwODYzMCIsIjB4MCIsNDY0LDQ4LDU3LDEsMCwiMHgxNDRkMDg2NjAiLCIweDAiLDQ2Miw0OCw1
NywxLDAsIjB4MTQ0ZDA4NjkwIiwiMHgwIiw0NjAsNDgsNTcsMSwwLCIweDE0NGQwODZjMCIsIjB4
MCIsNDU4LDQ4LDU3LDEsMCwiMHgxNDRkMGExOTAiLCIweDAiLDQ1Niw0OCw1NywxLDAsIjB4MTQ0
ZDBhMWMwIiwiMHgwIiw0NTQsNDgsNTcsMSwwLCIweDE0NGQwYTFmMCIsIjB4MCIsNDUyLDQ4LDU3
LDEsMCwiMHgxNDRkMGEyMjAiLCIweDAiLDQ1MCw0OCw1NywxLDAsIjB4MTQ0ZDBhMjUwIiwiMHgw
Iiw0NDgsNDgsNTcsMSwwLCIweDE0NGQwYTI4MCIsIjB4MCIsNDQ2LDQ4LDU3LDEsMCwiMHgxNDRk
MGEyYjAiLCIweDAiLDQ0NCw0OCw1NywxLDAsIjB4MTQ0ZDBhMmUwIiwiMHgwIiw0NDIsNDgsNTcs
MSwwLCIweDE0NGQwYTMxMCIsIjB4MCIsNDQwLDQ4LDU3LDEsMCwiMHgxNDRkMGJkNTAiLCIweDAi
LDIxNDEsNDgsNiwwLDE5NiwiMHgxNDRkMzgwMDAiLCIweDAiLDIwOTYsNDgsNiwwLDE5NywiMHgx
NDRkMzgwMzAiLCIweDAiLDIxMzMsNDgsNiwwLDE5OCwiMHgxNDRkMzgwNjAiLCIweDAiLDIxMjgs
NDgsNiwwLDE5OSwiMHgxNDRkMzgwOTAiLCIweDAiLDIxMDksNDgsNiwwLDIwMCwiMHgxNDRkMzgw
YzAiLCIweDAiLDIwOTgsNDgsNiwwLDIwMSwiMHgxNDRkMzgwZjAiLCIweDAiLDIxMDMsNDgsNiww
LDIwMiwiMHgxNDRkMzgxMjAiLCIweDAiLDIxMTAsNDgsNiwwLDIwMywiMHgxNDRkMzgxNTAiLCIw
eDAiLDIxMDAsNDgsNiwwLDIwNCwiMHgxNDRkMzgxODAiLCIweDAiLDIxNjUsNDgsNiwwLDIwNSwi
MHgxNDRkMzgyMTAiLCIweDAiLDIxNjEsNDgsNiwwLDIwNiwiMHgxNDRkMzgyNDAiLCIweDAiLDIw
NDgsNDgsNiwwLDIwNywiMHgxNDRkMzgyNzAiLCIweDAiLDIxOTIsNDgsNiwwLDIwOCwiMHgxNDRk
MzgyYTAiLCIweDAiLDIwOTEsNDgsNiwwLDIwOSwiMHgxNDRkMzgyZDAiLCIweDAiLDIxMzAsNDgs
NiwwLDIxMCwiMHgxNDRkMzgzMDAiLCIweDAiLDIxMzUsNDgsNiwwLDIxMSwiMHgxNDRkMzg1YTAi
LCIweDAiLDIwNzMsNDgsNiwwLDIxMiwiMHgxNDRkMzg1ZDAiLCIweDAiLDIwNzAsNDgsNiwwLDIx
MywiMHgxNDRkMzg2MDAiLCIweDAiLDIxMzYsNDgsNiwwLDIxNCwiMHgxNDRkMzg2MzAiLCIweDAi
LDIxNzksNDgsNiwwLDIxNSwiMHgxNDRkMzg2YzAiLCIweDAiLDIxNzUsNDgsNiwwLDIxNiwiMHgx
NDRkMzg2ZjAiLCIweDAiLDIxNTUsNDgsNiwwLDIxNywiMHgxNDRkMzg3MjAiLCIweDAiLDIxODgs
NDgsNiwwLDIxOCwiMHgxNDRkMzg3NTAiLCIweDAiLDE4NDQsNDgsNiwwLDIxOSwiMHgxNDRkMzg3
ODAiLCIweDAiLDE4NDgsNDgsNiwwLDIyMCwiMHgxNDRkMzg3YjAiLCIweDAiLDE4NDAsNDgsNiww
LDIyMSwiMHgxNDRkMzg3ZTAiLCIweDAiLDIxOTksNDgsNiwwLDIyMiwiMHgxNDRkMzg4MTAiLCIw
eDAiLDE4NTIsNDgsNiwwLDIyMywiMHgxNDRkMzg4NDAiLCIweDAiLDE4NTYsNDgsNiwwLDIyNCwi
MHgxNDRkMzg4NzAiLCIweDAiLDE4MzAsNDgsNiwwLDIyNSwiMHgxNDRkMzg4YTAiLCIweDAiLDE4
MTAsNDgsNiwwLDIyNiwiMHgxNDRkMzg4ZDAiLCIweDAiLDE4MzYsNDgsNiwwLDIyNywiMHgxNDRk
Mzg5MDAiLCIweDAiLDE4MjEsNDgsNiwwLDIyOCwiMHgxNDRkMzg5MzAiLCIweDAiLDEyNzIsNDgs
NiwwLDIyOSwiMHgxNDRkMzg5NjAiLCIweDAiLDc4NCw0OCw2LDAsMjI5LCIweDE0NGQzODk5MCIs
IjB4MCIsMTgwNCw0OSw2LDAsMCwiMHgxNDRkMzhhYjAiLCIweDAiLDE3MzMsNDksNiwwLDAsIjB4
MTQ0ZDM4YWUwIiwiMHgwIiwxNzIwLDQ5LDYsMCwwLCIweDE0NGQzOGIxMCIsIjB4MCIsMTcwNCw0
OSw2LDAsMCwiMHgxNDRkMzhiNDAiLCIweDAiLDE2ODAsNDksNiwwLDAsIjB4MTQ0ZDM4YjcwIiwi
MHgwIiwxNjY4LDQ5LDYsMCwwLCIweDE0NGQzOGJhMCIsIjB4MCIsMTY0OSw0OSw2LDAsMCwiMHgx
NDRkMzhiZDAiLCIweDAiLDE1NzQsNDksNiwwLDAsIjB4MTQ0ZDM4YzAwIiwiMHgwIiwxNTU5LDQ5
LDYsMCwwLCIweDE0NGQzOGMzMCIsIjB4MCIsMTU0Miw0OSw2LDAsMCwiMHgxNDRkMzhjOTAiLCIw
eDAiLDE1MjcsNDksNiwwLDAsIjB4MTQ0ZDM4Y2MwIiwiMHgwIiwxMjc4LDQ5LDYsMCwwLCIweDE0
NGQzOGNmMCIsIjB4MCIsODUwLDQ5LDYsMCwwLCIweDE0NGQzOGQyMCIsIjB4MCIsNzQ4LDQ5LDYs
MCwwLCIweDE0NGQzOGUxMCIsIjB4MCIsNTQ3LDQ5LDYsMCwwLCIweDE0NGQzOGU0MCIsIjB4MCIs
NzMxLDQ4LDYsMCwyMjksIjB4MTQ0ZDM4ZTcwIiwiMHgwIiw3NDEsNDgsNiwwLDIyOSwiMHgxNDRk
MzhlYTAiLCIweDAiLDkzNCw0OCw2LDAsMjMwLCIweDE0NGQzOGVkMCIsIjB4MCIsOTE0LDQ4LDYs
MCwyMzEsIjB4MTQ0ZDM4ZjAwIiwiMHgwIiw4OTMsNDgsNiwwLDIyOSwiMHgxNDRkMzhmMzAiLCIw
eDAiLDU2NCw0OCw2LDAsMjMyLCIweDE0NGQzOGY2MCIsIjB4MCIsNTQwLDQ4LDYsMCwyMzMsIjB4
MTQ0ZDM4ZjkwIiwiMHgwIiw2MDAsNDgsNiwwLDIzNCwiMHgxNDRkMzhmYzAiLCIweDAiLDU0Niw0
OCw2LDAsMjM1LCIweDE0NGQzOGZmMCIsIjB4MCIsNTc4LDQ4LDYsMCwyMzYsIjB4MTQ0ZDM5MDIw
IiwiMHgwIiw1NDgsNDgsNiwwLDIzNywiMHgxNDRkMzkwNTAiLCIweDAiLDU4Myw0OCw2LDAsMjM4
LCIweDE0NGQzOTA4MCIsIjB4MCIsNTU1LDQ4LDYsMCwyMzksIjB4MTQ0ZDM5MGIwIiwiMHgwIiw1
NzksNDgsNiwwLDI0MCwiMHgxNDRkMzk1MzAiLCIweDAiLDU1Nyw0OCw2LDAsMjQxLCIweDE0NGQz
OTU2MCIsIjB4MCIsNTg5LDQ4LDYsMCwyNDIsIjB4MTQ0ZDM5NTkwIiwiMHgwIiw1NTksNDgsNiww
LDI0MywiMHgxNDRkMzk1YzAiLCIweDAiLDYwMSw0OCw2LDAsMjQ0LCIweDE0NGQzOTY1MCIsIjB4
MCIsNTY2LDQ4LDYsMCwyNDUsIjB4MTQ0ZDM5NmIwIiwiMHgwIiw2MzMsNDgsNiwwLDI0NiwiMHgx
NDRkMzk2ZTAiLCIweDAiLDYxMSw0OCw2LDAsMjQ3LCIweDE0NGQzOTcxMCIsIjB4MCIsNjM5LDQ4
LDYsMCwyNDgsIjB4MTQ0ZDM5NzQwIiwiMHgwIiw2MDksNDgsNiwwLDEyOSwiMHgxNDRkMzk3NzAi
LCIweDAiLDYzOCw0OCw2LDAsMjQ5LCIweDE0NGQzOTdhMCIsIjB4MCIsNjA3LDQ4LDYsMCwyNTAs
IjB4MTQ0ZDM5ODAwIiwiMHgwIiw2NTIsNDgsNiwwLDI1MSwiMHgxNDRkMzk4MzAiLCIweDAiLDYx
MCw0OCw2LDAsMjUyLCIweDE0NGQzOTg2MCIsIjB4MCIsNjQyLDQ4LDYsMCwyNTMsIjB4MTQ0ZDM5
ODkwIiwiMHgwIiw2MTIsNDgsNiwwLDI1NCwiMHgxNDRkMzk4YzAiLCIweDAiLDY1Nyw0OCw2LDAs
MjU1LCIweDE0NGQzOThmMCIsIjB4MCIsNjE5LDQ4LDYsMCwyNTYsIjB4MTQ0ZDM5OTIwIiwiMHgw
Iiw2NjYsNDgsNiwwLDI1NywiMHgxNDRkMzk5NTAiLCIweDAiLDY0MSw0OCw2LDAsMjU4LCIweDE0
NGQzOTk4MCIsIjB4MCIsNjk1LDQ4LDYsMCwyNTksIjB4MTQ0ZDM5YTcwIiwiMHgwIiw2NjksNDgs
NiwwLDI2MCwiMHgxNDRkMzlhYTAiLCIweDAiLDY4OSw0OCw2LDAsMjYxLCIweDE0NGQzOWFkMCIs
IjB4MCIsNjYyLDQ4LDYsMCwyNjIsIjB4MTQ0ZDM5YjAwIiwiMHgwIiw3MDQsNDgsNiwwLDI2Mywi
MHgxNDRkMzljNTAiLCIweDAiLDY3NSw0OCw2LDAsMjY0LCIweDE0NGQzOWM4MCIsIjB4MCIsNzE2
LDQ4LDYsMCwyNjUsIjB4MTQ0ZDM5Y2IwIiwiMHgwIiw2ODMsNDgsNiwwLDI2NiwiMHgxNDRkMzlk
ZDAiLCIweDAiLDczNCw0OCw2LDAsMjY3LCIweDE0NGQzOWUwMCIsIjB4MCIsNjkzLDQ4LDYsMCwy
NjgsIjB4MTQ0ZDM5ZTMwIiwiMHgwIiw4MjMsNDgsNiwwLDI2OSwiMHgxNDRkMzllNjAiLCIweDAi
LDY5MCw0OSw2LDAsMjcwLCIweDE0NGQzOWU5MCIsIjB4MCIsODEyLDQ4LDYsMCwyNzEsIjB4MTQ0
ZDM5ZWMwIiwiMHgwIiw3MDIsNDksNiwwLDI3MiwiMHgxNDRkMzllZjAiLCIweDAiLDcxMiw0OCw2
LDAsMjczLCIweDE0NGQzOWYyMCIsIjB4MCIsNzIzLDQ4LDYsMCwyNzQsIjB4MTQ0ZDM5ZjUwIiwi
MHgwIiw3NDksNDksNiwwLDI3NSwiMHgxNDRkMzlmODAiLCIweDAiLDc0Miw0OCw2LDAsMjc2LCIw
eDE0NGQzOWZiMCIsIjB4MCIsNzUwLDQ4LDYsMCwyNzcsIjB4MTQ0ZDM5ZmUwIiwiMHgwIiw3NTEs
NDgsNiwwLDI3OCwiMHgxNDRkM2EwMTAiLCIweDAiLDc1OCw0OCw2LDAsMjc5LCIweDE0NGQzYTA0
MCIsIjB4MCIsNzc1LDQ4LDYsMCwyODAsIjB4MTQ0ZDNhMDcwIiwiMHgwIiw3ODUsNDgsNiwwLDI4
MSwiMHgxNDRkM2EwYTAiLCIweDAiLDc4MSw0OCw2LDAsMjgyLCIweDE0NGQzYTBkMCIsIjB4MCIs
Nzg3LDQ4LDYsMCwyODMsIjB4MTQ0ZDNhMTMwIiwiMHgwIiw4MTgsNDgsNiwwLDI4NCwiMHgxNDRk
M2ExNjAiLCIweDAiLDgwOCw0OCw2LDAsMjg1LCIweDE0NGQzYTE5MCIsIjB4MCIsODE5LDQ4LDYs
MCwyODYsIjB4MTQ0ZDNhMWMwIiwiMHgwIiw4MTUsNDgsNiwwLDI4NywiMHgxNDRkM2ExZjAiLCIw
eDAiLDgyMSw0OCw2LDAsMjg4LCIweDE0NGQzYTIyMCIsIjB4MCIsODMzLDQ4LDYsMCwyODksIjB4
MTQ0ZDNhMjUwIiwiMHgwIiw4NDYsNDgsNiwwLDI5MCwiMHgxNDRkM2EyODAiLCIweDAiLDg0OSw0
OCw2LDAsMjkxLCIweDE0NGQzYTJiMCIsIjB4MCIsODUyLDQ4LDYsMCwyOTIsIjB4MTQ0ZDNhMmUw
IiwiMHgwIiw4NTUsNDgsNiwwLDI5MywiMHgxNDRkM2EzMTAiLCIweDAiLDg2Niw0OCw2LDAsMjk0
LCIweDE0NGQzYTM0MCIsIjB4MCIsODcwLDQ5LDYsMCwyOTUsIjB4MTQ0ZDNhMzcwIiwiMHgwIiwx
Nzk4LDQ5LDYsMCwwLCIweDE0NGQzYTNkMCIsIjB4MCIsMTc5NCw0OSw2LDAsMCwiMHgxNDRkM2E0
MDAiLCIweDAiLDE3ODcsNDksNiwwLDAsIjB4MTQ0ZDNhNDMwIiwiMHgwIiwxNzgwLDQ5LDYsMCww
LCIweDE0NGQzYTQ2MCIsIjB4MCIsMTc3Niw0OSw2LDAsMCwiMHgxNDRkM2E0OTAiLCIweDAiLDE3
NjUsNDksNiwwLDAsIjB4MTQ0ZDNhNGMwIiwiMHgwIiwxNzQ3LDQ5LDYsMCwwLCIweDE0NGQzYTRm
MCIsIjB4MCIsODM5LDQ5LDYsMCwwLCIweDE0NGQzYTUyMCIsIjB4MCIsODIwLDQ5LDYsMCwwLCIw
eDE0NGQzYTU1MCIsIjB4MCIsNzk5LDQ5LDYsMCwwLCIweDE0NGQzYTU4MCIsIjB4MCIsODEwLDQ5
LDYsMCwwLCIweDE0NGQzYTViMCIsIjB4MCIsOTA3LDQ5LDYsMCwwLCIweDE0NGQzYTVlMCIsIjB4
MCIsODk2LDQ5LDYsMCwwLCIweDE0NGQzYTYxMCIsIjB4MCIsNjE0LDQ5LDYsMCwwLCIweDE0NGQz
YTY0MCIsIjB4MCIsNTk0LDQ5LDYsMCwwLCIweDE0NGQzYTZhMCIsIjB4MCIsNTYzLDQ5LDYsMCww
LCIweDE0NGQzYTgyMCIsIjB4MCIsNTUyLDQ5LDYsMCwwLCIweDE0NGQzYTg1MCIsIjB4MCIsNTQ0
LDQ5LDYsMCwwLCIweDE0NGQzYTg4MCIsIjB4MCIsNTMyLDQ5LDYsMCwwLCIweDE0NGQzYThiMCIs
IjB4MCIsNTM5LDQ5LDYsMCwwLCIweDE0NGQzYThlMCIsIjB4MCIsNTM0LDQ5LDYsMCwwLCIweDE0
NGQzYTkxMCIsIjB4MCIsNTM3LDQ5LDYsMCwwLCIweDE0NGQzYTk0MCIsIjB4MCIsNTUxLDQ5LDYs
MCwwLCIweDE0NGQzYTk3MCIsIjB4MCIsNTQxLDQ5LDYsMCwwLCIweDE0NGQzYTlkMCIsIjB4MCIs
Njk0LDQ5LDYsMCwwLCIweDE0NGQzYWEwMCIsIjB4MCIsNjc0LDQ5LDYsMCwwLCIweDE0NGQzYWEz
MCIsIjB4MCIsNjU5LDQ5LDYsMCwwLCIweDE0NGQzYWE2MCIsIjB4MCIsNjQ1LDUwLDYsMCwwLCIw
eDE0NGQzYWFjMCIsIjB4MCIsNjM2LDUwLDYsMCwwLCIweDE0NGQzYWJiMCIsIjB4MCIsMjMyMSw1
MCw2LDAsNjQsIjB4MTQ0ZDNhYmUwIiwiMHgwIiwyMzAyLDUwLDYsMCw2NCwiMHgxNDRkM2FjMTAi
LCIweDAiLDIzMTAsNTAsNiwwLDI5NiwiMHgxNDRkM2FjNDAiLCIweDAiLDEwNTUsNTAsNiwwLDI5
NywiMHgxNDRkM2FjNzAiLCIweDAiLDExMzQsNTAsNiwwLDI5NywiMHgxNDRkM2FjYTAiLCIweDAi
LDIyOTksNTAsNiwwLDI5OCwiMHgxNDRkM2FjZDAiLCIweDAiLDIzNTMsNDgsNiwwLDI5OSwiMHgx
NDRkM2FkMDAiLCIweDAiLDIzMjgsNDgsNiwwLDMwMCwiMHgxNDRkM2FkMzAiLCIweDAiLDIzNjMs
NTAsNiwwLDMwMSwiMHgxNDRkM2FkNjAiLCIweDAiLDIzNTYsNTAsNiwwLDY0LCIweDE0NGQzYWQ5
MCIsIjB4MCIsMjI1OSw1MCw2LDAsMzAyLCIweDE0NGQzYWRjMCIsIjB4MCIsNzY4LDQ4LDYsMCwz
MDMsIjB4MTQ0ZDNhZTIwIiwiMHgwIiw4OTEsNDksNiwwLDAsIjB4MTQ0ZDNhZTUwIiwiMHgwIiwy
MjQ4LDUwLDYsMCw2NCwiMHgxNDRkM2FlODAiLCIweDAiLDIyNDUsNTAsNiwwLDY0LCIweDE0NGQz
YWViMCIsIjB4MCIsMjI0Miw1MCw2LDAsNjQsIjB4MTQ0ZDNiMTIwIiwiMHgwIiwyMjM5LDUwLDYs
MCw2NCwiMHgxNDRkM2IxNTAiLCIweDAiLDEyMjMsNDgsNiwwLDMwNCwiMHgxNDRkM2IxODAiLCIw
eDAiLDEzODUsNTAsNiwwLDMwNSwiMHgxNDRkM2IzNjAiLCIweDAiLDEzMzYsNDgsNiwwLDExOCwi
MHgxNDRkM2IzOTAiLCIweDAiLDEzMDksNTAsNiwwLDY0LCIweDE0NGQzYjNjMCIsIjB4MCIsMTI5
OCw1MCw2LDAsNjQsIjB4MTQ0ZDNiM2YwIiwiMHgwIiwxMjgzLDUwLDYsMCwzMDYsIjB4MTQ0ZDNi
NDIwIiwiMHgwIiwxMjU4LDUwLDYsMCwzMDcsIjB4MTQ0ZDNiNDgwIiwiMHgwIiwxMjM4LDUwLDYs
MCwzMDgsIjB4MTQ0ZDNiNGIwIiwiMHgwIiwxMjE1LDUwLDYsMCwzMDksIjB4MTQ0ZDNiNGUwIiwi
MHgwIiwxNDMyLDUwLDYsMCwzMDUsIjB4MTQ0ZDNiNTQwIiwiMHgwIiwxMzc2LDQ4LDYsMCw5Nywi
MHgxNDRkM2I1NzAiLCIweDAiLDEzMzgsNTAsNiwwLDY0LCIweDE0NGQzYjVhMCIsIjB4MCIsMTMx
NCw1MCw2LDAsNjQsIjB4MTQ0ZDNiNWQwIiwiMHgwIiwxMjk5LDUwLDYsMCwzMTAsIjB4MTQ0ZDNi
NjAwIiwiMHgwIiwxMjczLDUwLDYsMCwzMDYsIjB4MTQ0ZDNiNjMwIiwiMHgwIiwxMjUyLDUwLDYs
MCwzMTEsIjB4MTQ0ZDNiNjYwIiwiMHgwIiwxMjI5LDUwLDYsMCwzMDcsIjB4MTQ0ZDNiNjkwIiwi
MHgwIiwxMjA5LDUwLDYsMCwzMDgsIjB4MTQ0ZDNiNmMwIiwiMHgwIiwxMTQ3LDQ4LDYsMCwxMTcs
IjB4MTQ0ZDNiNmYwIiwiMHgwIiw5MjUsNTAsNiwwLDcxLCIweDE0NGQzYmJkMCIsIjB4MCIsMTE2
MSw1MCw2LDAsMzEyLCIweDE0NGQzYmMwMCIsIjB4MCIsMTY5OCw1MCw2LDAsNzMsIjB4MTQ0ZDNi
YzMwIiwiMHgwIiwxNjYxLDUwLDYsMCwzMTMsIjB4MTQ0ZDNiYzYwIiwiMHgwIiwxNjQwLDUwLDYs
MCwzMTQsIjB4MTQ0ZDNiY2YwIiwiMHgwIiwxNjI3LDUwLDYsMCw2NCwiMHgxNDRkM2JkMjAiLCIw
eDAiLDE2MDEsNTAsNiwwLDMxNSwiMHgxNDRkM2JkNTAiLCIweDAiLDE1NzEsNTAsNiwwLDkzLCIw
eDE0NGQzYmRiMCIsIjB4MCIsMTU1Nyw1MCw2LDAsMzE2LCIweDE0NGQzYmRlMCIsIjB4MCIsMTUy
OCw1MCw2LDAsMzE3LCIweDE0NGQzYmUxMCIsIjB4MCIsMTUxNSw1MCw2LDAsMzE4LCIweDE0NGQz
YmU0MCIsIjB4MCIsMTQ5Niw1MCw2LDAsMzE5LCIweDE0NGQzYmU3MCIsIjB4MCIsMTUyMiw1MCw2
LDAsMzIwLCIweDE0NGQ2OWExMCIsIjB4MCIsMTUzMSw1MCw2LDAsMzIxLCIweDE0NGQ2OWE0MCIs
IjB4MCIsMTU0Myw1MCw2LDAsMzIyLCIweDE0NGQ2OWI5MCIsIjB4MCIsMTU0OSw1MCw2LDAsMzIz
LCIweDE0NGQ2OWNlMCIsIjB4MCIsMTU0NSw1MCw2LDAsMzI0LCIweDE0NGQ2OWQxMCIsIjB4MCIs
MTU1Myw1MCw2LDAsMzI1LCIweDE0NGQ2OWQ0MCIsIjB4MCIsMTU2OSw1MCw2LDAsMzI2LCIweDE0
NGQ2OWQ3MCIsIjB4MCIsMTU3Miw1MCw2LDAsMzI3LCIweDE0NGQ2OWRkMCIsIjB4MCIsMTU5Nyw1
MCw2LDAsMzI4LCIweDE0NGQ2OWUwMCIsIjB4MCIsMTU4OCw1MCw2LDAsMzA4LCIweDE0NGQ2OWUz
MCIsIjB4MCIsMTYwNCw1MCw2LDAsMzI5LCIweDE0NGQ2OWU2MCIsIjB4MCIsMTU5Miw1MCw2LDAs
MzMwLCIweDE0NGQ2OWU5MCIsIjB4MCIsMTYxOCw1MCw2LDAsMzMxLCIweDE0NGQ2OWVjMCIsIjB4
MCIsMTYxNCw1MCw2LDAsMzMyLCIweDE0NGQ2OWYyMCIsIjB4MCIsMTYxMiw1MCw2LDAsMzMzLCIw
eDE0NGQ2OWY4MCIsIjB4MCIsMTYyNiw1MCw2LDAsMzM0LCIweDE0NGQ2OWZiMCIsIjB4MCIsMTYz
Nyw1MCw2LDAsMzM1LCIweDE0NGQ2YTA3MCIsIjB4MCIsMTY0MSw1MCw2LDAsMzM2LCIweDE0NGQ2
YTE2MCIsIjB4MCIsMTY0Myw1MCw2LDAsMzM3LCIweDE0NGQ2YTE5MCIsIjB4MCIsMTY1Miw1MCw2
LDAsMzM4LCIweDE0NGQ2YTJiMCIsIjB4MCIsMTY1OSw1MCw2LDAsMzM5LCIweDE0NGQ2YTM3MCIs
IjB4MCIsMTY2Myw1MCw2LDAsMzQwLCIweDE0NGQ2YTg1MCIsIjB4MCIsMTY1OCw1MCw2LDAsMzQx
LCIweDE0NGQ2YTg4MCIsIjB4MCIsMTY3MSw1MCw2LDAsMzQyLCIweDE0NGQ2YThiMCIsIjB4MCIs
MTY4MSw1MCw2LDAsMzQzLCIweDE0NGQ2YThlMCIsIjB4MCIsMTY5NCw1MCw2LDAsMzQ0LCIweDE0
NGQ2YTkxMCIsIjB4MCIsMTY4Miw1MCw2LDAsMzQ1LCIweDE0NGQ2YTk0MCIsIjB4MCIsMTY4OSw1
MCw2LDAsMzQ2LCIweDE0NGQ2YTk3MCIsIjB4MCIsMTcwNSw1MCw2LDAsMzQ3LCIweDE0NGQ2YTlh
MCIsIjB4MCIsMTcwOSw1MCw2LDAsMzQ4LCIweDE0NGQ2YTlkMCIsIjB4MCIsMTcxMyw1MCw2LDAs
MzQ5LCIweDE0NGQ2YWEzMCIsIjB4MCIsMTcxNCw1MCw2LDAsMzUwLCIweDE0NGQ2YWE2MCIsIjB4
MCIsMTczNCw1MCw2LDAsMzUxLCIweDE0NGQ2YWE5MCIsIjB4MCIsMTczNSw1MCw2LDAsMzUyLCIw
eDE0NGQ2YWFjMCIsIjB4MCIsMTc0Myw1MCw2LDAsMzUzLCIweDE0NGQ2YWFmMCIsIjB4MCIsMTc0
MCw1MCw2LDAsMzU0LCIweDE0NGQ2YWI1MCIsIjB4MCIsMTc0NSw1MCw2LDAsMzU1LCIweDE0NGQ2
YWI4MCIsIjB4MCIsMTc1MSw1MCw2LDAsMzU2LCIweDE0NGQ2YWJiMCIsIjB4MCIsMTc2NCw1MCw2
LDAsMzU3LCIweDE0NGQ2YWJlMCIsIjB4MCIsMTc2MSw1MCw2LDAsMzU4LCIweDE0NGQ2YWMxMCIs
IjB4MCIsNTI5LDUwLDYsMCwzNTksIjB4MTQ0ZDZhYzQwIiwiMHgwIiw1MjYsNTAsNiwwLDM2MCwi
MHgxNDRkNmFjNzAiLCIweDAiLDUyMyw1MCw2LDAsMzYxLCIweDE0NGQ2YWNhMCIsIjB4MCIsNTIw
LDUwLDYsMCwzNjIsIjB4MTQ0ZDZhY2QwIiwiMHgwIiw1MTcsNTAsNiwwLDM2MywiMHgxNDRkNmFk
MDAiLCIweDAiLDUxNCw1MCw2LDAsMzY0LCIweDE0NGQ2YWQzMCIsIjB4MCIsNTExLDUwLDYsMCwz
NjUsIjB4MTQ0ZDZhZDYwIiwiMHgwIiw1MDgsNTAsNiwwLDM2NiwiMHgxNDRkNmFkOTAiLCIweDAi
LDUwNSw1MCw2LDAsMzY3LCIweDE0NGQ2YWRmMCIsIjB4MCIsNTAyLDUwLDYsMCwzNjgsIjB4MTQ0
ZDZhZTIwIiwiMHgwIiw0OTksNTAsNiwwLDM2OSwiMHgxNDRkNmFlNTAiLCIweDAiLDQ5Niw1MCw2
LDAsMzcwLCIweDE0NGQ2YWU4MCIsIjB4MCIsMTgyNyw1MCw2LDAsMzcxLCIweDE0NGQ2YWViMCIs
IjB4MCIsMTgyMCw1MCw2LDAsMzcyLCIweDE0NGQ2YWVlMCIsIjB4MCIsMTgxMSw1MCw2LDAsMzcz
LCIweDE0NGQ2YWYxMCIsIjB4MCIsMTgwNSw1MCw2LDAsMzc0LCIweDE0NGQ2YWY0MCIsIjB4MCIs
MTc5Nyw1MCw2LDAsMzc1LCIweDE0NGQ2YWY3MCIsIjB4MCIsMTc5MCw1MCw2LDAsMzc2LCIweDE0
NGQ2YWZhMCIsIjB4MCIsMTc4MSw1MCw2LDAsMzc3LCIweDE0NGQ2YWZkMCIsIjB4MCIsMTc3MSw1
MCw2LDAsMzc4LCIweDE0NGQ2YjAzMCIsIjB4MCIsMTc0OCw1MCw2LDAsMzc5LCIweDE0NGQ2YjA2
MCIsIjB4MCIsMTcyOSw1MCw2LDAsMzgwLCIweDE0NGQ2YjA5MCIsIjB4MCIsMTcwMyw1MCw2LDAs
MzgxLCIweDE0NGQ2YjBjMCIsIjB4MCIsMTY4NSw1MCw2LDAsMzgyLCIweDE0NGQ2YjBmMCIsIjB4
MCIsMTY1Niw1MCw2LDAsMzE1LCIweDE0NGQ2YjEyMCIsIjB4MCIsMTYzNCw1MCw2LDAsMzgzLCIw
eDE0NGQ2YjE1MCIsIjB4MCIsMTYxNiw1MCw2LDAsMzg0LCIweDE0NGQ2YjE4MCIsIjB4MCIsMzQx
LDUwLDYsMCwzODUsIjB4MTQ0ZDZiMWIwIiwiMHgwIiwzMzgsNTAsNiwwLDM4NiwiMHgxNDRkNmIx
ZTAiLCIweDAiLDMzMyw1MCw2LDAsMzg3LCIweDE0NGQ2YjIxMCIsIjB4MCIsMjM0OCw1MCw2LDAs
Mzg4LCIweDE0NGQ2YjI0MCIsIjB4MCIsMjMzMCw1MCw2LDAsMzg5LCIweDE0NGQ2YjI3MCIsIjB4
MCIsMjE1OSw0OSw2LDAsMCwiMHgxNDRkNmIyYTAiLCIweDAiLDIxNTEsNDksNiwwLDAsIjB4MTQ0
ZDZiMmQwIiwiMHgwIiwxODk1LDQ5LDYsMCwwLCIweDE0NGQ2YjMwMCIsIjB4MCIsMTg4MCw0OSw2
LDAsMCwiMHgxNDRkNmIzNjAiLCIweDAiLDE4NjksNDksNiwwLDAsIjB4MTQ0ZDZiMzkwIiwiMHgw
IiwxODYyLDQ5LDYsMCwwLCIweDE0NGQ2YjNjMCIsIjB4MCIsMTg1OCw0OSw2LDAsMCwiMHgxNDRk
NmIzZjAiLCIweDAiLDIxMTgsNDgsNiwwLDIyNCwiMHgxNDRkNmI0MjAiLCIweDAiLDIwNzEsNDgs
NiwwLDM5MCwiMHgxNDRkNmI0NTAiLCIweDAiLDIwMDgsNDgsNiwwLDIyMiwiMHgxNDRkNmI0ODAi
LCIweDAiLDE5NTIsNDgsNiwwLDIyMywiMHgxNDRkNmI0YjAiLCIweDAiLDE5MTcsNDgsNiwwLDM5
MSwiMHgxNDRkNmI0ZTAiLCIweDAiLDE4NjEsNDgsNiwwLDM5MiwiMHgxNDRkNmI1MTAiLCIweDAi
LDE4NzYsNDgsNiwwLDM5MywiMHgxNDRkNmI1NDAiLCIweDAiLDE4NjAsNDgsNiwwLDM5NCwiMHgx
NDRkNmI1NzAiLCIweDAiLDE4NzQsNDgsNiwwLDM5NSwiMHgxNDRkNmI1YTAiLCIweDAiLDE4NjYs
NDgsNiwwLDM5NiwiMHgxNDRkNmI1ZDAiLCIweDAiLDE4NjQsNDgsNiwwLDM5NywiMHgxNDRkNmI2
MDAiLCIweDAiLDE4NjUsNDgsNiwwLDM5OCwiMHgxNDRkNmI2MzAiLCIweDAiLDE5MTYsNDgsNiww
LDM5OSwiMHgxNDRkNmI2NjAiLCIweDAiLDE5MjMsNDgsNiwwLDQwMCwiMHgxNDRkNmI2OTAiLCIw
eDAiLDE5MjUsNDgsNiwwLDQwMSwiMHgxNDRkNmI2YzAiLCIweDAiLDE4OTksNDgsNiwwLDQwMiwi
MHgxNDRkNmI2ZjAiLCIweDAiLDE4OTMsNDgsNiwwLDQwMywiMHgxNDRkNmI3MjAiLCIweDAiLDE5
MDAsNDgsNiwwLDQwNCwiMHgxNDRkNmI3NTAiLCIweDAiLDE4OTgsNDgsNiwwLDQwNSwiMHgxNDRk
NmI3ODAiLCIweDAiLDE4OTcsNDgsNiwwLDQwNiwiMHgxNDRkNmI3YjAiLCIweDAiLDE4OTYsNDgs
NiwwLDQwNywiMHgxNDRkNmI3ZTAiLCIweDAiLDIwMDEsNDgsNiwwLDQwOCwiMHgxNDRkNmI4MTAi
LCIweDAiLDE5NTgsNDgsNiwwLDQwOSwiMHgxNDRkNmI4NDAiLCIweDAiLDIwMzgsNDgsNiwwLDQx
MCwiMHgxNDRkNmI4NzAiLCIweDAiLDIwMjksNDgsNiwwLDQxMSwiMHgxNDRkNmI4YTAiLCIweDAi
LDE5NzksNDgsNiwwLDQxMiwiMHgxNDRkNmI4ZDAiLCIweDAiLDE5OTUsNDgsNiwwLDQxMywiMHgx
NDRkNmI5MDAiLCIweDAiLDE5NTUsNDgsNiwwLDQxNCwiMHgxNDRkNmI5MzAiLCIweDAiLDIwMTcs
NDgsNiwwLDQxNSwiMHgxNDRkNmI5NjAiLCIweDAiLDE5OTcsNDgsNiwwLDQxNiwiMHgxNDRkNmI5
OTAiLCIweDAiLDE5NzcsNDgsNiwwLDQxNywiMHgxNDRkNmI5YzAiLCIweDAiLDIwMDIsNDgsNiww
LDQxOCwiMHgxNDRkNmI5ZjAiLCIweDAiLDIwMTIsNDgsNiwwLDQxOSwiMHgxNDRkNmJhMjAiLCIw
eDAiLDE5NTEsNDgsNiwwLDQyMCwiMHgxNDRkNmJhNTAiLCIweDAiLDE5ODQsNDgsNiwwLDQyMSwi
MHgxNDRkNmJhODAiLCIweDAiLDIwMzcsNDgsNiwwLDQyMiwiMHgxNDRkNmJhYjAiLCIweDAiLDIw
MDYsNDgsNiwwLDQyMywiMHgxNDRkNmJhZTAiLCIweDAiLDE5NjksNDgsNiwwLDQyNCwiMHgxNDRk
NmJiMTAiLCIweDAiLDIwNDUsNDgsNiwwLDQyNSwiMHgxNDRkNmJiNDAiLCIweDAiLDIwNDMsNDgs
NiwwLDQyNiwiMHgxNDRkNmJiNzAiLCIweDAiLDIwNTQsNDgsNiwwLDQyNywiMHgxNDRkNmJiYTAi
LCIweDAiLDE5NDQsNDgsNiwwLDQyOCwiMHgxNDRkNmJiZDAiLCIweDAiLDE5NDAsNDgsNiwwLDQy
OSwiMHgxNDRkNmJjMDAiLCIweDAiLDE5MjQsNDgsNiwwLDQzMCwiMHgxNDRkNmJjMzAiLCIweDAi
LDIwNTUsNDgsNiwwLDQzMSwiMHgxNDRkNmJjNjAiLCIweDAiLDE5MzAsNDgsNiwwLDQzMiwiMHgx
NDRkNmJjOTAiLCIweDAiLDE5NjYsNDgsNiwwLDQzMywiMHgxNDRkNmJjYzAiLCIweDAiLDE5OTEs
NDgsNiwwLDQzNCwiMHgxNDRkNmJjZjAiLCIweDAiLDIwMzMsNDgsNiwwLDM5MSwiMHgxNDRkNmJk
MjAiLCIweDAiLDE5NTksNDgsNiwwLDQzNSwiMHgxNDRkNmJkNTAiLCIweDAiLDIwMzEsNDgsNiww
LDM5MCwiMHgxNDRkNmJkODAiLCIweDAiLDIwNzcsNDgsNiwwLDQzNiwiMHgxNDRkNmJkYjAiLCIw
eDAiLDIxMjMsNDgsNiwwLDQzNywiMHgxNDRkNmJkZTAiLCIweDAiLDIwNzIsNDgsNiwwLDQzOCwi
MHgxNDRkNmJlMTAiLCIweDAiLDIwNzQsNDgsNiwwLDQzOSwiMHgxNDRkNmJlNDAiLCIweDAiLDIx
NjQsNDgsNiwwLDQ0MCwiMHgxNDRkNmJlNzAiLCIweDAiLDIxNjYsNDgsNiwwLDQ0MSwiMHgxNDRk
NmJlYTAiLCIweDAiLDIzODcsMzIsNTgsMCwwLCIweDE1MDVhMjQyMCIsIjB4MCIsMjEwNiwzMiw1
OSwwLDAsIjB4MTUwNWEyNDQwIiwiMHgwIiwyMDU5LDMyLDYwLDAsMCwiMHgxNTA1YTI0NjAiLCIw
eDAiLDE5OTQsMzIsNjEsMCwwLCIweDE1MDVhMjQ4MCIsIjB4MCIsMTk0OCwzMiw2MiwwLDAsIjB4
MTUwNWEyNGMwIiwiMHgwIiwxOTA5LDMyLDYzLDAsMCwiMHgxNTA1YTI1MDAiLCIweDAiLDExODQs
MzMsNjQsMCwwLCIweDE1MDVhMjU0MCIsIjB4MCIsMTEzNiwzNSw2NSwwLDAsIjB4MTUwNWEyNTYw
IiwiMHgwIiwxMTUxLDYyLDY2LDAsMCwiMHgxNTA1YTI1ODAiLCIweDAiXSwibm9kZUNsYXNzTmFt
ZXMiOlsiPHJvb3Q+IiwiUmVnRXhwIiwiV2luZG93IiwiU3RydWN0dXJlUmFyZURhdGEiLCJKU1dp
bmRvd1Byb3h5Iiwic3ltYm9sIiwiRnVuY3Rpb24iLCJOYXRpdmVFeGVjdXRhYmxlIiwiU3RydWN0
dXJlIiwiSFRNTERvY3VtZW50IiwiSGFzaE1hcEJ1Y2tldCIsIkN1c3RvbUdldHRlclNldHRlciIs
InN0cmluZyIsIkhUTUxEb2N1bWVudFByb3RvdHlwZSIsIkRvY3VtZW50UHJvdG90eXBlIiwiTm9k
ZVByb3RvdHlwZSIsIkV2ZW50VGFyZ2V0UHJvdG90eXBlIiwiV2ViQXNzZW1ibHkuVGFibGUiLCJX
ZWJBc3NlbWJseS5SdW50aW1lRXJyb3IiLCJXZWJBc3NlbWJseS5Nb2R1bGUiLCJXZWJBc3NlbWJs
eS5NZW1vcnkiLCJXZWJBc3NlbWJseS5MaW5rRXJyb3IiLCJXZWJBc3NlbWJseS5JbnN0YW5jZSIs
IldlYkFzc2VtYmx5LkNvbXBpbGVFcnJvciIsIldlYkFzc2VtYmx5IiwiSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uIiwiU2V0IEl0ZXJhdG9yIiwiTWFwIEl0ZXJhdG9yIiwiQXN5bmNGcm9tU3luY0l0
ZXJhdG9yIiwiQXJyYXkgSXRlcmF0b3IiLCJNb2R1bGVMb2FkZXIiLCJPYmplY3QiLCJBc3luY0dl
bmVyYXRvciIsIkFzeW5jRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvbiIsIlN0cmluZyBJdGVy
YXRvciIsIkludGVybmFsUHJvbWlzZVByb3RvdHlwZSIsIlByb21pc2VQcm90b3R5cGUiLCJTZXQi
LCJNYXAiLCJTeW1ib2wiLCJHZW5lcmF0b3IiLCJBc3luY0l0ZXJhdG9yIiwiSXRlcmF0b3IiLCJX
aW5kb3dQcm90b3R5cGUiLCJGdW5jdGlvbkV4ZWN1dGFibGUiLCJJbmZlcnJlZFZhbHVlIiwiSlNH
bG9iYWxMZXhpY2FsRW52aXJvbm1lbnQiLCJBc3luY0dlbmVyYXRvckZ1bmN0aW9uIiwiUHJvcGVy
dHlUYWJsZSIsIlN5bWJvbFRhYmxlIiwiVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUiLCJHZXR0
ZXJTZXR0ZXIiLCJBcnJheUJ1ZmZlclByb3RvdHlwZSIsIkFycmF5IiwiQ2FsbGVlIiwiSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yIiwiRE9NQXR0cmlidXRlR2V0dGVyU2V0dGVyIiwiV2luZG93UHJv
cGVydGllcyIsIlJlYWRhYmxlU3RyZWFtQllPQlJlYWRlclByaXZhdGVDb25zdHJ1Y3RvciIsIlJl
YWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlclByaXZhdGVDb25zdHJ1Y3RvciIsIlJlYWRhYmxlU3Ry
ZWFtQllPQlJlcXVlc3RQcml2YXRlQ29uc3RydWN0b3IiLCJSZWFkYWJsZUJ5dGVTdHJlYW1Db250
cm9sbGVyUHJpdmF0ZUNvbnN0cnVjdG9yIiwiUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxl
clByaXZhdGVDb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJOdW1iZXIiLCJTdHJpbmciXSwiZWRnZXMi
OlswLDMyOCwwLDAsMCwyMzk3LDAsMCwwLDMyNywwLDAsMCwzMjYsMCwwLDAsMzI1LDAsMCwwLDMy
NCwwLDAsMCwzMjMsMCwwLDAsMjM5NiwwLDAsMCwzMjIsMCwwLDAsMzIxLDAsMCwwLDMyMCwwLDAs
MCw1NiwwLDAsMCwzMTksMCwwLDAsMzE4LDAsMCwwLDMxNywwLDAsMCwzMTYsMCwwLDAsMzE1LDAs
MCwwLDU1LDAsMCwwLDMxNCwwLDAsMCwzMTMsMCwwLDAsMzEyLDAsMCwwLDU0LDAsMCwwLDMxMSww
LDAsMCwzMTAsMCwwLDAsMzA5LDAsMCwwLDUzLDAsMCwwLDMwOCwwLDAsMCw1NCwwLDAsMCwzMDcs
MCwwLDAsMzA2LDAsMCwwLDU1LDAsMCwwLDMwNSwwLDAsMCw1MiwwLDAsMCwzMDQsMCwwLDAsMzAz
LDAsMCwwLDUxLDAsMCwwLDMwMiwwLDAsMCw1MCwwLDAsMCw0OSwwLDAsMCw0OCwwLDAsMCw0Nyww
LDAsMCwzMDEsMCwwLDAsNDYsMCwwLDAsMzAwLDAsMCwwLDQ1LDAsMCwwLDI5OSwwLDAsMCw0NCww
LDAsMCwyOTgsMCwwLDAsNDMsMCwwLDAsMjk3LDAsMCwwLDQyLDAsMCwwLDI5NiwwLDAsMCw0MSww
LDAsMCwyOTUsMCwwLDAsNDAsMCwwLDAsMjk0LDAsMCwwLDM5LDAsMCwwLDI5MywwLDAsMCwzOCww
LDAsMCwzNywwLDAsMCwyOTIsMCwwLDAsMzYsMCwwLDAsMjkxLDAsMCwwLDM1LDAsMCwwLDI5MCww
LDAsMCwzNCwwLDAsMCwyODksMCwwLDAsMzMsMCwwLDAsMjg4LDAsMCwwLDMyLDAsMCwwLDI4NSww
LDAsMCwzMSwwLDAsMCwyODMsMCwwLDAsMzAsMCwwLDAsMjgxLDAsMCwwLDI5LDAsMCwwLDI3OCww
LDAsMCwyOCwwLDAsMCwyNzQsMCwwLDAsMjcsMCwwLDAsMjY5LDAsMCwwLDI2LDAsMCwwLDI2Niww
LDAsMCwyNSwwLDAsMCwyNjMsMCwwLDAsMjQsMCwwLDAsMjU5LDAsMCwwLDIzLDAsMCwwLDI1Niww
LDAsMCwyMiwwLDAsMCwyNTEsMCwwLDAsMjEsMCwwLDAsMjQ4LDAsMCwwLDIwLDAsMCwwLDI0NCww
LDAsMCwxOSwwLDAsMCwyNDIsMCwwLDAsMTgsMCwwLDAsMjM5LDAsMCwwLDE3LDAsMCwwLDIzNiww
LDAsMCwxNiwwLDAsMCwyMzQsMCwwLDAsMTUsMCwwLDAsMjMxLDAsMCwwLDE0LDAsMCwwLDIyOCww
LDAsMCwxMywwLDAsMCwyMjMsMCwwLDAsMTIsMCwwLDAsMjIwLDAsMCwwLDExLDAsMCwwLDIxNSww
LDAsMCwxMCwwLDAsMCwyMTMsMCwwLDAsOSwwLDAsMCwyMTEsMCwwLDAsOCwwLDAsMCwyMDgsMCww
LDAsNywwLDAsMCwyMDUsMCwwLDAsNiwwLDAsMCwyMDIsMCwwLDAsNSwwLDAsMCwxOTksMCwwLDAs
NCwwLDAsMCwxOTcsMCwwLDAsMywwLDAsMCwxOTUsMCwwLDAsMiwwLDAsMCwxOTEsMCwwLDAsMSww
LDAsMCwxODYsMCwwLDAsMTg0LDAsMCwwLDE4MSwwLDAsMCwxNzYsMCwwLDAsMTcyLDAsMCwwLDE2
OSwwLDAsMCwxNjUsMCwwLDAsMTYzLDAsMCwwLDE2MiwwLDAsMCwxNjEsMCwwLDAsMTYwLDAsMCww
LDE1OSwwLDAsMCwxNTgsMCwwLDAsMTU3LDAsMCwwLDE2NCwwLDAsMCwxNjYsMCwwLDAsMTY4LDAs
MCwwLDE3MSwwLDAsMCwxNzMsMCwwLDAsMTY3LDAsMCwwLDE3MCwwLDAsMCwxNzksMCwwLDAsMTc1
LDAsMCwwLDE3NCwwLDAsMCwxNzcsMCwwLDAsMTc4LDAsMCwwLDE4MCwwLDAsMCwxODMsMCwwLDAs
MTgyLDAsMCwwLDE4NSwwLDAsMCwxODgsMCwwLDAsMTg3LDAsMCwwLDE4OSwwLDAsMCwxOTAsMCww
LDAsMTkyLDAsMCwwLDIwMCwwLDAsMCwyMDEsMCwwLDAsMjA2LDAsMCwwLDE5NiwwLDAsMCwxOTgs
MCwwLDAsMTkzLDAsMCwwLDE5NCwwLDAsMCwyMDMsMCwwLDAsMjA0LDAsMCwwLDIwNywwLDAsMCwy
MDksMCwwLDAsMjEwLDAsMCwwLDIxMiwwLDAsMCwyMTQsMCwwLDAsNTcsMCwwLDAsMjE3LDAsMCww
LDIxNiwwLDAsMCw1OCwwLDAsMCwyMjEsMCwwLDAsMjE4LDAsMCwwLDU5LDAsMCwwLDIxOSwwLDAs
MCw2MCwwLDAsMCwyMjIsMCwwLDAsMjI0LDAsMCwwLDYxLDAsMCwwLDIyNSwwLDAsMCw2MiwwLDAs
MCwyMjYsMCwwLDAsMjI3LDAsMCwwLDYzLDAsMCwwLDIyOSwwLDAsMCwyMzAsMCwwLDAsNjQsMCww
LDAsMjMyLDAsMCwwLDIzMywwLDAsMCw2NSwwLDAsMCwyMzUsMCwwLDAsMjM3LDAsMCwwLDIzOCww
LDAsMCw2NiwwLDAsMCwyNDAsMCwwLDAsNjcsMCwwLDAsMjQxLDAsMCwwLDY4LDAsMCwwLDI0Myww
LDAsMCwyNDUsMCwwLDAsNjksMCwwLDAsMjQ2LDAsMCwwLDcwLDAsMCwwLDI0NywwLDAsMCwyNDks
MCwwLDAsNzEsMCwwLDAsMjUwLDAsMCwwLDI1MywwLDAsMCwyNTIsMCwwLDAsNzIsMCwwLDAsMjU0
LDAsMCwwLDczLDAsMCwwLDI1NSwwLDAsMCw3NCwwLDAsMCwyNTcsMCwwLDAsMjU4LDAsMCwwLDc1
LDAsMCwwLDI2MCwwLDAsMCw3NiwwLDAsMCwyNjEsMCwwLDAsNzcsMCwwLDAsMjYyLDAsMCwwLDc4
LDAsMCwwLDI2NCwwLDAsMCwyNjUsMCwwLDAsNzksMCwwLDAsMjY3LDAsMCwwLDI3MywwLDAsMCw4
MCwwLDAsMCwyNjgsMCwwLDAsODEsMCwwLDAsMjc1LDAsMCwwLDgyLDAsMCwwLDI3MSwwLDAsMCw4
MywwLDAsMCwyNzAsMCwwLDAsODQsMCwwLDAsMjcyLDAsMCwwLDI3NiwwLDAsMCw4NSwwLDAsMCwy
NzcsMCwwLDAsODYsMCwwLDAsMjc5LDAsMCwwLDI4MCwwLDAsMCw4NywwLDAsMCwyODIsMCwwLDAs
Mjg0LDAsMCwwLDg4LDAsMCwwLDI4NiwwLDAsMCw4OSwwLDAsMCwyODcsMCwwLDAsMTU2LDAsMCww
LDkwLDAsMCwwLDE1NSwwLDAsMCw5MSwwLDAsMCwxNTQsMCwwLDAsOTIsMCwwLDAsMTUzLDAsMCww
LDE1MiwwLDAsMCw5MywwLDAsMCwxNTEsMCwwLDAsMTUwLDAsMCwwLDk0LDAsMCwwLDE0OSwwLDAs
MCw5NSwwLDAsMCwxNDgsMCwwLDAsMTQ3LDAsMCwwLDk2LDAsMCwwLDE0NiwwLDAsMCwxNDUsMCww
LDAsOTcsMCwwLDAsMTQ0LDAsMCwwLDE0MywwLDAsMCw5OCwwLDAsMCwxNDIsMCwwLDAsMTQxLDAs
MCwwLDE0MCwwLDAsMCw5OSwwLDAsMCwxMzksMCwwLDAsMTAwLDAsMCwwLDEzOCwwLDAsMCwxMDEs
MCwwLDAsMTM3LDAsMCwwLDEzNiwwLDAsMCwxMDIsMCwwLDAsMTM1LDAsMCwwLDEwMywwLDAsMCwx
MzQsMCwwLDAsMTA0LDAsMCwwLDEzMywwLDAsMCwxMzIsMCwwLDAsMTA1LDAsMCwwLDEzMSwwLDAs
MCwxMDYsMCwwLDAsMTMwLDAsMCwwLDEwNywwLDAsMCwxMjksMCwwLDAsMTA4LDAsMCwwLDEyOCww
LDAsMCwxMjcsMCwwLDAsMTI2LDAsMCwwLDEwOSwwLDAsMCwxMjUsMCwwLDAsMTI0LDAsMCwwLDEx
MCwwLDAsMCwxMjMsMCwwLDAsMTIyLDAsMCwwLDEyMSwwLDAsMCwxMjAsMCwwLDAsMTExLDAsMCww
LDExOSwwLDAsMCwxMTgsMCwwLDAsMTE3LDAsMCwwLDExNiwwLDAsMCwxMTUsMCwwLDAsMTEyLDAs
MCwwLDExNCwwLDAsMCwxMTMsMCwwLDAsMTEyLDAsMCwwLDExMSwwLDAsMCwxMTAsMCwwLDAsMTA5
LDAsMCwwLDEwOCwwLDAsMCwxMDcsMCwwLDAsMzI3LDAsMCwwLDEwNiwwLDAsMCwxMDUsMCwwLDAs
MTA0LDAsMCwwLDEwMywwLDAsMCwxMDIsMCwwLDAsMTAxLDAsMCwwLDEwMCwwLDAsMCw5OSwwLDAs
MCw5OCwwLDAsMCw5NywwLDAsMCw5NiwwLDAsMCw5NSwwLDAsMCw5NCwwLDAsMCw5MywwLDAsMCw5
MiwwLDAsMCw5MSwwLDAsMCw5MCwwLDAsMCw4OSwwLDAsMCw4OCwwLDAsMCw4NywwLDAsMCw4Niww
LDAsMCw4NSwwLDAsMCw4NCwwLDAsMCw4MywwLDAsMCw4MiwwLDAsMCw4MSwwLDAsMCw4MCwwLDAs
MCw3OSwwLDAsMCw3OCwwLDAsMCw3NywwLDAsMCw3NiwwLDAsMCw3NSwwLDAsMCw3NCwwLDAsMCw3
MywwLDAsMCw3MiwwLDAsMCw3MSwwLDAsMCw3MCwwLDAsMCw2OSwwLDAsMCw2OCwwLDAsMCw2Nyww
LDAsMCw2NiwwLDAsMCw2NSwwLDAsMCw2NCwwLDAsMCw2MywwLDAsMCw2MiwwLDAsMCw2MSwwLDAs
MCw2MCwwLDAsMCw1OSwwLDAsMCw1OCwwLDAsMCw1NywwLDAsMCwxMTMsMCwwLDAsMzI2LDAsMCww
LDExNCwwLDAsMCwxMTUsMCwwLDAsMTE2LDAsMCwwLDExNywwLDAsMCwxMTgsMCwwLDAsMTE5LDAs
MCwwLDEyMCwwLDAsMCwxMjEsMCwwLDAsMTIyLDAsMCwwLDEyMywwLDAsMCwxMjQsMCwwLDAsMTI1
LDAsMCwwLDEyNiwwLDAsMCwxMjcsMCwwLDAsMTI4LDAsMCwwLDEyOSwwLDAsMCwxMzAsMCwwLDAs
MTMxLDAsMCwwLDEzMiwwLDAsMCwxMzMsMCwwLDAsMTM0LDAsMCwwLDEzNSwwLDAsMCwxMzYsMCww
LDAsMTM3LDAsMCwwLDEzOCwwLDAsMCwxMzksMCwwLDAsMTQwLDAsMCwwLDE0MSwwLDAsMCwxNDIs
MCwwLDAsMTQzLDAsMCwwLDE0NCwwLDAsMCwxNDUsMCwwLDAsMTQ2LDAsMCwwLDE0NywwLDAsMCwx
NDgsMCwwLDAsMTQ5LDAsMCwwLDE1MCwwLDAsMCwxNTEsMCwwLDAsMTUyLDAsMCwwLDE1MywwLDAs
MCwxNTQsMCwwLDAsMTU1LDAsMCwwLDE1NiwwLDAsMCwyODcsMCwwLDAsMjg2LDAsMCwwLDI4NCww
LDAsMCwyODIsMCwwLDAsMjgwLDAsMCwwLDI3OSwwLDAsMCwyNzcsMCwwLDAsMjc2LDAsMCwwLDI3
MiwwLDAsMCwyNzAsMCwwLDAsMjcxLDAsMCwwLDI3NSwwLDAsMCwyNjgsMCwwLDAsMjczLDAsMCww
LDI2NywwLDAsMCwyNjUsMCwwLDAsMjY0LDAsMCwwLDI2MiwwLDAsMCwyNjEsMCwwLDAsMjYwLDAs
MCwwLDI1OCwwLDAsMCwyNTcsMCwwLDAsMjU1LDAsMCwwLDI1NCwwLDAsMCwyNTIsMCwwLDAsMjUz
LDAsMCwwLDI1MCwwLDAsMCwyNDksMCwwLDAsMjQ3LDAsMCwwLDI0NiwwLDAsMCwyNDUsMCwwLDAs
MjQzLDAsMCwwLDI0MSwwLDAsMCwyNDAsMCwwLDAsMjM4LDAsMCwwLDIzNywwLDAsMCwyMzUsMCww
LDAsMjMzLDAsMCwwLDIzMiwwLDAsMCwyMzAsMCwwLDAsMjI5LDAsMCwwLDIyNywwLDAsMCwyMjYs
MCwwLDAsMjI1LDAsMCwwLDIyNCwwLDAsMCwyMjIsMCwwLDAsMjE5LDAsMCwwLDIxOCwwLDAsMCwy
MjEsMCwwLDAsMjE2LDAsMCwwLDIxNywwLDAsMCwyMTQsMCwwLDAsMjEyLDAsMCwwLDIxMCwwLDAs
MCwyMDksMCwwLDAsMjA3LDAsMCwwLDIwNCwwLDAsMCwyMDMsMCwwLDAsMTk0LDAsMCwwLDE5Myww
LDAsMCwxOTgsMCwwLDAsMTk2LDAsMCwwLDMyOCwwLDAsMCwyMDYsMCwwLDAsMjAxLDAsMCwwLDIw
MCwwLDAsMCwxOTIsMCwwLDAsMTkwLDAsMCwwLDE4OSwwLDAsMCwxODcsMCwwLDAsMTg4LDAsMCww
LDE4NSwwLDAsMCwxODIsMCwwLDAsMTgzLDAsMCwwLDE4MCwwLDAsMCwxNzgsMCwwLDAsMTc3LDAs
MCwwLDE3NCwwLDAsMCwxNzUsMCwwLDAsMTc5LDAsMCwwLDE3MCwwLDAsMCwxNjcsMCwwLDAsMTcz
LDAsMCwwLDE3MSwwLDAsMCwxNjgsMCwwLDAsMjM5NywwLDAsMCwxNjYsMCwwLDAsMTY0LDAsMCww
LDE1NywwLDAsMCwxNTgsMCwwLDAsMTU5LDAsMCwwLDE2MCwwLDAsMCwzMjUsMCwwLDAsMTYxLDAs
MCwwLDIzOTYsMCwwLDAsMTYyLDAsMCwwLDMyNCwwLDAsMCwxNjMsMCwwLDAsMTY1LDAsMCwwLDEs
MCwwLDAsMTY5LDAsMCwwLDIsMCwwLDAsMTcyLDAsMCwwLDMsMCwwLDAsNCwwLDAsMCwxNzYsMCww
LDAsNSwwLDAsMCwxODEsMCwwLDAsMTg0LDAsMCwwLDYsMCwwLDAsNTYsMCwwLDAsMTg2LDAsMCww
LDcsMCwwLDAsMTkxLDAsMCwwLDgsMCwwLDAsMTk1LDAsMCwwLDksMCwwLDAsMTk3LDAsMCwwLDEw
LDAsMCwwLDMyMywwLDAsMCwxOTksMCwwLDAsMTEsMCwwLDAsMjAyLDAsMCwwLDMyMiwwLDAsMCwx
MiwwLDAsMCw1NSwwLDAsMCwxMywwLDAsMCwxNCwwLDAsMCwxNSwwLDAsMCwzMjEsMCwwLDAsMjA1
LDAsMCwwLDE2LDAsMCwwLDMyMCwwLDAsMCwyMDgsMCwwLDAsMTcsMCwwLDAsMjExLDAsMCwwLDU0
LDAsMCwwLDE4LDAsMCwwLDIxMywwLDAsMCwyMTUsMCwwLDAsMzE5LDAsMCwwLDIyMCwwLDAsMCwy
MjMsMCwwLDAsMjI4LDAsMCwwLDIzMSwwLDAsMCwyMzQsMCwwLDAsMjM2LDAsMCwwLDUzLDAsMCww
LDIzOSwwLDAsMCwyNDIsMCwwLDAsMjQ0LDAsMCwwLDI0OCwwLDAsMCwzMTgsMCwwLDAsMjUxLDAs
MCwwLDI1NiwwLDAsMCw1NCwwLDAsMCwyNTksMCwwLDAsMjYzLDAsMCwwLDMxNywwLDAsMCwyNjYs
MCwwLDAsNTUsMCwwLDAsMjY5LDAsMCwwLDI3NCwwLDAsMCwyNzgsMCwwLDAsMzE2LDAsMCwwLDI4
MSwwLDAsMCwyODMsMCwwLDAsNTIsMCwwLDAsMjg1LDAsMCwwLDI4OCwwLDAsMCw1MSwwLDAsMCwy
ODksMCwwLDAsMjkwLDAsMCwwLDI5MSwwLDAsMCwyOTIsMCwwLDAsNTAsMCwwLDAsMjkzLDAsMCww
LDMxNSwwLDAsMCwyOTQsMCwwLDAsMTksMCwwLDAsNDksMCwwLDAsMjk1LDAsMCwwLDIwLDAsMCww
LDMxNCwwLDAsMCwyMSwwLDAsMCw0OCwwLDAsMCwyOTYsMCwwLDAsMjIsMCwwLDAsMjk3LDAsMCww
LDMxMywwLDAsMCwyMywwLDAsMCwyOTgsMCwwLDAsMjQsMCwwLDAsNDcsMCwwLDAsMjk5LDAsMCww
LDI1LDAsMCwwLDI2LDAsMCwwLDI3LDAsMCwwLDMxMiwwLDAsMCwyOCwwLDAsMCwyOSwwLDAsMCw0
NiwwLDAsMCwzMCwwLDAsMCwzMSwwLDAsMCwzMTEsMCwwLDAsMzIsMCwwLDAsMzMsMCwwLDAsNDUs
MCwwLDAsMzQsMCwwLDAsMzAwLDAsMCwwLDM1LDAsMCwwLDMwMSwwLDAsMCwzNiwwLDAsMCwzMTAs
MCwwLDAsMzAyLDAsMCwwLDM3LDAsMCwwLDMwMywwLDAsMCwzOCwwLDAsMCwzMDQsMCwwLDAsNDQs
MCwwLDAsMzksMCwwLDAsMzA5LDAsMCwwLDMwNSwwLDAsMCw0MywwLDAsMCw0MCwwLDAsMCwzMDYs
MCwwLDAsMzA4LDAsMCwwLDQxLDAsMCwwLDMwNywwLDAsMCw0MiwwLDAsMiwxLDAsMCwzLDEsMCww
LDQsMSwwLDAsNSwxLDAsMCw2LDEsMCwwLDcsMSwwLDAsOCwxLDAsMCw5LDEsMCwwLDEwLDEsMCww
LDExLDEsMCwwLDEyLDEsMCwwLDEzLDEsMCwwLDE0LDEsMCwwLDE1LDEsMCwwLDE2LDEsMCwwLDE3
LDEsMCwwLDE4LDEsMCwwLDE5LDEsMCwwLDIwLDEsMCwwLDIxLDEsMCwwLDIyLDEsMCwwLDIzLDEs
MCwwLDI0LDEsMCwwLDI1LDEsMCwwLDI2LDEsMCwwLDI3LDEsMCwwLDI4LDEsMCwwLDI5LDEsMCww
LDMwLDEsMCwwLDMxLDEsMCwwLDMyLDEsMCwwLDMzLDEsMCwwLDM0LDEsMCwwLDM1LDEsMCwwLDM2
LDEsMCwwLDM3LDEsMCwwLDM4LDEsMCwwLDM5LDEsMCwwLDQwLDEsMCwwLDQxLDEsMCwwLDQyLDEs
MCwwLDQzLDEsMCwwLDQ0LDEsMCwwLDQ1LDEsMCwwLDQ2LDEsMCwwLDQ3LDEsMCwwLDQ4LDEsMCww
LDQ5LDEsMCwwLDUwLDEsMCwwLDUxLDEsMCwwLDUyLDEsMCwwLDUzLDEsMCwwLDU0LDQ4LDAsMCw1
NSw0NywwLDAsNTYsMjM5MywwLDAsNTYsMzI5LDAsMCw1Nyw0LDAsMCw1OCw0LDAsMCw1OSw0LDAs
MCw2MCw0LDAsMCw2MSw0LDAsMCw2Miw0LDAsMCw2Myw0LDAsMCw2NCw0LDAsMCw2NSw0LDAsMCw2
Niw0LDAsMCw2Nyw0LDAsMCw2OCw0LDAsMCw2OSw0LDAsMCw3MCw0LDAsMCw3MSw0LDAsMCw3Miw0
LDAsMCw3Myw0LDAsMCw3NCw0LDAsMCw3NSw0LDAsMCw3Niw0LDAsMCw3Nyw0LDAsMCw3OCw0LDAs
MCw3OSw0LDAsMCw4MCw0LDAsMCw4MSw0LDAsMCw4Miw0LDAsMCw4Myw0LDAsMCw4NCw0LDAsMCw4
NSw0LDAsMCw4Niw0LDAsMCw4Nyw0LDAsMCw4OCw0LDAsMCw4OSw0LDAsMCw5MCw0LDAsMCw5MSw0
LDAsMCw5Miw0LDAsMCw5Myw0LDAsMCw5NCw0LDAsMCw5NSw0LDAsMCw5Niw0LDAsMCw5Nyw0LDAs
MCw5OCw0LDAsMCw5OSw0LDAsMCwxMDAsNCwwLDAsMTAxLDQsMCwwLDEwMiw0LDAsMCwxMDMsNCww
LDAsMTA0LDQsMCwwLDEwNSw0LDAsMCwxMDYsNCwwLDAsMTA3LDQsMCwwLDEwOCw0LDAsMCwxMDks
NCwwLDAsMTEwLDQsMCwwLDExMSw0LDAsMCwxMTIsNCwwLDAsMTEzLDQsMCwwLDExNCw0LDAsMCwx
MTUsNCwwLDAsMTE2LDQsMCwwLDExNyw0LDAsMCwxMTgsNCwwLDAsMTE5LDQsMCwwLDEyMCw0LDAs
MCwxMjEsNCwwLDAsMTIyLDQsMCwwLDEyMyw0LDAsMCwxMjQsNCwwLDAsMTI1LDQsMCwwLDEyNiw0
LDAsMCwxMjcsNCwwLDAsMTI4LDQsMCwwLDEyOSw0LDAsMCwxMzAsNCwwLDAsMTMxLDQsMCwwLDEz
Miw0LDAsMCwxMzMsNCwwLDAsMTM0LDQsMCwwLDEzNSw0LDAsMCwxMzYsNCwwLDAsMTM3LDQsMCww
LDEzOCw0LDAsMCwxMzksNCwwLDAsMTQwLDQsMCwwLDE0MSw0LDAsMCwxNDIsNCwwLDAsMTQzLDQs
MCwwLDE0NCw0LDAsMCwxNDUsNCwwLDAsMTQ2LDQsMCwwLDE0Nyw0LDAsMCwxNDgsNCwwLDAsMTQ5
LDQsMCwwLDE1MCw0LDAsMCwxNTEsNCwwLDAsMTUyLDQsMCwwLDE1Myw0LDAsMCwxNTQsNCwwLDAs
MTU1LDQsMCwwLDE1Niw0LDAsMCwxNTcsNCwwLDAsMTU4LDQsMCwwLDE1OSw0LDAsMCwxNjAsNCww
LDAsMTYxLDQsMCwwLDE2Miw0LDAsMCwxNjMsNCwwLDAsMTY0LDQsMCwwLDE2NSw0LDAsMCwxNjYs
NCwwLDAsMTY3LDQsMCwwLDE2OCw0LDAsMCwxNjksNCwwLDAsMTcwLDQsMCwwLDE3MSw0LDAsMCwx
NzIsNCwwLDAsMTczLDQsMCwwLDE3NCw0LDAsMCwxNzUsNCwwLDAsMTc2LDQsMCwwLDE3Nyw0LDAs
MCwxNzgsNCwwLDAsMTc5LDQsMCwwLDE4MCw0LDAsMCwxODEsNCwwLDAsMTgyLDQsMCwwLDE4Myw0
LDAsMCwxODQsNCwwLDAsMTg1LDQsMCwwLDE4Niw0LDAsMCwxODcsNCwwLDAsMTg4LDQsMCwwLDE4
OSw0LDAsMCwxOTAsNCwwLDAsMTkxLDQsMCwwLDE5Miw0LDAsMCwxOTMsNCwwLDAsMTk0LDQsMCww
LDE5NSw0LDAsMCwxOTYsNCwwLDAsMTk3LDQsMCwwLDE5OCw0LDAsMCwxOTksNCwwLDAsMjAwLDQs
MCwwLDIwMSw0LDAsMCwyMDIsNCwwLDAsMjAzLDQsMCwwLDIwNCw0LDAsMCwyMDUsNCwwLDAsMjA2
LDQsMCwwLDIwNyw0LDAsMCwyMDgsNCwwLDAsMjA5LDQsMCwwLDIxMCw0LDAsMCwyMTEsNCwwLDAs
MjEyLDQsMCwwLDIxMyw0LDAsMCwyMTQsNCwwLDAsMjE1LDQsMCwwLDIxNiw0LDAsMCwyMTcsNCww
LDAsMjE4LDQsMCwwLDIxOSw0LDAsMCwyMjAsNCwwLDAsMjIxLDQsMCwwLDIyMiw0LDAsMCwyMjMs
NCwwLDAsMjI0LDQsMCwwLDIyNSw0LDAsMCwyMjYsNCwwLDAsMjI3LDQsMCwwLDIyOCw0LDAsMCwy
MjksNCwwLDAsMjMwLDQsMCwwLDIzMSw0LDAsMCwyMzIsNCwwLDAsMjMzLDQsMCwwLDIzNCw0LDAs
MCwyMzUsNCwwLDAsMjM2LDQsMCwwLDIzNyw0LDAsMCwyMzgsNCwwLDAsMjM5LDQsMCwwLDI0MCw0
LDAsMCwyNDEsNCwwLDAsMjQyLDQsMCwwLDI0Myw0LDAsMCwyNDQsNCwwLDAsMjQ1LDQsMCwwLDI0
Niw0LDAsMCwyNDcsNCwwLDAsMjQ4LDQsMCwwLDI0OSw0LDAsMCwyNTAsNCwwLDAsMjUxLDQsMCww
LDI1Miw0LDAsMCwyNTMsNCwwLDAsMjU0LDQsMCwwLDI1NSw0LDAsMCwyNTYsNCwwLDAsMjU3LDQs
MCwwLDI1OCw0LDAsMCwyNTksNCwwLDAsMjYwLDQsMCwwLDI2MSw0LDAsMCwyNjIsNCwwLDAsMjYz
LDQsMCwwLDI2NCw0LDAsMCwyNjUsNCwwLDAsMjY2LDQsMCwwLDI2Nyw0LDAsMCwyNjgsNCwwLDAs
MjY5LDQsMCwwLDI3MCw0LDAsMCwyNzEsNCwwLDAsMjcyLDQsMCwwLDI3Myw0LDAsMCwyNzQsNCww
LDAsMjc1LDQsMCwwLDI3Niw0LDAsMCwyNzcsNCwwLDAsMjc4LDQsMCwwLDI3OSw0LDAsMCwyODAs
NCwwLDAsMjgxLDQsMCwwLDI4Miw0LDAsMCwyODMsNCwwLDAsMjg0LDQsMCwwLDI4NSw0LDAsMCwy
ODYsNCwwLDAsMjg3LDQsMCwwLDI4OCw0LDAsMCwyODksNCwwLDAsMjkwLDQsMCwwLDI5MSw0LDAs
MCwyOTIsNCwwLDAsMjkzLDQsMCwwLDI5NCw0LDAsMCwyOTUsNCwwLDAsMjk2LDQsMCwwLDI5Nyw0
LDAsMCwyOTgsNCwwLDAsMjk5LDQsMCwwLDMwMCw0LDAsMCwzMDEsNCwwLDAsMzAyLDQsMCwwLDMw
Myw0LDAsMCwzMDQsNCwwLDAsMzA1LDQsMCwwLDMwNiw0LDAsMCwzMDcsNCwwLDAsMzA4LDQsMCww
LDMwOSw0LDAsMCwzMTAsNCwwLDAsMzExLDQsMCwwLDMxMiw0LDAsMCwzMTMsNCwwLDAsMzE0LDQs
MCwwLDMxNSw0LDAsMCwzMTYsNCwwLDAsMzE3LDQsMCwwLDMxOCw0LDAsMCwzMTksNCwwLDAsMzIw
LDQsMCwwLDMyMSw0LDAsMCwzMjIsNCwwLDAsMzIzLDQsMCwwLDMyNCw0LDAsMCwzMjUsNCwwLDAs
MzI2LDQsMCwwLDMyNyw0LDAsMCwzMjgsNCwwLDAsMzI5LDIwMDEsMywwLDMyOSwyMjYyLDEsMSwz
MjksMjAzOCwzLDIsMzI5LDc4MSwzLDMsMzI5LDE1NDIsMyw0LDMyOSwxNTc0LDMsNSwzMjksMjAy
OSwzLDYsMzI5LDIwMzMsMyw3LDMyOSwxNzMzLDMsOCwzMjksNzQ5LDMsOSwzMjksMjMwNCwzLDEw
LDMyOSwxODc2LDMsMTEsMzI5LDIwMTcsMywxMiwzMjksODUwLDMsMTMsMzI5LDE4MDQsMywxNCwz
MjksNzE0LDMsMTUsMzI5LDY1MiwzLDE2LDMyOSw4OTYsMywxNywzMjksNzY4LDMsMTgsMzI5LDcw
NCwzLDE5LDMyOSwyMTk5LDMsMjAsMzI5LDc5OSwzLDIxLDMyOSw1MzcsMywyMiwzMjksNzUxLDMs
MjMsMzI5LDU0NywzLDI0LDMyOSwxNDI3LDMsMjUsMzI5LDE5OTcsMywyNiwzMjksODE4LDMsMjcs
MzI5LDEyNzgsMywyOCwzMjksNjM5LDMsMjksMzI5LDE5NjksMywzMCwzMjksNjkwLDMsMzEsMzI5
LDIwNTksMywzMiwzMjksNjc1LDMsMzMsMzI5LDE2ODAsMywzNCwzMjksMTk2NiwzLDM1LDMyOSw4
NTIsMywzNiwzMjksNzUwLDMsMzcsMzI5LDE4ODAsMywzOCwzMjksMTk1OSwzLDM5LDMyOSw1ODMs
Myw0MCwzMjksMjA5MSwzLDQxLDMyOSwxODM2LDMsNDIsMzI5LDgxOSwzLDQzLDMyOSwxNzQ3LDMs
NDQsMzI5LDE3NjUsMyw0NSwzMjksMTk0NCwzLDQ2LDMyOSwxNTA5LDMsNDcsMzI5LDYwNywzLDQ4
LDMyOSw2MTIsMyw0OSwzMjksMTkzMCwzLDUwLDMyOSwyMTY2LDMsNTEsMzI5LDExMDgsMyw1Miwz
MjksNTg5LDMsNTMsMzI5LDIxOTIsMyw1NCwzMjksMTg2NiwzLDU1LDMyOSw2MTksMyw1NiwzMjks
MTg5MywzLDU3LDMyOSwxODQ0LDMsNTgsMzI5LDYxMSwzLDU5LDMyOSwxODQ4LDMsNjAsMzI5LDE4
OTcsMyw2MSwzMjksODcwLDMsNjIsMzI5LDYwOSwzLDYzLDMyOSwxMzY5LDMsNjQsMzI5LDIwNzQs
Myw2NSwzMjksNTM5LDMsNjYsMzI5LDIwOTYsMyw2NywzMjksMjEzMCwzLDY4LDMyOSw2MzYsMyw2
OSwzMjksNzIzLDMsNzAsMzI5LDU2LDMsNzEsMzI5LDU1MiwzLDcyLDMyOSwyMTAwLDMsNzMsMzI5
LDIyMjEsMyw3NCwzMjksNjMzLDMsNzUsMzI5LDY2OSwzLDc2LDMyOSwyMTI4LDMsNzcsMzI5LDE5
OTEsMyw3OCwzMjksODE1LDMsNzksMzI5LDIxNjEsMyw4MCwzMjksMTcwNCwzLDgxLDMyOSwyMTU1
LDMsODIsMzI5LDE5NDgsMyw4MywzMjksMTQ3NywzLDg0LDMyOSwyMTY0LDMsODUsMzI5LDIxMzMs
Myw4NiwzMjksMTc5NCwzLDg3LDMyOSwxNjQ5LDMsODgsMzI5LDIyNTcsMyw4OSwzMjksMjE0MSwz
LDkwLDMyOSw2MzgsMyw5MSwzMjksNjU5LDMsOTIsMzI5LDIzMTQsMyw5MywzMjksMTk1MSwzLDk0
LDMyOSwxMzA2LDMsOTUsMzI5LDE5NzksMyw5NiwzMjksMTk1OCwzLDk3LDMyOSwxODEwLDMsOTgs
MzI5LDIwNTUsMyw5OSwzMjksODMzLDMsMTAwLDMyOSwyMDEyLDMsMTAxLDMyOSw2OTMsMywxMDIs
MzI5LDY5NCwzLDEwMywzMjksMTg1MiwzLDEwNCwzMjksMTc4NywzLDEwNSwzMjksMjE4OCwzLDEw
NiwzMjksODIwLDMsMTA3LDMyOSw4MjEsMywxMDgsMzI5LDE5MDAsMywxMDksMzI5LDU0OCwzLDEx
MCwzMjksODEyLDMsMTExLDMyOSw2NjYsMywxMTIsMzI5LDc0MiwzLDExMywzMjksNjYyLDMsMTE0
LDMyOSwyMTU5LDMsMTE1LDMyOSwyMTUxLDMsMTE2LDMyOSw2MTAsMywxMTcsMzI5LDE4OTYsMywx
MTgsMzI5LDcxNiwzLDExOSwzMjksMjA0MywzLDEyMCwzMjksMjAzNywzLDEyMSwzMjksMjMwNiwz
LDEyMiwzMjksNTMyLDMsMTIzLDMyOSwyMDQ1LDMsMTI0LDMyOSwyMDMxLDMsMTI1LDMyOSwyMDU0
LDMsMTI2LDMyOSwxOTk1LDMsMTI3LDMyOSwxODk1LDMsMTI4LDMyOSwxOTg0LDMsMTI5LDMyOSw1
NDQsMywxMzAsMzI5LDY4MywzLDEzMSwzMjksMjExMCwzLDEzMiwzMjksMTg5OSwzLDEzMywzMjks
NTUxLDMsMTM0LDMyOSwxOTQwLDMsMTM1LDMyOSwyMDcyLDMsMTM2LDMyOSw3MzQsMywxMzcsMzI5
LDE4NjIsMywxMzgsMzI5LDYwMCwzLDEzOSwzMjksMTgzMCwzLDE0MCwzMjksMTMzNywzLDE0MSwz
MjksNzQ4LDMsMTQyLDMyOSw1NzgsMywxNDMsMzI5LDE1MjcsMywxNDQsMzI5LDgxMCwzLDE0NSwz
MjksNjg5LDMsMTQ2LDMyOSwyMTA2LDMsMTQ3LDMyOSw2NDEsMywxNDgsMzI5LDU2MywzLDE0OSwz
MjksMTg3NCwzLDE1MCwzMjksMTk1NSwzLDE1MSwzMjksMTY2OCwzLDE1MiwzMjksODU1LDMsMTUz
LDMyOSwyMTA5LDMsMTU0LDMyOSw1MzQsMywxNTUsMzI5LDU3OSwzLDE1NiwzMjksNjk1LDMsMTU3
LDMyOSw1NTUsMywxNTgsMzI5LDE5MjUsMywxNTksMzI5LDEzOTQsMywxNjAsMzI5LDE3OTgsMywx
NjEsMzI5LDkwNywzLDE2MiwzMjksMjE3OSwzLDE2MywzMjksMTg2OSwzLDE2NCwzMjksMTg1OCwz
LDE2NSwzMjksMTg1NiwzLDE2NiwzMjksMTk5NCwzLDE2NywzMjksNzU4LDMsMTY4LDMyOSw2NDUs
MywxNjksMzI5LDg0OSwzLDE3MCwzMjksMjAwNiwzLDE3MSwzMjksMjIzMiwzLDE3MiwzMjksMTg0
MCwzLDE3MywzMjksMTkyNCwzLDE3NCwzMjksOTI0LDMsMTc1LDMyOSw4NjMsMywxNzYsMzI5LDIw
NzAsMywxNzcsMzI5LDIwNzMsMywxNzgsMzI5LDIzMzYsMywxNzksMzI5LDExODUsMywxODAsMzI5
LDU2NCwzLDE4MSwzMjksMjA3NywzLDE4MiwzMjksMTk3NywzLDE4MywzMjksNTY2LDMsMTg0LDMy
OSw4MzksMywxODUsMzI5LDU1NywzLDE4NiwzMjksNTQ2LDMsMTg3LDMyOSw1NTksMywxODgsMzI5
LDU5NCwzLDE4OSwzMjksMTg2MCwzLDE5MCwzMjksMjI5NSwzLDE5MSwzMjksNTQwLDMsMTkyLDMy
OSwyMDk4LDMsMTkzLDMyOSw2NDIsMywxOTQsMzI5LDE4OTgsMywxOTUsMzI5LDIxNzQsMywxOTYs
MzI5LDE5MDksMywxOTcsMzI5LDIxMjMsMywxOTgsMzI5LDIxNjUsMywxOTksMzI5LDIxMzYsMywy
MDAsMzI5LDgyMywzLDIwMSwzMjksNzAyLDMsMjAyLDMyOSw3ODUsMywyMDMsMzI5LDE2MDUsMywy
MDQsMzI5LDE4NjQsMywyMDUsMzI5LDIxMzUsMywyMDYsMzI5LDIyMTYsMywyMDcsMzI5LDU0MSwz
LDIwOCwzMjksMjEwMywzLDIwOSwzMjksMjA0OCwzLDIxMCwzMjksNjc0LDMsMjExLDMyOSw3NzUs
MywyMTIsMzI5LDIzMTUsMywyMTMsMzI5LDE4NjEsMywyMTQsMzI5LDE0NTMsMywyMTUsMzI5LDcx
MiwzLDIxNiwzMjksMTU1OSwzLDIxNywzMjksNjAxLDMsMjE4LDMyOSw2NTcsMywyMTksMzI5LDE4
MjEsMywyMjAsMzI5LDIxNzUsMywyMjEsMzI5LDEwMjEsMywyMjIsMzI5LDg2NiwzLDIyMywzMjks
Nzg3LDMsMjI0LDMyOSw2MTQsMywyMjUsMzI5LDE5MjMsMywyMjYsMzI5LDE3MjAsMywyMjcsMzI5
LDE5MTYsMywyMjgsMzI5LDE4NjUsMywyMjksMzI5LDIwMDIsMywyMzAsMzI5LDgwOCwzLDIzMSwz
MjksMTc3NiwzLDIzMiwzMjksMTc4MCwzLDIzMywzMjksMjM0OSwzLDIzNCwzMjksMjM0OCwxLDIz
NSwzMjksMjMzMCwxLDIzNiwzMjksMjMwOSwxLDIzNywzMjksMjMwMSwxLDIzOCwzMjksMjMwMCwx
LDIzOSwzMjksMjI5OCwxLDI0MCwzMjksMjI5NiwxLDI0MSwzMjksMjI5MiwxLDI0MiwzMjksMjI5
MCwxLDI0MywzMjksMjI4NywxLDI0NCwzMjksMjI4MSwxLDI0NSwzMjksMjI3OSwxLDI0NiwzMjks
MjI3NSwxLDI0NywzMjksMjI3NCwxLDI0OCwzMjksMjI3MywxLDI0OSwzMjksMjI3MSwxLDI1MCwz
MjksMjI3MCwxLDI1MSwzMjksMjI2OSwxLDI1MiwzMjksMjI2OCwxLDI1MywzMjksMjI2NywxLDI1
NCwzMjksMjI2NiwxLDI1NSwzMjksMjI2NSwxLDI1NiwzMjksMjI2NCwxLDI1NywzMjksMjI2Mywx
LDI1OCwzMjksMjI3MiwxLDI1OSwzMjksMjI3NywxLDI2MCwzMjksMjI3NiwxLDI2MSwzMjksMjI3
OCwxLDI2MiwzMjksMjI4NCwxLDI2MywzMjksMjI4MCwxLDI2NCwzMjksMjI4MywxLDI2NSwzMjks
MjI4MiwxLDI2NiwzMjksMjI4OCwxLDI2NywzMjksMjI4NSwxLDI2OCwzMjksMjI5MywxLDI2OSwz
MjksMjI5MSwxLDI3MCwzMjksMjI4NiwxLDI3MSwzMjksMjI4OSwxLDI3MiwzMjksMjI5NCwxLDI3
MywzMjksMjI5NSwxLDI3NCwzMjksMjI5NywxLDI3NSwzMjksMjI5OSwxLDI3NiwzMjksMjMxNCwx
LDI3NywzMjksMjMwNCwxLDI3OCwzMjksMjMwNiwxLDI3OSwzMjksMjMxNSwxLDI4MCwzMjksMjMx
OCwxLDI4MSwzMjksMjMzNiwxLDI4MiwzMjksMjM1NCwxLDI4MywzMjksMjM0OSwxLDI4NCwzMjks
MjI1NywxLDI4NSwzMjksMjI1MywxLDI4NiwzMjksMjIzNywxLDI4NywzMjksMjIzMiwxLDI4OCwz
MjksMjIyMSwxLDI4OSwzMjksMjIxNiwxLDI5MCwzMjksMjI1MywxLDI5MSwzMjksMjIxMiwxLDI5
MiwzMjksMjIzNywxLDI5MywzMjksMjIwOSwxLDI5NCwzMjksMjE5NywxLDI5NSwzMjksMTg2MSww
LDAsMzI5LDE4NjAsMCwwLDMyOSwxODY0LDAsMCwzMjksMTg2NSwwLDAsMzI5LDE4NjYsMCwwLDMy
OSwxODc2LDAsMCwzMjksMTg3NCwwLDAsMzI5LDE4OTMsMCwwLDMyOSwxODk2LDAsMCwzMjksMTg5
NywwLDAsMzI5LDE4OTgsMCwwLDMyOSwxOTAwLDAsMCwzMjksMTkxNiwwLDAsMzI5LDE4OTksMCww
LDMyOSwxOTIzLDAsMCwzMjksMTkyNSwwLDAsMzI5LDE5MjQsMCwwLDMyOSwxOTQ0LDAsMCwzMjks
MTk0MCwwLDAsMzI5LDE5MzAsMCwwLDMyOSwxOTU4LDAsMCwzMjksMTk1OSwwLDAsMzI5LDE5NTEs
MCwwLDMyOSwxOTY2LDAsMCwzMjksMTk1NSwwLDAsMzI5LDE5NjksMCwwLDMyOSwxOTc5LDAsMCwz
MjksMTk3NywwLDAsMzI5LDE5ODQsMCwwLDMyOSwxOTkxLDAsMCwzMjksMTk5NSwwLDAsMzI5LDE5
OTcsMCwwLDMyOSwyMDAyLDAsMCwzMjksMjAwMSwwLDAsMzI5LDIwMDYsMCwwLDMyOSwyMDE3LDAs
MCwzMjksMjAxMiwwLDAsMzI5LDIwMjksMCwwLDMyOSwyMDMxLDAsMCwzMjksMjAzMywwLDAsMzI5
LDIwMzcsMCwwLDMyOSwyMDM4LDAsMCwzMjksMjA0MywwLDAsMzI5LDIwNDUsMCwwLDMyOSwyMDU0
LDAsMCwzMjksMjA1NSwwLDAsMzI5LDIwNDgsMCwwLDMyOSwyMDczLDAsMCwzMjksMjA3MCwwLDAs
MzI5LDIwNzQsMCwwLDMyOSwyMDcyLDAsMCwzMjksMjA3NywwLDAsMzI5LDIwOTEsMCwwLDMyOSwy
MDk2LDAsMCwzMjksMjEwMCwwLDAsMzI5LDIxMDMsMCwwLDMyOSwyMDk4LDAsMCwzMjksMjEwOSww
LDAsMzI5LDIxMTAsMCwwLDMyOSwyMTIzLDAsMCwzMjksMjEzMCwwLDAsMzI5LDIxMjgsMCwwLDMy
OSwyMTQxLDAsMCwzMjksMjEzNSwwLDAsMzI5LDIxMzYsMCwwLDMyOSwyMTMzLDAsMCwzMjksMjE1
NSwwLDAsMzI5LDIxNjUsMCwwLDMyOSwyMTYxLDAsMCwzMjksMjE2NCwwLDAsMzI5LDIxNjYsMCww
LDMyOSwyMTc1LDAsMCwzMjksMjE3OSwwLDAsMzI5LDIxODgsMCwwLDMyOSwyMTkyLDAsMCwzMjks
MjE5OSwwLDAsMzI5LDE4NTYsMCwwLDMyOSwxODUyLDAsMCwzMjksMTg0OCwwLDAsMzI5LDE4NDQs
MCwwLDMyOSwxODQwLDAsMCwzMjksMTgzNiwwLDAsMzI5LDE4MzAsMCwwLDMyOSwxODIxLDAsMCwz
MjksMTgxMCwwLDAsMzI5LDIxMDYsMCwwLDMyOSwzMzAsMCwwLDMyOSwzNDYsMCwwLDMyOSwxNTIx
LDAsMCwzMjksMTQ5MCwwLDAsMzI5LDE1MTEsMCwwLDMyOSwxNDgzLDAsMCwzMjksMTQ2NywwLDAs
MzI5LDE0ODAsMCwwLDMyOSwxNDU4LDAsMCwzMjksMTQ1NywwLDAsMzI5LDE0NDUsMCwwLDMyOSwx
NDQ5LDAsMCwzMjksMTQzNCwwLDAsMzI5LDE0MjksMCwwLDMyOSwxMzk1LDAsMCwzMjksMTM4Niww
LDAsMzI5LDEzNzksMCwwLDMyOSwxMzcxLDAsMCwzMjksMTM2NSwwLDAsMzI5LDEzNTYsMCwwLDMy
OSwxMzQ3LDAsMCwzMjksMTMzMSwwLDAsMzI5LDEzMjIsMCwwLDMyOSwxMjY4LDAsMCwzMjksMTI2
NiwwLDAsMzI5LDEyNjUsMCwwLDMyOSwxMjU1LDAsMCwzMjksMTA0NiwwLDAsMzI5LDEyMjYsMCww
LDMyOSwxMjE4LDAsMCwzMjksMTIxMCwwLDAsMzI5LDEyMDcsMCwwLDMyOSwxMjA1LDAsMCwzMjks
MTE5NSwwLDAsMzI5LDEyMDAsMCwwLDMyOSwxMDgwLDAsMCwzMjksOTUyLDAsMCwzMjksMTE4OCww
LDAsMzI5LDExODQsMCwwLDMyOSwxMTc4LDAsMCwzMjksMTEzNiwwLDAsMzI5LDEwOTUsMCwwLDMy
OSwxMTM1LDAsMCwzMjksMTEzMCwwLDAsMzI5LDExNTEsMCwwLDMyOSwxMTI1LDAsMCwzMjksMTEy
OCwwLDAsMzI5LDExMjAsMCwwLDMyOSwxMTE4LDAsMCwzMjksMTExOSwwLDAsMzI5LDExMTcsMCww
LDMyOSwxMTEwLDAsMCwzMjksMTExMSwwLDAsMzI5LDExMDQsMCwwLDMyOSwxMTAzLDAsMCwzMjks
MTEwMiwwLDAsMzI5LDExMDEsMCwwLDMyOSwxMDk5LDAsMCwzMjksMTEwOSwwLDAsMzI5LDEwOTUs
MCwwLDMyOSwxMDkxLDAsMCwzMjksMTA5MywwLDAsMzI5LDEwODksMCwwLDMyOSwxMDk2LDAsMCwz
MjksMTA4NywwLDAsMzI5LDEwODAsMCwwLDMyOSwxMDc3LDAsMCwzMjksMTA3OSwwLDAsMzI5LDEw
ODMsMCwwLDMyOSwxMDc4LDAsMCwzMjksMTA3NCwwLDAsMzI5LDEwNzYsMCwwLDMyOSwxMDY2LDAs
MCwzMjksMTA3MCwwLDAsMzI5LDEwNjgsMCwwLDMyOSwxMDU4LDAsMCwzMjksMTA3OSwwLDAsMzI5
LDEwODMsMCwwLDMyOSwxMDc4LDAsMCwzMjksMTA3NCwwLDAsMzI5LDEwNzYsMCwwLDMyOSwxMDY2
LDAsMCwzMjksMTA3MCwwLDAsMzI5LDEwNjgsMCwwLDMyOSwxMDU4LDAsMCwzMjksMTA2MCwwLDAs
MzI5LDEwNTMsMCwwLDMyOSw4NDYsMywyOTYsMzI5LDEwMzMsMCwwLDMyOSwxMDI5LDAsMCwzMjks
MTAyMiwwLDAsMzI5LDEwMjMsMCwwLDMyOSwxMDEyLDAsMCwzMjksOTk5LDAsMCwzMjksOTg5LDAs
MCwzMjksOTgxLDAsMCwzMjksOTcwLDAsMCwzMjksOTU3LDAsMCwzMjksOTUyLDAsMCwzMjksOTc3
LDAsMCwzMjksOTQ2LDAsMCwzMjksOTUwLDAsMCwzMjksOTMxLDAsMCwzMjksOTMwLDAsMCwzMjks
OTI4LDAsMCwzMjksOTE5LDAsMCwzMjksOTI1LDAsMCwzMjksOTIwLDAsMCwzMjksOTA2LDAsMCwz
MjksOTA5LDAsMCwzMjksODkxLDAsMCwzMjksODk1LDAsMCwzMjksODg4LDAsMCwzMjksMjI5OSww
LDAsMzI5LDIyMDksMCwwLDMyOSwyMTk3LDAsMCwzMjksODg3LDAsMCwzMjksODgyLDAsMCwzMjks
MjMxNCwwLDAsMzI5LDIyMzcsMCwwLDMyOSwyMjMyLDAsMCwzMjksMjIyMSwwLDAsMzI5LDg4MCww
LDAsMzI5LDg3NCwwLDAsMzI5LDIzMTUsMCwwLDMyOSwyMjE2LDAsMCwzMjksODcxLDAsMCwzMjks
ODczLDAsMCwzMjksNTYsMCwwLDMyOSwyMTgxLDAsMCwzMjksMjM2MiwwLDAsMzMwLDEsMCwwLDMz
MCwzMjksMCwwLDMzMCwzMzEsMCwwLDMzMSwzNDEsMSwyOTcsMzMxLDMzOCwxLDI5OCwzMzEsMzMz
LDEsMjk5LDMzMSwzMzIsMSwzMDAsMzMxLDM0NCwwLDAsMzMyLDYsMCwwLDMzMywzMzYsMCwwLDMz
MywzMjksMCwwLDMzMywzMzQsMCwwLDMzMywzMzUsMSwzMDEsMzM0LDEwLDAsMCwzMzUsNCwwLDAs
MzM2LDEsMCwwLDMzNiwzMjksMCwwLDMzNiw5NDYsMCwwLDMzNiwzMzcsMCwwLDMzNywzMjksMCww
LDMzNyw5NDYsMCwwLDMzNywxLDAsMCwzMzcsMTA5NiwwLDAsMzM4LDMzNiwwLDAsMzM4LDMyOSww
LDAsMzM4LDMzOSwwLDAsMzM4LDM0MCwxLDMwMSwzMzksMTAsMCwwLDM0MCw0LDAsMCwzNDEsMzM2
LDAsMCwzNDEsMzI5LDAsMCwzNDEsMzQyLDAsMCwzNDEsMzQzLDEsMzAxLDM0MiwxMCwwLDAsMzQz
LDQsMCwwLDM0NCwxLDAsMCwzNDQsMzI5LDAsMCwzNDQsOTUwLDAsMCwzNDQsMzQ1LDAsMCwzNDUs
MzUsMCwwLDM0NiwxLDAsMCwzNDYsMzI5LDAsMCwzNDYsMzQ3LDAsMCwzNDcsNDExLDEsMzAyLDM0
Nyw0MDksMSwzMDMsMzQ3LDQwNywxLDMwNCwzNDcsNDA1LDEsMzA1LDM0Nyw0MDMsMSwzMDYsMzQ3
LDQwMSwxLDMwNywzNDcsMzk5LDEsMzA4LDM0NywzOTcsMSwzMDksMzQ3LDM5NiwxLDMxMCwzNDcs
Mzk0LDEsMzExLDM0NywzOTIsMSwzMTIsMzQ3LDM5MCwxLDMxMywzNDcsMzg4LDEsMzE0LDM0Nywz
ODYsMSwzMTUsMzQ3LDM4NCwxLDMxNiwzNDcsMzgyLDEsMzE3LDM0Nyw0ODMsMSwzMTgsMzQ3LDQ4
MSwxLDMxOSwzNDcsNDc5LDEsMzIwLDM0Nyw0NzcsMSwzMjEsMzQ3LDQ3NSwxLDMyMiwzNDcsNDcz
LDEsMzIzLDM0Nyw0NzEsMSwzMjQsMzQ3LDQ2OSwxLDMyNSwzNDcsNDY3LDEsMzI2LDM0Nyw0NjUs
MSwzMjcsMzQ3LDQ2MywxLDMyOCwzNDcsNDYxLDEsMzI5LDM0Nyw0NTksMSwzMzAsMzQ3LDQ1Nywx
LDMzMSwzNDcsNDU1LDEsMzMyLDM0Nyw0NTMsMSwzMzMsMzQ3LDQ1MSwxLDMzNCwzNDcsNDQ5LDEs
MzM1LDM0Nyw0NDcsMSwzMzYsMzQ3LDQ0NSwxLDMzNywzNDcsNDQzLDEsMzM4LDM0Nyw0NDEsMSwz
MzksMzQ3LDQyNiwxLDM0MCwzNDcsNDI0LDEsMzQxLDM0Nyw0MjIsMSwzNDIsMzQ3LDQyMSwxLDM0
MywzNDcsNDIwLDEsMzQ0LDM0Nyw0MTksMSwzNDUsMzQ3LDQxOCwxLDM0NiwzNDcsNDE3LDEsMzQ3
LDM0Nyw0MTYsMSwzNDgsMzQ3LDQxNCwxLDM0OSwzNDcsNDEyLDEsMzUwLDM0Nyw0MTAsMSwzNTEs
MzQ3LDQwOCwxLDM1MiwzNDcsNDA2LDEsMzUzLDM0Nyw0MDQsMSwzNTQsMzQ3LDQwMiwxLDM1NSwz
NDcsNDAwLDEsMzU2LDM0NywzOTgsMSwzNTcsMzQ3LDM5NSwxLDM1OCwzNDcsMzkzLDEsMzU5LDM0
NywzOTEsMSwzNjAsMzQ3LDM4OSwxLDM2MSwzNDcsMzg3LDEsMzYyLDM0NywzODUsMSwzNjMsMzQ3
LDM4MywxLDM2NCwzNDcsMzgxLDEsMzY1LDM0NywzODAsMSwzNjYsMzQ3LDM3OSwxLDM2NywzNDcs
Mzc4LDEsMzY4LDM0NywzNzcsMSwzNjksMzQ3LDM3NiwxLDM3MCwzNDcsMzc1LDEsMzcxLDM0Nywz
NzQsMSwzNzIsMzQ3LDM3MywxLDM3MywzNDcsMzcyLDEsMzc0LDM0NywzNzEsMSwzNzUsMzQ3LDM3
MCwxLDM3NiwzNDcsMzY5LDEsMzc3LDM0NywzNjgsMSwzNzgsMzQ3LDM2NywxLDM3OSwzNDcsMzY2
LDEsMzgwLDM0NywzNjUsMSwzODEsMzQ3LDM2NCwxLDM4MiwzNDcsMzYzLDEsMzgzLDM0NywzNjIs
MSwzODQsMzQ3LDM2MSwxLDM4NSwzNDcsMzYwLDEsMzg2LDM0NywzNTksMSwzODcsMzQ3LDM1OCwx
LDM4OCwzNDcsMzU3LDEsMzg5LDM0NywzNTYsMSwzOTAsMzQ3LDM1NSwxLDM5MSwzNDcsMzU0LDEs
MzkyLDM0NywzNTMsMSwzOTMsMzQ3LDM1MiwxLDM5NCwzNDcsMzUxLDEsMzk1LDM0NywzNTAsMSwz
OTYsMzQ3LDM0OSwxLDM5NywzNDcsMzQ4LDEsMzAwLDM0Nyw0MTMsMSwzOTgsMzQ3LDQxNSwxLDM5
OSwzNDcsNDIzLDEsNDAwLDM0Nyw0OTAsMSw0MDEsMzQ3LDQ5MiwxLDQwMiwzNDcsNDkzLDEsNDAz
LDM0Nyw0OTQsMSw0MDQsMzQ3LDQ4OSwxLDQwNSwzNDcsNDg4LDEsNDA2LDM0Nyw0ODcsMSw0MDcs
MzQ3LDQyOSwxLDQwOCwzNDcsMTUyMiwxLDQwOSwzNDcsMTUzMSwxLDQxMCwzNDcsMTU0MywxLDQx
MSwzNDcsMTU0OSwxLDQxMiwzNDcsMTU0NSwxLDQxMywzNDcsMTU1MywxLDQxNCwzNDcsMTU2OSwx
LDQxNSwzNDcsMTU3MiwxLDQxNiwzNDcsMTU5NywxLDQxNywzNDcsMTU4OCwxLDQxOCwzNDcsMTYw
NCwxLDQxOSwzNDcsMTU5MiwxLDQyMCwzNDcsMTYxOCwxLDQyMSwzNDcsMTYxNCwxLDQyMiwzNDcs
NDkxLDEsNDIzLDM0NywxNjEyLDEsNDI0LDM0NywxNjI2LDEsNDI1LDM0NywxNjM3LDEsNDI2LDM0
NywxNjQxLDEsNDI3LDM0NywxNjQzLDEsNDI4LDM0NywxNjUyLDEsNDI5LDM0NywxNjU5LDEsNDMw
LDM0NywxNjYzLDEsNDMxLDM0NywxNjU4LDEsNDMyLDM0NywxNjcxLDEsNDMzLDM0NywxNjgxLDEs
NDM0LDM0NywxNjk0LDEsNDM1LDM0NywxNjgyLDEsNDM2LDM0NywxNjg5LDEsNDM3LDM0NywxNzA1
LDEsNDM4LDM0NywxNzA5LDEsNDM5LDM0NywxNzEzLDEsNDQwLDM0NywxNzE0LDEsNDQxLDM0Nywx
NzM0LDEsNDQyLDM0NywxNzM1LDEsNDQzLDM0NywxNzQzLDEsNDQ0LDM0NywxNzQwLDEsNDQ1LDM0
NywxNzQ1LDEsNDQ2LDM0NywxNzUxLDEsNDQ3LDM0NywxNzY0LDEsNDQ4LDM0NywxNzYxLDEsNDQ5
LDM0NywxNTI1LDAsMCwzNDcsNDI1LDEsNDUwLDM0Nyw0MjcsMSw0NTEsMzQ3LDQyOCwxLDQ1Miwz
NDcsNDMwLDEsNDUzLDM0Nyw0MzEsMSw0NTQsMzQ3LDQzMiwxLDQ1NSwzNDcsNDMzLDEsNDU2LDM0
Nyw0MzQsMSw0NTcsMzQ3LDQzNiwxLDQ1OCwzNDcsNDM3LDEsNDU5LDM0Nyw0MzgsMSw0NjAsMzQ3
LDQ0MCwxLDQ2MSwzNDcsNDQyLDEsNDYyLDM0Nyw0NDQsMSw0NjMsMzQ3LDQ0NiwxLDQ2NCwzNDcs
NDQ4LDEsNDY1LDM0Nyw0NTAsMSw0NjYsMzQ3LDQ1MiwxLDQ2NywzNDcsNDU0LDEsNDY4LDM0Nyw0
NTYsMSw0NjksMzQ3LDQ1OCwxLDQ3MCwzNDcsNDYwLDEsNDcxLDM0Nyw0NjIsMSw0NzIsMzQ3LDQ2
NCwxLDQ3MywzNDcsNDY2LDEsNDc0LDM0Nyw0NjgsMSw0NzUsMzQ3LDQ3MCwxLDQ3NiwzNDcsNDcy
LDEsNDc3LDM0Nyw0NzQsMSw0NzgsMzQ3LDQ3NiwxLDQ3OSwzNDcsNDc4LDEsNDgwLDM0Nyw0ODAs
MSw0ODEsMzQ3LDQ4MiwxLDQ4MiwzNDcsNDg0LDEsNDgzLDM0Nyw0ODUsMSw0ODQsMzQ3LDQ4Niwx
LDQ4NSwzNDcsNDk1LDEsNDg2LDM0Nyw0OTYsMSw0ODcsMzQ3LDQ5OSwxLDQ4OCwzNDcsNTAyLDEs
NDg5LDM0Nyw1MDUsMSw0OTAsMzQ3LDUwOCwxLDQ5MSwzNDcsNTExLDEsNDkyLDM0Nyw1MTQsMSw0
OTMsMzQ3LDUxNywxLDQ5NCwzNDcsNTIwLDEsNDk1LDM0Nyw1MjMsMSw0OTYsMzQ3LDUyNiwxLDQ5
NywzNDcsNTI5LDEsNDk4LDM0OCw2LDAsMCwzNDksNywwLDAsMzUwLDcsMCwwLDM1MSw3LDAsMCwz
NTIsNywwLDAsMzUzLDcsMCwwLDM1NCw3LDAsMCwzNTUsNywwLDAsMzU2LDcsMCwwLDM1Nyw3LDAs
MCwzNTgsNywwLDAsMzU5LDcsMCwwLDM2MCw3LDAsMCwzNjEsNywwLDAsMzYyLDcsMCwwLDM2Myw3
LDAsMCwzNjQsNywwLDAsMzY1LDcsMCwwLDM2Niw3LDAsMCwzNjcsNywwLDAsMzY4LDcsMCwwLDM2
OSw3LDAsMCwzNzAsNywwLDAsMzcxLDcsMCwwLDM3Miw3LDAsMCwzNzMsNywwLDAsMzc0LDcsMCww
LDM3NSw3LDAsMCwzNzYsNywwLDAsMzc3LDcsMCwwLDM3OCw2LDAsMCwzNzksNywwLDAsMzgwLDcs
MCwwLDM4MSw3LDAsMCwzODIsNywwLDAsMzgzLDcsMCwwLDM4NCw3LDAsMCwzODUsNywwLDAsMzg2
LDcsMCwwLDM4Nyw3LDAsMCwzODgsNywwLDAsMzg5LDcsMCwwLDM5MCw3LDAsMCwzOTEsNywwLDAs
MzkyLDcsMCwwLDM5Myw3LDAsMCwzOTQsNywwLDAsMzk1LDcsMCwwLDM5Niw3LDAsMCwzOTcsNyww
LDAsMzk4LDcsMCwwLDM5OSw3LDAsMCw0MDAsNywwLDAsNDAxLDcsMCwwLDQwMiw3LDAsMCw0MDMs
NywwLDAsNDA0LDcsMCwwLDQwNSw3LDAsMCw0MDYsNywwLDAsNDA3LDcsMCwwLDQwOCw3LDAsMCw0
MDksNywwLDAsNDEwLDcsMCwwLDQxMSw3LDAsMCw0MTIsNywwLDAsNDEzLDcsMCwwLDQxNCw3LDAs
MCw0MTUsNywwLDAsNDE2LDcsMCwwLDQxNyw3LDAsMCw0MTgsNywwLDAsNDE5LDcsMCwwLDQyMCw3
LDAsMCw0MjEsNywwLDAsNDIyLDcsMCwwLDQyMyw2LDAsMCw0MjQsNywwLDAsNDI1LDYsMCwwLDQy
Niw3LDAsMCw0MjcsNywwLDAsNDI4LDcsMCwwLDQyOSw0MzUsMCwwLDQzMCw3LDAsMCw0MzEsNyww
LDAsNDMyLDcsMCwwLDQzMyw3LDAsMCw0MzQsNywwLDAsNDM1LDEsMCwwLDQzNSwzMjksMCwwLDQz
NSw0MzksMCwwLDQzNiw3LDAsMCw0MzcsNywwLDAsNDM4LDcsMCwwLDQzOSwxMDc3LDAsMCw0Mzks
MzI5LDAsMCw0MzksMSwwLDAsNDQwLDcsMCwwLDQ0MSw3LDAsMCw0NDIsNywwLDAsNDQzLDcsMCww
LDQ0NCw3LDAsMCw0NDUsNywwLDAsNDQ2LDcsMCwwLDQ0Nyw3LDAsMCw0NDgsNywwLDAsNDQ5LDcs
MCwwLDQ1MCw3LDAsMCw0NTEsNywwLDAsNDUyLDcsMCwwLDQ1Myw3LDAsMCw0NTQsNywwLDAsNDU1
LDcsMCwwLDQ1Niw3LDAsMCw0NTcsNywwLDAsNDU4LDcsMCwwLDQ1OSw3LDAsMCw0NjAsNywwLDAs
NDYxLDcsMCwwLDQ2Miw3LDAsMCw0NjMsNywwLDAsNDY0LDcsMCwwLDQ2NSw3LDAsMCw0NjYsNyww
LDAsNDY3LDcsMCwwLDQ2OCw3LDAsMCw0NjksNywwLDAsNDcwLDcsMCwwLDQ3MSw3LDAsMCw0NzIs
NywwLDAsNDczLDcsMCwwLDQ3NCw3LDAsMCw0NzUsNywwLDAsNDc2LDcsMCwwLDQ3Nyw3LDAsMCw0
NzgsNywwLDAsNDc5LDcsMCwwLDQ4MCw3LDAsMCw0ODEsNywwLDAsNDgyLDcsMCwwLDQ4Myw3LDAs
MCw0ODQsNywwLDAsNDg1LDcsMCwwLDQ4Niw3LDAsMCw0ODcsNywwLDAsNDg4LDcsMCwwLDQ4OSw3
LDAsMCw0OTAsNywwLDAsNDkxLDcsMCwwLDQ5Miw3LDAsMCw0OTMsNywwLDAsNDk0LDcsMCwwLDQ5
NSw3LDAsMCw0OTYsNDk4LDEsMzAxLDQ5Niw0OTcsMCwwLDQ5NiwzMjksMCwwLDQ5NiwzMzYsMCww
LDQ5NywxMCwwLDAsNDk4LDQsMCwwLDQ5OSw1MDEsMSwzMDEsNDk5LDUwMCwwLDAsNDk5LDMyOSww
LDAsNDk5LDMzNiwwLDAsNTAwLDEwLDAsMCw1MDEsNCwwLDAsNTAyLDUwNCwxLDMwMSw1MDIsNTAz
LDAsMCw1MDIsMzI5LDAsMCw1MDIsMzM2LDAsMCw1MDMsMTAsMCwwLDUwNCw0LDAsMCw1MDUsMzI5
LDAsMCw1MDUsNTA2LDAsMCw1MDUsNTA3LDEsMzAxLDUwNSwzMzYsMCwwLDUwNiwxMCwwLDAsNTA3
LDQsMCwwLDUwOCw1MDksMCwwLDUwOCwzMjksMCwwLDUwOCwzMzYsMCwwLDUwOCw1MTAsMSwzMDEs
NTA5LDEwLDAsMCw1MTAsNCwwLDAsNTExLDUxMiwwLDAsNTExLDMyOSwwLDAsNTExLDMzNiwwLDAs
NTExLDUxMywxLDMwMSw1MTIsMTAsMCwwLDUxMyw0LDAsMCw1MTQsNTE2LDEsMzAxLDUxNCw1MTUs
MCwwLDUxNCwzMjksMCwwLDUxNCwzMzYsMCwwLDUxNSwxMCwwLDAsNTE2LDQsMCwwLDUxNyw1MTgs
MCwwLDUxNyw1MTksMSwzMDEsNTE3LDMyOSwwLDAsNTE3LDMzNiwwLDAsNTE4LDEwLDAsMCw1MTks
NCwwLDAsNTIwLDUyMiwxLDMwMSw1MjAsMzM2LDAsMCw1MjAsMzI5LDAsMCw1MjAsNTIxLDAsMCw1
MjEsMTAsMCwwLDUyMiw0LDAsMCw1MjMsNTI1LDEsMzAxLDUyMywzMzYsMCwwLDUyMywzMjksMCww
LDUyMyw1MjQsMCwwLDUyNCwxMCwwLDAsNTI1LDQsMCwwLDUyNiw1MjgsMSwzMDEsNTI2LDMzNiww
LDAsNTI2LDMyOSwwLDAsNTI2LDUyNywwLDAsNTI3LDEwLDAsMCw1MjgsNCwwLDAsNTI5LDUzMSwx
LDMwMSw1MjksMzM2LDAsMCw1MjksMzI5LDAsMCw1MjksNTMwLDAsMCw1MzAsMTAsMCwwLDUzMSw0
LDAsMCw1MzIsNTMzLDAsMCw1MzIsMzI5LDAsMCw1MzIsNTM2LDAsMCw1MzMsMTAsMCwwLDUzNCwz
MjksMCwwLDUzNCw1MzUsMCwwLDUzNCw1MzYsMCwwLDUzNSwxMCwwLDAsNTM2LDMyOSwwLDAsNTM2
LDk0NiwwLDAsNTM2LDEsMCwwLDUzNiwxMDk2LDAsMCw1MzcsNTM2LDAsMCw1MzcsMzI5LDAsMCw1
MzcsNTM4LDAsMCw1MzgsMTAsMCwwLDUzOSw1MzYsMCwwLDUzOSwzMjksMCwwLDUzOSw1NDIsMCww
LDU0MCwxMDk2LDAsMCw1NDAsMzI5LDAsMCw1NDAsNTUwLDAsMCw1NDEsNTQzLDAsMCw1NDEsNTM2
LDAsMCw1NDEsMzI5LDAsMCw1NDIsMTAsMCwwLDU0MywxMCwwLDAsNTQ0LDUzNiwwLDAsNTQ0LDMy
OSwwLDAsNTQ0LDU0NSwwLDAsNTQ1LDEwLDAsMCw1NDYsMTA5NiwwLDAsNTQ2LDMyOSwwLDAsNTQ2
LDU3NCwwLDAsNTQ3LDUzNiwwLDAsNTQ3LDMyOSwwLDAsNTQ3LDU0OSwwLDAsNTQ4LDMyOSwwLDAs
NTQ4LDEwOTYsMCwwLDU0OCw1NjAsMCwwLDU0OSwxMCwwLDAsNTUwLDEzLDAsMCw1NTAsNTU4LDAs
MCw1NTAsNTUzLDAsMCw1NTEsNTM2LDAsMCw1NTEsMzI5LDAsMCw1NTEsNTU0LDAsMCw1NTIsNTM2
LDAsMCw1NTIsNTU2LDAsMCw1NTIsMzI5LDAsMCw1NTQsMTAsMCwwLDU1NSwxMDk2LDAsMCw1NTUs
MzI5LDAsMCw1NTUsNTY5LDAsMCw1NTYsMTAsMCwwLDU1NywzMjksMCwwLDU1Nyw1NjIsMCwwLDU1
NywxMDk2LDAsMCw1NTgsMzAsMCwwLDU1OSwxMDk2LDAsMCw1NTksMzI5LDAsMCw1NTksNTcwLDAs
MCw1NjAsNTY4LDAsMCw1NjAsMTMsMCwwLDU2MCw1NjEsMCwwLDU2Miw1NjcsMCwwLDU2MiwxMyww
LDAsNTYyLDU2NSwwLDAsNTYzLDU3MSwwLDAsNTYzLDUzNiwwLDAsNTYzLDMyOSwwLDAsNTY0LDEw
OTYsMCwwLDU2NCwzMjksMCwwLDU2NCw1ODQsMCwwLDU2NiwzMjksMCwwLDU2NiwxMDk2LDAsMCw1
NjYsNTgxLDAsMCw1NjcsMzAsMCwwLDU2OCwzMCwwLDAsNTY5LDEzLDAsMCw1NjksNTc2LDAsMCw1
NjksNTcyLDAsMCw1NzAsNTc3LDAsMCw1NzAsMTMsMCwwLDU3MCw1NzMsMCwwLDU3MSwxMCwwLDAs
NTc0LDEzLDAsMCw1NzQsNTc1LDAsMCw1NzQsNTgwLDAsMCw1NzYsMzAsMCwwLDU3NywzMCwwLDAs
NTc4LDMyOSwwLDAsNTc4LDU5MiwwLDAsNTc4LDEwOTYsMCwwLDU3OSw1ODcsMCwwLDU3OSwxMDk2
LDAsMCw1NzksMzI5LDAsMCw1ODAsMzAsMCwwLDU4MSw1ODUsMCwwLDU4MSwxMywwLDAsNTgxLDU4
MiwwLDAsNTgzLDU5MCwwLDAsNTgzLDEwODksMCwwLDU4MywzMjksMCwwLDU4NCw1OTUsMCwwLDU4
NCw1ODYsMCwwLDU4NCwxMywwLDAsNTg1LDMwLDAsMCw1ODcsMTMsMCwwLDU4Nyw1OTcsMCwwLDU4
Nyw1ODgsMCwwLDU4OSwxMDk2LDAsMCw1ODksMzI5LDAsMCw1ODksNjAyLDAsMCw1OTAsMTMsMCww
LDU5MCw1OTksMCwwLDU5MCw1OTEsMCwwLDU5Miw1OTYsMCwwLDU5MiwxMywwLDAsNTkyLDU5Myww
LDAsNTk0LDUzNiwwLDAsNTk0LDMyOSwwLDAsNTk0LDU5OCwwLDAsNTk1LDMwLDAsMCw1OTYsMzAs
MCwwLDU5NywzMCwwLDAsNTk4LDEwLDAsMCw1OTksMzAsMCwwLDYwMCwzMjksMCwwLDYwMCwxMDk2
LDAsMCw2MDAsNjA0LDAsMCw2MDEsMTA5NiwwLDAsNjAxLDYxNiwwLDAsNjAxLDMyOSwwLDAsNjAy
LDEzLDAsMCw2MDIsNjA2LDAsMCw2MDIsNjAzLDAsMCw2MDQsMTMsMCwwLDYwNCw2MDgsMCwwLDYw
NCw2MDUsMCwwLDYwNiwzMCwwLDAsNjA3LDEwOTYsMCwwLDYwNywzMjksMCwwLDYwNyw2MTMsMCww
LDYwOCwzMCwwLDAsNjA5LDYyMywwLDAsNjA5LDEwOTYsMCwwLDYwOSwzMjksMCwwLDYxMCwxMDk2
LDAsMCw2MTAsMzI5LDAsMCw2MTAsNjI4LDAsMCw2MTEsMTA5NiwwLDAsNjExLDMyOSwwLDAsNjEx
LDYyMSwwLDAsNjEyLDEwOTYsMCwwLDYxMiw2MjUsMCwwLDYxMiwzMjksMCwwLDYxMyw2MTcsMCww
LDYxMyw2MTUsMCwwLDYxMywxMywwLDAsNjE0LDMyOSwwLDAsNjE0LDUzNiwwLDAsNjE0LDYyMCww
LDAsNjE2LDYxOCwwLDAsNjE2LDYyNiwwLDAsNjE2LDEzLDAsMCw2MTcsMzAsMCwwLDYxOSw2MzIs
MCwwLDYxOSwzMjksMCwwLDYxOSwxMDk2LDAsMCw2MjAsMTAsMCwwLDYyMSw2MjQsMCwwLDYyMSw2
MjIsMCwwLDYyMSwxMywwLDAsNjIzLDYzMSwwLDAsNjIzLDYyNywwLDAsNjIzLDEzLDAsMCw2MjQs
MzAsMCwwLDYyNSwxMywwLDAsNjI1LDYyOSwwLDAsNjI1LDYzNSwwLDAsNjI2LDMwLDAsMCw2Mjgs
NjMwLDAsMCw2MjgsMTMsMCwwLDYyOCw2MzcsMCwwLDYzMSwzMCwwLDAsNjMyLDY0MywwLDAsNjMy
LDYzNCwwLDAsNjMyLDEzLDAsMCw2MzMsMzI5LDAsMCw2MzMsNjQ0LDAsMCw2MzMsMTA5NiwwLDAs
NjM1LDMwLDAsMCw2MzYsNjQwLDAsMCw2MzYsMzM2LDAsMCw2MzYsMzI4LDEsMzAxLDYzNiwzMjks
MCwwLDYzNywzMCwwLDAsNjM4LDMyOSwwLDAsNjM4LDY1NCwwLDAsNjM4LDEwODksMCwwLDYzOSw2
NTEsMCwwLDYzOSwzMjksMCwwLDYzOSwxMDk2LDAsMCw2NDAsMTAsMCwwLDY0MSw2NDcsMCwwLDY0
MSwzMjksMCwwLDY0MSwxMDk2LDAsMCw2NDIsNjY0LDAsMCw2NDIsMzI5LDAsMCw2NDIsMTA5Niww
LDAsNjQzLDMwLDAsMCw2NDQsNjQ2LDAsMCw2NDQsNjUwLDAsMCw2NDQsMTMsMCwwLDY0NSwzMjks
MCwwLDY0NSw2NDgsMCwwLDY0NSwzMzYsMCwwLDY0NSwzMjgsMSwzMDEsNjQ3LDY1MywwLDAsNjQ3
LDY0OSwwLDAsNjQ3LDEzLDAsMCw2NDgsMTAsMCwwLDY1MCwzMCwwLDAsNjUxLDY1OCwwLDAsNjUx
LDY1NSwwLDAsNjUxLDEzLDAsMCw2NTIsMzI5LDAsMCw2NTIsNjYxLDAsMCw2NTIsMTA5NiwwLDAs
NjUzLDMwLDAsMCw2NTQsNjU2LDAsMCw2NTQsMTMsMCwwLDY1NCw2NjAsMCwwLDY1Nyw2NjgsMCww
LDY1NywzMjksMCwwLDY1NywxMDk2LDAsMCw2NTgsMzAsMCwwLDY1OSw2NjMsMCwwLDY1OSwzMjks
MCwwLDY1OSw1MzYsMCwwLDY2MCwzMCwwLDAsNjYxLDY3MywwLDAsNjYxLDY2NSwwLDAsNjYxLDEz
LDAsMCw2NjIsMTA5NiwwLDAsNjYyLDMyOSwwLDAsNjYyLDY3MCwwLDAsNjYzLDEwLDAsMCw2NjQs
NjY3LDAsMCw2NjQsMTMsMCwwLDY2NCw2NzgsMCwwLDY2Niw2ODIsMCwwLDY2NiwxMDk2LDAsMCw2
NjYsMzI5LDAsMCw2NjgsNjc2LDAsMCw2NjgsNjcxLDAsMCw2NjgsMTMsMCwwLDY2OSwzMjksMCww
LDY2OSwxMDg5LDAsMCw2NjksNjc5LDAsMCw2NzAsNjcyLDAsMCw2NzAsNjgwLDAsMCw2NzAsMTMs
MCwwLDY3MywzMCwwLDAsNjc0LDMyOSwwLDAsNjc0LDUzNiwwLDAsNjc0LDY3NywwLDAsNjc1LDY4
NiwwLDAsNjc1LDMyOSwwLDAsNjc1LDEwOTYsMCwwLDY3NiwzMCwwLDAsNjc3LDEwLDAsMCw2Nzgs
MzAsMCwwLDY3OSw2ODEsMCwwLDY3OSw2ODUsMCwwLDY3OSwxMywwLDAsNjgwLDMwLDAsMCw2ODIs
Njg0LDAsMCw2ODIsNjg3LDAsMCw2ODIsMTMsMCwwLDY4Myw2OTcsMCwwLDY4MywzMjksMCwwLDY4
MywxMDk2LDAsMCw2ODUsMzAsMCwwLDY4NiwxMywwLDAsNjg2LDY5MSwwLDAsNjg2LDY4OCwwLDAs
Njg3LDMwLDAsMCw2ODksMTA4OSwwLDAsNjg5LDMyOSwwLDAsNjg5LDY5MiwwLDAsNjkwLDcyMiwx
LDQ5OSw2OTAsODAyLDAsMCw2OTAsMzI5LDAsMCw2OTAsNzA3LDAsMCw2OTEsMzAsMCwwLDY5Miwx
MywwLDAsNjkyLDcwMCwwLDAsNjkyLDY5NiwwLDAsNjkzLDEwOTYsMCwwLDY5MywzMjksMCwwLDY5
Myw3MDUsMCwwLDY5NCw1MzYsMCwwLDY5NCwzMjksMCwwLDY5NCw2OTksMCwwLDY5NSwxMDg5LDAs
MCw2OTUsMzI5LDAsMCw2OTUsNzAzLDAsMCw2OTcsMTMsMCwwLDY5Nyw3MDEsMCwwLDY5Nyw2OTgs
MCwwLDY5OSwxMCwwLDAsNzAwLDMwLDAsMCw3MDEsMzAsMCwwLDcwMiw4MDIsMCwwLDcwMiwzMjks
MCwwLDcwMiw3MjksMSw0OTksNzAyLDcxNSwwLDAsNzAzLDEzLDAsMCw3MDMsNzEwLDAsMCw3MDMs
NzA2LDAsMCw3MDQsMTA4OSwwLDAsNzA0LDMyOSwwLDAsNzA0LDcxOCwwLDAsNzA1LDEzLDAsMCw3
MDUsNzEzLDAsMCw3MDUsNzA5LDAsMCw3MDcsMTMsMCwwLDcwNyw3MTEsMCwwLDcwNyw3MDgsMCww
LDcxMCwzMCwwLDAsNzExLDMwLDAsMCw3MTIsNzI0LDAsMCw3MTIsMTA5NiwwLDAsNzEyLDMyOSww
LDAsNzEzLDMwLDAsMCw3MTQsNzE5LDAsMCw3MTQsNzI3LDAsMCw3MTQsMTUxMSwxLDUwMCw3MTQs
NzE5LDEsMzAxLDcxNCwxMjI2LDEsNDk5LDcxNSw3MjEsMCwwLDcxNSwxMywwLDAsNzE1LDcxNyww
LDAsNzE2LDEwOTYsMCwwLDcxNiwzMjksMCwwLDcxNiw3MjYsMCwwLDcxOCw3MzIsMCwwLDcxOCwx
MywwLDAsNzE4LDcyMCwwLDAsNzE5LDQsMCwwLDcyMSwzMCwwLDAsNzIyLDczMSwxLDUwMSw3MjIs
NzU1LDEsNTAyLDcyMiw3ODAsMCwwLDcyMyw3MzUsMCwwLDcyMywzMjksMCwwLDcyMywxMDg5LDAs
MCw3MjQsMTMsMCwwLDcyNCw3MjgsMCwwLDcyNCw3MjUsMCwwLDcyNiw3MzAsMCwwLDcyNiwxMyww
LDAsNzI2LDczMywwLDAsNzI3LDEsMCwwLDcyNywzMjksMCwwLDcyNyw5NDYsMCwwLDcyNyw3Mzcs
MCwwLDcyOCwzMCwwLDAsNzI5LDc3MCwxLDUwMiw3MjksNzQxLDEsNTAxLDcyOSw3ODYsMCwwLDcz
MSw3MzgsMCwwLDczMSwxMDk2LDAsMCw3MzEsMzI5LDAsMCw3MzIsMzAsMCwwLDczMywzMCwwLDAs
NzM0LDMyOSwwLDAsNzM0LDEwOTYsMCwwLDczNCw3NDMsMCwwLDczNSwxMywwLDAsNzM1LDc0NCww
LDAsNzM1LDczNiwwLDAsNzM3LDEsMCwwLDczNyw3NDAsMCwwLDczNywzMjksMCwwLDczNyw5NDYs
MCwwLDczOCwxMywwLDAsNzM4LDc0NiwwLDAsNzM4LDczOSwwLDAsNzQwLDM1LDAsMCw3NDEsMTA5
NiwwLDAsNzQxLDc1MiwwLDAsNzQxLDMyOSwwLDAsNzQyLDEwODksMCwwLDc0MiwzMjksMCwwLDc0
Miw3NjAsMCwwLDc0MywxMywwLDAsNzQzLDc0NywwLDAsNzQzLDc0NSwwLDAsNzQ0LDMwLDAsMCw3
NDYsMzAsMCwwLDc0NywzMCwwLDAsNzQ4LDc1MywwLDAsNzQ4LDUzNiwwLDAsNzQ4LDMyOSwwLDAs
NzQ5LDgwMiwwLDAsNzQ5LDc3MywxLDQ5OSw3NDksMzI5LDAsMCw3NDksNzU2LDAsMCw3NTAsMzI5
LDAsMCw3NTAsNzY0LDAsMCw3NTAsMTA4OSwwLDAsNzUxLDEwOTYsMCwwLDc1MSwzMjksMCwwLDc1
MSw3NjMsMCwwLDc1Miw3NTksMCwwLDc1MiwxMywwLDAsNzUyLDc1NCwwLDAsNzUzLDEwLDAsMCw3
NTUsNCwwLDAsNzU2LDc1NywwLDAsNzU2LDEzLDAsMCw3NTYsNzYxLDAsMCw3NTgsMzI5LDAsMCw3
NTgsNzcyLDAsMCw3NTgsMTA5NiwwLDAsNzU5LDMwLDAsMCw3NjAsMTMsMCwwLDc2MCw3NjIsMCww
LDc2MCw3NjYsMCwwLDc2MSwzMCwwLDAsNzYzLDEzLDAsMCw3NjMsNzY1LDAsMCw3NjMsNzY5LDAs
MCw3NjQsMTMsMCwwLDc2NCw3NzEsMCwwLDc2NCw3NjcsMCwwLDc2NiwzMCwwLDAsNzY4LDEwOTYs
MCwwLDc2OCwzMjksMCwwLDc2OCw3NzcsMCwwLDc2OSwzMCwwLDAsNzcwLDQsMCwwLDc3MSwzMCww
LDAsNzcyLDEzLDAsMCw3NzIsNzc0LDAsMCw3NzIsNzc2LDAsMCw3NzMsNzg0LDEsNTAxLDc3Myw3
NzgsMSw1MDIsNzczLDgxNywwLDAsNzc1LDc4OCwwLDAsNzc1LDMyOSwwLDAsNzc1LDEwOTYsMCww
LDc3NiwzMCwwLDAsNzc3LDEzLDAsMCw3NzcsNzgyLDAsMCw3NzcsNzc5LDAsMCw3NzgsNCwwLDAs
NzgwLDk1NywwLDAsNzgwLDc4MywwLDAsNzgwLDMyOSwwLDAsNzgwLDEsMCwwLDc4MCw3OTEsMCww
LDc4MSwzMjksMCwwLDc4MSwxMDk2LDAsMCw3ODEsNzkyLDAsMCw3ODIsMzAsMCwwLDc4MywzNSww
LDAsNzg0LDMyOSwwLDAsNzg0LDc5NywwLDAsNzg0LDEwOTYsMCwwLDc4NSwzMjksMCwwLDc4NSw4
MDMsMCwwLDc4NSwxMDk2LDAsMCw3ODYsNzk1LDAsMCw3ODYsOTU3LDAsMCw3ODYsNzkwLDAsMCw3
ODYsMSwwLDAsNzg2LDMyOSwwLDAsNzg3LDEwOTYsMCwwLDc4NywzMjksMCwwLDc4Nyw4MDAsMCww
LDc4OCw3ODksMCwwLDc4OCwxMywwLDAsNzg4LDc5MywwLDAsNzkwLDM1LDAsMCw3OTEsMiwwLDAs
NzkyLDc5NiwwLDAsNzkyLDEzLDAsMCw3OTIsNzk0LDAsMCw3OTMsMzAsMCwwLDc5NSwyLDAsMCw3
OTYsMzAsMCwwLDc5Nyw4MDYsMCwwLDc5Nyw3OTgsMCwwLDc5NywxMywwLDAsNzk5LDUzNiwwLDAs
Nzk5LDMyOSwwLDAsNzk5LDgwNywwLDAsODAwLDEzLDAsMCw4MDAsODA5LDAsMCw4MDAsODAxLDAs
MCw4MDIsMSwwLDAsODAyLDMyOSwwLDAsODAyLDk0NiwwLDAsODAyLDEwOTYsMCwwLDgwMyw4MDUs
MCwwLDgwMywxMywwLDAsODAzLDgwNCwwLDAsODA1LDMwLDAsMCw4MDYsMzAsMCwwLDgwNywxMCww
LDAsODA4LDEwOTYsMCwwLDgwOCwzMjksMCwwLDgwOCw4MTEsMCwwLDgwOSwzMCwwLDAsODEwLDUz
NiwwLDAsODEwLDMyOSwwLDAsODEwLDgxNCwwLDAsODExLDgxNiwwLDAsODExLDEzLDAsMCw4MTEs
ODEzLDAsMCw4MTIsMzI5LDAsMCw4MTIsMTA5NiwwLDAsODEyLDgyNCwwLDAsODE0LDEwLDAsMCw4
MTUsMTA5NiwwLDAsODE1LDMyOSwwLDAsODE1LDgyMiwwLDAsODE2LDMwLDAsMCw4MTcsOTU3LDAs
MCw4MTcsMzI5LDAsMCw4MTcsMSwwLDAsODE3LDgyNSwwLDAsODE4LDEwOTYsMCwwLDgxOCw4NDgs
MCwwLDgxOCwzMjksMCwwLDgxOSw4MzIsMCwwLDgxOSwxMDk2LDAsMCw4MTksMzI5LDAsMCw4MjAs
NTM2LDAsMCw4MjAsMzI5LDAsMCw4MjAsODMwLDAsMCw4MjEsMTA5NiwwLDAsODIxLDMyOSwwLDAs
ODIxLDgzNSwwLDAsODIyLDEzLDAsMCw4MjIsODI4LDAsMCw4MjIsODI2LDAsMCw4MjMsMzI5LDAs
MCw4MjMsODM4LDAsMCw4MjMsMTA5NiwwLDAsODI0LDgzNiwwLDAsODI0LDEzLDAsMCw4MjQsODMx
LDAsMCw4MjUsMiwwLDAsODI1LDgyNywwLDAsODI3LDEsMCwwLDgyNywzMjksMCwwLDgyNyw5NTcs
MCwwLDgyNyw4MjksMCwwLDgyOCwzMCwwLDAsODI5LDM1LDAsMCw4MzAsMTAsMCwwLDgzMiwxMyww
LDAsODMyLDg0MCwwLDAsODMyLDgzNCwwLDAsODMzLDEwOTYsMCwwLDgzMyw4NDMsMCwwLDgzMywz
MjksMCwwLDgzNSwxMywwLDAsODM1LDg0NywwLDAsODM1LDgzNywwLDAsODM2LDMwLDAsMCw4Mzgs
MTMsMCwwLDgzOCw4NDQsMCwwLDgzOCw4NDEsMCwwLDgzOSw4NDIsMCwwLDgzOSw1MzYsMCwwLDgz
OSwzMjksMCwwLDg0MCwzMCwwLDAsODQyLDEwLDAsMCw4NDMsMTMsMCwwLDg0Myw4NTEsMCwwLDg0
Myw4NDUsMCwwLDg0NCwzMCwwLDAsODQ2LDEwOTYsMCwwLDg0NiwzMjksMCwwLDg0Niw4NTcsMCww
LDg0NywzMCwwLDAsODQ4LDg1MywwLDAsODQ4LDg2MSwwLDAsODQ4LDEzLDAsMCw4NDksMTA5Niww
LDAsODQ5LDMyOSwwLDAsODQ5LDg2MCwwLDAsODUwLDUzNiwwLDAsODUwLDMyOSwwLDAsODUwLDg1
NCwwLDAsODUxLDMwLDAsMCw4NTIsMTA5NiwwLDAsODUyLDMyOSwwLDAsODUyLDg1NiwwLDAsODU0
LDEwLDAsMCw4NTUsMzI5LDAsMCw4NTUsMTA5NiwwLDAsODU1LDg2NSwwLDAsODU2LDEzLDAsMCw4
NTYsODYyLDAsMCw4NTYsODU4LDAsMCw4NTcsODY5LDAsMCw4NTcsMTMsMCwwLDg1Nyw4NTksMCww
LDg2MCwxMywwLDAsODYwLDg2NywwLDAsODYwLDg2NCwwLDAsODYxLDMwLDAsMCw4NjIsMzAsMCww
LDg2Myw4NzksMCwwLDg2NSwxMywwLDAsODY1LDg3MiwwLDAsODY1LDg2OCwwLDAsODY2LDg3Nyww
LDAsODY2LDEwOTYsMCwwLDg2NiwzMjksMCwwLDg2NywzMCwwLDAsODY5LDMwLDAsMCw4NzAsOTgw
LDAsMCw4NzAsMzI5LDAsMCw4NzAsODc1LDAsMCw4NzAsODg5LDEsNDk5LDg3MSwxMDg3LDAsMCw4
NzEsODczLDAsMCw4NzIsMzAsMCwwLDg3Myw4OTAsMCwwLDg3MywzMjksMCwwLDg3Myw4ODQsMCww
LDg3NCw5NTIsMCwwLDg3NCwxLDAsMCw4NzQsMzI5LDAsMCw4NzUsODc2LDAsMCw4NzUsMTMsMCww
LDg3NSw4ODMsMCwwLDg3Nyw4NzgsMCwwLDg3NywxMywwLDAsODc3LDg4MSwwLDAsODc5LDEsMCww
LDg3OSwzMjksMCwwLDg3OSw5NTAsMCwwLDg3OSw4ODUsMCwwLDg4MCwxLDAsMCw4ODAsMjMxNSww
LDAsODgwLDMyOSwwLDAsODgxLDMwLDAsMCw4ODIsMzI4LDEsMzAxLDg4Miw5MDAsMCwwLDg4Miwz
MjgsMCwwLDg4MywzMCwwLDAsODg0LDg4NiwwLDAsODg1LDM1LDAsMCw4ODcsOTEzLDAsMCw4ODcs
MzI4LDAsMCw4ODcsMzI4LDEsMzAxLDg4OCwxMDk2LDAsMCw4ODgsMzI5LDAsMCw4ODgsODkyLDAs
MCw4ODksOTM0LDEsNTAzLDg4OSw5NjEsMCwwLDg4OSw5MTQsMSw1MDQsODg5LDg5MywxLDUwMSw4
OTAsMSwwLDAsODkwLDMyOSwwLDAsODkxLDUzNiwwLDAsODkxLDg5OCwwLDAsODkxLDMyOSwwLDAs
ODkyLDEzLDAsMCw4OTIsODk3LDAsMCw4OTIsODk0LDAsMCw4OTMsMzI5LDAsMCw4OTMsMTA5Niww
LDAsODkzLDkwMSwwLDAsODk1LDMyOSwwLDAsODk1LDkwMiwwLDAsODk1LDEwOTYsMCwwLDg5Niwz
MjksMCwwLDg5Niw1MzYsMCwwLDg5Niw4OTksMCwwLDg5NywzMCwwLDAsODk4LDEwLDAsMCw4OTks
MTAsMCwwLDkwMCwzMjksMCwwLDkwMCw5NDYsMCwwLDkwMCw5MTAsMCwwLDkwMCwxLDAsMCw5MDEs
MTMsMCwwLDkwMSw5MDUsMCwwLDkwMSw5MDMsMCwwLDkwMiwxMywwLDAsOTAyLDkwOCwwLDAsOTAy
LDkwNCwwLDAsOTA1LDMwLDAsMCw5MDYsOTE1LDAsMCw5MDYsMTA5NiwwLDAsOTA2LDMyOSwwLDAs
OTA3LDMyOSwwLDAsOTA3LDUzNiwwLDAsOTA3LDkxMiwwLDAsOTA4LDMwLDAsMCw5MDksMzI5LDAs
MCw5MDksOTExLDAsMCw5MDksOTIzLDEsMzAxLDkwOSwzMzYsMCwwLDkxMCwxLDAsMCw5MTAsMzI5
LDAsMCw5MTAsOTQ2LDAsMCw5MTEsMTAsMCwwLDkxMiwxMCwwLDAsOTEzLDk0NiwwLDAsOTEzLDEs
MCwwLDkxMywzMjksMCwwLDkxMyw5MTgsMCwwLDkxNCw5MjEsMCwwLDkxNCwzMjksMCwwLDkxNCwx
MDk2LDAsMCw5MTUsOTE3LDAsMCw5MTUsOTE2LDAsMCw5MTUsMTMsMCwwLDkxNywzMCwwLDAsOTE4
LDEsMCwwLDkxOCwzMjksMCwwLDkxOCw5NDYsMCwwLDkxOSwxMDk2LDAsMCw5MTksMzI5LDAsMCw5
MTksOTQwLDAsMCw5MjAsMzM2LDAsMCw5MjAsMzI5LDAsMCw5MjAsOTI5LDAsMCw5MjAsOTMzLDEs
MzAxLDkyMSwxMywwLDAsOTIxLDkyNywwLDAsOTIxLDkyMiwwLDAsOTIzLDQsMCwwLDkyNCw5NDcs
MSwzMDEsOTI0LDk1MywxLDQ5OSw5MjQsOTM5LDAsMCw5MjQsOTQ3LDAsMCw5MjQsOTc4LDAsMCw5
MjUsOTI2LDAsMCw5MjUsOTMyLDEsMzAxLDkyNSwzMjksMCwwLDkyNSwzMzYsMCwwLDkyNiwxMCww
LDAsOTI3LDMwLDAsMCw5MjgsMzI5LDAsMCw5MjgsOTM1LDAsMCw5MjgsMTA5NiwwLDAsOTI5LDEw
LDAsMCw5MzAsMTA5MSwwLDAsOTMwLDkzOCwwLDAsOTMwLDkzOCwwLDAsOTMxLDk1NSwwLDAsOTMx
LDkzNiwxLDUwNSw5MzIsNCwwLDAsOTMzLDQsMCwwLDkzNCwxMDk2LDAsMCw5MzQsMzI5LDAsMCw5
MzQsOTQ1LDAsMCw5MzUsMTMsMCwwLDkzNSw5NDEsMCwwLDkzNSw5MzcsMCwwLDkzNiwxMTk1LDAs
MCw5MzYsOTQ5LDAsMCw5MzYsOTQ0LDAsMCw5MzgsNTM2LDAsMCw5MzgsMzI5LDAsMCw5MzgsOTQy
LDAsMCw5MzksMSwwLDAsOTM5LDMyOSwwLDAsOTM5LDk1MywwLDAsOTQwLDk0MywwLDAsOTQwLDEz
LDAsMCw5NDAsNjMxLDAsMCw5NDEsMzAsMCwwLDk0MiwxMCwwLDAsOTQ0LDQ4LDAsMCw5NDQsOTQ5
LDAsMCw5NDUsOTUxLDAsMCw5NDUsOTQ4LDAsMCw5NDUsMTMsMCwwLDk0Niw5MzAsMSw1MDYsOTQ2
LDIyMTIsMSwzMDAsOTQ2LDkzMCwxLDUwNyw5NDYsOTI4LDEsNTA4LDk0NiwxMDE2LDAsMCw5NDYs
OTg0LDEsNTA5LDk0NiwzMjgsMCwwLDk0NiwzMjgsMSwzMDEsOTQ2LDk2OSwxLDUxMCw5NDYsODk1
LDEsNTExLDk0Niw4ODgsMSw1MTIsOTQ3LDQsMCwwLDk0OSw5NDQsMCwwLDk0OSw0OCwwLDAsOTUw
LDEwNzEsMSw1MTMsOTUwLDEwNTEsMSw1MTQsOTUwLDEwMzUsMSw1MTUsOTUwLDEwMjUsMSw1MTYs
OTUwLDEwMDAsMSw1MTcsOTUwLDkyMCwxLDUxOCw5NTAsOTg1LDEsNTE5LDk1MCw5NTksMSw1MTAs
OTUwLDEwODIsMSw1MjAsOTUwLDExNTcsMCwwLDk1MCwxMDkyLDEsNTIxLDk1MCwxMTA2LDEsNTIy
LDk1MCwyMjM3LDEsMzAwLDk1MSwzMCwwLDAsOTUyLDk2NiwwLDAsOTUyLDIzMTUsMSwzMDAsOTUy
LDMyOCwxLDUyMyw5NTIsOTU0LDEsMzAxLDk1Myw5NjMsMCwwLDk1Myw5NTYsMSw1MDIsOTUzLDky
NCwxLDMwMCw5NTQsNCwwLDAsOTU1LDEsMCwwLDk1NSw5NTgsMCwwLDk1NSwzMjksMCwwLDk1Niw0
LDAsMCw5NTcsOTg4LDAsMCw5NTcsOTYyLDEsNTI0LDk1OCwzMjksMCwwLDk1OCwxLDAsMCw5NTks
OTYwLDAsMCw5NTksMzI5LDAsMCw5NTksOTY0LDEsMzAxLDk1OSwzMzYsMCwwLDk2MCwxMCwwLDAs
OTYxLDk2NSwwLDAsOTYxLDk1NywwLDAsOTYxLDMyOSwwLDAsOTYxLDEsMCwwLDk2MiwzMjksMCww
LDk2MiwxMDk2LDAsMCw5NjIsOTczLDAsMCw5NjMsMzI5LDAsMCw5NjMsOTUwLDAsMCw5NjMsOTY3
LDAsMCw5NjMsMSwwLDAsOTY0LDQsMCwwLDk2NSwzNSwwLDAsOTY2LDk2OCwwLDAsOTY2LDk1MCww
LDAsOTY2LDMyOSwwLDAsOTY2LDEsMCwwLDk2NywzNSwwLDAsOTY4LDM1LDAsMCw5NjksOTc1LDEs
MzAxLDk2OSw5NzEsMCwwLDk2OSwzMjksMCwwLDk2OSwzMzYsMCwwLDk3MCw5ODEsMSw0OTksOTcw
LDk3MiwxLDUwMiw5NzAsOTc5LDEsMzAwLDk3MCwxMDE3LDAsMCw5NzEsMTAsMCwwLDk3Miw0LDAs
MCw5NzMsOTc0LDAsMCw5NzMsMTMsMCwwLDk3Myw5NzYsMCwwLDk3NSw0LDAsMCw5NzYsMzAsMCww
LDk3Nyw5MDYsMSw1MjUsOTc3LDE3MzgsMSw1MjYsOTc3LDkwOSwxLDUxMCw5NzcsOTA2LDEsNTI0
LDk3Nyw5OTMsMSw1MTksOTc3LDEwMDksMSw1MjcsOTc3LDIyNTMsMSwzMDAsOTc3LDE4MTIsMCww
LDk3NywxNzc5LDEsNDA4LDk3NywxMDI0LDEsNTI4LDk3NywxMDcyLDEsNTI5LDk3NywxMTA1LDEs
NTMwLDk3NywxNDExLDEsNTMxLDk3Nyw5MDYsMSw1MzIsOTc3LDE3NjgsMSw1MzMsOTc3LDE3Mzgs
MSw1MzQsOTc3LDE3MTEsMSw1MzUsOTc3LDE2ODMsMSw1MzYsOTc3LDE2NTUsMSw1MzcsOTc3LDE2
MDYsMSw1MzgsOTc3LDE1NjUsMSw1MzksOTc3LDE3NjgsMSw1NDAsOTc3LDE3MTEsMSw1NDEsOTc3
LDE1NDEsMSw1NDIsOTc3LDExMjEsMSw1NDMsOTc3LDE1MTQsMSw1NDQsOTc3LDExMzMsMSw1NDUs
OTc3LDExNTQsMSw1NDYsOTc3LDE0OTQsMSw1NDcsOTc3LDExODEsMSw1NDgsOTc3LDE0NzQsMSw1
NDksOTc3LDE0NDYsMSw1NTAsOTc3LDE0MjQsMSw1NTEsOTc3LDExOTgsMSw1NTIsOTc3LDEzODIs
MSw1NTMsOTc3LDEzNjMsMSw1NTQsOTc3LDEyMjIsMSw1NTUsOTc3LDEzMzUsMSw1NTYsOTc3LDEz
MTIsMSw1NTcsOTc3LDEyOTUsMSw1NTgsOTc3LDEyNTYsMSw1NTksOTc4LDEsMCwwLDk3OCw5ODIs
MCwwLDk3OCw5NDYsMCwwLDk3OCwzMjksMCwwLDk3OSw5NzAsMSw0OTksOTc5LDk4MywxLDMwMSw5
NzksOTk0LDAsMCw5NzksOTgzLDAsMCw5ODAsMzI5LDAsMCw5ODAsMTA4OSwwLDAsOTgwLDk0Niww
LDAsOTgwLDEsMCwwLDk4MSw5NzAsMSwzMDAsOTgxLDEwMDYsMCwwLDk4MSw5ODYsMSw1MDIsOTgy
LDM1LDAsMCw5ODMsNCwwLDAsOTg0LDEwOTYsMCwwLDk4NCw5OTUsMCwwLDk4NCwzMjksMCwwLDk4
NSwzMzYsMCwwLDk4NSw5OTAsMSwzMDEsOTg1LDMyOSwwLDAsOTg1LDk4NywwLDAsOTg2LDQsMCww
LDk4NywxMCwwLDAsOTg4LDk5MSwwLDAsOTg4LDk1MCwwLDAsOTg4LDMyOSwwLDAsOTg4LDEsMCww
LDk4OSwxMDA1LDEsMzAwLDk4OSw5OTIsMSw1MDIsOTg5LDEwMzYsMCwwLDk5MCw0LDAsMCw5OTEs
MzUsMCwwLDk5Miw0LDAsMCw5OTMsOTk2LDAsMCw5OTMsMzM2LDAsMCw5OTMsMzI5LDAsMCw5OTMs
MTAwMiwxLDMwMSw5OTQsOTk4LDAsMCw5OTQsMjIxMiwwLDAsOTk0LDEsMCwwLDk5NCwzMjksMCww
LDk5NSwxMDAxLDAsMCw5OTUsMTMsMCwwLDk5NSw5OTcsMCwwLDk5NiwxMCwwLDAsOTk4LDM1LDAs
MCw5OTksMTAwNCwxLDUwMiw5OTksMTAyMywxLDMwMCw5OTksMTAxMCwwLDAsMTAwMCwzMjksMCww
LDEwMDAsMTAwMywwLDAsMTAwMCwxMDA3LDEsMzAxLDEwMDAsMzM2LDAsMCwxMDAxLDMwLDAsMCwx
MDAyLDQsMCwwLDEwMDMsMTAsMCwwLDEwMDQsNCwwLDAsMTAwNSwxMDExLDEsMzAxLDEwMDUsMTAy
MCwwLDAsMTAwNSw5ODksMSw0OTksMTAwNSwxMDExLDAsMCwxMDA2LDEsMCwwLDEwMDYsMzI5LDAs
MCwxMDA2LDk1NywwLDAsMTAwNiwxMDA4LDAsMCwxMDA3LDQsMCwwLDEwMDgsMzUsMCwwLDEwMDks
MzI5LDAsMCwxMDA5LDEwOTYsMCwwLDEwMDksMTAxMywwLDAsMTAxMCwxLDAsMCwxMDEwLDMyOSww
LDAsMTAxMCwxMDEyLDAsMCwxMDEwLDEwMTUsMCwwLDEwMTEsNCwwLDAsMTAxMiwxMDYzLDAsMCwx
MDEyLDEwMzgsMSw1NjAsMTAxMywxMywwLDAsMTAxMywxMDE5LDAsMCwxMDEzLDEwMTQsMCwwLDEw
MTUsMzUsMCwwLDEwMTYsMSwwLDAsMTAxNiwzMjksMCwwLDEwMTYsOTUwLDAsMCwxMDE2LDEwNDMs
MCwwLDEwMTcsMSwwLDAsMTAxNywzMjksMCwwLDEwMTcsOTQ2LDAsMCwxMDE3LDEwMTgsMCwwLDEw
MTgsMzUsMCwwLDEwMTksMzAsMCwwLDEwMjAsMSwwLDAsMTAyMCwzMjksMCwwLDEwMjAsMjIxMiww
LDAsMTAyMCwxMDMxLDAsMCwxMDIxLDEwOTQsMCwwLDEwMjEsMTAzOSwwLDAsMTAyMSwxMDM5LDEs
MzAxLDEwMjEsMTA0NywxLDQ5OSwxMDIxLDEwMjgsMCwwLDEwMjIsMzI5LDAsMCwxMDIyLDEsMCww
LDEwMjMsOTk5LDEsNDk5LDEwMjMsMTAzMiwxLDMwMCwxMDIzLDEwMjYsMSw1MDIsMTAyMywxMDUy
LDAsMCwxMDI0LDEwNDksMCwwLDEwMjQsMTA5NiwwLDAsMTAyNCwzMjksMCwwLDEwMjUsMTAyNyww
LDAsMTAyNSwzMzYsMCwwLDEwMjUsMzI5LDAsMCwxMDI1LDEwMzAsMSwzMDEsMTAyNiw0LDAsMCwx
MDI3LDEwLDAsMCwxMDI4LDEsMCwwLDEwMjgsMzI5LDAsMCwxMDI4LDEwNDcsMCwwLDEwMjksMSww
LDAsMTAyOSwzMjksMCwwLDEwMzAsNCwwLDAsMTAzMSwzNSwwLDAsMTAzMiwxMDM0LDEsMzAxLDEw
MzIsMTAyMywxLDQ5OSwxMDMyLDEwNDIsMCwwLDEwMzIsMTAzNCwwLDAsMTAzMywxLDAsMCwxMDMz
LDMyOSwwLDAsMTAzMyw5NTAsMCwwLDEwMzQsNCwwLDAsMTAzNSwxMDQwLDEsMzAxLDEwMzUsMzM2
LDAsMCwxMDM1LDEwMzcsMCwwLDEwMzUsMzI5LDAsMCwxMDM2LDEwNDEsMCwwLDEwMzYsOTQ2LDAs
MCwxMDM2LDEsMCwwLDEwMzYsMzI5LDAsMCwxMDM3LDEwLDAsMCwxMDM4LDEwOTYsMCwwLDEwMzgs
MTA0NCwwLDAsMTAzOCwzMjksMCwwLDEwMzksNCwwLDAsMTA0MCw0LDAsMCwxMDQxLDM1LDAsMCwx
MDQyLDEwNDUsMCwwLDEwNDIsMjIxMiwwLDAsMTA0MiwzMjksMCwwLDEwNDIsMSwwLDAsMTA0Mywz
NSwwLDAsMTA0NCwxMywwLDAsMTA0NCwxMDUwLDAsMCwxMDQ0LDEwNDgsMCwwLDEwNDUsMzUsMCww
LDEwNDYsMSwwLDAsMTA0NiwzMjksMCwwLDEwNDYsOTUwLDAsMCwxMDQ3LDEwODUsMCwwLDEwNDcs
MTA1NSwxLDU2MSwxMDQ3LDEwNjksMSw1MDIsMTA0NywxMDIxLDEsMzAwLDEwNDksMTA1NywwLDAs
MTA0OSwxMDYyLDAsMCwxMDQ5LDEzLDAsMCwxMDUwLDMwLDAsMCwxMDUxLDMzNiwwLDAsMTA1MSwx
MDYxLDEsMzAxLDEwNTEsMzI5LDAsMCwxMDUxLDEwNTQsMCwwLDEwNTIsMTA1NiwwLDAsMTA1Miwx
LDAsMCwxMDUyLDMyOSwwLDAsMTA1Miw5NDYsMCwwLDEwNTMsMSwwLDAsMTA1MywxMDY3LDAsMCwx
MDUzLDMyOSwwLDAsMTA1Myw5NTAsMCwwLDEwNTQsMTAsMCwwLDEwNTUsMzM2LDAsMCwxMDU1LDEw
NjQsMSwzMDEsMTA1NSwxMDU5LDAsMCwxMDU1LDMyOSwwLDAsMTA1NiwzNSwwLDAsMTA1OCw5Nzcs
MCwwLDEwNTgsMzI5LDAsMCwxMDU4LDEsMCwwLDEwNTksMTAsMCwwLDEwNjAsOTUwLDAsMCwxMDYw
LDMyOSwwLDAsMTA2MCwxLDAsMCwxMDYxLDQsMCwwLDEwNjIsMzAsMCwwLDEwNjMsMSwwLDAsMTA2
MywzMjksMCwwLDEwNjMsOTUwLDAsMCwxMDYzLDEwNjUsMCwwLDEwNjQsNCwwLDAsMTA2NSwzNSww
LDAsMTA2Niw5NzcsMCwwLDEwNjYsMzI5LDAsMCwxMDY2LDEsMCwwLDEwNjcsMSwwLDAsMTA2Nywz
MjksMCwwLDEwNjcsOTUwLDAsMCwxMDY4LDMyOSwwLDAsMTA2OCw5NzcsMCwwLDEwNjgsMSwwLDAs
MTA2OSw0LDAsMCwxMDcwLDMyOSwwLDAsMTA3MCwxLDAsMCwxMDcwLDk3NywwLDAsMTA3MSwzMzYs
MCwwLDEwNzEsMTA3NSwxLDMwMSwxMDcxLDMyOSwwLDAsMTA3MSwxMDczLDAsMCwxMDcyLDMzNiww
LDAsMTA3MiwxMDg2LDEsMzAxLDEwNzIsMzI5LDAsMCwxMDcyLDEwODEsMCwwLDEwNzMsMTAsMCww
LDEwNzQsMSwwLDAsMTA3NCwzMjksMCwwLDEwNzQsOTc3LDAsMCwxMDc1LDQsMCwwLDEwNzYsOTc3
LDAsMCwxMDc2LDEsMCwwLDEwNzYsMzI5LDAsMCwxMDc3LDEsMCwwLDEwNzcsMzI5LDAsMCwxMDc4
LDMyOSwwLDAsMTA3OCw5NzcsMCwwLDEwNzgsMSwwLDAsMTA3OSwzMjksMCwwLDEwNzksOTc3LDAs
MCwxMDc5LDEsMCwwLDEwODAsMSwwLDAsMTA4MCwzMjksMCwwLDEwODAsOTUyLDAsMCwxMDgxLDEw
LDAsMCwxMDgyLDMyOSwwLDAsMTA4MiwxMDg4LDEsMzAxLDEwODIsMzM2LDAsMCwxMDgyLDEwODQs
MCwwLDEwODMsMSwwLDAsMTA4MywzMjksMCwwLDEwODMsOTc3LDAsMCwxMDg0LDEwLDAsMCwxMDg1
LDk1MCwwLDAsMTA4NSwzMjksMCwwLDEwODUsMSwwLDAsMTA4NSwxMDkwLDAsMCwxMDg2LDQsMCww
LDEwODcsMSwwLDAsMTA4NywzMjksMCwwLDEwODgsNCwwLDAsMTA4OSw5NDYsMCwwLDEwODksMzI5
LDAsMCwxMDg5LDEsMCwwLDEwOTAsMzUsMCwwLDEwOTEsMzI5LDAsMCwxMDkxLDEsMCwwLDEwOTIs
MzI5LDAsMCwxMDkyLDExMDAsMSwzMDEsMTA5MiwxMDk4LDAsMCwxMDkyLDMzNiwwLDAsMTA5Myw5
NDYsMCwwLDEwOTMsMSwwLDAsMTA5MywzMjksMCwwLDEwOTQsMTA5NywwLDAsMTA5NCwxLDAsMCwx
MDk0LDMyOSwwLDAsMTA5NCw5NDYsMCwwLDEwOTUsMTEzNSwwLDAsMTA5NSwzMjksMCwwLDEwOTUs
MSwwLDAsMTA5Niw5NDYsMCwwLDEwOTYsMSwwLDAsMTA5NiwzMjksMCwwLDEwOTcsMzUsMCwwLDEw
OTgsMTAsMCwwLDEwOTksMzI5LDAsMCwxMDk5LDEsMCwwLDEwOTksOTcwLDAsMCwxMTAwLDQsMCww
LDExMDEsOTg5LDAsMCwxMTAxLDMyOSwwLDAsMTEwMSwxLDAsMCwxMTAyLDEwMjMsMCwwLDExMDIs
MzI5LDAsMCwxMTAyLDEsMCwwLDExMDMsOTUwLDAsMCwxMTAzLDExMTUsMCwwLDExMDMsMzI5LDAs
MCwxMTAzLDEsMCwwLDExMDQsOTc3LDAsMCwxMTA0LDMyOSwwLDAsMTEwNCwxLDAsMCwxMTA0LDEx
MTMsMCwwLDExMDUsMzI5LDAsMCwxMTA1LDMzNiwwLDAsMTEwNSwxMTA3LDAsMCwxMTA1LDExMTIs
MSwzMDEsMTEwNiwxMDkxLDAsMCwxMTA2LDExNDIsMCwwLDExMDYsMTEyMywwLDAsMTEwNywxMCww
LDAsMTEwOCwxMTE2LDAsMCwxMTA4LDExNzAsMCwwLDExMDgsMTExNCwwLDAsMTEwOCwxMTE2LDEs
MzAxLDExMDgsMTEyMiwxLDQ5OSwxMTA5LDExMzEsMCwwLDExMDksMSwwLDAsMTEwOSwzMjksMCww
LDExMTAsMSwwLDAsMTExMCwzMjksMCwwLDExMTEsMSwwLDAsMTExMSwzMjksMCwwLDExMTEsMTEw
NCwwLDAsMTExMSw5NzcsMCwwLDExMTIsNCwwLDAsMTExMywxMDY2LDAsMCwxMTEzLDk3NywwLDAs
MTExMywxLDAsMCwxMTEzLDMyOSwwLDAsMTExNCwxLDAsMCwxMTE0LDExMjIsMCwwLDExMTQsMzI5
LDAsMCwxMTE1LDk1MCwwLDAsMTExNSwzMjksMCwwLDExMTUsMSwwLDAsMTExNSwxMDYwLDAsMCwx
MTE2LDQsMCwwLDExMTcsMzI5LDAsMCwxMTE3LDEsMCwwLDExMTgsMzI5LDAsMCwxMTE4LDEsMCww
LDExMTksMzI5LDAsMCwxMTE5LDEsMCwwLDExMjAsOTQ2LDAsMCwxMTIwLDMyOSwwLDAsMTEyMCwx
LDAsMCwxMTIxLDMyOSwwLDAsMTEyMSwxMTI0LDAsMCwxMTIxLDExMjcsMSwzMDEsMTEyMSwzMzYs
MCwwLDExMjIsMTE2MywwLDAsMTEyMiwxMTA4LDEsMzAwLDExMjIsMTE0NCwxLDUwMiwxMTIyLDEx
MzQsMSw1NjEsMTEyMywzMjksMCwwLDExMjMsMzM2LDAsMCwxMTIzLDExMjYsMCwwLDExMjMsMTEy
OSwxLDMwMSwxMTI0LDEwLDAsMCwxMTI1LDEsMCwwLDExMjUsMzI5LDAsMCwxMTI1LDExMjgsMCww
LDExMjYsMTAsMCwwLDExMjcsNCwwLDAsMTEyOCwyMjU3LDEsMzAwLDExMjgsMTE0MCwxLDU1NSwx
MTI4LDExNTYsMSw1MDIsMTEyOCwxMTY1LDEsNTYyLDExMjgsMTE4OSwwLDAsMTEyOSw0LDAsMCwx
MTMwLDExNTEsMCwwLDExMzAsMzI5LDAsMCwxMTMwLDEsMCwwLDExMzEsMTI5MCwxLDU2MywxMTMx
LDEyMTksMSw1NjQsMTEzMSwxMTQ5LDEsNTY1LDExMzEsMTUwOSwxLDU2NiwxMTMxLDIyMTYsMSwz
MDAsMTEzMSwxMzQwLDEsNTY3LDExMzEsMTMxNSwxLDU2OCwxMTMxLDExMzIsMCwwLDExMzEsMTYw
NSwxLDU2OSwxMTMxLDEyNDYsMSw1NzAsMTEzMSwxMzA2LDEsNTcxLDExMzEsMTQyNywxLDU3Miwx
MTMxLDE0NzcsMSw1NzMsMTEzMSwxNDUzLDEsNTc0LDExMzEsMTM5NCwxLDU3NSwxMTMxLDEzNjks
MSw1NzYsMTEzMSwxMzczLDAsMCwxMTMxLDEzMzcsMSw1NzcsMTEzMSwxMTk2LDEsNTEwLDExMzIs
MTYsMCwwLDExMzMsMTEzNywwLDAsMTEzMywzMzYsMCwwLDExMzMsMTE0MywxLDMwMSwxMTMzLDMy
OSwwLDAsMTEzNCwxMTQxLDEsMzAxLDExMzQsMzM2LDAsMCwxMTM0LDMyOSwwLDAsMTEzNCwxMTM4
LDAsMCwxMTM1LDExODIsMCwwLDExMzUsMTE2MSwxLDU3OCwxMTM1LDExMzksMSw1MDIsMTEzNSwy
MzU0LDEsMzAwLDExMzYsOTI1LDEsNTEwLDExMzYsMTE0NywxLDUxOSwxMTM2LDExNzEsMCwwLDEx
MzYsMjMzNiwxLDMwMCwxMTM3LDEwLDAsMCwxMTM4LDEwLDAsMCwxMTM5LDQsMCwwLDExNDAsMTE0
OCwxLDMwMSwxMTQwLDExNDYsMCwwLDExNDAsMzI5LDAsMCwxMTQwLDMzNiwwLDAsMTE0MSw0LDAs
MCwxMTQyLDExNTAsMSwzMDEsMTE0MiwxMTQ1LDAsMCwxMTQyLDMyOSwwLDAsMTE0MiwzMzYsMCww
LDExNDMsNCwwLDAsMTE0NCw0LDAsMCwxMTQ1LDEwLDAsMCwxMTQ2LDEwLDAsMCwxMTQ3LDExNTMs
MCwwLDExNDcsMzI5LDAsMCwxMTQ3LDEwOTYsMCwwLDExNDgsNCwwLDAsMTE0OSwxMTY3LDEsMzAx
LDExNDksMTE1MiwwLDAsMTE0OSwzMjksMCwwLDExNDksMzM2LDAsMCwxMTUwLDQsMCwwLDExNTEs
MTQzOSwxLDU3OSwxMTUxLDExNjksMSw1MTAsMTE1MSwxNzI2LDAsMCwxMTUxLDMyOCwwLDAsMTE1
MSwxNjYxLDEsNTgwLDExNTEsMTE4NywxLDUxOCwxMTUxLDEyMTMsMSw1ODEsMTE1MSwxMjM5LDEs
NTgyLDExNTEsMTI1MywxLDU4MywxMTUxLDEyNzAsMSw1NTMsMTE1MSwxMjkxLDEsNTMxLDExNTEs
MTMwOCwxLDU4NCwxMTUxLDEzMjYsMSw1ODUsMTE1MSwxMzM5LDEsNTU1LDExNTEsMTM2MiwxLDU4
NiwxMTUxLDEzNzQsMSw1ODcsMTE1MSwxNDAxLDEsNTg4LDExNTEsMTQyMiwxLDU4OSwxMTUxLDE0
NjksMSw1OTAsMTE1MSwxNDk2LDEsNTkxLDExNTEsMTUxNSwxLDU5MiwxMTUxLDE1MjgsMSw1OTMs
MTE1MSwxNTU3LDEsNTk0LDExNTEsMTU3MSwxLDUzNywxMTUxLDE2MDEsMSw1OTUsMTE1MSwxNjI3
LDEsNTk2LDExNTEsMTY0MCwxLDU5NywxMTUxLDE2NDAsMSw1OTgsMTE1MSwxNjYxLDEsNTk5LDEx
NTEsMTY5OCwxLDUyNCwxMTUxLDIzNDksMSwzMDAsMTE1MiwxMCwwLDAsMTE1MywxMywwLDAsMTE1
MywxMTU1LDAsMCwxMTUzLDExNTksMCwwLDExNTQsMTE2NCwxLDMwMSwxMTU0LDMzNiwwLDAsMTE1
NCwxMTU4LDAsMCwxMTU0LDMyOSwwLDAsMTE1Niw0LDAsMCwxMTU3LDEsMCwwLDExNTcsMzI5LDAs
MCwxMTU3LDExNjAsMCwwLDExNTgsMTAsMCwwLDExNTksMzAsMCwwLDExNjAsMzUsMCwwLDExNjEs
MTE2MiwwLDAsMTE2MSwzMzYsMCwwLDExNjEsMTE2NiwxLDMwMSwxMTYxLDMyOSwwLDAsMTE2Miwx
MCwwLDAsMTE2Myw5NTAsMCwwLDExNjMsMTE2OCwwLDAsMTE2MywxLDAsMCwxMTYzLDMyOSwwLDAs
MTE2NCw0LDAsMCwxMTY1LDEwOTEsMCwwLDExNjUsODg3LDAsMCwxMTY1LDExNzIsMCwwLDExNjYs
NCwwLDAsMTE2Nyw0LDAsMCwxMTY4LDM1LDAsMCwxMTY5LDExNzMsMCwwLDExNjksMzI5LDAsMCwx
MTY5LDMzNiwwLDAsMTE2OSwxMTc3LDEsMzAxLDExNzAsMSwwLDAsMTE3MCwzMjksMCwwLDExNzAs
OTQ2LDAsMCwxMTcwLDExNzQsMCwwLDExNzEsOTUwLDAsMCwxMTcxLDExNzUsMCwwLDExNzEsMzI5
LDAsMCwxMTcxLDEsMCwwLDExNzEsMTE3OSwwLDAsMTE3MiwzMzYsMCwwLDExNzIsMTE4MCwxLDMw
MSwxMTcyLDExNzYsMCwwLDExNzIsMzI5LDAsMCwxMTczLDEwLDAsMCwxMTc0LDM1LDAsMCwxMTc1
LDM1LDAsMCwxMTc2LDEwLDAsMCwxMTc3LDQsMCwwLDExNzgsMTEzNiwwLDAsMTE3OCwxLDAsMCwx
MTc4LDMyOSwwLDAsMTE3OSwyLDAsMCwxMTgwLDQsMCwwLDExODEsMTE4MywwLDAsMTE4MSwzMjks
MCwwLDExODEsMzM2LDAsMCwxMTgxLDExOTAsMSwzMDEsMTE4Miw5NTAsMCwwLDExODIsMzI5LDAs
MCwxMTgyLDEsMCwwLDExODIsMTE4NiwwLDAsMTE4MywxMCwwLDAsMTE4NCwxMTk5LDAsMCwxMTg0
LDIzMTgsMSwzMDAsMTE4NSwxMjQzLDAsMCwxMTg1LDExOTcsMSwzMDEsMTE4NSwxMTk0LDAsMCwx
MTg1LDEyMDQsMSw0OTksMTE4NSwxMTk3LDAsMCwxMTg2LDM1LDAsMCwxMTg3LDMzNiwwLDAsMTE4
NywxMTkxLDAsMCwxMTg3LDMyOSwwLDAsMTE4NywxMTkzLDEsMzAxLDExODgsMTE4NCwwLDAsMTE4
OCwzMjksMCwwLDExODgsMSwwLDAsMTE4OSwxMTkyLDAsMCwxMTg5LDk1MCwwLDAsMTE4OSwzMjks
MCwwLDExODksMSwwLDAsMTE5MCw0LDAsMCwxMTkxLDEwLDAsMCwxMTkyLDM1LDAsMCwxMTkzLDQs
MCwwLDExOTQsMzI5LDAsMCwxMTk0LDEsMCwwLDExOTQsMTIwNCwwLDAsMTE5NSwxMjAwLDAsMCwx
MTk1LDEsMCwwLDExOTUsMzI5LDAsMCwxMTk2LDEyMDIsMCwwLDExOTYsMTIwNiwxLDMwMSwxMTk2
LDMzNiwwLDAsMTE5NiwzMjksMCwwLDExOTcsNCwwLDAsMTE5OCwxMjAzLDAsMCwxMTk4LDMzNiww
LDAsMTE5OCwzMjksMCwwLDExOTgsMTIxMSwxLDMwMSwxMTk5LDMyOSwwLDAsMTE5OSwxLDAsMCwx
MTk5LDk1MCwwLDAsMTE5OSwxMjAxLDAsMCwxMjAwLDEyNzMsMSw2MDAsMTIwMCwyMzA2LDEsMzAw
LDEyMDAsMTQwNCwxLDYwMSwxMjAwLDEzOTcsMSw1MDIsMTIwMCwxMzc2LDEsNTI0LDEyMDAsMTM3
NiwxLDU0MSwxMjAwLDEzMzgsMSw2MDIsMTIwMCwxNDQ4LDAsMCwxMjAwLDEzMTQsMSw2MDMsMTIw
MCwxMjk5LDEsNjA0LDEyMDAsMTIwOSwxLDQxOCwxMjAwLDEyMjksMSw2MDUsMTIwMCwxMjUyLDEs
NjA2LDEyMDEsMzUsMCwwLDEyMDIsMTAsMCwwLDEyMDMsMTAsMCwwLDEyMDQsMTIwOCwxLDUwMiwx
MjA0LDExODUsMSwzMDAsMTIwNCwxMjI0LDAsMCwxMjA1LDEzMzYsMSw1MjQsMTIwNSwyMzA0LDEs
MzAwLDEyMDUsMTM3MiwxLDYwMSwxMjA1LDE0MjEsMCwwLDEyMDUsMTM1OCwxLDUwMiwxMjA1LDEy
MTUsMSw2MDcsMTIwNSwxMjM4LDEsNDE4LDEyMDUsMTI1OCwxLDYwNSwxMjA1LDEyODMsMSw2MDAs
MTIwNSwxMjk4LDEsNjA4LDEyMDUsMTMwOSwxLDYwOSwxMjA1LDEzMzYsMSw1MjUsMTIwNSwxMzM2
LDEsNTQwLDEyMDYsNCwwLDAsMTIwNywxLDAsMCwxMjA3LDMyOSwwLDAsMTIwNywxMjA1LDAsMCwx
MjA4LDQsMCwwLDEyMDksMTIxNywxLDMwMSwxMjA5LDMzNiwwLDAsMTIwOSwzMjksMCwwLDEyMDks
MTIxMiwwLDAsMTIxMCwxMjE0LDEsNTAyLDEyMTAsMTI1MSwwLDAsMTIxMCwyMzE0LDEsMzAwLDEy
MTAsMTIyMywxLDYxMCwxMjExLDQsMCwwLDEyMTIsMTAsMCwwLDEyMTMsMzI5LDAsMCwxMjEzLDEy
MjUsMSwzMDEsMTIxMywzMzYsMCwwLDEyMTMsMTIyMSwwLDAsMTIxNCw0LDAsMCwxMjE1LDEyMTYs
MCwwLDEyMTUsMzM2LDAsMCwxMjE1LDMyOSwwLDAsMTIxNSwxMjIwLDEsMzAxLDEyMTYsMTAsMCww
LDEyMTcsNCwwLDAsMTIxOCwzMjksMCwwLDEyMTgsMSwwLDAsMTIxOCwxMjEwLDAsMCwxMjE5LDEw
OTEsMCwwLDEyMTksODg3LDAsMCwxMjE5LDEyMjgsMCwwLDEyMjAsNCwwLDAsMTIyMSwxMCwwLDAs
MTIyMiwxMjM0LDAsMCwxMjIyLDEyMzcsMSwzMDEsMTIyMiwzMjksMCwwLDEyMjIsMzM2LDAsMCwx
MjIzLDEyMzIsMCwwLDEyMjMsMzI5LDAsMCwxMjIzLDEwOTYsMCwwLDEyMjQsMTIyNywwLDAsMTIy
NCwxLDAsMCwxMjI0LDMyOSwwLDAsMTIyNCw5NTAsMCwwLDEyMjUsNCwwLDAsMTIyNiw3MTQsMSwz
MDAsMTIyNiwxMjMwLDEsNTAyLDEyMjYsMTI0OSwwLDAsMTIyNywzNSwwLDAsMTIyOCwxMjMxLDAs
MCwxMjI4LDEyMzUsMSwzMDEsMTIyOCwzMzYsMCwwLDEyMjgsMzI5LDAsMCwxMjI5LDEyNDIsMSwz
MDEsMTIyOSwzMjksMCwwLDEyMjksMzM2LDAsMCwxMjI5LDEyNDAsMCwwLDEyMzAsNCwwLDAsMTIz
MSwxMCwwLDAsMTIzMiwxMywwLDAsMTIzMiwxMjM2LDAsMCwxMjMyLDEyMzMsMCwwLDEyMzQsMTAs
MCwwLDEyMzUsNCwwLDAsMTIzNiwzMCwwLDAsMTIzNyw0LDAsMCwxMjM4LDEyNDQsMCwwLDEyMzgs
MzI5LDAsMCwxMjM4LDEyNDgsMSwzMDEsMTIzOCwzMzYsMCwwLDEyMzksMzM2LDAsMCwxMjM5LDEy
NDUsMSwzMDEsMTIzOSwzMjksMCwwLDEyMzksMTI0MSwwLDAsMTI0MCwxMCwwLDAsMTI0MSwxMCww
LDAsMTI0Miw0LDAsMCwxMjQzLDk0NiwwLDAsMTI0MywxLDAsMCwxMjQzLDEyNDcsMCwwLDEyNDMs
MzI5LDAsMCwxMjQ0LDEwLDAsMCwxMjQ1LDQsMCwwLDEyNDYsMTA5NiwwLDAsMTI0NiwzMjksMCww
LDEyNDYsMTI2MiwwLDAsMTI0NywzNSwwLDAsMTI0OCw0LDAsMCwxMjQ5LDMyOSwwLDAsMTI0OSw5
NTAsMCwwLDEyNDksMSwwLDAsMTI0OSwxMjUwLDAsMCwxMjUwLDM1LDAsMCwxMjUxLDEsMCwwLDEy
NTEsMzI5LDAsMCwxMjUxLDk1MCwwLDAsMTI1MSwxMjU0LDAsMCwxMjUyLDEyNjAsMSwzMDEsMTI1
MiwxMjU3LDAsMCwxMjUyLDMzNiwwLDAsMTI1MiwzMjksMCwwLDEyNTMsMTI1OSwwLDAsMTI1Mywx
MjY0LDEsMzAxLDEyNTMsMzI5LDAsMCwxMjUzLDMzNiwwLDAsMTI1NCwzNSwwLDAsMTI1NSwxLDAs
MCwxMjU1LDMyOSwwLDAsMTI1NSwxMjI2LDAsMCwxMjU2LDEwOTYsMCwwLDEyNTYsMzI5LDAsMCwx
MjU2LDEyNzQsMCwwLDEyNTcsMTAsMCwwLDEyNTgsMTI2OSwxLDMwMSwxMjU4LDMzNiwwLDAsMTI1
OCwzMjksMCwwLDEyNTgsMTI2MSwwLDAsMTI1OSwxMCwwLDAsMTI2MCw0LDAsMCwxMjYxLDEwLDAs
MCwxMjYyLDEyNjMsMCwwLDEyNjIsMTI3NywwLDAsMTI2MiwxMywwLDAsMTI2NCw0LDAsMCwxMjY1
LDEyNjcsMSw1MDIsMTI2NSwxMzE5LDAsMCwxMjY1LDEyNzIsMSw1MDEsMTI2NiwxLDAsMCwxMjY2
LDMyOSwwLDAsMTI2NiwxMjY1LDAsMCwxMjY3LDQsMCwwLDEyNjgsMSwwLDAsMTI2OCwzMjksMCww
LDEyNjgsMTI4MCwwLDAsMTI2OCwxMjcxLDAsMCwxMjY5LDQsMCwwLDEyNzAsMzM2LDAsMCwxMjcw
LDMyOSwwLDAsMTI3MCwxMjc1LDAsMCwxMjcwLDEyNzksMSwzMDEsMTI3MSwzNSwwLDAsMTI3Miwx
MDk2LDAsMCwxMjcyLDMyOSwwLDAsMTI3MiwxMjg0LDAsMCwxMjczLDEyODUsMSwzMDEsMTI3Mywz
MjksMCwwLDEyNzMsMTI4MiwwLDAsMTI3MywzMzYsMCwwLDEyNzQsMTMsMCwwLDEyNzQsMTI4OCww
LDAsMTI3NCwxMjc2LDAsMCwxMjc1LDEwLDAsMCwxMjc3LDMwLDAsMCwxMjc4LDEyODEsMCwwLDEy
NzgsNTM2LDAsMCwxMjc4LDMyOSwwLDAsMTI3OSw0LDAsMCwxMjgwLDEzMDcsMCwwLDEyODEsMTAs
MCwwLDEyODIsMTAsMCwwLDEyODMsMTI4NywwLDAsMTI4MywxMjg5LDEsMzAxLDEyODMsMzI5LDAs
MCwxMjgzLDMzNiwwLDAsMTI4NCwxMjg2LDAsMCwxMjg0LDEzMTEsMCwwLDEyODQsMTMsMCwwLDEy
ODUsNCwwLDAsMTI4NywxMCwwLDAsMTI4OCwzMCwwLDAsMTI4OSw0LDAsMCwxMjkwLDEwOTYsMCww
LDEyOTAsMTI5MiwwLDAsMTI5MCwzMjksMCwwLDEyOTEsMzM2LDAsMCwxMjkxLDEyOTMsMCwwLDEy
OTEsMTI5NiwxLDMwMSwxMjkxLDMyOSwwLDAsMTI5MiwxMywwLDAsMTI5MiwxMjk3LDAsMCwxMjky
LDEyOTQsMCwwLDEyOTMsMTAsMCwwLDEyOTUsMzM2LDAsMCwxMjk1LDMyOSwwLDAsMTI5NSwxMzAw
LDAsMCwxMjk1LDEzMDMsMSwzMDEsMTI5Niw0LDAsMCwxMjk3LDMwLDAsMCwxMjk4LDMyOSwwLDAs
MTI5OCwxMzAxLDAsMCwxMjk4LDEzMDQsMSwzMDEsMTI5OCwzMzYsMCwwLDEyOTksMTMwMiwwLDAs
MTI5OSwzMzYsMCwwLDEyOTksMzI5LDAsMCwxMjk5LDEzMDUsMSwzMDEsMTMwMCwxMCwwLDAsMTMw
MSwxMCwwLDAsMTMwMiwxMCwwLDAsMTMwMyw0LDAsMCwxMzA0LDQsMCwwLDEzMDUsNCwwLDAsMTMw
NiwxMzIxLDAsMCwxMzA2LDEwOTEsMCwwLDEzMDYsODg3LDAsMCwxMzA3LDEsMCwwLDEzMDcsMzI5
LDAsMCwxMzA3LDk1MCwwLDAsMTMwOCwzMzYsMCwwLDEzMDgsMzI5LDAsMCwxMzA4LDEzMTAsMCww
LDEzMDgsMTMxMywxLDMwMSwxMzA5LDMzNiwwLDAsMTMwOSwzMjksMCwwLDEzMDksMTMyOSwxLDMw
MSwxMzA5LDEzMjUsMCwwLDEzMTAsMTAsMCwwLDEzMTEsMzAsMCwwLDEzMTIsMzM2LDAsMCwxMzEy
LDEzMTcsMCwwLDEzMTIsMzI5LDAsMCwxMzEyLDEzMTgsMSwzMDEsMTMxMyw0LDAsMCwxMzE0LDMy
OSwwLDAsMTMxNCwxMzIwLDEsMzAxLDEzMTQsMzM2LDAsMCwxMzE0LDEzMTYsMCwwLDEzMTUsMTA5
NiwwLDAsMTMxNSwxMzI0LDAsMCwxMzE1LDMyOSwwLDAsMTMxNiwxMCwwLDAsMTMxNywxMCwwLDAs
MTMxOCw0LDAsMCwxMzE5LDEzMzIsMCwwLDEzMTksMSwwLDAsMTMxOSwzMjksMCwwLDEzMTksOTU3
LDAsMCwxMzIwLDQsMCwwLDEzMjEsMTMyOCwxLDMwMSwxMzIxLDMzNiwwLDAsMTMyMSwzMjksMCww
LDEzMjEsMTMyMywwLDAsMTMyMiwxLDAsMCwxMzIyLDk1MCwwLDAsMTMyMiwzMjksMCwwLDEzMjMs
MTAsMCwwLDEzMjQsMTMzNCwwLDAsMTMyNCwxMzI3LDAsMCwxMzI0LDEzLDAsMCwxMzI1LDEwLDAs
MCwxMzI2LDMzNiwwLDAsMTMyNiwxMzMzLDEsMzAxLDEzMjYsMzI5LDAsMCwxMzI2LDEzMzAsMCww
LDEzMjgsNCwwLDAsMTMyOSw0LDAsMCwxMzMwLDEwLDAsMCwxMzMxLDk0NiwwLDAsMTMzMSwzMjks
MCwwLDEzMzEsMSwwLDAsMTMzMiwxMzUxLDAsMCwxMzMyLDIsMCwwLDEzMzMsNCwwLDAsMTMzNCwz
MCwwLDAsMTMzNSwxMDk2LDAsMCwxMzM1LDEzNDMsMCwwLDEzMzUsMzI5LDAsMCwxMzM2LDEwOTYs
MCwwLDEzMzYsMTM0MSwwLDAsMTMzNiwzMjksMCwwLDEzMzcsODg3LDAsMCwxMzM3LDEzNDgsMCww
LDEzMzcsMTA5MSwwLDAsMTMzOCwzMzYsMCwwLDEzMzgsMTM2MCwxLDMwMSwxMzM4LDMyOSwwLDAs
MTMzOCwxMzUyLDAsMCwxMzM5LDEzNDYsMSwzMDEsMTMzOSwzMzYsMCwwLDEzMzksMzI5LDAsMCwx
MzM5LDEzNDIsMCwwLDEzNDAsMTA5NiwwLDAsMTM0MCwxMzU0LDAsMCwxMzQwLDMyOSwwLDAsMTM0
MSwxMzQ0LDAsMCwxMzQxLDEzLDAsMCwxMzQxLDEzNTAsMCwwLDEzNDIsMTAsMCwwLDEzNDMsMTMs
MCwwLDEzNDMsMTM0NSwwLDAsMTM0MywxMzQ5LDAsMCwxMzQ2LDQsMCwwLDEzNDcsMzI5LDAsMCwx
MzQ3LDEsMCwwLDEzNDcsOTQ2LDAsMCwxMzQ4LDEzNTMsMCwwLDEzNDgsMzI5LDAsMCwxMzQ4LDEz
NTcsMSwzMDEsMTM0OCwzMzYsMCwwLDEzNDksMzAsMCwwLDEzNTAsMzAsMCwwLDEzNTEsOTU3LDAs
MCwxMzUxLDEsMCwwLDEzNTEsMTM2MSwwLDAsMTM1MSwzMjksMCwwLDEzNTIsMTAsMCwwLDEzNTMs
MTAsMCwwLDEzNTQsMTM1OSwwLDAsMTM1NCwxMzU1LDAsMCwxMzU0LDEzLDAsMCwxMzU2LDEsMCww
LDEzNTYsMzI5LDAsMCwxMzU3LDQsMCwwLDEzNTgsNCwwLDAsMTM1OSwzMCwwLDAsMTM2MCw0LDAs
MCwxMzYxLDM1LDAsMCwxMzYyLDMyOSwwLDAsMTM2MiwxMzY2LDEsMzAxLDEzNjIsMTM2NCwwLDAs
MTM2MiwzMzYsMCwwLDEzNjMsMTA5NiwwLDAsMTM2MywxMzY3LDAsMCwxMzYzLDMyOSwwLDAsMTM2
NCwxMCwwLDAsMTM2NSwxMzc4LDEsMzAwLDEzNjUsMTQwOSwwLDAsMTM2Niw0LDAsMCwxMzY3LDEz
NjgsMCwwLDEzNjcsMTM3MCwwLDAsMTM2NywxMywwLDAsMTM2OSwxMzc3LDAsMCwxMzY5LDg4Nyww
LDAsMTM2OSwxMDkxLDAsMCwxMzcwLDMwLDAsMCwxMzcxLDEsMCwwLDEzNzEsMzI5LDAsMCwxMzcx
LDEzNjUsMCwwLDEzNzIsODg3LDAsMCwxMzcyLDEwOTEsMCwwLDEzNzIsMTM4NSwwLDAsMTM3Myw5
NTAsMCwwLDEzNzMsMTM3NSwwLDAsMTM3MywxLDAsMCwxMzczLDMyOSwwLDAsMTM3NCwzMzYsMCww
LDEzNzQsMzI5LDAsMCwxMzc0LDEzOTAsMSwzMDEsMTM3NCwxMzgxLDAsMCwxMzc1LDM1LDAsMCwx
Mzc2LDEwOTYsMCwwLDEzNzYsMzI5LDAsMCwxMzc2LDEzODcsMCwwLDEzNzcsMzI5LDAsMCwxMzc3
LDEzODAsMCwwLDEzNzcsMTM4NCwxLDMwMSwxMzc3LDMzNiwwLDAsMTM3OCwxMzk5LDAsMCwxMzc4
LDEzODMsMCwwLDEzNzgsMTM4MywxLDMwMSwxMzc4LDEzNjUsMSw0OTksMTM3OSwxNDIwLDAsMCwx
Mzc5LDEzOTEsMSwzMDAsMTM4MCwxMCwwLDAsMTM4MSwxMCwwLDAsMTM4MiwxMzkzLDAsMCwxMzgy
LDEzOTgsMSwzMDEsMTM4MiwzMjksMCwwLDEzODIsMzM2LDAsMCwxMzgzLDQsMCwwLDEzODQsNCww
LDAsMTM4NSwzMzYsMCwwLDEzODUsMTQwMCwxLDMwMSwxMzg1LDMyOSwwLDAsMTM4NSwxMzg4LDAs
MCwxMzg2LDEsMCwwLDEzODYsMzI5LDAsMCwxMzg2LDEzNzksMCwwLDEzODcsMTM5MiwwLDAsMTM4
NywxMywwLDAsMTM4NywxMzg5LDAsMCwxMzg4LDEwLDAsMCwxMzkwLDQsMCwwLDEzOTEsMTM3OSwx
LDQ5OSwxMzkxLDEzOTYsMSwzMDEsMTM5MSwxMzk2LDAsMCwxMzkxLDE0MDgsMCwwLDEzOTIsMzAs
MCwwLDEzOTMsMTAsMCwwLDEzOTQsMTA5MSwwLDAsMTM5NCwxNDA3LDAsMCwxMzk0LDg4NywwLDAs
MTM5NSwxNDMwLDAsMCwxMzk1LDE0MDMsMSwzMDAsMTM5Niw0LDAsMCwxMzk3LDQsMCwwLDEzOTgs
NCwwLDAsMTM5OSwzMjksMCwwLDEzOTksMSwwLDAsMTM5OSw5NDYsMCwwLDEzOTksMTQwMiwwLDAs
MTQwMCw0LDAsMCwxNDAxLDE0MDUsMCwwLDE0MDEsMzI5LDAsMCwxNDAxLDE0MTAsMSwzMDEsMTQw
MSwzMzYsMCwwLDE0MDIsMzUsMCwwLDE0MDMsMTM5NSwxLDQ5OSwxNDAzLDE0MTYsMCwwLDE0MDMs
MTQwNiwxLDMwMSwxNDAzLDE0MDYsMCwwLDE0MDQsMTA5MSwwLDAsMTQwNCwxNDMyLDAsMCwxNDA0
LDg4NywwLDAsMTQwNSwxMCwwLDAsMTQwNiw0LDAsMCwxNDA3LDMzNiwwLDAsMTQwNywxNDE0LDEs
MzAxLDE0MDcsMzI5LDAsMCwxNDA3LDE0MTMsMCwwLDE0MDgsMSwwLDAsMTQwOCwzMjksMCwwLDE0
MDgsOTQ2LDAsMCwxNDA4LDE0MTIsMCwwLDE0MDksMSwwLDAsMTQwOSwzMjksMCwwLDE0MDksOTUy
LDAsMCwxNDA5LDE0MTUsMCwwLDE0MTAsNCwwLDAsMTQxMSwxNDE5LDEsMzAxLDE0MTEsMTQxNyww
LDAsMTQxMSwzMjksMCwwLDE0MTEsMzM2LDAsMCwxNDEyLDM1LDAsMCwxNDEzLDEwLDAsMCwxNDE0
LDQsMCwwLDE0MTUsMzUsMCwwLDE0MTYsMSwwLDAsMTQxNiwxNDE4LDAsMCwxNDE2LDk0NiwwLDAs
MTQxNiwzMjksMCwwLDE0MTcsMTAsMCwwLDE0MTgsMzUsMCwwLDE0MTksNCwwLDAsMTQyMCwxLDAs
MCwxNDIwLDE0MjYsMCwwLDE0MjAsMzI5LDAsMCwxNDIwLDk1MCwwLDAsMTQyMSwzMjksMCwwLDE0
MjEsOTUwLDAsMCwxNDIxLDE0MzEsMCwwLDE0MjEsMSwwLDAsMTQyMSwxNDIzLDAsMCwxNDIyLDE0
MjgsMSwzMDEsMTQyMiwzMzYsMCwwLDE0MjIsMzI5LDAsMCwxNDIyLDE0MjUsMCwwLDE0MjMsMzUs
MCwwLDE0MjQsMTA5NiwwLDAsMTQyNCwxNDMzLDAsMCwxNDI0LDMyOSwwLDAsMTQyNSwxMCwwLDAs
MTQyNiwzNSwwLDAsMTQyNywxNDQwLDAsMCwxNDI3LDEwOTEsMCwwLDE0MjcsODg3LDAsMCwxNDI4
LDQsMCwwLDE0MjksMTM5NSwwLDAsMTQyOSwxLDAsMCwxNDI5LDMyOSwwLDAsMTQzMCw5NTIsMCww
LDE0MzAsMzI5LDAsMCwxNDMwLDEsMCwwLDE0MzAsMTQzNSwwLDAsMTQzMSwyLDAsMCwxNDMyLDMz
NiwwLDAsMTQzMiwxNDM3LDAsMCwxNDMyLDE0NDEsMSwzMDEsMTQzMiwzMjksMCwwLDE0MzMsMTMs
MCwwLDE0MzMsMTQzOCwwLDAsMTQzMywxNDM2LDAsMCwxNDM0LDE0NzUsMCwwLDE0MzQsMTQ0Miwx
LDMwMCwxNDM1LDM1LDAsMCwxNDM3LDEwLDAsMCwxNDM4LDMwLDAsMCwxNDM5LDE0NTQsMCwwLDE0
MzksMzI5LDAsMCwxNDM5LDEwOTYsMCwwLDE0NDAsMTQ0MywwLDAsMTQ0MCwzMzYsMCwwLDE0NDAs
MTQ0NCwxLDMwMSwxNDQwLDMyOSwwLDAsMTQ0MSw0LDAsMCwxNDQyLDE0NTksMCwwLDE0NDIsMTQ0
NywwLDAsMTQ0MiwxNDM0LDEsNDk5LDE0NDIsMTQ0NywxLDMwMSwxNDQzLDEwLDAsMCwxNDQ0LDQs
MCwwLDE0NDUsMTQ5NywwLDAsMTQ0NSwxNDYyLDEsMzAwLDE0NDYsMTA5NiwwLDAsMTQ0NiwzMjks
MCwwLDE0NDYsMTQ1MSwwLDAsMTQ0Nyw0LDAsMCwxNDQ4LDEsMCwwLDE0NDgsMzI5LDAsMCwxNDQ4
LDk1MCwwLDAsMTQ0OCwxNDU1LDAsMCwxNDQ4LDE0NTAsMCwwLDE0NDksMSwwLDAsMTQ0OSwzMjks
MCwwLDE0NDksMTQzNCwwLDAsMTQ1MCwzNSwwLDAsMTQ1MSwxMywwLDAsMTQ1MSwxNDYwLDAsMCwx
NDUxLDE0NTIsMCwwLDE0NTMsMTA5MSwwLDAsMTQ1MywxNDY0LDAsMCwxNDUzLDg4NywwLDAsMTQ1
NCwxMywwLDAsMTQ1NCwxNDYxLDAsMCwxNDU0LDE0NTYsMCwwLDE0NTUsMiwwLDAsMTQ1NywxNDQ1
LDAsMCwxNDU3LDEsMCwwLDE0NTcsMzI5LDAsMCwxNDU4LDE0NzAsMSwzMDAsMTQ1OCwxNTA0LDAs
MCwxNDU5LDMyOSwwLDAsMTQ1OSw5NDYsMCwwLDE0NTksMSwwLDAsMTQ1OSwxNDYzLDAsMCwxNDYw
LDMwLDAsMCwxNDYxLDMwLDAsMCwxNDYyLDE0NjUsMCwwLDE0NjIsMTQ0NSwxLDQ5OSwxNDYyLDE0
NjUsMSwzMDEsMTQ2MiwxNDczLDAsMCwxNDYzLDM1LDAsMCwxNDY0LDMzNiwwLDAsMTQ2NCwzMjks
MCwwLDE0NjQsMTQ2NiwwLDAsMTQ2NCwxNDY4LDEsMzAxLDE0NjUsNCwwLDAsMTQ2NiwxMCwwLDAs
MTQ2NywxNDgxLDEsMzAwLDE0NjcsMTUwNSwwLDAsMTQ2OCw0LDAsMCwxNDY5LDE0NzIsMCwwLDE0
NjksMzI5LDAsMCwxNDY5LDE0NzksMSwzMDEsMTQ2OSwzMzYsMCwwLDE0NzAsMTQ3MSwwLDAsMTQ3
MCwxNDc4LDAsMCwxNDcwLDE0NTgsMSw0OTksMTQ3MCwxNDcxLDEsMzAxLDE0NzEsNCwwLDAsMTQ3
MiwxMCwwLDAsMTQ3MywzMjksMCwwLDE0NzMsOTQ2LDAsMCwxNDczLDE0ODgsMCwwLDE0NzMsMSww
LDAsMTQ3NCwxMDk2LDAsMCwxNDc0LDMyOSwwLDAsMTQ3NCwxNDg2LDAsMCwxNDc1LDk1MCwwLDAs
MTQ3NSwzMjksMCwwLDE0NzUsMTQ3NiwwLDAsMTQ3NSwxLDAsMCwxNDc2LDM1LDAsMCwxNDc3LDEw
OTEsMCwwLDE0NzcsMTQ4NSwwLDAsMTQ3Nyw4ODcsMCwwLDE0NzgsMSwwLDAsMTQ3OCwzMjksMCww
LDE0NzgsOTQ2LDAsMCwxNDc4LDE0ODIsMCwwLDE0NzksNCwwLDAsMTQ4MCwzMjksMCwwLDE0ODAs
MTQ1OCwwLDAsMTQ4MCwxLDAsMCwxNDgxLDE0ODQsMSwzMDEsMTQ4MSwxNDY3LDEsNDk5LDE0ODEs
MTQ4NCwwLDAsMTQ4MSwxNDkyLDAsMCwxNDgyLDM1LDAsMCwxNDgzLDMyOSwwLDAsMTQ4MywxNDY3
LDAsMCwxNDgzLDEsMCwwLDE0ODQsNCwwLDAsMTQ4NSwzMjksMCwwLDE0ODUsMTQ5MSwwLDAsMTQ4
NSwxNDk4LDEsMzAxLDE0ODUsMzM2LDAsMCwxNDg2LDE0ODcsMCwwLDE0ODYsMTQ4OSwwLDAsMTQ4
NiwxMywwLDAsMTQ4OCwzNSwwLDAsMTQ4OSwzMCwwLDAsMTQ5MCwxLDAsMCwxNDkwLDMyOSwwLDAs
MTQ5MCwxNDk1LDAsMCwxNDkxLDEwLDAsMCwxNDkyLDMyOSwwLDAsMTQ5MiwxLDAsMCwxNDkyLDk0
NiwwLDAsMTQ5MiwxNDkzLDAsMCwxNDkzLDM1LDAsMCwxNDk0LDE1MDAsMCwwLDE0OTQsMzI5LDAs
MCwxNDk0LDEwOTYsMCwwLDE0OTUsMTQ5OSwxLDMwMCwxNDk1LDE1MTcsMCwwLDE0OTYsMTUwNiwx
LDMwMSwxNDk2LDE1MDIsMCwwLDE0OTYsMzM2LDAsMCwxNDk2LDMyOSwwLDAsMTQ5NywzMjksMCww
LDE0OTcsMSwwLDAsMTQ5Nyw5NTAsMCwwLDE0OTcsMTUwMSwwLDAsMTQ5OCw0LDAsMCwxNDk5LDYs
MCwwLDE1MDAsMTMsMCwwLDE1MDAsMTUwNywwLDAsMTUwMCwxNTAzLDAsMCwxNTAxLDM1LDAsMCwx
NTAyLDEwLDAsMCwxNTA0LDEsMCwwLDE1MDQsMzI5LDAsMCwxNTA0LDk1MiwwLDAsMTUwNCwxNTEw
LDAsMCwxNTA1LDEsMCwwLDE1MDUsMzI5LDAsMCwxNTA1LDk1MCwwLDAsMTUwNSwxNTA4LDAsMCwx
NTA2LDQsMCwwLDE1MDcsMzAsMCwwLDE1MDgsMzUsMCwwLDE1MDksMTUxMywxLDMwMSwxNTA5LDMz
NiwwLDAsMTUwOSwzMjksMCwwLDE1MDksMTUxMiwwLDAsMTUxMCwzNSwwLDAsMTUxMSwxNTE4LDAs
MCwxNTExLDEwOTEsMCwwLDE1MTEsODg3LDAsMCwxNTEyLDEwLDAsMCwxNTEzLDQsMCwwLDE1MTQs
MTA5NiwwLDAsMTUxNCwzMjksMCwwLDE1MTQsMTUyNCwwLDAsMTUxNSwzMzYsMCwwLDE1MTUsMTUx
OSwxLDMwMSwxNTE1LDMyOSwwLDAsMTUxNSwxNTE2LDAsMCwxNTE2LDEwLDAsMCwxNTE3LDMyOSww
LDAsMTUxNywxLDAsMCwxNTE3LDM0NywwLDAsMTUxNywxNTIwLDAsMCwxNTE4LDEwODksMCwwLDE1
MTgsMzI5LDAsMCwxNTE4LDE1MzcsMCwwLDE1MTksNCwwLDAsMTUyMCwzNSwwLDAsMTUyMSwxLDAs
MCwxNTIxLDMyOSwwLDAsMTUyMSwxNTU0LDAsMCwxNTIyLDE1MjMsMCwwLDE1MjIsMzM2LDAsMCwx
NTIyLDMyOSwwLDAsMTUyMiwxNTI5LDEsMzAxLDE1MjMsMTAsMCwwLDE1MjQsMTMsMCwwLDE1MjQs
MTUzMywwLDAsMTUyNCwxNTI2LDAsMCwxNTI1LDEsMCwwLDE1MjUsMzI5LDAsMCwxNTI1LDE1NTQs
MCwwLDE1MjUsMTUzMiwwLDAsMTUyNywzMjksMCwwLDE1MjcsNTM2LDAsMCwxNTI3LDE1MzUsMCww
LDE1MjgsMTUzNCwxLDMwMSwxNTI4LDMzNiwwLDAsMTUyOCwzMjksMCwwLDE1MjgsMTUzMCwwLDAs
MTUyOSw0LDAsMCwxNTMwLDEwLDAsMCwxNTMxLDMyOSwwLDAsMTUzMSwzMzYsMCwwLDE1MzEsMTUz
NiwwLDAsMTUzMSwxNTM5LDEsMzAxLDE1MzIsMzUsMCwwLDE1MzMsMzAsMCwwLDE1MzQsNCwwLDAs
MTUzNSwxMCwwLDAsMTUzNiwxMCwwLDAsMTUzNywxNTQwLDAsMCwxNTM3LDE1MzgsMCwwLDE1Mzcs
MTMsMCwwLDE1MzksNCwwLDAsMTU0MCwzMCwwLDAsMTU0MSwxMDk2LDAsMCwxNTQxLDMyOSwwLDAs
MTU0MSwxNTQ2LDAsMCwxNTQyLDUzNiwwLDAsMTU0MiwzMjksMCwwLDE1NDIsMTU0NywwLDAsMTU0
MywxNTUwLDEsMzAxLDE1NDMsMzI5LDAsMCwxNTQzLDE1NDQsMCwwLDE1NDMsMzM2LDAsMCwxNTQ0
LDEwLDAsMCwxNTQ1LDE1NTYsMSwzMDEsMTU0NSwzMjksMCwwLDE1NDUsMzM2LDAsMCwxNTQ1LDE1
NTEsMCwwLDE1NDYsMTMsMCwwLDE1NDYsMTU1MiwwLDAsMTU0NiwxNTQ4LDAsMCwxNTQ3LDEwLDAs
MCwxNTQ5LDE1NjIsMCwwLDE1NDksMzI5LDAsMCwxNTQ5LDMzNiwwLDAsMTU0OSwxNTY3LDEsMzAx
LDE1NTAsNCwwLDAsMTU1MSwxMCwwLDAsMTU1MiwzMCwwLDAsMTU1MywxNTU4LDEsMzAxLDE1NTMs
MzI5LDAsMCwxNTUzLDE1NTUsMCwwLDE1NTMsMzM2LDAsMCwxNTU0LDE2MzQsMSw2MTEsMTU1NCwx
NjU2LDEsNTk1LDE1NTQsMTY4NSwxLDYxMiwxNTU0LDE3MDMsMSw2MTMsMTU1NCwxNzI5LDEsNjE0
LDE1NTQsMTc0OCwxLDYxNSwxNTU0LDE3NzEsMSw2MTYsMTU1NCwxNzgxLDEsNjE3LDE1NTQsMTc5
MCwxLDYxOCwxNTU0LDE3OTcsMSw2MTksMTU1NCwxODA1LDEsNjIwLDE1NTQsMTYwOSwxLDYyMSwx
NTU0LDE1OTYsMSw2MjIsMTU1NCwxODIwLDEsNjIzLDE1NTQsMTgyNywxLDYyNCwxNTU0LDE1OTMs
MSw2MjUsMTU1NCwxNTg5LDEsNjI2LDE1NTQsMTU4NywxLDYyNywxNTU0LDE1ODUsMSw2MjgsMTU1
NCwxNTgzLDEsNjI5LDE1NTQsMTU4MSwxLDYzMCwxNTU0LDE4MTEsMSw2MzEsMTU1NCwxNTc3LDEs
NjMyLDE1NTQsMTU3MywxLDYzMywxNTU0LDE1NzAsMSw2MzQsMTU1NCwxNTY4LDEsNjM1LDE1NTQs
MTU2NiwxLDYzNiwxNTU0LDE2MTYsMSw2MzcsMTU1NCwxNjEwLDEsNjM4LDE1NTQsMTU2NCwxLDMw
MCwxNTU0LDE4MzIsMCwwLDE1NTUsMTAsMCwwLDE1NTYsNCwwLDAsMTU1NywzMjksMCwwLDE1NTcs
MzM2LDAsMCwxNTU3LDE1NjAsMCwwLDE1NTcsMTU2MywxLDMwMSwxNTU4LDQsMCwwLDE1NTksNTM2
LDAsMCwxNTU5LDMyOSwwLDAsMTU1OSwxNTYxLDAsMCwxNTYwLDEwLDAsMCwxNTYxLDEwLDAsMCwx
NTYyLDEwLDAsMCwxNTYzLDQsMCwwLDE1NjQsNiwwLDAsMTU2NSwxMDk2LDAsMCwxNTY1LDMyOSww
LDAsMTU2NSwxNTgyLDAsMCwxNTY2LDcsMCwwLDE1NjcsNCwwLDAsMTU2OCw3LDAsMCwxNTY5LDE1
NzUsMCwwLDE1NjksMzI5LDAsMCwxNTY5LDMzNiwwLDAsMTU2OSwxNTc5LDEsMzAxLDE1NzAsNyww
LDAsMTU3MSwzMzYsMCwwLDE1NzEsMTU5MCwxLDMwMSwxNTcxLDMyOSwwLDAsMTU3MSwxNTg2LDAs
MCwxNTcyLDMyOSwwLDAsMTU3MiwzMzYsMCwwLDE1NzIsMTU3NiwwLDAsMTU3MiwxNTgwLDEsMzAx
LDE1NzMsNywwLDAsMTU3NCw1MzYsMCwwLDE1NzQsMzI5LDAsMCwxNTc0LDE1NzgsMCwwLDE1NzUs
MTAsMCwwLDE1NzYsMTAsMCwwLDE1NzcsNywwLDAsMTU3OCwxMCwwLDAsMTU3OSw0LDAsMCwxNTgw
LDQsMCwwLDE1ODEsNywwLDAsMTU4MiwxNTg0LDAsMCwxNTgyLDE1OTUsMCwwLDE1ODIsMTMsMCww
LDE1ODMsNywwLDAsMTU4NSw3LDAsMCwxNTg2LDEwLDAsMCwxNTg3LDcsMCwwLDE1ODgsMTU5MSww
LDAsMTU4OCwzMjksMCwwLDE1ODgsMTU5OCwxLDMwMSwxNTg4LDMzNiwwLDAsMTU4OSw3LDAsMCwx
NTkwLDQsMCwwLDE1OTEsMTAsMCwwLDE1OTIsMTU5NCwwLDAsMTU5MiwzMjksMCwwLDE1OTIsMzM2
LDAsMCwxNTkyLDE2MDAsMSwzMDEsMTU5Myw3LDAsMCwxNTk0LDEwLDAsMCwxNTk1LDMwLDAsMCwx
NTk2LDcsMCwwLDE1OTcsMTYwMiwxLDMwMSwxNTk3LDE1OTksMCwwLDE1OTcsMzI5LDAsMCwxNTk3
LDMzNiwwLDAsMTU5OCw0LDAsMCwxNTk5LDEwLDAsMCwxNjAwLDQsMCwwLDE2MDEsMTYwMywwLDAs
MTYwMSwzMjksMCwwLDE2MDEsMzM2LDAsMCwxNjAxLDE2MDcsMSwzMDEsMTYwMiw0LDAsMCwxNjAz
LDEwLDAsMCwxNjA0LDE2MDgsMCwwLDE2MDQsMzI5LDAsMCwxNjA0LDE2MjAsMSwzMDEsMTYwNCwz
MzYsMCwwLDE2MDUsMTA5NiwwLDAsMTYwNSwxNjExLDAsMCwxNjA1LDMyOSwwLDAsMTYwNiwxNjIy
LDAsMCwxNjA2LDMyOSwwLDAsMTYwNiwxMDk2LDAsMCwxNjA3LDQsMCwwLDE2MDgsMTAsMCwwLDE2
MDksNywwLDAsMTYxMCw3LDAsMCwxNjExLDE2MzEsMCwwLDE2MTEsMTYxMywwLDAsMTYxMSwxMyww
LDAsMTYxMiwxNjM2LDEsMzAxLDE2MTIsMzI5LDAsMCwxNjEyLDMzNiwwLDAsMTYxMiwxNjMzLDAs
MCwxNjE0LDMzNiwwLDAsMTYxNCwxNjE3LDEsMzAxLDE2MTQsMzI5LDAsMCwxNjE0LDE2MTUsMCww
LDE2MTUsMTAsMCwwLDE2MTYsMTYyMywxLDMwMSwxNjE2LDMzNiwwLDAsMTYxNiwxNjE5LDAsMCwx
NjE2LDMyOSwwLDAsMTYxNyw0LDAsMCwxNjE4LDE2MjEsMCwwLDE2MTgsMzM2LDAsMCwxNjE4LDE2
MjQsMSwzMDEsMTYxOCwzMjksMCwwLDE2MTksMTAsMCwwLDE2MjAsNCwwLDAsMTYyMSwxMCwwLDAs
MTYyMiwxMywwLDAsMTYyMiwxNjI1LDAsMCwxNjIyLDE2MzUsMCwwLDE2MjMsNCwwLDAsMTYyNCw0
LDAsMCwxNjI2LDE2MjgsMCwwLDE2MjYsMTYzMCwxLDMwMSwxNjI2LDMyOSwwLDAsMTYyNiwzMzYs
MCwwLDE2MjcsMTYzMiwxLDMwMSwxNjI3LDE2MjksMCwwLDE2MjcsMzM2LDAsMCwxNjI3LDMyOSww
LDAsMTYyOCwxMCwwLDAsMTYyOSwxMCwwLDAsMTYzMCw0LDAsMCwxNjMxLDMwLDAsMCwxNjMyLDQs
MCwwLDE2MzMsMTAsMCwwLDE2MzQsMzM2LDAsMCwxNjM0LDMyOSwwLDAsMTYzNCwxNjQ0LDEsMzAx
LDE2MzQsMTYzOSwwLDAsMTYzNSwzMCwwLDAsMTYzNiw0LDAsMCwxNjM3LDE2NDUsMSwzMDEsMTYz
NywzMzYsMCwwLDE2MzcsMzI5LDAsMCwxNjM3LDE2MzgsMCwwLDE2MzgsMTAsMCwwLDE2MzksMTAs
MCwwLDE2NDAsMzM2LDAsMCwxNjQwLDE2NDgsMSwzMDEsMTY0MCwxNjQyLDAsMCwxNjQwLDMyOSww
LDAsMTY0MSwxNjQ2LDAsMCwxNjQxLDMzNiwwLDAsMTY0MSwzMjksMCwwLDE2NDEsMTY1MSwxLDMw
MSwxNjQyLDEwLDAsMCwxNjQzLDMzNiwwLDAsMTY0MywxNjQ3LDAsMCwxNjQzLDMyOSwwLDAsMTY0
MywxNjUwLDEsMzAxLDE2NDQsNCwwLDAsMTY0NSw0LDAsMCwxNjQ2LDEwLDAsMCwxNjQ3LDEwLDAs
MCwxNjQ4LDQsMCwwLDE2NDksMTY1MywwLDAsMTY0OSwzMjksMCwwLDE2NDksNTM2LDAsMCwxNjUw
LDQsMCwwLDE2NTEsNCwwLDAsMTY1MiwxNjU3LDEsMzAxLDE2NTIsMzI5LDAsMCwxNjUyLDMzNiww
LDAsMTY1MiwxNjU0LDAsMCwxNjUzLDEwLDAsMCwxNjU0LDEwLDAsMCwxNjU1LDE2NjAsMCwwLDE2
NTUsMTA5NiwwLDAsMTY1NSwzMjksMCwwLDE2NTYsMzM2LDAsMCwxNjU2LDMyOSwwLDAsMTY1Niwx
Njc3LDEsMzAxLDE2NTYsMTY2NCwwLDAsMTY1Nyw0LDAsMCwxNjU4LDMzNiwwLDAsMTY1OCwzMjks
MCwwLDE2NTgsMTY2NSwwLDAsMTY1OCwxNjcwLDEsMzAxLDE2NTksMzI5LDAsMCwxNjU5LDMzNiww
LDAsMTY1OSwxNjY5LDEsMzAxLDE2NTksMTY2NiwwLDAsMTY2MCwxMywwLDAsMTY2MCwxNjc0LDAs
MCwxNjYwLDE2NjIsMCwwLDE2NjEsMTY3MywwLDAsMTY2MSwzMzYsMCwwLDE2NjEsMzI5LDAsMCwx
NjYxLDE2NzksMSwzMDEsMTY2MywzMzYsMCwwLDE2NjMsMTY3NiwxLDMwMSwxNjYzLDMyOSwwLDAs
MTY2MywxNjY3LDAsMCwxNjY0LDEwLDAsMCwxNjY1LDEwLDAsMCwxNjY2LDEwLDAsMCwxNjY3LDEw
LDAsMCwxNjY4LDE2NzIsMCwwLDE2NjgsNTM2LDAsMCwxNjY4LDMyOSwwLDAsMTY2OSw0LDAsMCwx
NjcwLDQsMCwwLDE2NzEsMzM2LDAsMCwxNjcxLDMyOSwwLDAsMTY3MSwxNjc1LDAsMCwxNjcxLDE2
NzgsMSwzMDEsMTY3MiwxMCwwLDAsMTY3MywxMCwwLDAsMTY3NCwzMCwwLDAsMTY3NSwxMCwwLDAs
MTY3Niw0LDAsMCwxNjc3LDQsMCwwLDE2NzgsNCwwLDAsMTY3OSw0LDAsMCwxNjgwLDE2ODQsMCww
LDE2ODAsNTM2LDAsMCwxNjgwLDMyOSwwLDAsMTY4MSwxNjg3LDAsMCwxNjgxLDE2OTAsMSwzMDEs
MTY4MSwzMzYsMCwwLDE2ODEsMzI5LDAsMCwxNjgyLDE2ODYsMCwwLDE2ODIsMTY4OCwxLDMwMSwx
NjgyLDMzNiwwLDAsMTY4MiwzMjksMCwwLDE2ODMsMzI5LDAsMCwxNjgzLDEwOTYsMCwwLDE2ODMs
MTY5MSwwLDAsMTY4NCwxMCwwLDAsMTY4NSwxNjkyLDAsMCwxNjg1LDMyOSwwLDAsMTY4NSwxNjk1
LDEsMzAxLDE2ODUsMzM2LDAsMCwxNjg2LDEwLDAsMCwxNjg3LDEwLDAsMCwxNjg4LDQsMCwwLDE2
ODksMTcwMSwxLDMwMSwxNjg5LDMyOSwwLDAsMTY4OSwzMzYsMCwwLDE2ODksMTY5NywwLDAsMTY5
MCw0LDAsMCwxNjkxLDEzLDAsMCwxNjkxLDE3MDAsMCwwLDE2OTEsMTY5MywwLDAsMTY5MiwxMCww
LDAsMTY5NCwxNjk2LDAsMCwxNjk0LDE2OTksMSwzMDEsMTY5NCwzMjksMCwwLDE2OTQsMzM2LDAs
MCwxNjk1LDQsMCwwLDE2OTYsMTAsMCwwLDE2OTcsMTAsMCwwLDE2OTgsMzI5LDAsMCwxNjk4LDMz
NiwwLDAsMTY5OCwxNzAyLDAsMCwxNjk4LDE3MTAsMSwzMDEsMTY5OSw0LDAsMCwxNzAwLDMwLDAs
MCwxNzAxLDQsMCwwLDE3MDIsMTAsMCwwLDE3MDMsMTcxNiwxLDMwMSwxNzAzLDMzNiwwLDAsMTcw
MywzMjksMCwwLDE3MDMsMTcwNiwwLDAsMTcwNCw1MzYsMCwwLDE3MDQsMzI5LDAsMCwxNzA0LDE3
MDcsMCwwLDE3MDUsMzM2LDAsMCwxNzA1LDE3MTIsMSwzMDEsMTcwNSwzMjksMCwwLDE3MDUsMTcw
OCwwLDAsMTcwNiwxMCwwLDAsMTcwNywxMCwwLDAsMTcwOCwxMCwwLDAsMTcwOSwxNzE4LDEsMzAx
LDE3MDksMzI5LDAsMCwxNzA5LDMzNiwwLDAsMTcwOSwxNzE1LDAsMCwxNzEwLDQsMCwwLDE3MTEs
MTA5NiwwLDAsMTcxMSwzMjksMCwwLDE3MTEsMTcxOSwwLDAsMTcxMiw0LDAsMCwxNzEzLDE3MjUs
MSwzMDEsMTcxMywzMzYsMCwwLDE3MTMsMzI5LDAsMCwxNzEzLDE3MjIsMCwwLDE3MTQsMTcyNywx
LDMwMSwxNzE0LDMzNiwwLDAsMTcxNCwzMjksMCwwLDE3MTQsMTcxNywwLDAsMTcxNSwxMCwwLDAs
MTcxNiw0LDAsMCwxNzE3LDEwLDAsMCwxNzE4LDQsMCwwLDE3MTksMTcyMSwwLDAsMTcxOSwxMyww
LDAsMTcxOSwxNzI0LDAsMCwxNzIwLDUzNiwwLDAsMTcyMCwxNzIzLDAsMCwxNzIwLDMyOSwwLDAs
MTcyMiwxMCwwLDAsMTcyMywxMCwwLDAsMTcyNCwzMCwwLDAsMTcyNSw0LDAsMCwxNzI2LDEsMCww
LDE3MjYsMzI5LDAsMCwxNzI2LDk1MCwwLDAsMTcyNiwxNzMxLDAsMCwxNzI2LDE3MjgsMCwwLDE3
MjcsNCwwLDAsMTcyOCwzNSwwLDAsMTcyOSwxNzMwLDAsMCwxNzI5LDMyOSwwLDAsMTcyOSwxNzMy
LDEsMzAxLDE3MjksMzM2LDAsMCwxNzMwLDEwLDAsMCwxNzMxLDIsMCwwLDE3MzIsNCwwLDAsMTcz
MywzMjksMCwwLDE3MzMsNTM2LDAsMCwxNzMzLDE3MzcsMCwwLDE3MzQsMTczOSwxLDMwMSwxNzM0
LDE3MzYsMCwwLDE3MzQsMzI5LDAsMCwxNzM0LDMzNiwwLDAsMTczNSwxNzQ0LDEsMzAxLDE3MzUs
MzI5LDAsMCwxNzM1LDMzNiwwLDAsMTczNSwxNzQxLDAsMCwxNzM2LDEwLDAsMCwxNzM3LDEwLDAs
MCwxNzM4LDEwOTYsMCwwLDE3MzgsMTc1MCwwLDAsMTczOCwzMjksMCwwLDE3MzksNCwwLDAsMTc0
MCwzMzYsMCwwLDE3NDAsMTc0MiwwLDAsMTc0MCwzMjksMCwwLDE3NDAsMTc0NiwxLDMwMSwxNzQx
LDEwLDAsMCwxNzQyLDEwLDAsMCwxNzQzLDE3NTMsMCwwLDE3NDMsMTc1OCwxLDMwMSwxNzQzLDMz
NiwwLDAsMTc0MywzMjksMCwwLDE3NDQsNCwwLDAsMTc0NSwzMjksMCwwLDE3NDUsMzM2LDAsMCwx
NzQ1LDE3NjAsMSwzMDEsMTc0NSwxNzQ5LDAsMCwxNzQ2LDQsMCwwLDE3NDcsMzI5LDAsMCwxNzQ3
LDE3NTcsMCwwLDE3NDcsNTM2LDAsMCwxNzQ4LDE3NTYsMCwwLDE3NDgsMTc2MiwxLDMwMSwxNzQ4
LDMzNiwwLDAsMTc0OCwzMjksMCwwLDE3NDksMTAsMCwwLDE3NTAsMTc1NSwwLDAsMTc1MCwxMyww
LDAsMTc1MCwxNzUyLDAsMCwxNzUxLDMzNiwwLDAsMTc1MSwxNzU5LDEsMzAxLDE3NTEsMzI5LDAs
MCwxNzUxLDE3NTQsMCwwLDE3NTMsMTAsMCwwLDE3NTQsMTAsMCwwLDE3NTUsMzAsMCwwLDE3NTYs
MTAsMCwwLDE3NTcsMTAsMCwwLDE3NTgsNCwwLDAsMTc1OSw0LDAsMCwxNzYwLDQsMCwwLDE3NjEs
MTc2NiwxLDMwMSwxNzYxLDMzNiwwLDAsMTc2MSwzMjksMCwwLDE3NjEsMTc2MywwLDAsMTc2Miw0
LDAsMCwxNzYzLDEwLDAsMCwxNzY0LDE3NjksMSwzMDEsMTc2NCwzMzYsMCwwLDE3NjQsMzI5LDAs
MCwxNzY0LDE3NjcsMCwwLDE3NjUsMzI5LDAsMCwxNzY1LDUzNiwwLDAsMTc2NSwxNzcwLDAsMCwx
NzY2LDQsMCwwLDE3NjcsMTAsMCwwLDE3NjgsMTA5NiwwLDAsMTc2OCwzMjksMCwwLDE3NjgsMTc3
MiwwLDAsMTc2OSw0LDAsMCwxNzcwLDEwLDAsMCwxNzcxLDE3NzcsMSwzMDEsMTc3MSwzMzYsMCww
LDE3NzEsMTc3NCwwLDAsMTc3MSwzMjksMCwwLDE3NzIsMTc3MywwLDAsMTc3MiwxNzc1LDAsMCwx
NzcyLDEzLDAsMCwxNzc0LDEwLDAsMCwxNzc1LDMwLDAsMCwxNzc2LDMyOSwwLDAsMTc3NiwxNzc4
LDAsMCwxNzc2LDUzNiwwLDAsMTc3Nyw0LDAsMCwxNzc4LDEwLDAsMCwxNzc5LDE3ODIsMCwwLDE3
ODAsMTc4MywwLDAsMTc4MCw1MzYsMCwwLDE3ODAsMzI5LDAsMCwxNzgxLDE3ODUsMSwzMDEsMTc4
MSwzMzYsMCwwLDE3ODEsMzI5LDAsMCwxNzgxLDE3ODQsMCwwLDE3ODIsMzI5LDAsMCwxNzgyLDEs
MCwwLDE3ODIsMTc4NiwwLDAsMTc4MywxMCwwLDAsMTc4NCwxMCwwLDAsMTc4NSw0LDAsMCwxNzg2
LDEsMCwwLDE3ODYsMTc4OSwwLDAsMTc4NiwzMjksMCwwLDE3ODcsMTc4OCwwLDAsMTc4NywzMjks
MCwwLDE3ODcsNTM2LDAsMCwxNzg4LDEwLDAsMCwxNzg5LDEsMCwwLDE3ODksMzI5LDAsMCwxNzg5
LDE3OTIsMCwwLDE3OTAsMzM2LDAsMCwxNzkwLDMyOSwwLDAsMTc5MCwxNzkxLDAsMCwxNzkwLDE3
OTMsMSwzMDEsMTc5MSwxMCwwLDAsMTc5MiwxNzk2LDAsMCwxNzkyLDMyOSwwLDAsMTc5MiwxLDAs
MCwxNzkzLDQsMCwwLDE3OTQsMzI5LDAsMCwxNzk0LDUzNiwwLDAsMTc5NCwxNzk1LDAsMCwxNzk1
LDEwLDAsMCwxNzk2LDEsMCwwLDE3OTYsMzI5LDAsMCwxNzk2LDE4MDIsMCwwLDE3OTcsMTc5OSww
LDAsMTc5NywxODAxLDEsMzAxLDE3OTcsMzM2LDAsMCwxNzk3LDMyOSwwLDAsMTc5OCwxODAwLDAs
MCwxNzk4LDUzNiwwLDAsMTc5OCwzMjksMCwwLDE3OTksMTAsMCwwLDE4MDAsMTAsMCwwLDE4MDEs
NCwwLDAsMTgwMiwzMjksMCwwLDE4MDIsMTgwMywwLDAsMTgwMiwxLDAsMCwxODAzLDEsMCwwLDE4
MDMsMzI5LDAsMCwxODAzLDE4MDgsMCwwLDE4MDQsNTM2LDAsMCwxODA0LDE4MDYsMCwwLDE4MDQs
MzI5LDAsMCwxODA1LDE4MDcsMCwwLDE4MDUsMzI5LDAsMCwxODA1LDE4MDksMSwzMDEsMTgwNSwz
MzYsMCwwLDE4MDYsMTAsMCwwLDE4MDcsMTAsMCwwLDE4MDgsMSwwLDAsMTgwOCwzMjksMCwwLDE4
MDgsMTA3NywwLDAsMTgwOSw0LDAsMCwxODEwLDEwOTYsMCwwLDE4MTAsMzI5LDAsMCwxODEwLDE4
MTMsMCwwLDE4MTEsMTgxNywxLDMwMSwxODExLDMzNiwwLDAsMTgxMSwzMjksMCwwLDE4MTEsMTgx
NCwwLDAsMTgxMiwxLDAsMCwxODEyLDMyOSwwLDAsMTgxMiw5NTAsMCwwLDE4MTIsMTgxOSwwLDAs
MTgxMiwxODE2LDAsMCwxODEzLDEzLDAsMCwxODEzLDE4MTgsMCwwLDE4MTMsMTgxNSwwLDAsMTgx
NCwxMCwwLDAsMTgxNiwzNSwwLDAsMTgxNyw0LDAsMCwxODE4LDMwLDAsMCwxODE5LDIsMCwwLDE4
MjAsMTgyMywxLDMwMSwxODIwLDE4MjIsMCwwLDE4MjAsMzI5LDAsMCwxODIwLDMzNiwwLDAsMTgy
MSwxODI0LDAsMCwxODIxLDEwOTYsMCwwLDE4MjEsMzI5LDAsMCwxODIyLDEwLDAsMCwxODIzLDQs
MCwwLDE4MjQsMTgyNSwwLDAsMTgyNCwxODI2LDAsMCwxODI0LDEzLDAsMCwxODI2LDMwLDAsMCwx
ODI3LDE4MjgsMCwwLDE4MjcsMzI5LDAsMCwxODI3LDMzNiwwLDAsMTgyNywxODI5LDEsMzAxLDE4
MjgsMTAsMCwwLDE4MjksNCwwLDAsMTgzMCwzMjksMCwwLDE4MzAsMTA5NiwwLDAsMTgzMCwxODMx
LDAsMCwxODMxLDEzLDAsMCwxODMxLDE4MzMsMCwwLDE4MzEsMTgzNSwwLDAsMTgzMiwxLDAsMCwx
ODMyLDMyOSwwLDAsMTgzMiwxODM0LDAsMCwxODMyLDMzMSwwLDAsMTgzNCwzNSwwLDAsMTgzNSwz
MCwwLDAsMTgzNiwxMDk2LDAsMCwxODM2LDMyOSwwLDAsMTgzNiwxODM3LDAsMCwxODM3LDE4Mzgs
MCwwLDE4MzcsMTgzOSwwLDAsMTgzNywxMywwLDAsMTgzOSwzMCwwLDAsMTg0MCwxMDk2LDAsMCwx
ODQwLDMyOSwwLDAsMTg0MCwxODQxLDAsMCwxODQxLDEzLDAsMCwxODQxLDE4NDMsMCwwLDE4NDEs
MTg0MiwwLDAsMTg0MywzMCwwLDAsMTg0NCwxMDk2LDAsMCwxODQ0LDMyOSwwLDAsMTg0NCwxODQ1
LDAsMCwxODQ1LDE4NDYsMCwwLDE4NDUsMTg0NywwLDAsMTg0NSwxMywwLDAsMTg0NywzMCwwLDAs
MTg0OCwxMDk2LDAsMCwxODQ4LDMyOSwwLDAsMTg0OCwxODQ5LDAsMCwxODQ5LDEzLDAsMCwxODQ5
LDE4NTAsMCwwLDE4NDksMTg1MSwwLDAsMTg1MSwzMCwwLDAsMTg1MiwxMDk2LDAsMCwxODUyLDMy
OSwwLDAsMTg1MiwxODUzLDAsMCwxODUzLDEzLDAsMCwxODUzLDE4NTUsMCwwLDE4NTMsMTg1NCww
LDAsMTg1NSwzMCwwLDAsMTg1NiwxMDk2LDAsMCwxODU2LDMyOSwwLDAsMTg1NiwxODU3LDAsMCwx
ODU3LDIxOTQsMCwwLDE4NTcsMTMsMCwwLDE4NTcsMjE5NSwwLDAsMTg1OCw1MzYsMCwwLDE4NTgs
MzI5LDAsMCwxODU4LDE4NTksMCwwLDE4NTksMTAsMCwwLDE4NjAsMzI5LDAsMCwxODYwLDEwOTYs
MCwwLDE4NjAsMTg3MSwwLDAsMTg2MSwxMDk2LDAsMCwxODYxLDMyOSwwLDAsMTg2MSwxODY3LDAs
MCwxODYyLDMyOSwwLDAsMTg2Miw1MzYsMCwwLDE4NjIsMTg2MywwLDAsMTg2MywxMCwwLDAsMTg2
NCwxMDk2LDAsMCwxODY0LDE4NzUsMCwwLDE4NjQsMzI5LDAsMCwxODY1LDMyOSwwLDAsMTg2NSwx
ODc3LDAsMCwxODY1LDEwOTYsMCwwLDE4NjYsMTg4NSwwLDAsMTg2NiwzMjksMCwwLDE4NjYsMTA5
NiwwLDAsMTg2NywxODcyLDAsMCwxODY3LDE4NjgsMCwwLDE4NjcsMTMsMCwwLDE4NjksMTg3MCww
LDAsMTg2OSwzMjksMCwwLDE4NjksNTM2LDAsMCwxODcwLDEwLDAsMCwxODcxLDE4NzksMCwwLDE4
NzEsMTMsMCwwLDE4NzEsMTg3MywwLDAsMTg3MiwzMCwwLDAsMTg3NCwxODgzLDAsMCwxODc0LDMy
OSwwLDAsMTg3NCwxMDk2LDAsMCwxODc1LDE4NzgsMCwwLDE4NzUsMTg4OSwwLDAsMTg3NSwxMyww
LDAsMTg3NiwxODg2LDAsMCwxODc2LDMyOSwwLDAsMTg3NiwxMDk2LDAsMCwxODc3LDEzLDAsMCwx
ODc3LDE4OTQsMCwwLDE4NzcsMTg4MSwwLDAsMTg3OSwzMCwwLDAsMTg4MCw1MzYsMCwwLDE4ODAs
MzI5LDAsMCwxODgwLDE4ODIsMCwwLDE4ODIsMTAsMCwwLDE4ODMsMTMsMCwwLDE4ODMsMTg5MCww
LDAsMTg4MywxODg0LDAsMCwxODg1LDEzLDAsMCwxODg1LDE4OTEsMCwwLDE4ODUsMTg4NywwLDAs
MTg4NiwxODkyLDAsMCwxODg2LDEzLDAsMCwxODg2LDE4ODgsMCwwLDE4ODksMzAsMCwwLDE4OTAs
MzAsMCwwLDE4OTEsMzAsMCwwLDE4OTIsMzAsMCwwLDE4OTMsMTkwNiwwLDAsMTg5MywzMjksMCww
LDE4OTMsMTA5NiwwLDAsMTg5NCwzMCwwLDAsMTg5NSwxOTAxLDAsMCwxODk1LDMyOSwwLDAsMTg5
NSw1MzYsMCwwLDE4OTYsMzI5LDAsMCwxODk2LDE5MDIsMCwwLDE4OTYsMTA4OSwwLDAsMTg5Nywz
MjksMCwwLDE4OTcsMTkwNSwwLDAsMTg5NywxMDk2LDAsMCwxODk4LDEwOTYsMCwwLDE4OTgsMzI5
LDAsMCwxODk4LDE5MDcsMCwwLDE4OTksMTkxNSwwLDAsMTg5OSwxMDk2LDAsMCwxODk5LDMyOSww
LDAsMTkwMCwxMDk2LDAsMCwxOTAwLDMyOSwwLDAsMTkwMCwxOTA0LDAsMCwxOTAxLDEwLDAsMCwx
OTAyLDEzLDAsMCwxOTAyLDE5MTEsMCwwLDE5MDIsMTkwMywwLDAsMTkwNCwxOTEyLDAsMCwxOTA0
LDEzLDAsMCwxOTA0LDE5MTksMCwwLDE5MDUsMTkwOCwwLDAsMTkwNSwxMywwLDAsMTkwNSwxOTIw
LDAsMCwxOTA2LDEzLDAsMCwxOTA2LDE5MTgsMCwwLDE5MDYsMTkxMywwLDAsMTkwNywxMywwLDAs
MTkwNywxOTEwLDAsMCwxOTA3LDE5MTQsMCwwLDE5MDksMTk0MiwwLDAsMTkwOSwxOTE3LDAsMCwx
OTExLDMwLDAsMCwxOTE0LDMwLDAsMCwxOTE1LDEzLDAsMCwxOTE1LDE5MjIsMCwwLDE5MTUsMTky
MSwwLDAsMTkxNiwzMjksMCwwLDE5MTYsMTkzNSwwLDAsMTkxNiwxMDk2LDAsMCwxOTE3LDEwOTYs
MCwwLDE5MTcsMzI5LDAsMCwxOTE3LDE5MjgsMCwwLDE5MTgsMzAsMCwwLDE5MTksMzAsMCwwLDE5
MjAsMzAsMCwwLDE5MjIsMzAsMCwwLDE5MjMsMTA5NiwwLDAsMTkyMywzMjksMCwwLDE5MjMsMTky
NiwwLDAsMTkyNCwxMDk2LDAsMCwxOTI0LDMyOSwwLDAsMTkyNCwxOTM2LDAsMCwxOTI1LDEwOTYs
MCwwLDE5MjUsMTkyOSwwLDAsMTkyNSwzMjksMCwwLDE5MjYsMTkyNywwLDAsMTkyNiwxOTMyLDAs
MCwxOTI2LDEzLDAsMCwxOTI4LDE5MzEsMCwwLDE5MjgsMTMsMCwwLDE5MjgsMTkzNCwwLDAsMTky
OSwxOTMzLDAsMCwxOTI5LDE5MzksMCwwLDE5MjksMTMsMCwwLDE5MzAsMTk0MSwwLDAsMTkzMCwz
MjksMCwwLDE5MzAsMTA5NiwwLDAsMTkzMiwzMCwwLDAsMTkzNCwzMCwwLDAsMTkzNSwxOTM3LDAs
MCwxOTM1LDEzLDAsMCwxOTM1LDE5NTYsMCwwLDE5MzYsMTkzOCwwLDAsMTkzNiwxOTQ1LDAsMCwx
OTM2LDEzLDAsMCwxOTM5LDMwLDAsMCwxOTQwLDMyOSwwLDAsMTk0MCwxOTQ3LDAsMCwxOTQwLDEw
OTYsMCwwLDE5NDEsMTk0MywwLDAsMTk0MSwxOTQ2LDAsMCwxOTQxLDEzLDAsMCwxOTQyLDEsMCww
LDE5NDIsOTUwLDAsMCwxOTQyLDMyOSwwLDAsMTk0NCwxMDk2LDAsMCwxOTQ0LDE5NTMsMCwwLDE5
NDQsMzI5LDAsMCwxOTQ1LDMwLDAsMCwxOTQ2LDMwLDAsMCwxOTQ3LDE5NDksMCwwLDE5NDcsMTk1
MCwwLDAsMTk0NywxMywwLDAsMTk0OCwxOTgyLDAsMCwxOTQ4LDE5NTIsMCwwLDE5NTAsMzAsMCww
LDE5NTEsMTA5NiwwLDAsMTk1MSwzMjksMCwwLDE5NTEsMTk2MCwwLDAsMTk1MiwxMDk2LDAsMCwx
OTUyLDMyOSwwLDAsMTk1MiwxOTYzLDAsMCwxOTUzLDE5NTQsMCwwLDE5NTMsMTMsMCwwLDE5NTMs
MTk1NywwLDAsMTk1NSwxOTYyLDAsMCwxOTU1LDMyOSwwLDAsMTk1NSwxMDk2LDAsMCwxOTU2LDMw
LDAsMCwxOTU3LDMwLDAsMCwxOTU4LDE5NzAsMCwwLDE5NTgsMTA5NiwwLDAsMTk1OCwzMjksMCww
LDE5NTksMzI5LDAsMCwxOTU5LDEwOTYsMCwwLDE5NTksMTk3NCwwLDAsMTk2MCwxMywwLDAsMTk2
MCwxOTYxLDAsMCwxOTYwLDE5NjcsMCwwLDE5NjIsMTMsMCwwLDE5NjIsMTk2OCwwLDAsMTk2Miwx
OTY0LDAsMCwxOTYzLDEzLDAsMCwxOTYzLDE4NTUsMCwwLDE5NjMsMTk2NSwwLDAsMTk2NiwzMjks
MCwwLDE5NjYsMTk3MiwwLDAsMTk2NiwxMDk2LDAsMCwxOTY3LDMwLDAsMCwxOTY4LDMwLDAsMCwx
OTY5LDEwOTYsMCwwLDE5NjksMzI5LDAsMCwxOTY5LDE5NzgsMCwwLDE5NzAsMTk3MSwwLDAsMTk3
MCwxOTc1LDAsMCwxOTcwLDEzLDAsMCwxOTcyLDEzLDAsMCwxOTcyLDE5ODEsMCwwLDE5NzIsMTk3
MywwLDAsMTk3NCwxOTg3LDAsMCwxOTc0LDEzLDAsMCwxOTc0LDE5NzYsMCwwLDE5NzUsMzAsMCww
LDE5NzcsMTA5NiwwLDAsMTk3NywzMjksMCwwLDE5NzcsMTk4NSwwLDAsMTk3OCwxMywwLDAsMTk3
OCwxOTgzLDAsMCwxOTc4LDE5ODAsMCwwLDE5NzksMTA5NiwwLDAsMTk3OSwzMjksMCwwLDE5Nzks
MTk4OCwwLDAsMTk4MSwzMCwwLDAsMTk4MiwxLDAsMCwxOTgyLDMyOSwwLDAsMTk4Miw5NTAsMCww
LDE5ODMsMzAsMCwwLDE5ODQsMTA5NiwwLDAsMTk4NCwxOTkyLDAsMCwxOTg0LDMyOSwwLDAsMTk4
NSwxOTkwLDAsMCwxOTg1LDEzLDAsMCwxOTg1LDE5ODYsMCwwLDE5ODcsMzAsMCwwLDE5ODgsMTMs
MCwwLDE5ODgsMTk5NiwwLDAsMTk4OCwxOTg5LDAsMCwxOTkwLDMwLDAsMCwxOTkxLDEwOTYsMCww
LDE5OTEsMzI5LDAsMCwxOTkxLDE5OTgsMCwwLDE5OTIsMTMsMCwwLDE5OTIsMTk5MywwLDAsMTk5
MiwxOTk5LDAsMCwxOTk0LDIwNDIsMCwwLDE5OTQsMjAwOCwwLDAsMTk5NSwxMDk2LDAsMCwxOTk1
LDMyOSwwLDAsMTk5NSwyMDA0LDAsMCwxOTk2LDMwLDAsMCwxOTk3LDEwOTYsMCwwLDE5OTcsMzI5
LDAsMCwxOTk3LDIwMTQsMCwwLDE5OTgsMTMsMCwwLDE5OTgsMjAwMywwLDAsMTk5OCwyMDAwLDAs
MCwxOTk5LDMwLDAsMCwyMDAxLDIwMTEsMCwwLDIwMDEsMzI5LDAsMCwyMDAxLDEwOTYsMCwwLDIw
MDIsMjAwNywwLDAsMjAwMiwzMjksMCwwLDIwMDIsMTA5NiwwLDAsMjAwMywzMCwwLDAsMjAwNCwy
MDEwLDAsMCwyMDA0LDEzLDAsMCwyMDA0LDIwMDUsMCwwLDIwMDYsMTA5NiwwLDAsMjAwNiwzMjks
MCwwLDIwMDYsMjAxNSwwLDAsMjAwNywxMywwLDAsMjAwNywyMDIwLDAsMCwyMDA3LDIwMDksMCww
LDIwMDgsMzI5LDAsMCwyMDA4LDIwMjEsMCwwLDIwMDgsMTA5NiwwLDAsMjAxMCwzMCwwLDAsMjAx
MSwxMywwLDAsMjAxMSwyMDIzLDAsMCwyMDExLDIwMTMsMCwwLDIwMTIsMTA5NiwwLDAsMjAxMiwy
MDI1LDAsMCwyMDEyLDMyOSwwLDAsMjAxNCwxMywwLDAsMjAxNCwyMDE2LDAsMCwyMDE0LDIwMTks
MCwwLDIwMTUsMTMsMCwwLDIwMTUsMjAyMiwwLDAsMjAxNSwyMDE4LDAsMCwyMDE3LDEwOTYsMCww
LDIwMTcsMzI5LDAsMCwyMDE3LDIwMjYsMCwwLDIwMTksMzAsMCwwLDIwMjAsMzAsMCwwLDIwMjEs
MjAyNCwwLDAsMjAyMSwyMDI3LDAsMCwyMDIxLDEzLDAsMCwyMDIyLDMwLDAsMCwyMDIzLDMwLDAs
MCwyMDI1LDEzLDAsMCwyMDI1LDIwMzYsMCwwLDIwMjUsMjAzMCwwLDAsMjAyNiwxMywwLDAsMjAy
NiwyMDMyLDAsMCwyMDI2LDIwMjgsMCwwLDIwMjcsMzAsMCwwLDIwMjksMjAzNCwwLDAsMjAyOSwz
MjksMCwwLDIwMjksMTA5NiwwLDAsMjAzMSwxMDk2LDAsMCwyMDMxLDMyOSwwLDAsMjAzMSwyMDM5
LDAsMCwyMDMyLDMwLDAsMCwyMDMzLDEwOTYsMCwwLDIwMzMsMzI5LDAsMCwyMDMzLDIwNDQsMCww
LDIwMzQsMTMsMCwwLDIwMzQsMjA0MCwwLDAsMjAzNCwyMDM1LDAsMCwyMDM2LDMwLDAsMCwyMDM3
LDEwOTYsMCwwLDIwMzcsMzI5LDAsMCwyMDM3LDIwNDksMCwwLDIwMzgsMjA2NiwwLDAsMjAzOCwz
MjksMCwwLDIwMzgsMTA5NiwwLDAsMjAzOSwyMDQ3LDAsMCwyMDM5LDEzLDAsMCwyMDM5LDIwNDEs
MCwwLDIwNDAsMzAsMCwwLDIwNDIsOTUwLDAsMCwyMDQyLDEsMCwwLDIwNDIsMzI5LDAsMCwyMDQz
LDMyOSwwLDAsMjA0MywxMDk2LDAsMCwyMDQzLDIwNTYsMCwwLDIwNDQsMTkzNCwwLDAsMjA0NCwx
MywwLDAsMjA0NCwyMDQ2LDAsMCwyMDQ1LDMyOSwwLDAsMjA0NSwxMDk2LDAsMCwyMDQ1LDIwNTcs
MCwwLDIwNDcsMzAsMCwwLDIwNDgsMTA5NiwwLDAsMjA0OCwzMjksMCwwLDIwNDgsMjA1MiwwLDAs
MjA0OSwyMDUxLDAsMCwyMDQ5LDIwNTAsMCwwLDIwNDksMTMsMCwwLDIwNTEsMzAsMCwwLDIwNTIs
MTMsMCwwLDIwNTIsMjA2MCwwLDAsMjA1MiwyMDUzLDAsMCwyMDU0LDEwOTYsMCwwLDIwNTQsMzI5
LDAsMCwyMDU0LDIwNjQsMCwwLDIwNTUsMjA5MywwLDAsMjA1NSwzMjksMCwwLDIwNTUsMTA5Niww
LDAsMjA1NiwyMDYzLDAsMCwyMDU2LDIwNTgsMCwwLDIwNTYsMTMsMCwwLDIwNTcsMjA2MiwwLDAs
MjA1NywxMywwLDAsMjA1NywyMDYxLDAsMCwyMDU5LDIwOTksMCwwLDIwNTksMjA3MSwwLDAsMjA2
MCwzMCwwLDAsMjA2MiwzMCwwLDAsMjA2MywzMCwwLDAsMjA2NCwyMDY4LDAsMCwyMDY0LDEzLDAs
MCwyMDY0LDIwNjUsMCwwLDIwNjYsMjA2OSwwLDAsMjA2NiwxMywwLDAsMjA2NiwyMDY3LDAsMCwy
MDY4LDMwLDAsMCwyMDY5LDMwLDAsMCwyMDcwLDEwOTYsMCwwLDIwNzAsMzI5LDAsMCwyMDcwLDIw
ODAsMCwwLDIwNzEsMTA5NiwwLDAsMjA3MSwyMDg2LDAsMCwyMDcxLDMyOSwwLDAsMjA3MiwyMDc1
LDAsMCwyMDcyLDMyOSwwLDAsMjA3MiwxMDk2LDAsMCwyMDczLDIwNzgsMCwwLDIwNzMsMTA5Niww
LDAsMjA3MywzMjksMCwwLDIwNzQsMTA5NiwwLDAsMjA3NCwzMjksMCwwLDIwNzQsMjA4NCwwLDAs
MjA3NSwxMywwLDAsMjA3NSwyMDgzLDAsMCwyMDc1LDIwNzYsMCwwLDIwNzcsMTA5NiwwLDAsMjA3
NywzMjksMCwwLDIwNzcsMjA4NSwwLDAsMjA3OCwxMywwLDAsMjA3OCwyMDc5LDAsMCwyMDc4LDIw
ODIsMCwwLDIwODAsMTMsMCwwLDIwODAsMjA5MCwwLDAsMjA4MCwyMDgxLDAsMCwyMDgyLDMwLDAs
MCwyMDgzLDMwLDAsMCwyMDg0LDIwODgsMCwwLDIwODQsMjA5MiwwLDAsMjA4NCwxMywwLDAsMjA4
NSwyMDk0LDAsMCwyMDg1LDIwODcsMCwwLDIwODUsMTMsMCwwLDIwODYsMjA0NywwLDAsMjA4Niwy
MDg5LDAsMCwyMDg2LDEzLDAsMCwyMDkwLDMwLDAsMCwyMDkxLDIxMDcsMCwwLDIwOTEsMTA5Niww
LDAsMjA5MSwzMjksMCwwLDIwOTIsMzAsMCwwLDIwOTMsMjA5NSwwLDAsMjA5MywxMywwLDAsMjA5
MywyMDk3LDAsMCwyMDk0LDMwLDAsMCwyMDk2LDIxMDEsMCwwLDIwOTYsMTA5NiwwLDAsMjA5Niwz
MjksMCwwLDIwOTcsMzAsMCwwLDIwOTgsMTA5NiwwLDAsMjA5OCwzMjksMCwwLDIwOTgsMjEwNCww
LDAsMjA5OSwxLDAsMCwyMDk5LDMyOSwwLDAsMjA5OSw5NTAsMCwwLDIxMDAsMzI5LDAsMCwyMTAw
LDEwOTYsMCwwLDIxMDAsMjExMywwLDAsMjEwMSwxMywwLDAsMjEwMSwyMTExLDAsMCwyMTAxLDIx
MDIsMCwwLDIxMDMsMjExNSwwLDAsMjEwMywzMjksMCwwLDIxMDMsMTA5NiwwLDAsMjEwNCwxMyww
LDAsMjEwNCwyMTE0LDAsMCwyMTA0LDIxMDUsMCwwLDIxMDYsMjE0MCwwLDAsMjEwNiwyMTE4LDAs
MCwyMTA3LDIxMTIsMCwwLDIxMDcsMTMsMCwwLDIxMDcsMjEwOCwwLDAsMjEwOSwxMDk2LDAsMCwy
MTA5LDMyOSwwLDAsMjEwOSwyMTIwLDAsMCwyMTEwLDIxMTksMCwwLDIxMTAsMTA5NiwwLDAsMjEx
MCwzMjksMCwwLDIxMTEsMzAsMCwwLDIxMTIsMzAsMCwwLDIxMTMsMTMsMCwwLDIxMTMsMjExNiww
LDAsMjExMywyMTI1LDAsMCwyMTE0LDMwLDAsMCwyMTE1LDIxMTcsMCwwLDIxMTUsMjEyMSwwLDAs
MjExNSwxMywwLDAsMjExOCwxMDk2LDAsMCwyMTE4LDMyOSwwLDAsMjExOCwyMTI2LDAsMCwyMTE5
LDEzLDAsMCwyMTE5LDIxMjcsMCwwLDIxMTksMjEyNCwwLDAsMjEyMCwxMywwLDAsMjEyMCwyMTMx
LDAsMCwyMTIwLDIxMjIsMCwwLDIxMjEsMzAsMCwwLDIxMjMsMTA5NiwwLDAsMjEyMywzMjksMCww
LDIxMjMsMjEzNywwLDAsMjEyNSwzMCwwLDAsMjEyNiwyMTI5LDAsMCwyMTI2LDIxOTUsMCwwLDIx
MjYsMTMsMCwwLDIxMjcsMzAsMCwwLDIxMjgsMzI5LDAsMCwyMTI4LDIxNDIsMCwwLDIxMjgsMTA5
NiwwLDAsMjEzMCwxMDk2LDAsMCwyMTMwLDMyOSwwLDAsMjEzMCwyMTMyLDAsMCwyMTMxLDMwLDAs
MCwyMTMyLDEzLDAsMCwyMTMyLDIxMzgsMCwwLDIxMzIsMjEzNCwwLDAsMjEzMywxMDk2LDAsMCwy
MTMzLDIxNDUsMCwwLDIxMzMsMzI5LDAsMCwyMTM1LDIxNTYsMCwwLDIxMzUsMzI5LDAsMCwyMTM1
LDEwOTYsMCwwLDIxMzYsMzI5LDAsMCwyMTM2LDEwOTYsMCwwLDIxMzYsMjE0NywwLDAsMjEzNywx
MywwLDAsMjEzNywyMTQzLDAsMCwyMTM3LDIxMzksMCwwLDIxMzgsMzAsMCwwLDIxNDAsMzI5LDAs
MCwyMTQwLDEsMCwwLDIxNDAsOTUwLDAsMCwyMTQxLDEwOTYsMCwwLDIxNDEsMzI5LDAsMCwyMTQx
LDIxNTIsMCwwLDIxNDIsMTMsMCwwLDIxNDIsMjE0OCwwLDAsMjE0MiwyMTQ0LDAsMCwyMTQzLDMw
LDAsMCwyMTQ1LDIxNDksMCwwLDIxNDUsMjE0NiwwLDAsMjE0NSwxMywwLDAsMjE0NywyMTYwLDAs
MCwyMTQ3LDEzLDAsMCwyMTQ3LDIxNTAsMCwwLDIxNDgsMzAsMCwwLDIxNDksMzAsMCwwLDIxNTEs
NTM2LDAsMCwyMTUxLDMyOSwwLDAsMjE1MSwyMTUzLDAsMCwyMTUyLDEzLDAsMCwyMTUyLDIxNTcs
MCwwLDIxNTIsMjE1NCwwLDAsMjE1MywxMCwwLDAsMjE1NSwxMDk2LDAsMCwyMTU1LDMyOSwwLDAs
MjE1NSwyMTc2LDAsMCwyMTU2LDEzLDAsMCwyMTU2LDIxNjMsMCwwLDIxNTYsMjE1OCwwLDAsMjE1
NywzMCwwLDAsMjE1OSw1MzYsMCwwLDIxNTksMjE2MiwwLDAsMjE1OSwzMjksMCwwLDIxNjAsMzAs
MCwwLDIxNjEsMjE2OSwwLDAsMjE2MSwzMjksMCwwLDIxNjEsMTA5NiwwLDAsMjE2MiwxMCwwLDAs
MjE2MywzMCwwLDAsMjE2NCwzMjksMCwwLDIxNjQsMjE2NywwLDAsMjE2NCwxMDk2LDAsMCwyMTY1
LDMyOSwwLDAsMjE2NSwyMTcwLDAsMCwyMTY1LDEwOTYsMCwwLDIxNjYsMTA5NiwwLDAsMjE2Niwy
MTcyLDAsMCwyMTY2LDMyOSwwLDAsMjE2NywyMTY4LDAsMCwyMTY3LDIxNzMsMCwwLDIxNjcsMTMs
MCwwLDIxNjksMjE4MCwwLDAsMjE2OSwyMTcxLDAsMCwyMTY5LDEzLDAsMCwyMTcwLDIxODMsMCww
LDIxNzAsMjE3NywwLDAsMjE3MCwxMywwLDAsMjE3MiwxMywwLDAsMjE3MiwyMTg1LDAsMCwyMTcy
LDIxODIsMCwwLDIxNzMsMzAsMCwwLDIxNzQsMTQ5MCwwLDAsMjE3NSwxMDk2LDAsMCwyMTc1LDIx
ODQsMCwwLDIxNzUsMzI5LDAsMCwyMTc2LDIxOTMsMCwwLDIxNzYsMjE3OCwwLDAsMjE3NiwxMyww
LDAsMjE3OSwyMTg5LDAsMCwyMTc5LDMyOSwwLDAsMjE3OSwxMDk2LDAsMCwyMTgwLDMwLDAsMCwy
MTgxLDIxODYsMCwwLDIxODMsMzAsMCwwLDIxODQsMjE5MCwwLDAsMjE4NCwxMywwLDAsMjE4NCwy
MTg3LDAsMCwyMTg1LDMwLDAsMCwyMTg4LDMyOSwwLDAsMjE4OCwxMDk2LDAsMCwyMTg4LDIxOTgs
MCwwLDIxODksMTMsMCwwLDIxODksMjE5NiwwLDAsMjE4OSwyMTkxLDAsMCwyMTkwLDMwLDAsMCwy
MTkyLDEwOTYsMCwwLDIxOTIsMzI5LDAsMCwyMTkyLDIyMDEsMCwwLDIxOTMsMzAsMCwwLDIxOTUs
MzAsMCwwLDIxOTYsMzAsMCwwLDIxOTcsMjIwMiwwLDAsMjE5NywyMjA1LDEsMzAxLDIxOTcsMzI5
LDAsMCwyMTk3LDMzNiwwLDAsMjE5OCwyMjAwLDAsMCwyMTk4LDIyMDMsMCwwLDIxOTgsMTMsMCww
LDIxOTksMjIwNiwwLDAsMjE5OSwzMjksMCwwLDIxOTksMTA5NiwwLDAsMjIwMSwyMjA0LDAsMCwy
MjAxLDIyMDgsMCwwLDIyMDEsMTMsMCwwLDIyMDIsMTAsMCwwLDIyMDMsMzAsMCwwLDIyMDUsNCww
LDAsMjIwNiwxMywwLDAsMjIwNiwyMjA3LDAsMCwyMjA2LDIwMjcsMCwwLDIyMDgsMzAsMCwwLDIy
MDksMjIxMCwwLDAsMjIwOSwzMjksMCwwLDIyMDksMzM2LDAsMCwyMjA5LDIyMTEsMSwzMDEsMjIx
MCwxMCwwLDAsMjIxMSw0LDAsMCwyMjEyLDIyMTMsMCwwLDIyMTIsOTQ2LDEsNDk5LDIyMTIsMjIx
MywxLDMwMSwyMjEyLDIyMTQsMCwwLDIyMTMsNCwwLDAsMjIxNCwyMjE1LDAsMCwyMjE0LDk0Niww
LDAsMjIxNCwzMjksMCwwLDIyMTQsMSwwLDAsMjIxNSwzNSwwLDAsMjIxNiwxMTMxLDEsNDk5LDIy
MTYsMTUxMSwxLDUwMCwyMjE2LDMyOCwwLDAsMjIxNiwxMTMyLDAsMCwyMjE2LDIyMTcsMSwzMDEs
MjIxNiwyMjE3LDAsMCwyMjE2LDIyMTgsMCwwLDIyMTcsNCwwLDAsMjIxOCwxLDAsMCwyMjE4LDMy
OSwwLDAsMjIxOCw5NDYsMCwwLDIyMTgsMjIxOSwwLDAsMjIxOSwzMjksMCwwLDIyMTksMjIyMCww
LDAsMjIxOSw5NDYsMCwwLDIyMTksMSwwLDAsMjIyMCwzNSwwLDAsMjIyMSwyMjI0LDEsNDk5LDIy
MjEsMjIyMiwwLDAsMjIyMSwyMjIzLDAsMCwyMjIxLDIyMjksMCwwLDIyMjEsMjIyMywxLDMwMSwy
MjIyLDMyOSwwLDAsMjIyMiwxLDAsMCwyMjIyLDIyMjQsMCwwLDIyMjMsNCwwLDAsMjIyNCwzMjgs
MSw1MjMsMjIyNCwyMjI2LDAsMCwyMjI0LDIyMjUsMSwzMDEsMjIyNCwyMjIxLDEsMzAwLDIyMjUs
NCwwLDAsMjIyNiwyMjI3LDAsMCwyMjI2LDk1MiwwLDAsMjIyNiwzMjksMCwwLDIyMjYsMSwwLDAs
MjIyNywyMjI4LDAsMCwyMjI3LDk1MiwwLDAsMjIyNywzMjksMCwwLDIyMjcsMSwwLDAsMjIyOCwx
LDAsMCwyMjI4LDMyOSwwLDAsMjIyOCw5NTIsMCwwLDIyMjgsODc0LDAsMCwyMjI5LDEsMCwwLDIy
MjksMzI5LDAsMCwyMjI5LDIzMTUsMCwwLDIyMjksMjIzMCwwLDAsMjIzMCwyMjMxLDAsMCwyMjMw
LDEsMCwwLDIyMzAsMjMxNSwwLDAsMjIzMCwzMjksMCwwLDIyMzEsODgwLDAsMCwyMjMxLDIzMTUs
MCwwLDIyMzEsMzI5LDAsMCwyMjMxLDEsMCwwLDIyMzIsMjIzMywwLDAsMjIzMiwyMjM1LDEsNDk5
LDIyMzIsMjIyOSwwLDAsMjIzMiwyMjM0LDAsMCwyMjMyLDIyMzQsMSwzMDEsMjIzMywxLDAsMCwy
MjMzLDMyOSwwLDAsMjIzMywyMjM1LDAsMCwyMjM0LDQsMCwwLDIyMzUsMjIzNiwxLDMwMSwyMjM1
LDMyOCwxLDUyMywyMjM1LDIyMzIsMSwzMDAsMjIzNSwyMjI2LDAsMCwyMjM2LDQsMCwwLDIyMzcs
MjI0OCwxLDIwOCwyMjM3LDIyNDUsMSw2MzksMjIzNywyMjQyLDEsNjQwLDIyMzcsMjIzOSwxLDY0
MSwyMjM3LDk1MCwxLDQ5OSwyMjM3LDIyNTEsMCwwLDIyMzcsMjIzOCwwLDAsMjIzNywyMjM4LDEs
MzAxLDIyMzgsNCwwLDAsMjIzOSwyMjQwLDAsMCwyMjM5LDMyOSwwLDAsMjIzOSwzMzYsMCwwLDIy
MzksMjI0MSwxLDMwMSwyMjQwLDEwLDAsMCwyMjQxLDQsMCwwLDIyNDIsMjI0MywwLDAsMjI0Miwz
MjksMCwwLDIyNDIsMzM2LDAsMCwyMjQyLDIyNDQsMSwzMDEsMjI0MywxMCwwLDAsMjI0NCw0LDAs
MCwyMjQ1LDMyOSwwLDAsMjI0NSwyMjQ2LDAsMCwyMjQ1LDIyNDcsMSwzMDEsMjI0NSwzMzYsMCww
LDIyNDYsMTAsMCwwLDIyNDcsNCwwLDAsMjI0OCwyMjUwLDEsMzAxLDIyNDgsMjI0OSwwLDAsMjI0
OCwzMjksMCwwLDIyNDgsMzM2LDAsMCwyMjQ5LDEwLDAsMCwyMjUwLDQsMCwwLDIyNTEsMjI1Miww
LDAsMjI1MSw5NDYsMCwwLDIyNTEsMzI5LDAsMCwyMjUxLDEsMCwwLDIyNTIsMzUsMCwwLDIyNTMs
MjI1NCwwLDAsMjI1Myw3NjgsMSw2NDIsMjI1MywxNTExLDEsNTAwLDIyNTMsOTc3LDEsNDk5LDIy
NTMsMjI1NCwxLDMwMSwyMjUzLDIyNTUsMCwwLDIyNTQsNCwwLDAsMjI1NSwxLDAsMCwyMjU1LDMy
OSwwLDAsMjI1NSw5NDYsMCwwLDIyNTUsMjI1NiwwLDAsMjI1NiwzNSwwLDAsMjI1NywyMjU4LDEs
MzAxLDIyNTcsMjM1NSwwLDAsMjI1NywyMjU4LDAsMCwyMjU3LDExMjgsMSw0OTksMjI1NywxNTEx
LDEsNTAwLDIyNTcsMjI1OSwxLDY0MywyMjU3LDIzNTYsMSw2NDQsMjI1OCw0LDAsMCwyMjU5LDIy
NjEsMSwzMDEsMjI1OSwyMjYwLDAsMCwyMjU5LDMyOSwwLDAsMjI1OSwzMzYsMCwwLDIyNjAsMTAs
MCwwLDIyNjEsNCwwLDAsMjI2Miw2LDAsMCwyMjYzLDYsMCwwLDIyNjQsNiwwLDAsMjI2NSw2LDAs
MCwyMjY2LDYsMCwwLDIyNjcsNiwwLDAsMjI2OCw2LDAsMCwyMjY5LDYsMCwwLDIyNzAsNiwwLDAs
MjI3MSw2LDAsMCwyMjcyLDYsMCwwLDIyNzMsNiwwLDAsMjI3NCw2LDAsMCwyMjc1LDYsMCwwLDIy
NzYsNiwwLDAsMjI3Nyw2LDAsMCwyMjc4LDYsMCwwLDIyNzksNiwwLDAsMjI4MCw2LDAsMCwyMjgx
LDYsMCwwLDIyODIsNiwwLDAsMjI4Myw2LDAsMCwyMjg0LDYsMCwwLDIyODUsNiwwLDAsMjI4Niw2
LDAsMCwyMjg3LDYsMCwwLDIyODgsNiwwLDAsMjI4OSw2LDAsMCwyMjkwLDYsMCwwLDIyOTEsNiww
LDAsMjI5Miw2LDAsMCwyMjkzLDYsMCwwLDIyOTQsMTI2OCwwLDAsMjI5NCwxMzc4LDEsNjQ1LDIy
OTQsMTM5MSwxLDY0NiwyMjk0LDE0MDMsMSw2NDcsMjI5NCwxNDQyLDEsNjQ4LDIyOTQsMTQ2Miwx
LDY0OSwyMjk0LDE0NzAsMSw2NTAsMjI5NCwxNDgxLDEsNjUxLDIyOTUsMjM0MSwwLDAsMjI5NSwy
MzAyLDEsNjUyLDIyOTUsMjMyMSwxLDY1MywyMjk2LDYsMCwwLDIyOTcsMjMyNiwwLDAsMjI5Nyw5
MjQsMSw2NTQsMjI5NywxMTA4LDEsNjU1LDIyOTcsMTAyMSwxLDY1NiwyMjk3LDExODUsMSw2NTcs
MjI5NywyMzEwLDEsNjU4LDIyOTgsNiwwLDAsMjI5OSwzMzYsMCwwLDIyOTksMzI5LDAsMCwyMjk5
LDIzMDMsMCwwLDIyOTksMjMwNywxLDMwMSwyMzAwLDYsMCwwLDIzMDEsNiwwLDAsMjMwMiwzMzYs
MCwwLDIzMDIsMzI5LDAsMCwyMzAyLDIzMDUsMCwwLDIzMDIsMjMxMywxLDMwMSwyMzAzLDEwLDAs
MCwyMzA0LDIzMjIsMCwwLDIzMDQsMTUxMSwxLDUwMCwyMzA0LDEyMDUsMSw0OTksMjMwNCwyMzA4
LDEsMzAxLDIzMDQsMjMwOCwwLDAsMjMwNSwxMCwwLDAsMjMwNiwyMzExLDAsMCwyMzA2LDIzMTEs
MSwzMDEsMjMwNiwxNTExLDEsNTAwLDIzMDYsMjMyOSwwLDAsMjMwNiwxMjAwLDEsNDk5LDIzMDcs
NCwwLDAsMjMwOCw0LDAsMCwyMzA5LDYsMCwwLDIzMTAsMjMxMiwwLDAsMjMxMCwzMjksMCwwLDIz
MTAsMjMxOSwxLDMwMSwyMzEwLDMzNiwwLDAsMjMxMSw0LDAsMCwyMzEyLDEwLDAsMCwyMzEzLDQs
MCwwLDIzMTQsMTIxMCwxLDQ5OSwyMzE0LDE1MTEsMSw1MDAsMjMxNCwyMzE2LDAsMCwyMzE0LDIz
MjgsMSw2NTksMjMxNCwyMzUzLDEsNjYwLDIzMTQsMjM3OCwwLDAsMjMxNCwyMzE2LDEsMzAxLDIz
MTUsOTUyLDEsNDk5LDIzMTUsMjMxNywwLDAsMjMxNSwyMzI1LDAsMCwyMzE1LDIzMTcsMSwzMDEs
MjMxNiw0LDAsMCwyMzE3LDQsMCwwLDIzMTgsMjMyMCwwLDAsMjMxOCwyMzIwLDEsMzAxLDIzMTgs
MjMzNCwwLDAsMjMxOCwxMTg0LDEsNDk5LDIzMTksNCwwLDAsMjMyMCw0LDAsMCwyMzIxLDIzMjMs
MCwwLDIzMjEsMzI5LDAsMCwyMzIxLDMzNiwwLDAsMjMyMSwyMzI0LDEsMzAxLDIzMjIsMjMzMSww
LDAsMjMyMiw5NDYsMCwwLDIzMjIsMzI5LDAsMCwyMzIyLDEsMCwwLDIzMjMsMTAsMCwwLDIzMjQs
NCwwLDAsMjMyNSw5NDYsMCwwLDIzMjUsMjMyNywwLDAsMjMyNSwzMjksMCwwLDIzMjUsMSwwLDAs
MjMyNiwzMjksMCwwLDIzMjYsMSwwLDAsMjMyNiw5NTAsMCwwLDIzMjYsMjMzOCwwLDAsMjMyNywz
NSwwLDAsMjMyOCwzMjksMCwwLDIzMjgsMTA5NiwwLDAsMjMyOCwyMzM5LDAsMCwyMzI5LDk0Niww
LDAsMjMyOSwyMzQwLDAsMCwyMzI5LDMyOSwwLDAsMjMyOSwxLDAsMCwyMzMwLDMyOSwwLDAsMjMz
MCwyMzMyLDAsMCwyMzMwLDMzNiwwLDAsMjMzMCwyMzM1LDEsMzAxLDIzMzEsMzI5LDAsMCwyMzMx
LDEsMCwwLDIzMzEsOTQ2LDAsMCwyMzMxLDIzMzMsMCwwLDIzMzIsMTAsMCwwLDIzMzMsMzUsMCww
LDIzMzQsMSwwLDAsMjMzNCwzMjksMCwwLDIzMzQsOTQ2LDAsMCwyMzM0LDIzMzcsMCwwLDIzMzUs
NCwwLDAsMjMzNiwyMzQ3LDAsMCwyMzM2LDIzNzksMCwwLDIzMzYsMjM0NywxLDMwMSwyMzM2LDEx
MzYsMSw0OTksMjMzNiwyMTk3LDEsMjk1LDIzMzYsMjIwOSwxLDI5NCwyMzM2LDIzNjMsMSw2NjEs
MjMzNywzNSwwLDAsMjMzOCwyMzQzLDAsMCwyMzM4LDk1MCwwLDAsMjMzOCwxLDAsMCwyMzM4LDMy
OSwwLDAsMjMzOSwyMzQ2LDAsMCwyMzM5LDIzNDIsMCwwLDIzMzksMTMsMCwwLDIzNDAsOTQ2LDAs
MCwyMzQwLDIzNDQsMCwwLDIzNDAsMzI5LDAsMCwyMzQwLDEsMCwwLDIzNDEsMzI5LDAsMCwyMzQx
LDk1MCwwLDAsMjM0MSwxLDAsMCwyMzQxLDIzNDUsMCwwLDIzNDMsMzUsMCwwLDIzNDQsMzUsMCww
LDIzNDUsMzUsMCwwLDIzNDYsMzAsMCwwLDIzNDcsNCwwLDAsMjM0OCwyMzUwLDAsMCwyMzQ4LDMy
OSwwLDAsMjM0OCwyMzUxLDEsMzAxLDIzNDgsMzM2LDAsMCwyMzQ5LDIzNTIsMCwwLDIzNDksMTE1
MSwxLDQ5OSwyMzQ5LDIzNjUsMCwwLDIzNDksMjM1MiwxLDMwMSwyMzUwLDEwLDAsMCwyMzUxLDQs
MCwwLDIzNTIsNCwwLDAsMjM1MywyMzYxLDAsMCwyMzUzLDMyOSwwLDAsMjM1MywxMDk2LDAsMCwy
MzU0LDIzNzQsMSw2NjIsMjM1NCwyMzczLDEsNjYzLDIzNTQsMjM2OSwxLDY2NCwyMzU0LDExMzUs
MSw0OTksMjM1NCwyMzU5LDEsMzAxLDIzNTQsMjM3NSwxLDY2NSwyMzU0LDIzNzYsMSw2NjYsMjM1
NCwyMzc3LDEsNjY3LDIzNTQsMjM4MSwxLDY2OCwyMzU0LDIzODQsMSw2NjksMjM1NCwyMzg2LDEs
NjcwLDIzNTQsMjM4OSwxLDY3MSwyMzU0LDIzOTAsMSw2NzIsMjM1NCwyMzU5LDAsMCwyMzU0LDIz
OTIsMCwwLDIzNTQsMjM4OCwxLDY3MywyMzU1LDEsMCwwLDIzNTUsMjM1NywwLDAsMjM1NSw5NDYs
MCwwLDIzNTUsMzI5LDAsMCwyMzU2LDIzNjAsMSwzMDEsMjM1NiwyMzU4LDAsMCwyMzU2LDMyOSww
LDAsMjM1NiwzMzYsMCwwLDIzNTcsMzUsMCwwLDIzNTgsMTAsMCwwLDIzNTksNCwwLDAsMjM2MCw0
LDAsMCwyMzYxLDIzNjQsMCwwLDIzNjEsMjM2OCwwLDAsMjM2MSwxMywwLDAsMjM2MiwxLDAsMCwy
MzYyLDMyOSwwLDAsMjM2MiwyMzcyLDAsMCwyMzYyLDIzNjYsMCwwLDIzNjMsMzM2LDAsMCwyMzYz
LDMyOSwwLDAsMjM2MywyMzY3LDAsMCwyMzYzLDIzNzEsMSwzMDEsMjM2NSwxLDAsMCwyMzY1LDMy
OSwwLDAsMjM2NSw5NDYsMCwwLDIzNjUsMjM3MCwwLDAsMjM2NiwzNSwwLDAsMjM2NywxMCwwLDAs
MjM2OCwzMCwwLDAsMjM2OSwxNywwLDAsMjM3MCwzNSwwLDAsMjM3MSw0LDAsMCwyMzcyLDIzODIs
MCwwLDIzNzMsMTcsMCwwLDIzNzQsMTcsMCwwLDIzNzUsMTcsMCwwLDIzNzYsMTcsMCwwLDIzNzcs
MTcsMCwwLDIzNzgsMSwwLDAsMjM3OCwzMjksMCwwLDIzNzgsOTQ2LDAsMCwyMzc4LDIzODAsMCww
LDIzNzksOTQ2LDAsMCwyMzc5LDIzODMsMCwwLDIzNzksMzI5LDAsMCwyMzc5LDEsMCwwLDIzODAs
MzUsMCwwLDIzODEsMTcsMCwwLDIzODIsMjM4NSwwLDAsMjM4MiwyMzg3LDAsMCwyMzgyLDMyOSww
LDAsMjM4MiwxLDAsMCwyMzgzLDM1LDAsMCwyMzg0LDE3LDAsMCwyMzg1LDM1LDAsMCwyMzg2LDE3
LDAsMCwyMzg3LDIzOTEsMCwwLDIzODgsMTcsMCwwLDIzODksMTcsMCwwLDIzOTAsMTcsMCwwLDIz
OTEsMzI5LDAsMCwyMzkxLDEsMCwwLDIzOTEsMzMxLDAsMCwyMzkyLDIzOTQsMCwwLDIzOTIsOTQ2
LDAsMCwyMzkyLDMyOSwwLDAsMjM5MiwxLDAsMCwyMzkzLDIzOTUsMCwwLDIzOTMsMjM3MiwwLDAs
MjM5MywzMjksMCwwLDIzOTMsMSwwLDAsMjM5NCwzNSwwLDAsMjM5NSwzNSwwLDAsMjM5Niw0LDAs
MCwyMzk3LDUsMCwwXSwiZWRnZVR5cGVzIjpbIkludGVybmFsIiwiUHJvcGVydHkiLCJJbmRleCIs
IlZhcmlhYmxlIl0sImVkZ2VOYW1lcyI6WyJQcml2YXRlU3ltYm9sLnJlYWRhYmxlU3RyZWFtRGVm
YXVsdENvbnRyb2xsZXJDYW5DbG9zZU9yRW5xdWV1ZSIsIlJUQ1J0cFJlY2VpdmVyIiwiUHJpdmF0
ZVN5bWJvbC5pc1JlYWRhYmxlU3RyZWFtRGlzdHVyYmVkIiwiUHJpdmF0ZVN5bWJvbC5hc3luY0dl
bmVyYXRvclJlc29sdmUiLCJQcml2YXRlU3ltYm9sLnJlZ0V4cE1hdGNoRmFzdCIsIlByaXZhdGVT
eW1ib2wucmVnRXhwU3BsaXRGYXN0IiwiUHJpdmF0ZVN5bWJvbC5yZWFkYWJsZVN0cmVhbUFkZFJl
YWRSZXF1ZXN0IiwiUHJpdmF0ZVN5bWJvbC5wcml2YXRlSW5pdGlhbGl6ZVJlYWRhYmxlU3RyZWFt
RGVmYXVsdENvbnRyb2xsZXIiLCJQcml2YXRlU3ltYm9sLmhhc093bkxlbmd0aFByb3BlcnR5Iiwi
UHJpdmF0ZVN5bWJvbC5jcmVhdGVBcnJheUl0ZXJhdG9yIiwiUHJpdmF0ZVN5bWJvbC5TZXQiLCJQ
cml2YXRlU3ltYm9sLmNsb3NlV3JpdGFibGVTdHJlYW0iLCJQcml2YXRlU3ltYm9sLnJlYWRhYmxl
U3RyZWFtQ2xvc2UiLCJQcml2YXRlU3ltYm9sLmhvc3RQcm9taXNlUmVqZWN0aW9uVHJhY2tlciIs
IlByaXZhdGVTeW1ib2wuYXNzZXJ0IiwiUHJpdmF0ZVN5bWJvbC5JbnRlcm5hbFByb21pc2UiLCJQ
cml2YXRlU3ltYm9sLm1hcEl0ZXJhdG9yTmV4dCIsIlByaXZhdGVTeW1ib2wudGhpc1RpbWVWYWx1
ZSIsIlByaXZhdGVTeW1ib2wuaXNBcnJheSIsIlByaXZhdGVTeW1ib2wuZ2V0RGVmYXVsdENvbGxh
dG9yIiwiUHJpdmF0ZVN5bWJvbC5wcml2YXRlSW5pdGlhbGl6ZVJlYWRhYmxlU3RyZWFtQllPQlJl
cXVlc3QiLCJQcml2YXRlU3ltYm9sLmlzQXJyYXlTbG93IiwiUHJpdmF0ZVN5bWJvbC5pbXBvcnRN
b2R1bGUiLCJQcml2YXRlU3ltYm9sLmNvbmNhdFNsb3dQYXRoIiwiUHJpdmF0ZVN5bWJvbC5lbnF1
ZXVlSm9iIiwiUHJpdmF0ZVN5bWJvbC5yZWdFeHBQcm90b1NvdXJjZUdldHRlciIsIlByaXZhdGVT
eW1ib2wucmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlckNsb3NlIiwiUHJpdmF0ZVN5bWJv
bC5hc3luY0dlbmVyYXRvclF1ZXVlSXNFbXB0eSIsIlByaXZhdGVTeW1ib2wuaXNDb25zdHJ1Y3Rv
ciIsIlByaXZhdGVTeW1ib2wubmV3UHJvbWlzZVJlYWN0aW9uIiwiUHJpdmF0ZVN5bWJvbC5yZWFk
YWJsZVN0cmVhbUVycm9yIiwiUHJpdmF0ZVN5bWJvbC5jcmVhdGVTZXRJdGVyYXRvciIsIlByaXZh
dGVTeW1ib2wuUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIiwiUHJpdmF0ZVN5bWJvbC5nZXRD
YXRjaEZpbmFsbHkiLCJQcml2YXRlU3ltYm9sLnN0cmluZ1NwbGl0RmFzdCIsIlByaXZhdGVTeW1i
b2wucmVhZGFibGVTdHJlYW1QaXBlVG8iLCJQcml2YXRlU3ltYm9sLmFycmF5SXRlcmF0b3JLZXlW
YWx1ZU5leHQiLCJQcml2YXRlU3ltYm9sLmNvcHlEYXRhUHJvcGVydGllcyIsIlByaXZhdGVTeW1i
b2wuc3RydWN0dXJlZENsb25lQXJyYXlCdWZmZXIiLCJQcml2YXRlU3ltYm9sLnJlYWRhYmxlU3Ry
ZWFtUmVhZGVyR2VuZXJpY0luaXRpYWxpemUiLCJQcml2YXRlU3ltYm9sLnNwZWNpZXNDb25zdHJ1
Y3RvciIsIlByaXZhdGVTeW1ib2wucmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlclNob3VsZENh
bGxQdWxsIiwiUHJpdmF0ZVN5bWJvbC5vYmplY3RBbmRDYWxsYmFja3NPdmVybG9hZCIsIlByaXZh
dGVTeW1ib2wuYXN5bmNHZW5lcmF0b3JRdWV1ZURlcXVldWUiLCJQcml2YXRlU3ltYm9sLm1hcEJ1
Y2tldEhlYWQiLCJQcml2YXRlU3ltYm9sLm1hcEJ1Y2tldE5leHQiLCJQcml2YXRlU3ltYm9sLnJl
YWRhYmxlU3RyZWFtVGVlQnJhbmNoMkNhbmNlbEZ1bmN0aW9uIiwiUHJpdmF0ZVN5bWJvbC5yZWdF
eHBCdWlsdGluRXhlYyIsIlByaXZhdGVTeW1ib2wubWF0Y2hTbG93IiwiUHJpdmF0ZVN5bWJvbC5p
c05hTiIsIlByaXZhdGVTeW1ib2wucmVhZGFibGVTdHJlYW1UZWUiLCJQcml2YXRlU3ltYm9sLnJl
YWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJDb21taXREZXNjcmlwdG9yIiwiUHJpdmF0ZVN5bWJv
bC5OdW1iZXJGb3JtYXQiLCJQcml2YXRlU3ltYm9sLnJlcGVhdENoYXJhY3RlcnNTbG93UGF0aCIs
IlByaXZhdGVTeW1ib2wucmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlckNhbGxQdWxsSWZOZWVk
ZWQiLCJQcml2YXRlU3ltYm9sLmVycm9yV3JpdGFibGVTdHJlYW0iLCJQcml2YXRlU3ltYm9sLmlz
RXhlY3V0aW9uU3RhdGUiLCJQcml2YXRlU3ltYm9sLnZhbGlkYXRlQW5kTm9ybWFsaXplUXVldWlu
Z1N0cmF0ZWd5IiwiUHJpdmF0ZVN5bWJvbC5pc1JlYWRhYmxlU3RyZWFtQllPQlJlYWRlciIsIlBy
aXZhdGVTeW1ib2wubmV3UmVnaXN0cnlFbnRyeSIsIlByaXZhdGVTeW1ib2wuaXNSZWFkYWJsZVN0
cmVhbUJZT0JSZXF1ZXN0IiwiUHJpdmF0ZVN5bWJvbC5wcm9taXNlSW52b2tlT3JOb29wTm9DYXRj
aCIsIlByaXZhdGVTeW1ib2wuQXN5bmNGcm9tU3luY0l0ZXJhdG9yQ29uc3RydWN0b3IiLCJQcml2
YXRlU3ltYm9sLm5ld1Byb21pc2VDYXBhYmlsaXR5IiwiUHJpdmF0ZVN5bWJvbC5yZWdFeHBQcm90
b0lnbm9yZUNhc2VHZXR0ZXIiLCJQcml2YXRlU3ltYm9sLnJlYWRhYmxlU3RyZWFtRnVsZmlsbFJl
YWRJbnRvUmVxdWVzdCIsIlByaXZhdGVTeW1ib2wudHlwZWRBcnJheUdldE9yaWdpbmFsQ29uc3Ry
dWN0b3IiLCJQcml2YXRlU3ltYm9sLnJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJTaGlmdFBl
bmRpbmdEZXNjcmlwdG9yIiwiUHJpdmF0ZVN5bWJvbC5yZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9s
bGVyUHVsbCIsIlByaXZhdGVTeW1ib2wuQnVpbHRpbkxvZyIsIlByaXZhdGVTeW1ib2wuY3JlYXRl
QXN5bmNGcm9tU3luY0l0ZXJhdG9yIiwid2luZG93IiwiUHJpdmF0ZVN5bWJvbC50eXBlZEFycmF5
U3ViYXJyYXlDcmVhdGUiLCJQcml2YXRlU3ltYm9sLnJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xs
ZXJSZXNwb25kV2l0aE5ld1ZpZXciLCJQcml2YXRlU3ltYm9sLlJhbmdlRXJyb3IiLCJQcml2YXRl
U3ltYm9sLnByb21pc2VSZWFjdGlvbkpvYiIsIlByaXZhdGVTeW1ib2wuaGFzT2JzZXJ2YWJsZVNp
ZGVFZmZlY3RzRm9yUmVnRXhwU3BsaXQiLCJQcml2YXRlU3ltYm9sLnJlYWRhYmxlQnl0ZVN0cmVh
bUNvbnRyb2xsZXJQcm9jZXNzUHVsbERlc2NyaXB0b3JzIiwiUHJpdmF0ZVN5bWJvbC5yZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyRXJyb3IiLCJQcml2YXRlU3ltYm9sLmFzeW5jR2VuZXJh
dG9yRW5xdWV1ZSIsIlByaXZhdGVTeW1ib2wucmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlckVu
cXVldWUiLCJQcml2YXRlU3ltYm9sLnN0cmluZ1N1YnN0ckludGVybmFsIiwiUHJpdmF0ZVN5bWJv
bC5yZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyRXJyb3IiLCJQcml2YXRlU3ltYm9sLlJlYWRh
YmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIiLCJQcml2YXRlU3ltYm9sLnJlZ0V4cFByb3RvVW5pY29k
ZUdldHRlciIsIlByaXZhdGVTeW1ib2wucmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlckNvbnZl
cnREZXNjcmlwdG9yIiwiUHJpdmF0ZVN5bWJvbC5yZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVy
RmlsbERlc2NyaXB0b3JGcm9tUXVldWUiLCJQcml2YXRlU3ltYm9sLnNldEJ1Y2tldE5leHQiLCJQ
cml2YXRlU3ltYm9sLnJlZ0V4cFRlc3RGYXN0IiwiUHJpdmF0ZVN5bWJvbC5BcnJheUJ1ZmZlciIs
IlByaXZhdGVTeW1ib2wucmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlckludmFsaWRhdGVCWU9C
UmVxdWVzdCIsIlByaXZhdGVTeW1ib2wubmV3SGFuZGxlZFJlamVjdGVkUHJvbWlzZSIsIlByaXZh
dGVTeW1ib2wuYWJzIiwiUHJpdmF0ZVN5bWJvbC5Qcm9taXNlIiwiUHJpdmF0ZVN5bWJvbC5yZWFk
YWJsZVN0cmVhbVJlYWRlckdlbmVyaWNDYW5jZWwiLCJQcml2YXRlU3ltYm9sLnJlZ0V4cFByb3Rv
RmxhZ3NHZXR0ZXIiLCJQcml2YXRlU3ltYm9sLnJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlclJl
YWQiLCJQcml2YXRlU3ltYm9sLnJlYWRhYmxlU3RyZWFtUmVhZGVyR2VuZXJpY1JlbGVhc2UiLCJQ
cml2YXRlU3ltYm9sLmNhbGxiYWNrc0FuZERpY3Rpb25hcnlPdmVybG9hZCIsIlByaXZhdGVTeW1i
b2wuZG9TdHJ1Y3R1cmVkQ2xvbmUiLCJQcml2YXRlU3ltYm9sLmFzeW5jRnVuY3Rpb25SZXN1bWUi
LCJQcml2YXRlU3ltYm9sLnJlYWRhYmxlU3RyZWFtQ2FuY2VsIiwiUHJpdmF0ZVN5bWJvbC5mbGF0
SW50b0FycmF5IiwiUHJpdmF0ZVN5bWJvbC50cnVuYyIsIlByaXZhdGVTeW1ib2wucHJpdmF0ZUlu
aXRpYWxpemVSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyIiwiUHJpdmF0ZVN5bWJvbC5zZXRC
dWNrZXRIZWFkIiwiUHJpdmF0ZVN5bWJvbC5yZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyQ2Fu
Y2VsIiwiUHJpdmF0ZVN5bWJvbC5jb25jYXRNZW1jcHkiLCJQcml2YXRlU3ltYm9sLmFzeW5jR2Vu
ZXJhdG9yRGVxdWV1ZSIsIlByaXZhdGVTeW1ib2wucHJvbWlzZUludm9rZU9yRmFsbGJhY2tPck5v
b3AiLCJQcml2YXRlU3ltYm9sLnN0cmluZ0NvbmNhdFNsb3dQYXRoIiwiUHJpdmF0ZVN5bWJvbC5j
cmVhdGVSZXNvbHZpbmdGdW5jdGlvbnMiLCJQcml2YXRlU3ltYm9sLmlzRGljdGlvbmFyeSIsIlBy
aXZhdGVTeW1ib2wuY29weURhdGFQcm9wZXJ0aWVzTm9FeGNsdXNpb25zIiwiUHJpdmF0ZVN5bWJv
bC5nZXRUaGVuRmluYWxseSIsIlByaXZhdGVTeW1ib2wud2ViUlRDTGVnYWN5QVBJRW5hYmxlZCIs
IlByaXZhdGVTeW1ib2wucmVhZGFibGVCeXRlU3RyZWFtQVBJRW5hYmxlZCIsIlByaXZhdGVTeW1i
b2wuaXNTdXNwZW5kWWllbGRTdGF0ZSIsIlByaXZhdGVTeW1ib2wuc2hpZWxkaW5nUHJvbWlzZVJl
c29sdmUiLCJQcml2YXRlU3ltYm9sLmdlbmVyYXRvclJlc3VtZSIsIlByaXZhdGVTeW1ib2wuaXNS
ZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIiLCJQcml2YXRlU3ltYm9sLmlzUmVhZGFibGVTdHJl
YW1Mb2NrZWQiLCJQcml2YXRlU3ltYm9sLk1hcCIsIlByaXZhdGVTeW1ib2wudHlwZWRBcnJheVNv
cnQiLCJQcml2YXRlU3ltYm9sLmlzUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlciIsIlBy
aXZhdGVTeW1ib2wucHJpdmF0ZUluaXRpYWxpemVSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIi
LCJQcml2YXRlU3ltYm9sLmlzUmVhZGFibGVTdHJlYW0iLCJQcml2YXRlU3ltYm9sLnJlYWRhYmxl
U3RyZWFtRGVmYXVsdENvbnRyb2xsZXJFbnF1ZXVlIiwiUHJpdmF0ZVN5bWJvbC5zdHJ1Y3R1cmVk
Q2xvbmVBcnJheUJ1ZmZlclZpZXciLCJQcml2YXRlU3ltYm9sLnJlYWRhYmxlU3RyZWFtRGVmYXVs
dENvbnRyb2xsZXJHZXREZXNpcmVkU2l6ZSIsIlByaXZhdGVTeW1ib2wuaXNUeXBlZEFycmF5Vmll
dyIsIlByaXZhdGVTeW1ib2wuZnVsZmlsbFByb21pc2UiLCJQcml2YXRlU3ltYm9sLnJlYWRhYmxl
Qnl0ZVN0cmVhbUNvbnRyb2xsZXJSZXNwb25kIiwiUHJpdmF0ZVN5bWJvbC5uZXdRdWV1ZSIsIlBy
aXZhdGVTeW1ib2wucHJvcGVydHlJc0VudW1lcmFibGUiLCJQcml2YXRlU3ltYm9sLnJlYWRhYmxl
U3RyZWFtVGVlQnJhbmNoMUNhbmNlbEZ1bmN0aW9uIiwiUHJpdmF0ZVN5bWJvbC5yZWFkYWJsZVN0
cmVhbUJZT0JSZWFkZXJSZWFkIiwiUHJpdmF0ZVN5bWJvbC5mbGF0SW50b0FycmF5V2l0aENhbGxi
YWNrIiwiUHJpdmF0ZVN5bWJvbC5tYWtlR2V0dGVyVHlwZUVycm9yIiwiUHJpdmF0ZVN5bWJvbC50
cmlnZ2VyUHJvbWlzZVJlYWN0aW9ucyIsIlByaXZhdGVTeW1ib2wuaXNSVENQZWVyQ29ubmVjdGlv
biIsIlByaXZhdGVTeW1ib2wucmVnRXhwUHJvdG9HbG9iYWxHZXR0ZXIiLCJQcml2YXRlU3ltYm9s
LnJlcGVhdENoYXJhY3RlciIsIlByaXZhdGVTeW1ib2wudG9JbnRlZ2VyIiwiUHJpdmF0ZVN5bWJv
bC5yZWdFeHBDcmVhdGUiLCJQcml2YXRlU3ltYm9sLmlzQXJyYXlDb25zdHJ1Y3RvciIsIlByaXZh
dGVTeW1ib2wuaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yUmVnRXhwTWF0Y2giLCJQcml2YXRl
U3ltYm9sLlJlYWRhYmxlU3RyZWFtQllPQlJlYWRlciIsIlByaXZhdGVTeW1ib2wuaW5pdGlhbGl6
ZVByb21pc2UiLCJQcml2YXRlU3ltYm9sLmlzQm91bmRGdW5jdGlvbiIsIlByaXZhdGVTeW1ib2wu
Y2FsbE9yU2NoZWR1bGVXcml0YWJsZVN0cmVhbUFkdmFuY2VRdWV1ZSIsIlByaXZhdGVTeW1ib2wu
cmVhZGFibGVTdHJlYW1GdWxmaWxsUmVhZFJlcXVlc3QiLCJQcml2YXRlU3ltYm9sLnN0cmluZ0lu
Y2x1ZGVzSW50ZXJuYWwiLCJQcml2YXRlU3ltYm9sLmFycmF5SXRlcmF0b3JLZXlOZXh0IiwiUHJp
dmF0ZVN5bWJvbC5yZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyUmVzcG9uZEluQ2xvc2VkU3Rh
dGUiLCJQcml2YXRlU3ltYm9sLnR5cGVkQXJyYXlMZW5ndGgiLCJQcml2YXRlU3ltYm9sLnNldEl0
ZXJhdG9yTmV4dCIsIlByaXZhdGVTeW1ib2wuaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yU3Ry
aW5nUmVwbGFjZSIsIlByaXZhdGVTeW1ib2wuc2V0U3RhdGVUb01heCIsIlByaXZhdGVTeW1ib2wu
ZGVxdWV1ZVZhbHVlIiwiUHJpdmF0ZVN5bWJvbC5yZWdFeHBQcm90b011bHRpbGluZUdldHRlciIs
IlByaXZhdGVTeW1ib2wuc2V0QnVja2V0S2V5IiwiUHJpdmF0ZVN5bWJvbC50aGlzTnVtYmVyVmFs
dWUiLCJQcml2YXRlU3ltYm9sLnJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJDbGVhclBlbmRp
bmdQdWxsSW50b3MiLCJQcml2YXRlU3ltYm9sLmNsb25lQXJyYXlCdWZmZXIiLCJQcml2YXRlU3lt
Ym9sLm1ha2VUaGlzVHlwZUVycm9yIiwiUHJpdmF0ZVN5bWJvbC5wcml2YXRlSW5pdGlhbGl6ZVJl
YWRhYmxlU3RyZWFtQllPQlJlYWRlciIsIlByaXZhdGVTeW1ib2wuUmVhZGFibGVTdHJlYW1CWU9C
UmVxdWVzdCIsIlByaXZhdGVTeW1ib2wuYXdhaXRWYWx1ZSIsIlByaXZhdGVTeW1ib2wuQnVpbHRp
bkRlc2NyaWJlIiwiUHJpdmF0ZVN5bWJvbC5hcnJheUl0ZXJhdG9yVmFsdWVOZXh0IiwiUHJpdmF0
ZVN5bWJvbC5yZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyQ2FsbFB1bGxJZk5lZWRlZCIs
IlByaXZhdGVTeW1ib2wuVHlwZUVycm9yIiwiUHJpdmF0ZVN5bWJvbC5pc1JlYWRhYmxlQnl0ZVN0
cmVhbUNvbnRyb2xsZXIiLCJQcml2YXRlU3ltYm9sLnJlYWRhYmxlU3RyZWFtVGVlUHVsbEZ1bmN0
aW9uIiwiUHJpdmF0ZVN5bWJvbC5Db2xsYXRvciIsIlByaXZhdGVTeW1ib2wuSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uIiwiUHJpdmF0ZVN5bWJvbC5yZWFkYWJsZVN0cmVhbUhhc0JZT0JSZWFkZXIi
LCJQcml2YXRlU3ltYm9sLnJlYWRhYmxlU3RyZWFtSGFzRGVmYXVsdFJlYWRlciIsIlByaXZhdGVT
eW1ib2wuTnVtYmVyIiwiUHJpdmF0ZVN5bWJvbC5QbHVyYWxSdWxlcyIsIlByaXZhdGVTeW1ib2wu
dHlwZWRBcnJheVNwZWNpZXNDb25zdHJ1Y3RvciIsIlByaXZhdGVTeW1ib2wucmVhZGFibGVTdHJl
YW1BZGRSZWFkSW50b1JlcXVlc3QiLCJQcml2YXRlU3ltYm9sLnJlYWRhYmxlU3RyZWFtRGVmYXVs
dENvbnRyb2xsZXJQdWxsIiwiUHJpdmF0ZVN5bWJvbC5wcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9i
IiwiUHJpdmF0ZVN5bWJvbC5hcHBlbmRNZW1jcHkiLCJQcml2YXRlU3ltYm9sLnJlcGVhdFNsb3dQ
YXRoIiwiUHJpdmF0ZVN5bWJvbC50b0xlbmd0aCIsIlByaXZhdGVTeW1ib2wucmVqZWN0UHJvbWlz
ZSIsIlByaXZhdGVTeW1ib2wuaGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uIiwiUHJpdmF0ZVN5bWJv
bC53cml0YWJsZVN0cmVhbUFkdmFuY2VRdWV1ZSIsIlByaXZhdGVTeW1ib2wuUmVmbGVjdCIsIlBy
aXZhdGVTeW1ib2wudHlwZWRBcnJheUNsYW1wQXJndW1lbnRUb1N0YXJ0T3JFbmQiLCJQcml2YXRl
U3ltYm9sLnJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJSZXNwb25kSW5SZWFkYWJsZVN0YXRl
IiwiUHJpdmF0ZVN5bWJvbC5pc1Byb21pc2UiLCJQcml2YXRlU3ltYm9sLnByb21pc2VJbnZva2VP
ck5vb3AiLCJkb2N1bWVudCIsIlByaXZhdGVTeW1ib2wuUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29u
dHJvbGxlciIsIlByaXZhdGVTeW1ib2wucmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlclB1bGxJ
bnRvIiwiUHJpdmF0ZVN5bWJvbC5yZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyRW5xdWV1ZUNo
dW5rIiwiUHJpdmF0ZVN5bWJvbC5yZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyR2V0RGVzaXJl
ZFNpemUiLCJQcml2YXRlU3ltYm9sLmRvQXN5bmNHZW5lcmF0b3JCb2R5Q2FsbCIsIlByaXZhdGVT
eW1ib2wuY3JlYXRlTWFwSXRlcmF0b3IiLCJQcml2YXRlU3ltYm9sLmFzeW5jR2VuZXJhdG9yUmVz
dW1lTmV4dCIsIlByaXZhdGVTeW1ib2wucmVnRXhwUHJvdG90eXBlU3ltYm9sUmVwbGFjZSIsIlBy
aXZhdGVTeW1ib2wuc3luY1dyaXRhYmxlU3RyZWFtU3RhdGVXaXRoUXVldWUiLCJQcml2YXRlU3lt
Ym9sLnJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJIYW5kbGVRdWV1ZURyYWluIiwiUHJpdmF0
ZVN5bWJvbC5SZWdFeHAiLCJQcml2YXRlU3ltYm9sLmdldE93blByb3BlcnR5TmFtZXMiLCJQcml2
YXRlU3ltYm9sLnJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJSZXNwb25kSW50ZXJuYWwiLCJQ
cml2YXRlU3ltYm9sLnRyYW5zZmVyQnVmZmVyVG9DdXJyZW50UmVhbG0iLCJQcml2YXRlU3ltYm9s
LmZsb29yIiwiUHJpdmF0ZVN5bWJvbC5hc3luY0dlbmVyYXRvcllpZWxkIiwiUHJpdmF0ZVN5bWJv
bC5FcnJvciIsIlByaXZhdGVTeW1ib2wubWFwTGlrZUZvckVhY2giLCJQcml2YXRlU3ltYm9sLnJl
Z0V4cFByb3RvU3RpY2t5R2V0dGVyIiwiUHJpdmF0ZVN5bWJvbC5jcmVhdGVIVE1MIiwiUHJpdmF0
ZVN5bWJvbC5yZWdFeHBTZWFyY2hGYXN0IiwiUHJpdmF0ZVN5bWJvbC5yZWdFeHBFeGVjIiwiUHJp
dmF0ZVN5bWJvbC5pc0Zpbml0ZSIsIlByaXZhdGVTeW1ib2wuZW5xdWV1ZU9wZXJhdGlvbiIsIlBy
aXZhdGVTeW1ib2wucmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlckNsb3NlIiwiUHJpdmF0ZVN5
bWJvbC5EYXRlVGltZUZvcm1hdCIsIlByaXZhdGVTeW1ib2wuYWR2YW5jZVN0cmluZ0luZGV4Iiwi
UHJpdmF0ZVN5bWJvbC5hc3luY0dlbmVyYXRvclJlamVjdCIsIlByaXZhdGVTeW1ib2wuaW5zdGFu
Y2VPZiIsIlByaXZhdGVTeW1ib2wuZW5xdWV1ZVZhbHVlV2l0aFNpemUiLCJQcml2YXRlU3ltYm9s
Lm1ha2VCb3VuZEZ1bmN0aW9uIiwiUHJpdmF0ZVN5bWJvbC5wZWVrUXVldWVWYWx1ZSIsIlByaXZh
dGVTeW1ib2wuaXNXcml0YWJsZVN0cmVhbSIsIlByaXZhdGVTeW1ib2wucmVhZGFibGVTdHJlYW1E
ZWZhdWx0Q29udHJvbGxlckNhbmNlbCIsIlByaXZhdGVTeW1ib2wuYXN5bmNHZW5lcmF0b3JRdWV1
ZUVucXVldWUiLCJQcml2YXRlU3ltYm9sLm1hcEJ1Y2tldEtleSIsIlByaXZhdGVTeW1ib2wubWFw
QnVja2V0VmFsdWUiLCJQcml2YXRlU3ltYm9sLlN0cmluZyIsImNyZWF0ZUltYWdlQml0bWFwIiwi
ZmV0Y2giLCJQcml2YXRlU3ltYm9sLlJlYWRhYmxlU3RyZWFtIiwiUHJpdmF0ZVN5bWJvbC5SVENT
ZXNzaW9uRGVzY3JpcHRpb24iLCJQcml2YXRlU3ltYm9sLlJUQ0ljZUNhbmRpZGF0ZSIsIlByaXZh
dGVTeW1ib2wuTWVkaWFTdHJlYW1UcmFjayIsIlByaXZhdGVTeW1ib2wuTWVkaWFTdHJlYW0iLCJP
ZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQiLCJJbWFnZUJpdG1hcFJlbmRlcmluZ0Nv
bnRleHQiLCJXZWJLaXRNZWRpYUtleUVycm9yIiwiT2Zmc2NyZWVuQ2FudmFzIiwiSW1hZ2VCaXRt
YXAiLCJIVE1MU2xvdEVsZW1lbnQiLCJTdGF0aWNSYW5nZSIsIlNoYWRvd1Jvb3QiLCJJbnB1dEV2
ZW50IiwiRGF0YVRyYW5zZmVySXRlbUxpc3QiLCJEYXRhVHJhbnNmZXJJdGVtIiwiQ3VzdG9tRWxl
bWVudFJlZ2lzdHJ5IiwiUlRDVHJhY2tFdmVudCIsIlJUQ1N0YXRzUmVwb3J0IiwiUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uIiwiUlRDUnRwVHJhbnNjZWl2ZXIiLCJSVENSdHBTZW5kZXIiLCJSVENQZWVy
Q29ubmVjdGlvbiIsIlJUQ0ljZVRyYW5zcG9ydCIsIlJUQ0ljZUNhbmRpZGF0ZSIsIlJUQ0RhdGFD
aGFubmVsRXZlbnQiLCJSVENEYXRhQ2hhbm5lbCIsIk1lZGlhU291cmNlIiwiUmVzcG9uc2UiLCJS
ZXF1ZXN0IiwiSGVhZGVycyIsIldlYktpdE1lZGlhS2V5cyIsIldlYktpdE1lZGlhS2V5U2Vzc2lv
biIsIldlYktpdE1lZGlhS2V5TmVlZGVkRXZlbnQiLCJXZWJLaXRNZWRpYUtleU1lc3NhZ2VFdmVu
dCIsImN1c3RvbUVsZW1lbnRzIiwiV2ViQXNzZW1ibHkiLCJSZWZsZWN0IiwiSW50bCIsImV2YWwi
LCJQcm9taXNlIiwiU2V0IiwiTWFwIiwiRXJyb3IiLCJCb29sZWFuIiwiTnVtYmVyIiwiU3ltYm9s
IiwiU3RyaW5nIiwiQXJyYXlCdWZmZXIiLCJQcml2YXRlU3ltYm9sLkFycmF5IiwiUHJpdmF0ZVN5
bWJvbC5PYmplY3QiLCJUeXBlRXJyb3IiLCJSYW5nZUVycm9yIiwiUmVnRXhwIiwiQXJyYXkiLCJG
dW5jdGlvbiIsIk9iamVjdCIsInBhcnNlRmxvYXQiLCJwYXJzZUludCIsIlByaXZhdGVTeW1ib2wu
YXJyYXlTcGVjaWVzQ3JlYXRlIiwiZGlzcGF0Y2hFdmVudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIi
LCJhZGRFdmVudExpc3RlbmVyIiwiY29uc3RydWN0b3IiLCJuYW1lIiwib25sb2FkZWRtZXRhZGF0
YSIsIm9ubG9hZGVkZGF0YSIsIm9ubG9hZCIsIm9ua2V5dXAiLCJvbmtleXByZXNzIiwib25rZXlk
b3duIiwib25pbnZhbGlkIiwib25pbnB1dCIsIm9uZm9jdXMiLCJvbmVycm9yIiwib25lbmRlZCIs
Im9uZW1wdGllZCIsIm9uZHVyYXRpb25jaGFuZ2UiLCJvbmRyb3AiLCJvbmRyYWdzdGFydCIsIm9u
ZHJhZ292ZXIiLCJvbmRyYWdsZWF2ZSIsIm9uZHJhZ2VudGVyIiwib25kcmFnZW5kIiwib25kcmFn
Iiwib25kYmxjbGljayIsIm9uY3VlY2hhbmdlIiwib25jb250ZXh0bWVudSIsIm9uY2xpY2siLCJv
bmNoYW5nZSIsIm9uY2FucGxheXRocm91Z2giLCJvbmNhbnBsYXkiLCJvbmJsdXIiLCJvbmFib3J0
IiwicG9pbnRlckxvY2tFbGVtZW50IiwiYWN0aXZlRWxlbWVudCIsIm9uYmVmb3JlcGFzdGUiLCJv
bmJlZm9yZWlucHV0Iiwib25iZWZvcmVjdXQiLCJvbmJlZm9yZWNvcHkiLCJvbnBhc3RlIiwib25j
dXQiLCJvbmNvcHkiLCJhbGwiLCJhcHBsZXRzIiwiYW5jaG9ycyIsImJnQ29sb3IiLCJhbGlua0Nv
bG9yIiwidmxpbmtDb2xvciIsImxpbmtDb2xvciIsImZnQ29sb3IiLCJvbnNlbGVjdGlvbmNoYW5n
ZSIsIm9uc2VsZWN0c3RhcnQiLCJ4bWxTdGFuZGFsb25lIiwieG1sVmVyc2lvbiIsInhtbEVuY29k
aW5nIiwib252aXNpYmlsaXR5Y2hhbmdlIiwidmlzaWJpbGl0eVN0YXRlIiwiaGlkZGVuIiwiZm9u
dHMiLCJvbnBvaW50ZXJsb2NrZXJyb3IiLCJvbnBvaW50ZXJsb2NrY2hhbmdlIiwib253ZWJraXRm
dWxsc2NyZWVuZXJyb3IiLCJvbndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCJ3ZWJraXRDdXJyZW50
RnVsbFNjcmVlbkVsZW1lbnQiLCJ3ZWJraXRGdWxsU2NyZWVuS2V5Ym9hcmRJbnB1dEFsbG93ZWQi
LCJ3ZWJraXRJc0Z1bGxTY3JlZW4iLCJ3ZWJraXRGdWxsc2NyZWVuRWxlbWVudCIsIndlYmtpdEZ1
bGxzY3JlZW5FbmFibGVkIiwic2Nyb2xsaW5nRWxlbWVudCIsInN0eWxlU2hlZXRzIiwib25yZWFk
eXN0YXRlY2hhbmdlIiwiZGVzaWduTW9kZSIsImRlZmF1bHRWaWV3IiwiY3VycmVudFNjcmlwdCIs
InNjcmlwdHMiLCJmb3JtcyIsImxpbmtzIiwicGx1Z2lucyIsImVtYmVkcyIsImltYWdlcyIsImhl
YWQiLCJib2R5IiwiZGlyIiwidGl0bGUiLCJyZWFkeVN0YXRlIiwibGFzdE1vZGlmaWVkIiwiY29v
a2llIiwicmVmZXJyZXIiLCJkb21haW4iLCJkb2N1bWVudEVsZW1lbnQiLCJkb2N0eXBlIiwiY29u
dGVudFR5cGUiLCJpbnB1dEVuY29kaW5nIiwiY2hhcnNldCIsImNoYXJhY3RlclNldCIsImNvbXBh
dE1vZGUiLCJvcmlnaW4iLCJkb2N1bWVudFVSSSIsIlVSTCIsImltcGxlbWVudGF0aW9uIiwib25s
b2Fkc3RhcnQiLCJvbm1vdXNlZG93biIsIm9ubW91c2VlbnRlciIsIm9ud2Via2l0bW91c2Vmb3Jj
ZXVwIiwiZmlyc3RFbGVtZW50Q2hpbGQiLCJsYXN0RWxlbWVudENoaWxkIiwiY2hpbGRFbGVtZW50
Q291bnQiLCJvbndlYmtpdG1vdXNlZm9yY2V3aWxsYmVnaW4iLCJvbndlYmtpdG1vdXNlZm9yY2Vk
b3duIiwib253ZWJraXRtb3VzZWZvcmNlY2hhbmdlZCIsIlN5bWJvbC51bnNjb3BhYmxlcyIsInF1
ZXJ5U2VsZWN0b3JBbGwiLCJxdWVyeVNlbGVjdG9yIiwiYXBwZW5kIiwicHJlcGVuZCIsImdldEVs
ZW1lbnRCeUlkIiwiZWxlbWVudHNGcm9tUG9pbnQiLCJlbGVtZW50RnJvbVBvaW50IiwicmVsZWFz
ZUV2ZW50cyIsImNhcHR1cmVFdmVudHMiLCJjbGVhciIsInJlcXVlc3RTdG9yYWdlQWNjZXNzIiwi
aGFzU3RvcmFnZUFjY2VzcyIsImdldENTU0NhbnZhc0NvbnRleHQiLCJjYXJldFJhbmdlRnJvbVBv
aW50IiwiY2hpbGRyZW4iLCJnZXRPdmVycmlkZVN0eWxlIiwiZXhpdFBvaW50ZXJMb2NrIiwid2Vi
a2l0Q2FuY2VsRnVsbFNjcmVlbiIsIndlYmtpdEV4aXRGdWxsc2NyZWVuIiwiZXZhbHVhdGUiLCJj
cmVhdGVOU1Jlc29sdmVyIiwiY3JlYXRlRXhwcmVzc2lvbiIsImdldFNlbGVjdGlvbiIsInF1ZXJ5
Q29tbWFuZFZhbHVlIiwicXVlcnlDb21tYW5kU3VwcG9ydGVkIiwicXVlcnlDb21tYW5kU3RhdGUi
LCJxdWVyeUNvbW1hbmRJbmRldGVybSIsInF1ZXJ5Q29tbWFuZEVuYWJsZWQiLCJleGVjQ29tbWFu
ZCIsImhhc0ZvY3VzIiwid3JpdGVsbiIsIndyaXRlIiwiY2xvc2UiLCJvcGVuIiwiZ2V0RWxlbWVu
dHNCeU5hbWUiLCJjcmVhdGVUcmVlV2Fsa2VyIiwiY3JlYXRlTm9kZUl0ZXJhdG9yIiwiY3JlYXRl
UmFuZ2UiLCJjcmVhdGVFdmVudCIsImNyZWF0ZUF0dHJpYnV0ZU5TIiwiY3JlYXRlQXR0cmlidXRl
Iiwib25tb3VzZWxlYXZlIiwib25tb3VzZW1vdmUiLCJvbm1vdXNlb3V0Iiwib25tb3VzZW92ZXIi
LCJvbm1vdXNldXAiLCJvbm1vdXNld2hlZWwiLCJvbnBhdXNlIiwib25wbGF5Iiwib25wbGF5aW5n
Iiwib25wcm9ncmVzcyIsIm9ucmF0ZWNoYW5nZSIsIm9ucmVqZWN0aW9uaGFuZGxlZCIsIm9ucmVz
ZXQiLCJvbnJlc2l6ZSIsIm9uc2Nyb2xsIiwib25zZWVrZWQiLCJvbnNlZWtpbmciLCJvbnNlbGVj
dCIsIm9uc3RhbGxlZCIsIm9uc3VibWl0Iiwib25zdXNwZW5kIiwib250aW1ldXBkYXRlIiwib250
b2dnbGUiLCJvbnVuaGFuZGxlZHJlamVjdGlvbiIsIm9udm9sdW1lY2hhbmdlIiwib253YWl0aW5n
Iiwib250cmFuc2l0aW9uZW5kIiwib250cmFuc2l0aW9ucnVuIiwib250cmFuc2l0aW9uc3RhcnQi
LCJvbnRyYW5zaXRpb25jYW5jZWwiLCJvbmFuaW1hdGlvbmVuZCIsIm9uYW5pbWF0aW9uaXRlcmF0
aW9uIiwib25hbmltYXRpb25zdGFydCIsIm9uYW5pbWF0aW9uY2FuY2VsIiwib25zZWFyY2giLCJv
bndoZWVsIiwicm9vdEVsZW1lbnQiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsImdldEVsZW1lbnRz
QnlUYWdOYW1lTlMiLCJnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIiwiY3JlYXRlRWxlbWVudCIsImNy
ZWF0ZUVsZW1lbnROUyIsImNyZWF0ZURvY3VtZW50RnJhZ21lbnQiLCJjcmVhdGVUZXh0Tm9kZSIs
ImNyZWF0ZUNEQVRBU2VjdGlvbiIsImNyZWF0ZUNvbW1lbnQiLCJjcmVhdGVQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24iLCJpbXBvcnROb2RlIiwiYWRvcHROb2RlIiwicHJvdG90eXBlIiwiU3ltYm9sLnNw
ZWNpZXMiLCJuZXh0IiwiU3ltYm9sLnRvU3RyaW5nVGFnIiwidGhyb3ciLCJyZXR1cm4iLCJyZWdp
c3RyeSIsImFyZ3VtZW50cyIsImNhbGxlciIsIlN5bWJvbC5oYXNJbnN0YW5jZSIsImJpbmQiLCJ0
b1N0cmluZyIsImFwcGx5IiwiY2FsbCIsIl9fZGVmaW5lU2V0dGVyX18iLCJfX2RlZmluZUdldHRl
cl9fIiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiaGFzT3duUHJvcGVy
dHkiLCJ2YWx1ZU9mIiwidG9Mb2NhbGVTdHJpbmciLCJfX2xvb2t1cEdldHRlcl9fIiwiX19sb29r
dXBTZXR0ZXJfXyIsIl9fcHJvdG9fXyIsIm1lc3NhZ2UiLCJTeW1ib2wuaXRlcmF0b3IiLCJ2YWx1
ZXMiLCJmb3JFYWNoIiwiY29uY2F0IiwiZmlsbCIsImpvaW4iLCJwb3AiLCJsYXN0SW5kZXhPZiIs
IlByaXZhdGVTeW1ib2wudmFsdWVzIiwiUHJpdmF0ZVN5bWJvbC5rZXlzIiwiUHJpdmF0ZVN5bWJv
bC5mb3JFYWNoIiwiUHJpdmF0ZVN5bWJvbC5lbnRyaWVzIiwiY29weVdpdGhpbiIsImluY2x1ZGVz
IiwiZmluZEluZGV4IiwiZmluZCIsImtleXMiLCJlbnRyaWVzIiwibWFwIiwicHVzaCIsInJlZHVj
ZVJpZ2h0IiwiUHJpdmF0ZVN5bWJvbC5wdXNoIiwicmV2ZXJzZSIsInJlZHVjZSIsInNoaWZ0Iiwi
ZmxhdE1hcCIsImZsYXQiLCJmaWx0ZXIiLCJQcml2YXRlU3ltYm9sLnNoaWZ0IiwiaW5kZXhPZiIs
InNvbWUiLCJzbGljZSIsImV2ZXJ5IiwidW5zaGlmdCIsInNwbGljZSIsInNvcnQiLCJTeW1ib2wu
YXN5bmNJdGVyYXRvciIsImZvcm1hdFRvUGFydHMiLCJieXRlTGVuZ3RoIiwiU3ltYm9sLnNlYXJj
aCIsImRvdEFsbCIsImNvbXBpbGUiLCJleGVjIiwidGVzdCIsIlN5bWJvbC5zcGxpdCIsIlN5bWJv
bC5yZXBsYWNlIiwiU3ltYm9sLm1hdGNoIiwiZmxhZ3MiLCJzb3VyY2UiLCJ1bmljb2RlIiwic3Rp
Y2t5IiwibXVsdGlsaW5lIiwiaWdub3JlQ2FzZSIsImdsb2JhbCIsIlN5bWJvbC50b1ByaW1pdGl2
ZSIsImxvY2FsZUNvbXBhcmUiLCJ0cmltRW5kIiwiY2hhckF0IiwiY2hhckNvZGVBdCIsImNvZGVQ
b2ludEF0IiwiUHJpdmF0ZVN5bWJvbC5yZXBsYWNlVXNpbmdSZWdFeHAiLCJQcml2YXRlU3ltYm9s
LnJlcGxhY2VVc2luZ1N0cmluZ1NlYXJjaCIsInN1YnN0ciIsInN1YnN0cmluZyIsInRvTG93ZXJD
YXNlIiwidG9VcHBlckNhc2UiLCJ0b0xvY2FsZUxvd2VyQ2FzZSIsInRvTG9jYWxlVXBwZXJDYXNl
IiwidHJpbSIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsIm5vcm1hbGl6ZSIsIlByaXZhdGVTeW1i
b2wuY2hhckNvZGVBdCIsInRyaW1TdGFydCIsInRyaW1MZWZ0IiwidHJpbVJpZ2h0IiwiaGFzIiwi
c2l6ZSIsIlByaXZhdGVTeW1ib2wuc2V0IiwiUHJpdmF0ZVN5bWJvbC5nZXQiLCJzZXQiLCJkZWxl
dGUiLCJnZXQiLCJhZGQiLCJQcml2YXRlU3ltYm9sLmhhcyIsIlByaXZhdGVTeW1ib2wuYWRkIiwi
UHJpdmF0ZVN5bWJvbC50aGVuIiwiaGFzQ2hpbGROb2RlcyIsImNsb25lTm9kZSIsImlzRXF1YWxO
b2RlIiwiaXNTYW1lTm9kZSIsImNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIiwiY29udGFpbnMiLCJs
b29rdXBQcmVmaXgiLCJsb29rdXBOYW1lc3BhY2VVUkkiLCJpc0RlZmF1bHROYW1lc3BhY2UiLCJp
bnNlcnRCZWZvcmUiLCJub2RlVmFsdWUiLCJuZXh0U2libGluZyIsInJlcGxhY2VDaGlsZCIsInJl
bW92ZUNoaWxkIiwicHJldmlvdXNTaWJsaW5nIiwibGFzdENoaWxkIiwiZmlyc3RDaGlsZCIsImNo
aWxkTm9kZXMiLCJwYXJlbnRFbGVtZW50IiwicGFyZW50Tm9kZSIsImFwcGVuZENoaWxkIiwib3du
ZXJEb2N1bWVudCIsImlzQ29ubmVjdGVkIiwiYmFzZVVSSSIsIm5vZGVOYW1lIiwibm9kZVR5cGUi
LCJnZXRSb290Tm9kZSIsInRleHRDb250ZW50IiwiUHJpdmF0ZVN5bWJvbC5nZXRQcm90b3R5cGVP
ZiIsIlByaXZhdGVTeW1ib2wuZGVmaW5lUHJvcGVydHkiLCJQcml2YXRlU3ltYm9sLmNyZWF0ZSIs
ImlzQXJyYXkiLCJpc1ZpZXciLCJQcml2YXRlU3ltYm9sLmlzVmlldyIsIkNvbXBpbGVFcnJvciIs
Ikluc3RhbmNlIiwiTGlua0Vycm9yIiwiTWVtb3J5IiwiTW9kdWxlIiwiUnVudGltZUVycm9yIiwi
VGFibGUiLCJQcml2YXRlU3ltYm9sLm93bktleXMiLCJQcml2YXRlU3ltYm9sLmdldE93blByb3Bl
cnR5RGVzY3JpcHRvciIsIkNvbGxhdG9yIiwiTnVtYmVyRm9ybWF0IiwiRGF0ZVRpbWVGb3JtYXQi
LCJQbHVyYWxSdWxlcyIsImdldENhbm9uaWNhbExvY2FsZXMiLCJQcml2YXRlU3ltYm9sLnJlc29s
dmUiLCJQcml2YXRlU3ltYm9sLnJlamVjdCIsImlzSW50ZWdlciIsImFzeW5jSXRlcmF0b3IiLCJp
c0NvbmNhdFNwcmVhZGFibGUiLCJoYXNJbnN0YW5jZSIsIml0ZXJhdG9yIiwibWF0Y2giLCJyZXBs
YWNlIiwic2VhcmNoIiwic3BlY2llcyIsInNwbGl0IiwidG9TdHJpbmdUYWciLCJ1bnNjb3BhYmxl
cyIsInRvUHJpbWl0aXZlIl0sInJvb3RzIjpbMzI4LDQ0MiwwLDIzOTcsNDQzLDAsMzI3LDQ0Miww
LDMyNiw0NDIsMCwzMjUsNDQyLDAsMzI0LDQ0MiwwLDMyMyw0NDIsMCwzMjIsNDQyLDAsMjM5Niw0
NDMsMCwzMjEsNDQyLDAsMzIwLDQ0MiwwLDMxOSw0NDIsMCwzMTgsNDQyLDAsNTYsNDQzLDAsMzE3
LDQ0MiwwLDMxNiw0NDIsMCwzMTUsNDQyLDAsNTUsNDQzLDAsMzE0LDQ0MiwwLDMxMyw0NDIsMCwz
MTIsNDQyLDAsNTQsNDQzLDAsMzExLDQ0MiwwLDMxMCw0NDIsMCwzMDksNDQyLDAsNTMsNDQzLDAs
MzA4LDQ0MiwwLDU0LDQ0MywwLDMwNyw0NDIsMCwzMDYsNDQyLDAsNTUsNDQzLDAsMzA1LDQ0Miww
LDMwNCw0NDIsMCw1Miw0NDMsMCwzMDMsNDQyLDAsNTEsNDQzLDAsNTAsNDQzLDAsNDksNDQzLDAs
NDgsNDQzLDAsMzAyLDQ0MiwwLDQ3LDQ0MywwLDMwMSw0NDIsMCw0Niw0NDMsMCwzMDAsNDQyLDAs
NDUsNDQzLDAsMjk5LDQ0MiwwLDQ0LDQ0MywwLDI5OCw0NDIsMCw0Myw0NDMsMCwyOTcsNDQyLDAs
NDIsNDQzLDAsMjk2LDQ0MiwwLDQxLDQ0MywwLDI5NSw0NDIsMCw0MCw0NDMsMCwyOTQsNDQyLDAs
MzksNDQzLDAsMzgsNDQzLDAsMjkzLDQ0MiwwLDM3LDQ0MywwLDI5Miw0NDIsMCwzNiw0NDMsMCwy
OTEsNDQyLDAsMzUsNDQzLDAsMjkwLDQ0MiwwLDM0LDQ0MywwLDI4OSw0NDIsMCwzMyw0NDMsMCwy
ODgsNDQyLDAsMzIsNDQzLDAsMjg1LDQ0MiwwLDMxLDQ0MywwLDI4Myw0NDIsMCwzMCw0NDMsMCwy
ODEsNDQyLDAsMjksNDQzLDAsMjc4LDQ0MiwwLDI4LDQ0MywwLDI3NCw0NDIsMCwyNyw0NDMsMCwy
NjksNDQyLDAsMjYsNDQzLDAsMjY2LDQ0MiwwLDI1LDQ0MywwLDI2Myw0NDIsMCwyNCw0NDMsMCwy
NTksNDQyLDAsMjMsNDQzLDAsMjU2LDQ0MiwwLDIyLDQ0MywwLDI1MSw0NDIsMCwyMSw0NDMsMCwy
NDgsNDQyLDAsMjAsNDQzLDAsMjQ0LDQ0MiwwLDE5LDQ0MywwLDI0Miw0NDIsMCwxOCw0NDMsMCwy
MzksNDQyLDAsMTcsNDQzLDAsMjM2LDQ0MiwwLDE2LDQ0MywwLDIzNCw0NDIsMCwxNSw0NDMsMCwy
MzEsNDQyLDAsMTQsNDQzLDAsMjI4LDQ0MiwwLDEzLDQ0MywwLDIyMyw0NDIsMCwxMiw0NDMsMCwy
MjAsNDQyLDAsMTEsNDQzLDAsMjE1LDQ0MiwwLDEwLDQ0MywwLDIxMyw0NDIsMCw5LDQ0MywwLDIx
MSw0NDIsMCw4LDQ0MywwLDIwOCw0NDIsMCw3LDQ0MywwLDIwNSw0NDIsMCw2LDQ0MywwLDIwMiw0
NDIsMCw1LDQ0MywwLDE5OSw0NDIsMCw0LDQ0MywwLDE5Nyw0NDIsMCwzLDQ0MywwLDE5NSw0NDIs
MCwyLDQ0MywwLDE5MSw0NDIsMCwxLDQ0MywwLDE4Niw0NDIsMCwxODQsNDQyLDAsMTgxLDQ0Miww
LDE3Niw0NDIsMCwxNzIsNDQyLDAsMTY5LDQ0MiwwLDE2NSw0NDIsMCwxNjMsNDQyLDAsMTYyLDQ0
MiwwLDE2MSw0NDIsMCwxNjAsNDQyLDAsMTU5LDQ0MiwwLDE1OCw0NDIsMCwxNTcsNDQyLDAsMTY0
LDQ0MiwwLDE2Niw0NDIsMCwxNjgsNDQyLDAsMTcxLDQ0MiwwLDE3Myw0NDIsMCwxNjcsNDQyLDAs
MTcwLDQ0MiwwLDE3OSw0NDIsMCwxNzUsNDQyLDAsMTc0LDQ0MiwwLDE3Nyw0NDIsMCwxNzgsNDQy
LDAsMTgwLDQ0MiwwLDE4Myw0NDIsMCwxODIsNDQyLDAsMTg1LDQ0MiwwLDE4OCw0NDIsMCwxODcs
NDQyLDAsMTg5LDQ0MiwwLDE5MCw0NDIsMCwxOTIsNDQyLDAsMjAwLDQ0MiwwLDIwMSw0NDIsMCwy
MDYsNDQyLDAsMTk2LDQ0MiwwLDE5OCw0NDIsMCwxOTMsNDQyLDAsMTk0LDQ0MiwwLDIwMyw0NDIs
MCwyMDQsNDQyLDAsMjA3LDQ0MiwwLDIwOSw0NDIsMCwyMTAsNDQyLDAsMjEyLDQ0MiwwLDIxNCw0
NDIsMCwyMTcsNDQyLDAsMjE2LDQ0MiwwLDIyMSw0NDIsMCwyMTgsNDQyLDAsMjE5LDQ0MiwwLDIy
Miw0NDIsMCwyMjQsNDQyLDAsMjI1LDQ0MiwwLDIyNiw0NDIsMCwyMjcsNDQyLDAsMjI5LDQ0Miww
LDIzMCw0NDIsMCwyMzIsNDQyLDAsMjMzLDQ0MiwwLDIzNSw0NDIsMCwyMzcsNDQyLDAsMjM4LDQ0
MiwwLDI0MCw0NDIsMCwyNDEsNDQyLDAsMjQzLDQ0MiwwLDI0NSw0NDIsMCwyNDYsNDQyLDAsMjQ3
LDQ0MiwwLDI0OSw0NDIsMCwyNTAsNDQyLDAsMjUzLDQ0MiwwLDI1Miw0NDIsMCwyNTQsNDQyLDAs
MjU1LDQ0MiwwLDI1Nyw0NDIsMCwyNTgsNDQyLDAsMjYwLDQ0MiwwLDI2MSw0NDIsMCwyNjIsNDQy
LDAsMjY0LDQ0MiwwLDI2NSw0NDIsMCwyNjcsNDQyLDAsMjczLDQ0MiwwLDI2OCw0NDIsMCwyNzUs
NDQyLDAsMjcxLDQ0MiwwLDI3MCw0NDIsMCwyNzIsNDQyLDAsMjc2LDQ0MiwwLDI3Nyw0NDIsMCwy
NzksNDQyLDAsMjgwLDQ0MiwwLDI4Miw0NDIsMCwyODQsNDQyLDAsMjg2LDQ0MiwwLDI4Nyw0NDIs
MCwxNTYsNDQyLDAsMTU1LDQ0MiwwLDE1NCw0NDIsMCwxNTMsNDQyLDAsMTUyLDQ0MiwwLDE1MSw0
NDIsMCwxNTAsNDQyLDAsMTQ5LDQ0MiwwLDE0OCw0NDIsMCwxNDcsNDQyLDAsMTQ2LDQ0MiwwLDE0
NSw0NDIsMCwxNDQsNDQyLDAsMTQzLDQ0MiwwLDE0Miw0NDIsMCwxNDEsNDQyLDAsMTQwLDQ0Miww
LDEzOSw0NDIsMCwxMzgsNDQyLDAsMTM3LDQ0MiwwLDEzNiw0NDIsMCwxMzUsNDQyLDAsMTM0LDQ0
MiwwLDEzMyw0NDIsMCwxMzIsNDQyLDAsMTMxLDQ0MiwwLDEzMCw0NDIsMCwxMjksNDQyLDAsMTI4
LDQ0MiwwLDEyNyw0NDIsMCwxMjYsNDQyLDAsMTI1LDQ0MiwwLDEyNCw0NDIsMCwxMjMsNDQyLDAs
MTIyLDQ0MiwwLDEyMSw0NDIsMCwxMjAsNDQyLDAsMTE5LDQ0MiwwLDExOCw0NDIsMCwxMTcsNDQy
LDAsMTE2LDQ0MiwwLDExNSw0NDIsMCwxMTQsNDQyLDAsMTEzLDQ0MiwwLDExMiw0NDIsMCwxMTEs
NDQyLDAsMTEwLDQ0MiwwLDEwOSw0NDIsMCwxMDgsNDQyLDAsMTA3LDQ0MiwwLDEwNiw0NDIsMCwx
MDUsNDQyLDAsMTA0LDQ0MiwwLDEwMyw0NDIsMCwxMDIsNDQyLDAsMTAxLDQ0MiwwLDEwMCw0NDIs
MCw5OSw0NDIsMCw5OCw0NDIsMCw5Nyw0NDIsMCw5Niw0NDIsMCw5NSw0NDIsMCw5NCw0NDIsMCw5
Myw0NDIsMCw5Miw0NDIsMCw5MSw0NDIsMCw5MCw0NDIsMCw4OSw0NDIsMCw4OCw0NDIsMCw4Nyw0
NDIsMCw4Niw0NDIsMCw4NSw0NDIsMCw4NCw0NDIsMCw4Myw0NDIsMCw4Miw0NDIsMCw4MSw0NDIs
MCw4MCw0NDIsMCw3OSw0NDIsMCw3OCw0NDIsMCw3Nyw0NDIsMCw3Niw0NDIsMCw3NSw0NDIsMCw3
NCw0NDIsMCw3Myw0NDIsMCw3Miw0NDIsMCw3MSw0NDIsMCw3MCw0NDIsMCw2OSw0NDIsMCw2OCw0
NDIsMCw2Nyw0NDIsMCw2Niw0NDIsMCw2NSw0NDIsMCw2NCw0NDIsMCw2Myw0NDIsMCw2Miw0NDIs
MCw2MSw0NDIsMCw2MCw0NDIsMCw1OSw0NDIsMCw1OCw0NDIsMCw1Nyw0NDIsMCwzMjgsNDQyLDAs
MzI3LDQ0MiwwLDMyNiw0NDIsMCwyMzk3LDQ0MywwLDMyNSw0NDIsMCwyMzk2LDQ0MywwLDMyNCw0
NDIsMCwzMjMsNDQyLDAsNTYsNDQzLDAsMzIyLDQ0MiwwLDMyMSw0NDIsMCw1NSw0NDMsMCwzMjAs
NDQyLDAsNTQsNDQzLDAsMzE5LDQ0MiwwLDUzLDQ0MywwLDMxOCw0NDIsMCw1NCw0NDMsMCwzMTcs
NDQyLDAsNTUsNDQzLDAsNTIsNDQzLDAsNTEsNDQzLDAsMzE2LDQ0MiwwLDUwLDQ0MywwLDMxNSw0
NDIsMCw0OSw0NDMsMCwzMTQsNDQyLDAsNDgsNDQzLDAsMzEzLDQ0MiwwLDQ3LDQ0MywwLDMxMiw0
NDIsMCw0Niw0NDMsMCwzMTEsNDQyLDAsNDUsNDQzLDAsMzEwLDQ0MiwwLDQ0LDQ0MywwLDMwOSw0
NDIsMCw0Myw0NDMsMCwzMDgsNDQyLDAsNDIsNDQzLDAsMzA3LDQ0MiwwLDQxLDQ0MywwLDMwNiw0
NDIsMCw0MCw0NDMsMCwzMDUsNDQyLDAsMzksNDQzLDAsMzA0LDQ0MiwwLDM4LDQ0MywwLDMwMyw0
NDIsMCwzNyw0NDMsMCwzMDIsNDQyLDAsMzYsNDQzLDAsMzAxLDQ0MiwwLDM1LDQ0MywwLDMwMCw0
NDIsMCwzNCw0NDMsMCwzMyw0NDMsMCwzMiw0NDMsMCwzMSw0NDMsMCwzMCw0NDMsMCwyOSw0NDMs
MCwyOCw0NDMsMCwyNyw0NDMsMCwyNiw0NDMsMCwyNSw0NDMsMCwyOTksNDQyLDAsMjQsNDQzLDAs
Mjk4LDQ0MiwwLDIzLDQ0MywwLDI5Nyw0NDIsMCwyMiw0NDMsMCwyMSw0NDMsMCwyOTYsNDQyLDAs
MjAsNDQzLDAsMjk1LDQ0MiwwLDI5NCw0NDIsMCwyOTMsNDQyLDAsMjkyLDQ0MiwwLDI5MSw0NDIs
MCwyOTAsNDQyLDAsMjg5LDQ0MiwwLDI4OCw0NDIsMCwyODUsNDQyLDAsMjgzLDQ0MiwwLDI4MSw0
NDIsMCwyNzgsNDQyLDAsMjc0LDQ0MiwwLDI2OSw0NDIsMCwyNjYsNDQyLDAsMjYzLDQ0MiwwLDI1
OSw0NDIsMCwyNTYsNDQyLDAsMjUxLDQ0MiwwLDI0OCw0NDIsMCwyNDQsNDQyLDAsMjQyLDQ0Miww
LDIzOSw0NDIsMCwyMzYsNDQyLDAsMjM0LDQ0MiwwLDIzMSw0NDIsMCwyMjgsNDQyLDAsMjIzLDQ0
MiwwLDIyMCw0NDIsMCwxOSw0NDMsMCwyMTUsNDQyLDAsMjEzLDQ0MiwwLDE4LDQ0MywwLDIxMSw0
NDIsMCwxNyw0NDMsMCwyMDgsNDQyLDAsMTYsNDQzLDAsMTUsNDQzLDAsMTQsNDQzLDAsMTMsNDQz
LDAsMjA1LDQ0MiwwLDEyLDQ0MywwLDIwMiw0NDIsMCwxMSw0NDMsMCwxOTksNDQyLDAsMTAsNDQz
LDAsMTk3LDQ0MiwwLDksNDQzLDAsMTk1LDQ0MiwwLDgsNDQzLDAsMTkxLDQ0MiwwLDcsNDQzLDAs
MTg2LDQ0MiwwLDE4NCw0NDIsMCw2LDQ0MywwLDE4MSw0NDIsMCw1LDQ0MywwLDE3Niw0NDIsMCw0
LDQ0MywwLDMsNDQzLDAsMTcyLDQ0MiwwLDIsNDQzLDAsMTY5LDQ0MiwwLDEsNDQzLDAsMTY1LDQ0
MiwwLDE2Myw0NDIsMCwxNjIsNDQyLDAsMTYxLDQ0MiwwLDE2MCw0NDIsMCwxNTksNDQyLDAsMTU4
LDQ0MiwwLDE1Nyw0NDIsMCwxNjQsNDQyLDAsMTY2LDQ0MiwwLDE2OCw0NDIsMCwxNzEsNDQyLDAs
MTczLDQ0MiwwLDE2Nyw0NDIsMCwxNzAsNDQyLDAsMTc5LDQ0MiwwLDE3NSw0NDIsMCwxNzQsNDQy
LDAsMTc3LDQ0MiwwLDE3OCw0NDIsMCwxODAsNDQyLDAsMTgzLDQ0MiwwLDE4Miw0NDIsMCwxODUs
NDQyLDAsMTg4LDQ0MiwwLDE4Nyw0NDIsMCwxODksNDQyLDAsMTkwLDQ0MiwwLDE5Miw0NDIsMCwy
MDAsNDQyLDAsMjAxLDQ0MiwwLDIwNiw0NDIsMCwxOTYsNDQyLDAsMTk4LDQ0MiwwLDE5Myw0NDIs
MCwxOTQsNDQyLDAsMjAzLDQ0MiwwLDIwNCw0NDIsMCwyMDcsNDQyLDAsMjA5LDQ0MiwwLDIxMCw0
NDIsMCwyMTIsNDQyLDAsMjE0LDQ0MiwwLDIxNyw0NDIsMCwyMTYsNDQyLDAsMjIxLDQ0MiwwLDIx
OCw0NDIsMCwyMTksNDQyLDAsMjIyLDQ0MiwwLDIyNCw0NDIsMCwyMjUsNDQyLDAsMjI2LDQ0Miww
LDIyNyw0NDIsMCwyMjksNDQyLDAsMjMwLDQ0MiwwLDIzMiw0NDIsMCwyMzMsNDQyLDAsMjM1LDQ0
MiwwLDIzNyw0NDIsMCwyMzgsNDQyLDAsMjQwLDQ0MiwwLDI0MSw0NDIsMCwyNDMsNDQyLDAsMjQ1
LDQ0MiwwLDI0Niw0NDIsMCwyNDcsNDQyLDAsMjQ5LDQ0MiwwLDI1MCw0NDIsMCwyNTMsNDQyLDAs
MjUyLDQ0MiwwLDI1NCw0NDIsMCwyNTUsNDQyLDAsMjU3LDQ0MiwwLDI1OCw0NDIsMCwyNjAsNDQy
LDAsMjYxLDQ0MiwwLDI2Miw0NDIsMCwyNjQsNDQyLDAsMjY1LDQ0MiwwLDI2Nyw0NDIsMCwyNzMs
NDQyLDAsMjY4LDQ0MiwwLDI3NSw0NDIsMCwyNzEsNDQyLDAsMjcwLDQ0MiwwLDI3Miw0NDIsMCwy
NzYsNDQyLDAsMjc3LDQ0MiwwLDI3OSw0NDIsMCwyODAsNDQyLDAsMjgyLDQ0MiwwLDI4NCw0NDIs
MCwyODYsNDQyLDAsMjg3LDQ0MiwwLDE1Niw0NDIsMCwxNTUsNDQyLDAsMTU0LDQ0MiwwLDE1Myw0
NDIsMCwxNTIsNDQyLDAsMTUxLDQ0MiwwLDE1MCw0NDIsMCwxNDksNDQyLDAsMTQ4LDQ0MiwwLDE0
Nyw0NDIsMCwxNDYsNDQyLDAsMTQ1LDQ0MiwwLDE0NCw0NDIsMCwxNDMsNDQyLDAsMTQyLDQ0Miww
LDE0MSw0NDIsMCwxNDAsNDQyLDAsMTM5LDQ0MiwwLDEzOCw0NDIsMCwxMzcsNDQyLDAsMTM2LDQ0
MiwwLDEzNSw0NDIsMCwxMzQsNDQyLDAsMTMzLDQ0MiwwLDEzMiw0NDIsMCwxMzEsNDQyLDAsMTMw
LDQ0MiwwLDEyOSw0NDIsMCwxMjgsNDQyLDAsMTI3LDQ0MiwwLDEyNiw0NDIsMCwxMjUsNDQyLDAs
MTI0LDQ0MiwwLDEyMyw0NDIsMCwxMjIsNDQyLDAsMTIxLDQ0MiwwLDEyMCw0NDIsMCwxMTksNDQy
LDAsMTE4LDQ0MiwwLDExNyw0NDIsMCwxMTYsNDQyLDAsMTE1LDQ0MiwwLDExNCw0NDIsMCwxMTMs
NDQyLDAsMTEyLDQ0MiwwLDExMSw0NDIsMCwxMTAsNDQyLDAsMTA5LDQ0MiwwLDEwOCw0NDIsMCwx
MDcsNDQyLDAsMTA2LDQ0MiwwLDEwNSw0NDIsMCwxMDQsNDQyLDAsMTAzLDQ0MiwwLDEwMiw0NDIs
MCwxMDEsNDQyLDAsMTAwLDQ0MiwwLDk5LDQ0MiwwLDk4LDQ0MiwwLDk3LDQ0MiwwLDk2LDQ0Miww
LDk1LDQ0MiwwLDk0LDQ0MiwwLDkzLDQ0MiwwLDkyLDQ0MiwwLDkxLDQ0MiwwLDkwLDQ0MiwwLDg5
LDQ0MiwwLDg4LDQ0MiwwLDg3LDQ0MiwwLDg2LDQ0MiwwLDg1LDQ0MiwwLDg0LDQ0MiwwLDgzLDQ0
MiwwLDgyLDQ0MiwwLDgxLDQ0MiwwLDgwLDQ0MiwwLDc5LDQ0MiwwLDc4LDQ0MiwwLDc3LDQ0Miww
LDc2LDQ0MiwwLDc1LDQ0MiwwLDc0LDQ0MiwwLDczLDQ0MiwwLDcyLDQ0MiwwLDcxLDQ0MiwwLDcw
LDQ0MiwwLDY5LDQ0MiwwLDY4LDQ0MiwwLDY3LDQ0MiwwLDY2LDQ0MiwwLDY1LDQ0MiwwLDY0LDQ0
MiwwLDYzLDQ0MiwwLDYyLDQ0MiwwLDYxLDQ0MiwwLDYwLDQ0MiwwLDU5LDQ0MiwwLDU4LDQ0Miww
LDU3LDQ0MiwwXSwibGFiZWxzIjpbIiIsImZpbGU6Ly8vVm9sdW1lcy9EYXRhL0RldmVsb3BtZW50
L21lZGlhL3Rlc3Rjb250ZW50L3NpbXBsZS9qdXN0LWEtYm94Lmh0bWwiLCJPYmplY3QiLCJBcnJh
eSIsIkFyZ3VtZW50cyIsIkpTTGV4aWNhbEVudmlyb25tZW50IiwiRnVuY3Rpb24iLCJTdHJ1Y3R1
cmUiLCJTdHJ1Y3R1cmVSYXJlRGF0YSIsIlRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvciIsInN0cmlu
ZyIsIkpTUHJvcGVydHlOYW1lRW51bWVyYXRvciIsIkN1c3RvbUdldHRlclNldHRlciIsIkRPTUF0
dHJpYnV0ZUdldHRlclNldHRlciIsIlNjb3BlZEFyZ3VtZW50c1RhYmxlIiwiQVBJIFdyYXBwZXIi
LCJOYXRpdmVFeGVjdXRhYmxlIiwiRXZhbEV4ZWN1dGFibGUiLCJQcm9ncmFtRXhlY3V0YWJsZSIs
IkZ1bmN0aW9uRXhlY3V0YWJsZSIsIldlYkFzc2VtYmx5Q29kZUJsb2NrIiwiTW9kdWxlUHJvZ3Jh
bUV4ZWN1dGFibGUiLCJSZWdFeHAiLCJzeW1ib2wiLCJTeW1ib2xUYWJsZSIsIkpTRml4ZWRBcnJh
eSIsIkltbXV0YWJsZSBCdXR0ZXJmbHkiLCJKU1NvdXJjZUNvZGUiLCJKU1NjcmlwdEZldGNoZXIi
LCJKU1NjcmlwdEZldGNoUGFyYW1ldGVycyIsIlN0cnVjdHVyZUNoYWluIiwiU3BhcnNlQXJyYXlW
YWx1ZU1hcCIsIlRlbXBsYXRlT2JqZWN0RGVzY3JpcHRvciIsIkFycmF5QnVmZmVyTmV1dGVyaW5n
V2F0Y2hwb2ludCIsIlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlIiwiVW5saW5rZWRQcm9ncmFt
Q29kZUJsb2NrIiwiVW5saW5rZWRFdmFsQ29kZUJsb2NrIiwiVW5saW5rZWRGdW5jdGlvbkNvZGVC
bG9jayIsIlVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayIsIlByb3BlcnR5VGFibGUiLCJJ
bmZlcnJlZFR5cGUiLCJJbmZlcnJlZFR5cGVUYWJsZSIsIkluZmVycmVkVmFsdWUiLCJGdW5jdGlv
blJhcmVEYXRhIiwiRXhjZXB0aW9uIiwiSlNQcm9taXNlRGVmZXJyZWQiLCJKU0ludGVybmFsUHJv
bWlzZURlZmVycmVkIiwiUHJvZ3JhbUNvZGVCbG9jayIsIk1vZHVsZVByb2dyYW1Db2RlQmxvY2si
LCJFdmFsQ29kZUJsb2NrIiwiRnVuY3Rpb25Db2RlQmxvY2siLCJIYXNoTWFwQnVja2V0IiwiU2V0
IEl0ZXJhdG9yIiwiTWFwIEl0ZXJhdG9yIiwiSlNCaWdJbnQiLCJFeGVjdXRhYmxlVG9Db2RlQmxv
Y2tFZGdlIiwiTmF0aXZlU3RkRnVuY3Rpb25DZWxsIiwidG9Mb2NhbGVMb3dlckNhc2UiLCJsb2Nh
bGVDb21wYXJlIiwidG9VcHBlckNhc2UiLCJ0b0xvd2VyQ2FzZSIsInN1YnN0cmluZyIsInN1YnN0
ciIsInNsaWNlIiwiYW5vbnltb3VzIiwibGFzdEluZGV4T2YiLCJpbmRleE9mIiwiY29kZVBvaW50
QXQiLCJjaGFyQ29kZUF0IiwiY2hhckF0IiwidmFsdWVPZiIsInRvU3RyaW5nIiwiW1N5bWJvbC5h
c3luY0l0ZXJhdG9yXSIsIltTeW1ib2wuaXRlcmF0b3JdIiwiZ2V0IGJ5dGVMZW5ndGgiLCJwYXJz
ZUZsb2F0IiwicGFyc2VJbnQiLCJ0ZXN0IiwiW1N5bWJvbC5zcGxpdF0iLCJbU3ltYm9sLnNlYXJj
aF0iLCJbU3ltYm9sLnJlcGxhY2VdIiwiW1N5bWJvbC5tYXRjaF0iLCJnZXQgZmxhZ3MiLCJnZXQg
c291cmNlIiwiZ2V0IHVuaWNvZGUiLCJnZXQgc3RpY2t5IiwiZ2V0IG11bHRpbGluZSIsImdldCBp
Z25vcmVDYXNlIiwiZ2V0IGRvdEFsbCIsImdldCBnbG9iYWwiLCJleGVjIiwiY29tcGlsZSIsImNv
cHlXaXRoaW4iLCJpbmNsdWRlcyIsImZpbmRJbmRleCIsImZpbmQiLCJrZXlzIiwiZW50cmllcyIs
Im1hcCIsInJlZHVjZVJpZ2h0IiwicmVkdWNlIiwiZmxhdE1hcCIsImZsYXQiLCJmaWx0ZXIiLCJz
b21lIiwiZm9yRWFjaCIsImV2ZXJ5IiwidW5zaGlmdCIsInNwbGljZSIsInNvcnQiLCJzaGlmdCIs
InJldmVyc2UiLCJwdXNoIiwicG9wIiwiam9pbiIsImZpbGwiLCJjb25jYXQiLCJ0b0xvY2FsZVN0
cmluZyIsInZhbHVlcyIsImdldCBbU3ltYm9sLnNwZWNpZXNdIiwic2V0IF9fcHJvdG9fXyIsImdl
dCBfX3Byb3RvX18iLCJfX2xvb2t1cFNldHRlcl9fIiwiX19sb29rdXBHZXR0ZXJfXyIsIl9fZGVm
aW5lU2V0dGVyX18iLCJfX2RlZmluZUdldHRlcl9fIiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5
SXNFbnVtZXJhYmxlIiwiaGFzT3duUHJvcGVydHkiLCJuZXdQcm9taXNlQ2FwYWJpbGl0eSIsIltT
eW1ib2wuaGFzSW5zdGFuY2VdIiwiYmluZCIsImNhbGwiLCJhcHBseSIsIk1vZHVsZVJlY29yZCIs
IlN0cmluZyBJdGVyYXRvciIsIkludGVybmFsUHJvbWlzZSIsIkludGVybmFsUHJvbWlzZVByb3Rv
dHlwZSIsIlByb21pc2UiLCJQcm9taXNlUHJvdG90eXBlIiwiU2V0IiwiTWFwIiwiRXJyb3IiLCJC
b29sZWFuIiwiTnVtYmVyIiwiU3ltYm9sIiwiU3RyaW5nIiwiQXN5bmNHZW5lcmF0b3IiLCJHZW5l
cmF0b3IiLCJBc3luY0l0ZXJhdG9yIiwiSXRlcmF0b3IiLCJBcnJheUJ1ZmZlciIsIkFycmF5QnVm
ZmVyUHJvdG90eXBlIiwiUHJveHlSZXZva2UiLCJQcm94eU9iamVjdCIsIk1vZHVsZU5hbWVzcGFj
ZU9iamVjdCIsIkpTQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiIsIkFzeW5jR2VuZXJhdG9yRnVuY3Rp
b24iLCJBc3luY0Z1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJXZWJBc3NlbWJseS5Nb2R1
bGUiLCJXZWJBc3NlbWJseS5NZW1vcnkiLCJXZWJBc3NlbWJseS5MaW5rRXJyb3IiLCJXZWJBc3Nl
bWJseS5JbnN0YW5jZSIsIldlYkFzc2VtYmx5LkNvbXBpbGVFcnJvciIsIldlYkFzc2VtYmx5VG9K
U0NhbGxlZSIsIldlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uIiwiV2ViQXNzZW1ibHlGdW5jdGlv
biIsIldlYkFzc2VtYmx5TW9kdWxlUmVjb3JkIiwiV2ViQXNzZW1ibHkiLCJJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24iLCJBc3luY0Zyb21TeW5jSXRlcmF0b3IiLCJBcnJheSBJdGVyYXRvciIsIk1v
ZHVsZUxvYWRlciIsIk5vZGVQcm90b3R5cGUiLCJKU1dpbmRvd1Byb3h5IiwiV2luZG93UHJvcGVy
dGllcyIsIkV2ZW50VGFyZ2V0IiwiRXZlbnRUYXJnZXRQcm90b3R5cGUiLCJSZWFkYWJsZVN0cmVh
bUJZT0JSZWFkZXJQcml2YXRlQ29uc3RydWN0b3IiLCJSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFk
ZXJQcml2YXRlQ29uc3RydWN0b3IiLCJSZWFkYWJsZVN0cmVhbUJZT0JSZXF1ZXN0UHJpdmF0ZUNv
bnN0cnVjdG9yIiwiUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlclByaXZhdGVDb25zdHJ1Y3Rv
ciIsIlJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJQcml2YXRlQ29uc3RydWN0b3IiLCJX
aW5kb3dQcm90b3R5cGUiLCJXaW5kb3ciLCJXZWJBc3NlbWJseS5UYWJsZSIsIldlYkFzc2VtYmx5
LlJ1bnRpbWVFcnJvciIsIkhUTUxEb2N1bWVudCIsIkhUTUxEb2N1bWVudFByb3RvdHlwZSIsIkRv
Y3VtZW50IiwiRG9jdW1lbnRQcm90b3R5cGUiLCJOb2RlIiwiR2V0dGVyU2V0dGVyIiwiSlNHbG9i
YWxMZXhpY2FsRW52aXJvbm1lbnQiLCJDYWxsZWUiLCJyZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9s
bGVySW52YWxpZGF0ZUJZT0JSZXF1ZXN0IiwicmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlclNo
aWZ0UGVuZGluZ0Rlc2NyaXB0b3IiLCJyZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyRmlsbERl
c2NyaXB0b3JGcm9tUXVldWUiLCJyZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyUHJvY2Vzc1B1
bGxEZXNjcmlwdG9ycyIsInJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJSZXNwb25kSW5DbG9z
ZWRTdGF0ZSIsInJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJSZXNwb25kSW5SZWFkYWJsZVN0
YXRlIiwicmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlclJlc3BvbmRJbnRlcm5hbCIsInJlYWRh
YmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJSZXNwb25kIiwicmVhZGFibGVCeXRlU3RyZWFtQ29udHJv
bGxlclJlc3BvbmRXaXRoTmV3VmlldyIsInJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJFbnF1
ZXVlQ2h1bmsiLCJyZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyRW5xdWV1ZSIsInRyYW5zZmVy
QnVmZmVyVG9DdXJyZW50UmVhbG0iLCJyZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyQ2FsbFB1
bGxJZk5lZWRlZCIsInJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJTaG91bGRDYWxsUHVsbCIs
InJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJQdWxsIiwicmVhZGFibGVCeXRlU3RyZWFtQ29u
dHJvbGxlckhhbmRsZVF1ZXVlRHJhaW4iLCJyZWFkYWJsZVN0cmVhbUhhc0RlZmF1bHRSZWFkZXIi
LCJyZWFkYWJsZVN0cmVhbUhhc0JZT0JSZWFkZXIiLCJyZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9s
bGVyR2V0RGVzaXJlZFNpemUiLCJyZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyQ2xlYXJQZW5k
aW5nUHVsbEludG9zIiwicmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlckNsb3NlIiwicmVhZGFi
bGVCeXRlU3RyZWFtQ29udHJvbGxlckVycm9yIiwicmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxl
ckNhbmNlbCIsImlzUmVhZGFibGVTdHJlYW1CWU9CUmVhZGVyIiwiaXNSZWFkYWJsZVN0cmVhbUJZ
T0JSZXF1ZXN0IiwiaXNSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyIiwicHJpdmF0ZUluaXRp
YWxpemVSZWFkYWJsZVN0cmVhbUJZT0JSZXF1ZXN0IiwicHJpdmF0ZUluaXRpYWxpemVSZWFkYWJs
ZUJ5dGVTdHJlYW1Db250cm9sbGVyIiwicHJpdmF0ZUluaXRpYWxpemVSZWFkYWJsZVN0cmVhbUJZ
T0JSZWFkZXIiLCJpc1JUQ1BlZXJDb25uZWN0aW9uIiwiY2FsbGJhY2tzQW5kRGljdGlvbmFyeU92
ZXJsb2FkIiwib2JqZWN0QW5kQ2FsbGJhY2tzT3ZlcmxvYWQiLCJlbnF1ZXVlT3BlcmF0aW9uIiwi
bmV4dCIsInRocm93IiwicmV0dXJuIiwidHlwZWRBcnJheVNwZWNpZXNDb25zdHJ1Y3RvciIsInR5
cGVkQXJyYXlDbGFtcEFyZ3VtZW50VG9TdGFydE9yRW5kIiwidHJpZ2dlclByb21pc2VSZWFjdGlv
bnMiLCJ0b0xlbmd0aCIsInRvSW50ZWdlciIsInN0cmluZ0NvbmNhdFNsb3dQYXRoIiwic3BlY2ll
c0NvbnN0cnVjdG9yIiwic2V0U3RhdGVUb01heCIsInNldEl0ZXJhdG9yTmV4dCIsInJlcGVhdFNs
b3dQYXRoIiwicmVwZWF0Q2hhcmFjdGVyc1Nsb3dQYXRoIiwicmVqZWN0UHJvbWlzZSIsInJlZ0V4
cEV4ZWMiLCJwcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iIiwicHJvbWlzZVJlYWN0aW9uSm9iIiwi
bmV3UmVnaXN0cnlFbnRyeSIsIm5ld1Byb21pc2VSZWFjdGlvbiIsIm5ld0hhbmRsZWRSZWplY3Rl
ZFByb21pc2UiLCJtYXRjaFNsb3ciLCJtYXBJdGVyYXRvck5leHQiLCJpc1N1c3BlbmRZaWVsZFN0
YXRlIiwiaXNQcm9taXNlIiwiaXNOYU4iLCJpc0Zpbml0ZSIsImlzRXhlY3V0aW9uU3RhdGUiLCJp
c0RpY3Rpb25hcnkiLCJpbml0aWFsaXplUHJvbWlzZSIsImhhc09ic2VydmFibGVTaWRlRWZmZWN0
c0ZvclN0cmluZ1JlcGxhY2UiLCJoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JSZWdFeHBTcGxp
dCIsImhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclJlZ0V4cE1hdGNoIiwiZ2V0VGhlbkZpbmFs
bHkiLCJnZXREZWZhdWx0Q29sbGF0b3IiLCJnZXRDYXRjaEZpbmFsbHkiLCJnZW5lcmF0b3JSZXN1
bWUiLCJmdWxmaWxsUHJvbWlzZSIsImZsYXRJbnRvQXJyYXlXaXRoQ2FsbGJhY2siLCJmbGF0SW50
b0FycmF5IiwiZG9Bc3luY0dlbmVyYXRvckJvZHlDYWxsIiwiY3JlYXRlU2V0SXRlcmF0b3IiLCJj
cmVhdGVSZXNvbHZpbmdGdW5jdGlvbnMiLCJjcmVhdGVNYXBJdGVyYXRvciIsImNyZWF0ZUhUTUwi
LCJjcmVhdGVBc3luY0Zyb21TeW5jSXRlcmF0b3IiLCJjcmVhdGVBcnJheUl0ZXJhdG9yIiwiY29w
eURhdGFQcm9wZXJ0aWVzTm9FeGNsdXNpb25zIiwiY29weURhdGFQcm9wZXJ0aWVzIiwiY29uY2F0
U2xvd1BhdGgiLCJhd2FpdFZhbHVlIiwiYXN5bmNHZW5lcmF0b3JZaWVsZCIsImFzeW5jR2VuZXJh
dG9yUmVzdW1lTmV4dCIsImFzeW5jR2VuZXJhdG9yUmVzb2x2ZSIsImFzeW5jR2VuZXJhdG9yUmVq
ZWN0IiwiYXN5bmNHZW5lcmF0b3JRdWV1ZUlzRW1wdHkiLCJhc3luY0dlbmVyYXRvclF1ZXVlRW5x
dWV1ZSIsImFzeW5jR2VuZXJhdG9yUXVldWVEZXF1ZXVlIiwiYXN5bmNHZW5lcmF0b3JFbnF1ZXVl
IiwiYXN5bmNHZW5lcmF0b3JEZXF1ZXVlIiwiYXN5bmNGdW5jdGlvblJlc3VtZSIsImFycmF5U3Bl
Y2llc0NyZWF0ZSIsImFycmF5SXRlcmF0b3JWYWx1ZU5leHQiLCJhcnJheUl0ZXJhdG9yS2V5VmFs
dWVOZXh0IiwiYXJyYXlJdGVyYXRvcktleU5leHQiLCJhZHZhbmNlU3RyaW5nSW5kZXgiLCJBc3lu
Y0Zyb21TeW5jSXRlcmF0b3JDb25zdHJ1Y3RvciIsImdldENhbm9uaWNhbExvY2FsZXMiLCJmb3Jt
YXRUb1BhcnRzIiwiZXZhbCIsInJlamVjdCIsInJlc29sdmUiLCJpc0ludGVnZXIiLCJpc1ZpZXci
LCJpc0FycmF5IiwidGhlbiIsImdldCBzaXplIiwiaGFzIiwiZGVsZXRlIiwiY2xlYXIiLCJhZGQi
LCJzZXQiLCJnZXQiLCJbU3ltYm9sLnRvUHJpbWl0aXZlXSIsInRyaW1FbmQiLCJ0cmltU3RhcnQi
LCJub3JtYWxpemUiLCJlbmRzV2l0aCIsInN0YXJ0c1dpdGgiLCJ0cmltIiwidG9Mb2NhbGVVcHBl
ckNhc2UiLCJxdWVyeVNlbGVjdG9yQWxsIiwicXVlcnlTZWxlY3RvciIsImFwcGVuZCIsInByZXBl
bmQiLCJnZXRFbGVtZW50QnlJZCIsImVsZW1lbnRzRnJvbVBvaW50IiwiZWxlbWVudEZyb21Qb2lu
dCIsInJlbGVhc2VFdmVudHMiLCJjYXB0dXJlRXZlbnRzIiwicmVxdWVzdFN0b3JhZ2VBY2Nlc3Mi
LCJoYXNTdG9yYWdlQWNjZXNzIiwiZ2V0Q1NTQ2FudmFzQ29udGV4dCIsImNhcmV0UmFuZ2VGcm9t
UG9pbnQiLCJnZXRPdmVycmlkZVN0eWxlIiwiZXhpdFBvaW50ZXJMb2NrIiwid2Via2l0Q2FuY2Vs
RnVsbFNjcmVlbiIsIndlYmtpdEV4aXRGdWxsc2NyZWVuIiwiZXZhbHVhdGUiLCJjcmVhdGVOU1Jl
c29sdmVyIiwiY3JlYXRlRXhwcmVzc2lvbiIsImdldFNlbGVjdGlvbiIsInF1ZXJ5Q29tbWFuZFZh
bHVlIiwicXVlcnlDb21tYW5kU3VwcG9ydGVkIiwicXVlcnlDb21tYW5kU3RhdGUiLCJxdWVyeUNv
bW1hbmRJbmRldGVybSIsInF1ZXJ5Q29tbWFuZEVuYWJsZWQiLCJleGVjQ29tbWFuZCIsImhhc0Zv
Y3VzIiwid3JpdGVsbiIsIndyaXRlIiwiY2xvc2UiLCJvcGVuIiwiZ2V0RWxlbWVudHNCeU5hbWUi
LCJjcmVhdGVUcmVlV2Fsa2VyIiwiY3JlYXRlTm9kZUl0ZXJhdG9yIiwiY3JlYXRlUmFuZ2UiLCJj
cmVhdGVFdmVudCIsImNyZWF0ZUF0dHJpYnV0ZU5TIiwiY3JlYXRlQXR0cmlidXRlIiwiYWRvcHRO
b2RlIiwiaW1wb3J0Tm9kZSIsImNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbiIsImNyZWF0ZUNv
bW1lbnQiLCJjcmVhdGVDREFUQVNlY3Rpb24iLCJjcmVhdGVUZXh0Tm9kZSIsImNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQiLCJjcmVhdGVFbGVtZW50TlMiLCJjcmVhdGVFbGVtZW50IiwiZ2V0RWxlbWVu
dHNCeUNsYXNzTmFtZSIsImdldEVsZW1lbnRzQnlUYWdOYW1lTlMiLCJnZXRFbGVtZW50c0J5VGFn
TmFtZSIsInJlbW92ZUNoaWxkIiwicmVwbGFjZUNoaWxkIiwiYXBwZW5kQ2hpbGQiLCJpbnNlcnRC
ZWZvcmUiLCJpc0RlZmF1bHROYW1lc3BhY2UiLCJsb29rdXBOYW1lc3BhY2VVUkkiLCJsb29rdXBQ
cmVmaXgiLCJjb250YWlucyIsImNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIiwiaXNTYW1lTm9kZSIs
ImlzRXF1YWxOb2RlIiwiY2xvbmVOb2RlIiwiaGFzQ2hpbGROb2RlcyIsImdldFJvb3ROb2RlIiwi
ZGlzcGF0Y2hFdmVudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJhZGRFdmVudExpc3RlbmVyIiwi
Y3JlYXRlSW1hZ2VCaXRtYXAiLCJmZXRjaCIsInByaXZhdGVJbml0aWFsaXplUmVhZGFibGVTdHJl
YW1EZWZhdWx0UmVhZGVyIiwicHJpdmF0ZUluaXRpYWxpemVSZWFkYWJsZVN0cmVhbURlZmF1bHRD
b250cm9sbGVyIiwibWFwTGlrZUZvckVhY2giLCJjbG9zZVdyaXRhYmxlU3RyZWFtIiwid3JpdGFi
bGVTdHJlYW1BZHZhbmNlUXVldWUiLCJjYWxsT3JTY2hlZHVsZVdyaXRhYmxlU3RyZWFtQWR2YW5j
ZVF1ZXVlIiwiZXJyb3JXcml0YWJsZVN0cmVhbSIsInN5bmNXcml0YWJsZVN0cmVhbVN0YXRlV2l0
aFF1ZXVlIiwiaXNXcml0YWJsZVN0cmVhbSIsInBlZWtRdWV1ZVZhbHVlIiwiZW5xdWV1ZVZhbHVl
V2l0aFNpemUiLCJkZXF1ZXVlVmFsdWUiLCJuZXdRdWV1ZSIsInZhbGlkYXRlQW5kTm9ybWFsaXpl
UXVldWluZ1N0cmF0ZWd5IiwicHJvbWlzZUludm9rZU9yRmFsbGJhY2tPck5vb3AiLCJwcm9taXNl
SW52b2tlT3JOb29wIiwicHJvbWlzZUludm9rZU9yTm9vcE5vQ2F0Y2giLCJzaGllbGRpbmdQcm9t
aXNlUmVzb2x2ZSIsInJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJDYW5DbG9zZU9yRW5x
dWV1ZSIsInJlYWRhYmxlU3RyZWFtUmVhZGVyR2VuZXJpY1JlbGVhc2UiLCJpc1JlYWRhYmxlU3Ry
ZWFtRGlzdHVyYmVkIiwicmVhZGFibGVTdHJlYW1BZGRSZWFkUmVxdWVzdCIsInJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdFJlYWRlclJlYWQiLCJyZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyRW5x
dWV1ZSIsInJlYWRhYmxlU3RyZWFtRnVsZmlsbFJlYWRSZXF1ZXN0IiwicmVhZGFibGVTdHJlYW1D
bG9zZSIsInJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJDbG9zZSIsInJlYWRhYmxlU3Ry
ZWFtRGVmYXVsdENvbnRyb2xsZXJQdWxsIiwicmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxl
ckNhbmNlbCIsInJlYWRhYmxlU3RyZWFtQ2FuY2VsIiwicmVhZGFibGVTdHJlYW1SZWFkZXJHZW5l
cmljQ2FuY2VsIiwicmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlckdldERlc2lyZWRTaXpl
IiwiaXNSZWFkYWJsZVN0cmVhbUxvY2tlZCIsInJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xs
ZXJDYWxsUHVsbElmTmVlZGVkIiwicmVhZGFibGVTdHJlYW1FcnJvciIsImlzUmVhZGFibGVTdHJl
YW1EZWZhdWx0Q29udHJvbGxlciIsImlzUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyIiwiaXNS
ZWFkYWJsZVN0cmVhbSIsInJlYWRhYmxlU3RyZWFtVGVlQnJhbmNoMkNhbmNlbEZ1bmN0aW9uIiwi
cmVhZGFibGVTdHJlYW1UZWVCcmFuY2gxQ2FuY2VsRnVuY3Rpb24iLCJyZWFkYWJsZVN0cmVhbVRl
ZVB1bGxGdW5jdGlvbiIsImRvU3RydWN0dXJlZENsb25lIiwicmVhZGFibGVTdHJlYW1UZWUiLCJy
ZWFkYWJsZVN0cmVhbVBpcGVUbyIsInJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXJFcnJv
ciIsInJlYWRhYmxlU3RyZWFtUmVhZGVyR2VuZXJpY0luaXRpYWxpemUiLCJyZWFkYWJsZVN0cmVh
bUFkZFJlYWRJbnRvUmVxdWVzdCIsInJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXJQdWxsSW50
byIsInJlYWRhYmxlU3RyZWFtQllPQlJlYWRlclJlYWQiLCJyZWFkYWJsZVN0cmVhbUZ1bGZpbGxS
ZWFkSW50b1JlcXVlc3QiLCJyZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyQ29udmVydERlc2Ny
aXB0b3IiLCJyZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyQ29tbWl0RGVzY3JpcHRvciIsIlN0
cm9uZyByZWZlcmVuY2VzIiwiU3Ryb25nIGhhbmRsZXMiXX0KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347981</attachid>
            <date>2018-08-23 17:54:58 -0700</date>
            <delta_ts>2018-08-23 18:06:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186416-20180823175458.patch</filename>
            <type>text/plain</type>
            <size>334943</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NTM0MDc2MTZlYmYwNWEyZmE3OTJiYjBiZjIyYTkyMjFkNTI2ZTc0Li4xYjY0NDMyOTc5YTMyZDg1
MGE3OGM0OTA4NDJiNmQxYzY0OTlmNDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NyBAQAorMjAxOC0wOC0yMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgZHVtcGluZyBHQyBoZWFwIHNuYXBzaG90
cywgYW5kIGEgdmlld2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODY0MTYKKworICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisK
KyAgICAgICAgTWFrZSBhIHdheSB0byBkdW1wIGluZm9ybWF0aW9uIGFib3V0IHRoZSBHQyBoZWFw
IHRoYXQgaXMgdXNlZnVsIGZvciBsb29raW5nIGZvciBsZWFrZWQKKyAgICAgICAgb3IgYWJhbmRv
bmVkIG9iamVjdHMuIFRoaXMgZHVtcCBpcyBvYnRhaW5lZCAob24gQXBwbGUgcGxhdGZvcm1zKSB2
aWE6CisgICAgICAgICAgICBub3RpZnl1dGlsIC1wIGNvbS5hcHBsZS5XZWJLaXQuZHVtcEdDSGVh
cAorICAgICAgICB3aGljaCB3cml0ZXMgYSBKU09OIGZpbGUgdG8gL3RtcCB3aGljaCBjYW4gdGhl
biBiZSBsb2FkZWQgaW50byB0aGUgdmlld2VyIGluIFRvb2xzL0dDSGVhcEluc3BlY3Rvci4KKyAg
ICAgICAgCisgICAgICAgIFRoaXMgbGV2ZXJhZ2VzIHRoZSBoZWFwIHNuYXBzaG90IHVzZWQgYnkg
V2ViIEluc3BlY3RvciwgYWRkaW5nIGFuIGFsdGVybmF0ZSBmb3JtYXQgZm9yCisgICAgICAgIHRo
ZSBzbmFwc2hvdCBKU09OIHRoYXQgYWRkcyBhZGRpdGlvbmFsIGRhdGEgYWJvdXQgb2JqZWN0cyBh
bmQgd2h5IHRoZXkgYXJlIEdDIHJvb3RzLgorCisgICAgICAgIFNsb3RWaXNpdG9yIG1haW50YWlu
cyBhIFJvb3RNYXJrUmVhc29uICh2aWEgU2V0Um9vdE1hcmtSZWFzb25TY29wZSkgdGhhdCBhbGxv
d3MKKyAgICAgICAgdGhlIEhlYXBTbmFwc2hvdEJ1aWxkZXIgdG8ga2VlcCB0cmFjayBvZiB3aHkg
YSBKU0NlbGwgd2FzIHRyZWF0ZWQgYXMgYSBHQyByb290LiBGb3IKKyAgICAgICAgb2JqZWN0cyB2
aXNpdGVkIHZpYSBvcGFxdWUgcm9vdHMsIHdlIHJlY29yZCB0aGUgcmVhc29uIHdoeSB2aWEgYSBu
ZXcgb3V0IHBhcmFtIHRvCisgICAgICAgIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKCkuCisK
KyAgICAgICAgSGVhcFNuYXBzaG90QnVpbGRlciBpcyBlbmhhbmNlZCB0byBwcm9kdWNlIEdDRGVi
dWdnaW5nU25hcHNob3QgSlNPTiBvdXRwdXQuIFRoaXMgY29udGFpbnMKKyAgICAgICAgYWRkaXRp
b25hbCBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgdGhlIGFkZHJlc3Mgb2YgdGhlIEpTQ2VsbCogYW5k
IHRoZSB3cmFwcGVkIG9iamVjdCAoZm9yCisgICAgICAgIEpTRE9NV3JhcHBlcnMpLCB0aGUgcm9v
dCByZWFzb25zLCBhbmQgZm9yIHNvbWUgb2JqZWN0cyBsaWtlIEpTRG9jdW1lbnQgYSBsYWJlbCB3
aGljaCBjYW4KKyAgICAgICAgYmUgdGhlIGRvY3VtZW50IFVSTC4KKworICAgICAgICBHQ0RlYnVn
Z2luZ1NuYXBzaG90cyBhcmUgYWx3YXlzIGZ1bGwgc25hcHNob3RzIChwcmV2aW91cyBzbmFwc2hv
dHMgYXJlIG5vdCBrZXB0IGFyb3VuZCkuCisKKyAgICAgICAgKiBBUEkvSlNBUElXcmFwcGVyT2Jq
ZWN0Lm1tOgorICAgICAgICAoSlNBUElXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBBUEkvSlNNYW5hZ2VkVmFsdWUubW06Cisg
ICAgICAgIChKU01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyk6CisgICAgICAgICogQVBJL2dsaWIvSlNBUElXcmFwcGVyT2JqZWN0R0xpYi5jcHA6Cisg
ICAgICAgIChKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMpOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIGhlYXAvQ29u
c2VydmF0aXZlUm9vdHMuaDoKKyAgICAgICAgKEpTQzo6Q29uc2VydmF0aXZlUm9vdHM6OnNpemUg
Y29uc3QpOgorICAgICAgICAoSlNDOjpDb25zZXJ2YXRpdmVSb290czo6c2l6ZSk6IERlbGV0ZWQu
CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6YWRkQ29yZUNv
bnN0cmFpbnRzKToKKyAgICAgICAgKiBoZWFwL0hlYXBTbmFwc2hvdEJ1aWxkZXIuY3BwOgorICAg
ICAgICAoSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyOjpnZXROZXh0T2JqZWN0SWRlbnRpZmllcik6
CisgICAgICAgIChKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXI6OkhlYXBTbmFwc2hvdEJ1aWxkZXIp
OgorICAgICAgICAoSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyOjp+SGVhcFNuYXBzaG90QnVpbGRl
cik6CisgICAgICAgIChKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXI6OmJ1aWxkU25hcHNob3QpOgor
ICAgICAgICAoSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyOjphcHBlbmROb2RlKToKKyAgICAgICAg
KEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlcjo6YXBwZW5kRWRnZSk6CisgICAgICAgIChKU0M6Okhl
YXBTbmFwc2hvdEJ1aWxkZXI6OnNldE9wYXF1ZVJvb3RSZWFjaGFiaWxpdHlSZWFzb25Gb3JDZWxs
KToKKyAgICAgICAgKEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlcjo6c2V0V3JhcHBlZE9iamVjdEZv
ckNlbGwpOgorICAgICAgICAoSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyOjpwcmV2aW91c1NuYXBz
aG90SGFzTm9kZUZvckNlbGwpOgorICAgICAgICAoSlNDOjpzbmFwc2hvdFR5cGVUb1N0cmluZyk6
CisgICAgICAgIChKU0M6OnJvb3RUeXBlVG9TdHJpbmcpOgorICAgICAgICAoSlNDOjpIZWFwU25h
cHNob3RCdWlsZGVyOjpzZXRMYWJlbEZvckNlbGwpOgorICAgICAgICAoSlNDOjpIZWFwU25hcHNo
b3RCdWlsZGVyOjpkZXNjcmlwdGlvbkZvckNlbGwgY29uc3QpOgorICAgICAgICAoSlNDOjpIZWFw
U25hcHNob3RCdWlsZGVyOjpqc29uKToKKyAgICAgICAgKEpTQzo6SGVhcFNuYXBzaG90QnVpbGRl
cjo6aGFzRXhpc3RpbmdOb2RlRm9yQ2VsbCk6IERlbGV0ZWQuCisgICAgICAgICogaGVhcC9IZWFw
U25hcHNob3RCdWlsZGVyLmg6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRvci5jcHA6CisgICAg
ICAgIChKU0M6OlNsb3RWaXNpdG9yOjphcHBlbmRTbG93KToKKyAgICAgICAgKiBoZWFwL1Nsb3RW
aXNpdG9yLmg6CisgICAgICAgIChKU0M6OlNsb3RWaXNpdG9yOjpoZWFwU25hcHNob3RCdWlsZGVy
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6U2xvdFZpc2l0b3I6OnJvb3RNYXJrUmVhc29uIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6U2xvdFZpc2l0b3I6OnNldFJvb3RNYXJrUmVhc29uKToKKyAgICAg
ICAgKEpTQzo6U2V0Um9vdE1hcmtSZWFzb25TY29wZTo6U2V0Um9vdE1hcmtSZWFzb25TY29wZSk6
CisgICAgICAgIChKU0M6OlNldFJvb3RNYXJrUmVhc29uU2NvcGU6On5TZXRSb290TWFya1JlYXNv
blNjb3BlKToKKyAgICAgICAgKiBoZWFwL1dlYWtCbG9jay5jcHA6CisgICAgICAgIChKU0M6Oldl
YWtCbG9jazo6c3BlY2lhbGl6ZWRWaXNpdCk6CisgICAgICAgICogaGVhcC9XZWFrSGFuZGxlT3du
ZXIuY3BwOgorICAgICAgICAoSlNDOjpXZWFrSGFuZGxlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9w
YXF1ZVJvb3RzKToKKyAgICAgICAgKiBoZWFwL1dlYWtIYW5kbGVPd25lci5oOgorICAgICAgICAq
IHJ1bnRpbWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoSlNDOjpT
aW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZlck93bmVyOjppc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogcnVudGltZS9TaW1wbGVUeXBlZEFycmF5Q29u
dHJvbGxlci5oOgorICAgICAgICAqIHRvb2xzL0pTRG9sbGFyVk0uY3BwOgorCiAyMDE4LTA4LTIz
ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFlBUlI6IE5l
ZWQgdG8gSklUIGNvbXBpbGUgYSBSZWdFeHAgYmVmb3JlIHVzaW5nIGNvbnRhaW5zTmVzdGVkU3Vi
cGF0dGVybnMgZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQzMDAwMTYyMDAwMzhhMDQ5NDM1ODVlNjk0NmMx
ZTA0ZTc1Zjg1ZTMuLjQ2MTlhOWIyMDQ3MDdlYjdhMWE4NGQwNjA4YzY0ZTE3NjliZTM3YWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzMTQgQEAKKzIwMTgtMDgtMjMgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGR1bXBpbmcg
R0MgaGVhcCBzbmFwc2hvdHMsIGFuZCBhIHZpZXdlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2NDE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9z
ZXBoIFBlY29yYXJvLgorCisgICAgICAgIE1ha2UgYSB3YXkgdG8gZHVtcCBpbmZvcm1hdGlvbiBh
Ym91dCB0aGUgR0MgaGVhcCB0aGF0IGlzIHVzZWZ1bCBmb3IgbG9va2luZyBmb3IgbGVha2VkCisg
ICAgICAgIG9yIGFiYW5kb25lZCBvYmplY3RzLiBUaGlzIGR1bXAgaXMgb2J0YWluZWQgKG9uIEFw
cGxlIHBsYXRmb3JtcykgdmlhOgorICAgICAgICAgICAgbm90aWZ5dXRpbCAtcCBjb20uYXBwbGUu
V2ViS2l0LmR1bXBHQ0hlYXAKKyAgICAgICAgd2hpY2ggd3JpdGVzIGEgSlNPTiBmaWxlIHRvIC90
bXAgd2hpY2ggY2FuIHRoZW4gYmUgbG9hZGVkIGludG8gdGhlIHZpZXdlciBpbiBUb29scy9HQ0hl
YXBJbnNwZWN0b3IuCisKKyAgICAgICAgVGhpcyBsZXZlcmFnZXMgdGhlIGhlYXAgc25hcHNob3Qg
dXNlZCBieSBXZWIgSW5zcGVjdG9yLCBhZGRpbmcgYW4gYWx0ZXJuYXRlIGZvcm1hdCBmb3IKKyAg
ICAgICAgdGhlIHNuYXBzaG90IEpTT04gdGhhdCBhZGRzIGFkZGl0aW9uYWwgZGF0YSBhYm91dCBv
YmplY3RzIGFuZCB3aHkgdGhleSBhcmUgR0Mgcm9vdHMuCisgICAgICAgIAorICAgICAgICBUaGUg
Z2VuZXJhdGVkIGJpbmRpbmdzIGNvZGUgaXMgY2hhbmdlZCB0byBpbmNsdWRlIHRoZSBvdXRwdXQg
cm9vdCByZWFzb24gZnJvbSBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cygpLAorICAgICAgICBh
bmQgdG8gaW1wbGVtZW50IGhlYXBTbmFwc2hvdCgpIHdoaWNoIHByb3ZpZGVzIHRoZSBhZGRyZXNz
IG9mIHRoZSB3cmFwcGVkIG9iamVjdC4gQSBuZXcgSURMIGF0dHJpYnV0ZSwKKyAgICAgICAgQ3Vz
dG9tSGVhcFNuYXBzaG90LCBpcyB1c2VkIHRvIGFsbG93IGN1c3RvbSBoZWFwU25hcHNob3QoKSBp
bXBsZW1lbnRhdGlvbnMgZm9yIGNsYXNzZXMgbGlrZSBKU0RvY3VtZW50CisgICAgICAgIHRoYXQg
bmVlZCB0byBkZWNvcmF0ZSB0aGUgaGVhcCBzbmFwc2hvdCBjZWxsIGRhdGEgd2l0aCB0aGluZ3Mg
bGlrZSB0aGUgZG9jdW1lbnQgVVJMLgorCisgICAgICAgIEdDQ29udHJvbGxlciByZWdpc3RlcnMg
YSBub3RpZnl1dGlsIGNhbGxiYWNrIHdoaWNoIGdhdGhlcnMgdGhlIGRlYnVnIGhlYXAgc25hcHNo
b3QsIGFuZCBkdW1wcyBpdAorICAgICAgICB0byBhIGZpbGUgaW4gL3RtcC4gVGhlIGZpbGUgcGF0
aCBpcyBwcmludGVkIG91dCB0byB0aGUgc3lzdGVtIGxvZy4KKworICAgICAgICAqIGJpbmRpbmdz
L2pzL0RPTUdDT3V0cHV0Q29uc3RyYWludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01HQ091
dHB1dENvbnN0cmFpbnQ6OmV4ZWN1dGVJbXBsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9HQ0Nv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0NDb250cm9sbGVyOjpHQ0NvbnRyb2xs
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R0NDb250cm9sbGVyOjpkdW1wSGVhcCk6CisgICAgICAg
ICogYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlND
U1NSdWxlTGlzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0NTU1J1bGVMaXN0T3du
ZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0NhbGxiYWNrRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0NhbGxiYWNrRGF0YVdlYWs6
OldlYWtPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoV2ViQ29yZTo6
SlNET01XaW5kb3c6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNEZXBy
ZWNhdGVkQ1NTT01WYWx1ZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RlcHJlY2F0
ZWRDU1NPTVZhbHVlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
RG9jdW1lbnQ6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNaWNyb3Rh
c2tDYWxsYmFjay5oOgorICAgICAgICAoV2ViQ29yZTo6SlNNaWNyb3Rhc2tDYWxsYmFjazo6Y2Fs
bCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTTXV0YXRpb25PYnNlcnZlck93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNOYXZpZ2F0b3JDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOYXZpZ2F0b3I6OnZpc2l0QWRkaXRpb25hbENoaWxk
cmVuKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6aXNSZWFjaGFibGVGcm9tRE9NKToKKyAgICAgICAgKFdlYkNvcmU6OkpTTm9kZU93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNOb2RlTGlzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGVMaXN0T3duZXI6
OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU09m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRE93bmVyOjppc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNQZXJmb3JtYW5jZU9i
c2VydmVyQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTUGVyZm9ybWFuY2VPYnNlcnZl
ck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNQb3BTdGF0ZUV2ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1Rl
eHRUcmFja0N1ZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1RleHRUcmFja0N1ZU93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3MvanMv
V2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNv
cmVUeXBlZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZlck93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlD
b250cm9sbGVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbjoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTSW50ZXJmYWNlTmFtZTo6aGVhcFNuYXBzaG90KToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTSW50ZXJmYWNlTmFtZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTSW50ZXJmYWNlTmFt
ZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExpa2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNNYXBMaWtlOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNNYXBMaWtlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmg6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTUmVhZE9ubHlNYXBMaWtlOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNSZWFkT25seU1hcExpa2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5TWFwTGlrZS5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpoZWFwU25hcHNo
b3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0QWN0aXZlRE9NT2JqZWN0T3duZXI6OmlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENF
UmVhY3Rpb25zOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Q0VSZWFj
dGlvbnNPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5oOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXI6OmhlYXBTbmFwc2hv
dCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyT3duZXI6
OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5oOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTVGVzdENhbGxUcmFjZXI6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpK
U1Rlc3RDYWxsVHJhY2VyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5oOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5D
b25zdHJ1Y3Rvcjo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENsYXNz
V2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNC
dWlsdGluQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3Q6
OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21Db25zdHJ1Y3Rv
cldpdGhOb0ludGVyZmFjZU9iamVjdE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVj
dG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RET01KSVQ6
OmhlYXBTbmFwc2hvdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dERPTUpJVC5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFi
bGVkQnlTZXR0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEVuYWJsZWRCeVNldHRp
bmc6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFbmFibGVkQnlTZXR0
aW5nT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdEV2ZW50Q29uc3RydWN0b3I6OmhlYXBTbmFwc2hvdCk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RXZlbnRUYXJnZXQ6OmhlYXBTbmFwc2hvdCk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0Lmg6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFeGNlcHRpb246OmhlYXBTbmFwc2hvdCk6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3RFeGNlcHRpb25Pd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24u
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
OjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdEdsb2JhbE9iamVjdDo6aGVhcFNuYXBzaG90KToKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdEdsb2JhbE9iamVjdE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9i
amVjdC5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXI6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpoZWFwU25hcHNob3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uT3du
ZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmg6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXI6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZTo6aGVhcFNu
YXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZU93bmVyOjppc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZTo6aGVhcFNuYXBzaG90KToKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0SXRlcmFibGU6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJdGVy
YWJsZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmg6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6aGVhcFNuYXBzaG90KToK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJPd25lcjo6aXNS
ZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXI6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMp
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b246OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbk93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMp
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dE5hbWVkQ29uc3RydWN0b3I6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3ROYW1lZENvbnN0cnVjdG9yT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5o
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJO
b0lkZW50aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWREZWxldGVyTm9J
ZGVudGlmaWVyOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRE
ZWxldGVyTm9JZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVu
dGlmaWVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
RGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5h
bWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Pd25lcjo6aXNSZWFjaGFi
bGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcjo6aGVhcFNu
YXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlm
aWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElu
ZGV4ZWRHZXR0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWREZWxldGVyV2l0
aEluZGV4ZWRHZXR0ZXI6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RO
YW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVs
ZXRlcldpdGhJbmRleGVkR2V0dGVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aDo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRl
ckNhbGxXaXRoLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVk
R2V0dGVyTm9JZGVudGlmaWVyOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRl
ck5vSWRlbnRpZmllci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXI6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJD
b3JlOjpKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6aGVhcFNuYXBzaG90KToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpoZWFwU25h
cHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbk93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
SWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlcldpdGhJ
ZGVudGlmaWVyOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElk
ZW50aWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RO
YW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlck93bmVyOjppc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0
dGVyQW5kU2V0dGVyOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlck93bmVyOjppc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0
aW5zOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRTZXR0ZXJX
aXRoT3ZlcnJpZGVCdWlsdGluc093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92
ZXJyaWRlQnVpbHRpbnMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXM6OmhlYXBTbmFw
c2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxl
UHJvcGVydGllc093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQ
cm9wZXJ0aWVzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVy
dGllc0FuZE92ZXJyaWRlQnVpbHRpbnM6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3Jl
OjpKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVp
bHRpbnNPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVy
dGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROb2RlOjpoZWFw
U25hcHNob3QpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2Rl
Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmo6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJD
b3JlOjpKU1Rlc3RPYmpPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpoZWFwU25hcHNo
b3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc093bmVy
Ojppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1
ZW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
V2l0aFNlcXVlbmNlOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0T3ZlcnJpZGVCdWlsdGluc093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVp
bHRpbnMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2lu
SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFBsdWdpbkludGVyZmFjZTo6
aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFBsdWdpbkludGVyZmFjZU93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50OjpoZWFwU25hcHNob3QpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnQuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFs
aXphdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxpemF0aW9uOjpoZWFw
U25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U2VyaWFsaXphdGlvbk93bmVyOjpp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2U6Omhl
YXBTbmFwc2hvdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
cmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlLmg6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0OjpoZWFwU25hcHNob3QpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5o
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9u
SW5oZXJpdEZpbmFsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6YXRpb25J
bmhlcml0RmluYWw6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZTo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTdHJpbmdpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTdHJpbmdpZmllcjo6
aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFN0cmluZ2lmaWVyT3duZXI6
OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb246OmhlYXBTbmFw
c2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJh
dGlvbk93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFt
ZWRPcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U3RyaW5naWZpZXJOYW1l
ZE9wZXJhdGlvbjo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFN0cmlu
Z2lmaWVyTmFtZWRPcGVyYXRpb25Pd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVk
T3BlcmF0aW9uLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0
cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXM6OmhlYXBTbmFwc2hvdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNP
d25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25OYW1lZFRvU3RyaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFN0cmluZ2lm
aWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZzo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNv
cmU6OkpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ093bmVyOjppc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZy5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1
dGU6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTdHJpbmdpZmllclJl
YWRPbmx5QXR0cmlidXRlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0
dHJpYnV0ZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJp
bmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RT
dHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZTo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdl
YkNvcmU6OkpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0VHlwZWRlZnM6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RU
eXBlZGVmc093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmg6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmlkbDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKIDIwMTgtMDgtMjMg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlh
U3RyZWFtXSBTdG9yZSB2aWRlbyBwcmVzZXQgc2l6ZXMgaW4gYSBtYXAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hh
bmdlTG9nCmluZGV4IDY0Njg3NWQwOTJiOTBhYTBlNDI3NjYzNjdjYjJjYzZlMzg1MzU3MTMuLmY5
NzFmYWRmZTJlNmU5OGE0MmVmZjcwNTkwODM5NDI2ZTdmYjc1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE4LTA4LTIzICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBkdW1waW5nIEdD
IGhlYXAgc25hcHNob3RzLCBhbmQgYSB2aWV3ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjQxNgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvc2Vw
aCBQZWNvcmFyby4KKworICAgICAgICBNYWtlIGEgd2F5IHRvIGR1bXAgaW5mb3JtYXRpb24gYWJv
dXQgdGhlIEdDIGhlYXAgdGhhdCBpcyB1c2VmdWwgZm9yIGxvb2tpbmcgZm9yIGxlYWtlZAorICAg
ICAgICBvciBhYmFuZG9uZWQgb2JqZWN0cy4gVGhpcyBkdW1wIGlzIG9idGFpbmVkIChvbiBBcHBs
ZSBwbGF0Zm9ybXMpIHZpYToKKyAgICAgICAgICAgIG5vdGlmeXV0aWwgLXAgY29tLmFwcGxlLldl
YktpdC5kdW1wR0NIZWFwCisgICAgICAgIHdoaWNoIHdyaXRlcyBhIEpTT04gZmlsZSB0byAvdG1w
IHdoaWNoIGNhbiB0aGVuIGJlIGxvYWRlZCBpbnRvIHRoZSB2aWV3ZXIgaW4gVG9vbHMvR0NIZWFw
SW5zcGVjdG9yLgorCisgICAgICAgIFRoaXMgbGV2ZXJhZ2VzIHRoZSBoZWFwIHNuYXBzaG90IHVz
ZWQgYnkgV2ViIEluc3BlY3RvciwgYWRkaW5nIGFuIGFsdGVybmF0ZSBmb3JtYXQgZm9yCisgICAg
ICAgIHRoZSBzbmFwc2hvdCBKU09OIHRoYXQgYWRkcyBhZGRpdGlvbmFsIGRhdGEgYWJvdXQgb2Jq
ZWN0cyBhbmQgd2h5IHRoZXkgYXJlIEdDIHJvb3RzLgorCisgICAgICAgIFRoZSBnZW5lcmF0ZWQg
YmluZGluZ3MgY29kZSBpcyBjaGFuZ2VkIHRvIGluY2x1ZGUgdGhlIG91dHB1dCByb290IHJlYXNv
biBmcm9tIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKCksCisgICAgICAgIGFuZCB0byBpbXBs
ZW1lbnQgaGVhcFNuYXBzaG90KCkgd2hpY2ggcHJvdmlkZXMgdGhlIGFkZHJlc3Mgb2YgdGhlIHdy
YXBwZWQgb2JqZWN0LiBBIG5ldyBJREwgYXR0cmlidXRlLAorICAgICAgICBDdXN0b21IZWFwU25h
cHNob3QsIGlzIHVzZWQgdG8gYWxsb3cgY3VzdG9tIGhlYXBTbmFwc2hvdCgpIGltcGxlbWVudGF0
aW9ucyBmb3IgY2xhc3NlcyBsaWtlIEpTRG9jdW1lbnQKKyAgICAgICAgdGhhdCBuZWVkIHRvIGRl
Y29yYXRlIHRoZSBoZWFwIHNuYXBzaG90IGNlbGwgZGF0YSB3aXRoIHRoaW5ncyBsaWtlIHRoZSBk
b2N1bWVudCBVUkwuCisKKyAgICAgICAgR0NDb250cm9sbGVyIHJlZ2lzdGVycyBhIG5vdGlmeXV0
aWwgY2FsbGJhY2sgd2hpY2ggZ2F0aGVycyB0aGUgZGVidWcgaGVhcCBzbmFwc2hvdCwgYW5kIGR1
bXBzIGl0CisgICAgICAgIHRvIGEgZmlsZSBpbiAvdG1wLiBUaGUgZmlsZSBwYXRoIGlzIHByaW50
ZWQgb3V0IHRvIHRoZSBzeXN0ZW0gbG9nLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Xb3Jr
ZXJzL0hlYXBTbmFwc2hvdC9IZWFwU25hcHNob3QuanM6CisgICAgICAgIChIZWFwU25hcHNob3Qp
OgorCiAyMDE4LTA4LTIzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBgY29uc29sZS5pbnNwZWN0KHNlc3Npb25TdG9yYWdlKWAgZmly
c3QgdGltZSBkb2VzIG5vdCBzaG93IFNlc3Npb24gU3RvcmFnZSBjb250ZW50IHZpZXcgaWYgU3Rv
cmFnZSB0YWIgd2FzIHByZXZpb3VzbHkgdW52aXNpdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNBUElXcmFwcGVyT2JqZWN0Lm1tCmluZGV4IDk3OWZmOWI5ZWQwYWYyMTcwNDIz
Y2NmOTQ1MmQxYTlhNmQwZmVmYmQuLjhhODRiZjc3YjNlMmRlZTEwNjA2OTZiYTM3MTdmNWQ2NDE4
Y2IwYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElXcmFwcGVy
T2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElXcmFwcGVyT2Jq
ZWN0Lm1tCkBAIC0zNyw3ICszNyw3IEBACiBjbGFzcyBKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVP
d25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6CiAgICAgdm9pZCBm
aW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKikgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJikgb3ZlcnJpZGU7CisgICAgYm9vbCBp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lk
KiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKSBvdmVycmlkZTsKIH07
CiAKIHN0YXRpYyBKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25lcioganNBUElXcmFwcGVyT2Jq
ZWN0SGFuZGxlT3duZXIoKQpAQCAtNTYsNyArNTYsNyBAQCB2b2lkIEpTQVBJV3JhcHBlck9iamVj
dEhhbmRsZU93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwg
dgogICAgIEpTQzo6V2Vha1NldDo6ZGVhbGxvY2F0ZShKU0M6OldlYWtJbXBsOjphc1dlYWtJbXBs
KGhhbmRsZS5zbG90KCkpKTsKIH0KIAotYm9vbCBKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25l
cjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBo
YW5kbGUsIHZvaWQqLCBKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQorYm9vbCBKU0FQSVdyYXBw
ZXJPYmplY3RIYW5kbGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9y
LCBjb25zdCBjaGFyKiopCiB7CiAgICAgSlNDOjpKU0FQSVdyYXBwZXJPYmplY3QqIHdyYXBwZXJP
YmplY3QgPSBKU0M6OmpzQ2FzdDxKU0M6OkpTQVBJV3JhcHBlck9iamVjdCo+KGhhbmRsZS5nZXQo
KS5hc0NlbGwoKSk7CiAgICAgLy8gV2UgdXNlIHRoZSBKU0dsb2JhbE9iamVjdCB3aGVuIHByb2Nl
c3Npbmcgd2VhayBoYW5kbGVzIHRvIHByZXZlbnQgdGhlIHNpdHVhdGlvbiB3aGVyZSB1c2luZwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFsdWUubW0KaW5kZXggMjljNzE3
ZGIzYjNkMWQxODU3MTg1NWI4ZTEzZTY3ZTU4YTQ0Y2JkZS4uYzU0NWZhZDZkNThjNTY1MTc0OWY1
YzkxZDFjMTE5ZjkzM2E0MDI5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU01hbmFnZWRWYWx1ZS5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFu
YWdlZFZhbHVlLm1tCkBAIC00Myw3ICs0Myw3IEBACiBjbGFzcyBKU01hbmFnZWRWYWx1ZUhhbmRs
ZU93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKICAgICB2b2lk
IGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIG92ZXJy
aWRlOwotICAgIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpIG92ZXJyaWRlOwor
ICAgIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKikgb3Zl
cnJpZGU7CiB9OwogCiBzdGF0aWMgSlNNYW5hZ2VkVmFsdWVIYW5kbGVPd25lciYgbWFuYWdlZFZh
bHVlSGFuZGxlT3duZXIoKQpAQCAtMTgyLDggKzE4MiwxMCBAQCBAaW50ZXJmYWNlIEpTTWFuYWdl
ZFZhbHVlIChQcml2YXRlTWV0aG9kcykKIC0gKHZvaWQpZGlzY29ubmVjdFZhbHVlOwogQGVuZAog
Ci1ib29sIEpTTWFuYWdlZFZhbHVlSGFuZGxlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZp
c2l0b3ImIHZpc2l0b3IpCitib29sIEpTTWFuYWdlZFZhbHVlSGFuZGxlT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRl
eHQsIEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7Cisg
ICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICpyZWFzb24gPSAiSlNNYW5hZ2VkVmFs
dWUgaXMgb3BhcXVlIHJvb3QiOwogICAgIEpTTWFuYWdlZFZhbHVlICptYW5hZ2VkVmFsdWUgPSAo
X19icmlkZ2UgSlNNYW5hZ2VkVmFsdWUgKiljb250ZXh0OwogICAgIHJldHVybiB2aXNpdG9yLmNv
bnRhaW5zT3BhcXVlUm9vdCgoX19icmlkZ2Ugdm9pZCopbWFuYWdlZFZhbHVlKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0FQSVdyYXBwZXJPYmplY3RH
TGliLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0FQSVdyYXBwZXJPYmpl
Y3RHTGliLmNwcAppbmRleCAxOGRkMTNlYjcwZjZkMTA1N2ViYTYzZjIzZmNlZWJkYzJmZjMwMTJj
Li44N2QxOThjY2IyZjhmODA2NTAzNjk2MzJmZTVjZDBkZWNjNGRlZTFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyT2JqZWN0R0xpYi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlck9iamVjdEdM
aWIuY3BwCkBAIC0zNiw3ICszNiw3IEBACiBjbGFzcyBKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVP
d25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6CiAgICAgdm9pZCBm
aW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKikgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJikgb3ZlcnJpZGU7CisgICAgYm9vbCBp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lk
KiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKSBvdmVycmlkZTsKIH07
CiAKIHN0YXRpYyBKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25lcioganNBUElXcmFwcGVyT2Jq
ZWN0SGFuZGxlT3duZXIoKQpAQCAtNTUsNyArNTUsNyBAQCB2b2lkIEpTQVBJV3JhcHBlck9iamVj
dEhhbmRsZU93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwg
dgogICAgIEpTQzo6V2Vha1NldDo6ZGVhbGxvY2F0ZShKU0M6OldlYWtJbXBsOjphc1dlYWtJbXBs
KGhhbmRsZS5zbG90KCkpKTsKIH0KIAotYm9vbCBKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25l
cjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBo
YW5kbGUsIHZvaWQqLCBKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQorYm9vbCBKU0FQSVdyYXBw
ZXJPYmplY3RIYW5kbGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9y
LCBjb25zdCBjaGFyKiopCiB7CiAgICAgSlNDOjpKU0FQSVdyYXBwZXJPYmplY3QqIHdyYXBwZXJP
YmplY3QgPSBKU0M6OmpzQ2FzdDxKU0M6OkpTQVBJV3JhcHBlck9iamVjdCo+KGhhbmRsZS5nZXQo
KS5hc0NlbGwoKSk7CiAgICAgLy8gV2UgdXNlIHRoZSBKU0dsb2JhbE9iamVjdCB3aGVuIHByb2Nl
c3Npbmcgd2VhayBoYW5kbGVzIHRvIHByZXZlbnQgdGhlIHNpdHVhdGlvbiB3aGVyZSB1c2luZwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGY2MTBkNzIwNDg2YmUxNzgxZmMy
Y2ExYWEwODc4M2YxYjgxMjQyMDEuLmZiMWQwY2M2YjI0NmE3YTZhNWQ3ZWMwOTIxOTI3MzI3ZTE5
NTk5NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTUzNCw2ICs1MzQs
NyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIGhl
YXAvSGVhcEZpbmFsaXplckNhbGxiYWNrLmgKICAgICBoZWFwL0hlYXBJbmxpbmVzLmgKICAgICBo
ZWFwL0hlYXBPYnNlcnZlci5oCisgICAgaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmgKICAgICBo
ZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCiAgICAgaGVhcC9Jc29DZWxsU2V0LmgKICAgICBoZWFw
L0lzb1N1YnNwYWNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
bnNlcnZhdGl2ZVJvb3RzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db25zZXJ2YXRp
dmVSb290cy5oCmluZGV4IDBmOWE0MmE2ZmNkNjk0ZjBhOWVmZWIxMGYzMjA2MjI0NmY5NjQxMGQu
LjgzZTVjZTQ2OTQyNjdjMzE0M2YwOGI0NGIwYTg2MWRmNDUwY2UxYTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbnNlcnZhdGl2ZVJvb3RzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2VydmF0aXZlUm9vdHMuaApAQCAtNDEsNyArNDEsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBhZGQodm9pZCogYmVnaW4sIHZvaWQqIGVuZCk7CiAgICAgdm9p
ZCBhZGQodm9pZCogYmVnaW4sIHZvaWQqIGVuZCwgSklUU3R1YlJvdXRpbmVTZXQmLCBDb2RlQmxv
Y2tTZXQmKTsKICAgICAKLSAgICBzaXplX3Qgc2l6ZSgpOworICAgIHNpemVfdCBzaXplKCkgY29u
c3Q7CiAgICAgSGVhcENlbGwqKiByb290cygpOwogCiBwcml2YXRlOgpAQCAtNjMsNyArNjMsNyBA
QCBwcml2YXRlOgogICAgIEhlYXBDZWxsKiBtX2lubGluZVJvb3RzW2lubGluZUNhcGFjaXR5XTsK
IH07CiAKLWlubGluZSBzaXplX3QgQ29uc2VydmF0aXZlUm9vdHM6OnNpemUoKQoraW5saW5lIHNp
emVfdCBDb25zZXJ2YXRpdmVSb290czo6c2l6ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2l6
ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggYzc4MmZjYmI3MDUxZGJk
NjViMTNkZWRmYTUyNjYyNmI2N2M3M2M1Zi4uZTBiYWVlNTJmZDRjOTJlYTcyM2Y0NzUxYjg3MmUw
MWY1MDEzYjFmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTI2NDEsMTEg
KzI2NDEsMTUgQEAgdm9pZCBIZWFwOjphZGRDb3JlQ29uc3RyYWludHMoKQogICAgICAgICAgICAg
CiAgICAgICAgICAgICBUaW1pbmdTY29wZSBwcmVDb252ZXJnZW5jZVRpbWluZ1Njb3BlKCp0aGlz
LCAiQ29uc3RyYWludDogY29uc2VydmF0aXZlIHNjYW4iKTsKICAgICAgICAgICAgIG1fb2JqZWN0
U3BhY2UucHJlcGFyZUZvckNvbnNlcnZhdGl2ZVNjYW4oKTsKKwogICAgICAgICAgICAgQ29uc2Vy
dmF0aXZlUm9vdHMgY29uc2VydmF0aXZlUm9vdHMoKnRoaXMpOwogICAgICAgICAgICAgU3VwZXJT
YW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOworCiAgICAgICAgICAgICBnYXRo
ZXJTdGFja1Jvb3RzKGNvbnNlcnZhdGl2ZVJvb3RzKTsKICAgICAgICAgICAgIGdhdGhlckpTU3Rh
Y2tSb290cyhjb25zZXJ2YXRpdmVSb290cyk7CiAgICAgICAgICAgICBnYXRoZXJTY3JhdGNoQnVm
ZmVyUm9vdHMoY29uc2VydmF0aXZlUm9vdHMpOworCisgICAgICAgICAgICBTZXRSb290TWFya1Jl
YXNvblNjb3BlIHJvb3RTY29wZShzbG90VmlzaXRvciwgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVh
c29uOjpDb25zZXJ2YXRpdmVTY2FuKTsKICAgICAgICAgICAgIHNsb3RWaXNpdG9yLmFwcGVuZChj
b25zZXJ2YXRpdmVSb290cyk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGxhc3RWZXJzaW9u
ID0gbV9waGFzZVZlcnNpb247CkBAIC0yNjU1LDI3ICsyNjU5LDM4IEBAIHZvaWQgSGVhcDo6YWRk
Q29yZUNvbnN0cmFpbnRzKCkKICAgICBtX2NvbnN0cmFpbnRTZXQtPmFkZCgKICAgICAgICAgIk1z
ciIsICJNaXNjIFNtYWxsIFJvb3RzIiwKICAgICAgICAgW3RoaXNdIChTbG90VmlzaXRvciYgc2xv
dFZpc2l0b3IpIHsKKwogI2lmIEpTQ19PQkpDX0FQSV9FTkFCTEVECiAgICAgICAgICAgICBzY2Fu
RXh0ZXJuYWxSZW1lbWJlcmVkU2V0KCptX3ZtLCBzbG90VmlzaXRvcik7CiAjZW5kaWYKLQotICAg
ICAgICAgICAgaWYgKG1fdm0tPnNtYWxsU3RyaW5ncy5uZWVkc1RvQmVWaXNpdGVkKCptX2NvbGxl
Y3Rpb25TY29wZSkpCisgICAgICAgICAgICBpZiAobV92bS0+c21hbGxTdHJpbmdzLm5lZWRzVG9C
ZVZpc2l0ZWQoKm1fY29sbGVjdGlvblNjb3BlKSkgeworICAgICAgICAgICAgICAgIFNldFJvb3RN
YXJrUmVhc29uU2NvcGUgcm9vdFNjb3BlKHNsb3RWaXNpdG9yLCBTbG90VmlzaXRvcjo6Um9vdE1h
cmtSZWFzb246OlN0cm9uZ1JlZmVyZW5jZXMpOwogICAgICAgICAgICAgICAgIG1fdm0tPnNtYWxs
U3RyaW5ncy52aXNpdFN0cm9uZ1JlZmVyZW5jZXMoc2xvdFZpc2l0b3IpOworICAgICAgICAgICAg
fQogICAgICAgICAgICAgCi0gICAgICAgICAgICBmb3IgKGF1dG8mIHBhaXIgOiBtX3Byb3RlY3Rl
ZFZhbHVlcykKLSAgICAgICAgICAgICAgICBzbG90VmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZChw
YWlyLmtleSk7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgU2V0Um9vdE1hcmtSZWFz
b25TY29wZSByb290U2NvcGUoc2xvdFZpc2l0b3IsIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNv
bjo6UHJvdGVjdGVkVmFsdWVzKTsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIHBhaXIgOiBt
X3Byb3RlY3RlZFZhbHVlcykKKyAgICAgICAgICAgICAgICAgICAgc2xvdFZpc2l0b3IuYXBwZW5k
VW5iYXJyaWVyZWQocGFpci5rZXkpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAg
ICAgICAgICBpZiAobV9tYXJrTGlzdFNldCAmJiBtX21hcmtMaXN0U2V0LT5zaXplKCkpCisgICAg
ICAgICAgICBpZiAobV9tYXJrTGlzdFNldCAmJiBtX21hcmtMaXN0U2V0LT5zaXplKCkpIHsKKyAg
ICAgICAgICAgICAgICBTZXRSb290TWFya1JlYXNvblNjb3BlIHJvb3RTY29wZShzbG90VmlzaXRv
ciwgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uOjpDb25zZXJ2YXRpdmVTY2FuKTsKICAgICAg
ICAgICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6bWFya0xpc3RzKHNsb3RWaXNpdG9yLCAq
bV9tYXJrTGlzdFNldCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHNsb3RWaXNpdG9yLmFw
cGVuZFVuYmFycmllcmVkKG1fdm0tPmV4Y2VwdGlvbigpKTsKLSAgICAgICAgICAgIHNsb3RWaXNp
dG9yLmFwcGVuZFVuYmFycmllcmVkKG1fdm0tPmxhc3RFeGNlcHRpb24oKSk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBTZXRSb290TWFya1JlYXNvblNj
b3BlIHJvb3RTY29wZShzbG90VmlzaXRvciwgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uOjpW
TUV4Y2VwdGlvbnMpOworICAgICAgICAgICAgICAgIHNsb3RWaXNpdG9yLmFwcGVuZFVuYmFycmll
cmVkKG1fdm0tPmV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgICAgICBzbG90VmlzaXRvci5hcHBl
bmRVbmJhcnJpZXJlZChtX3ZtLT5sYXN0RXhjZXB0aW9uKCkpOworICAgICAgICAgICAgfQogICAg
ICAgICB9LAogICAgICAgICBDb25zdHJhaW50Vm9sYXRpbGl0eTo6R3JleWVkQnlFeGVjdXRpb24p
OwogICAgIAogICAgIG1fY29uc3RyYWludFNldC0+YWRkKAogICAgICAgICAiU2giLCAiU3Ryb25n
IEhhbmRsZXMiLAogICAgICAgICBbdGhpc10gKFNsb3RWaXNpdG9yJiBzbG90VmlzaXRvcikgewor
ICAgICAgICAgICAgU2V0Um9vdE1hcmtSZWFzb25TY29wZSByb290U2NvcGUoc2xvdFZpc2l0b3Is
IFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6U3Ryb25nSGFuZGxlcyk7CiAgICAgICAgICAg
ICBtX2hhbmRsZVNldC52aXNpdFN0cm9uZ0hhbmRsZXMoc2xvdFZpc2l0b3IpOwogICAgICAgICB9
LAogICAgICAgICBDb25zdHJhaW50Vm9sYXRpbGl0eTo6R3JleWVkQnlFeGVjdXRpb24pOwpAQCAt
MjY4Myw2ICsyNjk4LDggQEAgdm9pZCBIZWFwOjphZGRDb3JlQ29uc3RyYWludHMoKQogICAgIG1f
Y29uc3RyYWludFNldC0+YWRkKAogICAgICAgICAiRCIsICJEZWJ1Z2dlciIsCiAgICAgICAgIFt0
aGlzXSAoU2xvdFZpc2l0b3ImIHNsb3RWaXNpdG9yKSB7CisgICAgICAgICAgICBTZXRSb290TWFy
a1JlYXNvblNjb3BlIHJvb3RTY29wZShzbG90VmlzaXRvciwgU2xvdFZpc2l0b3I6OlJvb3RNYXJr
UmVhc29uOjpEZWJ1Z2dlcik7CisKICNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCiAgICAg
ICAgICAgICBpZiAoU2FtcGxpbmdQcm9maWxlciogc2FtcGxpbmdQcm9maWxlciA9IG1fdm0tPnNh
bXBsaW5nUHJvZmlsZXIoKSkgewogICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKHNh
bXBsaW5nUHJvZmlsZXItPmdldExvY2soKSk7CkBAIC0yNjkyLDcgKzI3MDksNyBAQCB2b2lkIEhl
YXA6OmFkZENvcmVDb25zdHJhaW50cygpCiAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIlNh
bXBsaW5nIFByb2ZpbGVyIGRhdGE6XG4iLCBzbG90VmlzaXRvcik7CiAgICAgICAgICAgICB9CiAj
ZW5kaWYgLy8gRU5BQkxFKFNBTVBMSU5HX1BST0ZJTEVSKQotICAgICAgICAgICAgCisKICAgICAg
ICAgICAgIGlmIChtX3ZtLT50eXBlUHJvZmlsZXIoKSkKICAgICAgICAgICAgICAgICBtX3ZtLT50
eXBlUHJvZmlsZXJMb2coKS0+dmlzaXQoc2xvdFZpc2l0b3IpOwogICAgICAgICAgICAgCkBAIC0y
NzAzLDYgKzI3MjAsNyBAQCB2b2lkIEhlYXA6OmFkZENvcmVDb25zdHJhaW50cygpCiAgICAgbV9j
b25zdHJhaW50U2V0LT5hZGQoCiAgICAgICAgICJKc3IiLCAiSklUIFN0dWIgUm91dGluZXMiLAog
ICAgICAgICBbdGhpc10gKFNsb3RWaXNpdG9yJiBzbG90VmlzaXRvcikgeworICAgICAgICAgICAg
U2V0Um9vdE1hcmtSZWFzb25TY29wZSByb290U2NvcGUoc2xvdFZpc2l0b3IsIFNsb3RWaXNpdG9y
OjpSb290TWFya1JlYXNvbjo6SklUU3R1YlJvdXRpbmVzKTsKICAgICAgICAgICAgIG1faml0U3R1
YlJvdXRpbmVzLT50cmFjZU1hcmtlZFN0dWJSb3V0aW5lcyhzbG90VmlzaXRvcik7CiAgICAgICAg
IH0sCiAgICAgICAgIENvbnN0cmFpbnRWb2xhdGlsaXR5OjpHcmV5ZWRCeUV4ZWN1dGlvbik7CkBA
IC0yNzEwLDYgKzI3MjgsNyBAQCB2b2lkIEhlYXA6OmFkZENvcmVDb25zdHJhaW50cygpCiAgICAg
bV9jb25zdHJhaW50U2V0LT5hZGQoCiAgICAgICAgICJXcyIsICJXZWFrIFNldHMiLAogICAgICAg
ICBbdGhpc10gKFNsb3RWaXNpdG9yJiBzbG90VmlzaXRvcikgeworICAgICAgICAgICAgU2V0Um9v
dE1hcmtSZWFzb25TY29wZSByb290U2NvcGUoc2xvdFZpc2l0b3IsIFNsb3RWaXNpdG9yOjpSb290
TWFya1JlYXNvbjo6V2Vha1NldHMpOwogICAgICAgICAgICAgbV9vYmplY3RTcGFjZS52aXNpdFdl
YWtTZXRzKHNsb3RWaXNpdG9yKTsKICAgICAgICAgfSwKICAgICAgICAgQ29uc3RyYWludFZvbGF0
aWxpdHk6OkdyZXllZEJ5TWFya2luZyk7CkBAIC0yNzE4LDggKzI3MzcsOSBAQCB2b2lkIEhlYXA6
OmFkZENvcmVDb25zdHJhaW50cygpCiAgICAgICAgICJPIiwgIk91dHB1dCIsCiAgICAgICAgIFtd
IChTbG90VmlzaXRvciYgc2xvdFZpc2l0b3IpIHsKICAgICAgICAgICAgIFZNJiB2bSA9IHNsb3RW
aXNpdG9yLnZtKCk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgYXV0byBjYWxsT3V0cHV0
Q29uc3RyYWludCA9IFtdIChTbG90VmlzaXRvciYgc2xvdFZpc2l0b3IsIEhlYXBDZWxsKiBoZWFw
Q2VsbCwgSGVhcENlbGw6OktpbmQpIHsKKyAgICAgICAgICAgICAgICBTZXRSb290TWFya1JlYXNv
blNjb3BlIHJvb3RTY29wZShzbG90VmlzaXRvciwgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29u
OjpPdXRwdXQpOwogICAgICAgICAgICAgICAgIFZNJiB2bSA9IHNsb3RWaXNpdG9yLnZtKCk7CiAg
ICAgICAgICAgICAgICAgSlNDZWxsKiBjZWxsID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcENl
bGwpOwogICAgICAgICAgICAgICAgIGNlbGwtPm1ldGhvZFRhYmxlKHZtKS0+dmlzaXRPdXRwdXRD
b25zdHJhaW50cyhjZWxsLCBzbG90VmlzaXRvcik7CkBAIC0yNzM5LDYgKzI3NTksOCBAQCB2b2lk
IEhlYXA6OmFkZENvcmVDb25zdHJhaW50cygpCiAgICAgbV9jb25zdHJhaW50U2V0LT5hZGQoCiAg
ICAgICAgICJEdyIsICJERkcgV29ya2xpc3RzIiwKICAgICAgICAgW3RoaXNdIChTbG90VmlzaXRv
ciYgc2xvdFZpc2l0b3IpIHsKKyAgICAgICAgICAgIFNldFJvb3RNYXJrUmVhc29uU2NvcGUgcm9v
dFNjb3BlKHNsb3RWaXNpdG9yLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246OkRGR1dvcmtM
aXN0cyk7CisKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IERGRzo6bnVtYmVyT2ZXb3Jr
bGlzdHMoKTsgaS0tOykKICAgICAgICAgICAgICAgICBERkc6OmV4aXN0aW5nV29ya2xpc3RGb3JJ
bmRleChpKS52aXNpdFdlYWtSZWZlcmVuY2VzKHNsb3RWaXNpdG9yKTsKICAgICAgICAgICAgIApA
QCAtMjc1OSw2ICsyNzgxLDcgQEAgdm9pZCBIZWFwOjphZGRDb3JlQ29uc3RyYWludHMoKQogICAg
IG1fY29uc3RyYWludFNldC0+YWRkKAogICAgICAgICAiQ2IiLCAiQ29kZUJsb2NrcyIsCiAgICAg
ICAgIFt0aGlzXSAoU2xvdFZpc2l0b3ImIHNsb3RWaXNpdG9yKSB7CisgICAgICAgICAgICBTZXRS
b290TWFya1JlYXNvblNjb3BlIHJvb3RTY29wZShzbG90VmlzaXRvciwgU2xvdFZpc2l0b3I6OlJv
b3RNYXJrUmVhc29uOjpDb2RlQmxvY2tzKTsKICAgICAgICAgICAgIGl0ZXJhdGVFeGVjdXRpbmdB
bmRDb21waWxpbmdDb2RlQmxvY2tzV2l0aG91dEhvbGRpbmdMb2NrcygKICAgICAgICAgICAgICAg
ICBbJl0gKENvZGVCbG9jayogY29kZUJsb2NrKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFZp
c2l0IHRoZSBDb2RlQmxvY2sgYXMgYSBjb25zdHJhaW50IG9ubHkgaWYgaXQncyBibGFjay4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1aWxkZXIu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5jcHAK
aW5kZXggNjI0OTM1YTdiMzNmMmM5ZjVlNjM4ZGY2NDllMGRiYjE3Njk1ZWZmZC4uYWE3ZmNlMmZj
YTQ3NmFkMjEyOGIyM2YzMzc0MGMxNGM3ZjUwNTU3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5jcHAKQEAgLTM3LDI0ICszNywzMyBA
QAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIEpTQyB7
Ci0gICAgCi11bnNpZ25lZCBIZWFwU25hcHNob3RCdWlsZGVyOjpuZXh0QXZhaWxhYmxlT2JqZWN0
SWRlbnRpZmllciA9IDE7Ci11bnNpZ25lZCBIZWFwU25hcHNob3RCdWlsZGVyOjpnZXROZXh0T2Jq
ZWN0SWRlbnRpZmllcigpIHsgcmV0dXJuIG5leHRBdmFpbGFibGVPYmplY3RJZGVudGlmaWVyKys7
IH0KKworc3RhdGljIGNvbnN0IGNoYXIqIHJvb3RUeXBlVG9TdHJpbmcoU2xvdFZpc2l0b3I6OlJv
b3RNYXJrUmVhc29uKTsKKworTm9kZUlkZW50aWZpZXIgSGVhcFNuYXBzaG90QnVpbGRlcjo6bmV4
dEF2YWlsYWJsZU9iamVjdElkZW50aWZpZXIgPSAxOworTm9kZUlkZW50aWZpZXIgSGVhcFNuYXBz
aG90QnVpbGRlcjo6Z2V0TmV4dE9iamVjdElkZW50aWZpZXIoKSB7IHJldHVybiBuZXh0QXZhaWxh
YmxlT2JqZWN0SWRlbnRpZmllcisrOyB9CiB2b2lkIEhlYXBTbmFwc2hvdEJ1aWxkZXI6OnJlc2V0
TmV4dEF2YWlsYWJsZU9iamVjdElkZW50aWZpZXIoKSB7IEhlYXBTbmFwc2hvdEJ1aWxkZXI6Om5l
eHRBdmFpbGFibGVPYmplY3RJZGVudGlmaWVyID0gMTsgfQogCi1IZWFwU25hcHNob3RCdWlsZGVy
OjpIZWFwU25hcHNob3RCdWlsZGVyKEhlYXBQcm9maWxlciYgcHJvZmlsZXIpCitIZWFwU25hcHNo
b3RCdWlsZGVyOjpIZWFwU25hcHNob3RCdWlsZGVyKEhlYXBQcm9maWxlciYgcHJvZmlsZXIsIFNu
YXBzaG90VHlwZSB0eXBlKQogICAgIDogbV9wcm9maWxlcihwcm9maWxlcikKKyAgICAsIG1fc25h
cHNob3RUeXBlKHR5cGUpCiB7CiB9CiAKIEhlYXBTbmFwc2hvdEJ1aWxkZXI6On5IZWFwU25hcHNo
b3RCdWlsZGVyKCkKIHsKKyAgICBpZiAobV9zbmFwc2hvdFR5cGUgPT0gU25hcHNob3RUeXBlOjpH
Q0RlYnVnZ2luZ1NuYXBzaG90KQorICAgICAgICBtX3Byb2ZpbGVyLmNsZWFyU25hcHNob3RzKCk7
CiB9CiAKIHZvaWQgSGVhcFNuYXBzaG90QnVpbGRlcjo6YnVpbGRTbmFwc2hvdCgpCiB7CisgICAg
Ly8gR0NEZWJ1Z2dpbmdTbmFwc2hvdCBhcmUgYWx3YXlzIGZ1bGwgc25hcHNob3RzLCBzbyBjbGVh
ciBhbnkgZXhpc3Rpbmcgc25hcHNob3RzLgorICAgIGlmIChtX3NuYXBzaG90VHlwZSA9PSBTbmFw
c2hvdFR5cGU6OkdDRGVidWdnaW5nU25hcHNob3QpCisgICAgICAgIG1fcHJvZmlsZXIuY2xlYXJT
bmFwc2hvdHMoKTsKKwogICAgIFByZXZlbnRDb2xsZWN0aW9uU2NvcGUgcHJldmVudENvbGxlY3Rp
b25TY29wZShtX3Byb2ZpbGVyLnZtKCkuaGVhcCk7Ci0gICAgCisKICAgICBtX3NuYXBzaG90ID0g
c3RkOjptYWtlX3VuaXF1ZTxIZWFwU25hcHNob3Q+KG1fcHJvZmlsZXIubW9zdFJlY2VudFNuYXBz
aG90KCkpOwogICAgIHsKICAgICAgICAgbV9wcm9maWxlci5zZXRBY3RpdmVTbmFwc2hvdEJ1aWxk
ZXIodGhpcyk7CkBAIC02OSwxNyArNzgsMTggQEAgdm9pZCBIZWFwU25hcHNob3RCdWlsZGVyOjpi
dWlsZFNuYXBzaG90KCkKIHZvaWQgSGVhcFNuYXBzaG90QnVpbGRlcjo6YXBwZW5kTm9kZShKU0Nl
bGwqIGNlbGwpCiB7CiAgICAgQVNTRVJUKG1fcHJvZmlsZXIuYWN0aXZlU25hcHNob3RCdWlsZGVy
KCkgPT0gdGhpcyk7CisgICAgCiAgICAgQVNTRVJUKEhlYXA6OmlzTWFya2VkKGNlbGwpKTsKIAot
ICAgIGlmIChoYXNFeGlzdGluZ05vZGVGb3JDZWxsKGNlbGwpKQorICAgIE5vZGVJZGVudGlmaWVy
IGlkZW50aWZpZXI7CisgICAgaWYgKHByZXZpb3VzU25hcHNob3RIYXNOb2RlRm9yQ2VsbChjZWxs
LCBpZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc3RkOjpsb2NrX2d1YXJkPExv
Y2s+IGxvY2sobV9idWlsZGluZ05vZGVNdXRleCk7Ci0KICAgICBtX3NuYXBzaG90LT5hcHBlbmRO
b2RlKEhlYXBTbmFwc2hvdE5vZGUoY2VsbCwgZ2V0TmV4dE9iamVjdElkZW50aWZpZXIoKSkpOwog
fQogCi12b2lkIEhlYXBTbmFwc2hvdEJ1aWxkZXI6OmFwcGVuZEVkZ2UoSlNDZWxsKiBmcm9tLCBK
U0NlbGwqIHRvKQordm9pZCBIZWFwU25hcHNob3RCdWlsZGVyOjphcHBlbmRFZGdlKEpTQ2VsbCog
ZnJvbSwgSlNDZWxsKiB0bywgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uIHJvb3RNYXJrUmVh
c29uKQogewogICAgIEFTU0VSVChtX3Byb2ZpbGVyLmFjdGl2ZVNuYXBzaG90QnVpbGRlcigpID09
IHRoaXMpOwogICAgIEFTU0VSVCh0byk7CkBAIC05MCw2ICsxMDAsMTUgQEAgdm9pZCBIZWFwU25h
cHNob3RCdWlsZGVyOjphcHBlbmRFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bykKIAogICAg
IHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1fYnVpbGRpbmdFZGdlTXV0ZXgpOwogCisgICAg
aWYgKG1fc25hcHNob3RUeXBlID09IFNuYXBzaG90VHlwZTo6R0NEZWJ1Z2dpbmdTbmFwc2hvdCkg
eworICAgICAgICBpZiAocm9vdE1hcmtSZWFzb24gPT0gU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVh
c29uOjpOb25lICYmIG1fc25hcHNob3RUeXBlID09IFNuYXBzaG90VHlwZTo6R0NEZWJ1Z2dpbmdT
bmFwc2hvdCkKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiQ2VsbCAlcCBpcyBhIHJvb3QgYnV0
IG5vIHJvb3QgbWFya2luZyByZWFzb24gd2FzIHN1cHBsaWVkIiwgdG8pOworCisgICAgICAgIG1f
cm9vdERhdGEuZW5zdXJlKHRvLCBbXSAoKSAtPiBSb290RGF0YSB7CisgICAgICAgICAgICByZXR1
cm4geyB9OworICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWUubWFya1JlYXNvbiA9IHJvb3RNYXJr
UmVhc29uOworICAgIH0KKwogICAgIG1fZWRnZXMuYXBwZW5kKEhlYXBTbmFwc2hvdEVkZ2UoZnJv
bSwgdG8pKTsKIH0KIApAQCAtMTIzLDIyICsxNDIsNDYgQEAgdm9pZCBIZWFwU25hcHNob3RCdWls
ZGVyOjphcHBlbmRJbmRleEVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRvLCB1aW50MzJfdCBp
bmQKICAgICBtX2VkZ2VzLmFwcGVuZChIZWFwU25hcHNob3RFZGdlKGZyb20sIHRvLCBpbmRleCkp
OwogfQogCi1ib29sIEhlYXBTbmFwc2hvdEJ1aWxkZXI6Omhhc0V4aXN0aW5nTm9kZUZvckNlbGwo
SlNDZWxsKiBjZWxsKQordm9pZCBIZWFwU25hcHNob3RCdWlsZGVyOjpzZXRPcGFxdWVSb290UmVh
Y2hhYmlsaXR5UmVhc29uRm9yQ2VsbChKU0NlbGwqIGNlbGwsIGNvbnN0IGNoYXIqIHJlYXNvbikK
K3sKKyAgICBpZiAoIXJlYXNvbiB8fCAhKnJlYXNvbiB8fCBtX3NuYXBzaG90VHlwZSAhPSBTbmFw
c2hvdFR5cGU6OkdDRGVidWdnaW5nU25hcHNob3QpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
cm9vdERhdGEuZW5zdXJlKGNlbGwsIFtdICgpIC0+IFJvb3REYXRhIHsKKyAgICAgICAgcmV0dXJu
IHsgfTsKKyAgICB9KS5pdGVyYXRvci0+dmFsdWUucmVhY2hhYmlsaXR5RnJvbU9wYXF1ZVJvb3RS
ZWFzb25zID0gcmVhc29uOworfQorCit2b2lkIEhlYXBTbmFwc2hvdEJ1aWxkZXI6OnNldFdyYXBw
ZWRPYmplY3RGb3JDZWxsKEpTQ2VsbCogY2VsbCwgdm9pZCogd3JhcHBlZFB0cikKK3sKKyAgICBt
X3dyYXBwZWRPYmplY3RQb2ludGVycy5zZXQoY2VsbCwgd3JhcHBlZFB0cik7Cit9CisKK2Jvb2wg
SGVhcFNuYXBzaG90QnVpbGRlcjo6cHJldmlvdXNTbmFwc2hvdEhhc05vZGVGb3JDZWxsKEpTQ2Vs
bCogY2VsbCwgTm9kZUlkZW50aWZpZXImIGlkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFtX3NuYXBz
aG90LT5wcmV2aW91cygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gISFt
X3NuYXBzaG90LT5wcmV2aW91cygpLT5ub2RlRm9yQ2VsbChjZWxsKTsKLX0KKyAgICBhdXRvIGV4
aXN0aW5nTm9kZSA9IG1fc25hcHNob3QtPnByZXZpb3VzKCktPm5vZGVGb3JDZWxsKGNlbGwpOwor
ICAgIGlmIChleGlzdGluZ05vZGUpIHsKKyAgICAgICAgaWRlbnRpZmllciA9IGV4aXN0aW5nTm9k
ZS52YWx1ZSgpLmlkZW50aWZpZXI7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAorICAg
IHJldHVybiBmYWxzZTsKK30KIAogLy8gSGVhcCBTbmFwc2hvdCBKU09OIEZvcm1hdDoKIC8vCisv
LyAgSW5zcGVjdG9yIHNuYXBzaG90czoKKy8vCiAvLyAgIHsKIC8vICAgICAgInZlcnNpb24iOiAx
LjAsCisvLyAgICAgICJ0eXBlIjogIkluc3BlY3RvciIsCisvLyAgICAgIC8vIFs8YWRkcmVzcz4s
IDxsYWJlbEluZGV4PiwgPHdyYXBwZWRFZGRyZXNzPl0gb25seSBwcmVzZW50IGluIEdDRGVidWdn
aW5nU25hcHNob3QtdHlwZSBzbmFwc2hvdHMKIC8vICAgICAgIm5vZGVzIjogWwotLy8gICAgICAg
ICAgPG5vZGVJZD4sIDxzaXplSW5CeXRlcz4sIDxub2RlQ2xhc3NOYW1lSW5kZXg+LCA8aW50ZXJu
YWw+LAotLy8gICAgICAgICAgPG5vZGVJZD4sIDxzaXplSW5CeXRlcz4sIDxub2RlQ2xhc3NOYW1l
SW5kZXg+LCA8aW50ZXJuYWw+LAorLy8gICAgICAgICAgPG5vZGVJZD4sIDxzaXplSW5CeXRlcz4s
IDxub2RlQ2xhc3NOYW1lSW5kZXg+LCA8aW50ZXJuYWw+CisvLyAgICAgICAgICA8bm9kZUlkPiwg
PHNpemVJbkJ5dGVzPiwgPG5vZGVDbGFzc05hbWVJbmRleD4sIDxpbnRlcm5hbD4KIC8vICAgICAg
ICAgIC4uLgogLy8gICAgICBdLAogLy8gICAgICAibm9kZUNsYXNzTmFtZXMiOiBbCkBAIC0xNTcs
NiArMjAwLDQwIEBAIGJvb2wgSGVhcFNuYXBzaG90QnVpbGRlcjo6aGFzRXhpc3RpbmdOb2RlRm9y
Q2VsbChKU0NlbGwqIGNlbGwpCiAvLyAgICAgIF0KIC8vICAgfQogLy8KKy8vICBHQyBoZWFwIGRl
YnVnZ2VyIHNuYXBzaG90czoKKy8vCisvLyAgIHsKKy8vICAgICAgInZlcnNpb24iOiAxLjAsCisv
LyAgICAgICJ0eXBlIjogIkdDRGVidWdnaW5nIiwKKy8vICAgICAgIm5vZGVzIjogWworLy8gICAg
ICAgICAgPG5vZGVJZD4sIDxzaXplSW5CeXRlcz4sIDxub2RlQ2xhc3NOYW1lSW5kZXg+LCA8aW50
ZXJuYWw+LCA8bGFiZWxJbmRleD4sIDxjZWxsRWRkcmVzcz4sIDx3cmFwcGVkRWRkcmVzcz4sCisv
LyAgICAgICAgICA8bm9kZUlkPiwgPHNpemVJbkJ5dGVzPiwgPG5vZGVDbGFzc05hbWVJbmRleD4s
IDxpbnRlcm5hbD4sIDxsYWJlbEluZGV4PiwgPGNlbGxFZGRyZXNzPiwgPHdyYXBwZWRFZGRyZXNz
PiwKKy8vICAgICAgICAgIC4uLgorLy8gICAgICBdLAorLy8gICAgICAibm9kZUNsYXNzTmFtZXMi
OiBbCisvLyAgICAgICAgICAic3RyaW5nIiwgIlN0cnVjdHVyZSIsICJPYmplY3QiLCAuLi4KKy8v
ICAgICAgXSwKKy8vICAgICAgImVkZ2VzIjogWworLy8gICAgICAgICAgPGZyb21Ob2RlSWQ+LCA8
dG9Ob2RlSWQ+LCA8ZWRnZVR5cGVJbmRleD4sIDxlZGdlRXh0cmFEYXRhPiwKKy8vICAgICAgICAg
IDxmcm9tTm9kZUlkPiwgPHRvTm9kZUlkPiwgPGVkZ2VUeXBlSW5kZXg+LCA8ZWRnZUV4dHJhRGF0
YT4sCisvLyAgICAgICAgICAuLi4KKy8vICAgICAgXSwKKy8vICAgICAgImVkZ2VUeXBlcyI6IFsK
Ky8vICAgICAgICAgICJJbnRlcm5hbCIsICJQcm9wZXJ0eSIsICJJbmRleCIsICJWYXJpYWJsZSIK
Ky8vICAgICAgXSwKKy8vICAgICAgImVkZ2VOYW1lcyI6IFsKKy8vICAgICAgICAgICJwcm9wZXJ0
eU5hbWUiLCAidmFyaWFibGVOYW1lIiwgLi4uCisvLyAgICAgIF0sCisvLyAgICAgICJyb290cyIg
OiBbCisvLyAgICAgICAgICA8bm9kZUlkPiwgPHJvb3RSZWFzb25JbmRleD4sIDxyZWFjaGFiaWxp
dHlSZWFzb25JbmRleD4sCisvLyAgICAgICAgICA8bm9kZUlkPiwgPHJvb3RSZWFzb25JbmRleD4s
IDxyZWFjaGFiaWxpdHlSZWFzb25JbmRleD4sCisvLyAgICAgICAgICAuLi4gLy8gPG5vZGVJZD4g
bWF5IGJlIHJlcGVhdGVkCisvLyAgICAgIF0sCisvLyAgICAgICJsYWJlbHMiIDogWworLy8gICAg
ICAgICAgImZvbyIsICJiYXIiLCAuLi4KKy8vICAgICAgXQorLy8gICB9CisvLwogLy8gTm90ZXM6
CiAvLwogLy8gICAgIDxub2RlQ2xhc3NOYW1lSW5kZXg+CkBAIC0xNzIsNiArMjQ5LDkgQEAgYm9v
bCBIZWFwU25hcHNob3RCdWlsZGVyOjpoYXNFeGlzdGluZ05vZGVGb3JDZWxsKEpTQ2VsbCogY2Vs
bCkKIC8vICAgICAgIC0gZm9yIEludGVybmFsIGVkZ2VzIHRoaXMgc2hvdWxkIGJlIGlnbm9yZWQg
KDApLgogLy8gICAgICAgLSBmb3IgSW5kZXggZWRnZXMgdGhpcyBpcyB0aGUgaW5kZXggdmFsdWUu
CiAvLyAgICAgICAtIGZvciBQcm9wZXJ0eSBvciBWYXJpYWJsZSBlZGdlcyB0aGlzIGlzIGFuIGlu
ZGV4IGludG8gdGhlICJlZGdlTmFtZXMiIGxpc3QuCisvLworLy8gICAgICA8cm9vdFJlYXNvbklu
ZGV4PgorLy8gICAgICAgLSBpbmRleCBpbnRvIHRoZSAibGFiZWxzIiBsaXN0LgogCiBzdGF0aWMg
dWludDhfdCBlZGdlVHlwZVRvTnVtYmVyKEVkZ2VUeXBlIHR5cGUpCiB7CkBAIC0xOTQsMjQgKzI3
NCw5OCBAQCBzdGF0aWMgY29uc3QgY2hhciogZWRnZVR5cGVUb1N0cmluZyhFZGdlVHlwZSB0eXBl
KQogICAgIHJldHVybiAiSW50ZXJuYWwiOwogfQogCitzdGF0aWMgY29uc3QgY2hhciogc25hcHNo
b3RUeXBlVG9TdHJpbmcoSGVhcFNuYXBzaG90QnVpbGRlcjo6U25hcHNob3RUeXBlIHR5cGUpCit7
CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBIZWFwU25hcHNob3RCdWlsZGVyOjpTbmFw
c2hvdFR5cGU6Okluc3BlY3RvclNuYXBzaG90OgorICAgICAgICByZXR1cm4gIkluc3BlY3RvciI7
CisgICAgY2FzZSBIZWFwU25hcHNob3RCdWlsZGVyOjpTbmFwc2hvdFR5cGU6OkdDRGVidWdnaW5n
U25hcHNob3Q6CisgICAgICAgIHJldHVybiAiR0NEZWJ1Z2dpbmciOworICAgIH0KKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gIkluc3BlY3RvciI7Cit9CisKK3N0YXRpYyBj
b25zdCBjaGFyKiByb290VHlwZVRvU3RyaW5nKFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbiB0
eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgU2xvdFZpc2l0b3I6OlJvb3RN
YXJrUmVhc29uOjpOb25lOgorICAgICAgICByZXR1cm4gIk5vbmUiOworICAgIGNhc2UgU2xvdFZp
c2l0b3I6OlJvb3RNYXJrUmVhc29uOjpDb25zZXJ2YXRpdmVTY2FuOgorICAgICAgICByZXR1cm4g
IkNvbnNlcnZhdGl2ZSBzY2FuIjsKKyAgICBjYXNlIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNv
bjo6U3Ryb25nUmVmZXJlbmNlczoKKyAgICAgICAgcmV0dXJuICJTdHJvbmcgcmVmZXJlbmNlcyI7
CisgICAgY2FzZSBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246OlByb3RlY3RlZFZhbHVlczoK
KyAgICAgICAgcmV0dXJuICJQcm90ZWN0ZWQgdmFsdWVzIjsKKyAgICBjYXNlIFNsb3RWaXNpdG9y
OjpSb290TWFya1JlYXNvbjo6TWFya0xpc3RTZXQ6CisgICAgICAgIHJldHVybiAiTWFyayBsaXN0
IHNldCI7CisgICAgY2FzZSBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246OlZNRXhjZXB0aW9u
czoKKyAgICAgICAgcmV0dXJuICJWTSBleGNlcHRpb25zIjsKKyAgICBjYXNlIFNsb3RWaXNpdG9y
OjpSb290TWFya1JlYXNvbjo6U3Ryb25nSGFuZGxlczoKKyAgICAgICAgcmV0dXJuICJTdHJvbmcg
aGFuZGxlcyI7CisgICAgY2FzZSBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246OkRlYnVnZ2Vy
OgorICAgICAgICByZXR1cm4gIkRlYnVnZ2VyIjsKKyAgICBjYXNlIFNsb3RWaXNpdG9yOjpSb290
TWFya1JlYXNvbjo6SklUU3R1YlJvdXRpbmVzOgorICAgICAgICByZXR1cm4gIkpJVCBzdHViIHJv
dXRpbmVzIjsKKyAgICBjYXNlIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6V2Vha1NldHM6
CisgICAgICAgIHJldHVybiAiV2VhayBzZXRzIjsKKyAgICBjYXNlIFNsb3RWaXNpdG9yOjpSb290
TWFya1JlYXNvbjo6T3V0cHV0OgorICAgICAgICByZXR1cm4gIk91dHB1dCI7CisgICAgY2FzZSBT
bG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246OkRGR1dvcmtMaXN0czoKKyAgICAgICAgcmV0dXJu
ICJERkcgd29yayBsaXN0cyI7CisgICAgY2FzZSBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246
OkNvZGVCbG9ja3M6CisgICAgICAgIHJldHVybiAiQ29kZSBibG9ja3MiOworICAgIGNhc2UgU2xv
dFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uOjpET01HQ091dHB1dDoKKyAgICAgICAgcmV0dXJuICJE
T00gR0Mgb3V0cHV0IjsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0
dXJuICJOb25lIjsKK30KKwogU3RyaW5nIEhlYXBTbmFwc2hvdEJ1aWxkZXI6Ompzb24oKQogewog
ICAgIHJldHVybiBqc29uKFtdIChjb25zdCBIZWFwU25hcHNob3ROb2RlJikgeyByZXR1cm4gdHJ1
ZTsgfSk7CiB9CiAKK3ZvaWQgSGVhcFNuYXBzaG90QnVpbGRlcjo6c2V0TGFiZWxGb3JDZWxsKEpT
Q2VsbCogY2VsbCwgY29uc3QgU3RyaW5nJiBsYWJlbCkKK3sKKyAgICBtX2NlbGxMYWJlbHMuc2V0
KGNlbGwsIGxhYmVsKTsKK30KKworU3RyaW5nIEhlYXBTbmFwc2hvdEJ1aWxkZXI6OmRlc2NyaXB0
aW9uRm9yQ2VsbChKU0NlbGwgKmNlbGwpIGNvbnN0Cit7CisgICAgaWYgKGNlbGwtPmlzU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOyAvLyBGSVhNRTogZ2V0IHBhcnQgb2Yg
c3RyaW5nLgorCisgICAgVk0mIHZtID0gbV9wcm9maWxlci52bSgpOworICAgIFN0cnVjdHVyZSog
c3RydWN0dXJlID0gY2VsbC0+c3RydWN0dXJlKHZtKTsKKworICAgIGlmIChzdHJ1Y3R1cmUtPmNs
YXNzSW5mbygpLT5pc1N1YkNsYXNzT2YoU3RydWN0dXJlOjppbmZvKCkpKSB7CisgICAgICAgIFN0
cnVjdHVyZSogY2VsbEFzU3RydWN0dXJlID0ganNDYXN0PFN0cnVjdHVyZSo+KGNlbGwpOworICAg
ICAgICByZXR1cm4gY2VsbEFzU3RydWN0dXJlLT5jbGFzc0luZm8oKS0+Y2xhc3NOYW1lOworICAg
IH0KKworICAgIHJldHVybiBlbXB0eVN0cmluZygpOworfQorCiBTdHJpbmcgSGVhcFNuYXBzaG90
QnVpbGRlcjo6anNvbihGdW5jdGlvbjxib29sIChjb25zdCBIZWFwU25hcHNob3ROb2RlJik+IGFs
bG93Tm9kZUNhbGxiYWNrKQogewogICAgIFZNJiB2bSA9IG1fcHJvZmlsZXIudm0oKTsKICAgICBE
ZWZlckdDRm9yQVdoaWxlIGRlZmVyR0Modm0uaGVhcCk7CiAKICAgICAvLyBCdWlsZCBhIG5vZGUg
dG8gaWRlbnRpZmllciBtYXAgb2YgYWxsb3dlZCBub2RlcyB0byB1c2Ugd2hlbiBzZXJpYWxpemlu
ZyBlZGdlcy4KLSAgICBIYXNoTWFwPEpTQ2VsbCosIHVuc2lnbmVkPiBhbGxvd2VkTm9kZUlkZW50
aWZpZXJzOworICAgIEhhc2hNYXA8SlNDZWxsKiwgTm9kZUlkZW50aWZpZXI+IGFsbG93ZWROb2Rl
SWRlbnRpZmllcnM7CiAKICAgICAvLyBCdWlsZCBhIGxpc3Qgb2YgdXNlZCBjbGFzcyBuYW1lcy4K
ICAgICBIYXNoTWFwPGNvbnN0IGNoYXIqLCB1bnNpZ25lZD4gY2xhc3NOYW1lSW5kZXhlczsKICAg
ICBjbGFzc05hbWVJbmRleGVzLnNldCgiPHJvb3Q+IiwgMCk7CiAgICAgdW5zaWduZWQgbmV4dENs
YXNzTmFtZUluZGV4ID0gMTsKIAorICAgIC8vIEJ1aWxkIGEgbGlzdCBvZiBsYWJlbHMgKHRoaXMg
aXMganVzdCBhIHN0cmluZyB0YWJsZSkuCisgICAgSGFzaE1hcDxTdHJpbmcsIHVuc2lnbmVkPiBs
YWJlbEluZGV4ZXM7CisgICAgbGFiZWxJbmRleGVzLnNldChlbXB0eVN0cmluZygpLCAwKTsKKyAg
ICB1bnNpZ25lZCBuZXh0TGFiZWxJbmRleCA9IDE7CisKICAgICAvLyBCdWlsZCBhIGxpc3Qgb2Yg
dXNlZCBlZGdlIG5hbWVzLgogICAgIEhhc2hNYXA8VW5pcXVlZFN0cmluZ0ltcGwqLCB1bnNpZ25l
ZD4gZWRnZU5hbWVJbmRleGVzOwogICAgIHVuc2lnbmVkIG5leHRFZGdlTmFtZUluZGV4ID0gMDsK
QEAgLTIzMSwxMiArMzg1LDQ0IEBAIFN0cmluZyBIZWFwU25hcHNob3RCdWlsZGVyOjpqc29uKEZ1
bmN0aW9uPGJvb2wgKGNvbnN0IEhlYXBTbmFwc2hvdE5vZGUmKT4gYWxsb3dOCiAgICAgICAgIHVu
c2lnbmVkIGNsYXNzTmFtZUluZGV4ID0gcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKIAogICAgICAg
ICBib29sIGlzSW50ZXJuYWwgPSBmYWxzZTsKKyAgICAgICAgdm9pZCogd3JhcHBlZEFkZHJlc3Mg
PSAwOworICAgICAgICB1bnNpZ25lZCBsYWJlbEluZGV4ID0gMDsKICAgICAgICAgaWYgKCFub2Rl
LmNlbGwtPmlzU3RyaW5nKCkpIHsKICAgICAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0g
bm9kZS5jZWxsLT5zdHJ1Y3R1cmUodm0pOwogICAgICAgICAgICAgaXNJbnRlcm5hbCA9ICFzdHJ1
Y3R1cmUgfHwgIXN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCk7CisKKyAgICAgICAgICAgIGlmICht
X3NuYXBzaG90VHlwZSA9PSBTbmFwc2hvdFR5cGU6OkdDRGVidWdnaW5nU25hcHNob3QpIHsKKyAg
ICAgICAgICAgICAgICBTdHJpbmcgbm9kZUxhYmVsOworICAgICAgICAgICAgICAgIGF1dG8gaXQg
PSBtX2NlbGxMYWJlbHMuZmluZChub2RlLmNlbGwpOworICAgICAgICAgICAgICAgIGlmIChpdCAh
PSBtX2NlbGxMYWJlbHMuZW5kKCkpCisgICAgICAgICAgICAgICAgICAgIG5vZGVMYWJlbCA9IGl0
LT52YWx1ZTsKKworICAgICAgICAgICAgICAgIGlmIChub2RlTGFiZWwuaXNFbXB0eSgpKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChhdXRvKiBvYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTT2Jq
ZWN0Kj4odm0sIG5vZGUuY2VsbCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRv
KiBmdW5jdGlvbiA9IGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlvbio+KHZtLCBvYmplY3QpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVMYWJlbCA9IGZ1bmN0aW9uLT5jYWxjdWxhdGVk
RGlzcGxheU5hbWUodm0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbiA9
IGRlc2NyaXB0aW9uRm9yQ2VsbChub2RlLmNlbGwpOworICAgICAgICAgICAgICAgIGlmIChkZXNj
cmlwdGlvbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAobm9kZUxhYmVsLmxl
bmd0aCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUxhYmVsLmFwcGVuZCgnICcpOwor
ICAgICAgICAgICAgICAgICAgICBub2RlTGFiZWwuYXBwZW5kKGRlc2NyaXB0aW9uKTsKKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoIW5vZGVMYWJlbC5pc0VtcHR5KCkg
JiYgbV9zbmFwc2hvdFR5cGUgPT0gU25hcHNob3RUeXBlOjpHQ0RlYnVnZ2luZ1NuYXBzaG90KSB7
CisgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gbGFiZWxJbmRleGVzLmFkZChub2Rl
TGFiZWwsIG5leHRMYWJlbEluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5p
c05ld0VudHJ5KQorICAgICAgICAgICAgICAgICAgICAgICAgbmV4dExhYmVsSW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICAgICAgbGFiZWxJbmRleCA9IHJlc3VsdC5pdGVyYXRvci0+dmFsdWU7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHdyYXBw
ZWRBZGRyZXNzID0gbV93cmFwcGVkT2JqZWN0UG9pbnRlcnMuZ2V0KG5vZGUuY2VsbCk7CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICAvLyA8bm9kZUlkPiwgPHNpemVJbkJ5dGVz
PiwgPGNsYXNzTmFtZT4sIDxvcHRpb25hbEludGVybmFsQm9vbGVhbj4KKyAgICAgICAgLy8gPG5v
ZGVJZD4sIDxzaXplSW5CeXRlcz4sIDxub2RlQ2xhc3NOYW1lSW5kZXg+LCA8aW50ZXJuYWw+LCBb
PGxhYmVsSW5kZXg+LCA8Y2VsbEVkZHJlc3M+LCA8d3JhcHBlZEVkZHJlc3M+XQogICAgICAgICBq
c29uLmFwcGVuZCgnLCcpOwogICAgICAgICBqc29uLmFwcGVuZE51bWJlcihub2RlLmlkZW50aWZp
ZXIpOwogICAgICAgICBqc29uLmFwcGVuZCgnLCcpOwpAQCAtMjQ1LDYgKzQzMSwxNCBAQCBTdHJp
bmcgSGVhcFNuYXBzaG90QnVpbGRlcjo6anNvbihGdW5jdGlvbjxib29sIChjb25zdCBIZWFwU25h
cHNob3ROb2RlJik+IGFsbG93TgogICAgICAgICBqc29uLmFwcGVuZE51bWJlcihjbGFzc05hbWVJ
bmRleCk7CiAgICAgICAgIGpzb24uYXBwZW5kKCcsJyk7CiAgICAgICAgIGpzb24uYXBwZW5kKGlz
SW50ZXJuYWwgPyAnMScgOiAnMCcpOworICAgICAgICBpZiAobV9zbmFwc2hvdFR5cGUgPT0gU25h
cHNob3RUeXBlOjpHQ0RlYnVnZ2luZ1NuYXBzaG90KSB7CisgICAgICAgICAgICBqc29uLmFwcGVu
ZCgnLCcpOworICAgICAgICAgICAganNvbi5hcHBlbmROdW1iZXIobGFiZWxJbmRleCk7CisgICAg
ICAgICAgICBqc29uLmFwcGVuZCgnLCcpOworICAgICAgICAgICAganNvbi5hcHBlbmQoU3RyaW5n
Ojpmb3JtYXQoIlwiJXBcIiIsIG5vZGUuY2VsbCkpOyAvLyBGSVhNRTogU2hvdWxkIGFkZCBTdHJp
bmdCdWlsZGVyOjphcHBlbmRBZGRyZXNzKHZvaWQqKS4KKyAgICAgICAgICAgIGpzb24uYXBwZW5k
KCcsJyk7CisgICAgICAgICAgICBqc29uLmFwcGVuZChTdHJpbmc6OmZvcm1hdCgiXCIlcFwiIiwg
d3JhcHBlZEFkZHJlc3MpKTsKKyAgICAgICAgfQogICAgIH07CiAKICAgICBib29sIGZpcnN0RWRn
ZSA9IHRydWU7CkBAIC0yODUsMTEgKzQ3OSwyMSBAQCBTdHJpbmcgSGVhcFNuYXBzaG90QnVpbGRl
cjo6anNvbihGdW5jdGlvbjxib29sIChjb25zdCBIZWFwU25hcHNob3ROb2RlJik+IGFsbG93Tgog
ICAgIC8vIHZlcnNpb24KICAgICBqc29uLmFwcGVuZExpdGVyYWwoIlwidmVyc2lvblwiOjEiKTsK
IAorICAgIC8vIHR5cGUKKyAgICBqc29uLmFwcGVuZCgnLCcpOworICAgIGpzb24uYXBwZW5kTGl0
ZXJhbCgiXCJ0eXBlXCI6Iik7CisgICAganNvbi5hcHBlbmRRdW90ZWRKU09OU3RyaW5nKHNuYXBz
aG90VHlwZVRvU3RyaW5nKG1fc25hcHNob3RUeXBlKSk7CisKICAgICAvLyBub2RlcwogICAgIGpz
b24uYXBwZW5kKCcsJyk7CiAgICAganNvbi5hcHBlbmRMaXRlcmFsKCJcIm5vZGVzXCI6Iik7CiAg
ICAganNvbi5hcHBlbmQoJ1snKTsKLSAgICBqc29uLmFwcGVuZExpdGVyYWwoIjAsMCwwLDAiKTsg
Ly8gPHJvb3Q+CisgICAgLy8gPHJvb3Q+CisgICAgaWYgKG1fc25hcHNob3RUeXBlID09IFNuYXBz
aG90VHlwZTo6R0NEZWJ1Z2dpbmdTbmFwc2hvdCkKKyAgICAgICAganNvbi5hcHBlbmRMaXRlcmFs
KCIwLDAsMCwwLDAsXCIweDBcIixcIjB4MFwiIik7CisgICAgZWxzZQorICAgICAgICBqc29uLmFw
cGVuZExpdGVyYWwoIjAsMCwwLDAiKTsKKwogICAgIGZvciAoSGVhcFNuYXBzaG90KiBzbmFwc2hv
dCA9IG1fcHJvZmlsZXIubW9zdFJlY2VudFNuYXBzaG90KCk7IHNuYXBzaG90OyBzbmFwc2hvdCA9
IHNuYXBzaG90LT5wcmV2aW91cygpKSB7CiAgICAgICAgIGZvciAoYXV0byYgbm9kZSA6IHNuYXBz
aG90LT5tX25vZGVzKQogICAgICAgICAgICAgYXBwZW5kTm9kZUpTT04obm9kZSk7CkBAIC0zMjMs
OCArNTI3LDExIEBAIFN0cmluZyBIZWFwU25hcHNob3RCdWlsZGVyOjpqc29uKEZ1bmN0aW9uPGJv
b2wgKGNvbnN0IEhlYXBTbmFwc2hvdE5vZGUmKT4gYWxsb3dOCiAgICAgICAgICAgICBlZGdlLmZy
b20uaWRlbnRpZmllciA9IDA7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgYXV0byBmcm9t
TG9va3VwID0gYWxsb3dlZE5vZGVJZGVudGlmaWVycy5maW5kKGVkZ2UuZnJvbS5jZWxsKTsKLSAg
ICAgICAgICAgIGlmIChmcm9tTG9va3VwID09IGFsbG93ZWROb2RlSWRlbnRpZmllcnMuZW5kKCkp
CisgICAgICAgICAgICBpZiAoZnJvbUxvb2t1cCA9PSBhbGxvd2VkTm9kZUlkZW50aWZpZXJzLmVu
ZCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fc25hcHNob3RUeXBlID09IFNuYXBzaG90VHlw
ZTo6R0NEZWJ1Z2dpbmdTbmFwc2hvdCkKKyAgICAgICAgICAgICAgICAgICAgV1RGTG9nQWx3YXlz
KCJGYWlsZWQgdG8gZmluZCBub2RlIGZvciBmcm9tLWVkZ2UgY2VsbCAlcCIsIGVkZ2UuZnJvbS5j
ZWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGVkZ2UuZnJvbS5pZGVudGlmaWVyID0gZnJvbUxvb2t1cC0+dmFsdWU7CiAgICAgICAg
IH0KIApAQCAtMzMyLDEzICs1MzksMTcgQEAgU3RyaW5nIEhlYXBTbmFwc2hvdEJ1aWxkZXI6Ompz
b24oRnVuY3Rpb248Ym9vbCAoY29uc3QgSGVhcFNuYXBzaG90Tm9kZSYpPiBhbGxvd04KICAgICAg
ICAgICAgIGVkZ2UudG8uaWRlbnRpZmllciA9IDA7CiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgYXV0byB0b0xvb2t1cCA9IGFsbG93ZWROb2RlSWRlbnRpZmllcnMuZmluZChlZGdlLnRvLmNl
bGwpOwotICAgICAgICAgICAgaWYgKHRvTG9va3VwID09IGFsbG93ZWROb2RlSWRlbnRpZmllcnMu
ZW5kKCkpCisgICAgICAgICAgICBpZiAodG9Mb29rdXAgPT0gYWxsb3dlZE5vZGVJZGVudGlmaWVy
cy5lbmQoKSkgeworICAgICAgICAgICAgICAgIGlmIChtX3NuYXBzaG90VHlwZSA9PSBTbmFwc2hv
dFR5cGU6OkdDRGVidWdnaW5nU25hcHNob3QpCisgICAgICAgICAgICAgICAgICAgIFdURkxvZ0Fs
d2F5cygiRmFpbGVkIHRvIGZpbmQgbm9kZSBmb3IgdG8tZWRnZSBjZWxsICVwIiwgZWRnZS50by5j
ZWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGVkZ2UudG8uaWRlbnRpZmllciA9IHRvTG9va3VwLT52YWx1ZTsKICAgICAgICAgfQog
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9KTsKKwogICAgIGFsbG93ZWROb2RlSWRlbnRp
ZmllcnMuY2xlYXIoKTsKICAgICBtX2VkZ2VzLnNocmlua1RvRml0KCk7CiAKQEAgLTM4Niw2ICs1
OTcsNzMgQEAgU3RyaW5nIEhlYXBTbmFwc2hvdEJ1aWxkZXI6Ompzb24oRnVuY3Rpb248Ym9vbCAo
Y29uc3QgSGVhcFNuYXBzaG90Tm9kZSYpPiBhbGxvd04KICAgICBvcmRlcmVkRWRnZU5hbWVzLmNs
ZWFyKCk7CiAgICAganNvbi5hcHBlbmQoJ10nKTsKIAorICAgIGlmIChtX3NuYXBzaG90VHlwZSA9
PSBTbmFwc2hvdFR5cGU6OkdDRGVidWdnaW5nU25hcHNob3QpIHsKKyAgICAgICAganNvbi5hcHBl
bmQoJywnKTsKKyAgICAgICAganNvbi5hcHBlbmRMaXRlcmFsKCJcInJvb3RzXCI6Iik7CisgICAg
ICAgIGpzb24uYXBwZW5kKCdbJyk7CisgICAgICAgIAorICAgICAgICBIZWFwU25hcHNob3QqIHNu
YXBzaG90ID0gbV9wcm9maWxlci5tb3N0UmVjZW50U25hcHNob3QoKTsKKworICAgICAgICBib29s
IGZpcnN0Tm9kZSA9IHRydWU7CisgICAgICAgIGZvciAoYXV0byBpdCA6IG1fcm9vdERhdGEpIHsK
KyAgICAgICAgICAgIGF1dG8gc25hcHNob3ROb2RlID0gc25hcHNob3QtPm5vZGVGb3JDZWxsKGl0
LmtleSk7CisgICAgICAgICAgICBpZiAoIXNuYXBzaG90Tm9kZSkgeworICAgICAgICAgICAgICAg
IFdURkxvZ0Fsd2F5cygiRmFpbGVkIHRvIGZpbmQgc25hcHNob3Qgbm9kZSBmb3IgY2VsbCAlcCIs
IGl0LmtleSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGlmICghZmlyc3ROb2RlKQorICAgICAgICAgICAgICAgIGpzb24uYXBwZW5kKCcs
Jyk7CisKKyAgICAgICAgICAgIGZpcnN0Tm9kZSA9IGZhbHNlOworICAgICAgICAgICAganNvbi5h
cHBlbmROdW1iZXIoc25hcHNob3ROb2RlLnZhbHVlKCkuaWRlbnRpZmllcik7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIC8vIE1heWJlIHdlIHNob3VsZCBqdXN0IGFsd2F5cyBlbmNvZGUgdGhl
IHJvb3QgbmFtZXMuCisgICAgICAgICAgICBjb25zdCBjaGFyKiByb290TmFtZSA9IHJvb3RUeXBl
VG9TdHJpbmcoaXQudmFsdWUubWFya1JlYXNvbik7CisgICAgICAgICAgICBhdXRvIHJlc3VsdCA9
IGxhYmVsSW5kZXhlcy5hZGQocm9vdE5hbWUsIG5leHRMYWJlbEluZGV4KTsKKyAgICAgICAgICAg
IGlmIChyZXN1bHQuaXNOZXdFbnRyeSkKKyAgICAgICAgICAgICAgICBuZXh0TGFiZWxJbmRleCsr
OworICAgICAgICAgICAgdW5zaWduZWQgbGFiZWxJbmRleCA9IHJlc3VsdC5pdGVyYXRvci0+dmFs
dWU7CisgICAgICAgICAgICBqc29uLmFwcGVuZCgnLCcpOworICAgICAgICAgICAganNvbi5hcHBl
bmROdW1iZXIobGFiZWxJbmRleCk7CisKKyAgICAgICAgICAgIHVuc2lnbmVkIHJlYWNoYWJpbGl0
eVJlYXNvbkluZGV4ID0gMDsKKyAgICAgICAgICAgIGlmIChpdC52YWx1ZS5yZWFjaGFiaWxpdHlG
cm9tT3BhcXVlUm9vdFJlYXNvbnMpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IGxh
YmVsSW5kZXhlcy5hZGQoaXQudmFsdWUucmVhY2hhYmlsaXR5RnJvbU9wYXF1ZVJvb3RSZWFzb25z
LCBuZXh0TGFiZWxJbmRleCk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5
KQorICAgICAgICAgICAgICAgICAgICBuZXh0TGFiZWxJbmRleCsrOworICAgICAgICAgICAgICAg
IHJlYWNoYWJpbGl0eVJlYXNvbkluZGV4ID0gcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGpzb24uYXBwZW5kKCcsJyk7CisgICAgICAgICAgICBqc29u
LmFwcGVuZE51bWJlcihyZWFjaGFiaWxpdHlSZWFzb25JbmRleCk7CisgICAgICAgIH0KKworICAg
ICAgICBqc29uLmFwcGVuZCgnXScpOworICAgIH0KKworICAgIGlmIChtX3NuYXBzaG90VHlwZSA9
PSBTbmFwc2hvdFR5cGU6OkdDRGVidWdnaW5nU25hcHNob3QpIHsKKyAgICAgICAgLy8gaW50ZXJu
YWwgbm9kZSBkZXNjcmlwdGlvbnMKKyAgICAgICAganNvbi5hcHBlbmQoJywnKTsKKyAgICAgICAg
anNvbi5hcHBlbmRMaXRlcmFsKCJcImxhYmVsc1wiOiIpOworICAgICAgICBqc29uLmFwcGVuZCgn
WycpOworCisgICAgICAgIFZlY3RvcjxTdHJpbmc+IG9yZGVyZWRMYWJlbHMobGFiZWxJbmRleGVz
LnNpemUoKSk7CisgICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBsYWJlbEluZGV4ZXMpCisgICAg
ICAgICAgICBvcmRlcmVkTGFiZWxzW2VudHJ5LnZhbHVlXSA9IGVudHJ5LmtleTsKKyAgICAgICAg
bGFiZWxJbmRleGVzLmNsZWFyKCk7CisgICAgICAgIGJvb2wgZmlyc3RMYWJlbCA9IHRydWU7Cisg
ICAgICAgIGZvciAoYXV0byYgbGFiZWwgOiBvcmRlcmVkTGFiZWxzKSB7CisgICAgICAgICAgICBp
ZiAoIWZpcnN0TGFiZWwpCisgICAgICAgICAgICAgICAganNvbi5hcHBlbmQoJywnKTsKKworICAg
ICAgICAgICAgZmlyc3RMYWJlbCA9IGZhbHNlOworICAgICAgICAgICAganNvbi5hcHBlbmRRdW90
ZWRKU09OU3RyaW5nKGxhYmVsKTsKKyAgICAgICAgfQorICAgICAgICBvcmRlcmVkTGFiZWxzLmNs
ZWFyKCk7CisKKyAgICAgICAganNvbi5hcHBlbmQoJ10nKTsKKyAgICB9CisKICAgICBqc29uLmFw
cGVuZCgnfScpOwogICAgIHJldHVybiBqc29uLnRvU3RyaW5nKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmgKaW5kZXggYWU3ZjBiZDBj
M2U0MjMxNDU2NDNkNzNkZDIyZmY1YzgwNDhlYzE4YS4uZDY5ODY5Mjk4YjM2ZWIwZTEwZTYwNmMw
YTU1NDIxMzUwYTAzY2FhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcFNuYXBzaG90QnVpbGRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXBTbmFwc2hvdEJ1aWxkZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgiCiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRl
IDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTMzLDEwICszNCwxMyBA
QAogCiBuYW1lc3BhY2UgSlNDIHsKIAorY2xhc3MgQ29uc2VydmF0aXZlUm9vdHM7CiBjbGFzcyBI
ZWFwUHJvZmlsZXI7CiBjbGFzcyBIZWFwU25hcHNob3Q7CiBjbGFzcyBKU0NlbGw7CiAKK3R5cGVk
ZWYgdW5zaWduZWQgTm9kZUlkZW50aWZpZXI7CisKIHN0cnVjdCBIZWFwU25hcHNob3ROb2RlIHsK
ICAgICBIZWFwU25hcHNob3ROb2RlKEpTQ2VsbCogY2VsbCwgdW5zaWduZWQgaWRlbnRpZmllcikK
ICAgICAgICAgOiBjZWxsKGNlbGwpCkBAIC00NCw3ICs0OCw3IEBAIHN0cnVjdCBIZWFwU25hcHNo
b3ROb2RlIHsKICAgICB7IH0KIAogICAgIEpTQ2VsbCogY2VsbDsKLSAgICB1bnNpZ25lZCBpZGVu
dGlmaWVyOworICAgIE5vZGVJZGVudGlmaWVyIGlkZW50aWZpZXI7CiB9OwogCiBlbnVtIGNsYXNz
IEVkZ2VUeXBlIDogdWludDhfdCB7CkBAIC04MiwxMiArODYsMTIgQEAgc3RydWN0IEhlYXBTbmFw
c2hvdEVkZ2UgewogCiAgICAgdW5pb24gewogICAgICAgICBKU0NlbGwgKmNlbGw7Ci0gICAgICAg
IHVuc2lnbmVkIGlkZW50aWZpZXI7CisgICAgICAgIE5vZGVJZGVudGlmaWVyIGlkZW50aWZpZXI7
CiAgICAgfSBmcm9tOwogCiAgICAgdW5pb24gewogICAgICAgICBKU0NlbGwgKmNlbGw7Ci0gICAg
ICAgIHVuc2lnbmVkIGlkZW50aWZpZXI7CisgICAgICAgIE5vZGVJZGVudGlmaWVyIGlkZW50aWZp
ZXI7CiAgICAgfSB0bzsKIAogICAgIHVuaW9uIHsKQEAgLTEwMSwzMyArMTA1LDQ3IEBAIHN0cnVj
dCBIZWFwU25hcHNob3RFZGdlIHsKIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEhlYXBTbmFwc2hv
dEJ1aWxkZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIEhl
YXBTbmFwc2hvdEJ1aWxkZXIoSGVhcFByb2ZpbGVyJik7CisgICAgZW51bSBTbmFwc2hvdFR5cGUg
eyBJbnNwZWN0b3JTbmFwc2hvdCwgR0NEZWJ1Z2dpbmdTbmFwc2hvdCB9OworCisgICAgSGVhcFNu
YXBzaG90QnVpbGRlcihIZWFwUHJvZmlsZXImLCBTbmFwc2hvdFR5cGUgPSBTbmFwc2hvdFR5cGU6
Okluc3BlY3RvclNuYXBzaG90KTsKICAgICB+SGVhcFNuYXBzaG90QnVpbGRlcigpOwogCi0gICAg
c3RhdGljIHVuc2lnbmVkIG5leHRBdmFpbGFibGVPYmplY3RJZGVudGlmaWVyOwotICAgIHN0YXRp
YyB1bnNpZ25lZCBnZXROZXh0T2JqZWN0SWRlbnRpZmllcigpOwogICAgIHN0YXRpYyB2b2lkIHJl
c2V0TmV4dEF2YWlsYWJsZU9iamVjdElkZW50aWZpZXIoKTsKIAogICAgIC8vIFBlcmZvcm1zIGEg
Z2FyYmFnZSBjb2xsZWN0aW9uIHRoYXQgYnVpbGRzIGEgc25hcHNob3Qgb2YgYWxsIGxpdmUgY2Vs
bHMuCiAgICAgdm9pZCBidWlsZFNuYXBzaG90KCk7CiAKLSAgICAvLyBBIG1hcmtlZCBjZWxsLgor
ICAgIC8vIEEgcm9vdCBvciBtYXJrZWQgY2VsbC4KICAgICB2b2lkIGFwcGVuZE5vZGUoSlNDZWxs
Kik7CiAKICAgICAvLyBBIHJlZmVyZW5jZSBmcm9tIG9uZSBjZWxsIHRvIGFub3RoZXIuCi0gICAg
dm9pZCBhcHBlbmRFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0byk7CisgICAgdm9pZCBhcHBl
bmRFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVh
c29uKTsKICAgICB2b2lkIGFwcGVuZFByb3BlcnR5TmFtZUVkZ2UoSlNDZWxsKiBmcm9tLCBKU0Nl
bGwqIHRvLCBVbmlxdWVkU3RyaW5nSW1wbCogcHJvcGVydHlOYW1lKTsKICAgICB2b2lkIGFwcGVu
ZFZhcmlhYmxlTmFtZUVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRvLCBVbmlxdWVkU3RyaW5n
SW1wbCogdmFyaWFibGVOYW1lKTsKICAgICB2b2lkIGFwcGVuZEluZGV4RWRnZShKU0NlbGwqIGZy
b20sIEpTQ2VsbCogdG8sIHVpbnQzMl90IGluZGV4KTsKIAorICAgIHZvaWQgc2V0T3BhcXVlUm9v
dFJlYWNoYWJpbGl0eVJlYXNvbkZvckNlbGwoSlNDZWxsKiwgY29uc3QgY2hhciopOworICAgIHZv
aWQgc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoSlNDZWxsKiwgdm9pZCopOworICAgIHZvaWQgc2V0
TGFiZWxGb3JDZWxsKEpTQ2VsbCosIGNvbnN0IFN0cmluZyYpOworCiAgICAgU3RyaW5nIGpzb24o
KTsKICAgICBTdHJpbmcganNvbihGdW5jdGlvbjxib29sIChjb25zdCBIZWFwU25hcHNob3ROb2Rl
Jik+IGFsbG93Tm9kZUNhbGxiYWNrKTsKIAogcHJpdmF0ZToKKyAgICBzdGF0aWMgTm9kZUlkZW50
aWZpZXIgbmV4dEF2YWlsYWJsZU9iamVjdElkZW50aWZpZXI7CisgICAgc3RhdGljIE5vZGVJZGVu
dGlmaWVyIGdldE5leHRPYmplY3RJZGVudGlmaWVyKCk7CisKICAgICAvLyBGaW5hbGl6ZWQgc25h
cHNob3RzIGFyZSBub3QgbW9kaWZpZWQgZHVyaW5nIGJ1aWxkaW5nLiBTbyBzZWFyY2hpbmcgdGhl
bQogICAgIC8vIGZvciBhbiBleGlzdGluZyBub2RlIGNhbiBiZSBkb25lIGNvbmN1cnJlbnRseSB3
aXRob3V0IGEgbG9jay4KLSAgICBib29sIGhhc0V4aXN0aW5nTm9kZUZvckNlbGwoSlNDZWxsKik7
Ci0KKyAgICBib29sIHByZXZpb3VzU25hcHNob3RIYXNOb2RlRm9yQ2VsbChKU0NlbGwqLCBOb2Rl
SWRlbnRpZmllciYpOworICAgIAorICAgIFN0cmluZyBkZXNjcmlwdGlvbkZvckNlbGwoSlNDZWxs
KikgY29uc3Q7CisgICAgCisgICAgc3RydWN0IFJvb3REYXRhIHsKKyAgICAgICAgY29uc3QgY2hh
ciogcmVhY2hhYmlsaXR5RnJvbU9wYXF1ZVJvb3RSZWFzb25zIHsgbnVsbHB0ciB9OworICAgICAg
ICBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb24gbWFya1JlYXNvbiB7IFNsb3RWaXNpdG9yOjpS
b290TWFya1JlYXNvbjo6Tm9uZSB9OworICAgIH07CisgICAgCiAgICAgSGVhcFByb2ZpbGVyJiBt
X3Byb2ZpbGVyOwogCiAgICAgLy8gU2xvdFZpc2l0b3JzIHJ1biBpbiBwYXJhbGxlbC4KQEAgLTEz
NSw2ICsxNTMsMTAgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGVhcFNuYXBzaG90
PiBtX3NuYXBzaG90OwogICAgIExvY2sgbV9idWlsZGluZ0VkZ2VNdXRleDsKICAgICBWZWN0b3I8
SGVhcFNuYXBzaG90RWRnZT4gbV9lZGdlczsKKyAgICBIYXNoTWFwPEpTQ2VsbCosIFJvb3REYXRh
PiBtX3Jvb3REYXRhOworICAgIEhhc2hNYXA8SlNDZWxsKiwgdm9pZCo+IG1fd3JhcHBlZE9iamVj
dFBvaW50ZXJzOworICAgIEhhc2hNYXA8SlNDZWxsKiwgU3RyaW5nPiBtX2NlbGxMYWJlbHM7Cisg
ICAgU25hcHNob3RUeXBlIG1fc25hcHNob3RUeXBlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlND
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAKaW5kZXggZTczN2Yz
OTQ1MGU5MGM1NDI1ZWIzYTE0NmMzOTI0NWQ4ZTk2NTU0ZS4uMzNjMzdmYzZlODliMjhiNjM0Nzg2
OWRiZTBkYWM3N2RiMWVhYjM1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvU2xvdFZpc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RW
aXNpdG9yLmNwcApAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZEpT
Q2VsbE9yQXV4aWxpYXJ5KEhlYXBDZWxsKiBoZWFwQ2VsbCkKIHZvaWQgU2xvdFZpc2l0b3I6OmFw
cGVuZFNsb3coSlNDZWxsKiBjZWxsLCBEZXBlbmRlbmN5IGRlcGVuZGVuY3kpCiB7CiAgICAgaWYg
KFVOTElLRUxZKG1faGVhcFNuYXBzaG90QnVpbGRlcikpCi0gICAgICAgIG1faGVhcFNuYXBzaG90
QnVpbGRlci0+YXBwZW5kRWRnZShtX2N1cnJlbnRDZWxsLCBjZWxsKTsKKyAgICAgICAgbV9oZWFw
U25hcHNob3RCdWlsZGVyLT5hcHBlbmRFZGdlKG1fY3VycmVudENlbGwsIGNlbGwsIG1fcm9vdE1h
cmtSZWFzb24pOwogICAgIAogICAgIGFwcGVuZEhpZGRlblNsb3dJbXBsKGNlbGwsIGRlcGVuZGVu
Y3kpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0
b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKaW5kZXggZThh
Mjc3NDNhNmM2M2IxMmFkOTk3NzNhYmQyNjBkODM5YWQzMTczMS4uZWU1OTBlZmEwNTc5NTdhNTk5
OGJlMWRjNjlhYTNkMDUxYjczMTM3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvU2xvdFZpc2l0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90
VmlzaXRvci5oCkBAIC01Nyw2ICs1NywyMyBAQCBjbGFzcyBTbG90VmlzaXRvciB7CiAgICAgZnJp
ZW5kIGNsYXNzIEhlYXA7CiAKIHB1YmxpYzoKKyAgICBlbnVtIFJvb3RNYXJrUmVhc29uIHsKKyAg
ICAgICAgTm9uZSwKKyAgICAgICAgQ29uc2VydmF0aXZlU2NhbiwKKyAgICAgICAgU3Ryb25nUmVm
ZXJlbmNlcywKKyAgICAgICAgUHJvdGVjdGVkVmFsdWVzLAorICAgICAgICBNYXJrTGlzdFNldCwK
KyAgICAgICAgVk1FeGNlcHRpb25zLAorICAgICAgICBTdHJvbmdIYW5kbGVzLAorICAgICAgICBE
ZWJ1Z2dlciwKKyAgICAgICAgSklUU3R1YlJvdXRpbmVzLAorICAgICAgICBXZWFrU2V0cywKKyAg
ICAgICAgT3V0cHV0LAorICAgICAgICBERkdXb3JrTGlzdHMsCisgICAgICAgIENvZGVCbG9ja3Ms
CisgICAgICAgIERPTUdDT3V0cHV0LAorICAgIH07CisKICAgICBTbG90VmlzaXRvcihIZWFwJiwg
Q1N0cmluZyBjb2RlTmFtZSk7CiAgICAgflNsb3RWaXNpdG9yKCk7CiAKQEAgLTE0Miw3ICsxNTks
MTEgQEAgcHVibGljOgogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogCiAgICAg
Ym9vbCBpc0J1aWxkaW5nSGVhcFNuYXBzaG90KCkgY29uc3QgeyByZXR1cm4gISFtX2hlYXBTbmFw
c2hvdEJ1aWxkZXI7IH0KKyAgICBIZWFwU25hcHNob3RCdWlsZGVyKiBoZWFwU25hcHNob3RCdWls
ZGVyKCkgY29uc3QgeyByZXR1cm4gbV9oZWFwU25hcHNob3RCdWlsZGVyOyB9CiAgICAgCisgICAg
Um9vdE1hcmtSZWFzb24gcm9vdE1hcmtSZWFzb24oKSBjb25zdCB7IHJldHVybiBtX3Jvb3RNYXJr
UmVhc29uOyB9CisgICAgdm9pZCBzZXRSb290TWFya1JlYXNvbihSb290TWFya1JlYXNvbiByZWFz
b24pIHsgbV9yb290TWFya1JlYXNvbiA9IHJlYXNvbjsgfQorCiAgICAgSGVhcFZlcnNpb24gbWFy
a2luZ1ZlcnNpb24oKSBjb25zdCB7IHJldHVybiBtX21hcmtpbmdWZXJzaW9uOyB9CiAKICAgICBi
b29sIG11dGF0b3JJc1N0b3BwZWQoKSBjb25zdCB7IHJldHVybiBtX211dGF0b3JJc1N0b3BwZWQ7
IH0KQEAgLTIyNCw2ICsyNDUsNyBAQCBwcml2YXRlOgogCiAgICAgSGVhcFNuYXBzaG90QnVpbGRl
ciogbV9oZWFwU25hcHNob3RCdWlsZGVyIHsgbnVsbHB0ciB9OwogICAgIEpTQ2VsbCogbV9jdXJy
ZW50Q2VsbCB7IG51bGxwdHIgfTsKKyAgICBSb290TWFya1JlYXNvbiBtX3Jvb3RNYXJrUmVhc29u
IHsgUm9vdE1hcmtSZWFzb246Ok5vbmUgfTsKICAgICBib29sIG1faXNGaXJzdFZpc2l0IHsgZmFs
c2UgfTsKICAgICBib29sIG1fbXV0YXRvcklzU3RvcHBlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2Nhbk9wdGltaXplRm9yU3RvcHBlZE11dGF0b3IgeyBmYWxzZSB9OwpAQCAtMjYyLDQgKzI4NCwy
MyBAQCBwcml2YXRlOgogICAgIFNsb3RWaXNpdG9yJiBtX3N0YWNrOwogfTsKIAorY2xhc3MgU2V0
Um9vdE1hcmtSZWFzb25TY29wZSB7CitwdWJsaWM6CisgICAgU2V0Um9vdE1hcmtSZWFzb25TY29w
ZShTbG90VmlzaXRvciYgdmlzaXRvciwgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uIHJlYXNv
bikKKyAgICAgICAgOiBtX3Zpc2l0b3IodmlzaXRvcikKKyAgICAgICAgLCBtX3ByZXZpb3VzUmVh
c29uKHZpc2l0b3Iucm9vdE1hcmtSZWFzb24oKSkKKyAgICB7CisgICAgICAgIG1fdmlzaXRvci5z
ZXRSb290TWFya1JlYXNvbihyZWFzb24pOworICAgIH0KKworICAgIH5TZXRSb290TWFya1JlYXNv
blNjb3BlKCkKKyAgICB7CisgICAgICAgIG1fdmlzaXRvci5zZXRSb290TWFya1JlYXNvbihtX3By
ZXZpb3VzUmVhc29uKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgU2xvdFZpc2l0b3ImIG1fdmlz
aXRvcjsKKyAgICBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb24gbV9wcmV2aW91c1JlYXNvbjsK
K307CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvV2Vha0Jsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtC
bG9jay5jcHAKaW5kZXggZjMyOGY5NmM0NTFhNTE1M2I4OWQ1YjNjNGFlNDI0ODgwNjc1ZjBjMy4u
MzIzY2U2ZmZhYzY4OGFlMTRiMTBkYzg0Yzg1ZDEyMmRmMDIxZmJhOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0Jsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRl
ICJDZWxsQ29udGFpbmVySW5saW5lcy5oIgogI2luY2x1ZGUgIkhlYXAuaCIKKyNpbmNsdWRlICJI
ZWFwU25hcHNob3RCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUg
IkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiV2Vha0hhbmRsZU93bmVyLmgiCkBAIC0xMTQsMTAgKzEx
NSwyMCBAQCB2b2lkIFdlYWtCbG9jazo6c3BlY2lhbGl6ZWRWaXNpdChDb250YWluZXJUeXBlJiBj
b250YWluZXIsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgICAgICBpZiAoY29udGFpbmVyLmlz
TWFya2VkKG1hcmtpbmdWZXJzaW9uLCBqc1ZhbHVlLmFzQ2VsbCgpKSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICAKLSAgICAgICAgaWYgKCF3ZWFrSGFuZGxlT3duZXItPmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKEhhbmRsZTxVbmtub3duPjo6d3JhcFNsb3QoJmNvbnN0X2Nhc3Q8
SlNWYWx1ZSY+KGpzVmFsdWUpKSwgd2Vha0ltcGwtPmNvbnRleHQoKSwgdmlzaXRvcikpCisgICAg
ICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9ICIiOworICAgICAgICBjb25zdCBjaGFyKiogcmVhc29u
UHRyID0gbnVsbHB0cjsKKyAgICAgICAgaWYgKFVOTElLRUxZKHZpc2l0b3IuaXNCdWlsZGluZ0hl
YXBTbmFwc2hvdCgpKSkKKyAgICAgICAgICAgIHJlYXNvblB0ciA9ICZyZWFzb247CisKKyAgICAg
ICAgaWYgKCF3ZWFrSGFuZGxlT3duZXItPmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEhhbmRs
ZTxVbmtub3duPjo6d3JhcFNsb3QoJmNvbnN0X2Nhc3Q8SlNWYWx1ZSY+KGpzVmFsdWUpKSwgd2Vh
a0ltcGwtPmNvbnRleHQoKSwgdmlzaXRvciwgcmVhc29uUHRyKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCiAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQoanNWYWx1ZSk7CisKKyAg
ICAgICAgaWYgKFVOTElLRUxZKHZpc2l0b3IuaXNCdWlsZGluZ0hlYXBTbmFwc2hvdCgpKSkgewor
ICAgICAgICAgICAgaWYgKGpzVmFsdWUuaXNDZWxsKCkpCisgICAgICAgICAgICAgICAgdmlzaXRv
ci5oZWFwU25hcHNob3RCdWlsZGVyKCktPnNldE9wYXF1ZVJvb3RSZWFjaGFiaWxpdHlSZWFzb25G
b3JDZWxsKGpzVmFsdWUuYXNDZWxsKCksICpyZWFzb25QdHIpOworICAgICAgICB9CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrSGFuZGxlT3du
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0hhbmRsZU93bmVyLmNwcApp
bmRleCAwNDQ1MThmN2EzMTMwN2NmMzY2YzE4ZmEzYjJlNjdmZGU4MDVmZTFjLi40NTcyNDA1OTc3
ZjU5NzFhMTc3NzVkZTRiOWU0MWFkNmM0ZTI3YWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9XZWFrSGFuZGxlT3duZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL1dlYWtIYW5kbGVPd25lci5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgV2Vha0hhbmRs
ZU93bmVyOjp+V2Vha0hhbmRsZU93bmVyKCkKIHsKIH0KIAotYm9vbCBXZWFrSGFuZGxlT3duZXI6
OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEhhbmRsZTxVbmtub3duPiwgdm9pZCosIFNsb3RW
aXNpdG9yJikKK2Jvb2wgV2Vha0hhbmRsZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhIYW5kbGU8VW5rbm93bj4sIHZvaWQqLCBTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKikKIHsK
ICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9XZWFrSGFuZGxlT3duZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtI
YW5kbGVPd25lci5oCmluZGV4IDIxOWE5YzU5MTg5ZGQxNDEzZTRlYTZlNzI0ZDdkYTFhMzY1MDVk
YjEuLjQ1MDQ1NmY0MDE2OWE3YTQ1NjQwYjVlNjU1NDc2OGVkZDQxNWU5MmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtIYW5kbGVPd25lci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtIYW5kbGVPd25lci5oCkBAIC0zNCw3ICszNCw4IEBA
IGNsYXNzIFNsb3RWaXNpdG9yOwogY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgV2Vha0hhbmRsZU93
bmVyIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWFrSGFuZGxlT3duZXIoKTsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSGFuZGxlPFVua25vd24+LCB2b2lk
KiBjb250ZXh0LCBTbG90VmlzaXRvciYpOworICAgIC8vIHJlYXNvbiB3aWxsIG9ubHkgYmUgbm9u
LW51bGwgd2hlbiBnZW5lcmF0aW5nIGEgZGVidWcgR0MgaGVhcCBzbmFwc2hvdC4KKyAgICB2aXJ0
dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSGFuZGxlPFVua25vd24+LCB2b2lk
KiBjb250ZXh0LCBTbG90VmlzaXRvciYsIGNoYXIgY29uc3QqKiByZWFzb24gPSBudWxscHRyKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSGFuZGxlPFVua25vd24+LCB2b2lkKiBjb250ZXh0
KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBs
ZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcAppbmRleCBhMjUwMjhjZDc1MmY4M2Y3YWQ2
NjY3ODNmZTYyYmM5YTUxMGM3YTM2Li42YWZlMjMwOWYxNGEyMWYzOGQzM2UzMTIxOWJiNTcwOTMy
MmI5YzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaW1wbGVU
eXBlZEFycmF5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwCkBAIC01OCw4ICs1OCwxMCBAQCBib29s
IFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyOjppc0F0b21pY3NXYWl0QWxsb3dlZE9uQ3VycmVu
dFRocmVhZCgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgU2ltcGxlVHlwZWRBcnJheUNv
bnRyb2xsZXI6OkpTQXJyYXlCdWZmZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBKU0M6OlNsb3RWaXNpdG9y
JiB2aXNpdG9yKQorYm9vbCBTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZl
ck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+IGhhbmRsZSwgdm9pZCosIEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIq
KiByZWFzb24pCiB7CisgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICpyZWFzb24g
PSAiSlNBcnJheUJ1ZmZlciBpcyBvcGFxdWUgcm9vdCI7CiAgICAgYXV0byYgd3JhcHBlciA9ICpK
U0M6OmpzQ2FzdDxKU0M6OkpTQXJyYXlCdWZmZXIqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7
CiAgICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KHdyYXBwZXIuaW1wbCgpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVk
QXJyYXlDb250cm9sbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaW1wbGVU
eXBlZEFycmF5Q29udHJvbGxlci5oCmluZGV4IGQyYjAzYzI2Mzk1OTBkMzdlY2QxMmM2YTk5OGQz
NTY5YmFlMjc5YTYuLjMzZDA4OWY2MTdiZDg4Y2JlNGRmODFjNDExYmRmNGU0MGM3N2Q1MTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlw
ZWRBcnJheUNvbnRyb2xsZXIuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIGNsYXNzIEpTQXJyYXlCdWZmZXJPd25lciA6IHB1YmxpYyBXZWFrSGFuZGxlT3duZXIgewog
ICAgIHB1YmxpYzoKLSAgICAgICAgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBTbG90VmlzaXRvciYpIG92ZXJy
aWRlOworICAgICAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIFNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioq
IHJlYXNvbikgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGU7CiAgICAgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCmluZGV4IGRkZTMxMDkxMWMwZGM0M2Mx
YjY3YzM1MjkyZDEwODY3N2ZiZDIyOTUuLmViNTdjNzg0Yzk4MTgwNDYyZDRhOGU0M2M4NmI1MGJh
YWFlODQ5M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxh
clZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAK
QEAgLTE3Miw4ICsxNzIsMTAgQEAgcHJpdmF0ZToKIAogY2xhc3MgRWxlbWVudEhhbmRsZU93bmVy
IDogcHVibGljIFdlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgYm9vbCBpc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyhIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90
VmlzaXRvciYgdmlzaXRvcikgb3ZlcnJpZGUKKyAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2
aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKSBvdmVycmlkZQogICAgIHsKKyAgICAgICAgaWYg
KFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICAgICAqcmVhc29uID0gIkpTQzo6RWxlbWVudCBp
cyBvcGFxdWUgcm9vdCI7CiAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBqc0Nhc3Q8RWxlbWVu
dCo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICAgICAgcmV0dXJuIHZpc2l0b3IuY29u
dGFpbnNPcGFxdWVSb290KGVsZW1lbnQtPnJvb3QoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NR0NPdXRwdXRDb25zdHJhaW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTUdDT3V0cHV0Q29uc3RyYWludC5jcHAKaW5kZXggNjg4
NjM0M2E3NzUzNDg0OGQ0YjU5YzM0ZWZmNjViZmVkN2M3Y2YyNS4uN2QyN2RhNDY2Yjg1YzVkNWM5
YTE1YjczOTFjMTNmOTY1MmM3YzhkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvRE9NR0NPdXRwdXRDb25zdHJhaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9ET01HQ091dHB1dENvbnN0cmFpbnQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Js
b2NrRGlyZWN0b3J5SW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBJbmxp
bmVzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL01hcmtlZEJsb2NrSW5saW5lcy5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1N1YnNwYWNlSW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1ZNLmg+CkBAIC02MSw2ICs2Miw3IEBAIHZvaWQgRE9NR0NPdXRwdXRDb25zdHJhaW50Ojpl
eGVjdXRlSW1wbChTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICBtX2NsaWVudERhdGEuZm9yRWFj
aE91dHB1dENvbnN0cmFpbnRTcGFjZSgKICAgICAgICAgWyZdIChTdWJzcGFjZSYgc3Vic3BhY2Up
IHsKICAgICAgICAgICAgIGF1dG8gZnVuYyA9IFtdIChTbG90VmlzaXRvciYgdmlzaXRvciwgSGVh
cENlbGwqIGhlYXBDZWxsLCBIZWFwQ2VsbDo6S2luZCkgeworICAgICAgICAgICAgICAgIFNldFJv
b3RNYXJrUmVhc29uU2NvcGUgcm9vdFNjb3BlKHZpc2l0b3IsIFNsb3RWaXNpdG9yOjpSb290TWFy
a1JlYXNvbjo6RE9NR0NPdXRwdXQpOwogICAgICAgICAgICAgICAgIEpTQ2VsbCogY2VsbCA9IHN0
YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXBDZWxsKTsKICAgICAgICAgICAgICAgICBjZWxsLT5tZXRo
b2RUYWJsZSh2aXNpdG9yLnZtKCkpLT52aXNpdE91dHB1dENvbnN0cmFpbnRzKGNlbGwsIHZpc2l0
b3IpOwogICAgICAgICAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0dDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRy
b2xsZXIuY3BwCmluZGV4IDQzODU2ZjVlZTVjYWZjMjNmNTYzZDVmYzc2NTQ5OWE2ZjZhYzIxZTUu
LmQyNTFkMmVjZTFmMThiMjQwYTg4YmJmYjNhMjJjMmMyNGY4MGY2Y2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcApAQCAtMjcsOSArMjcsMTQgQEAKICNp
bmNsdWRlICJHQ0NvbnRyb2xsZXIuaCIKIAogI2luY2x1ZGUgIkNvbW1vblZNLmgiCisjaW5jbHVk
ZSAiRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIkpTSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAi
TG9jYXRpb24uaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwLmg+CisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTTG9jay5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1ZNLmg+CisjaW5jbHVk
ZSA8cGFsL0xvZ2dpbmcuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAg
LTUyLDYgKzU3LDEyIEBAIEdDQ29udHJvbGxlciYgR0NDb250cm9sbGVyOjpzaW5nbGV0b24oKQog
R0NDb250cm9sbGVyOjpHQ0NvbnRyb2xsZXIoKQogICAgIDogbV9HQ1RpbWVyKCp0aGlzLCAmR0ND
b250cm9sbGVyOjpnY1RpbWVyRmlyZWQpCiB7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9u
Y2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CisgICAgICAgIFBBTDo6
cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5kdW1wR0NIZWFwIiwgW10g
eworICAgICAgICAgICAgR0NDb250cm9sbGVyOjpzaW5nbGV0b24oKS5kdW1wSGVhcCgpOworICAg
ICAgICB9KTsKKyAgICB9KTsKIH0KIAogdm9pZCBHQ0NvbnRyb2xsZXI6OmdhcmJhZ2VDb2xsZWN0
U29vbigpCkBAIC0xMjcsNCArMTM4LDM2IEBAIHZvaWQgR0NDb250cm9sbGVyOjpkZWxldGVBbGxM
aW5rZWRDb2RlKERlbGV0ZUFsbENvZGVFZmZvcnQgZWZmb3J0KQogICAgIGNvbW1vblZNKCkuZGVs
ZXRlQWxsTGlua2VkQ29kZShlZmZvcnQpOwogfQogCit2b2lkIEdDQ29udHJvbGxlcjo6ZHVtcEhl
YXAoKQoreworICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlSGFuZGxlOwor
ICAgIFN0cmluZyB0ZW1wRmlsZVBhdGggPSBGaWxlU3lzdGVtOjpvcGVuVGVtcG9yYXJ5RmlsZSgi
R0NIZWFwIl9zLCBmaWxlSGFuZGxlKTsKKyAgICBpZiAoIUZpbGVTeXN0ZW06OmlzSGFuZGxlVmFs
aWQoZmlsZUhhbmRsZSkpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJEdW1waW5nIEdDIGhlYXAg
ZmFpbGVkIHRvIG9wZW4gdGVtcG9yYXJ5IGZpbGUiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIFZNJiB2bSA9IGNvbW1vblZNKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOwor
CisgICAgc2FuaXRpemVTdGFja0ZvclZNKCZ2bSk7CisKKyAgICBTdHJpbmcganNvbkRhdGE7Cisg
ICAgeworICAgICAgICBEZWZlckdDRm9yQVdoaWxlIGRlZmVyR0Modm0uaGVhcCk7IC8vIFByZXZl
bnQgY29uY3VycmVudCBHQyBmcm9tIGludGVyZmVyaW5nIHdpdGggdGhlIGZ1bGwgR0MgdGhhdCB0
aGUgc25hcHNob3QgZG9lcy4KKworICAgICAgICBIZWFwU25hcHNob3RCdWlsZGVyIHNuYXBzaG90
QnVpbGRlcih2bS5lbnN1cmVIZWFwUHJvZmlsZXIoKSwgSGVhcFNuYXBzaG90QnVpbGRlcjo6U25h
cHNob3RUeXBlOjpHQ0RlYnVnZ2luZ1NuYXBzaG90KTsKKyAgICAgICAgc25hcHNob3RCdWlsZGVy
LmJ1aWxkU25hcHNob3QoKTsKKworICAgICAgICBqc29uRGF0YSA9IHNuYXBzaG90QnVpbGRlci5q
c29uKCk7CisgICAgfQorCisgICAgQ1N0cmluZyB1dGY4U3RyaW5nID0ganNvbkRhdGEudXRmOCgp
OworCisgICAgRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUoZmlsZUhhbmRsZSwgdXRmOFN0cmluZy5k
YXRhKCksIHV0ZjhTdHJpbmcubGVuZ3RoKCkpOworICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShm
aWxlSGFuZGxlKTsKKyAgICAKKyAgICBXVEZMb2dBbHdheXMoIkR1bXBlZCBHQyBoZWFwIHRvICVz
IiwgdGVtcEZpbGVQYXRoLnV0ZjgoKS5kYXRhKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5oCmluZGV4IGVmNmQx
Mzg2ZjcyZDUwODE5MDMxYTZjMWQzMjQzOGFmZGU5MGY4ZjEuLjBjZTQ1OTUwYzUzOTFmNjA2OTZm
ZDQwZDg5ZDkyN2RhMzg2YTg3ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0dDQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29u
dHJvbGxlci5oCkBAIC01MSw2ICs1MSw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgR0NDb250
cm9sbGVyKCk7IC8vIFVzZSBzaW5nbGV0b24oKSBpbnN0ZWFkLgogCisgICAgdm9pZCBkdW1wSGVh
cCgpOworCiAgICAgdm9pZCBnY1RpbWVyRmlyZWQoKTsKICAgICBUaW1lciBtX0dDVGltZXI7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NSdWxlTGlzdEN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVMaXN0Q3VzdG9t
LmNwcAppbmRleCBmMDU1MGFhNjQ0M2VlOWQ0NDY1NWI5NWMwOTcyMGU0NjJkY2Q3YmZlLi4wMjBl
NDU4YzA1ZmIzNTBkMDM1MWQwNGRjMTc1ZTExOTM1MDY3Y2JhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcApAQCAtMzYsMTUgKzM2
LDI1IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCi1ib29s
IEpTQ1NTUnVsZUxpc3RPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK2Jv
b2wgSlNDU1NSdWxlTGlzdE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBj
b25zdCBjaGFyKiogcmVhc29uKQogewogICAgIEpTQ1NTUnVsZUxpc3QqIGpzQ1NTUnVsZUxpc3Qg
PSBqc0Nhc3Q8SlNDU1NSdWxlTGlzdCo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICBp
ZiAoIWpzQ1NTUnVsZUxpc3QtPmhhc0N1c3RvbVByb3BlcnRpZXMoKmpzQ1NTUnVsZUxpc3QtPnZt
KCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKENTU1N0eWxlU2hlZXQqIHN0eWxl
U2hlZXQgPSBqc0NTU1J1bGVMaXN0LT53cmFwcGVkKCkuc3R5bGVTaGVldCgpKQorCisgICAgaWYg
KENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBqc0NTU1J1bGVMaXN0LT53cmFwcGVkKCkuc3R5
bGVTaGVldCgpKSB7CisgICAgICAgIGlmIChVTkxJS0VMWShyZWFzb24pKQorICAgICAgICAgICAg
KnJlYXNvbiA9ICJDU1NTdHlsZVNoZWV0IGlzIG9wYXF1ZSByb290IjsKKwogICAgICAgICByZXR1
cm4gdmlzaXRvci5jb250YWluc09wYXF1ZVJvb3Qocm9vdChzdHlsZVNoZWV0KSk7Ci0gICAgaWYg
KENTU1J1bGUqIGNzc1J1bGUgPSBqc0NTU1J1bGVMaXN0LT53cmFwcGVkKCkuaXRlbSgwKSkKKyAg
ICB9CisgICAgCisgICAgaWYgKENTU1J1bGUqIGNzc1J1bGUgPSBqc0NTU1J1bGVMaXN0LT53cmFw
cGVkKCkuaXRlbSgwKSkgeworICAgICAgICBpZiAoVU5MSUtFTFkocmVhc29uKSkKKyAgICAgICAg
ICAgICpyZWFzb24gPSAiQ1NTUnVsZSBpcyBvcGFxdWUgcm9vdCI7CisKICAgICAgICAgcmV0dXJu
IHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KHJvb3QoY3NzUnVsZSkpOworICAgIH0KICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ2FsbGJhY2tEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJh
Y2tEYXRhLmNwcAppbmRleCA5YmEwZWFmMTlmYWRkYzFjNGJlMWE1MzBhZWI0NDdkY2IzOWVlZjFm
Li4xODY3NjJhOTBkMjg1MzU0NzQ2MjMxOGMyNWNhZWE0Njg1NmZkOWNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwCkBAIC05MCw4ICs5MCwxMCBA
QCB2b2lkIEpTQ2FsbGJhY2tEYXRhV2Vhazo6dmlzaXRKU0Z1bmN0aW9uKEpTQzo6U2xvdFZpc2l0
b3ImIHZpc3RvcikKICAgICB2aXN0b3IuYXBwZW5kKG1fY2FsbGJhY2spOwogfQogCi1ib29sIEpT
Q2FsbGJhY2tEYXRhV2Vhazo6V2Vha093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhK
U0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBTbG90VmlzaXRvciYgdmlz
aXRvcikKK2Jvb2wgSlNDYWxsYmFja0RhdGFXZWFrOjpXZWFrT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIFNs
b3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogeworICAgIGlmIChVTkxJ
S0VMWShyZWFzb24pKQorICAgICAgICAqcmVhc29uID0gIkNvbnRleHQgaXMgb3BhcXVlIHJvb3Qi
OyAvLyBGSVhNRTogd2hhdCBpcyB0aGUgY29udGV4dC4KICAgICByZXR1cm4gdmlzaXRvci5jb250
YWluc09wYXF1ZVJvb3QoY29udGV4dCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0NhbGxiYWNrRGF0YS5oCmluZGV4IDYwMTkyZTYxNDIyZDEyM2EyMjk3OTI3YjViZGFmZjAz
ZDQ0N2Q3NjUuLmE1YmM5NTQyZTU0NzUyMzM0YWYwZDc5MDMwNTI2M2U5NGZlNWJkZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuaApAQCAtMTE2LDcgKzEx
Niw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBjbGFzcyBXZWFrT3duZXIgOiBwdWJsaWMg
SlNDOjpXZWFrSGFuZGxlT3duZXIgewotICAgICAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xv
dFZpc2l0b3ImKSBvdmVycmlkZTsKKyAgICAgICAgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RW
aXNpdG9yJiwgY29uc3QgY2hhcioqKSBvdmVycmlkZTsKICAgICB9OwogICAgIFdlYWtPd25lciBt
X3dlYWtPd25lcjsKICAgICBKU0M6OldlYWs8SlNDOjpKU09iamVjdD4gbV9jYWxsYmFjazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAppbmRleCBmMTAxOGY0ZDU3ZGZiM2I0MjU2ZDE3MWVk
YjY4ZmRhMTgzYzQ4MGE4Li40ZDUwMDQyOTgwNzc1MzU4MDQ5MWZhY2VjMTcwZTZiYTc3NzAyNTBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwCkBAIC0yMiw4ICsyMiwxMSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRPd25l
cjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBo
YW5kbGUsIHZvaWQqLCBKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQorYm9vbCBKU0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0
b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CisgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisg
ICAgICAgICpyZWFzb24gPSAiQ2FudmFzIGlzIG9wYXF1ZSByb290IjsKKwogICAgIEpTQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEKiBqc0NhbnZhc1JlbmRlcmluZ0NvbnRleHQgPSBqc0Nhc3Q8SlND
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAg
dm9pZCogcm9vdCA9IFdlYkNvcmU6OnJvb3QoanNDYW52YXNSZW5kZXJpbmdDb250ZXh0LT53cmFw
cGVkKCkuY2FudmFzKCkpOwogICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChy
b290KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9t
LmNwcAppbmRleCBhNzYxZGIxMjNlNjJjOGJkOTdmMGU3ODE3MmMxNmUwNmEyMjdiNDI3Li40OTZk
MmU3ZDZmMjQ2OGZlYjZkODFhMmQ4NGVkMjZkODM3YTM2ZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC00NSw2ICs0NSw3IEBA
CiAjaW5jbHVkZSAiU2NoZWR1bGVkQWN0aW9uLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNp
bmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGlu
ZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU01pY3JvdGFzay5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0xvb2t1cC5oPgpAQCAtMjAyLDcgKzIwMyw3IEBAIGJvb2wgSlNET01X
aW5kb3c6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0
YXRlLCBQcm9wZXJ0CiAgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNz
VG9ET01XaW5kb3coKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCksIGVycm9yTWVzc2FnZSkp
CiAgICAgICAgIHJldHVybiBqc0RPTVdpbmRvd0dldE93blByb3BlcnR5U2xvdFJlc3RyaWN0ZWRB
Y2Nlc3M8RE9NV2luZG93VHlwZTo6TG9jYWw+KHRoaXNPYmplY3QsIHRoaXNPYmplY3QtPndyYXBw
ZWQoKSwgKnN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QsIGVycm9yTWVzc2FnZSk7CiAKLSAgICAv
LyBGSVhNRTogdGhpcyBuZWVkIG1vcmUgZXhwbGFuYXRpb24uCisgICAgLy8gRklYTUU6IHRoaXMg
bmVlZHMgbW9yZSBleHBsYW5hdGlvbi4KICAgICAvLyAoUGFydGljdWxhcmx5LCBpcyBpdCBjb3Jy
ZWN0IHRoYXQgdGhpcyBleGlzdHMgaGVyZSBidXQgbm90IGluIGdldE93blByb3BlcnR5U2xvdEJ5
SW5kZXg/KQogICAgIHNsb3Quc2V0V2F0Y2hwb2ludFNldCh0aGlzT2JqZWN0LT5tX3dpbmRvd0Ns
b3NlV2F0Y2hwb2ludHMpOwogCkBAIC0zMjgsNiArMzI5LDE1IEBAIGJvb2wgSlNET01XaW5kb3c6
OmRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5z
aWduZWQKICAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXNPYmplY3Qs
IGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAKK3ZvaWQgSlNET01XaW5kb3c6OmhlYXBTbmFwc2hv
dChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgSlNE
T01XaW5kb3cqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNET01XaW5kb3cqPihjZWxsKTsKKyAgICBp
ZiAoYXV0byogbG9jYXRpb24gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubG9jYXRpb24oKSkKKyAg
ICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgbG9jYXRpb24tPmhyZWYoKSk7CisK
KyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKIC8vIGh0dHBzOi8v
aHRtbC5zcGVjLndoYXR3Zy5vcmcvI2Nyb3Nzb3JpZ2lucHJvcGVydGllcy0oLW8tKQogc3RhdGlj
IHZvaWQgYWRkQ3Jvc3NPcmlnaW5XaW5kb3dQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSYgc3RhdGUs
IEFic3RyYWN0RE9NV2luZG93JiB3aW5kb3csIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5h
bWVzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXByZWNh
dGVkQ1NTT01WYWx1ZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rl
cHJlY2F0ZWRDU1NPTVZhbHVlQ3VzdG9tLmNwcAppbmRleCAzNWM3NWZlMzQ3MTI2NDIxNzc1NjA5
YzQ0MjhjYWNmMGEzY2RmMTAzLi5mODZmZWU2M2M3NmI5NTZiM2YzYzJiY2MxZDI2NWZhODc3Njk1
NTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RlcHJlY2F0ZWRD
U1NPTVZhbHVlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rl
cHJlY2F0ZWRDU1NPTVZhbHVlQ3VzdG9tLmNwcApAQCAtMzUsMTEgKzM1LDE1IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCi1ib29sIEpTRGVwcmVjYXRlZENT
U09NVmFsdWVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK2Jvb2wgSlNE
ZXByZWNhdGVkQ1NTT01WYWx1ZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9y
LCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIEpTRGVwcmVjYXRlZENTU09NVmFsdWUqIGpz
Q1NTVmFsdWUgPSBqc0Nhc3Q8SlNEZXByZWNhdGVkQ1NTT01WYWx1ZSo+KGhhbmRsZS5zbG90KCkt
PmFzQ2VsbCgpKTsKICAgICBpZiAoIWpzQ1NTVmFsdWUtPmhhc0N1c3RvbVByb3BlcnRpZXMoKmpz
Q1NTVmFsdWUtPnZtKCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoVU5MSUtF
TFkocmVhc29uKSkKKyAgICAgICAgKnJlYXNvbiA9ICJDU1NTdHlsZURlY2xhcmF0aW9uIGlzIG9w
YXF1ZSByb290IjsKKwogICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChyb290
KCZqc0NTU1ZhbHVlLT53cmFwcGVkKCkub3duZXIoKSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCmluZGV4IDY2MDVmMWU3ZmYyZjk1
NzZmZjg5ZmU3MGYxYTM0OGVlNGM4YmRmM2MuLjU2ODdlNGQ3OGM2MmQwOGYxOTRiOTM4MjQ2NDY5
Nzk2OTljMTdmOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9j
dW1lbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1l
bnRDdXN0b20uY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiSlNYTUxEb2N1bWVudC5o
IgogI2luY2x1ZGUgIk5vZGVUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudC5oIgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KIAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC05Myw0ICs5NCwxMSBAQCB2b2lkIEpTRG9jdW1lbnQ6OnZpc2l0
QWRkaXRpb25hbENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYWRk
T3BhcXVlUm9vdChzdGF0aWNfY2FzdDxTY3JpcHRFeGVjdXRpb25Db250ZXh0Kj4oJndyYXBwZWQo
KSkpOwogfQogCit2b2lkIEpTRG9jdW1lbnQ6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhl
YXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNl
bGwsIGJ1aWxkZXIpOworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNEb2N1bWVudCo+
KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIHRoaXNPYmplY3QtPndy
YXBwZWQoKS51cmwoKS5zdHJpbmcoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWljcm90YXNrQ2FsbGJhY2su
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWljcm90YXNrQ2FsbGJhY2suaAppbmRl
eCBjOWI4ZTY0Yjg1NGI0NDNmZmQzZjk3YmMyM2UyNWM4ZDE2NjRjMjZhLi4xYTBiNTNmYzM0M2Q1
YzViMTRmNzM3ZTI1OGIzN2E2NGQ4MjQ0ZTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01pY3JvdGFza0NhbGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNNaWNyb3Rhc2tDYWxsYmFjay5oCkBAIC00MCw4ICs0MCw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNhbGwoKQogICAgIHsKICAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlzIHsgbWFr
ZVJlZigqdGhpcykgfTsKLSAgICAgICAgVk0mIHZtID0gbV9nbG9iYWxPYmplY3QtPnZtKCk7Ci0g
ICAgICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKKyAgICAgICAgSlNDOjpWTSYgdm0gPSBtX2ds
b2JhbE9iamVjdC0+dm0oKTsKKyAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAg
ICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAgICAgSlNF
eGVjU3RhdGU6OnJ1blRhc2sobV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgbV90YXNrKTsK
ICAgICAgICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKQEAgLTU0LDcgKzU0LDcgQEAgcHJp
dmF0ZToKICAgICB7CiAgICAgfQogCi0gICAgU3Ryb25nPEpTRE9NR2xvYmFsT2JqZWN0PiBtX2ds
b2JhbE9iamVjdDsKKyAgICBKU0M6OlN0cm9uZzxKU0RPTUdsb2JhbE9iamVjdD4gbV9nbG9iYWxP
YmplY3Q7CiAgICAgUmVmPEpTQzo6TWljcm90YXNrPiBtX3Rhc2s7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNw
cAppbmRleCA0ZGRlZjhhZmM4N2IwMWRjNmE1NTFkMWI5MmRkMmZmMTk0MzBkYmUzLi4xOTVhZDAx
NWNkNTk5YjQ1NjFhZTVlYTEwZmMwOTM0NjY3NGJmNTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKQEAgLTQ0
LDExICs0NCwxNCBAQCB2b2lkIEpTTXV0YXRpb25PYnNlcnZlcjo6dmlzaXRBZGRpdGlvbmFsQ2hp
bGRyZW4oSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB3cmFwcGVkKCkuY2FsbGJhY2so
KS52aXNpdEpTRnVuY3Rpb24odmlzaXRvcik7CiB9CiAKLWJvb2wgSlNNdXRhdGlvbk9ic2VydmVy
T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCitib29sIEpTTXV0YXRpb25P
YnNlcnZlck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFy
KipyZWFzb24pCiB7CiAgICAgZm9yIChhdXRvKiBub2RlIDoganNDYXN0PEpTTXV0YXRpb25PYnNl
cnZlcio+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKS0+d3JhcHBlZCgpLm9ic2VydmVkTm9kZXMo
KSkgewotICAgICAgICBpZiAodmlzaXRvci5jb250YWluc09wYXF1ZVJvb3Qocm9vdChub2RlKSkp
CisgICAgICAgIGlmICh2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChyb290KG5vZGUpKSkgewor
ICAgICAgICAgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICAgICAgICAgKnJlYXNv
biA9ICJSZWFjaGFibGUgZnJvbSBvYnNlcnZlZCBub2RlcyI7CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hdmlnYXRvckN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hdmlnYXRvckN1c3RvbS5jcHAKaW5kZXggNDljZGEw
NjRkYzY2ZjJiYjM4OTAxYTJlM2U2ZTMxOTU3MzljMGY4MS4uMjE2OTkwMDRhYTc1MWVkYmI0NmYx
OTBkNTdmNDMwOGMwNDA4N2ZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOYXZpZ2F0b3JDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTmF2aWdhdG9yQ3VzdG9tLmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXZvaWQgSlNOYXZpZ2F0b3I6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU05hdmlnYXRvcjo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRy
ZW4oSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCiAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KCZ3cmFwcGVkKCkuc2VydmljZVdvcmtlcigp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCmluZGV4IDA5
YTcwZjIyZTg4Y2YxY2I5ODdhZTdkNzE4MWNmZTI1OTUzNTk0MjIuLmM0ODVlMzAzZDVhMzZlMzEx
MDVmODNmZDU3NGQ1YzMxMTdhYjI0OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNOb2RlQ3VzdG9tLmNwcApAQCAtNzEsNyArNzEsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNSZWFj
aGFibGVGcm9tRE9NKE5vZGUqIG5vZGUsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQorc3RhdGljIGlu
bGluZSBib29sIGlzUmVhY2hhYmxlRnJvbURPTShOb2RlKiBub2RlLCBTbG90VmlzaXRvciYgdmlz
aXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBpZiAoIW5vZGUtPmlzQ29ubmVjdGVk
KCkpIHsKICAgICAgICAgaWYgKGlzPEVsZW1lbnQ+KCpub2RlKSkgewpAQCAtODMsMzAgKzgzLDQy
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1JlYWNoYWJsZUZyb21ET00oTm9kZSogbm9kZSwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgICAgICAgICAvLyB0aGUgZWxlbWVudCBpcyBkZXN0cm95
ZWQsIGl0cyBsb2FkIGV2ZW50IHdpbGwgbm90IGZpcmUuCiAgICAgICAgICAgICAvLyBGSVhNRTog
VGhlIERPTSBzaG91bGQgbWFuYWdlIHRoaXMgaXNzdWUgd2l0aG91dCB0aGUgaGVscCBvZiBKYXZh
U2NyaXB0IHdyYXBwZXJzLgogICAgICAgICAgICAgaWYgKGlzPEhUTUxJbWFnZUVsZW1lbnQ+KGVs
ZW1lbnQpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGRvd25jYXN0PEhUTUxJbWFnZUVsZW1lbnQ+
KGVsZW1lbnQpLmhhc1BlbmRpbmdBY3Rpdml0eSgpKQorICAgICAgICAgICAgICAgIGlmIChkb3du
Y2FzdDxIVE1MSW1hZ2VFbGVtZW50PihlbGVtZW50KS5oYXNQZW5kaW5nQWN0aXZpdHkoKSkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAoVU5MSUtFTFkocmVhc29uKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICpyZWFzb24gPSAiSW1hZ2UgZWxlbWVudCB3aXRoIHBlbmRpbmcgYWN0aXZpdHki
OwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CiAjaWYgRU5BQkxFKFZJREVPKQogICAgICAgICAgICAgZWxzZSBpZiAoaXM8
SFRNTEF1ZGlvRWxlbWVudD4oZWxlbWVudCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWRvd25j
YXN0PEhUTUxBdWRpb0VsZW1lbnQ+KGVsZW1lbnQpLnBhdXNlZCgpKQorICAgICAgICAgICAgICAg
IGlmICghZG93bmNhc3Q8SFRNTEF1ZGlvRWxlbWVudD4oZWxlbWVudCkucGF1c2VkKCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICAgICAgICAg
ICAgICAgICAqcmVhc29uID0gIkF1ZGlvIGVsZW1lbnQgd2hpY2ggaXMgbm90IHBhdXNlZCI7CiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KICNlbmRpZgogICAgICAgICB9CiAKICAgICAgICAgLy8gSWYgYSBub2RlIGlzIGZp
cmluZyBldmVudCBsaXN0ZW5lcnMsIGl0cyB3cmFwcGVyIGlzIG9ic2VydmFibGUgYmVjYXVzZQog
ICAgICAgICAvLyBpdHMgd3JhcHBlciBpcyByZXNwb25zaWJsZSBmb3IgbWFya2luZyB0aG9zZSBl
dmVudCBsaXN0ZW5lcnMuCi0gICAgICAgIGlmIChub2RlLT5pc0ZpcmluZ0V2ZW50TGlzdGVuZXJz
KCkpCisgICAgICAgIGlmIChub2RlLT5pc0ZpcmluZ0V2ZW50TGlzdGVuZXJzKCkpIHsKKyAgICAg
ICAgICAgIGlmIChVTkxJS0VMWShyZWFzb24pKQorICAgICAgICAgICAgICAgICpyZWFzb24gPSAi
Tm9kZSB3aGljaCBpcyBmaXJpbmcgZXZlbnQgbGlzdGVuZXJzIjsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CiAgICAgfQogCisgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisg
ICAgICAgICpyZWFzb24gPSAiQ29ubmVjdGVkIG5vZGUiOworCiAgICAgcmV0dXJuIHZpc2l0b3Iu
Y29udGFpbnNPcGFxdWVSb290KHJvb3Qobm9kZSkpOwogfQogCi1ib29sIEpTTm9kZU93bmVyOjpp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRs
ZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQorYm9vbCBKU05vZGVPd25lcjo6aXNSZWFj
aGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZv
aWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBK
U05vZGUqIGpzTm9kZSA9IGpzQ2FzdDxKU05vZGUqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7
Ci0gICAgcmV0dXJuIGlzUmVhY2hhYmxlRnJvbURPTSgmanNOb2RlLT53cmFwcGVkKCksIHZpc2l0
b3IpOworICAgIHJldHVybiBpc1JlYWNoYWJsZUZyb21ET00oJmpzTm9kZS0+d3JhcHBlZCgpLCB2
aXNpdG9yLCByZWFzb24pOwogfQogCiBKU1Njb3BlKiBKU05vZGU6OnB1c2hFdmVudEhhbmRsZXJT
Y29wZShFeGVjU3RhdGUqIGV4ZWMsIEpTU2NvcGUqIG5vZGUpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUxpc3RDdXN0b20uY3BwCmluZGV4IDlhMWM4NzM0NDY5
NTNlMzIxZmI4ZTU1NjljOTRmMzQ4MWNjZWY4ZjguLjdmNmQ5ZTcyZGE1MDc5NWZlZjM1ZmZkNjJi
ZDI2ODhjNWExMGVhZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Tm9kZUxpc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9k
ZUxpc3RDdXN0b20uY3BwCkBAIC0zNywxNyArMzcsMzIgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKLWJvb2wgSlNOb2RlTGlzdE93bmVyOjppc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCos
IFNsb3RWaXNpdG9yJiB2aXNpdG9yKQorYm9vbCBKU05vZGVMaXN0T3duZXI6OmlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgSlNOb2Rl
TGlzdCoganNOb2RlTGlzdCA9IGpzQ2FzdDxKU05vZGVMaXN0Kj4oaGFuZGxlLnNsb3QoKS0+YXND
ZWxsKCkpOwogICAgIGlmICghanNOb2RlTGlzdC0+aGFzQ3VzdG9tUHJvcGVydGllcygqanNOb2Rl
TGlzdC0+dm0oKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoanNOb2RlTGlzdC0+
d3JhcHBlZCgpLmlzTGl2ZU5vZGVMaXN0KCkpCisKKyAgICBpZiAoanNOb2RlTGlzdC0+d3JhcHBl
ZCgpLmlzTGl2ZU5vZGVMaXN0KCkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisg
ICAgICAgICAgICAqcmVhc29uID0gIkxpdmVOb2RlTGlzdCBvd25lciBpcyBvcGFxdWUgcm9vdCI7
CisKICAgICAgICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KHJvb3Qoc3RhdGlj
X2Nhc3Q8TGl2ZU5vZGVMaXN0Jj4oanNOb2RlTGlzdC0+d3JhcHBlZCgpKS5vd25lck5vZGUoKSkp
OwotICAgIGlmIChqc05vZGVMaXN0LT53cmFwcGVkKCkuaXNDaGlsZE5vZGVMaXN0KCkpCisgICAg
fQorCisgICAgaWYgKGpzTm9kZUxpc3QtPndyYXBwZWQoKS5pc0NoaWxkTm9kZUxpc3QoKSkgewor
ICAgICAgICBpZiAoVU5MSUtFTFkocmVhc29uKSkKKyAgICAgICAgICAgICpyZWFzb24gPSAiQ2hp
bGROb2RlTGlzdCBvd25lciBpcyBvcGFxdWUgcm9vdCI7CisKICAgICAgICAgcmV0dXJuIHZpc2l0
b3IuY29udGFpbnNPcGFxdWVSb290KHJvb3Qoc3RhdGljX2Nhc3Q8Q2hpbGROb2RlTGlzdCY+KGpz
Tm9kZUxpc3QtPndyYXBwZWQoKSkub3duZXJOb2RlKCkpKTsKLSAgICBpZiAoanNOb2RlTGlzdC0+
d3JhcHBlZCgpLmlzRW1wdHlOb2RlTGlzdCgpKQorICAgIH0KKworICAgIGlmIChqc05vZGVMaXN0
LT53cmFwcGVkKCkuaXNFbXB0eU5vZGVMaXN0KCkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKHJl
YXNvbikpCisgICAgICAgICAgICAqcmVhc29uID0gIkVtcHR5Tm9kZUxpc3Qgb3duZXIgaXMgb3Bh
cXVlIHJvb3QiOworCiAgICAgICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChy
b290KHN0YXRpY19jYXN0PEVtcHR5Tm9kZUxpc3QmPihqc05vZGVMaXN0LT53cmFwcGVkKCkpLm93
bmVyTm9kZSgpKSk7CisgICAgfQogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPZmZzY3JlZW5D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwCmluZGV4IDMzYjA4ZTc4YTJjMmY3NjU3
NGFkOGM1MmQyMzBmNmNhMDc3NGE1MjkuLjM0ZDdhMDk5YjM2Njc4NzUzZjU0ZjVkZGZjNjQ4OTc0
YjI3ZDRhN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTT2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5j
cHAKQEAgLTI4LDggKzI4LDExIEBAIGlubGluZSB2b2lkKiByb290KE9mZnNjcmVlbkNhbnZhcyog
Y2FudmFzKQogICAgIHJldHVybiBjYW52YXM7CiB9CiAKLWJvb2wgSlNPZmZzY3JlZW5DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikK
K2Jvb2wgSlNPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRPd25lcjo6aXNSZWFjaGFi
bGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQq
LCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKKyAgICBpZiAo
VU5MSUtFTFkocmVhc29uKSkKKyAgICAgICAgKnJlYXNvbiA9ICJDYW52YXMgaXMgb3BhcXVlIHJv
b3QiOworCiAgICAgSlNPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIGpzT2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dCA9IGpzQ2FzdDxKU09mZnNjcmVlbkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRCo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICB2b2lkKiByb290
ID0gV2ViQ29yZTo6cm9vdCgmanNPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0LT53cmFw
cGVkKCkuY2FudmFzKCkpOwogICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChy
b290KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGVyZm9ybWFu
Y2VPYnNlcnZlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BlcmZv
cm1hbmNlT2JzZXJ2ZXJDdXN0b20uY3BwCmluZGV4IDM3ZTk1MTcxMTIyZGRkYTA1ZGQzNzZiNjFl
ZWExZjhlMWQzYzcyOWYuLjZlZmEzZGNkMmU3ZWJkMzVhYzFiODYyN2JjMmJkYjgwODBhMWNhMzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGVyZm9ybWFuY2VPYnNl
cnZlckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQZXJmb3Jt
YW5jZU9ic2VydmVyQ3VzdG9tLmNwcApAQCAtMzUsOCArMzUsMTEgQEAgdm9pZCBKU1BlcmZvcm1h
bmNlT2JzZXJ2ZXI6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKEpTQzo6U2xvdFZpc2l0b3ImIHZp
c2l0b3IpCiAgICAgd3JhcHBlZCgpLmNhbGxiYWNrKCkudmlzaXRKU0Z1bmN0aW9uKHZpc2l0b3Ip
OwogfQogCi1ib29sIEpTUGVyZm9ybWFuY2VPYnNlcnZlck93bmVyOjppc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RW
aXNpdG9yJikKK2Jvb2wgSlNQZXJmb3JtYW5jZU9ic2VydmVyT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xv
dFZpc2l0b3ImLCBjb25zdCBjaGFyKiogcmVhc29uKQogeworICAgIGlmIChVTkxJS0VMWShyZWFz
b24pKQorICAgICAgICAqcmVhc29uID0gIlJlZ2lzdGVyZWQgUGVyZm9ybWFuY2VPYnNlcnZlciBj
YWxsYmFjayI7CisKICAgICByZXR1cm4ganNDYXN0PEpTUGVyZm9ybWFuY2VPYnNlcnZlcio+KGhh
bmRsZS5zbG90KCktPmFzQ2VsbCgpKS0+d3JhcHBlZCgpLmlzUmVnaXN0ZXJlZCgpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BvcFN0YXRlRXZlbnRDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQb3BTdGF0ZUV2ZW50Q3VzdG9t
LmNwcAppbmRleCA3MjJkZDllNDM0MDNmOWRjMzQzMjk2MGNmNzM3ZjRjOGYxYWQ2MDFlLi5kMzFi
ZGM3NzliOTE3ZWM1ZTU4MjFmNmY4OWY0MGJiZmUwMmFkYTg4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BvcFN0YXRlRXZlbnRDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUG9wU3RhdGVFdmVudEN1c3RvbS5jcHAKQEAgLTM3LDYg
KzM3LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBKU1ZhbHVlIEpT
UG9wU3RhdGVFdmVudDo6c3RhdGUoRXhlY1N0YXRlJiBzdGF0ZSkgY29uc3QKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcAppbmRl
eCBjMjk0NDUxM2Y5NWU5M2QwYjFhYWUyYTdiNTA2NzNkODEzZTNhNGUzLi4zYzQ4Nzk1MmMzODY1
YTA3NzBhNDdkYWJmY2Q1Y2U4ZmFiNWZkNGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1RleHRUcmFja0N1ZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwCkBAIC0zOCwyMCArMzgsMjYgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKLWJvb2wgSlNUZXh0
VHJhY2tDdWVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK2Jvb2wgSlNU
ZXh0VHJhY2tDdWVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3Qg
Y2hhcioqIHJlYXNvbikKIHsKICAgICBKU1RleHRUcmFja0N1ZSoganNUZXh0VHJhY2tDdWUgPSBq
c0Nhc3Q8SlNUZXh0VHJhY2tDdWUqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgVGV4
dFRyYWNrQ3VlJiB0ZXh0VHJhY2tDdWUgPSBqc1RleHRUcmFja0N1ZS0+d3JhcHBlZCgpOwogCiAg
ICAgLy8gSWYgdGhlIGN1ZSBpcyBmaXJpbmcgZXZlbnQgbGlzdGVuZXJzLCBpdHMgd3JhcHBlciBp
cyByZWFjaGFibGUgYmVjYXVzZQogICAgIC8vIHRoZSB3cmFwcGVyIGlzIHJlc3BvbnNpYmxlIGZv
ciBtYXJraW5nIHRob3NlIGV2ZW50IGxpc3RlbmVycy4KLSAgICBpZiAodGV4dFRyYWNrQ3VlLmlz
RmlyaW5nRXZlbnRMaXN0ZW5lcnMoKSkKKyAgICBpZiAodGV4dFRyYWNrQ3VlLmlzRmlyaW5nRXZl
bnRMaXN0ZW5lcnMoKSkgeworICAgICAgICBpZiAoVU5MSUtFTFkocmVhc29uKSkKKyAgICAgICAg
ICAgICpyZWFzb24gPSAiVGV4dFRyYWNrQ3VlIGlzIGZpcmluZyBldmVudCBsaXN0ZW5lcnMiOwog
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAKICAgICAvLyBJZiB0aGUgY3VlIGlzIG5vdCBh
c3NvY2lhdGVkIHdpdGggYSB0cmFjaywgaXQgaXMgbm90IHJlYWNoYWJsZS4KICAgICBpZiAoIXRl
eHRUcmFja0N1ZS50cmFjaygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoVU5M
SUtFTFkocmVhc29uKSkKKyAgICAgICAgKnJlYXNvbiA9ICJUZXh0VHJhY2sgaXMgYW4gb3BhcXVl
IHJvb3QiOworCiAgICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KHJvb3QodGV4
dFRyYWNrQ3VlLnRyYWNrKCkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAKaW5kZXggODRmYjNj
NGYxNWE4YzgzODBiZTM1YjE1ZTYxZjhlNzZmNWE5NzJhMi4uMjBiNWY5ODE2OGRiZGUzYTdmMTkw
NjkzMTkzMzVmYTlhNTRhZGY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwCkBAIC01Myw4ICs1Mywx
MCBAQCBib29sIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlcjo6aXNBdG9taWNzV2FpdEFsbG93
ZWRPbkN1cnJlbnRUaHJlYWQoKQogICAgIHJldHVybiAhaXNNYWluVGhyZWFkKCk7CiB9CiAKLWJv
b2wgV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyOjpKU0FycmF5QnVmZmVyT3duZXI6OmlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2
b2lkKiwgSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKK2Jvb2wgV2ViQ29yZVR5cGVkQXJyYXlD
b250cm9sbGVyOjpKU0FycmF5QnVmZmVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgSlNDOjpTbG90VmlzaXRv
ciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKKyAgICBpZiAoVU5MSUtFTFkocmVh
c29uKSkKKyAgICAgICAgKnJlYXNvbiA9ICJBcnJheUJ1ZmZlciBpcyBvcGFxdWUgcm9vdCI7CiAg
ICAgYXV0byYgd3JhcHBlciA9ICpKU0M6OmpzQ2FzdDxKU0M6OkpTQXJyYXlCdWZmZXIqPihoYW5k
bGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVS
b290KHdyYXBwZXIuaW1wbCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmgKaW5kZXggMjUyNjAxMjJlYmYx
MTk3ZWRjZjEyNzQ5NzE5NjFlZjIyOTM0NDczNi4uZTBiYjk1NmI5OTQ0YmEyMmJjZTk3YTI5Njc2
Y2Y4MWRkMGEyYjg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2Vi
Q29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICBjbGFzcyBKU0FycmF5QnVmZmVyT3duZXIgOiBwdWJsaWMgSlNDOjpX
ZWFrSGFuZGxlT3duZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgYm9vbCBpc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBK
U0M6OlNsb3RWaXNpdG9yJikgb3ZlcnJpZGU7CisgICAgICAgIGJvb2wgaXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlND
OjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKikgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgZmlu
YWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGU7
CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQppbmRleCA4NzNlZDZiMDJkZTE3ZjE4MmJjZDZlYzMwMjJkMGQ1YTczMTBj
Nzg0Li43ZjRhYzEwYzllOGFmOGJkYzZkYmM4NjVjYzdiYmZlNGE2NDJmM2RjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAt
MjY1Nyw3ICsyNjU3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgaWYgKCRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbVByZXZlbnRFeHRlbnNpb25zfSkgewogICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBib29sIHByZXZlbnRFeHRlbnNpb25z
KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSopO1xuIik7CiAgICAgfQotICAgIAorCiAg
ICAgaWYgKEluc3RhbmNlTmVlZHNFc3RpbWF0ZWRTaXplKCRpbnRlcmZhY2UpKSB7CiAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIHNpemVfdCBlc3RpbWF0ZWRTaXplKEpT
Q2VsbCosIEpTQzo6Vk0mKTtcbiIpOwogICAgIH0KQEAgLTI3NTgsNiArMjc1OCwxMCBAQCBzdWIg
R2VuZXJhdGVIZWFkZXIKICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdGVt
cGxhdGU8dHlwZW5hbWU+IHN0YXRpYyBKU0M6OkNvbXBsZXRlU3Vic3BhY2UqIHN1YnNwYWNlRm9y
KEpTQzo6Vk0mIHZtKSB7IHJldHVybiAkc3Vic3BhY2VGdW5jKHZtKTsgfVxuIik7CiAgICAgICAg
IH0KICAgICB9CisKKyAgICBpZiAoTmVlZHNJbXBsZW1lbnRhdGlvbkNsYXNzKCRpbnRlcmZhY2Up
KSB7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIHZvaWQgaGVhcFNu
YXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpO1xuIik7CisgICAgfQog
ICAgIAogICAgIGlmICgkbnVtQ3VzdG9tQXR0cmlidXRlcyA+IDApIHsKICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIlxuICAgIC8vIEN1c3RvbSBhdHRyaWJ1dGVzXG4iKTsKQEAgLTI4Njcs
NyArMjg3MSw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICB9CiAgICAgICAgICRoZWFk
ZXJJbmNsdWRlc3siPHd0Zi9OZXZlckRlc3Ryb3llZC5oPiJ9ID0gMTsKICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgInB1YmxpYzpcbiIpOwotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7XG4iKTsK
KyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFi
bGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4
dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7XG4iKTsKICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIn07XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlxuIik7CkBAIC00
NTIxLDYgKzQ1MjUsMjAgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0KIAorICAgIGlmIChOZWVkc0ltcGxlbWVu
dGF0aW9uQ2xhc3MoJGludGVyZmFjZSkgJiYgISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRl
cy0+e0N1c3RvbUhlYXBTbmFwc2hvdH0pIHsKKyAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIjxK
YXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+Iik7CisgICAgICAgIEFkZFRvSW1w
bEluY2x1ZGVzKCJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiKTsKKyAgICAgICAgQWRkVG9JbXBs
SW5jbHVkZXMoIlVSTC5oIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2Ns
YXNzTmFtZX06OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXIm
IGJ1aWxkZXIpXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDwke2Ns
YXNzTmFtZX0qPihjZWxsKTtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBi
dWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVk
KCkpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICh0aGlzT2JqZWN0
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0
KFwidXJsICVzXCIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTtcbiIpOworICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CisgICAgfQorCiAgICAgaWYgKCRpbmRleGVkR2V0
dGVyT3BlcmF0aW9uKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IlVSTC5oIn0gPSAxIGlmICRp
bmRleGVkR2V0dGVyT3BlcmF0aW9uLT50eXBlLT5uYW1lIGVxICJET01TdHJpbmciOwogICAgICAg
ICBpZiAoJGludGVyZmFjZU5hbWUgPX4gL15IVE1MXHcqQ29sbGVjdGlvbiQvIG9yICRpbnRlcmZh
Y2VOYW1lIGVxICJSYWRpb05vZGVMaXN0IikgewpAQCAtNDUzMCw3ICs0NTQ4LDcgQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KICAgICB9CiAKICAgICBpZiAoU2hvdWxkR2VuZXJhdGVXcmFw
cGVyT3duZXJDb2RlKCRoYXNQYXJlbnQsICRpbnRlcmZhY2UpICYmICFHZXRDdXN0b21Jc1JlYWNo
YWJsZSgkaW50ZXJmYWNlKSkgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgSlMk
e2ludGVyZmFjZU5hbWV9T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpXG4i
KTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sIEpTJHtpbnRlcmZhY2VOYW1lfU93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29u
KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICMgQWxs
IEFjdGl2ZURPTU9iamVjdHMgaW1wbGVtZW50IGhhc1BlbmRpbmdBY3Rpdml0eSgpLCBidXQgbm90
IGFsbCBvZiB0aGVtCiAgICAgICAgICMgaW5jcmVtZW50IHRoZWlyIEMrKyByZWZlcmVuY2UgY291
bnRzIHdoZW4gaGFzUGVuZGluZ0FjdGl2aXR5KCkgYmVjb21lcwpAQCAtNDU0MywyMyArNDU2MSwy
OSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBpZiAoJGNvZGVHZW5lcmF0
b3ItPkluaGVyaXRzRXh0ZW5kZWRBdHRyaWJ1dGUoJGludGVyZmFjZSwgIkFjdGl2ZURPTU9iamVj
dCIpKSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvKiBqcyR7aW50
ZXJmYWNlTmFtZX0gPSBqc0Nhc3Q8SlMke2ludGVyZmFjZU5hbWV9Kj4oaGFuZGxlLnNsb3QoKS0+
YXNDZWxsKCkpO1xuIik7CiAgICAgICAgICAgICAkZW1pdHRlZEpTQ2FzdCA9IDE7Ci0gICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoanMke2ludGVyZmFjZU5hbWV9LT53cmFw
cGVkKCkuaGFzUGVuZGluZ0FjdGl2aXR5KCkpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIGlmIChqcyR7aW50ZXJmYWNlTmFtZX0tPndyYXBwZWQoKS5oYXNQZW5kaW5n
QWN0aXZpdHkoKSkge1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgaWYgKFVOTElLRUxZKHJlYXNvbikpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICAgICAgICAgKnJlYXNvbiA9IFwiQWN0aXZlRE9NT2JqZWN0IHdpdGggcGVuZGlu
ZyBhY3Rpdml0eVwiO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgcmV0dXJuIHRydWU7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICB9XG4iKTsKICAgICAgICAgfQogICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRz
SW50ZXJmYWNlKCRpbnRlcmZhY2UsICJFdmVudFRhcmdldCIpKSB7CiAgICAgICAgICAgICBpZiAo
ISRlbWl0dGVkSlNDYXN0KSB7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgYXV0byoganMke2ludGVyZmFjZU5hbWV9ID0ganNDYXN0PEpTJHtpbnRlcmZhY2VOYW1lfSo+
KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTtcbiIpOwogICAgICAgICAgICAgICAgICRlbWl0dGVk
SlNDYXN0ID0gMTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIGlmIChqcyR7aW50ZXJmYWNlTmFtZX0tPndyYXBwZWQoKS5pc0ZpcmluZ0V2ZW50TGlz
dGVuZXJzKCkpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChq
cyR7aW50ZXJmYWNlTmFtZX0tPndyYXBwZWQoKS5pc0ZpcmluZ0V2ZW50TGlzdGVuZXJzKCkpIHtc
biIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGlmIChVTkxJS0VM
WShyZWFzb24pKVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAg
ICAgICpyZWFzb24gPSBcIkV2ZW50VGFyZ2V0IGZpcmluZyBldmVudCBsaXN0ZW5lcnNcIjtcbiIp
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xu
Iik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKICAgICAgICAg
fQogICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZh
Y2UsICJOb2RlIikpIHsKICAgICAgICAgICAgIGlmICghJGVtaXR0ZWRKU0Nhc3QpIHsKICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvKiBqcyR7aW50ZXJmYWNlTmFt
ZX0gPSBqc0Nhc3Q8SlMke2ludGVyZmFjZU5hbWV9Kj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkp
O1xuIik7CiAgICAgICAgICAgICAgICAgJGVtaXR0ZWRKU0Nhc3QgPSAxOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKEpTTm9kZU93bmVyOjpp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhoYW5kbGUsIDAsIHZpc2l0b3IpKVxuIik7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoSlNOb2RlT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKGhhbmRsZSwgMCwgdmlzaXRvciwgcmVhc29uKSlcbiIpOwogICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAg
ICAgICAgIH0KICAgICAgICAgaWYgKEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGludGVyZmFjZSkp
IHsKQEAgLTQ1NzEsMzMgKzQ1OTUsNDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAg
ICAgICAgICAgIG15ICRyb290U3RyaW5nOwogICAgICAgICAgICAgaWYgKEdldEdlbmVyYXRlSXNS
ZWFjaGFibGUoJGludGVyZmFjZSkgZXEgIkltcGwiKSB7CiAgICAgICAgICAgICAgICAgJHJvb3RT
dHJpbmcgID0gIiAgICAke2ltcGxUeXBlfSogcm9vdCA9ICZqcyR7aW50ZXJmYWNlTmFtZX0tPndy
YXBwZWQoKTtcbiI7CisgICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICBpZiAoVU5M
SUtFTFkocmVhc29uKSlcbiI7CisgICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICAg
ICAgKnJlYXNvbiA9IFwiUmVhY2hhYmxlIGZyb20gJHtpbnRlcmZhY2VOYW1lfVwiO1xuIjsKICAg
ICAgICAgICAgIH0gZWxzaWYgKEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGludGVyZmFjZSkgZXEg
IkltcGxXZWJHTFJlbmRlcmluZ0NvbnRleHQiKSB7CiAgICAgICAgICAgICAgICAgJHJvb3RTdHJp
bmcgID0gIiAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiByb290ID0gV1RGOjpnZXRQdHIo
anMke2ludGVyZmFjZU5hbWV9LT53cmFwcGVkKCkuY29udGV4dCgpKTtcbiI7CisgICAgICAgICAg
ICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICBpZiAoVU5MSUtFTFkocmVhc29uKSlcbiI7CisgICAg
ICAgICAgICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICAgICAgKnJlYXNvbiA9IFwiUmVhY2hhYmxl
IGZyb20gJHtpbnRlcmZhY2VOYW1lfVwiO1xuIjsKICAgICAgICAgICAgIH0gZWxzaWYgKEdldEdl
bmVyYXRlSXNSZWFjaGFibGUoJGludGVyZmFjZSkgZXEgIkltcGxGcmFtZSIpIHsKICAgICAgICAg
ICAgICAgICAkcm9vdFN0cmluZyAgPSAiICAgIEZyYW1lKiByb290ID0gV1RGOjpnZXRQdHIoanMk
e2ludGVyZmFjZU5hbWV9LT53cmFwcGVkKCkuZnJhbWUoKSk7XG4iOwogICAgICAgICAgICAgICAg
ICRyb290U3RyaW5nIC49ICIgICAgaWYgKCFyb290KVxuIjsKICAgICAgICAgICAgICAgICAkcm9v
dFN0cmluZyAuPSAiICAgICAgICByZXR1cm4gZmFsc2U7XG4iOworICAgICAgICAgICAgICAgICRy
b290U3RyaW5nIC49ICIgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpXG4iOworICAgICAgICAgICAg
ICAgICRyb290U3RyaW5nIC49ICIgICAgICAgICpyZWFzb24gPSBcIlJlYWNoYWJsZSBmcm9tIEZy
YW1lXCI7XG4iOwogICAgICAgICAgICAgfSBlbHNpZiAoR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgk
aW50ZXJmYWNlKSBlcSAiSW1wbERvY3VtZW50IikgewogICAgICAgICAgICAgICAgICRyb290U3Ry
aW5nICA9ICIgICAgRG9jdW1lbnQqIHJvb3QgPSBXVEY6OmdldFB0cihqcyR7aW50ZXJmYWNlTmFt
ZX0tPndyYXBwZWQoKS5kb2N1bWVudCgpKTtcbiI7CiAgICAgICAgICAgICAgICAgJHJvb3RTdHJp
bmcgLj0gIiAgICBpZiAoIXJvb3QpXG4iOwogICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49
ICIgICAgICAgIHJldHVybiBmYWxzZTtcbiI7CisgICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcg
Lj0gIiAgICBpZiAoVU5MSUtFTFkocmVhc29uKSlcbiI7CisgICAgICAgICAgICAgICAgJHJvb3RT
dHJpbmcgLj0gIiAgICAgICAgKnJlYXNvbiA9IFwiUmVhY2hhYmxlIGZyb20gRG9jdW1lbnRcIjtc
biI7CiAgICAgICAgICAgICB9IGVsc2lmIChHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRpbnRlcmZh
Y2UpIGVxICJJbXBsRWxlbWVudFJvb3QiKSB7CiAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRl
c3siRWxlbWVudC5oIn0gPSAxOwogICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTTm9k
ZUN1c3RvbS5oIn0gPSAxOwogICAgICAgICAgICAgICAgICRyb290U3RyaW5nICA9ICIgICAgRWxl
bWVudCogZWxlbWVudCA9IFdURjo6Z2V0UHRyKGpzJHtpbnRlcmZhY2VOYW1lfS0+d3JhcHBlZCgp
LmVsZW1lbnQoKSk7XG4iOwogICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49ICIgICAgaWYg
KCFlbGVtZW50KVxuIjsKICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAuPSAiICAgICAgICBy
ZXR1cm4gZmFsc2U7XG4iOworICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49ICIgICAgaWYg
KFVOTElLRUxZKHJlYXNvbikpXG4iOworICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49ICIg
ICAgICAgICpyZWFzb24gPSBcIlJlYWNoYWJsZSBmcm9tICR7aW50ZXJmYWNlTmFtZX1Pd25lclwi
O1xuIjsKICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAuPSAiICAgIHZvaWQqIHJvb3QgPSBX
ZWJDb3JlOjpyb290KGVsZW1lbnQpO1xuIjsKICAgICAgICAgICAgIH0gZWxzaWYgKEdldEdlbmVy
YXRlSXNSZWFjaGFibGUoJGludGVyZmFjZSkgZXEgIkltcGxPd25lck5vZGVSb290IikgewogICAg
ICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkVsZW1lbnQuaCJ9ID0gMTsKICAgICAgICAgICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJKU05vZGVDdXN0b20uaCJ9ID0gMTsKICAgICAgICAgICAgICAg
ICAkcm9vdFN0cmluZyAgPSAiICAgIHZvaWQqIHJvb3QgPSBXZWJDb3JlOjpyb290KGpzJHtpbnRl
cmZhY2VOYW1lfS0+d3JhcHBlZCgpLm93bmVyTm9kZSgpKTtcbiI7CisgICAgICAgICAgICAgICAg
JHJvb3RTdHJpbmcgLj0gIiAgICBpZiAoVU5MSUtFTFkocmVhc29uKSlcbiI7CisgICAgICAgICAg
ICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICAgICAgKnJlYXNvbiA9IFwiUmVhY2hhYmxlIGZyb20g
JHtpbnRlcmZhY2VOYW1lfSBvd25lck5vZGVcIjtcbiI7CiAgICAgICAgICAgICB9IGVsc2lmIChH
ZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRpbnRlcmZhY2UpIGVxICJJbXBsU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCIpIHsKICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAgPSAiICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHJvb3QgPSBXVEY6OmdldFB0cihqcyR7aW50ZXJmYWNlTmFtZX0tPndy
YXBwZWQoKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpO1xuIjsKICAgICAgICAgICAgICAgICAk
cm9vdFN0cmluZyAuPSAiICAgIGlmICghcm9vdClcbiI7CiAgICAgICAgICAgICAgICAgJHJvb3RT
dHJpbmcgLj0gIiAgICAgICAgcmV0dXJuIGZhbHNlO1xuIjsKKyAgICAgICAgICAgICAgICAkcm9v
dFN0cmluZyAuPSAiICAgIGlmIChVTkxJS0VMWShyZWFzb24pKVxuIjsKKyAgICAgICAgICAgICAg
ICAkcm9vdFN0cmluZyAuPSAiICAgICAgICAqcmVhc29uID0gXCJSZWFjaGFibGUgZnJvbSBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0XCI7XG4iOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICAkcm9vdFN0cmluZyAgPSAiICAgIHZvaWQqIHJvb3QgPSBXZWJDb3JlOjpyb290KCZq
cyR7aW50ZXJmYWNlTmFtZX0tPndyYXBwZWQoKSk7XG4iOworICAgICAgICAgICAgICAgICRyb290
U3RyaW5nIC49ICIgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpXG4iOworICAgICAgICAgICAgICAg
ICRyb290U3RyaW5nIC49ICIgICAgICAgICpyZWFzb24gPSBcIlJlYWNoYWJsZSBmcm9tIGpzJHtp
bnRlcmZhY2VOYW1lfVwiO1xuIjsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICRyb290U3RyaW5nKTsKQEAgLTQ2MDcsNiArNDY0Nyw3IEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7XG4iKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTtcbiIpOworICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7XG4i
KTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBmYWxzZTtcbiIp
OwogICAgICAgICB9CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29u
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KaW5k
ZXggYTk5OTFjMjg0YmZkZmUxODA5ZTcwYmRkMzc4MWFhMDcwZmQxYzQyYi4uNzNmZTdhMjVmOWNk
MTlkY2FjN2UzNTc0M2ZlNmZmNWZmZmFlMjFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KQEAgLTExOCw2ICsxMTgsOSBAQAog
ICAgICAgICAiQ3VzdG9tR2V0dGVyIjogewogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6
IFsiYXR0cmlidXRlIl0KICAgICAgICAgfSwKKyAgICAgICAgIkN1c3RvbUhlYXBTbmFwc2hvdCI6
IHsKKyAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImludGVyZmFjZSJdCisgICAgICAg
IH0sCiAgICAgICAgICJDdXN0b21JbmRleGVkU2V0dGVyIjogewogICAgICAgICAgICAgImNvbnRl
eHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIl0KICAgICAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5hbWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTSW50ZXJmYWNlTmFtZS5j
cHAKaW5kZXggZDhjMTBhMmE5Yjg5YWYwOTBmOGZhMmVkZmQxMzRlNDFmMTY5ZDA2MC4uMWE4NzZm
ZDcxMzMwOGI5NDhiYTJjMzFmNzFmM2ZlZDlkMjE1NzY3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTSW50ZXJmYWNlTmFtZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTSW50ZXJmYWNlTmFtZS5j
cHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgi
CiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFw
c2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAj
aW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25z
Lmg+CkBAIC0xNjgsMTAgKzE2OSwxOCBAQCBzaXplX3QgSlNJbnRlcmZhY2VOYW1lOjplc3RpbWF0
ZWRTaXplKEpTQ2VsbCogY2VsbCwgVk0mIHZtKQogICAgIHJldHVybiBCYXNlOjplc3RpbWF0ZWRT
aXplKHRoaXNPYmplY3QsIHZtKSArIHRoaXNPYmplY3QtPndyYXBwZWQoKS5tZW1vcnlDb3N0KCk7
CiB9CiAKLWJvb2wgSlNJbnRlcmZhY2VOYW1lT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3Im
IHZpc2l0b3IpCit2b2lkIEpTSW50ZXJmYWNlTmFtZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2Vs
bCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0
ID0ganNDYXN0PEpTSW50ZXJmYWNlTmFtZSo+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBl
ZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgQmFzZTo6
aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTSW50ZXJmYWNlTmFtZU93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29u
KQogewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9y
KTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0ludGVy
ZmFjZU5hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0lu
dGVyZmFjZU5hbWUuaAppbmRleCA5ZGRiYmMzZThkZDhhNjkwM2JjNmZkMjNmZTk0ZDkzYThjNDM2
YmY0Li5jNjBhOTE3NzU4NmM2M2I4MDJiMjgzZTU4YTNjMGZhMDc4NGE2MDk0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1l
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTSW50ZXJm
YWNlTmFtZS5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU1Zh
bHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9y
Jik7CiAKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25h
cHNob3RCdWlsZGVyJik7CiBwcm90ZWN0ZWQ6CiAgICAgSlNJbnRlcmZhY2VOYW1lKEpTQzo6U3Ry
dWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8SW50ZXJmYWNlTmFtZT4mJik7CiAKQEAg
LTYwLDcgKzYxLDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU0ludGVyZmFjZU5hbWVPd25lciA6
IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29s
IGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZv
aWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFj
aGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29u
dGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lk
IGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
TWFwTGlrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNN
YXBMaWtlLmNwcAppbmRleCA3NjFiYmY0NmQ5YTZlNDE2MGI1NjcyMTRmYTk1NjI5NTg1N2I2NDll
Li5hZjk3YzI0NTgyN2RjYzg3OTkxZmJkZWViYmRhMGEzZWU5MDQ4NDI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmNwcApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvQnVpbHRpbk5hbWVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25h
cHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgog
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9u
cy5oPgpAQCAtMzM3LDEwICszMzgsMTggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZShFeGVjU3RhdGUqIHN0YXRlKQogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNNYXBMaWtlPjo6Y2FsbDxqc01hcExpa2VQcm90b3R5cGVGdW5j
dGlvbkRlbGV0ZUJvZHk+KCpzdGF0ZSwgImRlbGV0ZSIpOwogfQogCi1ib29sIEpTTWFwTGlrZU93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU01hcExpa2U6Omhl
YXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7
CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU01hcExpa2UqPihjZWxsKTsKKyAgICBi
dWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVk
KCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBK
U01hcExpa2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hh
cioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFS
QU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNNYXBMaWtlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNNYXBMaWtlLmgKaW5kZXggZDgwNDAyZDg0ZjZjY2M5OGU0ZWUyZDBmMWUyYzM5ODQyZWU4Nzhm
OS4uMjA2Y2QyZWYyM2Y1MWZmMjY2ZGQ5NDhmODZiMDEwNGI4NzA5YzIxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTTWFwTGlrZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExpa2UuaApAQCAt
NDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBn
ZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAg
IHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxk
ZXImKTsKIHByb3RlY3RlZDoKICAgICBKU01hcExpa2UoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUds
b2JhbE9iamVjdCYsIFJlZjxNYXBMaWtlPiYmKTsKIApAQCAtNTcsNyArNTgsNyBAQCBwcm90ZWN0
ZWQ6CiAKIGNsYXNzIEpTTWFwTGlrZU93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVy
IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRv
ciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29u
c3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtlLmNwcApp
bmRleCBjNTJkMTAxZjRiMDEwMGU3NzNmZTY3YjUyZDk2MTFhYzgzZTA2NTc5Li5lYjBmNTkzMDQ3
ZmZiYzk1ZmNmYTRlOGQ1MmZjNDlkMzgwYmZkYmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5TWFwTGlrZS5j
cHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0J1aWx0aW5OYW1lcy5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVh
cFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMu
aD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJh
dGlvbnMuaD4KQEAgLTI4NiwxMCArMjg3LDE4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goRXhlY1N0YXRlCiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5TWFwTGlrZT46OmNhbGw8anNSZWFkT25s
eU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5Pigqc3RhdGUsICJmb3JFYWNoIik7
CiB9CiAKLWJvb2wgSlNSZWFkT25seU1hcExpa2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRv
ciYgdmlzaXRvcikKK3ZvaWQgSlNSZWFkT25seU1hcExpa2U6OmhlYXBTbmFwc2hvdChKU0NlbGwq
IGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09i
amVjdCA9IGpzQ2FzdDxKU1JlYWRPbmx5TWFwTGlrZSo+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0
V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAg
QmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTUmVhZE9ubHlN
YXBMaWtlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIq
KiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFN
KHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTUmVhZE9ubHlNYXBMaWtlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNSZWFkT25seU1hcExpa2UuaAppbmRleCBlMmRjNzlmM2U0MzU1OGU5M2U1NmEzNTAz
NTA5MzIxZmZkMjViYjFkLi5iNmZiYjIwYmM3ZTcxY2ZjZDg1MThmNGU1NTA5Njc4Nzk1YTVlNGQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNS
ZWFkT25seU1hcExpa2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNSZWFkT25seU1hcExpa2UuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAg
fQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29u
c3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChK
U0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoKICAgICBKU1Jl
YWRPbmx5TWFwTGlrZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFJl
YWRPbmx5TWFwTGlrZT4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFz
cyBKU1JlYWRPbmx5TWFwTGlrZU93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsK
IHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYp
OworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3Qg
Y2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3Qu
Y3BwCmluZGV4IDdkNDkwN2QxNWZkMmRkYjZjN2JjMzg4N2IwZGY1Y2ZkNGQ4NGJmOGIuLjQ5ZjA1
N2VkZDJlMjcxNDk5MTVlZDM2OTNmZWJmYjg5ZWFmZjYwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3Rp
dmVET01PYmplY3QuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSlNET01XcmFwcGVy
Q2FjaGUuaCIKICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9G
dW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hv
dEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+
CkBAIC0yNDcsMTAgKzI0OCwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UoRQogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0QWN0aXZlRE9NT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RBY3RpdmVE
T01PYmplY3RQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdlQm9keT4oKnN0YXRlLCAicG9zdE1l
c3NhZ2UiKTsKIH0KIAotYm9vbCBKU1Rlc3RBY3RpdmVET01PYmplY3RPd25lcjo6aXNSZWFjaGFi
bGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQq
LCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpoZWFw
U25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQorewor
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Kj4oY2Vs
bCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVj
dC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9
CisKK2Jvb2wgSlNUZXN0QWN0aXZlRE9NT2JqZWN0T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0
b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhh
bmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFz
b24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5o
CmluZGV4IDBkZDgzM2Y3NDllMDUwYWMzZWQ4NWFmZmI1YmFlYmE2ZGJkMWViZTguLmYyMjQ2MzNl
YWQxODAxYjQ3MGRhMWJmMDViMjlmMDI0MzFmMmFiZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9N
T2JqZWN0LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBK
U0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFw
U25hcHNob3RCdWlsZGVyJik7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlIHwgQmFzZTo6U3RydWN0
dXJlRmxhZ3M7CiBwcm90ZWN0ZWQ6CkBAIC01OSw3ICs2MCw3IEBAIHByb3RlY3RlZDoKIAogY2xh
c3MgSlNUZXN0QWN0aXZlRE9NT2JqZWN0T3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3du
ZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNp
dG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBj
b25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnMuY3Bw
CmluZGV4IDgzNzQwYmY3OTUxMDdhZjQyYzAzNjE2OGQ2MTA3NWNkNTA0MzAyZmIuLjVhZmQ0YTc1
NjM2ZTQ5Y2RkZTRjYzExNzE4ODM0MGYyNWRlNDVjNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25z
LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAj
aW5jbHVkZSAiSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5oIgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGlu
ZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVw
YXJhdGlvbnMuaD4KQEAgLTQyNywxMCArNDI4LDE4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDRVJlYWN0aW9ucz46OmNhbGw8anNUZXN0
Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0aW9uc05vdE5lZWRl
ZEJvZHk+KCpzdGF0ZSwgIm1ldGhvZFdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCIpOwogfQogCi1i
b29sIEpTVGVzdENFUmVhY3Rpb25zT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCit2b2lkIEpTVGVzdENFUmVhY3Rpb25zOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBI
ZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8SlNUZXN0Q0VSZWFjdGlvbnMqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRP
YmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6Omhl
YXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RDRVJlYWN0aW9uc093
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29u
KQogewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9y
KTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
RVJlYWN0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdENFUmVhY3Rpb25zLmgKaW5kZXggZTdmODAxZmNkYzQ4MmViYzJmZmViYmE4ZmQzM2M0YTZm
OGY3YjRiYi4uOGFjOTljOWU4YTU0Mjg0ZTU0ZmQyODVhZWM5MGNkMzg1ZDkwNjBjMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVh
Y3Rpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdENFUmVhY3Rpb25zLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAogICAg
IHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwg
SlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0Q0VSZWFj
dGlvbnMoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0Q0VSZWFj
dGlvbnM+JiYpOwogCkBAIC01Nyw3ICs1OCw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0
Q0VSZWFjdGlvbnNPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6
Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7
CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZv
aWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5n
aWZpZXIuY3BwCmluZGV4IDhlZjIwZjM1MmU3MGNkNmJlYzI3NTM3OWU4YmM1YzZmZGQ3MDdkY2Yu
LmQwYWVkMTFlNWU1NThlZjgyMjcwNDA1Y2ZiZjZmNDVlYjg2OTY0ZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0
cmluZ2lmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNp
bmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRl
IDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMjU2LDEwICsyNTcsMTggQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyUHJvdG90
eXBlRnVuY3Rpb25Ub1N0cmkKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXI+OjpjYWxsPGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJQcm90b3R5
cGVGdW5jdGlvblRvU3RyaW5nQm9keT4oKnN0YXRlLCAidG9TdHJpbmciKTsKIH0KIAotYm9vbCBK
U1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3Im
IHZpc2l0b3IpCit2b2lkIEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXI6OmhlYXBTbmFwc2hv
dChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0
byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyKj4oY2Vs
bCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVj
dC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9
CisKK2Jvb2wgSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllck93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNs
b3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNFRF9Q
QVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFS
QU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VS
ZWFjdGlvbnNTdHJpbmdpZmllci5oCmluZGV4IDYzYjNlMTYzMTM5YTZkOGM2ZDY3ODdjYTVjODVl
MWIwMzAyZGFhNGMuLjA1YzFlZGIzZWI4ODczNDkxZDY4ZmNhNTcxZTJiOGU0ZDNkZDI1ZDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuaApAQCAtNDksNiArNDks
NyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1
Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2
b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHBy
b3RlY3RlZDoKICAgICBKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyKEpTQzo6U3RydWN0dXJl
KiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXI+JiYp
OwogCkBAIC01Nyw3ICs1OCw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0Q0VSZWFjdGlv
bnNTdHJpbmdpZmllck93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1Ymxp
YzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAg
IHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioq
KTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwg
dm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAKaW5kZXggMzMwYTJj
ZWM3ZTAzMWVjYWJmMzVlNjkyZjQzMzdmMmIxNTUxYTg1YS4uYzdlOGJlM2QyOTQ4OWY0MDcyYWQ2
NGY3ODY3MTRhZWFmNDMyMDQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcApAQCAtMzcsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAiSlNOb2Rl
LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtNTIwLDEwICs1MjEsMTggQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rp
b25UZXN0T3BlcmF0aW9uV2l0aEQKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENhbGxU
cmFjZXI+OjpjYWxsPGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRp
b25XaXRoRGVmYXVsdFZhcmlhbnRBcmd1bWVudEJvZHk+KCpzdGF0ZSwgInRlc3RPcGVyYXRpb25X
aXRoRGVmYXVsdFZhcmlhbnRBcmd1bWVudCIpOwogfQogCi1ib29sIEpTVGVzdENhbGxUcmFjZXJP
d25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
PiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0Q2FsbFRy
YWNlcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVp
bGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdENhbGxUcmFjZXIq
PihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlz
T2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVy
KTsKK30KKworYm9vbCBKU1Rlc3RDYWxsVHJhY2VyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0
b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhh
bmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFz
b24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmgKaW5kZXggZGQ3
NWExNzI1OGFhM2I4YjMzOWY2ODQ5ZTVmYmMxN2MzNDE5NTYwNy4uYzdiY2ExZjE5ZjEzZGJkYjll
ZTZjOTJkMzk3MWNiNTU5ZjFiYTQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5oCkBAIC00OSw2ICs0
OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0
cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGlj
IHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwog
cHJvdGVjdGVkOgogICAgIEpTVGVzdENhbGxUcmFjZXIoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUds
b2JhbE9iamVjdCYsIFJlZjxUZXN0Q2FsbFRyYWNlcj4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAg
cHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RDYWxsVHJhY2VyT3duZXIgOiBwdWJsaWMgSlNDOjpX
ZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBK
U0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xv
dFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhK
U0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCmluZGV4IGI4
YjMxMDFjOTliMTczZGNkMzU3NDY3MjQ3NTRhMTYwZjQzYTZlNGYuLjU4YzQ2MGU5Y2RiZjhjNTEy
ZDQ0OTNiMzBmNmFlMTNlYTUxNTE2OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENs
YXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1
ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAiVGVzdENsYXNzV2l0aEpTQnVpbHRp
bkNvbnN0cnVjdG9yQnVpbHRpbnMuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlv
blByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxk
ZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8
d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0x
NjAsMTAgKzE2MSwxOCBAQCBib29sIHNldEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVj
dG9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZAogICAgIHJldHVybiBwcm90
b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotYm9vbCBKU1Rlc3RDbGFzc1dpdGhKU0J1
aWx0aW5Db25zdHJ1Y3Rvck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQor
dm9pZCBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6aGVhcFNuYXBzaG90KEpT
Q2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yKj4o
Y2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09i
amVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7
Cit9CisKK2Jvb2wgSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JPd25lcjo6aXNS
ZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUs
IHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAg
ICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAg
VU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRo
SlNCdWlsdGluQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5oCmluZGV4IDA2MWIy
M2FmMjNkYWMwNjFiZGUxNmY1MDk4MjQwNjEzMzY1MTJhNzkuLjE2NmVlNzNiMGZjOGY4M2NhNjVm
OGRkMzRmMjNjMGNkYjI3YmI3M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dp
dGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9
CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25z
dCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpT
Q2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAgIEpTVGVz
dENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9i
YWxPYmplY3QmLCBSZWY8VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yPiYmKTsKIApA
QCAtNTcsNyArNTgsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdENsYXNzV2l0aEpTQnVp
bHRpbkNvbnN0cnVjdG9yT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVi
bGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7Cisg
ICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFy
KiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFj
ZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuY3BwCmluZGV4IDg0Zjhk
ZjIwOWUxMTVjZTgzZDg4NDUzMjM5ZjMyMTc4NjZmOGI5NTguLmJlMjU3Y2EzMWE1ZTNhNTVmNjY2
ZjJlNjAyMzFkNjg2YjA4YjMwMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcApAQCAtMjYsNiAr
MjYsNyBAQAogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJK
U0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJv
dG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYv
R2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTE1OCwx
MCArMTU5LDE4IEBAIGJvb2wgc2V0SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZh
Y2VPYmplY3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlCiAgICAgcmV0dXJuIHByb3RvdHlw
ZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1ib29sIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9y
V2l0aE5vSW50ZXJmYWNlT2JqZWN0T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCit2b2lkIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Ojpo
ZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQor
eworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JX
aXRoTm9JbnRlcmZhY2VPYmplY3QqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmpl
Y3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBT
bmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RDdXN0b21Db25zdHJ1Y3Rv
cldpdGhOb0ludGVyZmFjZU9iamVjdE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhK
U0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNp
dG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwog
ICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1
c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmgKaW5kZXggZDNiMmIwNTIxMWNh
NDgyMTM2ODM5ZjZmMzZmNTA2ODY4NzQ0NmUxZC4uNGNkZTJlOWJkMDJmMzg1YjY1NjJhNjQ1NzQx
MDUzNzZmNjUwMzQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3Rv
bUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmgKQEAgLTQ4LDYgKzQ4LDcgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7CiAgICAgfQogCisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpT
Q2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAgIEpTVGVz
dEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0KEpTQzo6U3RydWN0dXJlKiwg
SlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJm
YWNlT2JqZWN0PiYmKTsKIApAQCAtNTYsNyArNTcsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpT
VGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0T3duZXIgOiBwdWJsaWMg
SlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpT
Qzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6
ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01K
SVQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERP
TUpJVC5jcHAKaW5kZXggOTM4NzJhNmEwMWQ3ZGVlYmY4ZGIzNzU0OWNiYmQwZjA4ODM0OWU5Yy4u
ZDRhMTg1YzYwMGE5NDBjYmYyMTBkM2M4M2U5ZmZhMzcxYTM1OGY5OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5j
cHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJKU0VsZW1lbnQuaCIKICNpbmNsdWRlICJK
U05vZGVMaXN0LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnJhbWVUcmFjZXJzLmg+Cisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTEyNTgsNSArMTI1OSwxMiBA
QCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gdW5zYWZlSnNUZXN0RE9NSklUUHJv
dG90eXBlRnVuY3Rpb25HZXRFbGVtZW50cwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9K
UzxJRExJbnRlcmZhY2U8Tm9kZUxpc3Q+Pigqc3RhdGUsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmpl
Y3QoKSwgaW1wbC5nZXRFbGVtZW50c0J5TmFtZShXVEZNb3ZlKGVsZW1lbnROYW1lKSkpKTsKIH0K
IAordm9pZCBKU1Rlc3RET01KSVQ6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFw
c2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxK
U1Rlc3RET01KSVQqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxs
KGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChj
ZWxsLCBidWlsZGVyKTsKK30KKwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklULmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklULmgKaW5kZXggMGI3ODFlNjJlM2JlMmYy
MWIzODkxNzBkYWRmMmVjZDMxZWYwMWUyMC4uMzVmYjEyNmVjNGM2ZTlhNTE4ZjhjOGY0MTk3MjAx
NmQ0ODQxMzBlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdERPTUpJVC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RET01KSVQuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAg
fQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29u
c3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChK
U0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKICAgICBUZXN0RE9NSklUJiB3cmFw
cGVkKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUZXN0RE9NSklU
Jj4oQmFzZTo6d3JhcHBlZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcApp
bmRleCBkOTk5MDMyZWYyZTdhMmMzMTE0OGMxODdhOWM5NWE3ZGU5YThiODI2Li43ZmQwYzEyOGQ3
YzUxMGE0MzI5ZDM0MGNiNzE2OTVhNmQ1N2UxM2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRC
eVNldHRpbmcuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNp
bmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
RnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNo
b3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5o
PgpAQCAtMjk0LDEwICsyOTUsMTggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkQnlTZXQKIAogI2VuZGlm
CiAKLWJvb2wgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNp
dG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nOjpoZWFwU25hcHNob3Qo
SlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8q
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZyo+KGNlbGwpOworICAg
IGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBw
ZWQoKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29s
IEpTVGVzdEVuYWJsZWRCeVNldHRpbmdPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlz
aXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsK
ICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuaAppbmRl
eCA5ZmYzNzA1MWUwYTExNWY2YjgxNmRkNjIyN2ExZTM0MDlmZTgzYWNlLi5jYTFlYmI2M2VlYTc4
NDg4MjIzM2FlNWE2NWU0NzAyNjBmOWNmMmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0
aW5nLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6
OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25h
cHNob3RCdWlsZGVyJik7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlIHwgQmFzZTo6U3RydWN0dXJl
RmxhZ3M7CiBwcm90ZWN0ZWQ6CkBAIC01OSw3ICs2MCw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3Mg
SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ093bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVy
IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRv
ciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29u
c3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggOGYxZjliNGZjOTQ1NDI0OGQ3OTFmZjlkMDdmYTM1OTVhMDUyZDdjZC4u
MDk5MTk0MWM0MDljOTI5NGNjZDU4Yjc5MDhkYWE1MDViOTkzYjZhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudENvbnN0cnVjdG9yLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkpTRE9N
Q29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAj
aW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9I
ZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5l
cy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBh
cmF0aW9ucy5oPgpAQCAtMzAzLDYgKzMwNCwxMyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVu
dENvbnN0cnVjdG9yQXR0cjMoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpcwog
CiAjZW5kaWYKIAordm9pZCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yOjpoZWFwU25hcHNob3QoSlND
ZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcio+KGNlbGwpOworICAgIGJ1
aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQo
KSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCiAjaWYgRU5B
QkxFKEJJTkRJTkdfSU5URUdSSVRZKQogI2lmIFBMQVRGT1JNKFdJTikKICNwcmFnbWEgd2Fybmlu
ZyhkaXNhYmxlOiA0NDgzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmgKaW5kZXggZTEw
NGNlZGQ3Zjk4MThhY2VlMTk5MGYwYTcwYjRhNzgxN2Q2ZmI0My4uOTc1NTM2MGUyNmE4YzE3NDhl
ZjhkZTBhOTVjYTFmMGRjNzg1ODgzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5o
CkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1Zh
bHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90
QnVpbGRlciYpOwogICAgIFRlc3RFdmVudENvbnN0cnVjdG9yJiB3cmFwcGVkKCkgY29uc3QKICAg
ICB7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUZXN0RXZlbnRDb25zdHJ1Y3RvciY+KEJh
c2U6OndyYXBwZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAppbmRleCAxN2YzZDAzZjBi
ZDRhNzcwZjFlOWU4NjI5OWEwNTFlZmMwOGQ0MWVjLi5hMmNkYjY5YjQ1M2U0NDMyNzcyODgzMzNm
MDEzN2Y2MzQwMWJkYThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBl
ckNhY2hlLmgiCiAjaW5jbHVkZSAiSlNOb2RlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGlu
ZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9wZXJ0eU5hbWVBcnJheS5oPgogI2lu
Y2x1ZGUgPHd0Zi9HZXRQdHIuaD4KQEAgLTI0Niw2ICsyNDcsMTMgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uSXRlbShFeGVj
U3RhdGUqIHMKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEV2ZW50VGFyZ2V0Pjo6Y2Fs
bDxqc1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uSXRlbUJvZHk+KCpzdGF0ZSwgIml0
ZW0iKTsKIH0KIAordm9pZCBKU1Rlc3RFdmVudFRhcmdldDo6aGVhcFNuYXBzaG90KEpTQ2VsbCog
Y2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRX
cmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBC
YXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKICNpZiBFTkFCTEUoQklORElO
R19JTlRFR1JJVFkpCiAjaWYgUExBVEZPUk0oV0lOKQogI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6
IDQ0ODMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCmluZGV4IDlhYzIyMjAwZDg4YjM5ZTA0MjU2ZjI0
NDc5YzVmNzc3ZjE4ZWViZGEuLmViODYzOTU1ZTVjNDlmZjk5YTA0NTEwNTBmNzRkNDZmMTEyNDk5
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFdmVudFRhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCkBAIC01Myw2ICs1Myw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBj
b25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90
KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogICAgIFRlc3RFdmVudFRhcmdl
dCYgd3JhcHBlZCgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGVz
dEV2ZW50VGFyZ2V0Jj4oQmFzZTo6d3JhcHBlZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKaW5k
ZXggMzQ4MTkwZTkzYjFmZDU4Y2FjMGRiYjVlNTBhNjA2MWFiNjM1MWMxNi4uNTMyZjJlOTJkMGE4
OTg5YWM4OGI1ZWIwYTc5NmZiZTA5ZmEzMjBiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKQEAg
LTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5j
dGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1
aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVk
ZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBA
IC0xNzcsMTAgKzE3OCwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25OYW1lKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUAogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0RXhjZXB0aW9uPjo6Z2V0PGpzVGVzdEV4Y2VwdGlvbk5hbWVHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpzdGF0ZSwgdGhpc1ZhbHVlLCAi
bmFtZSIpOwogfQogCi1ib29sIEpTVGVzdEV4Y2VwdGlvbk93bmVyOjppc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RFeGNlcHRpb246OmhlYXBTbmFwc2hvdChKU0Nl
bGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RFeGNlcHRpb24qPihjZWxsKTsKKyAgICBidWlsZGVyLnNl
dFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAg
IEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RFeGNl
cHRpb25Pd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioq
IHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0o
dmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RXhjZXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXhjZXB0aW9uLmgKaW5kZXggNTljOGQ0YzJhZjdkMTlhNjE5NzJiYjdiMWM1OTE3
NWJjYjhjOTcxNS4uYWIyNWRlNzUwMzgyOTc4YTAwYzVlMDk0Yjg0NjNiNWQ3MzFmN2RhMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4
Y2VwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFeGNlcHRpb24uaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
c3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpK
U0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBK
U0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RFeGNlcHRp
b24oSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0RXhjZXB0aW9u
PiYmKTsKIApAQCAtNTgsNyArNTksNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdEV4Y2Vw
dGlvbk93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2
aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwg
Ym9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2
aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29u
dGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKaW5k
ZXggNzA4ZWY2NmQ2OTEyMGI5OTc4ZGNjOTk4NDU0ZDBjNDMyZGNjMjUyNS4uOGY4MDZhNGEwMmI3
MDJlZDgyOTJlNjA3NDUzMWNkM2MzM2M4ODkzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkpTRE9NV3JhcHBl
ckNhY2hlLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pT
Q0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50
ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTE4MywxMCArMTg0LDE5IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVBU2VjcmV0QXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUs
IEVuY29kCiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
Pjo6Z2V0PGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVBU2VjcmV0QXR0cmlidXRlR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigqc3RhdGUsIHRoaXNWYWx1ZSwgImFTZWNy
ZXRBdHRyaWJ1dGUiKTsKIH0KIAotYm9vbCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlT3duZXI6
OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFu
ZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGU6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXIm
IGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2Vs
bChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3Qo
Y2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZU93bmVy
Ojppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhh
bmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQog
ewogICAgIGF1dG8qIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUgPSBqc0Nhc3Q8SlNUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICBUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZSogcm9vdCA9ICZqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLT53cmFw
cGVkKCk7CisgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICpyZWFzb24gPSAiUmVh
Y2hhYmxlIGZyb20gVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUiOwogICAgIHJldHVybiB2aXNpdG9y
LmNvbnRhaW5zT3BhcXVlUm9vdChyb290KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlLmgKaW5kZXggYzc4OGNlMWNjYjdhNjNhY2E4YWRmNGIzMDRhNmM0YjZkYzg2YTkz
Ny4uMDA2NTAyMzUwMWQzZTgzNjg0ODJjYjhlYTZhOGI3YjJkZDg4MmU5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBj
b25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90
KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAgIEpT
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGUoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVj
dCYsIFJlZjxUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZT4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAg
cHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlT3duZXIgOiBwdWJs
aWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1Jl
YWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBj
b250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQs
IEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5h
bGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RH
bG9iYWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEdsb2JhbE9iamVjdC5jcHAKaW5kZXggNTYxZDUxNDcxYmRlZjM3M2YyZWYxYTZmODNm
NjE4MzIwNjA3YjQ3Ni4uYjkzODk3OTlkMzViYjhkZThhM2FjNGIyYTExZGU5YjQ4YjNmNzQ1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRl
ICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0
YS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTU2OCwxMCArNTY5LDE4IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5j
dGlvblRlc3RGZWF0dXJlR2V0U2VjCiAKICNlbmRpZgogCi1ib29sIEpTVGVzdEdsb2JhbE9iamVj
dE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RHbG9i
YWxPYmplY3Q6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXIm
IGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RHbG9iYWxP
YmplY3QqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGws
ICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBi
dWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RHbG9iYWxPYmplY3RPd25lcjo6aXNSZWFjaGFibGVG
cm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBT
bG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURf
UEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BB
UkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0
LmgKaW5kZXggZmUyNjFmNWFlMTBhNmQwNWQ4NTgzNWM5MzYwM2YxZDRmZGUzMjI4MS4uN2ZkNDg3
NTBjMWRmNGNjMjc1YWE1NmRlZTdhNDIzOTA2MTQ4NTQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmpl
Y3QuaApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6
SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVj
dCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFw
c2hvdEJ1aWxkZXImKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGUgfCBCYXNlOjpTdHJ1Y3R1cmVG
bGFnczsKIHByb3RlY3RlZDoKQEAgLTYxLDcgKzYyLDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBK
U1Rlc3RHbG9iYWxPYmplY3RPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBw
dWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNo
YXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXIuY3BwCmluZGV4IGVmZDE4YzliNjA5OGNiZDgyNWY0MjA4ZGQyMDY0
ZWZlMDdjYWRlZjUuLmNlYmY4Y2M3ZjlkNDU4MjJlNTBhM2JmOTgzOGViZWJiNWNiZTNhNDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKQEAg
LTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUg
IlVSTC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+Cisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Q
cm9wZXJ0eU5hbWVBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KQEAgLTI0NiwxMCAr
MjQ3LDE4IEBAIGJvb2wgc2V0SlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1ib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0
SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVh
cFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganND
YXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIqPihjZWxsKTsKKyAgICBidWlsZGVy
LnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwor
ICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZp
c2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7
CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwog
ICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyLmgKaW5kZXggODY2YzQxNTk1M2EwZThhM2NkZTI4Yzk0NjZlY2IyYmZhMGU4
YmVhMC4uYjdhYTk5OGM4NjhiYjZkZGE0NmFlMzAwYWNmZGZhNTM0ZmIxOWM0ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5oCkBAIC01NSw2ICs1NSw3
IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVj
dG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZv
aWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHVi
bGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6SW50
ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8
IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9w
ZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiBwcm90ZWN0ZWQ6CkBAIC02NSw3ICs2
Niw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmll
ck93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0
dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9v
bCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2
b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0
dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4
dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb24uY3BwCmluZGV4IDAxMTllNmJlYTdhOTM3ZDVhMjYxNWE5MmY5NWM3MWVlODQ4
ZTdmODIuLmU4ODdlOWIwZTJkNTdhYWM2MThlMzlhMzFlMDZkZjRhMjViNTEwN2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3Bw
CkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNs
dWRlICJVUkwuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5o
PgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CkBAIC0yNDYs
MTAgKzI0NywxOCBAQCBib29sIHNldEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZQogICAgIHJldHVybiBwcm90b3R5
cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb25Pd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3Zv
aWQgSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpoZWFwU25hcHNob3QoSlND
ZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uKj4o
Y2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09i
amVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7
Cit9CisKK2Jvb2wgSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uT3duZXI6Omlz
UmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxl
LCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAg
ICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAg
IFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oCmluZGV4IDA4
OGM0YmJmMDNkODhmNjJiZTYwZmY1NjkxYzJkZDQ5Y2NlZTNjM2MuLjI5YWQyYmU2N2MxNTdjOWJi
YzUzOTEwNTRkYzVkNDY1NTg4Zjc2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgog
ICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYs
IGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNo
b3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpJbnRlcmNlcHRzR2V0T3du
UHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBC
YXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHByb3RlY3RlZDoKQEAgLTY1LDcgKzY2LDcgQEAgcHJvdGVj
dGVkOgogCiBjbGFzcyBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Pd25lciA6
IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29s
IGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZv
aWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFj
aGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29u
dGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lk
IGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNw
cAppbmRleCA4YzI5NzRlOGVkYjQ0OGVhYzZmOTc4OTJiOGU3NWY0N2JhNDQzNGZlLi4xYmFjNTAx
MDk5M2JhOWJjODBkNTQ2MjY1NzY4YzllN2FhY2UyOGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Byb3BlcnR5TmFtZUFycmF5
Lmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgpAQCAtMjc4LDEwICsyNzksMTggQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQ
cm90b3R5cGVGdW5jdGlvbkkKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllcj46OmNhbGw8anNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyQm9keT4oKnN0YXRlLCAiaW5kZXhlZFNl
dHRlciIpOwogfQogCi1ib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllck93bmVy
Ojppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhh
bmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hv
dEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rl
c3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdy
YXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJh
c2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRv
ciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAg
ICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyLmgKaW5kZXggODNlYmY1Mjk5ZTk4ZWY5NGY3ZjlmZDhjNGNmNzE5MTQ4MWNj
MjhkMC4uMDQwZGZhYWFlMGM1NDU1NWMyNWEwMDRmZTdmOTFmMjhiNDkwYTEyNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuaApAQCAtNTUsNiAr
NTUsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25z
dHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRp
YyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsK
IHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6
OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFpl
cm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0
UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgpAQCAtNjUs
NyArNjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllck93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1
YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCog
Y29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCmluZGV4IGI3ZGVlMWE4ZWFmYTRk
OTRjOWExODg5OGZlMTI5NDcwMjRjNWUyMDIuLmMzNDNmZjhlM2NkNDYzNzE4OTM0OGEyZmViYjRi
YWE4MGZmYTQxMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAj
aW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJUZXN0U3VwcGxlbWVudGFs
LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtOTg0LDEyICs5ODUsMjMgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckZ1bmN0
aW9uU3VwcGxlbWVudGFsTWV0aG8KIAogI2VuZGlmCiAKLWJvb2wgSlNUZXN0SW50ZXJmYWNlT3du
ZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4g
aGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdEludGVyZmFj
ZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRl
cikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEludGVyZmFjZSo+KGNl
bGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmpl
Y3QtPndyYXBwZWQoKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwor
fQorCitib29sIEpTVGVzdEludGVyZmFjZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2
aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIGF1dG8qIGpzVGVzdEludGVyZmFj
ZSA9IGpzQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7Ci0g
ICAgaWYgKGpzVGVzdEludGVyZmFjZS0+d3JhcHBlZCgpLmhhc1BlbmRpbmdBY3Rpdml0eSgpKQor
ICAgIGlmIChqc1Rlc3RJbnRlcmZhY2UtPndyYXBwZWQoKS5oYXNQZW5kaW5nQWN0aXZpdHkoKSkg
eworICAgICAgICBpZiAoVU5MSUtFTFkocmVhc29uKSkKKyAgICAgICAgICAgICpyZWFzb24gPSAi
QWN0aXZlRE9NT2JqZWN0IHdpdGggcGVuZGluZyBhY3Rpdml0eSI7CiAgICAgICAgIHJldHVybiB0
cnVlOworICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJB
TShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCmluZGV4
IGJlOTRkYzVjM2I2YzE4OTliODU0ZTY3OTdmODM4ZTMxYjIyMWMxOWEuLmE1NWE0ZTFhZWE0MjZk
ZTE2YTdiOGFjYjIyNzYxNjljOGQ0YjVjYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKQEAgLTUzLDYg
KzUzLDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29u
c3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0
aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7
CiAKICAgICAvLyBDdXN0b20gYXR0cmlidXRlcwogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwg
RU5BQkxFKENvbmRpdGlvbjIzKQpAQCAtODMsNyArODQsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNz
IEpTVGVzdEludGVyZmFjZU93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1
YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOwor
ICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hh
cioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
Piwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFj
ZUxlYWRpbmdVbmRlcnNjb3JlLmNwcAppbmRleCAxMWE3OGQ3OTQzYWNlMTRjNThjOThjN2YwNWEy
YWIxMjAwNTZmYmI3Li5iOWJhZGI5ZDIyNGEyM2Y0NzA3ZDgyM2RkMTU0NWZlZjg4MGFkMDRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5jcHAK
QEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAj
aW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9G
dW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hv
dEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+
CkBAIC0xNzcsMTAgKzE3OCwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VMZWFk
aW5nVW5kZXJzY29yZVJlYWRvbmx5KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZQogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmU+OjpnZXQ8anNU
ZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVSZWFkb25seUdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKnN0YXRlLCB0aGlzVmFsdWUsICJyZWFkb25seSIpOwogfQog
Ci1ib29sIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlT3duZXI6OmlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNj
b3JlOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWls
ZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW50ZXJmYWNlTGVh
ZGluZ1VuZGVyc2NvcmUqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JD
ZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hv
dChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiog
cmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2
aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmgKaW5k
ZXggY2QyMDZjYTMxYjAwMzAwMDE1NmFlY2U2ZDg5MTM5NThjMzMyNWNiMy4uNGNjOGQ4YzcyOGNk
ZDg5ODkzNGMyZTBhNWNjZjhjMjExYmExNzZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3Jl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
dGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAg
IH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNv
bnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3Qo
SlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwcm90ZWN0ZWQ6CiAgICAgSlNU
ZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2Jh
bE9iamVjdCYsIFJlZjxUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmU+JiYpOwogCkBAIC01
Nyw3ICs1OCw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1Vu
ZGVyc2NvcmVPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0g
ICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAg
ICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQq
IGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHAKaW5kZXggNzhjM2ZmOTIxNzkxZDE1
YmYwMGFkMWZmYTRmMGFjODEwMWJlYjAwOC4uMWQxMGY5ZjAzZjY4NjRjZGIzN2NiODA1ZGEwY2E0
MDdhNGFmMTJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9CdWls
dGluTmFtZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5o
PgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0yMzAsMTAgKzIzMSwx
OCBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SXRlcmFibGVQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2goSlNDOjpFeAogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0SXRlcmFibGU+OjpjYWxsPGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNo
Q2FsbGVyPigqc3RhdGUsICJmb3JFYWNoIik7CiB9CiAKLWJvb2wgSlNUZXN0SXRlcmFibGVPd25l
cjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBo
YW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0SXRlcmFibGU6
OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIp
Cit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJdGVyYWJsZSo+KGNlbGwp
OworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3Qt
PndyYXBwZWQoKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQor
Citib29sIEpTVGVzdEl0ZXJhYmxlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAg
ICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAg
IHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuaAppbmRleCA0NjMwZDdlMjg2YTA3ODFl
NTZlMTIxNjgxNmM3YWUwMTE0MzZjZWMxLi42NDg5ZjI2MTAwYzdjZjY3ZWQ1OGM4YTM2ZTI5YTU0
MGRlOWEwMDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SXRlcmFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAg
ICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwg
Y29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hv
dChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoKICAgICBK
U1Rlc3RJdGVyYWJsZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRl
c3RJdGVyYWJsZT4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBK
U1Rlc3RJdGVyYWJsZU93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1Ymxp
YzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAg
IHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioq
KTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwg
dm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5jcHAKaW5kZXggZTBkODM4OThjYzk5MjVkNDM5YTY2MjRhOTM0N2Q1MGQ5NWE3ODcz
NS4uODQ1MTI4N2Q5MjJkNzBkMzM4MzE3YjA5OThkODBiYzE3ZDc5MzI0MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUu
aD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMTg2LDEwICsxODcs
MTggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyUHJvdG90eXBlRnVuY3Rpb25NZXRob2QKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+OjpjYWxsPGpzVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXJQcm90b3R5cGVGdW5jdGlvbk1ldGhvZEJvZHk+KCpzdGF0ZSwgIm1ldGhvZCIpOwogfQog
Ci1ib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJPd25lcjo6aXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90
VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6aGVh
cFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sK
KyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0
aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWls
ZGVyKTsKK30KKworYm9vbCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyT3duZXI6OmlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2
b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAg
VU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVO
VVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKaW5kZXggZDM0YmJkZTU3NjczMmU0M2Y0YjY2
MzNmYzc3MTFiOTEwNWFkZjM2MS4uZDAzNzVlM2FmNzdmZWIxMzNkNzRkNDhlMjFkODRkYTI5ZjE1
ZTlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCkBAIC00
OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdl
dENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAg
c3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRl
ciYpOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIoSlNDOjpT
dHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcj4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIg
ewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhK
U0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9y
Jik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25z
dCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKaW5kZXggMTdjZjdlNTAz
NGQyMjYyYjU4MGYzMDI1MDgzYmQyZTIxMjBhYWI4MS4uNmRjNzkxMjcxMjdjMDM2Y2MyZWE0NTk5
ZjI2Yjg3MTgwNGFlY2FlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNs
dWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lu
bGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9wZXJ0eU5hbWVBcnJheS5oPgog
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KQEAgLTMxMiwxMCArMzEzLDE4IEBAIGJvb2wgc2V0SlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwog
fQogCi1ib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllck93bmVyOjpp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRs
ZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFw
c2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIqPihjZWxsKTsKKyAgICBidWls
ZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkp
OworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90
VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFS
QU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFN
KHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmgKaW5kZXggMmI4MmIwOTI3
ZWVjMTE5NGY2MTE1MTM2YWYwZTQ5YWY5ZTc1NDdhOC4uMTAzOTBkOTcyNjI2YTk0NGIzOTEwMDcw
YmQ0YTE2YmNhZDIxM2MxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuaApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6CiAg
ICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwg
Y29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hv
dChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHB1YmxpYzoKICAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6OkdldE93blByb3BlcnR5U2xv
dElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVy
dHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRP
d25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpT
dHJ1Y3R1cmVGbGFnczsKIHByb3RlY3RlZDoKQEAgLTY1LDcgKzY2LDcgQEAgcHJvdGVjdGVkOgog
CiBjbGFzcyBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJPd25lciA6IHB1
YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlz
UmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQq
IGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFi
bGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4
dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZp
bmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbi5jcHAKaW5kZXggZDNjMzI0YTJkMGI5MGY2YWE3OTc4YzM5Mjc1OTU1
YTJhMmFhYzNlZC4uYjFhYWY5NTNlNGUwMDU3MTEwMzA1MGQ5NGQyOTAxNjJlZmNkZTg4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb24uY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSlNET01X
cmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFw
c2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlIDx3
dGYvR2V0UHRyLmg+CkBAIC0zMTIsMTAgKzMxMywxOCBAQCBib29sIHNldEpTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0
ZQogICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotYm9vbCBK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbk93bmVyOjppc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9p
ZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBz
aG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uKj4oY2VsbCk7CisgICAg
YnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBl
ZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wg
SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Pd25lcjo6aXNSZWFj
aGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZv
aWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBV
TlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5V
U0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bi5oCmluZGV4IDNjZGI2ZGM3Y2YwYWYzNzdkZWVjMTFmMGRkY2U4ZTIyMDJkNDgwNDIuLjFiZmQ3
NGM0ODZjZmUyMTc0OTBlMzFmMWU3MzZmZjRiYTEyYTQ0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5o
CkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1Zh
bHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90
QnVpbGRlciYpOwogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2Ug
fCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJ
c05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJp
ZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgpA
QCAtNjUsNyArNjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3du
ZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNp
dG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBj
b25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCmluZGV4IDk5
NTc0YjIwNTQ3YTMwMWYzYjI3NDI0OWJiMzEyYjliZjViYmU5YjcuLmQzMzc3MGUzNjYxOWMyZWI0
Njc3MzZjMjU4NWIwMzhjZjVjNzJkNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcApAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Byb3BlcnR5TmFt
ZUFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgpAQCAtMzY2LDEwICszNjcsMTggQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllclByb3RvdHlwZUYKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyPjo6Y2FsbDxqc1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlckJv
ZHk+KCpzdGF0ZSwgImluZGV4ZWRTZXR0ZXIiKTsKIH0KIAotYm9vbCBKU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQordm9pZCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6
aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikK
K3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0
Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25h
cHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwg
Y29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBV
TlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5oCmluZGV4IGRkY2I2NTVkYTliOTBiMjM1MDE1NmVh
MDI5MmYwMzk4YTlmMjI5M2MuLjdlODhjZjRkNDFkNzI1ZDQwYjlmZjlkMTk1MWZlZjUxYjE4ODcy
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllci5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAg
ICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6
OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCos
IEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVG
b3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5
U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZs
YWdzOwogcHJvdGVjdGVkOgpAQCAtNjUsNyArNjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyT3duZXIgOiBwdWJsaWMgSlND
OjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0
LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9w
YXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6
U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShK
U0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAppbmRleCBlM2NlNDIxOTE3MzM5NzJlMDJiY2Y2NDA0
Y2NlNmYzOWZjZDU2NjNkLi4wODNhZjYyMzhmNmE1OTc3NGRiMThiNDMxMGI5YTIzNjFjNzk5NWNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiSlNET01OYW1lZENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiSlNET01XcmFw
cGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5o
PgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0xOTcsMTIgKzE5OCwy
MyBAQCBib29sIHNldEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVgogICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERp
cmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkVmFsdWUpKTsKIH0KIAotYm9vbCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yT3duZXI6Omlz
UmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxl
LCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdE5hbWVkQ29uc3RydWN0
b3I6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxk
ZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZENvbnN0cnVj
dG9yKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAm
dGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVp
bGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck93bmVyOjppc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCos
IFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIGF1dG8q
IGpzVGVzdE5hbWVkQ29uc3RydWN0b3IgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcio+
KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKLSAgICBpZiAoanNUZXN0TmFtZWRDb25zdHJ1Y3Rv
ci0+d3JhcHBlZCgpLmhhc1BlbmRpbmdBY3Rpdml0eSgpKQorICAgIGlmIChqc1Rlc3ROYW1lZENv
bnN0cnVjdG9yLT53cmFwcGVkKCkuaGFzUGVuZGluZ0FjdGl2aXR5KCkpIHsKKyAgICAgICAgaWYg
KFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICAgICAqcmVhc29uID0gIkFjdGl2ZURPTU9iamVj
dCB3aXRoIHBlbmRpbmcgYWN0aXZpdHkiOwogICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgfQog
ICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCmluZGV4
IDU3MzJiYzBlNDQ3ZGUxODBiZjA4MDBiYTJmMjMzMjlkZjk3ZTI2YmUuLjI1YzUxYmQ3YWYzZmJm
OGFhNjQzNGJlZDZjNTMzZWNkZmQzMGIyYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0
b3IuaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVl
IGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAg
ICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXROYW1lZENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBKU0M6
OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCos
IEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE5hbWVk
Q29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0
TmFtZWRDb25zdHJ1Y3Rvcj4mJik7CiAKQEAgLTU4LDcgKzU5LDcgQEAgcHJvdGVjdGVkOgogCiBj
bGFzcyBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxl
T3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RW
aXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3Im
LCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50
aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKaW5kZXggNTI0YTYwMzQ4ZTI5OThhNGNhZTdh
NzA0OGE2MGE3NThlMTZmMjNhYS4uMTk1NmU4M2Y3NDVkY2ZkYTQ3NmQ4OWUzYzdmNTNkYzgwNTQz
MDMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5j
cHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgi
CiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFw
c2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAj
aW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25z
Lmg+CkBAIC0yMjUsMTAgKzIyNiwxOCBAQCBib29sIHNldEpTVGVzdE5hbWVkRGVsZXRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbAogICAgIHJl
dHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0
b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotYm9vbCBKU1Rlc3ROYW1l
ZERlbGV0ZXJOb0lkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRv
cikKK3ZvaWQgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyOjpoZWFwU25hcHNob3QoSlND
ZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyKj4oY2VsbCk7
CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+
d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisK
K2Jvb2wgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BB
UkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJB
TShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRp
Zmllci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkRGVsZXRlck5vSWRlbnRpZmllci5oCmluZGV4IGZjOTNlODAyYTAxMWVkMDQ5MmVlZmZmYzIz
YWJkMWI0ZjBjMzRjMmQuLjI0NzlmNGY4YzhiMWRjNTQ3OWRiMTA5M2M3Mjk3MTA1YzVhNWI0OTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmgKQEAgLTU0
LDYgKzU0LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0
Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBz
dGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVy
Jik7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
SlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6
SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVy
byB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQ
cm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiBwcm90ZWN0ZWQ6CkBAIC02NCw3
ICs2NSw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlm
aWVyT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZp
cnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBi
b29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4s
IHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZp
cnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dp
bmdFeGNlcHRpb24uY3BwCmluZGV4IGUwN2M5YTFhYWM4NzM5N2E3MjIxZmUwZDY5NmU3MzU5YWFl
MGI2MDAuLmVkZWNkZTIyN2E0ZGQ1YjA1OWI1ZTg1ODg1OGU5MjUwYTZmN2NiZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERl
bGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcApA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNp
bmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1
bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90
QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNs
dWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4K
QEAgLTIzOSwxMCArMjQwLDE4IEBAIGJvb2wgc2V0SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdF
eGNlcHRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkCiAgICAgcmV0dXJu
IHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3Rvciwg
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1ib29sIEpTVGVzdE5hbWVkRGVs
ZXRlclRocm93aW5nRXhjZXB0aW9uT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCit2b2lkIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uOjpoZWFwU25hcHNo
b3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1
dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRp
b24qPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0
aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWls
ZGVyKTsKK30KKworYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbk93bmVy
Ojppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhh
bmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQog
ewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsK
KyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmgKaW5kZXgg
Y2RlMTFjNjgxOTUwODcyMjFlZWUzNmRkNTFlNjUzNWRhZDI4NjE4NC4uN2JkZTliMTg5NjRhYzJh
NzJmZDBlMzk4MTk0MzJmN2RmNjlhN2UyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgog
ICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYs
IGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNo
b3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpHZXRPd25Qcm9wZXJ0eVNs
b3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFzZTo6
U3RydWN0dXJlRmxhZ3M7CiBwcm90ZWN0ZWQ6CkBAIC02NCw3ICs2NSw3IEBAIHByb3RlY3RlZDoK
IAogY2xhc3MgSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Pd25lciA6IHB1Ymxp
YyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNv
bnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVG
cm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwg
SlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFs
aXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5kZXgg
NmE1OTc0MTZlZTM0MDMwNjZkY2RjOThjY2VkZGYzMGRlODk3NTQ1My4uNDAzODA3YmM2OGVlZGMz
MjlkN2U0ZTA2NWEzYTM4NzA2ZWVjODNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWREZWxldGVyV2l0aElkZW50aWZpZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAi
SlNET01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bv
aW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTI1NiwxMCArMjU3LDE4IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVG
dW5jdGlvbk5hCiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SWRlbnRpZmllcj46OmNhbGw8anNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJQcm90b3R5
cGVGdW5jdGlvbk5hbWVkRGVsZXRlckJvZHk+KCpzdGF0ZSwgIm5hbWVkRGVsZXRlciIpOwogfQog
Ci1ib29sIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlm
aWVyOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWls
ZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVy
V2l0aElkZW50aWZpZXIqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JD
ZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hv
dChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRp
Zmllck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiog
cmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2
aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmgKaW5k
ZXggMDE0MTcwODM5NTA0NWI2ZjZiY2Q1MWEzMzFmMDkxNWIyZjgzZmQ4Mi4uNGVmM2VjMTg3ODhj
NDBhZmM3YWMyNmM5NDk3YjM3ZDA2N2JhYjFhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogICAg
IH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNv
bnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3Qo
SlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJ
c0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5
U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3Ry
dWN0dXJlRmxhZ3M7CiBwcm90ZWN0ZWQ6CkBAIC02NCw3ICs2NSw3IEBAIHByb3RlY3RlZDoKIAog
Y2xhc3MgSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJPd25lciA6IHB1YmxpYyBKU0M6
OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQs
IEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpT
bG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVs
ZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKaW5kZXgg
MWY4M2E5YTY3YmE4ODU2MWUzZmZkMjEyMjExZjcwMjdiNGZkYzU2NC4uYTliNTVlYmExMmI1NjJh
YzY4NGMxNGZhMjE5Y2QzNDA2NTQ0MDJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJ
bmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvcGVydHlOYW1lQXJyYXkuaD4K
ICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CkBAIC0yNDMsMTAgKzI0NCwxOCBAQCBib29sIHNldEpT
VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZAogICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJv
cGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsK
IH0KIAotYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlck93bmVyOjppc1Jl
YWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwg
dm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SW5kZXhlZEdldHRlcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVp
bGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5h
bWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFw
cGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNl
OjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0TmFtZWREZWxl
dGVyV2l0aEluZGV4ZWRHZXR0ZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRv
ciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAg
ICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJX
aXRoSW5kZXhlZEdldHRlci5oCmluZGV4IDE1M2RiN2VjYTMwNmMyODY0MzBjMDhlNmM3NDM0YmJl
ZTdmMTBlMTcuLmIzZDUwMTc4NzM0NjM1M2U0NzlkN2Y2MjYxNzliM2ExNzE3NzMxZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5oCkBA
IC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVl
IGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Cisg
ICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVp
bGRlciYpOwogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBK
U0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05v
dFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgpAQCAt
NjQsNyArNjUsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJ
bmRleGVkR2V0dGVyT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGlj
OgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAg
dmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiop
OwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2
b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRo
LmNwcAppbmRleCA1ZDM0YjdiODkxYjRlZGI1Njg3OTI4ZWUxOTMxM2U4MTZiYjkyZTA0Li44M2Fj
ZmM1YmQxZWI3ZTkzNTUzNDU4ZTdlNWRlNjQzMzBiYmRhYzdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0
aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkR2V0dGVyQ2FsbFdpdGguY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNE
T01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMjA0LDEwICsyMDUsMTggQEAgYm9vbCBzZXRK
U1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGgKICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnBy
b3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7
CiB9CiAKLWJvb2wgSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aE93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoOjpoZWFw
U25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQorewor
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aCo+
KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNP
YmplY3QtPndyYXBwZWQoKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIp
OworfQorCitib29sIEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhPd25lcjo6aXNSZWFjaGFibGVG
cm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBT
bG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURf
UEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BB
UkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0
aC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
R2V0dGVyQ2FsbFdpdGguaAppbmRleCA2YmQyZThkZjg3OTk3MGIyZDViZmQ4ZjY4NmZiZWNmODQ2
OWM3ZWYzLi4zNmRiMDE3OThjNjAxYzljZWU4ODk4NDJkZGJjZWM4YjMzOTNlN2ZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRH
ZXR0ZXJDYWxsV2l0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGlj
OgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpW
TSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25h
cHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwdWJsaWM6CiAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpHZXRPd25Qcm9wZXJ0
eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blBy
b3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFz
ZTo6U3RydWN0dXJlRmxhZ3M7CiBwcm90ZWN0ZWQ6CkBAIC02Miw3ICs2Myw3IEBAIHByb3RlY3Rl
ZDoKIAogY2xhc3MgSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aE93bmVyIDogcHVibGljIEpTQzo6
V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVG
cm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwg
SlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNs
b3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0
ZXJOb0lkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcAppbmRleCA5YjBjNGI3MWNmYTdm
NTVlMjgxNGQwNmZkNmMwOTgzZjU4MGNmZGZhLi4yNDY0MzNmZTRhODUwNTg5NWRiYTQzMTAyNzUx
NTdlYjJlYjk2YzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRp
Zmllci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRs
aW5nLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hl
YXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVz
Lmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFy
YXRpb25zLmg+CkBAIC0yMDQsMTAgKzIwNSwxOCBAQCBib29sIHNldEpTVGVzdE5hbWVkR2V0dGVy
Tm9JZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdQog
ICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29u
c3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotYm9vbCBKU1Rl
c3ROYW1lZEdldHRlck5vSWRlbnRpZmllck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQordm9pZCBKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllcjo6aGVhcFNuYXBzaG90
KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyKj4oY2Vs
bCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVj
dC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9
CisKK2Jvb2wgSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVG
cm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBT
bG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURf
UEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BB
UkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50
aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZEdldHRlck5vSWRlbnRpZmllci5oCmluZGV4IDczMTgwZDVlMmJiMDQxMzJkMDg3MTRmMjU0
ZWFlNjllYjc1NTdjYWUuLmQzN2M4M2Y4MGI3Yzc5ZWU5OWViMzIyNmI1OTFkNTQwNmZmODhlYTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5oCkBAIC01Miw2
ICs1Miw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENv
bnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3Rh
dGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYp
OwogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpT
Qzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6Oklu
dGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8g
fCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJv
cGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgpAQCAtNjIsNyAr
NjMsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVy
T3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1
YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29s
IGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZv
aWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1
YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0
KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVy
LmNwcAppbmRleCBjNzUyZmQwMGM5YTA5ZWRhNzViYmY0OThjYzYzZDZjNzgwZjU0NjM3Li5hMGYz
MzkzYjFmYmRhZTExYjRkY2E3MmMwN2JmM2UwMDI5Yjc5MmZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRl
bnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSAiSlNET01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5o
IgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTIzMiwxMCArMjMzLDE4IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclBy
b3RvdHlwZUZ1bmN0aW9uR2V0CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZEdl
dHRlcldpdGhJZGVudGlmaWVyPjo6Y2FsbDxqc1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVy
UHJvdG90eXBlRnVuY3Rpb25HZXR0ZXJOYW1lQm9keT4oKnN0YXRlLCAiZ2V0dGVyTmFtZSIpOwog
fQogCi1ib29sIEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFi
bGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQq
LCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRp
Zmllcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVp
bGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkR2V0dGVy
V2l0aElkZW50aWZpZXIqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JD
ZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hv
dChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlm
aWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5r
bm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiBy
ZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZp
c2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmgKaW5kZXgg
ZjU3YjlkNWZjNmUzOTc1NGQ3MTA1OGE2N2ExOGEzZDMwNDljZDM3MS4uMGQ1NWZlZjIzNDQ4NTAx
M2Y4ZDc2MWMzYzE5YjNmMjcwYjQ5ZWRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRH
ZXR0ZXJXaXRoSWRlbnRpZmllci5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICB9CiAK
ICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2Vs
bCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHVibGljOgogICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1
cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzOwogcHJvdGVjdGVkOgpAQCAtNjIsNyArNjMsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNz
IEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJPd25lciA6IHB1YmxpYyBKU0M6OldlYWtI
YW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9w
YXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6
U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90Vmlz
aXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9J
ZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAKaW5kZXggNDhjMDcxMTNhNGM0NWQ0MWVh
MzUwYzRiYjJiYmE2N2ZmOGYxYThjNS4uYjc4NmMxM2FlMzE0YjgyYmNiZGZmZDk2ZWIxZGYzYWRm
YTY5YTE0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIu
Y3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5o
IgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25h
cHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgog
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9u
cy5oPgpAQCAtMjY2LDEwICsyNjcsMTggQEAgYm9vbCBzZXRKU1Rlc3ROYW1lZFNldHRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHUKICAgICBy
ZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVj
dG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLWJvb2wgSlNUZXN0TmFt
ZWRTZXR0ZXJOb0lkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRv
cikKK3ZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmhlYXBTbmFwc2hvdChKU0Nl
bGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcio+KGNlbGwpOwor
ICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndy
YXBwZWQoKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCiti
b29sIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9w
YXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFN
KGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShy
ZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRT
ZXR0ZXJOb0lkZW50aWZpZXIuaAppbmRleCA0NTQ0YzUxNTU5Y2Y3OTUzMzA0YzQ2YzY0NjZhYmM3
YzM5Mzc4MGYwLi42Mzc1NzBmMjE2ZWUzODMyNTViYzg5YjRlMjhlZTlmZjI2MGFlZDUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJOb0lkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuaApAQCAtNTUsNiArNTUs
NyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1
Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2
b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHB1
YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Okdl
dE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNl
cHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlND
OjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5
TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHByb3RlY3RlZDoKQEAgLTY1LDcgKzY2LDcg
QEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllck93bmVy
IDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJv
b2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwg
dm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1Jl
YWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBj
b250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZv
aWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bi5jcHAKaW5kZXggMmI3ZGM5NWE4OWQxMzRjMTU0YmIzNTE2NWM1NjY1NDZlMTI4OTA4OC4uNzI1
YzIxZGMyZjMwZjk5YTU3NGQwMWZhODJkMDI3N2IyZjI0ZDQwYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcApAQCAtMjgsNiArMjgs
NyBAQAogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RP
TVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90
eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTI2NiwxMCAr
MjY3LDE4IEBAIGJvb2wgc2V0SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1ib29sIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb25Pd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNU
ZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2Vs
bCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0
ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24qPihjZWxsKTsKKyAg
ICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFw
cGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9v
bCBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BB
UkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJB
TShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmgKaW5kZXggZWY0YTI2ZDkwMDFmNjBkYWEw
NTkyMDMyYzYxYWI2NTYzMjAwYTkwMS4uNWIxNzEzYzBjZjJiZmUxYTEyMTRiNzZmYjUyNzE2OGVi
M2VhMzQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbi5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMg
SlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVh
cFNuYXBzaG90QnVpbGRlciYpOwogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0
eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldo
ZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpT
Qzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJv
dGVjdGVkOgpAQCAtNjUsNyArNjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5hbWVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Pd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25l
ciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0
b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNv
bnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZp
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCmluZGV4IGU2NTllYjM0NzUzOGZkN2M3NWM0OTU5
NzMxMTI5ZDUzOWViZWZkMTUuLjgwZTFjNDk4ZGE4NTA0MDRmNmQzN2FhNGZkZWYyNTgzZDlkNzk4
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5j
cHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1
ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rp
b25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWls
ZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAt
Mjk3LDEwICsyOTgsMTggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1l
ZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW0KICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI+OjpjYWxsPGpzVGVzdE5h
bWVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyQm9keT4o
KnN0YXRlLCAibmFtZWRTZXR0ZXIiKTsKIH0KIAotYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJ
ZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpT
VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGws
IEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9
IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyKj4oY2VsbCk7CisgICAgYnVp
bGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgp
KTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9y
JiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5k
bGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29u
KTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSWRlbnRpZmllci5oCmluZGV4IGJjODg1YjNjYTk1NzI4NDY3YjFhNWI3M2FiZTU2MjIz
YTBjYzg2NTYuLjBlYzQ1ZjQwZjQ0ZTBlMjcyZmUyYzM2NzM2NjZlMzdiZTZlMWQ5NmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZFNldHRlcldpdGhJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuaApAQCAtNTUsNiAr
NTUsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25z
dHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRp
YyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsK
IHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6
OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRl
cmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwg
SlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3Bl
cnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHByb3RlY3RlZDoKQEAgLTY1LDcgKzY2
LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVy
T3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1
YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29s
IGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZv
aWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1
YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0
KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyLmNwcAppbmRleCA2NGE1Y2E2MzI1OTg2NTc5NDFkNzU2NTJlMzM5MmI2Y2M2ZDcxNmQ5
Li45NjNlYTNiNWZiMTRlMTI5NTQ2ZWI0ZDc1NDdhNDllY2QyMzU0ZGI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoSW5kZXhlZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJVUkwu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvcGVy
dHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CkBAIC0zNDAsMTAgKzM0MSwx
OCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbgogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcj46OmNhbGw8anNUZXN0TmFtZWRTZXR0ZXJX
aXRoSW5kZXhlZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlckJvZHk+KCpzdGF0
ZSwgImluZGV4ZWRTZXR0ZXIiKTsKIH0KIAotYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpT
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNl
bGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVj
dCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyKj4oY2VsbCk7Cisg
ICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3Jh
cHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jv
b2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlck93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNs
b3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNFRF9Q
QVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFS
QU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5oCmluZGV4IDJmMjQ1MjBmYmYxOWZlYTA0
MGUxMTJmZTc5ZTAzMTQ0ZDIzYTgwMmEuLmRiZWJlNGM0ODYyODQ1N2YxOTRmMTBjNDgwN2EzNTFj
MWQ2YTcyN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXIuaApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGlj
IEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2Jh
bE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6Okhl
YXBTbmFwc2hvdEJ1aWxkZXImKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVy
dHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5X
aGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBK
U0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHBy
b3RlY3RlZDoKQEAgLTY1LDcgKzY2LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3ROYW1l
ZFNldHRlcldpdGhJbmRleGVkR2V0dGVyT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3du
ZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNp
dG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBj
b25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyQW5kU2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcAppbmRl
eCBjY2NkZWIxMjc2MGViMzk0ZjA1OWJlODdlNDgwNzNkNGQ0ODhjZGU4Li41MDBhZGExYTQ4MDIx
ZTZmOTA1ZTViYmMzZDJjMzY3MzlkMmM0ZGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ckFuZFNldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJV
UkwuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJv
cGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CkBAIC0zOTAsMTAgKzM5
MSwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5cAogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcj46OmNhbGw8anNUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlwZUZ1bmN0aW9uSW5k
ZXhlZFNldHRlck92ZXJsb2FkRGlzcGF0Y2hlcj4oKnN0YXRlLCAiaW5kZXhlZFNldHRlciIpOwog
fQogCi1ib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJPd25l
cjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBo
YW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwg
SGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0g
anNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIqPihjZWxs
KTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0
LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30K
KworYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyT3duZXI6
OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFu
ZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7
CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOwor
ICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5k
U2V0dGVyLmgKaW5kZXggNDUwNjBjNzU1ZjY1NzUyMDgxNDBkYzQxZWFmYjY2ODc0ODUzYTEwNS4u
YzE2MGQ2OGYyNTFhOGY2ZDg1MjNjZTM0NjRlYmMxMjRlMjRlZDdkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRl
ci5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpK
U1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBz
aG90QnVpbGRlciYpOwogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2Vu
Y2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5n
dGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3Zl
cnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVk
OgpAQCAtNjUsNyArNjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVP
d25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZp
c2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYs
IGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJy
aWRlQnVpbHRpbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMuY3BwCmluZGV4IGZiMjUxNGNi
ZGQwMzU0NzU1OTJmYzAwMmQ1YTJiYzczNDg4MjY2M2IuLjZhOGYzYjllYThhMWYzNzJhYmU4ZDBi
YmZjOWMzYTc1ZGI3MGViNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRl
ICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0yNTMsMTAgKzI1NCwxOCBAQCBib29s
IHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZAogICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFs
dWUpKTsKIH0KIAotYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zT3du
ZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4g
aGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdE5hbWVkU2V0
dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnM6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBT
bmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2Fz
dDxKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zKj4oY2VsbCk7CisgICAgYnVp
bGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgp
KTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGluc093bmVyOjppc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RW
aXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNFRF9QQVJB
TShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0o
cmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlk
ZUJ1aWx0aW5zLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5oCmluZGV4IGQwODRjYTVmNDIxNDVj
MDVlYTE4ZDBjYTNjMTVmMmZkMjFjMzVmNjEuLmZlMDM3YzMxMzI1ZWMxZjQ0OTZmY2UxZmQ3ZTk1
NzRhZjY5ZjhmOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0
aE92ZXJyaWRlQnVpbHRpbnMuaApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAg
ICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlND
OjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwq
LCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJl
IHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3Ro
SXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJy
aWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHByb3RlY3RlZDoK
QEAgLTY1LDcgKzY2LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3ROYW1lZFNldHRlcldp
dGhPdmVycmlkZUJ1aWx0aW5zT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewog
cHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7
CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBj
aGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJv
cGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuY3BwCmluZGV4IGM1NDk0M2Ez
OTM4ZDA0NTBiZTg3YjI0MjQ0YTUzZTkzMDY0YjNkYzcuLjlhMDcxYWVlYTc1NzU3YjhjY2EwNTVh
MWYxMTZlZDAwMWJiODhjMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzLmNwcApAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0zMzUsMTAgKzMzNiwxOCBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQ
cm9wZXJ0aWVzSW5zdGFuY2VGdQogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXM+OjpjYWxsPGpzVGVzdE5hbWVkU2V0dGVyV2l0
aFVuZm9yZ2FibGVQcm9wZXJ0aWVzSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlT3BlcmF0aW9u
Qm9keT4oKnN0YXRlLCAidW5mb3JnZWFibGVPcGVyYXRpb24iKTsKIH0KIAotYm9vbCBKU1Rlc3RO
YW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc093bmVyOjppc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJv
cGVydGllczo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYg
YnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0
dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFw
cGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNl
OjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYg
dmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxl
KTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3Bl
cnRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5oCmluZGV4IDk2NGExN2RmMTI2OGQ4
NDY0YWFkOWI1OWMxNmUxMzY0ZGM4ZDRlZDQuLmExNjg2OGYyZjJjMzExNTZlMzg2ZGEwMzIxMWIx
ZTJmOTdmYzVlZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
cldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBj
b25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90
KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHVibGljOgogICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90
SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGUg
fCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJ
c05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJp
ZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgpA
QCAtNjUsNyArNjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aFVuZm9yZ2FibGVQcm9wZXJ0aWVzT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIg
ewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhK
U0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9y
Jik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25z
dCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxl
UHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0
aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHAKaW5kZXggNDk4MmUxNzA2NGJhMWVhNDBjMDg2YzQ4
NDIwN2IxNDE1YmFlMGUxZS4uYTgxOGI3MmZhYWY3NjA5NDk0ZTFlZWJlYzRiMjA1Zjg2YTkwZTY1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlu
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5j
cHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1
ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rp
b25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWls
ZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAt
MzIyLDEwICszMjMsMTggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1l
ZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWQKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3Zl
cnJpZGVCdWlsdGlucz46OmNhbGw8anNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3Bl
cnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlT3BlcmF0
aW9uQm9keT4oKnN0YXRlLCAidW5mb3JnZWFibGVPcGVyYXRpb24iKTsKIH0KIAotYm9vbCBKU1Rl
c3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnNP
d25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
PiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zOjpoZWFwU25h
cHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAg
IGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJs
ZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRX
cmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBC
YXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zT3duZXI6Omlz
UmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxl
LCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAg
ICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAg
IFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVu
Zm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5oCmluZGV4IDM4NWIwYTViNjAy
MjliYTIzMzQyMjAwYTlhYTEzMTY5ZmMyZTZjNDUuLjllNDI2N2NiNjA3NjA1MzJlMDhkMTlhMWQx
ZWI1ZjY5NjQzZTk2NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92
ZXJyaWRlQnVpbHRpbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlk
ZUJ1aWx0aW5zLmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRp
YyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9i
YWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpI
ZWFwU25hcHNob3RCdWlsZGVyJik7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZSB8IEpTQzo6
SGFzU3RhdGljUHJvcGVydHlUYWJsZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xv
dEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJv
cGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0
dXJlRmxhZ3M7CiBwcm90ZWN0ZWQ6CkBAIC02NSw3ICs2Niw3IEBAIHByb3RlY3RlZDoKIAogY2xh
c3MgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1
aWx0aW5zT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAg
IHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVh
bCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAg
IHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBj
b250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAppbmRleCAyNDZiMTdhMjQ0OTA2MTgyMDE4MGU5ZmU5
ZGJmMTYzNDlmN2Y0Y2YzLi5iODFlOWNhMzg0YzEzNjM3ZjRkOGY3MTIyOWM4MDc2NmM1OWYxNGFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5vZGUuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9CdWlsdGluTmFtZXMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlND
SW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09iamVjdENvbnN0cnVjdG9yLmg+
CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgpAQCAtNDEyLDYgKzQxMywxMyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRvSlNPTihFeGVj
U3RhdGUqIHN0YXRlKQogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Tm9kZT46OmNhbGw8
anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9keT4oKnN0YXRlLCAidG9KU09OIik7
CiB9CiAKK3ZvaWQgSlNUZXN0Tm9kZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNu
YXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0
PEpTVGVzdE5vZGUqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxs
KGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChj
ZWxsLCBidWlsZGVyKTsKK30KKwogI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKICNpZiBQ
TEFURk9STShXSU4pCiAjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDQ4MykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oCmluZGV4
IDhmOGQyYzM4OGJmN2JiOTcyMjdhNGU5Njg2NmM5MmYzZDExZGZkZTYuLmU3YzI1ZDU1NGNhMjg0
ZmNjMjUxNzM2YWViNGQ0NzM2YTRhNDc0YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaApAQCAtNDksNiArNDksNyBAQCBw
dWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0m
LCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3Qq
IHNlcmlhbGl6ZShKU0M6OkV4ZWNTdGF0ZSYsIEpTVGVzdE5vZGUmIHRoaXNPYmplY3QsIEpTRE9N
R2xvYmFsT2JqZWN0JiwgSlNDOjpUaHJvd1Njb3BlJik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNu
YXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogICAgIFRlc3ROb2Rl
JiB3cmFwcGVkKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUZXN0
Tm9kZSY+KEJhc2U6OndyYXBwZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDVkZWViYmIxMWExMTM4OTk2
ZjgwMmQxZjRhNTY5MTc0MWI5MDU1NTcuLjE5Njk2YzY5ZjQwODQ2NzBjNjljZGVlNTg0MjM5OGFk
ZDAzNDMzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC04Miw2ICs4Miw3IEBACiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvQXJyYXlQcm90b3R5cGUuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9CdWls
dGluTmFtZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5o
PgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9JdGVyYXRvck9wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU0FycmF5Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5l
cy5oPgpAQCAtODM4OSwxMCArODM5MCwxOCBAQCB2b2lkIEpTVGVzdE9iajo6dmlzaXRDaGlsZHJl
bihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYXBwZW5k
KHRoaXNPYmplY3QtPm1fY2FjaGVkQXR0cmlidXRlMik7CiB9CiAKLWJvb2wgSlNUZXN0T2JqT3du
ZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4g
aGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdE9iajo6aGVh
cFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sK
KyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE9iaio+KGNlbGwpOworICAgIGJ1
aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQo
KSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpT
VGVzdE9iak93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFy
KiogcmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJB
TSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouaAppbmRleCA4NTQyNDQzM2Y4MmU0ZmViZDc1ZjYzNTUwN2IwZTdhZjlkNThmOTU0
Li4xZTFiNDY3ZmZlMTdkYTkwNmU4ZmFmMWQzOTQyZjg4ZTFhMTVjMWM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC02
Miw2ICs2Miw3IEBAIHB1YmxpYzoKICAgICBtdXRhYmxlIEpTQzo6V3JpdGVCYXJyaWVyPEpTQzo6
VW5rbm93bj4gbV9jYWNoZWRBdHRyaWJ1dGUyOwogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRy
ZW4oSlNDZWxsKiwgSlNDOjpTbG90VmlzaXRvciYpOwogCisgICAgc3RhdGljIHZvaWQgaGVhcFNu
YXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogCiAgICAgLy8gQ3Vz
dG9tIGF0dHJpYnV0ZXMKICAgICBKU0M6OkpTVmFsdWUgY3VzdG9tQXR0cihKU0M6OkV4ZWNTdGF0
ZSYpIGNvbnN0OwpAQCAtODQsNyArODUsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE9i
ak93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0
dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9v
bCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2
b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0
dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4
dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAK
aW5kZXggMzhhYTRhYjI2OGJhODJkZGI0ZjBlNGJjMTkzN2U1MDM4ZDJmMGI3MS4uODAwZDdhNzgy
YTkxMDM3ODE0MmU1NDliNGJkNmRlMTIwZTlmYWJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkpT
RE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTI0OSwxMCArMjUwLDE4IEBAIGJvb2wgc2V0
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUs
IEVuY29kZWRKU1ZhbHVlCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkp
OwogfQogCi1ib29sIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNPd25lcjo6aXNSZWFjaGFi
bGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQq
LCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
czo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRl
cikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnMqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNl
bGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxs
LCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzT3duZXI6
OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFu
ZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7
CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOwor
ICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgKaW5kZXggYjc4ZDgzYTc4YTg4YTk1
ZTBhOWZhYTIwYzUxMzFlM2NjN2Y1NTk2Ny4uMjg5YTYzNWFiZjUxOTY2NzNhYTExYmQ0NmFiMGZh
ZGI4MzVhZTkxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5o
CkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1Zh
bHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90
QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMo
SlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9ycz4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxl
T3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RW
aXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3Im
LCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzV2l0aFNlcXVlbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcAppbmRleCAx
ZGM4YmM5ODI4OGY2Y2ZlMDZhNmI2ZjhmOWNjZWJmODE2NDFmMDFmLi5lMjI4MGNhNGY4ZjA1NzYw
Y2UzOTNlNzI5OGFkMGQ0NDhmMDgwYjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1
ZW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9N
V3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5
cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSXRlcmF0b3JPcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSlNBcnJheS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lu
bGluZXMuaD4KQEAgLTIwNSwxMCArMjA2LDE4IEBAIGJvb2wgc2V0SlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuCiAg
ICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25z
dHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1ib29sIEpTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VPd25lcjo6aXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90
VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhT
ZXF1ZW5jZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYg
YnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBw
ZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6
OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzV2l0aFNlcXVlbmNlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZp
c2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7
CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwog
ICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVu
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmgKaW5kZXggZTM1OGRhYTRkMjRmYzNkMjNl
MDljZGU0ZWExOGU5MDc3NzRjNDcxZC4uZTBmNTRlYmVkZmZlMmYyZGQxYjU5ZWJiMGE4NzM5YjZi
NmRmMTY4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9yc1dpdGhTZXF1ZW5jZS5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAK
ICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2Vs
bCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUds
b2JhbE9iamVjdCYsIFJlZjxUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZT4m
Jik7CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxl
T3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RW
aXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3Im
LCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlk
ZUJ1aWx0aW5zLmNwcAppbmRleCBkODkwZDNlNzE5N2UyYTA1NmJjNzc5MzRlNjEyMjhkZDMwMTBh
NDNlLi4zNWI0NmNjZDMxZmFkMWE5NTJhMmUxMWY3Yjg5OGM4ZDA4NDg0ZmYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVC
dWlsdGlucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
SlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxp
bmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJl
cGFyYXRpb25zLmg+CkBAIC0yMzUsMTAgKzIzNiwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE92ZXJyaWRlQnVpbHRpbnNQcm90b3R5cGVGdW5jdGlvbk5hbWVkSXRlbShF
eAogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T3ZlcnJpZGVCdWlsdGlucz46OmNhbGw8
anNUZXN0T3ZlcnJpZGVCdWlsdGluc1Byb3RvdHlwZUZ1bmN0aW9uTmFtZWRJdGVtQm9keT4oKnN0
YXRlLCAibmFtZWRJdGVtIik7CiB9CiAKLWJvb2wgSlNUZXN0T3ZlcnJpZGVCdWlsdGluc093bmVy
Ojppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhh
bmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RPdmVycmlkZUJ1
aWx0aW5zOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBi
dWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0T3ZlcnJpZGVC
dWlsdGlucyo+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2Vs
bCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGws
IGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdE92ZXJyaWRlQnVpbHRpbnNPd25lcjo6aXNSZWFj
aGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZv
aWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBV
TlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5V
U0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWls
dGlucy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92
ZXJyaWRlQnVpbHRpbnMuaAppbmRleCBmNWJlMDcyY2M4ZDZlOGExMzcwNTQ2OTU1ZDk4MTdkYjBm
NTY5MDgyLi5mMmEyNmFmMzlhNDZjMTg3OWY1NmNiM2NkODFjNjc5NzBjZjJkYmZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJp
ZGVCdWlsdGlucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAg
IH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNv
bnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3Qo
SlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJ
c0ltcHVyZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hl
bkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlND
OjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiBwcm90
ZWN0ZWQ6CkBAIC02Miw3ICs2Myw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0T3ZlcnJp
ZGVCdWlsdGluc093bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoK
LSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZp
cnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9p
ZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwCmluZGV4
IGRlNDkwYzVmMDlhOWFhYThjZDFmZGJhNDJkMTc2NGE0YzA5YWY4MDQuLmIwOTQzYWRmMjE0OWNj
NTVmMDc1ZTNiODUyODMzNWI2MzI3NTY0Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZh
Y2UuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIK
ICNpbmNsdWRlICJKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCIKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hl
YXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVz
Lmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFy
YXRpb25zLmg+CkBAIC0yMDgsMTAgKzIwOSwxOCBAQCBib29sIHNldEpTVGVzdFBsdWdpbkludGVy
ZmFjZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYQog
ICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29u
c3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotYm9vbCBKU1Rl
c3RQbHVnaW5JbnRlcmZhY2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikK
K3ZvaWQgSlNUZXN0UGx1Z2luSW50ZXJmYWNlOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBI
ZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8SlNUZXN0UGx1Z2luSW50ZXJmYWNlKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFw
cGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNl
OjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0UGx1Z2luSW50
ZXJmYWNlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIq
KiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFN
KHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFBsdWdpbkludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5oCmluZGV4IDM3YTMwZWM5YmYyNTI1NGQy
NmQyM2JjYjMyOGI2ODFkMjRkNDZmMTAuLjZkZGI3OWM1YzVjZjAxYWQwNGZlYmZkNzEzMzU3N2M2
MDUxNmY3ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmgKQEAgLTU2LDYgKzU2LDcg
QEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0
b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9p
ZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwdWJs
aWM6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpJbnRl
cmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwg
SlNDOjpPdmVycmlkZXNHZXRDYWxsRGF0YSB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiBwcm90ZWN0ZWQ6CkBAIC02Niw3ICs2Nyw3IEBA
IHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0UGx1Z2luSW50ZXJmYWNlT3duZXIgOiBwdWJsaWMg
SlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpT
Qzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6
ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9t
aXNlUmVqZWN0aW9uRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAKaW5kZXggMDdhOTNiMzllMTFl
ZDY2M2ZhMmMzZThkNmFmNjA3N2I2N2RiMTgwOC4uYzgwZGM1MmE0ZWVhNDBlN2EzNGExOTg1ZGYw
ZTc5ZDVhNTAwYTNmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVu
dC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5n
LmgiCiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBw
ZXJDYWNoZS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIu
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3Rm
L0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0yODUs
NiArMjg2LDEzIEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFJl
YXNvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQ+OjpnZXQ8anNUZXN0UHJvbWlzZVJlamVj
dGlvbkV2ZW50UmVhc29uR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
c3RhdGUsIHRoaXNWYWx1ZSwgInJlYXNvbiIpOwogfQogCit2b2lkIEpTVGVzdFByb21pc2VSZWpl
Y3Rpb25FdmVudDo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRl
ciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFByb21p
c2VSZWplY3Rpb25FdmVudCo+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZv
ckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgQmFzZTo6aGVhcFNuYXBz
aG90KGNlbGwsIGJ1aWxkZXIpOworfQorCiAjaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQog
I2lmIFBMQVRGT1JNKFdJTikKICNwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0NDgzKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21p
c2VSZWplY3Rpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5oCmluZGV4IDQ0MjY4MjQzNGIwMmMxNDk1
ZWQ1NTA2N2ZiOTRmM2EyM2ZmYjQ3N2YuLmY0Njk1ZmE0YzVhZDY2NjU4MDUwMjY5MThlZTlmZDZk
ZGM5NjQ2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmgKQEAg
LTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUg
Z2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAg
ICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWls
ZGVyJik7CiAgICAgVGVzdFByb21pc2VSZWplY3Rpb25FdmVudCYgd3JhcHBlZCgpIGNvbnN0CiAg
ICAgewogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGVzdFByb21pc2VSZWplY3Rpb25FdmVu
dCY+KEJhc2U6OndyYXBwZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbi5jcHAKaW5kZXgg
MmIyY2M2MjZiNDkwODEzMWY5OWJmMmExNGJhZTIxNmM2YzQ1MTFkOC4uZWNlZTM3NTIyMWU0Y2Q1
NTJmNGRlMTVhMmMxZjYxYzY5ZDVjMmI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uLmNw
cApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTVGVzdFNlcmlhbGl6YXRpb25JbmRpcmVj
dEluaGVyaXRhbmNlLmgiCiAjaW5jbHVkZSAiSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5h
bC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PYmpl
Y3RDb25zdHJ1Y3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KQEAgLTU0MiwxMCArNTQz
LDE4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2VyaWFsaXphdGlvblBy
b3RvdHlwZUZ1bmN0aW9uVG9KU09OKEV4ZWNTdGF0CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RTZXJpYWxpemF0aW9uPjo6Y2FsbDxqc1Rlc3RTZXJpYWxpemF0aW9uUHJvdG90eXBlRnVu
Y3Rpb25Ub0pTT05Cb2R5Pigqc3RhdGUsICJ0b0pTT04iKTsKIH0KIAotYm9vbCBKU1Rlc3RTZXJp
YWxpemF0aW9uT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpT
VGVzdFNlcmlhbGl6YXRpb246OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hv
dEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rl
c3RTZXJpYWxpemF0aW9uKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9y
Q2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNo
b3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0U2VyaWFsaXphdGlvbk93bmVyOjpp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRs
ZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewog
ICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAg
ICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U2VyaWFsaXphdGlvbi5oCmluZGV4IDAwOWQ2NmY0YmNkZDRlMTQ3YmNlYjk4MDU5NzZiODc4MGEw
MDY4MWUuLmQyNzI4NDdmN2I0M2Q5ZWQ1MzgxMzY3YjM1NDFiYmJmMzEzNDdlZjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6YXRpb24uaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0
aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIHNlcmlhbGl6ZShKU0M6OkV4
ZWNTdGF0ZSYsIEpTVGVzdFNlcmlhbGl6YXRpb24mIHRoaXNPYmplY3QsIEpTRE9NR2xvYmFsT2Jq
ZWN0JiwgSlNDOjpUaHJvd1Njb3BlJik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpT
Q2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAgIEpTVGVz
dFNlcmlhbGl6YXRpb24oSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxU
ZXN0U2VyaWFsaXphdGlvbj4mJik7CiAKQEAgLTU4LDcgKzU5LDcgQEAgcHJvdGVjdGVkOgogCiBj
bGFzcyBKU1Rlc3RTZXJpYWxpemF0aW9uT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3du
ZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNp
dG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBj
b25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJ
bmhlcml0YW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2UuY3BwCmluZGV4IDg2ZTFjZDk5
ZjY2MzZiNWJhOTBlNGJjNzBlNzVmNjY5ZWVjNDEwNGMuLjkwY2E3YjNkYWM1NjU3MjA3OTBhOTQ5
YWQwN2Y0YjNjYmJlZGZkNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5jZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlh
bGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlLmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1
ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCiAjaW5jbHVkZSAiSlNET01F
eGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTE0Niw1ICsxNDcsMTIgQEAgYm9v
bCBzZXRKU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY28KICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZh
bHVlKSk7CiB9CiAKK3ZvaWQgSlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2U6
OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIp
Cit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTZXJpYWxpemF0aW9uSW5k
aXJlY3RJbmhlcml0YW5jZSo+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZv
ckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgQmFzZTo6aGVhcFNuYXBz
aG90KGNlbGwsIGJ1aWxkZXIpOworfQorCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhl
cml0YW5jZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlLmgKaW5kZXggYTEzMzVmYWRjOTE1ZDQ1
NGNjNWE0Yjg4Nzc1ZWQ0OGRhNTMyM2I4MC4uMGRkMDQ1YWU2ODVlZGRhY2Y5NWVjZGJhYjNlZGRh
ZTE1YzhhNWJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25J
bmRpcmVjdEluaGVyaXRhbmNlLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgcHVibGljOgogICAgIH0KIAog
ICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpT
Qzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxs
KiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiAgICAgVGVzdFNlcmlhbGl6YXRpb25JbmRp
cmVjdEluaGVyaXRhbmNlJiB3cmFwcGVkKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2UmPihCYXNlOjp3
cmFwcGVkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5jcHAKaW5k
ZXggYTc3YTU4ODhmMzA3MmQxODVmOTVhMTIzMjY5YjM3MTI3ZThkMTk3Ni4uY2E4OWIxMGEzNDY2
YzcxOWM0NGE5MmNjNWNiMjIwMDM2NTgxMmM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFs
aXphdGlvbkluaGVyaXQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNET01FeGNl
cHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAi
SlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNo
b3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL09iamVjdENvbnN0cnVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L0dldFB0ci5oPgpAQCAtMjIxLDUgKzIyMiwxMiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0UHJvdG90eXBlRnVuY3Rpb25Ub0pTT04oRQog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQ+OjpjYWxs
PGpzVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0UHJvdG90eXBlRnVuY3Rpb25Ub0pTT05Cb2R5Pigq
c3RhdGUsICJ0b0pTT04iKTsKIH0KIAordm9pZCBKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdDo6
aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikK
K3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhl
cml0Kj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAm
dGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVp
bGRlcik7Cit9CisKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQuaApp
bmRleCAwNjczODU0YzJmMDFjY2U0M2M4ZWY4YWQxZmVhNDE2NGJiODFlZGQxLi4wMjg3M2EyNmZj
YzA0MWJjOThhNjRhNTU3YjNlYzk3OGUzZWJjYTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFs
aXphdGlvbkluaGVyaXQuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
SlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIHNlcmlhbGl6ZShKU0M6OkV4ZWNT
dGF0ZSYsIEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0JiB0aGlzT2JqZWN0LCBKU0RPTUdsb2Jh
bE9iamVjdCYsIEpTQzo6VGhyb3dTY29wZSYpOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hv
dChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKICAgICBUZXN0U2VyaWFsaXph
dGlvbkluaGVyaXQmIHdyYXBwZWQoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFRlc3RTZXJpYWxpemF0aW9uSW5oZXJpdCY+KEJhc2U6OndyYXBwZWQoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2Vy
aWFsaXphdGlvbkluaGVyaXRGaW5hbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbC5jcHAKaW5kZXggNTI1
MDRmMTgxMzY0NzJhMTI2MWIzNDc0NzkwNWNjYjc0MjI5NWJlNi4uNzU4NmRmODFmYTY2MGViMzZl
MTZkMDRiNzU5ZTY3ZDU4YWY5MWRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emF0aW9uSW5oZXJpdEZpbmFsLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkpTRE9N
RXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1
ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNu
YXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PYmplY3RDb25zdHJ1Y3Rvci5oPgogI2luY2x1ZGUg
PHd0Zi9HZXRQdHIuaD4KQEAgLTI1NSw1ICsyNTYsMTIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsUHJvdG90eXBlRnVuY3Rpb25U
b0oKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0Rmlu
YWw+OjpjYWxsPGpzVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWxQcm90b3R5cGVGdW5jdGlv
blRvSlNPTkJvZHk+KCpzdGF0ZSwgInRvSlNPTiIpOwogfQogCit2b2lkIEpTVGVzdFNlcmlhbGl6
YXRpb25Jbmhlcml0RmluYWw6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hv
dEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rl
c3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFw
cGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNl
OjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25J
bmhlcml0RmluYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsLmgKaW5kZXggZDE2Zjg1ZmM1M2ZiMGRlMDlm
OTFiZDY5ZGY1ZTY4MWM5MTYzY2Q0OC4uN2M0NzU3NTJkNDBjMzAxYjI0NDkzM2NlMDEwMzk2ODk0
MzEwMTY4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5h
bC5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUg
Z2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAg
ICBzdGF0aWMgSlNDOjpKU09iamVjdCogc2VyaWFsaXplKEpTQzo6RXhlY1N0YXRlJiwgSlNUZXN0
U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbCYgdGhpc09iamVjdCwgSlNET01HbG9iYWxPYmplY3Qm
LCBKU0M6OlRocm93U2NvcGUmKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxs
KiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiAgICAgVGVzdFNlcmlhbGl6YXRpb25Jbmhl
cml0RmluYWwmIHdyYXBwZWQoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFRlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsJj4oQmFzZTo6d3JhcHBlZCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5j
cHAKaW5kZXggMzJhZjY5MzlmMDdhNWM4OTlmOWJjYjNkZGM1NDcwZjZlYjc1MjQ1My4uMzFmYzRk
OWFkNGMwMmE4NTVlMWY5MmVhNDQ1MGYxNjZiZmFiNzY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTM3LDYgKzM3
LDcgQEAKICNpbmNsdWRlICJKU01lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUu
aD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNBcnJheS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CkBAIC0zNDUsMTAgKzM0Niwx
OCBAQCB2b2lkIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6dmlzaXRDaGls
ZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdAogICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmpl
Y3QtPm1fY2FjaGVkUmVhZG9ubHlWYWx1ZSk7CiB9CiAKLWJvb2wgSlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3Ip
Cit2b2lkIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6aGVhcFNuYXBzaG90
KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZSo+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRo
aXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxk
ZXIpOworfQorCitib29sIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZU93bmVy
Ojppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhh
bmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQog
ewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsK
KyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAppbmRl
eCAwNjlhMWQ1ZGUxMzRjZjA1MGZmYjlhMWE4N2RhNGY0ZjE0YWExYmY4Li5mZWFlYzg5NGMwNzAy
MDI3NTJjNzZmNWRhNGIzZWVhODBmYzU5YTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCkBAIC01NSw2ICs1NSw3IEBAIHB1Ymxp
YzoKICAgICBtdXRhYmxlIEpTQzo6V3JpdGVCYXJyaWVyPEpTQzo6VW5rbm93bj4gbV9jYWNoZWRS
ZWFkb25seVZhbHVlOwogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgSlND
OjpTbG90VmlzaXRvciYpOwogCisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCos
IEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2Jq
ZWN0JiwgUmVmPFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+JiYpOwogCkBAIC02
Myw3ICs2NCw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGlj
OgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAg
dmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiop
OwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2
b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuY3BwCmluZGV4IGFjMzli
Yzg0ZTkxZGVhOTc0Yzc1OTRkM2MzMWM5NzA3NzUzZWVhNmEuLmE0ZDE5OTYxYjUyMjdiNzI3MmJh
M2JhZTBkMjlmYmU1NzdmODRjM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcApAQCAtMjgs
NiArMjgsNyBAQAogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01X
cmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlw
ZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0xNzksMTAgKzE4
MCwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyUHJv
dG90eXBlRnVuY3Rpb25Ub1N0cmluZyhFeGVjU3RhdAogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0U3RyaW5naWZpZXI+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rp
b25Ub1N0cmluZ0JvZHk+KCpzdGF0ZSwgInRvU3RyaW5nIik7CiB9CiAKLWJvb2wgSlNUZXN0U3Ry
aW5naWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNU
ZXN0U3RyaW5naWZpZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1
aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RT
dHJpbmdpZmllcio+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwo
Y2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNl
bGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdFN0cmluZ2lmaWVyT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lk
KiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5V
U0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNF
RF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZp
ZXIuaAppbmRleCBmNDMyYmVlNjE4YTY4ZmJmYjAyNGVmYmY4N2M3NmRkYTZkMWE2MmI3Li41NTM4
MWY3MGE1MmQ4ZDUzYjMzYmZlMDU5Yzc4YWQ1MDMxODE1Mjg0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZp
ZXIuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6
SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVj
dCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFw
c2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RTdHJpbmdpZmllcihKU0M6OlN0
cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RTdHJpbmdpZmllcj4mJik7CiAK
QEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RTdHJpbmdpZmllck93
bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFs
IGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
Piwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lk
KiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFs
IHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3Bl
cmF0aW9uLmNwcAppbmRleCAxZTQ3MzBlYjIwZTk0OTViMmRhODA0MGQ3NGVhNzEzZTM2ZDJlYWY5
Li4xOGE4MDQ4OGViYTg5OTUzNGM0MjJkYjhjODViMDEzZWVhZWI4M2I5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJB
bm9ueW1vdXNPcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbi5jcHAKQEAgLTI4
LDYgKzI4LDcgQEAKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9N
V3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5
cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMTc5LDEwICsx
ODAsMTggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmllckFu
b255bW91c09wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW8KICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uPjo6Y2FsbDxqc1Rlc3RTdHJpbmdp
ZmllckFub255bW91c09wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdCb2R5Pigqc3Rh
dGUsICJ0b1N0cmluZyIpOwogfQogCi1ib29sIEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3Bl
cmF0aW9uT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVz
dFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxs
LCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24qPihjZWxsKTsKKyAg
ICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFw
cGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9v
bCBKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbk93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNs
b3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNFRF9Q
QVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFS
QU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllckFub255bW91
c09wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmgKaW5kZXggZjI5ZDNlMGZkZTVhYWU5
ZTk3ZDNkNDY5MzZlNzQzZjk2ZjU3M2VjZi4uMTRhYTBlZDNlZTlhY2VkMTZhNTdiY2I0NTkzMjI4
MmQwZDQ5YWE4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnlt
b3VzT3BlcmF0aW9uLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0
YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlND
OjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0U3RyaW5naWZp
ZXJBbm9ueW1vdXNPcGVyYXRpb24oSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYs
IFJlZjxUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24+JiYpOwogCkBAIC01Nyw3ICs1
OCw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVy
YXRpb25Pd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAg
dmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFs
IGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
Piwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAg
dmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNv
bnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVy
YXRpb24uY3BwCmluZGV4IGQxNmVkNGJiOWVjYzBlNjU3ZDA4ODRjMzE3MzE3ZmUzOGI4NTJkZjQu
Ljc0MjY1OWU5MjE4OGNmZjNiZTY2NTBkNjc5ODY3NDczMTM5ZmFlNDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5h
bWVkT3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNh
Y2hlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMTk0LDEwICsxOTUsMTggQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0
aW9uUHJvdG90eXBlRnVuY3Rpb25Ub1MKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFN0
cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVy
YXRpb25Qcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nQm9keT4oKnN0YXRlLCAidG9TdHJpbmciKTsK
IH0KIAotYm9vbCBKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lk
KiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVy
YXRpb246OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1
aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTdHJpbmdpZmll
ck5hbWVkT3BlcmF0aW9uKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9y
Q2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNo
b3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJh
dGlvbk93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiog
cmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2
aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5oCmluZGV4
IDg2MGRlNmNiYjVhYTYzNTgzNDdiYzkzZTA4NTNjM2NkNDUyNzkzZjkuLjViYzEwZWY2NWQyMTk0
NDAxYTUzZTNlNWNjMjMxOGZkNDVmYmJlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmlu
Z2lmaWVyTmFtZWRPcGVyYXRpb24uaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgfQog
CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3Qg
SlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0Nl
bGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RT
dHJpbmdpZmllck5hbWVkT3BlcmF0aW9uKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmpl
Y3QmLCBSZWY8VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24+JiYpOwogCkBAIC01Nyw3ICs1
OCw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlv
bk93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0
dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9v
bCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2
b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0
dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4
dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJh
dGlvbkltcGxlbWVudGVkQXMuY3BwCmluZGV4IGI4ZGE1ZDZmNWRjYzNmMWU1YzIyNTIyYWVmNDA2
MDczZWJmNTEwZDEuLjgxZTU4ZWE3ZDk0NDZmNTUwZTlmZjE1MTcyMjYwZDE5N2ZjNGM3NDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
dHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXMuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiSlNET01PcGVyYXRpb24u
aCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNu
YXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4K
ICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlv
bnMuaD4KQEAgLTE5NCwxMCArMTk1LDE4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVuCiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVk
QXM+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlw
ZUZ1bmN0aW9uVG9TdHJpbmdCb2R5Pigqc3RhdGUsICJ0b1N0cmluZyIpOwogfQogCi1ib29sIEpT
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc093bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXM6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXIm
IGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBw
ZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6
OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbkltcGxlbWVudGVkQXNPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlz
aXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsK
ICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFz
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5n
aWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmgKaW5kZXggOWQ0MDcwMDkxNDFiZGFjYjZkZWNj
NmUzY2IzODMxZGU4MGQyYzYzYS4uZjkzZmYxMTY4Njk1OTZiZjdlZmMyOGM5ZWU2Mjc1YWRmZmI1
ODZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlv
bkltcGxlbWVudGVkQXMuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
c3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpK
U0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBK
U0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9i
amVjdCYsIFJlZjxUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzPiYmKTsKIApA
QCAtNTcsNyArNTgsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdFN0cmluZ2lmaWVyT3Bl
cmF0aW9uSW1wbGVtZW50ZWRBc093bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsK
IHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYp
OworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3Qg
Y2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRv
U3RyaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCmluZGV4IGMyZWRlYThkM2Jj
OTFjOTI2YTNjNzdiZTljNDY0NjYyOWRiODExMjMuLmUwMzQwMDk5ODA5NTZkY2JkMTQyYzhkOTBm
NjkwZTVmNTk2MDU3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVk
ZSAiSlNET01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTE3OSwxMCArMTgwLDE4IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5n
UHJvdG90eXBlRnVuCiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllck9w
ZXJhdGlvbk5hbWVkVG9TdHJpbmc+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFt
ZWRUb1N0cmluZ1Byb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdCb2R5Pigqc3RhdGUsICJ0b1N0cmlu
ZyIpOwogfQogCi1ib29sIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ093
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmc6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhl
YXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpz
Q2FzdDxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcqPihjZWxsKTsKKyAg
ICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFw
cGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9v
bCBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdPd25lcjo6aXNSZWFjaGFi
bGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQq
LCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVT
RURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VE
X1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25OYW1lZFRvU3RyaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nLmgKaW5kZXggZmY4
NDU2NmJjOGYyNzQ4MGE5NzA2YzA4MWZiY2IxNWE4ZmEyZDJhYi4uMTJkZTIzOGUwZjYyOGQ2MDlm
YjE4YzljMDVjNWY4MDBjNmIyNGFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmlu
Zy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
dHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuaApAQCAtNDksNiArNDksNyBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6
OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBT
bmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoK
ICAgICBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcoSlNDOjpTdHJ1Y3R1
cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1l
ZFRvU3RyaW5nPiYmKTsKIApAQCAtNTcsNyArNTgsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpT
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ093bmVyIDogcHVibGljIEpTQzo6
V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVG
cm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwg
SlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNs
b3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZp
ZXJSZWFkT25seUF0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZS5jcHAKaW5kZXggZDFl
MzdkMTYzZDc2MTA5YzYzYWY5Njk1MTQ5NDA3NzFkZjVlN2U1My4uMGZmNzk2NmM2NDFjYzhiNGIz
YjQyZDUzYjZiMGZlMWNjM2JhYzM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJp
bmdpZmllclJlYWRPbmx5QXR0cmlidXRlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
IkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Q
b2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0yMDEsMTAgKzIwMiwxOCBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVQcm90b3R5
cGVGdW5jdGlvbgogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJSZWFk
T25seUF0dHJpYnV0ZT46OmNhbGw8anNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZVBy
b3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdCb2R5Pigqc3RhdGUsICJ0b1N0cmluZyIpOwogfQogCi1i
b29sIEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVPd25lcjo6aXNSZWFjaGFibGVG
cm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBT
bG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJp
YnV0ZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVp
bGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFN0cmluZ2lmaWVy
UmVhZE9ubHlBdHRyaWJ1dGUqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RG
b3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIEJhc2U6OmhlYXBTbmFw
c2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5
QXR0cmlidXRlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNo
YXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BB
UkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxz
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmli
dXRlLmgKaW5kZXggMzQyY2E1OWZhMWRkODE4OTg0ZjgzNDBjOWZkMWVjNDRiYWRmMGNiNS4uNmRj
YmRjOGQ5NTVlNWIyZGViNWViMDEyNTA1M2MyMjUyOGI1ZDQ5MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9u
bHlBdHRyaWJ1dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZS5oCkBAIC00OSw2ICs0OSw3IEBA
IHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9y
KEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQg
aGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVj
dGVkOgogICAgIEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUoSlNDOjpTdHJ1Y3R1
cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJp
YnV0ZT4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RT
dHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxl
T3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RW
aXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3Im
LCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0
ZUF0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuY3BwCmluZGV4IGFhNTQxMjFmOGMy
NzBiMzE3ZTRiY2VjYjI3ODI0ZWIzYmIwMzAxY2IuLmMzZjMwZjYzY2E3OTQ1NWI4M2I4NTM0Y2M0
OTc0N2MxNGU3NjljMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVy
UmVhZFdyaXRlQXR0cmlidXRlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkpTRE9N
T3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJ
bmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVy
UHJlcGFyYXRpb25zLmg+CkBAIC0yMTksMTAgKzIyMCwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlUHJvdG90eXBlRnVu
Y3RpbwogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVB
dHRyaWJ1dGU+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlUHJvdG90
eXBlRnVuY3Rpb25Ub1N0cmluZ0JvZHk+KCpzdGF0ZSwgInRvU3RyaW5nIik7CiB9CiAKLWJvb2wg
SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVPd25lcjo6aXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90
VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1
dGU6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxk
ZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTdHJpbmdpZmllclJl
YWRXcml0ZUF0dHJpYnV0ZSo+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZv
ckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgQmFzZTo6aGVhcFNuYXBz
aG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRl
QXR0cmlidXRlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNo
YXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BB
UkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxz
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRy
aWJ1dGUuaAppbmRleCBkZGE0ZDlkMTA0MWVlMDU3MDc3YTYyNjNkNDA3NjIzZjk5ZDE4OWE3Li5j
YjIxYzNlZDQ1NTAxMjg0YTM1ZDJmNjQ1Y2ZhOWIxMDM1YmY5Mzk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFk
V3JpdGVBdHRyaWJ1dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuaApAQCAtNDksNiArNDks
NyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1
Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2
b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHBy
b3RlY3RlZDoKICAgICBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZShKU0M6OlN0
cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RTdHJpbmdpZmllclJlYWRXcml0
ZUF0dHJpYnV0ZT4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBK
U1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZU93bmVyIDogcHVibGljIEpTQzo6V2Vh
a0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlND
OjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RW
aXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZz
LmNwcAppbmRleCBhZDdmYTdmZTA1NzIyOWIyYmM5OWQzZGZlYzZiMTU5NTU5OGM2ZTgwLi5kMjdl
NWJlN2RlNjA3OTAzYTMwZmQ2NjFkZWVhOTA3ZDEwNzhjYTkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5j
cHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJKU1Rlc3RTdWJPYmouaCIKICNpbmNsdWRl
ICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5j
dGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1
aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0FycmF5Lmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KQEAg
LTc0MSwxMCArNzQyLDE4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlw
ZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb24oCiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb25Cb2R5Pigqc3RhdGUsICJtZXRob2RXaXRoRXhjZXB0
aW9uIik7CiB9CiAKLWJvb2wgSlNUZXN0VHlwZWRlZnNPd25lcjo6aXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90Vmlz
aXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0VHlwZWRlZnM6OmhlYXBTbmFwc2hvdChKU0NlbGwq
IGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09i
amVjdCA9IGpzQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3Jh
cHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgQmFz
ZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdFR5cGVkZWZz
T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFz
b24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0
b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFR5cGVkZWZzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0VHlwZWRlZnMuaAppbmRleCBkOGZiMGY1YzU1NjY3MTdkYzdiMTljOTQ5YjlmZGRlYjdlY2Ex
ZTVlLi4zNmYyYWVkODNhNGExYTYxN2NjZmQzODI4NTc0NWIwZWI4OTVmNmVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlw
ZWRlZnMuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpT
Qzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9i
amVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBT
bmFwc2hvdEJ1aWxkZXImKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGUgfCBCYXNlOjpTdHJ1Y3R1
cmVGbGFnczsKIHByb3RlY3RlZDoKQEAgLTU5LDcgKzYwLDcgQEAgcHJvdGVjdGVkOgogCiBjbGFz
cyBKU1Rlc3RUeXBlZGVmc093bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1
YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOwor
ICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hh
cioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
Piwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAppbmRleCBlZGYz
NGE5ZTBhNzFiMmJiN2IwNDMxN2U0N2YwNDdhZDkzOTQyODk3Li4zNWZmOWMwNTdjM2U0NzNmZjBm
ZTk3NDg1ZWMwZGM0OGNjODQ4YjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKQEAgLTM1LDYg
KzM1LDcgQEAgdHlwZWRlZiAoCiAgICAgQ29uc3RydWN0b3IsCiAgICAgQ29uc3RydWN0b3JDYWxs
V2l0aD1Eb2N1bWVudCwKICAgICBDdXN0b21Ub0pTT2JqZWN0LAorICAgIEN1c3RvbUhlYXBTbmFw
c2hvdCwKICAgICBET01KSVQsCiAgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCiAgICAg
SlNDdXN0b21IZWFkZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggYTMyZDBmNjA4
Mzk1MTBjMTM1M2U4MDJjNmRhZDMxYzgyNWZmMjIzZC4uMmI0MTUwZjYzODdkMDU3YzEwN2VlZGVm
ZjU2MTQ5ZDFhYzczMGZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMzMsNiAr
MzMsNyBAQCB0eXBlZGVmIFVTVlN0cmluZyBDU1NPTVN0cmluZzsKICAgICBDdXN0b21HZXRPd25Q
cm9wZXJ0eU5hbWVzLAogICAgIEN1c3RvbUdldE93blByb3BlcnR5U2xvdCwKICAgICBDdXN0b21H
ZXRQcm90b3R5cGUsCisgICAgQ3VzdG9tSGVhcFNuYXBzaG90LAogICAgIEN1c3RvbVByZXZlbnRF
eHRlbnNpb25zLAogICAgIEN1c3RvbVByb3h5VG9KU09iamVjdCwKICAgICBDdXN0b21QdXQsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJzL0hl
YXBTbmFwc2hvdC9IZWFwU25hcHNob3QuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Xb3JrZXJzL0hlYXBTbmFwc2hvdC9IZWFwU25hcHNob3QuanMKaW5kZXggYThmMmMz
MzAzMTc3YTY1Zjg2OWVmMGFjYTUwY2ViMWJiYzJmODNiMC4uNzQ1Nzc0YmIzOWFiYjYwZWNjMjMw
Y2UzNGIxZDRmM2ZkYzQwMmQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvV29ya2Vycy9IZWFwU25hcHNob3QvSGVhcFNuYXBzaG90LmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvSGVhcFNuYXBzaG90L0hl
YXBTbmFwc2hvdC5qcwpAQCAtODQsNiArODQsNyBAQCBIZWFwU25hcHNob3QgPSBjbGFzcyBIZWFw
U25hcHNob3QKIAogICAgICAgICBsZXQge3ZlcnNpb24sIG5vZGVzLCBub2RlQ2xhc3NOYW1lcywg
ZWRnZXMsIGVkZ2VUeXBlcywgZWRnZU5hbWVzfSA9IGpzb247CiAgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KHZlcnNpb24gPT09IDEsICJFeHBlY3QgSmF2YVNjcmlwdENvcmUgSGVhcCBTbmFwc2hvdCB2
ZXJzaW9uIDEiKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIXR5cGUgfHwgdHlwZSA9PT0gIklu
c3BlY3RvciIsICJFeHBlY3QgYW4gSW5zcGVjdG9yIEhlYXAgU25hcHNob3QiKTsKIAogICAgICAg
ICB0aGlzLl9ub2RlcyA9IG5vZGVzOwogICAgICAgICB0aGlzLl9ub2RlQ291bnQgPSBub2Rlcy5s
ZW5ndGggLyBub2RlRmllbGRDb3VudDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBmMDM4ZTM4MDlmYjk1OGQ2ZGRiOTNmNDY0ZjVmZTI2YzIwMDli
N2QwLi5hZmU3NWY5YTg5ZjI1MWI5MTkwNjg2NjcxYjcwNTY5Mzg1YWRjYmRiIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTgtMDgtMjMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIGR1bXBpbmcgR0MgaGVhcCBzbmFwc2hvdHMsIGFuZCBhIHZp
ZXdlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2
NDE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgIEFk
ZCBhIHZpZXdlciBmb3IgR0MgaGVhcCBzbmFwc2hvdHMuIEEgc25hcHNob3QgSlNPTiBmaWxlIGNh
biBiZSBkcmFnZ2VkIGludG8gdGhpcworICAgICAgICBwYWdlIGZvciBpbnNwZWN0aW9uIChvciBz
ZXQgdmlhIHRoZSAnZmlsZW5hbWUnIFVSTCBwYXJhbWV0ZXIpLgorCisgICAgICAgIEZvciBub3cs
IHRoaXMgcGFnZSBzaG93cyBhbGwgb2JqZWN0cywgYWxsIHJvb3RzLCBhbmQgdGhlIHNob3J0ZXN0
IHBhdGggZnJvbSBhIHJvb3QKKyAgICAgICAgdG8gYWxsIEhUTUxEb2N1bWVudHMgYW5kIFdpbmRv
d3MuCisKKyAgICAgICAgKiBHQ0hlYXBJbnNwZWN0b3IvZ2MtaGVhcC1pbnNwZWN0b3IuaHRtbDog
QWRkZWQuCisgICAgICAgICogR0NIZWFwSW5zcGVjdG9yL2hlYXAtYW5hbHlzaXMvSGVhcFNuYXBz
aG90LmpzOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9X
b3JrZXJzL0hlYXBTbmFwc2hvdC9IZWFwU25hcHNob3QuanMuCisgICAgICAgICogR0NIZWFwSW5z
cGVjdG9yL3NjcmlwdC9pbnRlcmZhY2UuanM6IEFkZGVkLgorCiAyMDE4LTA4LTIzICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dITFNMXSBBbGxv
dyBuYXRpdmUgdHlwZXMgdG8gaGF2ZSB0eXBlIGFyZ3VtZW50cyAobGlrZSAidmVjdG9yPGZsb2F0
LCA0PiIpCmRpZmYgLS1naXQgYS9Ub29scy9HQ0hlYXBJbnNwZWN0b3IvZ2MtaGVhcC1pbnNwZWN0
b3IuaHRtbCBiL1Rvb2xzL0dDSGVhcEluc3BlY3Rvci9nYy1oZWFwLWluc3BlY3Rvci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjI3MzlhOTNhZTk2YjFiZDEyM2Q4OTdhOGVhMzIxODcyNjNmMmM5OWEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9HQ0hlYXBJbnNwZWN0b3IvZ2MtaGVhcC1pbnNwZWN0b3IuaHRt
bApAQCAtMCwwICsxLDE3OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+
R0MgSGVhcCBJbnNwZWN0b3I8L3RpdGxlPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0ZjgiPgorICAg
IDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisKKyAgICAgICAgYm9keSB7
CisgICAgICAgICAgICBmb250LWZhbWlseTogIkhlbHZldGljYSBOZXVlIjsKKyAgICAgICAgICAg
IGxpbmUtaGVpZ2h0OiAxLjM7CisgICAgICAgIH0KKworICAgICAgICBoMSB7CisgICAgICAgICAg
ICBtYXJnaW4tYm90dG9tOiAwLjJlbTsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDsKKyAg
ICAgICAgfQorCisgICAgICAgIGxhYmVsIHsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsK
KyAgICAgICAgfQorCisgICAgICAgICNkcm9wVGFyZ2V0IHsKKyAgICAgICAgICAgIGZvbnQtc2l6
ZTogMTJwdDsKKyAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICAgICAgY29s
b3I6ICM4ODg7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB0
b3A6IDIwcHg7CisgICAgICAgICAgICByaWdodDogMjBweDsKKyAgICAgICAgICAgIGJvcmRlcjog
MnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4zKTsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29s
b3I6IHJnYmEoMCwgMCwgMCwgMC4xKTsKKyAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7CisgICAg
ICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4OworICAgICAgICB9CisKKyAgICAgICAgI2Ryb3BU
YXJnZXQuZHJhZ092ZXIgeworICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLCAw
LCAwLCAwLjEpOworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAw
LjUpOworICAgICAgICAgICAgY29sb3I6ICNkZGQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAg
ICAgIGRldGFpbHMgeworICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIHVsLnBhdGggeworICAgICAgICAgICAgbWFyZ2luLXRvcDogNXB4
OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB1bC5pbnN0YW5jZS1saXN0IHsKKyAgICAg
ICAgICAgIG1hcmdpbi10b3A6IDAuM2VtOworICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjJl
bTsKKyAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKKyAgICAgICAgfQorCisgICAg
ICAgIC5ub2RlLWlkOjpiZWZvcmUgeworICAgICAgICAgICAgY29udGVudDogJ0AnOworICAgICAg
ICB9CisKKyAgICAgICAgLm5vZGUtaWQgeworICAgICAgICAgICAgZm9udC1zaXplOiBzbWFsbGVy
OworICAgICAgICAgICAgY29sb3I6IHNpbHZlcjsKKyAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7
IC8qIFJlbW92ZSBpZiB5b3Ugd2FudCB0byBzZWUgY2VsbCBpZGVudGlmaWVycy4gKi8KKyAgICAg
ICAgfQorCisgICAgICAgIC5ub2RlLWFkZHJlc3MsIC5ub2RlLXNpemUsIC5ub2RlLWxhYmVsIHsK
KyAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisgICAgICAgICAgICBjb2xvcjog
Z3JheTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLm5vZGUtc2l6ZSB7CisgICAgICAg
ICAgICBkaXNwbGF5OiBub25lOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAubm9kZS1n
Yy1yb290IHsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogc21hbGxlcjsKKyAgICAgICAgICAgIGNv
bG9yOiBtYXJvb247CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5ub2RlLWdjLXJvb3Qg
aW1nIHsKKyAgICAgICAgICAgIG1hcmdpbjogMCAzcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEu
NGVtOworICAgICAgICAgICAgd2lkdGg6IDEuNGVtOworICAgICAgICAgICAgdmVydGljYWwtYWxp
Z246IG1pZGRsZTsKKyAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKKyAgICAgICAgICAgIGRp
c3BsYXk6IG5vbmU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5lZGdlOjpiZWZvcmUg
eworICAgICAgICAgICAgY29udGVudDogJyDin7kgJzsKKyAgICAgICAgICAgIGNvbG9yOiBncmF5
OworICAgICAgICB9CisKKyAgICAgICAgLmVkZ2U6OmFmdGVyIHsKKyAgICAgICAgICAgIGNvbnRl
bnQ6ICcg4p+5JzsKKyAgICAgICAgICAgIGNvbG9yOiBncmF5OworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICAuZWRnZS1kYXRhIHsKKyAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3Bh
Y2U7CisgICAgICAgICAgICBjb2xvcjogZ3JheTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAg
ICAgdWwucGF0aCB7CisgICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgICNkZXNjcmlwdGlvbiB7CisgICAgICAgICAgICBwb3NpdGlv
bjogZml4ZWQ7CisgICAgICAgICAgICBtYXJnaW46IDMwMHB4IGNhbGMoKDEwMHZ3IC0gNTAwcHgp
IC8gMik7CisgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMyk7
CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7CisgICAg
ICAgICAgICBwYWRkaW5nOiAyMHB4IDUwcHg7CisgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAx
MHB4OworICAgICAgICAgICAgd2lkdGg6IDUwMHB4OworICAgICAgICB9CisKKyAgICAgICAgI2Rl
c2NyaXB0aW9uID4gaDEgeworICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDsKKyAgICAgICAg
ICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICNk
ZXNjcmlwdGlvbiBjb2RlIHsKKyAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgICAg
ICAgbWFyZ2luOiAxNXB4IDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICNkZXNjcmlw
dGlvbi5oaWRkZW4geworICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgI3VpQ29udGFpbmVyIHsKKyAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7
CisgICAgICAgIH0KKyAgICAgICAgCisgICAgPC9zdHlsZT4KKworICAgIDxzY3JpcHQgc3JjPSJz
Y3JpcHQvaW50ZXJmYWNlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iaGVhcC1hbmFs
eXNpcy9IZWFwU25hcHNob3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGhl
YWRlcj4KKyAgICA8ZGl2IGlkPSJkcm9wVGFyZ2V0Ij5Ecm9wIEdDIGhlYXAgSlNPTiBmaWxlIGhl
cmUgdG8gbG9hZC48L2Rpdj4KKyAgICA8L2hlYWRlcj4KKworICAgIDxzZWN0aW9uIGlkPSJkZXNj
cmlwdGlvbiI+CisgICAgICAgIDxoMT5HQyBoZWFwIGRlYnVnZ2VyPC9oMj4KKyAgICAgICAgPHA+
VGhpcyBwYWdlIGlzIGZvciBhbmFseXppbmcgSlNPTiBkdW1wcyBvZiB0aGUgR0MgaGVhcC4gVG8g
ZGVidWcgYW4gaXNzdWUgdGhhdCB5b3UgdGhpbmsgbWlnaHQgYmUgYSBsZWFrZWQgb3IgYWJhbmRv
bmVkIG9iamVjdCAob2Z0ZW4gYSBEb2N1bWVudCBvciBKU0dsb2JhbE9iamVjdCksIGxvYWQgdGhl
IHRlc3QgcGFnZSwgdGhlbiBuYXZpZ2F0ZSB0byBhYm91dDpibGFuayBvciBvdGhlciBzaW1wbGUg
cGFnZS4gTm93IHNpbXVsYXRlIGEgbWVtb3J5IHdhcm5pbmcgKHRvIGNsZWFyIHRoZSBwYWdlIGNh
Y2hlKSBieSBpc3N1aW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBpbiBhIFRlcm1pbmFsIHdpbmRv
dzoKKyAgICAgICAgPGNvZGU+bm90aWZ5dXRpbCAtcCBvcmcuV2ViS2l0Lmxvd01lbW9yeTwvY29k
ZT4KKyAgICAgICAgCisgICAgICAgIFlvdSBjYW4gbm93IGluc3BlY3QgdGhlIGxpc3Qgb2YgbGl2
ZSBkb2N1bWVudHMgdmlhOgorICAgICAgICA8Y29kZT5ub3RpZnl1dGlsIC1wIGNvbS5hcHBsZS5X
ZWJLaXQuc2hvd0FsbERvY3VtZW50czwvY29kZT4KKyAgICAgICAgCisgICAgICAgIHdoaWNoIHBy
aW50cyBpdHMgb3V0cHV0IHRvIHRoZSBzeXN0ZW0gbG9nLiBJZiB0aGlzIGxpc3RzIGRvY3VtZW50
cyBvdGhlciB0aGFuIHRoZSBjdXJyZW50IHBhZ2UsIHlvdSBtYXkgaGF2ZSBhIGxlYWtlZCBvciBh
YmFuZG9uZWQgRG9jdW1lbnQuIFRvIHNlZSBpZiB0aGUgR0MgaGVhcCBpcyByZWZlcmVuY2luZyB0
aGF0IERvY3VtZW50LCBvYnRhaW4gYSBHQyBoZWFwIGR1bXA6CisgICAgICAgIDxjb2RlPm5vdGlm
eXV0aWwgLXAgY29tLmFwcGxlLldlYktpdC5kdW1wR0NIZWFwPC9jb2RlPgorICAgICAgICAKKyAg
ICAgICAgVGhhdCBjb21tYW5kIHdpbGwgZ2VuZXJhdGUgYSBKU09OIGZpbGUgaW4gL3RtcCAob3Ig
ZXF1aXZhbGVudCk7IHRoZSBmaWxlIHBhdGggaXMgZHVtcGVkIHRvIHRoZSBzeXN0ZW0gbG9nLiBE
cmFnIHRoYXQgZmlsZSBvbnRvIHRoZSBkcm9wIHRhcmdldCBpbiB0aGUgdG9wIHJpZ2h0IChvciB1
c2UgdGhlID9maWxlbmFtZT0gVVJMIHBhcmFtZXRlcikuCisgICAgICAgIDwvcD4KKyAgICA8L3Nl
Y3Rpb24+CisKKyAgICA8c2VjdGlvbiBpZD0idWlDb250YWluZXIiPgorCisgICAgICAgIDxkaXYg
aWQ9InJvb3RlZCI+CisgICAgICAgIDwvZGl2PgorCisgICAgICAgIDxoMT5BbGwgcGF0aHMgdG/i
gKY8L2gxPgorICAgICAgICA8ZGl2IGlkPSJhbGwtcGF0aHMiPgorICAgICAgICA8L2Rpdj4KKwor
ICAgICAgICA8aDE+T2JqZWN0czwvaDE+CisgICAgICAgIDxzZWN0aW9uIGlkPSJjYXRlZ29yaWVz
Ij4KKyAgICAgICAgPC9zZWN0aW9uPgorCisgICAgICAgIDxoMT5Sb290czwvaDE+CisgICAgICAg
IDxzZWN0aW9uIGlkPSJyb290cyI+CisgICAgICAgIDwvc2VjdGlvbj4KKyAgICA8L3NlY3Rpb24+
CisgICAgCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9HQ0hlYXBJbnNwZWN0
b3IvaGVhcC1hbmFseXNpcy9IZWFwU25hcHNob3QuanMgYi9Ub29scy9HQ0hlYXBJbnNwZWN0b3Iv
aGVhcC1hbmFseXNpcy9IZWFwU25hcHNob3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzI3NTk4ODQ1YTY1MTcw
ZWQ3ZTJiOGEzYmJlOTIwZTM0YzRhMzM2MwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0dDSGVh
cEluc3BlY3Rvci9oZWFwLWFuYWx5c2lzL0hlYXBTbmFwc2hvdC5qcwpAQCAtMCwwICsxLDg0OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisv
LyBub2RlcworLy8gWzwwOmlkPiwgPDE6c2l6ZT4sIDwyOmNsYXNzTmFtZVRhYmxlSW5kZXg+LCA8
MzppbnRlcm5hbD4sIDw0OmxhYmVsSW5kZXg+LCA8NTphZGRyZXNzPiwgPDY6d3JhcHBlZCBhZGRy
ZXNzPl0KK2xldCBub2RlRmllbGRDb3VudCA9IDc7Citjb25zdCBub2RlSWRPZmZzZXQgPSAwOwor
Y29uc3Qgbm9kZVNpemVPZmZzZXQgPSAxOworY29uc3Qgbm9kZUNsYXNzTmFtZU9mZnNldCA9IDI7
Citjb25zdCBub2RlSW50ZXJuYWxPZmZzZXQgPSAzOworY29uc3Qgbm9kZUxhYmVsT2Zmc2V0ID0g
NDsKK2NvbnN0IG5vZGVBZGRyZXNzT2Zmc2V0ID0gNTsKK2NvbnN0IG5vZGVXcmFwcGVkQWRkcmVz
c09mZnNldCA9IDY7CisKKy8vIGVkZ2VzCisvLyBbPDA6ZnJvbUlkPiwgPDE6dG9JZD4sIDwyOnR5
cGVUYWJsZUluZGV4PiwgPDM6ZWRnZURhdGFJbmRleE9yRWRnZU5hbWVJbmRleD5dCitjb25zdCBl
ZGdlRmllbGRDb3VudCA9IDQ7Citjb25zdCBlZGdlRnJvbUlkT2Zmc2V0ID0gMDsKK2NvbnN0IGVk
Z2VUb0lkT2Zmc2V0ID0gMTsKK2NvbnN0IGVkZ2VUeXBlT2Zmc2V0ID0gMjsKK2NvbnN0IGVkZ2VE
YXRhT2Zmc2V0ID0gMzsKKworLy8gcm9vdHMKKy8vIFs8MDppZD4sIDwxOmxhYmVsSW5kZXg+XQor
bGV0IHJvb3RGaWVsZENvdW50ID0gMzsKK2NvbnN0IHJvb3RJZE9mZnNldCA9IDA7Citjb25zdCBy
b290TGFiZWxPZmZzZXQgPSAxOworY29uc3QgcmVhY2hhYmlsaXR5UmVhc29uT2Zmc2V0ID0gMjsK
KworLy8gT3RoZXIgY29uc3RhbnRzLgorY29uc3Qgcm9vdE5vZGVJbmRleCA9IDA7Citjb25zdCBy
b290Tm9kZU9yZGluYWwgPSAwOworY29uc3Qgcm9vdE5vZGVJZGVudGlmaWVyID0gMDsKKworLy8g
VGVybWlub2xvZ3k6CisvLyAgIC0gYG5vZGVJbmRleGAgaXMgYW4gaW5kZXggaW50byB0aGUgYG5v
ZGVzYCBsaXN0LgorLy8gICAtIGBub2RlT3JkaW5hbGAgaXMgdGhlIG9yZGVyIG9mIHRoZSBub2Rl
IGluIHRoZSBgbm9kZXNgIGxpc3QuIChub2RlSW5kZXggLyBub2RlRmllbGRDb3VudCkuCisvLyAg
IC0gYG5vZGVJZGVudGlmaWVyYCBpcyB0aGUgbm9kZSdzIGlkIHZhbHVlLiAobm9kZXNbbm9kZUlu
ZGV4ICsgbm9kZUlkT2Zmc2V0XSkuCisvLyAgIC0gYGVkZ2VJbmRleGAgaXMgYW4gaW5kZXggaW50
byB0aGUgYGVkZ2VzYCBsaXN0LgorLy8KKy8vIExpc3RzOgorLy8gICAtIF9ub2RlT3JkaW5hbFRv
Rmlyc3RPdXRnb2luZ0VkZ2UgLSBgbm9kZU9yZGluYWxgIHRvIGBlZGdlSW5kZXhgIGluIGBlZGdl
c2AuCisvLyAgICAgSXRlcmF0ZSBlZGdlcyBieSB3YWxraW5nIGBlZGdlc2AgKGVkZ2VGaWVsZENv
dW50KSBhbmQgY2hlY2tpbmcgaWYgZnJvbUlkZW50aWZpZXIgaXMgY3VycmVudC4KKy8vICAgLSBf
bm9kZU9yZGluYWxUb0ZpcnN0SW5jb21pbmdFZGdlIC0gYG5vZGVPcmRpbmFsYCB0byBgaW5jb21p
bmdFZGdlSW5kZXhgIGluIGBpbmNvbWluZ0VkZ2VzYC4KKy8vICAgICBJdGVyYXRlIGVkZ2VzIGJ5
IHdhbGtpbmcgYGluY29taW5nRWRnZXNgIHVudGlsIGBub2RlT3JkaW5hbCsxYCdzIGZpcnN0IGlu
Y29taW5nIGVkZ2UgaW5kZXguCisvLyAgIC0gX25vZGVPcmRpbmFsVG9Eb21pbmF0b3JOb2RlT3Jk
aW5hbCAtIGBub2RlT3JkaW5hbGAgdG8gYG5vZGVPcmRpbmFsYCBvZiBkb21pbmF0b3IuCisvLyAg
IC0gX25vZGVPcmRpbmFsVG9SZXRhaW5lZFNpemVzIC0gYG5vZGVPcmRpbmFsYCB0byByZXRhaW4g
c2l6ZSB2YWx1ZS4KKy8vICAgLSBfbm9kZU9yZGluYWxJc0RlYWQgLSBgbm9kZU9yZGluYWxgIGlz
IGRlYWQgb3IgYWxpdmUuCisvLworLy8gVGVtcG9yYXJ5IExpc3RzOgorLy8gICAtIG5vZGVPcmRp
bmFsVG9Qb3N0T3JkZXJJbmRleCAtIGBub2RlT3JkaW5hbGAgdG8gYSBgcG9zdE9yZGVySW5kZXhg
LgorLy8gICAtIHBvc3RPcmRlckluZGV4VG9Ob2RlT3JkaW5hbCAtIGBwb3N0T3JkZXJJbmRleGAg
dG8gYSBgbm9kZU9yZGluYWxgLgorCitsZXQgbmV4dFNuYXBzaG90SWRlbnRpZmllciA9IDE7CisK
K0hlYXBTbmFwc2hvdCA9IGNsYXNzIEhlYXBTbmFwc2hvdAoreworICAgIGNvbnN0cnVjdG9yKG9i
amVjdElkLCBzbmFwc2hvdERhdGFTdHJpbmcsIHRpdGxlID0gbnVsbCkKKyAgICB7CisgICAgICAg
IHRoaXMuX2lkZW50aWZpZXIgPSBuZXh0U25hcHNob3RJZGVudGlmaWVyKys7CisgICAgICAgIHRo
aXMuX29iamVjdElkID0gb2JqZWN0SWQ7CisgICAgICAgIHRoaXMuX3RpdGxlID0gdGl0bGU7CisK
KyAgICAgICAgbGV0IGpzb24gPSBKU09OLnBhcnNlKHNuYXBzaG90RGF0YVN0cmluZyk7CisgICAg
ICAgIHNuYXBzaG90RGF0YVN0cmluZyA9IG51bGw7CisKKyAgICAgICAgbGV0IHt2ZXJzaW9uLCB0
eXBlLCBub2Rlcywgbm9kZUNsYXNzTmFtZXMsIGVkZ2VzLCBlZGdlVHlwZXMsIGVkZ2VOYW1lcywg
cm9vdHMsIGxhYmVsc30gPSBqc29uOworICAgICAgICBjb25zb2xlLmFzc2VydCh2ZXJzaW9uID09
PSAxLCAiRXhwZWN0IEphdmFTY3JpcHRDb3JlIEhlYXAgU25hcHNob3QgdmVyc2lvbiAxIik7Cisg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KHR5cGUgPT09ICJHQ0RlYnVnZ2luZyIsICJFeHBlY3QgYSBH
Q0RlYnVnZ2luZy10eXBlIHNuYXBzaG90Iik7CisKKyAgICAgICAgdGhpcy5fbm9kZXMgPSBub2Rl
czsKKyAgICAgICAgdGhpcy5fbm9kZUNvdW50ID0gbm9kZXMubGVuZ3RoIC8gbm9kZUZpZWxkQ291
bnQ7CisKKyAgICAgICAgdGhpcy5fcm9vdHMgPSByb290czsKKyAgICAgICAgdGhpcy5fcm9vdENv
dW50ID0gcm9vdHMubGVuZ3RoIC8gcm9vdEZpZWxkQ291bnQ7CisKKyAgICAgICAgdGhpcy5fZWRn
ZXMgPSBlZGdlczsKKyAgICAgICAgdGhpcy5fZWRnZUNvdW50ID0gZWRnZXMubGVuZ3RoIC8gZWRn
ZUZpZWxkQ291bnQ7CisKKyAgICAgICAgdGhpcy5fZWRnZVR5cGVzVGFibGUgPSBlZGdlVHlwZXM7
CisgICAgICAgIHRoaXMuX2VkZ2VOYW1lc1RhYmxlID0gZWRnZU5hbWVzOworICAgICAgICB0aGlz
Ll9ub2RlQ2xhc3NOYW1lc1RhYmxlID0gbm9kZUNsYXNzTmFtZXM7CisgICAgICAgIHRoaXMuX2xh
YmVsc1RhYmxlID0gbGFiZWxzOworCisgICAgICAgIHRoaXMuX3RvdGFsU2l6ZSA9IDA7CisgICAg
ICAgIHRoaXMuX25vZGVJZGVudGlmaWVyVG9PcmRpbmFsID0gbmV3IE1hcDsgLy8gPG5vZGUgaWRl
bnRpZmllcj4gPT4gbm9kZU9yZGluYWwKKyAgICAgICAgdGhpcy5fbGFzdE5vZGVJZGVudGlmaWVy
ID0gMDsKKyAgICAgICAgZm9yIChsZXQgbm9kZUluZGV4ID0gMDsgbm9kZUluZGV4IDwgbm9kZXMu
bGVuZ3RoOyBub2RlSW5kZXggKz0gbm9kZUZpZWxkQ291bnQpIHsKKyAgICAgICAgICAgIGxldCBu
b2RlT3JkaW5hbCA9IG5vZGVJbmRleCAvIG5vZGVGaWVsZENvdW50OworICAgICAgICAgICAgbGV0
IG5vZGVJZGVudGlmaWVyID0gbm9kZXNbbm9kZUluZGV4ICsgbm9kZUlkT2Zmc2V0XTsKKyAgICAg
ICAgICAgIHRoaXMuX25vZGVJZGVudGlmaWVyVG9PcmRpbmFsLnNldChub2RlSWRlbnRpZmllciwg
bm9kZU9yZGluYWwpOworICAgICAgICAgICAgdGhpcy5fdG90YWxTaXplICs9IG5vZGVzW25vZGVJ
bmRleCArIG5vZGVTaXplT2Zmc2V0XTsKKyAgICAgICAgICAgIGlmIChub2RlSWRlbnRpZmllciA+
IHRoaXMuX2xhc3ROb2RlSWRlbnRpZmllcikKKyAgICAgICAgICAgICAgICB0aGlzLl9sYXN0Tm9k
ZUlkZW50aWZpZXIgPSBub2RlSWRlbnRpZmllcjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMu
X3Jvb3RJZGVudGlmaWVyVG9SZWFzb25zID0gbmV3IE1hcDsgLy8gPG5vZGUgaWRlbnRpZmllcj4g
PT4gU2V0IG9mIHJvb3QgcmVhc29ucworICAgICAgICBmb3IgKGxldCByb290SW5kZXggPSAwOyBy
b290SW5kZXggPCByb290cy5sZW5ndGg7IHJvb3RJbmRleCArPSByb290RmllbGRDb3VudCkgewor
ICAgICAgICAgICAgbGV0IHJvb3RPcmRpbmFsID0gcm9vdEluZGV4IC8gcm9vdEZpZWxkQ291bnQ7
CisgICAgICAgICAgICBsZXQgcm9vdElkZW50aWZpZXIgPSByb290c1tyb290SW5kZXggKyByb290
SWRPZmZzZXRdOworICAgICAgICAgICAgbGV0IHJvb3RSZWFzb25JbmRleCA9IHJvb3RzW3Jvb3RJ
bmRleCArIHJvb3RMYWJlbE9mZnNldF07CisgICAgICAgICAgICBsZXQgcm9vdFJlYWNoYWJpbGl0
eUluZGV4ID0gcm9vdHNbcm9vdEluZGV4ICsgcmVhY2hhYmlsaXR5UmVhc29uT2Zmc2V0XTsKKwor
ICAgICAgICAgICAgbGV0IGV4aXN0aW5nUmVhc29ucyA9IHRoaXMuX3Jvb3RJZGVudGlmaWVyVG9S
ZWFzb25zLmdldChyb290SWRlbnRpZmllcik7CisgICAgICAgICAgICBpZiAoZXhpc3RpbmdSZWFz
b25zKSB7CisgICAgICAgICAgICAgICAgZXhpc3RpbmdSZWFzb25zLmFkZChyb290UmVhc29uSW5k
ZXgpOworICAgICAgICAgICAgICAgIGV4aXN0aW5nUmVhc29ucy5hZGQocm9vdFJlYWNoYWJpbGl0
eUluZGV4KTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRoaXMuX3Jvb3RJ
ZGVudGlmaWVyVG9SZWFzb25zLnNldChyb290SWRlbnRpZmllciwgbmV3IFNldChbcm9vdFJlYXNv
bkluZGV4LCByb290UmVhY2hhYmlsaXR5SW5kZXhdKSk7CisgICAgICAgIH0KKworICAgICAgICAv
LyBGSVhNRTogUmVwbGFjZSB0b0lkZW50aWZpZXIgYW5kIGZyb21JZGVudGlmaWVyIGluIGVkZ2Vz
IHdpdGggbm9kZUluZGV4IHRvIHJlZHVjZSBoYXNoIGxvb2t1cHM/CisKKyAgICAgICAgdGhpcy5f
bm9kZU9yZGluYWxUb0ZpcnN0T3V0Z29pbmdFZGdlID0gbmV3IFVpbnQzMkFycmF5KHRoaXMuX25v
ZGVDb3VudCk7IC8vIG5vZGVPcmRpbmFsID0+IGVkZ2VJbmRleAorICAgICAgICB0aGlzLl9idWls
ZE91dGdvaW5nRWRnZXMoKTsKKworICAgICAgICB0aGlzLl9ub2RlT3JkaW5hbFRvRmlyc3RJbmNv
bWluZ0VkZ2UgPSBuZXcgVWludDMyQXJyYXkodGhpcy5fbm9kZUNvdW50ICsgMSk7IC8vIG5vZGVP
cmRpbmFsID0+IGluY29taW5nTm9kZXMvaW5jb21pbmdFZGdlcyBpbmRleAorICAgICAgICB0aGlz
Ll9pbmNvbWluZ05vZGVzID0gbmV3IFVpbnQzMkFycmF5KHRoaXMuX2VkZ2VDb3VudCk7IC8vIGZy
b20gbm9kZU9yZGluYWxzLgorICAgICAgICB0aGlzLl9pbmNvbWluZ0VkZ2VzID0gbmV3IFVpbnQz
MkFycmF5KHRoaXMuX2VkZ2VDb3VudCk7IC8vIGVkZ2VJbmRleC4KKyAgICAgICAgdGhpcy5fYnVp
bGRJbmNvbWluZ0VkZ2VzKCk7CisKKyAgICAgICAgbGV0IHtub2RlT3JkaW5hbFRvUG9zdE9yZGVy
SW5kZXgsIHBvc3RPcmRlckluZGV4VG9Ob2RlT3JkaW5hbH0gPSB0aGlzLl9idWlsZFBvc3RPcmRl
ckluZGV4ZXMoKTsKKworICAgICAgICB0aGlzLl9ub2RlT3JkaW5hbFRvRG9taW5hdG9yTm9kZU9y
ZGluYWwgPSBuZXcgVWludDMyQXJyYXkodGhpcy5fbm9kZUNvdW50KTsKKyAgICAgICAgdGhpcy5f
bm9kZU9yZGluYWxJc0dDUm9vdCA9IG5ldyBVaW50OEFycmF5KHRoaXMuX25vZGVDb3VudCk7Cisg
ICAgICAgIHRoaXMuX2J1aWxkRG9taW5hdG9ySW5kZXhlcyhub2RlT3JkaW5hbFRvUG9zdE9yZGVy
SW5kZXgsIHBvc3RPcmRlckluZGV4VG9Ob2RlT3JkaW5hbCk7CisKKyAgICAgICAgbm9kZU9yZGlu
YWxUb1Bvc3RPcmRlckluZGV4ID0gbnVsbDsKKworICAgICAgICB0aGlzLl9ub2RlT3JkaW5hbFRv
UmV0YWluZWRTaXplcyA9IG5ldyBVaW50MzJBcnJheSh0aGlzLl9ub2RlQ291bnQpOworICAgICAg
ICB0aGlzLl9idWlsZFJldGFpbmVkU2l6ZXMocG9zdE9yZGVySW5kZXhUb05vZGVPcmRpbmFsKTsK
KworICAgICAgICBwb3N0T3JkZXJJbmRleFRvTm9kZU9yZGluYWwgPSBudWxsOworCisgICAgICAg
IHRoaXMuX25vZGVPcmRpbmFsSXNEZWFkID0gbmV3IFVpbnQ4QXJyYXkodGhpcy5fbm9kZUNvdW50
KTsKKworICAgICAgICBsZXQge2xpdmVTaXplLCBjYXRlZ29yaWVzfSA9IEhlYXBTbmFwc2hvdC51
cGRhdGVDYXRlZ29yaWVzQW5kTWV0YWRhdGEodGhpcyk7CisgICAgICAgIHRoaXMuX2xpdmVTaXpl
ID0gbGl2ZVNpemU7CisgICAgICAgIHRoaXMuX2NhdGVnb3JpZXMgPSBjYXRlZ29yaWVzOworICAg
IH0KKworICAgIGdldCBwcm94eU9iamVjdElkKCkgeyByZXR1cm4gdGhpcy5fcHJveHlPYmplY3RJ
ZDsgfQorICAgIGdldCBpZGVudGlmaWVyKCkgeyByZXR1cm4gdGhpcy5faWRlbnRpZmllcjsgfQor
ICAgIGdldCB0aXRsZSgpIHsgcmV0dXJuIHRoaXMuX3RpdGxlOyB9CisgICAgZ2V0IHRvdGFsU2l6
ZSgpIHsgcmV0dXJuIHRoaXMuX3RvdGFsU2l6ZTsgfQorICAgIGdldCB0b3RhbE9iamVjdENvdW50
KCkgeyByZXR1cm4gdGhpcy5fdG90YWxPYmplY3RDb3VudDsgfQorICAgIGdldCBsaXZlU2l6ZSgp
IHsgcmV0dXJuIHRoaXMuX2xpdmVTaXplOyB9CisgICAgZ2V0IGNhdGVnb3JpZXMoKSB7IHJldHVy
biB0aGlzLl9jYXRlZ29yaWVzOyB9CisgICAgZ2V0IGludmFsaWQoKSB7IHJldHVybiB0aGlzLl9w
cm94eU9iamVjdElkID09PSAwOyB9CisKKyAgICAvLyBTdGF0aWMKKworICAgIHN0YXRpYyB1cGRh
dGVDYXRlZ29yaWVzQW5kTWV0YWRhdGEoc25hcHNob3QsIGFsbG93Tm9kZUlkZW50aWZpZXJDYWxs
YmFjaykKKyAgICB7CisgICAgICAgIGxldCBsaXZlU2l6ZSA9IDA7CisgICAgICAgIGxldCBjYXRl
Z29yaWVzID0ge307CisKKyAgICAgICAgbGV0IG5vZGVzID0gc25hcHNob3QuX25vZGVzOworICAg
ICAgICBsZXQgbm9kZUNsYXNzTmFtZXNUYWJsZSA9IHNuYXBzaG90Ll9ub2RlQ2xhc3NOYW1lc1Rh
YmxlOworICAgICAgICBsZXQgbm9kZU9yZGluYWxUb1JldGFpbmVkU2l6ZXMgPSBzbmFwc2hvdC5f
bm9kZU9yZGluYWxUb1JldGFpbmVkU2l6ZXM7CisgICAgICAgIGxldCBub2RlT3JkaW5hbElzRGVh
ZCA9IHNuYXBzaG90Ll9ub2RlT3JkaW5hbElzRGVhZDsKKworICAgICAgICAvLyBTa2lwIHRoZSA8
cm9vdD4gbm9kZS4KKyAgICAgICAgbGV0IGZpcnN0Tm9kZUluZGV4ID0gbm9kZUZpZWxkQ291bnQ7
CisgICAgICAgIGxldCBmaXJzdE5vZGVPcmRpbmFsID0gMTsKKyAgICAgICAgZm9yIChsZXQgbm9k
ZUluZGV4ID0gZmlyc3ROb2RlSW5kZXgsIG5vZGVPcmRpbmFsID0gZmlyc3ROb2RlT3JkaW5hbDsg
bm9kZUluZGV4IDwgbm9kZXMubGVuZ3RoOyBub2RlSW5kZXggKz0gbm9kZUZpZWxkQ291bnQsIG5v
ZGVPcmRpbmFsKyspIHsKKyAgICAgICAgICAgIGlmIChhbGxvd05vZGVJZGVudGlmaWVyQ2FsbGJh
Y2sgJiYgIWFsbG93Tm9kZUlkZW50aWZpZXJDYWxsYmFjayhub2Rlc1tub2RlSW5kZXggKyBub2Rl
SWRPZmZzZXRdKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgbGV0
IGNsYXNzTmFtZVRhYmxlSW5kZXggPSBub2Rlc1tub2RlSW5kZXggKyBub2RlQ2xhc3NOYW1lT2Zm
c2V0XTsKKyAgICAgICAgICAgIGxldCBjbGFzc05hbWUgPSBub2RlQ2xhc3NOYW1lc1RhYmxlW2Ns
YXNzTmFtZVRhYmxlSW5kZXhdOworICAgICAgICAgICAgbGV0IHNpemUgPSBub2Rlc1tub2RlSW5k
ZXggKyBub2RlU2l6ZU9mZnNldF07CisgICAgICAgICAgICBsZXQgcmV0YWluZWRTaXplID0gbm9k
ZU9yZGluYWxUb1JldGFpbmVkU2l6ZXNbbm9kZU9yZGluYWxdOworICAgICAgICAgICAgbGV0IGlu
dGVybmFsID0gbm9kZXNbbm9kZUluZGV4ICsgbm9kZUludGVybmFsT2Zmc2V0XSA/IHRydWUgOiBm
YWxzZTsKKyAgICAgICAgICAgIGxldCBkZWFkID0gbm9kZU9yZGluYWxJc0RlYWRbbm9kZU9yZGlu
YWxdID8gdHJ1ZSA6IGZhbHNlOworCisgICAgICAgICAgICBsZXQgY2F0ZWdvcnkgPSBjYXRlZ29y
aWVzW2NsYXNzTmFtZV07CisgICAgICAgICAgICBpZiAoIWNhdGVnb3J5KQorICAgICAgICAgICAg
ICAgIGNhdGVnb3J5ID0gY2F0ZWdvcmllc1tjbGFzc05hbWVdID0ge2NsYXNzTmFtZSwgc2l6ZTog
MCwgcmV0YWluZWRTaXplOiAwLCBjb3VudDogMCwgaW50ZXJuYWxDb3VudDogMCwgZGVhZENvdW50
OiAwfTsKKworICAgICAgICAgICAgY2F0ZWdvcnkuc2l6ZSArPSBzaXplOworICAgICAgICAgICAg
Y2F0ZWdvcnkucmV0YWluZWRTaXplICs9IHJldGFpbmVkU2l6ZTsKKyAgICAgICAgICAgIGNhdGVn
b3J5LmNvdW50ICs9IDE7CisgICAgICAgICAgICBpZiAoaW50ZXJuYWwpCisgICAgICAgICAgICAg
ICAgY2F0ZWdvcnkuaW50ZXJuYWxDb3VudCArPSAxOworICAgICAgICAgICAgaWYgKGRlYWQpCisg
ICAgICAgICAgICAgICAgY2F0ZWdvcnkuZGVhZENvdW50ICs9IDE7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgbGl2ZVNpemUgKz0gc2l6ZTsKKyAgICAgICAgfQorCisgICAgICAg
IHJldHVybiB7bGl2ZVNpemUsIGNhdGVnb3JpZXN9OworICAgIH0KKworICAgIHN0YXRpYyBhbGxv
Y2F0aW9uQnVja2V0Q291bnRzKHNuYXBzaG90LCBidWNrZXRTaXplcywgYWxsb3dOb2RlSWRlbnRp
ZmllckNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgbGV0IGNvdW50cyA9IG5ldyBBcnJheShidWNr
ZXRTaXplcy5sZW5ndGggKyAxKTsKKyAgICAgICAgbGV0IHJlbWFpbmRlckJ1Y2tldCA9IGNvdW50
cy5sZW5ndGggLSAxOworICAgICAgICBjb3VudHMuZmlsbCgwKTsKKworICAgICAgICBsZXQgbm9k
ZXMgPSBzbmFwc2hvdC5fbm9kZXM7CisKKyAgICAgICAgLy8gU2tpcCB0aGUgPHJvb3Q+IG5vZGUu
CisgICAgICAgIGxldCBmaXJzdE5vZGVJbmRleCA9IG5vZGVGaWVsZENvdW50OworCisgICAgb3V0
ZXI6CisgICAgICAgIGZvciAobGV0IG5vZGVJbmRleCA9IGZpcnN0Tm9kZUluZGV4OyBub2RlSW5k
ZXggPCBub2Rlcy5sZW5ndGg7IG5vZGVJbmRleCArPSBub2RlRmllbGRDb3VudCkgeworICAgICAg
ICAgICAgaWYgKGFsbG93Tm9kZUlkZW50aWZpZXJDYWxsYmFjayAmJiAhYWxsb3dOb2RlSWRlbnRp
ZmllckNhbGxiYWNrKG5vZGVzW25vZGVJbmRleCArIG5vZGVJZE9mZnNldF0pKQorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBsZXQgc2l6ZSA9IG5vZGVzW25vZGVJbmRl
eCArIG5vZGVTaXplT2Zmc2V0XTsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnVj
a2V0U2l6ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoc2l6ZSA8IGJ1Y2tl
dFNpemVzW2ldKSB7CisgICAgICAgICAgICAgICAgICAgIGNvdW50c1tpXSsrOworICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZSBvdXRlcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBjb3VudHNbcmVtYWluZGVyQnVja2V0XSsrOworICAgICAgICB9CisK
KyAgICAgICAgcmV0dXJuIGNvdW50czsKKyAgICB9CisKKyAgICBzdGF0aWMgaW5zdGFuY2VzV2l0
aENsYXNzTmFtZShzbmFwc2hvdCwgY2xhc3NOYW1lLCBhbGxvd05vZGVJZGVudGlmaWVyQ2FsbGJh
Y2spCisgICAgeworICAgICAgICBsZXQgaW5zdGFuY2VzID0gW107CisKKyAgICAgICAgbGV0IG5v
ZGVzID0gc25hcHNob3QuX25vZGVzOworICAgICAgICBsZXQgbm9kZUNsYXNzTmFtZXNUYWJsZSA9
IHNuYXBzaG90Ll9ub2RlQ2xhc3NOYW1lc1RhYmxlOworCisgICAgICAgIC8vIFNraXAgdGhlIDxy
b290PiBub2RlLgorICAgICAgICBsZXQgZmlyc3ROb2RlSW5kZXggPSBub2RlRmllbGRDb3VudDsK
KyAgICAgICAgbGV0IGZpcnN0Tm9kZU9yZGluYWwgPSAxOworICAgICAgICBmb3IgKGxldCBub2Rl
SW5kZXggPSBmaXJzdE5vZGVJbmRleCwgbm9kZU9yZGluYWwgPSBmaXJzdE5vZGVPcmRpbmFsOyBu
b2RlSW5kZXggPCBub2Rlcy5sZW5ndGg7IG5vZGVJbmRleCArPSBub2RlRmllbGRDb3VudCwgbm9k
ZU9yZGluYWwrKykgeworICAgICAgICAgICAgaWYgKGFsbG93Tm9kZUlkZW50aWZpZXJDYWxsYmFj
ayAmJiAhYWxsb3dOb2RlSWRlbnRpZmllckNhbGxiYWNrKG5vZGVzW25vZGVJbmRleCArIG5vZGVJ
ZE9mZnNldF0pKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBsZXQg
Y2xhc3NOYW1lVGFibGVJbmRleCA9IG5vZGVzW25vZGVJbmRleCArIG5vZGVDbGFzc05hbWVPZmZz
ZXRdOworICAgICAgICAgICAgaWYgKG5vZGVDbGFzc05hbWVzVGFibGVbY2xhc3NOYW1lVGFibGVJ
bmRleF0gPT09IGNsYXNzTmFtZSkKKyAgICAgICAgICAgICAgICBpbnN0YW5jZXMucHVzaChub2Rl
SW5kZXgpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGluc3RhbmNlcy5tYXAoc25hcHNo
b3Quc2VyaWFsaXplTm9kZSwgc25hcHNob3QpOworICAgIH0KKworICAgIC8vIFdvcmtlciBNZXRo
b2RzCisKKyAgICBhbGxvY2F0aW9uQnVja2V0Q291bnRzKGJ1Y2tldFNpemVzKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIEhlYXBTbmFwc2hvdC5hbGxvY2F0aW9uQnVja2V0Q291bnRzKHRoaXMsIGJ1
Y2tldFNpemVzKTsKKyAgICB9CisKKyAgICBpbnN0YW5jZXNXaXRoQ2xhc3NOYW1lKGNsYXNzTmFt
ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBIZWFwU25hcHNob3QuaW5zdGFuY2VzV2l0aENsYXNz
TmFtZSh0aGlzLCBjbGFzc05hbWUpOworICAgIH0KKworICAgIHVwZGF0ZSgpCisgICAgeworICAg
ICAgICByZXR1cm4gSGVhcFNuYXBzaG90LnVwZGF0ZUNhdGVnb3JpZXNBbmRNZXRhZGF0YSh0aGlz
KTsKKyAgICB9CisKKyAgICBub2RlV2l0aElkZW50aWZpZXIobm9kZUlkZW50aWZpZXIpCisgICAg
eworICAgICAgICBsZXQgbm9kZU9yZGluYWwgPSB0aGlzLl9ub2RlSWRlbnRpZmllclRvT3JkaW5h
bC5nZXQobm9kZUlkZW50aWZpZXIpOworICAgICAgICBsZXQgbm9kZUluZGV4ID0gbm9kZU9yZGlu
YWwgKiBub2RlRmllbGRDb3VudDsKKyAgICAgICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplTm9kZShu
b2RlSW5kZXgpOworICAgIH0KKworICAgIHNob3J0ZXN0R0NSb290UGF0aChub2RlSWRlbnRpZmll
cikKKyAgICB7CisgICAgICAgIC8vIFJldHVybnMgYW4gYXJyYXkgZnJvbSB0aGlzIG5vZGUgdG8g
YSBnY1Jvb3Qgbm9kZS4KKyAgICAgICAgLy8gRS5nLiBbTm9kZSAodGFyZ2V0KSwgRWRnZSwgTm9k
ZSwgRWRnZSwgTm9kZSAocm9vdCldLgorICAgICAgICAvLyBJbnRlcm5hbCBub2RlcyBhcmUgYXZv
aWRlZCwgc28gaWYgdGhlIHBhdGggaXMgZW1wdHkgdGhpcworICAgICAgICAvLyBub2RlIGlzIGVp
dGhlciBhIGdjUm9vdCBvciBvbmx5IHJlYWNoYWJsZSB2aWEgSW50ZXJuYWwgbm9kZXMuCisKKyAg
ICAgICAgbGV0IHBhdGhzID0gdGhpcy5fZ2NSb290UGF0aHMobm9kZUlkZW50aWZpZXIpOworICAg
ICAgICBpZiAoIXBhdGhzLmxlbmd0aCkKKyAgICAgICAgICAgIHJldHVybiBbXTsKKworICAgICAg
ICBwYXRocy5zb3J0KChhLCBiKSA9PiBhLmxlbmd0aCAtIGIubGVuZ3RoKTsKKworICAgICAgICBs
ZXQgc2hvcnRlc3RQYXRoV2l0aEdsb2JhbE9iamVjdCA9IG51bGw7CisgICAgICAgIGZvciAobGV0
IHBhdGggb2YgcGF0aHMpIHsKKyAgICAgICAgICAgIGxldCBsYXN0Tm9kZUluZGV4ID0gcGF0aFtw
YXRoLmxlbmd0aCAtIDFdLm5vZGU7CisgICAgICAgICAgICBpZiAodGhpcy5faXNOb2RlR2xvYmFs
T2JqZWN0KGxhc3ROb2RlSW5kZXgpKSB7CisgICAgICAgICAgICAgICAgc2hvcnRlc3RQYXRoV2l0
aEdsb2JhbE9iamVjdCA9IHBhdGg7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKworICAgICAgICBsZXQgc2hvcnRlc3RQYXRoID0gc2hvcnRlc3RQYXRo
V2l0aEdsb2JhbE9iamVjdCB8fCBwYXRoc1swXTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoIm5v
ZGUiIGluIHNob3J0ZXN0UGF0aFswXSwgIlBhdGggc2hvdWxkIHN0YXJ0IHdpdGggYSBub2RlIik7
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCJub2RlIiBpbiBzaG9ydGVzdFBhdGhbc2hvcnRlc3RQ
YXRoLmxlbmd0aCAtIDFdLCAiUGF0aCBzaG91bGQgZW5kIHdpdGggYSBub2RlIik7CisKKyAgICAg
ICAgcmV0dXJuIHNob3J0ZXN0UGF0aC5tYXAoKGNvbXBvbmVudCkgPT4geworICAgICAgICAgICAg
aWYgKGNvbXBvbmVudC5ub2RlKQorICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNlcmlhbGl6
ZU5vZGUoY29tcG9uZW50Lm5vZGUpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VyaWFsaXpl
RWRnZShjb21wb25lbnQuZWRnZSk7CisgICAgICAgIH0pOworICAgIH0KKyAgICAKKyAgICByb290
Tm9kZXMoKQorICAgIHsKKyAgICAgICAgbGV0IHJvb3ROb2RlSW5kZXhTZXQgPSBuZXcgU2V0Owor
CisgICAgICAgIC8vIElkZW50aWZpZXJzIGNhbiBvY2N1ciBtdWx0aXBsZSB0aW1lcyBpbiB0aGUg
cm9vdHMgbGlzdC4KKyAgICAgICAgZm9yIChsZXQgcm9vdEluZGV4ID0gMDsgcm9vdEluZGV4IDwg
dGhpcy5fcm9vdHMubGVuZ3RoOyByb290SW5kZXggKz0gcm9vdEZpZWxkQ291bnQpIHsKKyAgICAg
ICAgICAgIGxldCByb290T3JkaW5hbCA9IHJvb3RJbmRleCAvIHJvb3RGaWVsZENvdW50OworICAg
ICAgICAgICAgbGV0IHJvb3RJZGVudGlmaWVyID0gdGhpcy5fcm9vdHNbcm9vdEluZGV4ICsgcm9v
dElkT2Zmc2V0XTsKKworICAgICAgICAgICAgbGV0IHRvTm9kZU9yZGluYWwgPSB0aGlzLl9ub2Rl
SWRlbnRpZmllclRvT3JkaW5hbC5nZXQocm9vdElkZW50aWZpZXIpOworICAgICAgICAgICAgbGV0
IHRvTm9kZUluZGV4ID0gdG9Ob2RlT3JkaW5hbCAqIG5vZGVGaWVsZENvdW50OworCisgICAgICAg
ICAgICByb290Tm9kZUluZGV4U2V0LmFkZCh0b05vZGVJbmRleCk7CisgICAgICAgIH0KKworICAg
ICAgICByZXR1cm4gQXJyYXkuZnJvbShyb290Tm9kZUluZGV4U2V0LnZhbHVlcygpKS5tYXAodGhp
cy5zZXJpYWxpemVOb2RlLCB0aGlzKTsKKyAgICB9CisgICAgCisgICAgcmVhc29uTmFtZXNGb3JS
b290KHJvb3RJZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAgbGV0IHJlYXNvbkluZGV4ZXMgPSB0
aGlzLl9yb290SWRlbnRpZmllclRvUmVhc29ucy5nZXQocm9vdElkZW50aWZpZXIpOworICAgICAg
ICBpZiAoIXJlYXNvbkluZGV4ZXMpCisgICAgICAgICAgICByZXR1cm4gW107CisgICAgICAgIHJl
dHVybiBBcnJheS5mcm9tKHJlYXNvbkluZGV4ZXMpLm1hcCh0aGlzLmxhYmVsRm9ySW5kZXgsIHRo
aXMpLmZpbHRlcihhID0+IGEgIT0gMCkKKyAgICB9CisKKyAgICBkb21pbmF0ZWROb2Rlcyhub2Rl
SWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIGxldCBkb21pbmF0ZWROb2RlcyA9IFtdOworCisg
ICAgICAgIGxldCB0YXJnZXROb2RlT3JkaW5hbCA9IHRoaXMuX25vZGVJZGVudGlmaWVyVG9PcmRp
bmFsLmdldChub2RlSWRlbnRpZmllcik7CisgICAgICAgIGZvciAobGV0IG5vZGVPcmRpbmFsID0g
MDsgbm9kZU9yZGluYWwgPCB0aGlzLl9ub2RlQ291bnQ7ICsrbm9kZU9yZGluYWwpIHsKKyAgICAg
ICAgICAgIGlmICh0aGlzLl9ub2RlT3JkaW5hbFRvRG9taW5hdG9yTm9kZU9yZGluYWxbbm9kZU9y
ZGluYWxdID09PSB0YXJnZXROb2RlT3JkaW5hbCkKKyAgICAgICAgICAgICAgICBkb21pbmF0ZWRO
b2Rlcy5wdXNoKG5vZGVPcmRpbmFsICogbm9kZUZpZWxkQ291bnQpOworICAgICAgICB9CisKKyAg
ICAgICAgcmV0dXJuIGRvbWluYXRlZE5vZGVzLm1hcCh0aGlzLnNlcmlhbGl6ZU5vZGUsIHRoaXMp
OworICAgIH0KKworICAgIHJldGFpbmVkTm9kZXMobm9kZUlkZW50aWZpZXIpCisgICAgeworICAg
ICAgICBsZXQgcmV0YWluZWROb2RlcyA9IFtdOworICAgICAgICBsZXQgZWRnZXMgPSBbXTsKKwor
ICAgICAgICBsZXQgbm9kZU9yZGluYWwgPSB0aGlzLl9ub2RlSWRlbnRpZmllclRvT3JkaW5hbC5n
ZXQobm9kZUlkZW50aWZpZXIpOworICAgICAgICBsZXQgZWRnZUluZGV4ID0gdGhpcy5fbm9kZU9y
ZGluYWxUb0ZpcnN0T3V0Z29pbmdFZGdlW25vZGVPcmRpbmFsXTsKKyAgICAgICAgZm9yICg7IHRo
aXMuX2VkZ2VzW2VkZ2VJbmRleCArIGVkZ2VGcm9tSWRPZmZzZXRdID09PSBub2RlSWRlbnRpZmll
cjsgZWRnZUluZGV4ICs9IGVkZ2VGaWVsZENvdW50KSB7CisgICAgICAgICAgICBsZXQgdG9Ob2Rl
SWRlbnRpZmllciA9IHRoaXMuX2VkZ2VzW2VkZ2VJbmRleCArIGVkZ2VUb0lkT2Zmc2V0XTsKKyAg
ICAgICAgICAgIGxldCB0b05vZGVPcmRpbmFsID0gdGhpcy5fbm9kZUlkZW50aWZpZXJUb09yZGlu
YWwuZ2V0KHRvTm9kZUlkZW50aWZpZXIpOworICAgICAgICAgICAgbGV0IHRvTm9kZUluZGV4ID0g
dG9Ob2RlT3JkaW5hbCAqIG5vZGVGaWVsZENvdW50OworICAgICAgICAgICAgcmV0YWluZWROb2Rl
cy5wdXNoKHRvTm9kZUluZGV4KTsKKyAgICAgICAgICAgIGVkZ2VzLnB1c2goZWRnZUluZGV4KTsK
KyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICByZXRhaW5lZE5vZGVz
OiByZXRhaW5lZE5vZGVzLm1hcCh0aGlzLnNlcmlhbGl6ZU5vZGUsIHRoaXMpLAorICAgICAgICAg
ICAgZWRnZXM6IGVkZ2VzLm1hcCh0aGlzLnNlcmlhbGl6ZUVkZ2UsIHRoaXMpLAorICAgICAgICB9
OworICAgIH0KKworICAgIHJldGFpbmVycyhub2RlSWRlbnRpZmllcikKKyAgICB7CisgICAgICAg
IGxldCByZXRhaW5lcnMgPSBbXTsKKyAgICAgICAgbGV0IGVkZ2VzID0gW107CisKKyAgICAgICAg
bGV0IG5vZGVPcmRpbmFsID0gdGhpcy5fbm9kZUlkZW50aWZpZXJUb09yZGluYWwuZ2V0KG5vZGVJ
ZGVudGlmaWVyKTsKKyAgICAgICAgbGV0IGluY29taW5nRWRnZUluZGV4ID0gdGhpcy5fbm9kZU9y
ZGluYWxUb0ZpcnN0SW5jb21pbmdFZGdlW25vZGVPcmRpbmFsXTsKKyAgICAgICAgbGV0IGluY29t
aW5nRWRnZUluZGV4RW5kID0gdGhpcy5fbm9kZU9yZGluYWxUb0ZpcnN0SW5jb21pbmdFZGdlW25v
ZGVPcmRpbmFsICsgMV07CisgICAgICAgIGZvciAobGV0IGVkZ2VJbmRleCA9IGluY29taW5nRWRn
ZUluZGV4OyBlZGdlSW5kZXggPCBpbmNvbWluZ0VkZ2VJbmRleEVuZDsgKytlZGdlSW5kZXgpIHsK
KyAgICAgICAgICAgIGxldCBmcm9tTm9kZU9yZGluYWwgPSB0aGlzLl9pbmNvbWluZ05vZGVzW2Vk
Z2VJbmRleF07CisgICAgICAgICAgICBsZXQgZnJvbU5vZGVJbmRleCA9IGZyb21Ob2RlT3JkaW5h
bCAqIG5vZGVGaWVsZENvdW50OworICAgICAgICAgICAgcmV0YWluZXJzLnB1c2goZnJvbU5vZGVJ
bmRleCk7CisgICAgICAgICAgICBlZGdlcy5wdXNoKHRoaXMuX2luY29taW5nRWRnZXNbZWRnZUlu
ZGV4XSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgcmV0YWlu
ZXJzOiByZXRhaW5lcnMubWFwKHRoaXMuc2VyaWFsaXplTm9kZSwgdGhpcyksCisgICAgICAgICAg
ICBlZGdlczogZWRnZXMubWFwKHRoaXMuc2VyaWFsaXplRWRnZSwgdGhpcyksCisgICAgICAgIH07
CisgICAgfQorCisgICAgdXBkYXRlRGVhZE5vZGVzQW5kR2F0aGVyQ29sbGVjdGlvbkRhdGEoc25h
cHNob3RzKQorICAgIHsKKyAgICAgICAgbGV0IHByZXZpb3VzU25hcHNob3RJbmRleCA9IHNuYXBz
aG90cy5pbmRleE9mKHRoaXMpIC0gMTsKKyAgICAgICAgbGV0IHByZXZpb3VzU25hcHNob3QgPSBz
bmFwc2hvdHNbcHJldmlvdXNTbmFwc2hvdEluZGV4XTsKKyAgICAgICAgaWYgKCFwcmV2aW91c1Nu
YXBzaG90KQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAgbGV0IGxhc3ROb2Rl
SWRlbnRpZmllciA9IHByZXZpb3VzU25hcHNob3QuX2xhc3ROb2RlSWRlbnRpZmllcjsKKworICAg
ICAgICAvLyBBbGwgb2YgdGhlIG5vZGUgaWRlbnRpZmllcnMgdGhhdCBjb3VsZCBoYXZlIGV4aXN0
ZWQgcHJpb3IgdG8gdGhpcyBzbmFwc2hvdC4KKyAgICAgICAgbGV0IGtub3duID0gbmV3IE1hcDsK
KyAgICAgICAgZm9yIChsZXQgbm9kZUluZGV4ID0gMDsgbm9kZUluZGV4IDwgdGhpcy5fbm9kZXMu
bGVuZ3RoOyBub2RlSW5kZXggKz0gbm9kZUZpZWxkQ291bnQpIHsKKyAgICAgICAgICAgIGxldCBu
b2RlSWRlbnRpZmllciA9IHRoaXMuX25vZGVzW25vZGVJbmRleCArIG5vZGVJZE9mZnNldF07Cisg
ICAgICAgICAgICBpZiAobm9kZUlkZW50aWZpZXIgPiBsYXN0Tm9kZUlkZW50aWZpZXIpCisgICAg
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBrbm93bi5zZXQobm9kZUlkZW50aWZp
ZXIsIG5vZGVJbmRleCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBEZXRlcm1pbmUgd2hpY2gg
bm9kZSBpZGVudGlmaWVycyBoYXZlIHNpbmNlIGJlZW4gZGVsZXRlZC4KKyAgICAgICAgbGV0IGNv
bGxlY3RlZE5vZGVzTGlzdCA9IFtdOworICAgICAgICBmb3IgKGxldCBub2RlSW5kZXggPSAwOyBu
b2RlSW5kZXggPCBwcmV2aW91c1NuYXBzaG90Ll9ub2Rlcy5sZW5ndGg7IG5vZGVJbmRleCArPSBu
b2RlRmllbGRDb3VudCkgeworICAgICAgICAgICAgbGV0IG5vZGVJZGVudGlmaWVyID0gcHJldmlv
dXNTbmFwc2hvdC5fbm9kZXNbbm9kZUluZGV4ICsgbm9kZUlkT2Zmc2V0XTsKKyAgICAgICAgICAg
IGxldCB3YXNEZWxldGVkID0gIWtub3duLmhhcyhub2RlSWRlbnRpZmllcik7CisgICAgICAgICAg
ICBpZiAod2FzRGVsZXRlZCkKKyAgICAgICAgICAgICAgICBjb2xsZWN0ZWROb2Rlc0xpc3QucHVz
aChub2RlSWRlbnRpZmllcik7CisgICAgICAgIH0KKworICAgICAgICAvLyBVcGRhdGUgZGVhZCBu
b2RlcyBpbiBwcmV2aW91cyBzbmFwc2hvdHMuCisgICAgICAgIGxldCBhZmZlY3RlZFNuYXBzaG90
cyA9IFtdOworICAgICAgICBmb3IgKGxldCBzbmFwc2hvdCBvZiBzbmFwc2hvdHMpIHsKKyAgICAg
ICAgICAgIGlmIChzbmFwc2hvdCA9PT0gdGhpcykKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGlmIChzbmFwc2hvdC5fbWFya0RlYWROb2Rlcyhjb2xsZWN0ZWROb2Rlc0xpc3Qp
KQorICAgICAgICAgICAgICAgIGFmZmVjdGVkU25hcHNob3RzLnB1c2goc25hcHNob3QuX2lkZW50
aWZpZXIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29udmVydCBsaXN0IHRvIGEgbWFwLgor
ICAgICAgICBsZXQgY29sbGVjdGVkTm9kZXMgPSB7fTsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCBjb2xsZWN0ZWROb2Rlc0xpc3QubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBjb2xsZWN0
ZWROb2Rlc1tjb2xsZWN0ZWROb2Rlc0xpc3RbaV1dID0gdHJ1ZTsKKworICAgICAgICByZXR1cm4g
eworICAgICAgICAgICAgY29sbGVjdGVkTm9kZXMsCisgICAgICAgICAgICBhZmZlY3RlZFNuYXBz
aG90cywKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIHNlcmlhbGl6
ZSgpCisgICAgeworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgaWRlbnRpZmllcjogdGhp
cy5faWRlbnRpZmllciwKKyAgICAgICAgICAgIHRpdGxlOiB0aGlzLl90aXRsZSwKKyAgICAgICAg
ICAgIHRvdGFsU2l6ZTogdGhpcy5fdG90YWxTaXplLAorICAgICAgICAgICAgdG90YWxPYmplY3RD
b3VudDogdGhpcy5fbm9kZUNvdW50IC0gMSwgLy8gPHJvb3Q+LgorICAgICAgICAgICAgbGl2ZVNp
emU6IHRoaXMuX2xpdmVTaXplLAorICAgICAgICAgICAgY2F0ZWdvcmllczogdGhpcy5fY2F0ZWdv
cmllcywKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBzZXJpYWxpemVOb2RlKG5vZGVJbmRleCkK
KyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KChub2RlSW5kZXggJSBub2RlRmllbGRDb3Vu
dCkgPT09IDAsICJJbnZhbGlkIG5vZGVJbmRleCB0byBzZXJpYWxpemU6ICIgKyBub2RlSW5kZXgp
OworCisgICAgICAgIGxldCBub2RlSWRlbnRpZmllciA9IHRoaXMuX25vZGVzW25vZGVJbmRleCAr
IG5vZGVJZE9mZnNldF07CisgICAgICAgIGxldCBub2RlT3JkaW5hbCA9IG5vZGVJbmRleCAvIG5v
ZGVGaWVsZENvdW50OworICAgICAgICBsZXQgZWRnZUluZGV4ID0gdGhpcy5fbm9kZU9yZGluYWxU
b0ZpcnN0T3V0Z29pbmdFZGdlW25vZGVPcmRpbmFsXTsKKyAgICAgICAgbGV0IGhhc0NoaWxkcmVu
ID0gdGhpcy5fZWRnZXNbZWRnZUluZGV4ICsgZWRnZUZyb21JZE9mZnNldF0gPT09IG5vZGVJZGVu
dGlmaWVyOworCisgICAgICAgIGxldCBkb21pbmF0b3JOb2RlT3JkaW5hbCA9IHRoaXMuX25vZGVP
cmRpbmFsVG9Eb21pbmF0b3JOb2RlT3JkaW5hbFtub2RlT3JkaW5hbF07CisgICAgICAgIGxldCBk
b21pbmF0b3JOb2RlSW5kZXggPSBkb21pbmF0b3JOb2RlT3JkaW5hbCAqIG5vZGVGaWVsZENvdW50
OworICAgICAgICBsZXQgZG9taW5hdG9yTm9kZUlkZW50aWZpZXIgPSB0aGlzLl9ub2Rlc1tkb21p
bmF0b3JOb2RlSW5kZXggKyBub2RlSWRPZmZzZXRdOworCisgICAgICAgIGxldCByZXN1bHQgPSB7
CisgICAgICAgICAgICBpZDogbm9kZUlkZW50aWZpZXIsCisgICAgICAgICAgICBjbGFzc05hbWU6
IHRoaXMuX25vZGVDbGFzc05hbWVzVGFibGVbdGhpcy5fbm9kZXNbbm9kZUluZGV4ICsgbm9kZUNs
YXNzTmFtZU9mZnNldF1dLAorICAgICAgICAgICAgc2l6ZTogdGhpcy5fbm9kZXNbbm9kZUluZGV4
ICsgbm9kZVNpemVPZmZzZXRdLAorICAgICAgICAgICAgcmV0YWluZWRTaXplOiB0aGlzLl9ub2Rl
T3JkaW5hbFRvUmV0YWluZWRTaXplc1tub2RlT3JkaW5hbF0sCisgICAgICAgICAgICBpbnRlcm5h
bDogdGhpcy5fbm9kZXNbbm9kZUluZGV4ICsgbm9kZUludGVybmFsT2Zmc2V0XSA/IHRydWUgOiBm
YWxzZSwKKyAgICAgICAgICAgIGdjUm9vdDogdGhpcy5fbm9kZU9yZGluYWxJc0dDUm9vdFtub2Rl
T3JkaW5hbF0gPyB0cnVlIDogZmFsc2UsCisgICAgICAgICAgICBtYXJrZWRSb290IDogdGhpcy5f
cm9vdElkZW50aWZpZXJUb1JlYXNvbnMuaGFzKG5vZGVJZGVudGlmaWVyKSwKKyAgICAgICAgICAg
IGRlYWQ6IHRoaXMuX25vZGVPcmRpbmFsSXNEZWFkW25vZGVPcmRpbmFsXSA/IHRydWUgOiBmYWxz
ZSwKKyAgICAgICAgICAgIGFkZHJlc3M6IHRoaXMuX25vZGVzW25vZGVJbmRleCArIG5vZGVBZGRy
ZXNzT2Zmc2V0XSwKKyAgICAgICAgICAgIGxhYmVsOiB0aGlzLl9sYWJlbHNUYWJsZVt0aGlzLl9u
b2Rlc1tub2RlSW5kZXggKyBub2RlTGFiZWxPZmZzZXRdXSwKKyAgICAgICAgICAgIGRvbWluYXRv
ck5vZGVJZGVudGlmaWVyLAorICAgICAgICAgICAgaGFzQ2hpbGRyZW4sCisgICAgICAgIH07CisK
KyAgICAgICAgbGV0IHdyYXBwZWRBZGRyID0gdGhpcy5fbm9kZXNbbm9kZUluZGV4ICsgbm9kZVdy
YXBwZWRBZGRyZXNzT2Zmc2V0XTsKKyAgICAgICAgaWYgKHdyYXBwZWRBZGRyICE9PSAiMHgwIikK
KyAgICAgICAgICAgIHJlc3VsdC53cmFwcGVkQWRkcmVzcyA9IHdyYXBwZWRBZGRyOworICAgICAg
ICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBsYWJlbEZvckluZGV4KGlu
ZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsc1RhYmxlW2luZGV4XTsKKyAg
ICB9CisKKyAgICBzZXJpYWxpemVFZGdlKGVkZ2VJbmRleCkKKyAgICB7CisgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KChlZGdlSW5kZXggJSBlZGdlRmllbGRDb3VudCkgPT09IDAsICJJbnZhbGlkIGVk
Z2VJbmRleCB0byBzZXJpYWxpemUiKTsKKworICAgICAgICBsZXQgZWRnZVR5cGUgPSB0aGlzLl9l
ZGdlVHlwZXNUYWJsZVt0aGlzLl9lZGdlc1tlZGdlSW5kZXggKyBlZGdlVHlwZU9mZnNldF1dOwor
ICAgICAgICBsZXQgZWRnZURhdGEgPSB0aGlzLl9lZGdlc1tlZGdlSW5kZXggKyBlZGdlRGF0YU9m
ZnNldF07CisgICAgICAgIHN3aXRjaCAoZWRnZVR5cGUpIHsKKyAgICAgICAgY2FzZSAiSW50ZXJu
YWwiOgorICAgICAgICAgICAgLy8gZWRnZURhdGEgY2FuIGJlIGlnbm9yZWQuCisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAiUHJvcGVydHkiOgorICAgICAgICBjYXNlICJWYXJpYWJs
ZSI6CisgICAgICAgICAgICAvLyBlZGdlRGF0YSBpcyBhIHRhYmxlIGluZGV4LgorICAgICAgICAg
ICAgZWRnZURhdGEgPSB0aGlzLl9lZGdlTmFtZXNUYWJsZVtlZGdlRGF0YV07CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAiSW5kZXgiOgorICAgICAgICAgICAgLy8gZWRnZURhdGEg
aXMgdGhlIGluZGV4LgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICBjb25zb2xlLmVycm9yKCJVbmV4cGVjdGVkIGVkZ2UgdHlwZTogIiArIGVkZ2VUeXBl
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHsKKyAg
ICAgICAgICAgIGZyb206IHRoaXMuX2VkZ2VzW2VkZ2VJbmRleCArIGVkZ2VGcm9tSWRPZmZzZXRd
LAorICAgICAgICAgICAgdG86IHRoaXMuX2VkZ2VzW2VkZ2VJbmRleCArIGVkZ2VUb0lkT2Zmc2V0
XSwKKyAgICAgICAgICAgIHR5cGU6IGVkZ2VUeXBlLAorICAgICAgICAgICAgZGF0YTogZWRnZURh
dGEsCisgICAgICAgIH07CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2J1aWxkT3V0
Z29pbmdFZGdlcygpCisgICAgeworICAgICAgICBsZXQgbGFzdEZyb21JZGVudGlmaWVyID0gLTE7
CisgICAgICAgIGZvciAobGV0IGVkZ2VJbmRleCA9IDA7IGVkZ2VJbmRleCA8IHRoaXMuX2VkZ2Vz
Lmxlbmd0aDsgZWRnZUluZGV4ICs9IGVkZ2VGaWVsZENvdW50KSB7CisgICAgICAgICAgICBsZXQg
ZnJvbUlkZW50aWZpZXIgPSB0aGlzLl9lZGdlc1tlZGdlSW5kZXggKyBlZGdlRnJvbUlkT2Zmc2V0
XTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGxhc3RGcm9tSWRlbnRpZmllciA8PSBmcm9t
SWRlbnRpZmllciwgIkVkZ2UgbGlzdCBzaG91bGQgYmUgb3JkZXJlZCBieSBmcm9tIG5vZGUgaWRl
bnRpZmllciIpOworICAgICAgICAgICAgaWYgKGZyb21JZGVudGlmaWVyICE9PSBsYXN0RnJvbUlk
ZW50aWZpZXIpIHsKKyAgICAgICAgICAgICAgICBsZXQgbm9kZU9yZGluYWwgPSB0aGlzLl9ub2Rl
SWRlbnRpZmllclRvT3JkaW5hbC5nZXQoZnJvbUlkZW50aWZpZXIpOworICAgICAgICAgICAgICAg
IHRoaXMuX25vZGVPcmRpbmFsVG9GaXJzdE91dGdvaW5nRWRnZVtub2RlT3JkaW5hbF0gPSBlZGdl
SW5kZXg7CisgICAgICAgICAgICAgICAgbGFzdEZyb21JZGVudGlmaWVyID0gZnJvbUlkZW50aWZp
ZXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfYnVpbGRJbmNvbWlu
Z0VkZ2VzKCkKKyAgICB7CisgICAgICAgIC8vIEZpcnN0IGNhbGN1bGF0ZSB0aGUgY291bnQgb2Yg
aW5jb21pbmcgZWRnZXMgZm9yIGVhY2ggbm9kZS4KKyAgICAgICAgZm9yIChsZXQgZWRnZUluZGV4
ID0gMDsgZWRnZUluZGV4IDwgdGhpcy5fZWRnZXMubGVuZ3RoOyBlZGdlSW5kZXggKz0gZWRnZUZp
ZWxkQ291bnQpIHsKKyAgICAgICAgICAgIGxldCB0b0lkZW50aWZpZXIgPSB0aGlzLl9lZGdlc1tl
ZGdlSW5kZXggKyBlZGdlVG9JZE9mZnNldF07CisgICAgICAgICAgICBsZXQgdG9Ob2RlT3JkaW5h
bCA9IHRoaXMuX25vZGVJZGVudGlmaWVyVG9PcmRpbmFsLmdldCh0b0lkZW50aWZpZXIpOworICAg
ICAgICAgICAgdGhpcy5fbm9kZU9yZGluYWxUb0ZpcnN0SW5jb21pbmdFZGdlW3RvTm9kZU9yZGlu
YWxdKys7CisgICAgICAgIH0KKworICAgICAgICAvLyBSZXBsYWNlIHRoZSBjb3VudHMgd2l0aCB3
aGF0IHdpbGwgYmUgdGhlIHJlc3VsdGluZyBpbmRleCBieSBydW5uaW5nIHVwIHRoZSBjb3VudHMu
CisgICAgICAgIC8vIFN0b3JlIHRoZSBjb3VudHMgaW4gd2hhdCB3aWxsIGJlIHRoZSBlZGdlcyBs
aXN0IHRvIHVzZSB3aGVuIHBsYWNpbmcgZWRnZXMgaW4gdGhlIGxpc3QuCisgICAgICAgIGxldCBy
dW5uaW5nRmlyc3RJbmRleCA9IDA7CisgICAgICAgIGZvciAobGV0IG5vZGVPcmRpbmFsID0gMDsg
bm9kZU9yZGluYWwgPCB0aGlzLl9ub2RlQ291bnQ7ICsrbm9kZU9yZGluYWwpIHsKKyAgICAgICAg
ICAgIGxldCBjb3VudCA9IHRoaXMuX25vZGVPcmRpbmFsVG9GaXJzdEluY29taW5nRWRnZVtub2Rl
T3JkaW5hbF07CisgICAgICAgICAgICB0aGlzLl9ub2RlT3JkaW5hbFRvRmlyc3RJbmNvbWluZ0Vk
Z2Vbbm9kZU9yZGluYWxdID0gcnVubmluZ0ZpcnN0SW5kZXg7CisgICAgICAgICAgICB0aGlzLl9p
bmNvbWluZ05vZGVzW3J1bm5pbmdGaXJzdEluZGV4XSA9IGNvdW50OworICAgICAgICAgICAgcnVu
bmluZ0ZpcnN0SW5kZXggKz0gY291bnQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBGaWxsIGlu
IHRoZSBpbmNvbWluZyBlZGdlcyBsaXN0LiBVc2UgdGhlIGNvdW50IGFzIGFuIG9mZnNldCB3aGVu
IHBsYWNpbmcgZWRnZXMgaW4gdGhlIGxpc3QuCisgICAgICAgIGZvciAobGV0IGVkZ2VJbmRleCA9
IDA7IGVkZ2VJbmRleCA8IHRoaXMuX2VkZ2VzLmxlbmd0aDsgZWRnZUluZGV4ICs9IGVkZ2VGaWVs
ZENvdW50KSB7CisgICAgICAgICAgICBsZXQgZnJvbUlkZW50aWZpZXIgPSB0aGlzLl9lZGdlc1tl
ZGdlSW5kZXggKyBlZGdlRnJvbUlkT2Zmc2V0XTsKKyAgICAgICAgICAgIGxldCBmcm9tTm9kZU9y
ZGluYWwgPSB0aGlzLl9ub2RlSWRlbnRpZmllclRvT3JkaW5hbC5nZXQoZnJvbUlkZW50aWZpZXIp
OworICAgICAgICAgICAgbGV0IHRvSWRlbnRpZmllciA9IHRoaXMuX2VkZ2VzW2VkZ2VJbmRleCAr
IGVkZ2VUb0lkT2Zmc2V0XTsKKyAgICAgICAgICAgIGxldCB0b05vZGVPcmRpbmFsID0gdGhpcy5f
bm9kZUlkZW50aWZpZXJUb09yZGluYWwuZ2V0KHRvSWRlbnRpZmllcik7CisKKyAgICAgICAgICAg
IGxldCBmaXJzdEluY29taW5nRWRnZUluZGV4ID0gdGhpcy5fbm9kZU9yZGluYWxUb0ZpcnN0SW5j
b21pbmdFZGdlW3RvTm9kZU9yZGluYWxdOworICAgICAgICAgICAgY29uc29sZS5hc3NlcnQodGhp
cy5faW5jb21pbmdOb2Rlc1tmaXJzdEluY29taW5nRWRnZUluZGV4XSA+IDAsICJTaG91bGQgYmUg
ZXhwZWN0aW5nIGVkZ2VzIGZvciB0aGlzIG5vZGUiKTsKKyAgICAgICAgICAgIGxldCBjb3VudEFz
T2Zmc2V0ID0gdGhpcy5faW5jb21pbmdOb2Rlc1tmaXJzdEluY29taW5nRWRnZUluZGV4XS0tOwor
ICAgICAgICAgICAgbGV0IGluZGV4ID0gZmlyc3RJbmNvbWluZ0VkZ2VJbmRleCArIGNvdW50QXNP
ZmZzZXQgLSAxOworICAgICAgICAgICAgdGhpcy5faW5jb21pbmdOb2Rlc1tpbmRleF0gPSBmcm9t
Tm9kZU9yZGluYWw7CisgICAgICAgICAgICB0aGlzLl9pbmNvbWluZ0VkZ2VzW2luZGV4XSA9IGVk
Z2VJbmRleDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIER1cGxpY2F0ZSB2YWx1ZSBvbiB0aGUg
ZW5kLiBJbmNvbWluZyBlZGdlIGl0ZXJhdGlvbiB3YWxrcyBmaXJzdEluY29taW5nRWRnZShvcmRp
bmFsKSB0byBmaXJzdEluY29taW5nRWRnZShvcmRpbmFsKzEpLgorICAgICAgICB0aGlzLl9ub2Rl
T3JkaW5hbFRvRmlyc3RJbmNvbWluZ0VkZ2VbdGhpcy5fbm9kZUNvdW50XSA9IHRoaXMuX25vZGVP
cmRpbmFsVG9GaXJzdEluY29taW5nRWRnZVt0aGlzLl9ub2RlQ291bnQgLSAxXTsKKyAgICB9CisK
KyAgICBfYnVpbGRQb3N0T3JkZXJJbmRleGVzKCkKKyAgICB7CisgICAgICAgIGxldCBwb3N0T3Jk
ZXJJbmRleCA9IDA7CisgICAgICAgIGxldCBub2RlT3JkaW5hbFRvUG9zdE9yZGVySW5kZXggPSBu
ZXcgVWludDMyQXJyYXkodGhpcy5fbm9kZUNvdW50KTsKKyAgICAgICAgbGV0IHBvc3RPcmRlcklu
ZGV4VG9Ob2RlT3JkaW5hbCA9IG5ldyBVaW50MzJBcnJheSh0aGlzLl9ub2RlQ291bnQpOworCisg
ICAgICAgIGxldCBzdGFja05vZGVzID0gbmV3IFVpbnQzMkFycmF5KHRoaXMuX25vZGVDb3VudCk7
IC8vIG5vZGVPcmRpbmFsLgorICAgICAgICBsZXQgc3RhY2tFZGdlcyA9IG5ldyBVaW50MzJBcnJh
eSh0aGlzLl9ub2RlQ291bnQpOyAvLyBlZGdlSW5kZXguCisgICAgICAgIGxldCB2aXNpdGVkID0g
bmV3IFVpbnQ4QXJyYXkodGhpcy5fbm9kZUNvdW50KTsKKworICAgICAgICBsZXQgc3RhY2tUb3Ag
PSAwOworICAgICAgICBzdGFja05vZGVzW3N0YWNrVG9wXSA9IHJvb3ROb2RlT3JkaW5hbDsKKyAg
ICAgICAgc3RhY2tFZGdlc1tzdGFja1RvcF0gPSB0aGlzLl9ub2RlT3JkaW5hbFRvRmlyc3RPdXRn
b2luZ0VkZ2Vbcm9vdE5vZGVPcmRpbmFsXTsKKworICAgICAgICB3aGlsZSAoc3RhY2tUb3AgPj0g
MCkgeworICAgICAgICAgICAgbGV0IG5vZGVPcmRpbmFsID0gc3RhY2tOb2Rlc1tzdGFja1RvcF07
CisgICAgICAgICAgICBsZXQgbm9kZUlkZW50aWZpZXIgPSB0aGlzLl9ub2Rlc1sobm9kZU9yZGlu
YWwgKiBub2RlRmllbGRDb3VudCkgKyBub2RlSWRPZmZzZXRdOworICAgICAgICAgICAgbGV0IGVk
Z2VJbmRleCA9IHN0YWNrRWRnZXNbc3RhY2tUb3BdOworCisgICAgICAgICAgICBpZiAodGhpcy5f
ZWRnZXNbZWRnZUluZGV4ICsgZWRnZUZyb21JZE9mZnNldF0gPT09IG5vZGVJZGVudGlmaWVyKSB7
CisgICAgICAgICAgICAgICAgLy8gUHJlcGFyZSB0aGUgbmV4dCBjaGlsZCBmb3IgdGhlIGN1cnJl
bnQgbm9kZS4KKyAgICAgICAgICAgICAgICBzdGFja0VkZ2VzW3N0YWNrVG9wXSArPSBlZGdlRmll
bGRDb3VudDsKKworICAgICAgICAgICAgICAgIGxldCB0b0lkZW50aWZpZXIgPSB0aGlzLl9lZGdl
c1tlZGdlSW5kZXggKyBlZGdlVG9JZE9mZnNldF07CisgICAgICAgICAgICAgICAgbGV0IHRvTm9k
ZU9yZGluYWwgPSB0aGlzLl9ub2RlSWRlbnRpZmllclRvT3JkaW5hbC5nZXQodG9JZGVudGlmaWVy
KTsKKyAgICAgICAgICAgICAgICBpZiAodmlzaXRlZFt0b05vZGVPcmRpbmFsXSkKKyAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICAvLyBDaGlsZC4KKyAgICAg
ICAgICAgICAgICBzdGFja1RvcCsrOworICAgICAgICAgICAgICAgIHN0YWNrTm9kZXNbc3RhY2tU
b3BdID0gdG9Ob2RlT3JkaW5hbDsKKyAgICAgICAgICAgICAgICBzdGFja0VkZ2VzW3N0YWNrVG9w
XSA9IHRoaXMuX25vZGVPcmRpbmFsVG9GaXJzdE91dGdvaW5nRWRnZVt0b05vZGVPcmRpbmFsXTsK
KyAgICAgICAgICAgICAgICB2aXNpdGVkW3RvTm9kZU9yZGluYWxdID0gMTsKKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gU2VsZi4KKyAgICAgICAgICAgICAgICBub2Rl
T3JkaW5hbFRvUG9zdE9yZGVySW5kZXhbbm9kZU9yZGluYWxdID0gcG9zdE9yZGVySW5kZXg7Cisg
ICAgICAgICAgICAgICAgcG9zdE9yZGVySW5kZXhUb05vZGVPcmRpbmFsW3Bvc3RPcmRlckluZGV4
XSA9IG5vZGVPcmRpbmFsOworICAgICAgICAgICAgICAgIHBvc3RPcmRlckluZGV4Kys7CisgICAg
ICAgICAgICAgICAgc3RhY2tUb3AtLTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIC8vIFVudmlzaXRlZCBub2Rlcy4KKyAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHRo
ZSBwYXJlbnQgbm9kZSB3YXMgZGlzYWxsb3dlZCBvbiB0aGUgYmFja2VuZCwgYnV0IG90aGVyIG5v
ZGVzCisgICAgICAgIC8vIHRoYXQgd2VyZSBvbmx5IHJlZmVyZW5jZWQgZnJvbSB0aGF0IGRpc2Fs
bG93ZWQgbm9kZSB3ZXJlIGV2ZW50dWFsbHkgYWxsb3dlZCBiZWNhdXNlCisgICAgICAgIC8vIHRo
ZXkgbWF5IGJlIGdlbmVyaWMgc3lzdGVtIG9iamVjdHMuIEdpdmUgdGhlc2Ugbm9kZXMgYSBwb3N0
T3JkZXJJbmRleCBhbnl3YXlzLgorICAgICAgICBpZiAocG9zdE9yZGVySW5kZXggIT09IHRoaXMu
X25vZGVDb3VudCkgeworICAgICAgICAgICAgLy8gUm9vdCB3YXMgdGhlIGxhc3Qgbm9kZSB2aXNp
dGVkLiBSZXZlcnQgYXNzaWduaW5nIGl0IGFuIGluZGV4LCBhZGQgaXQgYmFjayBhdCB0aGUgZW5k
LgorICAgICAgICAgICAgcG9zdE9yZGVySW5kZXgtLTsKKworICAgICAgICAgICAgLy8gVmlzaXQg
dW52aXNpdGVkIG5vZGVzLgorICAgICAgICAgICAgZm9yIChsZXQgbm9kZU9yZGluYWwgPSAxOyBu
b2RlT3JkaW5hbCA8IHRoaXMuX25vZGVDb3VudDsgKytub2RlT3JkaW5hbCkgeworICAgICAgICAg
ICAgICAgIGlmICh2aXNpdGVkW25vZGVPcmRpbmFsXSkKKyAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAgICAgbm9kZU9yZGluYWxUb1Bvc3RPcmRlckluZGV4W25vZGVP
cmRpbmFsXSA9IHBvc3RPcmRlckluZGV4OworICAgICAgICAgICAgICAgIHBvc3RPcmRlckluZGV4
VG9Ob2RlT3JkaW5hbFtwb3N0T3JkZXJJbmRleF0gPSBub2RlT3JkaW5hbDsKKyAgICAgICAgICAg
ICAgICBwb3N0T3JkZXJJbmRleCsrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBW
aXNpdCByb290IGFnYWluLgorICAgICAgICAgICAgbm9kZU9yZGluYWxUb1Bvc3RPcmRlckluZGV4
W3Jvb3ROb2RlT3JkaW5hbF0gPSBwb3N0T3JkZXJJbmRleDsKKyAgICAgICAgICAgIHBvc3RPcmRl
ckluZGV4VG9Ob2RlT3JkaW5hbFtwb3N0T3JkZXJJbmRleF0gPSByb290Tm9kZU9yZGluYWw7Cisg
ICAgICAgICAgICBwb3N0T3JkZXJJbmRleCsrOworICAgICAgICB9CisKKyAgICAgICAgY29uc29s
ZS5hc3NlcnQocG9zdE9yZGVySW5kZXggPT09IHRoaXMuX25vZGVDb3VudCwgIkFsbCBub2RlcyB3
ZXJlIHZpc2l0ZWQiKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQobm9kZU9yZGluYWxUb1Bvc3RP
cmRlckluZGV4W3Jvb3ROb2RlT3JkaW5hbF0gPT09IHRoaXMuX25vZGVDb3VudCAtIDEsICJSb290
IG5vZGUgc2hvdWxkIGhhdmUgdGhlIGxhc3QgcG9zc2libGUgcG9zdE9yZGVySW5kZXgiKTsKKwor
ICAgICAgICByZXR1cm4ge25vZGVPcmRpbmFsVG9Qb3N0T3JkZXJJbmRleCwgcG9zdE9yZGVySW5k
ZXhUb05vZGVPcmRpbmFsfTsKKyAgICB9CisKKyAgICBfYnVpbGREb21pbmF0b3JJbmRleGVzKG5v
ZGVPcmRpbmFsVG9Qb3N0T3JkZXJJbmRleCwgcG9zdE9yZGVySW5kZXhUb05vZGVPcmRpbmFsKQor
ICAgIHsKKyAgICAgICAgLy8gVGhlIGFsZ29yaXRobSBpcyBiYXNlZCBvbiB0aGUgYXJ0aWNsZToK
KyAgICAgICAgLy8gSy4gQ29vcGVyLCBULiBIYXJ2ZXkgYW5kIEsuIEtlbm5lZHkgIkEgU2ltcGxl
LCBGYXN0IERvbWluYW5jZSBBbGdvcml0aG0iCisKKyAgICAgICAgbGV0IHJvb3RQb3N0T3JkZXJJ
bmRleCA9IHRoaXMuX25vZGVDb3VudCAtIDE7CisgICAgICAgIGxldCBub0VudHJ5ID0gdGhpcy5f
bm9kZUNvdW50OworCisgICAgICAgIGxldCBhZmZlY3RlZCA9IG5ldyBVaW50OEFycmF5KHRoaXMu
X25vZGVDb3VudCk7CisgICAgICAgIGxldCBkb21pbmF0b3JzID0gbmV3IFVpbnQzMkFycmF5KHRo
aXMuX25vZGVDb3VudCk7CisKKyAgICAgICAgLy8gSW5pdGlhbGl6ZSB3aXRoIHVuc2V0IHZhbHVl
LgorICAgICAgICBkb21pbmF0b3JzLmZpbGwobm9FbnRyeSk7CisKKyAgICAgICAgLy8gTWFyayB0
aGUgcm9vdCdzIGRvbWluYXRvciB2YWx1ZS4KKyAgICAgICAgZG9taW5hdG9yc1tyb290UG9zdE9y
ZGVySW5kZXhdID0gcm9vdFBvc3RPcmRlckluZGV4OworCisgICAgICAgIC8vIEFmZmVjdCB0aGUg
cm9vdCdzIGNoaWxkcmVuLiBBbHNvIHVzZSB0aGlzIG9wcG9ydHVuaXR5IHRvIG1hcmsgdGhlbSBh
cyBHQyByb290cy4KKyAgICAgICAgbGV0IHJvb3RFZGdlSW5kZXggPSB0aGlzLl9ub2RlT3JkaW5h
bFRvRmlyc3RPdXRnb2luZ0VkZ2Vbcm9vdE5vZGVPcmRpbmFsXTsKKyAgICAgICAgZm9yIChsZXQg
ZWRnZUluZGV4ID0gcm9vdEVkZ2VJbmRleDsgdGhpcy5fZWRnZXNbZWRnZUluZGV4ICsgZWRnZUZy
b21JZE9mZnNldF0gPT09IHJvb3ROb2RlSWRlbnRpZmllcjsgZWRnZUluZGV4ICs9IGVkZ2VGaWVs
ZENvdW50KSB7CisgICAgICAgICAgICBsZXQgdG9JZGVudGlmaWVyID0gdGhpcy5fZWRnZXNbZWRn
ZUluZGV4ICsgZWRnZVRvSWRPZmZzZXRdOworICAgICAgICAgICAgbGV0IHRvTm9kZU9yZGluYWwg
PSB0aGlzLl9ub2RlSWRlbnRpZmllclRvT3JkaW5hbC5nZXQodG9JZGVudGlmaWVyKTsKKyAgICAg
ICAgICAgIGxldCB0b1Bvc3RPcmRlckluZGV4ID0gbm9kZU9yZGluYWxUb1Bvc3RPcmRlckluZGV4
W3RvTm9kZU9yZGluYWxdOworICAgICAgICAgICAgYWZmZWN0ZWRbdG9Qb3N0T3JkZXJJbmRleF0g
PSAxOworICAgICAgICAgICAgdGhpcy5fbm9kZU9yZGluYWxJc0dDUm9vdFt0b05vZGVPcmRpbmFs
XSA9IDE7CisgICAgICAgIH0KKworICAgICAgICBsZXQgY2hhbmdlZCA9IHRydWU7CisgICAgICAg
IHdoaWxlIChjaGFuZ2VkKSB7CisgICAgICAgICAgICBjaGFuZ2VkID0gZmFsc2U7CisKKyAgICAg
ICAgICAgIGZvciAobGV0IHBvc3RPcmRlckluZGV4ID0gcm9vdFBvc3RPcmRlckluZGV4IC0gMTsg
cG9zdE9yZGVySW5kZXggPj0gMDsgLS1wb3N0T3JkZXJJbmRleCkgeworICAgICAgICAgICAgICAg
IGlmICghYWZmZWN0ZWRbcG9zdE9yZGVySW5kZXhdKQorICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgICAgICBhZmZlY3RlZFtwb3N0T3JkZXJJbmRleF0gPSAwOworCisg
ICAgICAgICAgICAgICAgLy8gVGhlIGRvbWluYXRvciBpcyBhbHJlYWR5IHRoZSByb290LCBub3Ro
aW5nIHRvIGRvLgorICAgICAgICAgICAgICAgIGlmIChkb21pbmF0b3JzW3Bvc3RPcmRlckluZGV4
XSA9PT0gcm9vdFBvc3RPcmRlckluZGV4KQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK
KworICAgICAgICAgICAgICAgIGxldCBuZXdEb21pbmF0b3JJbmRleCA9IG5vRW50cnk7CisgICAg
ICAgICAgICAgICAgbGV0IG5vZGVPcmRpbmFsID0gcG9zdE9yZGVySW5kZXhUb05vZGVPcmRpbmFs
W3Bvc3RPcmRlckluZGV4XTsKKyAgICAgICAgICAgICAgICBsZXQgaW5jb21pbmdFZGdlSW5kZXgg
PSB0aGlzLl9ub2RlT3JkaW5hbFRvRmlyc3RJbmNvbWluZ0VkZ2Vbbm9kZU9yZGluYWxdOworICAg
ICAgICAgICAgICAgIGxldCBpbmNvbWluZ0VkZ2VJbmRleEVuZCA9IHRoaXMuX25vZGVPcmRpbmFs
VG9GaXJzdEluY29taW5nRWRnZVtub2RlT3JkaW5hbCArIDFdOworICAgICAgICAgICAgICAgIGZv
ciAobGV0IGVkZ2VJbmRleCA9IGluY29taW5nRWRnZUluZGV4OyBlZGdlSW5kZXggPCBpbmNvbWlu
Z0VkZ2VJbmRleEVuZDsgKytlZGdlSW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGZy
b21Ob2RlT3JkaW5hbCA9IHRoaXMuX2luY29taW5nTm9kZXNbZWRnZUluZGV4XTsKKyAgICAgICAg
ICAgICAgICAgICAgbGV0IGZyb21Qb3N0T3JkZXJJbmRleCA9IG5vZGVPcmRpbmFsVG9Qb3N0T3Jk
ZXJJbmRleFtmcm9tTm9kZU9yZGluYWxdOworICAgICAgICAgICAgICAgICAgICBpZiAoZG9taW5h
dG9yc1tmcm9tUG9zdE9yZGVySW5kZXhdICE9PSBub0VudHJ5KSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAobmV3RG9taW5hdG9ySW5kZXggPT09IG5vRW50cnkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbmV3RG9taW5hdG9ySW5kZXggPSBmcm9tUG9zdE9yZGVySW5kZXg7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB3aGlsZSAoZnJvbVBvc3RPcmRlckluZGV4ICE9PSBuZXdEb21pbmF0b3JJbmRleCkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoZnJvbVBvc3RPcmRlckluZGV4IDwg
bmV3RG9taW5hdG9ySW5kZXgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
cm9tUG9zdE9yZGVySW5kZXggPSBkb21pbmF0b3JzW2Zyb21Qb3N0T3JkZXJJbmRleF07CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChuZXdEb21pbmF0b3JJbmRleCA8IGZy
b21Qb3N0T3JkZXJJbmRleCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5l
d0RvbWluYXRvckluZGV4ID0gZG9taW5hdG9yc1tuZXdEb21pbmF0b3JJbmRleF07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChuZXdEb21pbmF0b3JJbmRl
eCA9PT0gcm9vdFBvc3RPcmRlckluZGV4KQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gQ2hhbmdlZC4gQWZmZWN0
IGNoaWxkcmVuLgorICAgICAgICAgICAgICAgIGlmIChuZXdEb21pbmF0b3JJbmRleCAhPT0gbm9F
bnRyeSAmJiBkb21pbmF0b3JzW3Bvc3RPcmRlckluZGV4XSAhPT0gbmV3RG9taW5hdG9ySW5kZXgp
IHsKKyAgICAgICAgICAgICAgICAgICAgZG9taW5hdG9yc1twb3N0T3JkZXJJbmRleF0gPSBuZXdE
b21pbmF0b3JJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CisKKyAg
ICAgICAgICAgICAgICAgICAgbGV0IG91dGdvaW5nRWRnZUluZGV4ID0gdGhpcy5fbm9kZU9yZGlu
YWxUb0ZpcnN0T3V0Z29pbmdFZGdlW25vZGVPcmRpbmFsXTsKKyAgICAgICAgICAgICAgICAgICAg
bGV0IG5vZGVJZGVudGlmaWVyID0gdGhpcy5fbm9kZXNbKG5vZGVPcmRpbmFsICogbm9kZUZpZWxk
Q291bnQpICsgbm9kZUlkT2Zmc2V0XTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgZWRn
ZUluZGV4ID0gb3V0Z29pbmdFZGdlSW5kZXg7IHRoaXMuX2VkZ2VzW2VkZ2VJbmRleCArIGVkZ2VG
cm9tSWRPZmZzZXRdID09PSBub2RlSWRlbnRpZmllcjsgZWRnZUluZGV4ICs9IGVkZ2VGaWVsZENv
dW50KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdG9Ob2RlSWRlbnRpZmllciA9IHRo
aXMuX2VkZ2VzW2VkZ2VJbmRleCArIGVkZ2VUb0lkT2Zmc2V0XTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB0b05vZGVPcmRpbmFsID0gdGhpcy5fbm9kZUlkZW50aWZpZXJUb09yZGluYWwu
Z2V0KHRvTm9kZUlkZW50aWZpZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRvTm9k
ZVBvc3RPcmRlciA9IG5vZGVPcmRpbmFsVG9Qb3N0T3JkZXJJbmRleFt0b05vZGVPcmRpbmFsXTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGFmZmVjdGVkW3RvTm9kZVBvc3RPcmRlcl0gPSAxOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcG9zdE9yZGVySW5kZXggPSAwOyBwb3N0T3Jk
ZXJJbmRleCA8IHRoaXMuX25vZGVDb3VudDsgKytwb3N0T3JkZXJJbmRleCkgeworICAgICAgICAg
ICAgbGV0IG5vZGVPcmRpbmFsID0gcG9zdE9yZGVySW5kZXhUb05vZGVPcmRpbmFsW3Bvc3RPcmRl
ckluZGV4XTsKKyAgICAgICAgICAgIGxldCBkb21pbmF0b3JOb2RlT3JkaW5hbCA9IHBvc3RPcmRl
ckluZGV4VG9Ob2RlT3JkaW5hbFtkb21pbmF0b3JzW3Bvc3RPcmRlckluZGV4XV07CisgICAgICAg
ICAgICB0aGlzLl9ub2RlT3JkaW5hbFRvRG9taW5hdG9yTm9kZU9yZGluYWxbbm9kZU9yZGluYWxd
ID0gZG9taW5hdG9yTm9kZU9yZGluYWw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfYnVpbGRS
ZXRhaW5lZFNpemVzKHBvc3RPcmRlckluZGV4VG9Ob2RlT3JkaW5hbCkKKyAgICB7CisgICAgICAg
IC8vIFNlbGYgc2l6ZS4KKyAgICAgICAgZm9yIChsZXQgbm9kZUluZGV4ID0gMCwgbm9kZU9yZGlu
YWwgPSAwOyBub2RlT3JkaW5hbCA8IHRoaXMuX25vZGVDb3VudDsgbm9kZUluZGV4ICs9IG5vZGVG
aWVsZENvdW50LCBub2RlT3JkaW5hbCsrKQorICAgICAgICAgICAgdGhpcy5fbm9kZU9yZGluYWxU
b1JldGFpbmVkU2l6ZXNbbm9kZU9yZGluYWxdID0gdGhpcy5fbm9kZXNbbm9kZUluZGV4ICsgbm9k
ZVNpemVPZmZzZXRdOworCisgICAgICAgIC8vIEF0dHJpYnV0ZSBzaXplIHRvIGRvbWluYXRvci4K
KyAgICAgICAgZm9yIChsZXQgcG9zdE9yZGVySW5kZXggPSAwOyBwb3N0T3JkZXJJbmRleCA8IHRo
aXMuX25vZGVDb3VudCAtIDE7ICsrcG9zdE9yZGVySW5kZXgpIHsKKyAgICAgICAgICAgIGxldCBu
b2RlT3JkaW5hbCA9IHBvc3RPcmRlckluZGV4VG9Ob2RlT3JkaW5hbFtwb3N0T3JkZXJJbmRleF07
CisgICAgICAgICAgICBsZXQgbm9kZVJldGFpbmVkU2l6ZSA9IHRoaXMuX25vZGVPcmRpbmFsVG9S
ZXRhaW5lZFNpemVzW25vZGVPcmRpbmFsXTsKKyAgICAgICAgICAgIGxldCBkb21pbmF0b3JOb2Rl
T3JkaW5hbCA9IHRoaXMuX25vZGVPcmRpbmFsVG9Eb21pbmF0b3JOb2RlT3JkaW5hbFtub2RlT3Jk
aW5hbF07CisgICAgICAgICAgICB0aGlzLl9ub2RlT3JkaW5hbFRvUmV0YWluZWRTaXplc1tkb21p
bmF0b3JOb2RlT3JkaW5hbF0gKz0gbm9kZVJldGFpbmVkU2l6ZTsKKyAgICAgICAgfQorICAgIH0K
KworICAgIF9tYXJrRGVhZE5vZGVzKGNvbGxlY3RlZE5vZGVzTGlzdCkKKyAgICB7CisgICAgICAg
IGxldCBhZmZlY3RlZCA9IGZhbHNlOworCisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29s
bGVjdGVkTm9kZXNMaXN0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBsZXQgbm9kZUlkZW50
aWZpZXIgPSBjb2xsZWN0ZWROb2Rlc0xpc3RbaV07CisgICAgICAgICAgICBpZiAobm9kZUlkZW50
aWZpZXIgPiB0aGlzLl9sYXN0Tm9kZUlkZW50aWZpZXIpCisgICAgICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgICAgICBsZXQgbm9kZU9yZGluYWwgPSB0aGlzLl9ub2RlSWRlbnRpZmllclRv
T3JkaW5hbC5nZXQobm9kZUlkZW50aWZpZXIpOworICAgICAgICAgICAgdGhpcy5fbm9kZU9yZGlu
YWxJc0RlYWRbbm9kZU9yZGluYWxdID0gMTsKKyAgICAgICAgICAgIGFmZmVjdGVkID0gdHJ1ZTsK
KyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBhZmZlY3RlZDsKKyAgICB9CisKKyAgICBfaXNO
b2RlR2xvYmFsT2JqZWN0KG5vZGVJbmRleCkKKyAgICB7CisgICAgICAgIGxldCBjbGFzc05hbWUg
PSB0aGlzLl9ub2RlQ2xhc3NOYW1lc1RhYmxlW3RoaXMuX25vZGVzW25vZGVJbmRleCArIG5vZGVD
bGFzc05hbWVPZmZzZXRdXTsKKyAgICAgICAgcmV0dXJuIGNsYXNzTmFtZSA9PT0gIldpbmRvdyIK
KyAgICAgICAgICAgIHx8IGNsYXNzTmFtZSA9PT0gIkpTV2luZG93UHJveHkiCisgICAgICAgICAg
ICB8fCBjbGFzc05hbWUgPT09ICJHbG9iYWxPYmplY3QiOworICAgIH0KKworICAgIF9nY1Jvb3RQ
YXRocyhub2RlSWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIGxldCB0YXJnZXROb2RlT3JkaW5h
bCA9IHRoaXMuX25vZGVJZGVudGlmaWVyVG9PcmRpbmFsLmdldChub2RlSWRlbnRpZmllcik7CisK
KyAgICAgICAgaWYgKHRoaXMuX25vZGVPcmRpbmFsSXNHQ1Jvb3RbdGFyZ2V0Tm9kZU9yZGluYWxd
KQorICAgICAgICAgICAgcmV0dXJuIFtdOworCisgICAgICAgIC8vIEZJWE1FOiBBcnJheSBwdXNo
L3BvcCBjYW4gYWZmZWN0IHBlcmZvcm1hbmNlIGhlcmUsIGJ1dCBpbiBwcmFjdGljZSBpdCBoYXNu
J3QgYmVlbiBhbiBpc3N1ZS4KKworICAgICAgICBsZXQgcGF0aHMgPSBbXTsKKyAgICAgICAgbGV0
IGN1cnJlbnRQYXRoID0gW107CisgICAgICAgIGxldCB2aXNpdGVkID0gbmV3IFVpbnQ4QXJyYXko
dGhpcy5fbm9kZUNvdW50KTsKKworICAgICAgICBmdW5jdGlvbiB2aXNpdE5vZGUobm9kZU9yZGlu
YWwpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzLl9ub2RlT3JkaW5hbElzR0NSb290
W25vZGVPcmRpbmFsXSkgeworICAgICAgICAgICAgICAgIGxldCBmdWxsUGF0aCA9IGN1cnJlbnRQ
YXRoLnNsaWNlKCk7CisgICAgICAgICAgICAgICAgbGV0IG5vZGVJbmRleCA9IG5vZGVPcmRpbmFs
ICogbm9kZUZpZWxkQ291bnQ7CisgICAgICAgICAgICAgICAgZnVsbFBhdGgucHVzaCh7bm9kZTog
bm9kZUluZGV4fSk7CisgICAgICAgICAgICAgICAgcGF0aHMucHVzaChmdWxsUGF0aCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodmlz
aXRlZFtub2RlT3JkaW5hbF0pCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
dmlzaXRlZFtub2RlT3JkaW5hbF0gPSAxOworCisgICAgICAgICAgICBsZXQgbm9kZUluZGV4ID0g
bm9kZU9yZGluYWwgKiBub2RlRmllbGRDb3VudDsKKyAgICAgICAgICAgIGN1cnJlbnRQYXRoLnB1
c2goe25vZGU6IG5vZGVJbmRleH0pOworCisgICAgICAgICAgICAvLyBMb29wIGluIHJldmVyc2Ug
b3JkZXIgYmVjYXVzZSBlZGdlcyB3ZXJlIGFkZGVkIGluIHJldmVyc2Ugb3JkZXIuCisgICAgICAg
ICAgICAvLyBJdCBkb2Vzbid0IHBhcnRpY3VsYXJseSBtYXR0ZXIgb3RoZXIgdGhlbiBjb25zaXN0
ZW5jeSB3aXRoIHByZXZpb3VzIGNvZGUuCisgICAgICAgICAgICBsZXQgaW5jb21pbmdFZGdlSW5k
ZXhTdGFydCA9IHRoaXMuX25vZGVPcmRpbmFsVG9GaXJzdEluY29taW5nRWRnZVtub2RlT3JkaW5h
bF07CisgICAgICAgICAgICBsZXQgaW5jb21pbmdFZGdlSW5kZXhFbmQgPSB0aGlzLl9ub2RlT3Jk
aW5hbFRvRmlyc3RJbmNvbWluZ0VkZ2Vbbm9kZU9yZGluYWwgKyAxXTsKKyAgICAgICAgICAgIGZv
ciAobGV0IGluY29taW5nRWRnZUluZGV4ID0gaW5jb21pbmdFZGdlSW5kZXhFbmQgLSAxOyBpbmNv
bWluZ0VkZ2VJbmRleCA+PSBpbmNvbWluZ0VkZ2VJbmRleFN0YXJ0OyAtLWluY29taW5nRWRnZUlu
ZGV4KSB7CisgICAgICAgICAgICAgICAgbGV0IGZyb21Ob2RlT3JkaW5hbCA9IHRoaXMuX2luY29t
aW5nTm9kZXNbaW5jb21pbmdFZGdlSW5kZXhdOworICAgICAgICAgICAgICAgIGxldCBmcm9tTm9k
ZUluZGV4ID0gZnJvbU5vZGVPcmRpbmFsICogbm9kZUZpZWxkQ291bnQ7CisgICAgICAgICAgICAg
ICAgLy8gbGV0IGZyb21Ob2RlSXNJbnRlcm5hbCA9IHRoaXMuX25vZGVzW2Zyb21Ob2RlSW5kZXgg
KyBub2RlSW50ZXJuYWxPZmZzZXRdOworICAgICAgICAgICAgICAgIC8vIGlmIChmcm9tTm9kZUlz
SW50ZXJuYWwpCisgICAgICAgICAgICAgICAgLy8gICAgIGNvbnRpbnVlOworCisgICAgICAgICAg
ICAgICAgbGV0IGVkZ2VJbmRleCA9IHRoaXMuX2luY29taW5nRWRnZXNbaW5jb21pbmdFZGdlSW5k
ZXhdOworICAgICAgICAgICAgICAgIGN1cnJlbnRQYXRoLnB1c2goe2VkZ2U6IGVkZ2VJbmRleH0p
OworICAgICAgICAgICAgICAgIHZpc2l0Tm9kZS5jYWxsKHRoaXMsIGZyb21Ob2RlT3JkaW5hbCk7
CisgICAgICAgICAgICAgICAgY3VycmVudFBhdGgucG9wKCk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGN1cnJlbnRQYXRoLnBvcCgpOworICAgICAgICB9CisKKyAgICAgICAgdmlzaXRO
b2RlLmNhbGwodGhpcywgdGFyZ2V0Tm9kZU9yZGluYWwpOworCisgICAgICAgIHJldHVybiBwYXRo
czsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvR0NIZWFwSW5zcGVjdG9yL3NjcmlwdC9p
bnRlcmZhY2UuanMgYi9Ub29scy9HQ0hlYXBJbnNwZWN0b3Ivc2NyaXB0L2ludGVyZmFjZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hZTNhZDViMDBiMjk1NTFkYTlkMjEwZTJlZGM3ZjU5Mzc2Mjc4YTNjCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvR0NIZWFwSW5zcGVjdG9yL3NjcmlwdC9pbnRlcmZhY2UuanMK
QEAgLTAsMCArMSw1MTUgQEAKKworCisvLyBET00gSGVscGVycworY2xhc3MgRE9NVXRpbHMKK3sK
KyAgICBzdGF0aWMgcmVtb3ZlQWxsQ2hpbGRyZW4obm9kZSkKKyAgICB7CisgICAgICAgIHdoaWxl
IChub2RlLmxhc3RDaGlsZCkKKyAgICAgICAgICAgICBub2RlLnJlbW92ZUNoaWxkKG5vZGUubGFz
dENoaWxkKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZURldGFpbHMoc3VtbWFyeVRl
eHQpCisgICAgeworICAgICAgICBsZXQgc3VtbWFyeSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3N1bW1hcnknKTsKKyAgICAgICAgc3VtbWFyeS50ZXh0Q29udGVudCA9IHN1bW1hcnlUZXh0Owor
ICAgIAorICAgICAgICBsZXQgZGV0YWlscyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RldGFp
bHMnKTsKKyAgICAgICAgZGV0YWlscy5hcHBlbmRDaGlsZChzdW1tYXJ5KTsKKyAgICAgICAgCisg
ICAgICAgIGRldGFpbHMuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGZ1bmN0aW9uKGV2ZW50
KSB7CisgICAgICAgICAgICBjb25zdCByaWdodEFycm93S2V5Q29kZSA9IDM5OworICAgICAgICAg
ICAgY29uc3QgbGVmdEFycm93S2V5Q29kZSA9IDM3OworICAgICAgICAgICAgaWYgKGV2ZW50Lmtl
eUNvZGUgPT0gcmlnaHRBcnJvd0tleUNvZGUpCisgICAgICAgICAgICAgICAgdGhpcy5vcGVuID0g
dHJ1ZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50LmtleUNvZGUgPT0gbGVmdEFycm93S2V5
Q29kZSkKKyAgICAgICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTsKKyAgICAgICAgfSwgZmFs
c2UpOworCisgICAgICAgIHJldHVybiBkZXRhaWxzOworICAgIH0KK307CisKKy8vIEhlYXAgSW5z
cGVjdG9yIEhlbHBlcnMKK2NsYXNzIEhlYXBJbnNwZWN0b3JVdGlscworeworICAgIHN0YXRpYyBo
dW1hblJlYWRhYmxlU2l6ZShzaXplSW5CeXRlcykKKyAgICB7CisgICAgICAgIHZhciBpID0gLTE7
CisgICAgICAgIGlmIChzaXplSW5CeXRlcyA8IDUxMikKKyAgICAgICAgICAgIHJldHVybiBzaXpl
SW5CeXRlcyArICcmdGhpbnNwO0InOworICAgICAgICB2YXIgYnl0ZVVuaXRzID0gWycmdGhpbnNw
O0tCJywgJyZ0aGluc3A7TUInLCAnJnRoaW5zcDtHQiddOworICAgICAgICBkbyB7CisgICAgICAg
ICAgICBzaXplSW5CeXRlcyA9IHNpemVJbkJ5dGVzIC8gMTAyNDsKKyAgICAgICAgICAgIGkrKzsK
KyAgICAgICAgfSB3aGlsZSAoc2l6ZUluQnl0ZXMgPiAxMDI0KTsKKworICAgICAgICByZXR1cm4g
TWF0aC5tYXgoc2l6ZUluQnl0ZXMsIDAuMSkudG9GaXhlZCgxKSArIGJ5dGVVbml0c1tpXTsKKyAg
ICB9CisKKyAgICBzdGF0aWMgYWRkcmVzc0Zvck5vZGUobm9kZSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBub2RlLndyYXBwZWRBZGRyZXNzID8gbm9kZS53cmFwcGVkQWRkcmVzcyA6IG5vZGUuYWRk
cmVzczsKKyAgICB9CisKKyAgICBzdGF0aWMgbm9kZU5hbWUoc25hcHNob3QsIG5vZGUpCisgICAg
eworICAgICAgICBpZiAobm9kZS50eXBlID09ICJJbnRlcm5hbCIpCisgICAgICAgICAgICByZXR1
cm4gJ0ludGVybmFsIG5vZGUnOworCisgICAgICAgIGxldCByZXN1bHQgPSBub2RlLmNsYXNzTmFt
ZSArICcgQCcgKyBub2RlLmlkICsgJyAoJyArIEhlYXBJbnNwZWN0b3JVdGlscy5hZGRyZXNzRm9y
Tm9kZShub2RlKSArICcgJyArIG5vZGUubGFiZWwgKyAnKSc7CisgICAgICAgIGlmIChub2RlLmdj
Um9vdCB8fCBub2RlLm1hcmtlZFJvb3QpCisgICAgICAgICAgICByZXN1bHQgKz0gJyAoR0Mgcm9v
dOKAlCcgKyBzbmFwc2hvdC5yZWFzb25OYW1lc0ZvclJvb3Qobm9kZS5pZCkuam9pbignLCAnKSAr
ICcpJzsKKyAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBzdGF0aWMg
c3BhbkZvck5vZGUoaW5zcGVjdG9yLCBub2RlLCBzaG93UGF0aEJ1dHRvbikKKyAgICB7CisgICAg
ICAgIGxldCBub2RlU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKworICAg
ICAgICBpZiAobm9kZS50eXBlID09ICJJbnRlcm5hbCIpIHsKKyAgICAgICAgICAgIG5vZGVTcGFu
LnRleHRDb250ZW50ID0gJ0ludGVybmFsIG5vZGUnOworICAgICAgICAgICAgcmV0dXJuIG5vZGVT
cGFuOworICAgICAgICB9CisKKyAgICAgICAgbGV0IHdyYXBwZWRBZGRyZXNzU3RyaW5nID0gbm9k
ZS53cmFwcGVkQWRkcmVzcyA/IGB3cmFwcGVkICR7bm9kZS53cmFwcGVkQWRkcmVzc31gIDogJyc7
CisKKyAgICAgICAgbGV0IG5vZGVIVE1MID0gbm9kZS5jbGFzc05hbWUgKyBgIDxzcGFuIGNsYXNz
PSJub2RlLWlkIj4ke25vZGUuaWR9PC9zcGFuPiA8c3BhbiBjbGFzcz0ibm9kZS1hZGRyZXNzIj5j
ZWxsICR7bm9kZS5hZGRyZXNzfSAke3dyYXBwZWRBZGRyZXNzU3RyaW5nfTwvc3Bhbj4gPHNwYW4g
Y2xhc3M9Im5vZGUtc2l6ZSI+KHJldGFpbnMgJHtIZWFwSW5zcGVjdG9yVXRpbHMuaHVtYW5SZWFk
YWJsZVNpemUobm9kZS5yZXRhaW5lZFNpemUpfSk8L3NwYW4+YDsKKyAgICAKKyAgICAgICAgaWYg
KG5vZGUubGFiZWwubGVuZ3RoKQorICAgICAgICAgICAgbm9kZUhUTUwgKz0gYCA8c3BhbiBjbGFz
cz0ibm9kZS1sYWJlbCI+4oCcJHtub2RlLmxhYmVsfeKAnTwvc3Bhbj5gOworICAgIAorICAgICAg
ICBub2RlU3Bhbi5pbm5lckhUTUwgPSBub2RlSFRNTDsKKworICAgICAgICBpZiAobm9kZS5nY1Jv
b3QgfHwgbm9kZS5tYXJrZWRSb290KSB7CisgICAgICAgICAgICBsZXQgZ2NSb290U3BhbiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICAgICAgICAgIGdjUm9vdFNwYW4uY2xh
c3NOYW1lID0gJ25vZGUtZ2Mtcm9vdCc7CisgICAgICAgICAgICBnY1Jvb3RTcGFuLnRleHRDb250
ZW50ID0gJyAoR0Mgcm9vdOKAlCcgKyBpbnNwZWN0b3Iuc25hcHNob3QucmVhc29uTmFtZXNGb3JS
b290KG5vZGUuaWQpLmpvaW4oJywgJykgKyAnKSc7CisgICAgICAgICAgICBub2RlU3Bhbi5hcHBl
bmRDaGlsZChnY1Jvb3RTcGFuKTsKKyAgICAgICAgfSBlbHNlIGlmIChzaG93UGF0aEJ1dHRvbikg
eworICAgICAgICAgICAgbGV0IHNob3dBbGxQYXRoc0FuY2hvciA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2J1dHRvbicpOworICAgICAgICAgICAgc2hvd0FsbFBhdGhzQW5jaG9yLmNsYXNzTmFt
ZSA9ICdub2RlLXNob3ctYWxsLXBhdGhzJzsKKyAgICAgICAgICAgIHNob3dBbGxQYXRoc0FuY2hv
ci50ZXh0Q29udGVudCA9ICdTaG93IGFsbCBwYXRocyc7CisgICAgICAgICAgICBzaG93QWxsUGF0
aHNBbmNob3IuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4geworICAgICAgICAgICAg
ICAgIGluc3BlY3Rvci5zaG93QWxsUGF0aHNUb05vZGUobm9kZSk7CisgICAgICAgICAgICB9LCBm
YWxzZSk7CisgICAgICAgICAgICBub2RlU3Bhbi5hcHBlbmRDaGlsZChzaG93QWxsUGF0aHNBbmNo
b3IpOworICAgICAgICB9CisgICAgCisgICAgICAgIHJldHVybiBub2RlU3BhbjsKKyAgICB9CisK
KyAgICBzdGF0aWMgc3BhbkZvckVkZ2Uoc25hcHNob3QsIGVkZ2UpCisgICAgeworICAgICAgICBs
ZXQgZWRnZVNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAgICAgIGVk
Z2VTcGFuLmNsYXNzTmFtZSA9ICdlZGdlJzsKKyAgICAgICAgZWRnZVNwYW4uaW5uZXJIVE1MID0g
JzxzcGFuIGNsYXNzPSJlZGdlLXR5cGUiPicgKyBlZGdlLnR5cGUgKyAnPC9zcGFuPiA8c3BhbiBj
bGFzcz0iZWRnZS1kYXRhIj4nICsgZWRnZS5kYXRhICsgJzwvc3Bhbj4nOworICAgICAgICByZXR1
cm4gZWRnZVNwYW47CisgICAgfQorCisgICAgc3RhdGljIHN1bW1hcnlTcGFuRm9yUGF0aChpbnNw
ZWN0b3IsIHBhdGgpCisgICAgeworICAgICAgICBsZXQgcGF0aFNwYW4gPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzcGFuJyk7CisgICAgICAgIHBhdGhTcGFuLmNsYXNzTmFtZSA9ICdwYXRoLXN1
bW1hcnknOworICAgIAorICAgICAgICBpZiAocGF0aC5sZW5ndGggPiAwKSB7CisgICAgICAgICAg
ICBsZXQgcGF0aExlbmd0aCA9IChwYXRoLmxlbmd0aCAtIDEpIC8gMjsKKyAgICAgICAgICAgIHBh
dGhTcGFuLnRleHRDb250ZW50ID0gcGF0aExlbmd0aCArICcgc3RlcCcgKyAocGF0aExlbmd0aCA+
IDEgPyAncycgOiAnJykgKyAnIGZyb20gJzsKKyAgICAgICAgICAgIHBhdGhTcGFuLmFwcGVuZENo
aWxkKEhlYXBJbnNwZWN0b3JVdGlscy5zcGFuRm9yTm9kZShpbnNwZWN0b3IsIHBhdGhbMF0pLCB0
cnVlKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBwYXRoU3BhbjsKKyAgICB9CisKKyAg
ICBzdGF0aWMgZWRnZU5hbWUoZWRnZSkKKyAgICB7CisgICAgICAgIHJldHVybiAn4oeSICcgKyBl
ZGdlLnR5cGUgKyAnICcgKyBlZGdlLmRhdGEgKyAnIOKHkic7CisgICAgfQorfTsKKworCisvLyBN
YW5hZ2VzIGEgbGlzdCBvZiBoZWFwIHNuYXBzaG90IG5vZGVzIHRoYXQgY2FuIGR5bmFtaWNhbGx5
IGJ1aWxkIHRoZSBjb250ZW50cyBvZiBhbiBIVE1MTGlzdEVsZW1lbnQuCitjbGFzcyBJbnN0YW5j
ZUxpc3QKK3sKKyAgICBjb25zdHJ1Y3RvcihsaXN0RWxlbWVudCwgc25hcHNob3QsIGxpc3RHZW5l
cmF0b3JGdW5jKQorICAgIHsKKyAgICAgICAgdGhpcy5saXN0RWxlbWVudCA9IGxpc3RFbGVtZW50
OworICAgICAgICB0aGlzLnNuYXBzaG90ID0gc25hcHNob3Q7CisgICAgICAgIHRoaXMubm9kZUxp
c3QgPSBsaXN0R2VuZXJhdG9yRnVuYyh0aGlzLnNuYXBzaG90KTsKKyAgICAgICAgdGhpcy5lbnRy
aWVzQWRkZWQgPSAwOworICAgICAgICB0aGlzLmluaXRpYWxFbnRyaWVzID0gMTAwOworICAgICAg
ICB0aGlzLmVudHJpZXNRdWFudHVtID0gNTA7CisgICAgICAgIHRoaXMuc2hvd01vcmVJdGVtID0g
dW5kZWZpbmVkOworICAgIH0KKyAgICAKKyAgICBidWlsZExpc3QoaW5zcGVjdG9yKQorICAgIHsK
KyAgICAgICAgRE9NVXRpbHMucmVtb3ZlQWxsQ2hpbGRyZW4odGhpcy5saXN0RWxlbWVudCk7Cisg
ICAgICAgIGlmICh0aGlzLm5vZGVMaXN0Lmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGxldCBtYXhJbmRleCA9IE1hdGgubWluKHRoaXMubm9kZUxpc3QubGVuZ3Ro
LCB0aGlzLmluaXRpYWxFbnRyaWVzKTsKKyAgICAgICAgdGhpcy5hcHBlbmRJdGVtc0ZvclJhbmdl
KGluc3BlY3RvciwgMCwgbWF4SW5kZXgpOworICAgICAgICAKKyAgICAgICAgaWYgKG1heEluZGV4
IDwgdGhpcy5ub2RlTGlzdC5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRoaXMuc2hvd01vcmVJdGVt
ID0gdGhpcy5tYWtlU2hvd01vcmVJdGVtKGluc3BlY3Rvcik7CisgICAgICAgICAgICB0aGlzLmxp
c3RFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuc2hvd01vcmVJdGVtKTsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgdGhpcy5lbnRyaWVzQWRkZWQgPSBtYXhJbmRleDsKKyAgICB9CisgICAg
CisgICAgYXBwZW5kSXRlbXNGb3JSYW5nZShpbnNwZWN0b3IsIHN0YXJ0SW5kZXgsIGVuZEluZGV4
KQorICAgIHsKKyAgICAgICAgZm9yIChsZXQgaW5kZXggPSBzdGFydEluZGV4OyBpbmRleCA8IGVu
ZEluZGV4OyArK2luZGV4KSB7CisgICAgICAgICAgICBsZXQgaW5zdGFuY2UgPSB0aGlzLm5vZGVM
aXN0W2luZGV4XTsKKyAgICAgICAgICAgIGxldCBsaXN0SXRlbSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2xpJyk7CisgICAgICAgICAgICBsaXN0SXRlbS5hcHBlbmRDaGlsZChIZWFwSW5zcGVj
dG9yVXRpbHMuc3BhbkZvck5vZGUoaW5zcGVjdG9yLCBpbnN0YW5jZSwgdHJ1ZSkpOworICAgICAg
ICAgICAgdGhpcy5saXN0RWxlbWVudC5hcHBlbmRDaGlsZChsaXN0SXRlbSk7CisgICAgICAgIH0K
KworICAgICAgICB0aGlzLmVudHJpZXNBZGRlZCA9IGVuZEluZGV4OworICAgIH0KKyAgICAKKyAg
ICBhcHBlbmRNb3JlRW50cmllcyhpbnNwZWN0b3IpCisgICAgeworICAgICAgICBsZXQgbnVtUmVt
YWluaW5nID0gdGhpcy5ub2RlTGlzdC5sZW5ndGggLSB0aGlzLmVudHJpZXNBZGRlZDsKKyAgICAg
ICAgaWYgKG51bVJlbWFpbmluZyA9PSAwKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IHRoaXMuc2hvd01vcmVJdGVtLnJlbW92ZSgpOworCisgICAgICAgIGxldCBmcm9tSW5kZXggPSB0
aGlzLmVudHJpZXNBZGRlZDsKKyAgICAgICAgbGV0IHRvSW5kZXggPSBNYXRoLm1pbih0aGlzLm5v
ZGVMaXN0Lmxlbmd0aCwgZnJvbUluZGV4ICsgdGhpcy5lbnRyaWVzUXVhbnR1bSk7CisgICAgICAg
IHRoaXMuYXBwZW5kSXRlbXNGb3JSYW5nZShpbnNwZWN0b3IsIGZyb21JbmRleCwgdG9JbmRleCk7
CisgICAgICAgIAorICAgICAgICBpZiAodG9JbmRleCA8IHRoaXMubm9kZUxpc3QubGVuZ3RoKSB7
CisgICAgICAgICAgICB0aGlzLnNob3dNb3JlSXRlbSA9IHRoaXMubWFrZVNob3dNb3JlSXRlbShp
bnNwZWN0b3IpOworICAgICAgICAgICAgdGhpcy5saXN0RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlz
LnNob3dNb3JlSXRlbSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtYWtlU2hvd01vcmVJdGVt
KGluc3BlY3RvcikKKyAgICB7CisgICAgICAgIGxldCBudW1iZXJSZW1haW5pbmcgPSB0aGlzLm5v
ZGVMaXN0Lmxlbmd0aCAtIHRoaXMuZW50cmllc0FkZGVkOworICAgICAgICAKKyAgICAgICAgbGV0
IGxpc3RJdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKKyAgICAgICAgbGlzdEl0
ZW0uY2xhc3NOYW1lID0gJ3Nob3ctbW9yZSc7CisgICAgICAgIGxpc3RJdGVtLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGAke251bWJlclJlbWFpbmluZ30gbW9yZSBgKSk7CisK
KyAgICAgICAgbGV0IG1vcmVCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24n
KTsKKyAgICAgICAgbW9yZUJ1dHRvbi50ZXh0Q29udGVudCA9IGBTaG93ICR7TWF0aC5taW4odGhp
cy5lbnRyaWVzUXVhbnR1bSwgbnVtYmVyUmVtYWluaW5nKX0gbW9yZWA7CisKKyAgICAgICAgbGV0
IHRoaXNMaXN0ID0gdGhpczsKKyAgICAgICAgbW9yZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdj
bGljaycsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHRoaXNMaXN0LmFwcGVuZE1vcmVFbnRy
aWVzKGluc3BlY3RvciwgMTApOworICAgICAgICB9LCBmYWxzZSk7CisgICAgICAgIAorICAgICAg
ICBsaXN0SXRlbS5hcHBlbmRDaGlsZChtb3JlQnV0dG9uKTsKKyAgICAgICAgcmV0dXJuIGxpc3RJ
dGVtOworICAgIH0KK307CisKKworY2xhc3MgSGVhcFNuYXBzaG90SW5zcGVjdG9yCit7CisgICAg
Y29uc3RydWN0b3IoY29udGFpbmVyRWxlbWVudCwgaGVhcEpTT05EYXRhLCBmaWxlbmFtZSkKKyAg
ICB7CisgICAgICAgIHRoaXMuY29udGFpbmVyRWxlbWVudCA9IGNvbnRhaW5lckVsZW1lbnQ7Cisg
ICAgICAgIHRoaXMucmVzZXRVSSgpOworCisgICAgICAgIHRoaXMuc25hcHNob3QgPSBuZXcgSGVh
cFNuYXBzaG90KDEsIGhlYXBKU09ORGF0YSwgZmlsZW5hbWUpOworICAgICAgICAKKyAgICAgICAg
dGhpcy5idWlsZFJvb3RzKCk7CisgICAgICAgIHRoaXMuYnVpbGRBbGxPYmplY3RzQnlUeXBlKCk7
CisKKyAgICAgICAgdGhpcy5idWlsZFBhdGhzVG9Sb290c09mVHlwZSgnV2luZG93Jyk7CisgICAg
ICAgIHRoaXMuYnVpbGRQYXRoc1RvUm9vdHNPZlR5cGUoJ0hUTUxEb2N1bWVudCcpOworICAgIH0K
KyAgICAKKyAgICByZXNldFVJKCkKKyAgICB7CisgICAgICAgIERPTVV0aWxzLnJlbW92ZUFsbENo
aWxkcmVuKHRoaXMuY29udGFpbmVyRWxlbWVudCk7CisgICAgICAgIAorICAgICAgICB0aGlzLm9i
amVjdEJ5VHlwZUNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlY3Rpb24nKTsK
KyAgICAgICAgdGhpcy5vYmplY3RCeVR5cGVDb250YWluZXIuaWQgPSAnYWxsLW9iamVjdHMtYnkt
dHlwZSc7CisKKyAgICAgICAgbGV0IGhlYWRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gx
Jyk7CisgICAgICAgIGhlYWRlci50ZXh0Q29udGVudCA9ICdBbGwgT2JqZWN0cyBieSBUeXBlJwor
ICAgICAgICB0aGlzLm9iamVjdEJ5VHlwZUNvbnRhaW5lci5hcHBlbmRDaGlsZChoZWFkZXIpOwor
ICAgICAgICAKKyAgICAgICAgdGhpcy5yb290c0NvbnRhaW5lciA9ICBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdzZWN0aW9uJyk7CisgICAgICAgIHRoaXMucm9vdHNDb250YWluZXIuaWQgPSAncm9v
dHMnOworICAgICAgICBoZWFkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdoMScpOworICAg
ICAgICBoZWFkZXIudGV4dENvbnRlbnQgPSAnUm9vdHMnCisgICAgICAgIHRoaXMucm9vdHNDb250
YWluZXIuYXBwZW5kQ2hpbGQoaGVhZGVyKTsKKworICAgICAgICB0aGlzLnBhdGhzVG9Sb290c0Nv
bnRhaW5lciA9ICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzZWN0aW9uJyk7CisgICAgICAgIHRo
aXMucGF0aHNUb1Jvb3RzQ29udGFpbmVyLmlkID0gJ3BhdGhzLXRvLXJvb3RzJzsKKyAgICAgICAg
aGVhZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaDEnKTsKKyAgICAgICAgaGVhZGVyLnRl
eHRDb250ZW50ID0gJ1BhdGhzIHRvIHJvb3RzJworICAgICAgICB0aGlzLnBhdGhzVG9Sb290c0Nv
bnRhaW5lci5hcHBlbmRDaGlsZChoZWFkZXIpOworCisgICAgICAgIHRoaXMuYWxsUGF0aHNDb250
YWluZXIgPSAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2VjdGlvbicpOworICAgICAgICB0aGlz
LmFsbFBhdGhzQ29udGFpbmVyLmlkID0gJ2FsbC1wYXRocyc7CisgICAgICAgIGhlYWRlciA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gxJyk7CisgICAgICAgIGhlYWRlci50ZXh0Q29udGVudCA9
ICdBbGwgcGF0aHMgdG/igKYnCisgICAgICAgIHRoaXMuYWxsUGF0aHNDb250YWluZXIuYXBwZW5k
Q2hpbGQoaGVhZGVyKTsKKworICAgICAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQuYXBwZW5kQ2hp
bGQodGhpcy5wYXRoc1RvUm9vdHNDb250YWluZXIpOworICAgICAgICB0aGlzLmNvbnRhaW5lckVs
ZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5hbGxQYXRoc0NvbnRhaW5lcik7CisgICAgICAgIHRoaXMu
Y29udGFpbmVyRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnJvb3RzQ29udGFpbmVyKTsKKyAgICAg
ICAgdGhpcy5jb250YWluZXJFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMub2JqZWN0QnlUeXBlQ29u
dGFpbmVyKTsKKyAgICB9CisKKyAgICBidWlsZEFsbE9iamVjdHNCeVR5cGUoKQorICAgIHsKKyAg
ICAgICAgbGV0IGNhdGVnb3JpZXMgPSB0aGlzLnNuYXBzaG90Ll9jYXRlZ29yaWVzOworICAgICAg
ICBsZXQgY2F0ZWdvcnlOYW1lcyA9IE9iamVjdC5rZXlzKGNhdGVnb3JpZXMpLnNvcnQoKTsKKyAg
ICAKKyAgICAgICAgZm9yICh2YXIgY2F0ZWdvcnlOYW1lIG9mIGNhdGVnb3J5TmFtZXMpIHsKKyAg
ICAgICAgICAgIGxldCBjYXRlZ29yeSA9IGNhdGVnb3JpZXNbY2F0ZWdvcnlOYW1lXTsKKworICAg
ICAgICAgICAgbGV0IGRldGFpbHMgPSBET01VdGlscy5jcmVhdGVEZXRhaWxzKGAke2NhdGVnb3J5
LmNsYXNzTmFtZX0gKCR7Y2F0ZWdvcnkuY291bnR9KWApOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBsZXQgaW5zdGFuY2VMaXN0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Vs
Jyk7CisgICAgICAgICAgICBpbnN0YW5jZUxpc3RFbGVtZW50LmNsYXNzTmFtZSA9ICdpbnN0YW5j
ZS1saXN0JzsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGV0IGluc3RhbmNlTGlzdCA9IG5l
dyBJbnN0YW5jZUxpc3QoaW5zdGFuY2VMaXN0RWxlbWVudCwgdGhpcy5zbmFwc2hvdCwgZnVuY3Rp
b24oc25hcHNob3QpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gSGVhcFNuYXBzaG90Lmluc3Rh
bmNlc1dpdGhDbGFzc05hbWUoc25hcHNob3QsIGNhdGVnb3J5TmFtZSk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW5zdGFuY2VMaXN0LmJ1aWxkTGlzdCh0aGlz
KTsKKworICAgICAgICAgICAgZGV0YWlscy5hcHBlbmRDaGlsZChpbnN0YW5jZUxpc3RFbGVtZW50
KTsKKyAgICAgICAgICAgIHRoaXMub2JqZWN0QnlUeXBlQ29udGFpbmVyLmFwcGVuZENoaWxkKGRl
dGFpbHMpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGJ1aWxkUm9vdHMoKQorICAgIHsK
KyAgICAgICAgbGV0IHJvb3RzID0gdGhpcy5zbmFwc2hvdC5yb290Tm9kZXMoKTsKKyAgICAgICAg
aWYgKHJvb3RzLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxl
dCBncm91cGluZ3MgPSByb290cy5yZWR1Y2UoZnVuY3Rpb24oYWNjdW11bGF0b3IsIG5vZGUpIHsK
KyAgICAgICAgICAgIHZhciBrZXkgPSBub2RlLmNsYXNzTmFtZTsKKyAgICAgICAgICAgICAgICBp
ZiAoIWFjY3VtdWxhdG9yW2tleV0pIHsKKyAgICAgICAgICAgICAgICAgIGFjY3VtdWxhdG9yW2tl
eV0gPSBbXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYWNjdW11bGF0b3Jb
a2V5XS5wdXNoKG5vZGUpOworICAgICAgICAgICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjsgICAg
ICAgIAorICAgICAgICB9LCB7fSk7CisgICAgCisgICAgICAgIGxldCByb290TmFtZXMgPSBPYmpl
Y3Qua2V5cyhncm91cGluZ3MpLnNvcnQoKTsKKyAgICAKKyAgICAgICAgZm9yICh2YXIgcm9vdENs
YXNzTmFtZSBvZiByb290TmFtZXMpIHsKKyAgICAgICAgICAgIGxldCByb290c09mVHlwZSA9IGdy
b3VwaW5nc1tyb290Q2xhc3NOYW1lXTsKKyAgICAgICAgCisgICAgICAgICAgICByb290c09mVHlw
ZS5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsKKyAgICAgICAgICAgICAgICBsZXQgYWRkcmVzc0EgPSBI
ZWFwSW5zcGVjdG9yVXRpbHMuYWRkcmVzc0Zvck5vZGUoYSk7CisgICAgICAgICAgICAgICAgbGV0
IGFkZHJlc3NCID0gSGVhcEluc3BlY3RvclV0aWxzLmFkZHJlc3NGb3JOb2RlKGIpOworICAgICAg
ICAgICAgICAgIHJldHVybiAoYWRkcmVzc0EgPCBhZGRyZXNzQikgPyAtMSA6IChhZGRyZXNzQSA+
IGFkZHJlc3NCKSA/IDEgOiAwOworICAgICAgICAgICAgfSkKKworICAgICAgICAgICAgbGV0IGRl
dGFpbHMgPSBET01VdGlscy5jcmVhdGVEZXRhaWxzKGAke3Jvb3RDbGFzc05hbWV9ICgke3Jvb3Rz
T2ZUeXBlLmxlbmd0aH0pYCk7CisgICAgICAgICAgICBsZXQgcm9vdHNUeXBlTGlzdCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3VsJykKKyAgICAgICAgICAgIHJvb3RzVHlwZUxpc3QuY2xhc3NO
YW1lID0gJ2luc3RhbmNlLWxpc3QnOworCisgICAgICAgICAgICBmb3IgKGxldCByb290IG9mIHJv
b3RzT2ZUeXBlKSB7CisgICAgICAgICAgICAgICAgbGV0IHJvb3RMaXN0SXRlbSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CisgICAgICAgICAgICAgICAgcm9vdExpc3RJdGVtLmFwcGVu
ZENoaWxkKEhlYXBJbnNwZWN0b3JVdGlscy5zcGFuRm9yTm9kZSh0aGlzLCByb290LCB0cnVlKSk7
CisgICAgICAgICAgICAgICAgcm9vdHNUeXBlTGlzdC5hcHBlbmRDaGlsZChyb290TGlzdEl0ZW0p
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkZXRhaWxzLmFwcGVuZENoaWxkKHJvb3Rz
VHlwZUxpc3QpOworCisgICAgICAgICAgICB0aGlzLnJvb3RzQ29udGFpbmVyLmFwcGVuZENoaWxk
KGRldGFpbHMpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGJ1aWxkUGF0aHNUb1Jvb3Rz
T2ZUeXBlKHR5cGUpCisgICAgeworICAgICAgICBsZXQgaW5zdGFuY2VzID0gSGVhcFNuYXBzaG90
Lmluc3RhbmNlc1dpdGhDbGFzc05hbWUodGhpcy5zbmFwc2hvdCwgdHlwZSk7CisgICAgICAgIGlm
IChpbnN0YW5jZXMubGVuZ3RoID09IDApCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
bGV0IGhlYWRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gyJyk7CisgICAgICAgIGhlYWRl
ci50ZXh0Q29udGVudCA9ICdTaG9ydGVzdCBwYXRocyB0byBhbGwgJyArIHR5cGUgKyAncyc7Cisg
ICAgCisgICAgICAgIGxldCBkZXRhaWxzQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnc2VjdGlvbicpCisgICAgICAgIGRldGFpbHNDb250YWluZXIuY2xhc3NOYW1lID0gJ3BhdGgn
OworCisgICAgICAgIGZvciAodmFyIGluc3RhbmNlIG9mIGluc3RhbmNlcykgeworICAgICAgICAg
ICAgbGV0IHNob3J0ZXN0UGF0aCA9IHRoaXMuc25hcHNob3Quc2hvcnRlc3RHQ1Jvb3RQYXRoKGlu
c3RhbmNlLmlkKS5yZXZlcnNlKCk7CisKKyAgICAgICAgICAgIGxldCBkZXRhaWxzID0gRE9NVXRp
bHMuY3JlYXRlRGV0YWlscygnJyk7CisgICAgICAgICAgICBsZXQgc3VtbWFyeSA9IGRldGFpbHMu
Zmlyc3RDaGlsZDsKKyAgICAgICAgICAgIHN1bW1hcnkuYXBwZW5kQ2hpbGQoSGVhcEluc3BlY3Rv
clV0aWxzLnNwYW5Gb3JOb2RlKHRoaXMsIGluc3RhbmNlLCB0cnVlKSk7CisgICAgICAgICAgICBz
dW1tYXJ5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCfigJQnKSk7CisgICAg
ICAgICAgICBzdW1tYXJ5LmFwcGVuZENoaWxkKEhlYXBJbnNwZWN0b3JVdGlscy5zdW1tYXJ5U3Bh
bkZvclBhdGgodGhpcywgc2hvcnRlc3RQYXRoKSk7CisKKyAgICAgICAgICAgIGxldCBwYXRoTGlz
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3VsJyk7CisgICAgICAgICAgICBwYXRoTGlzdC5j
bGFzc05hbWUgPSAncGF0aCc7CisKKyAgICAgICAgICAgIGxldCBpc05vZGUgPSB0cnVlOworICAg
ICAgICAgICAgbGV0IGN1cnJJdGVtID0gdW5kZWZpbmVkOworICAgICAgICAgICAgZm9yIChsZXQg
aXRlbSBvZiBzaG9ydGVzdFBhdGgpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNOb2RlKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGN1cnJJdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGkn
KTsKKyAgICAgICAgICAgICAgICAgICAgY3Vyckl0ZW0uYXBwZW5kQ2hpbGQoSGVhcEluc3BlY3Rv
clV0aWxzLnNwYW5Gb3JOb2RlKHRoaXMsIGl0ZW0pKTsKKyAgICAgICAgICAgICAgICAgICAgcGF0
aExpc3QuYXBwZW5kQ2hpbGQoY3Vyckl0ZW0pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgICAgIGN1cnJJdGVtLmFwcGVuZENoaWxkKEhlYXBJbnNwZWN0b3JVdGls
cy5zcGFuRm9yRWRnZSh0aGlzLnNuYXBzaG90LCBpdGVtKSk7CisgICAgICAgICAgICAgICAgICAg
IGN1cnJJdGVtID0gdW5kZWZpbmVkOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICBpc05vZGUgPSAhaXNOb2RlOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAg
IGRldGFpbHMuYXBwZW5kQ2hpbGQocGF0aExpc3QpOworICAgICAgICAgICAgZGV0YWlsc0NvbnRh
aW5lci5hcHBlbmRDaGlsZChkZXRhaWxzKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMucGF0
aHNUb1Jvb3RzQ29udGFpbmVyLmFwcGVuZENoaWxkKGhlYWRlcik7CisgICAgICAgIHRoaXMucGF0
aHNUb1Jvb3RzQ29udGFpbmVyLmFwcGVuZENoaWxkKGRldGFpbHNDb250YWluZXIpOworICAgIH0K
KworICAgIHNob3dBbGxQYXRoc1RvTm9kZShub2RlKQorICAgIHsKKyAgICAgICAgbGV0IHBhdGhz
ID0gdGhpcy5zbmFwc2hvdC5fZ2NSb290UGF0aHMobm9kZS5pZCk7CisgICAgCisgICAgICAgIGxl
dCBkZXRhaWxzID0gRE9NVXRpbHMuY3JlYXRlRGV0YWlscygnJyk7CisgICAgICAgIGxldCBzdW1t
YXJ5ID0gZGV0YWlscy5maXJzdENoaWxkOworICAgICAgICBzdW1tYXJ5LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKGAke3BhdGhzLmxlbmd0aH0gcGF0aCR7cGF0aHMubGVuZ3Ro
ID4gMSA/ICdzJyA6ICcnfSB0byBgKSk7CisgICAgICAgIHN1bW1hcnkuYXBwZW5kQ2hpbGQoSGVh
cEluc3BlY3RvclV0aWxzLnNwYW5Gb3JOb2RlKHRoaXMsIG5vZGUsIGZhbHNlKSk7CisKKyAgICAg
ICAgbGV0IGRldGFpbHNDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzZWN0aW9u
JykKKyAgICAgICAgZGV0YWlsc0NvbnRhaW5lci5jbGFzc05hbWUgPSAncGF0aCc7CisgICAgCisg
ICAgICAgIGZvciAobGV0IHBhdGggb2YgcGF0aHMpIHsKKyAgICAgICAgICAgIGxldCBwYXRoTm9k
ZXMgPSBwYXRoLm1hcCgoY29tcG9uZW50KSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKGNvbXBv
bmVudC5ub2RlKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zbmFwc2hvdC5zZXJp
YWxpemVOb2RlKGNvbXBvbmVudC5ub2RlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5z
bmFwc2hvdC5zZXJpYWxpemVFZGdlKGNvbXBvbmVudC5lZGdlKTsKKyAgICAgICAgICAgIH0pLnJl
dmVyc2UoKTsKKworICAgICAgICAgICAgbGV0IHBhdGhEZXRhaWxzID0gRE9NVXRpbHMuY3JlYXRl
RGV0YWlscygnJyk7CisgICAgICAgICAgICBsZXQgcGF0aFN1bW1hcnkgPSBwYXRoRGV0YWlscy5m
aXJzdENoaWxkOworICAgICAgICAgICAgcGF0aFN1bW1hcnkuYXBwZW5kQ2hpbGQoSGVhcEluc3Bl
Y3RvclV0aWxzLnN1bW1hcnlTcGFuRm9yUGF0aCh0aGlzLCBwYXRoTm9kZXMpKTsKKyAgICAgICAg
CisgICAgICAgICAgICBsZXQgcGF0aExpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd1bCcp
OworICAgICAgICAgICAgcGF0aExpc3QuY2xhc3NOYW1lID0gJ3BhdGgnOworCisgICAgICAgICAg
ICBsZXQgaXNOb2RlID0gdHJ1ZTsKKyAgICAgICAgICAgIGxldCBjdXJySXRlbSA9IHVuZGVmaW5l
ZDsKKyAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgcGF0aE5vZGVzKSB7CisgICAgICAgICAg
ICAgICAgaWYgKGlzTm9kZSkgeworICAgICAgICAgICAgICAgICAgICBjdXJySXRlbSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CisgICAgICAgICAgICAgICAgICAgIGN1cnJJdGVtLmFw
cGVuZENoaWxkKEhlYXBJbnNwZWN0b3JVdGlscy5zcGFuRm9yTm9kZSh0aGlzLCBpdGVtKSk7Cisg
ICAgICAgICAgICAgICAgICAgIHBhdGhMaXN0LmFwcGVuZENoaWxkKGN1cnJJdGVtKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjdXJySXRlbS5hcHBlbmRD
aGlsZChIZWFwSW5zcGVjdG9yVXRpbHMuc3BhbkZvckVkZ2UodGhpcy5zbmFwc2hvdCwgaXRlbSkp
OworICAgICAgICAgICAgICAgICAgICBjdXJySXRlbSA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgaXNOb2RlID0gIWlzTm9kZTsKKyAgICAgICAgICAgIH0K
KyAgICAKKyAgICAgICAgICAgIHBhdGhEZXRhaWxzLmFwcGVuZENoaWxkKHBhdGhMaXN0KTsKKyAg
ICAgICAgICAgIGRldGFpbHNDb250YWluZXIuYXBwZW5kQ2hpbGQocGF0aERldGFpbHMpOworICAg
ICAgICB9CisgICAgCisgICAgICAgIGRldGFpbHMuYXBwZW5kQ2hpbGQoZGV0YWlsc0NvbnRhaW5l
cik7CisgICAgICAgIHRoaXMuYWxsUGF0aHNDb250YWluZXIuYXBwZW5kQ2hpbGQoZGV0YWlscyk7
CisgICAgfQorCit9OworCisKK2Z1bmN0aW9uIGxvYWRSZXN1bHRzKGRhdGFTdHJpbmcsIGZpbGVu
YW1lKQoreworICAgIGxldCBpbnNwZWN0b3JDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndWlDb250YWluZXInKTsKKyAgICBpbnNwZWN0b3IgPSBuZXcgSGVhcFNuYXBzaG90SW5z
cGVjdG9yKGluc3BlY3RvckNvbnRhaW5lciwgZGF0YVN0cmluZywgZmlsZW5hbWUpCit9CisKK2Z1
bmN0aW9uIGZpbGVuYW1lRm9yUGF0aChmaWxlcGF0aCkKK3sKKyAgICByZXR1cm4gZmlsZXBhdGgu
bWF0Y2goLyhbXlwvXSspKD89XC5cdyskKS8pWzBdOworfQorCitmdW5jdGlvbiBoaWRlRGVzY3Jp
cHRpb24oKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXNjcmlwdGlvbicpLmNs
YXNzTGlzdC5hZGQoJ2hpZGRlbicpOworfQorCit2YXIgaW5zcGVjdG9yOworCitmdW5jdGlvbiBz
ZXR1cEludGVyZmFjZSgpCit7CisgICAgLy8gU2VlIGlmIHdlIGhhdmUgYSBmaWxlIHRvIGxvYWQg
c3BlY2lmaWVkIGluIHRoZSBxdWVyeSBzdHJpbmcuCisgICAgdmFyIHF1ZXJ5X3BhcmFtZXRlcnMg
PSB7fTsKKyAgICB2YXIgcGFpcnMgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5zbGljZSh3aW5kb3cu
bG9jYXRpb24uaHJlZi5pbmRleE9mKCc/JykgKyAxKS5zcGxpdCgnJicpOworICAgIHZhciBmaWxl
bmFtZSA9ICJ0ZXN0LWhlYXAuanNvbiI7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhaXJz
Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBwYWlyID0gcGFpcnNbaV0uc3BsaXQoJz0nKTsK
KyAgICAgICAgcXVlcnlfcGFyYW1ldGVyc1twYWlyWzBdXSA9IGRlY29kZVVSSUNvbXBvbmVudChw
YWlyWzFdKTsKKyAgICB9CisKKyAgICBpZiAoImZpbGVuYW1lIiBpbiBxdWVyeV9wYXJhbWV0ZXJz
KQorICAgICAgICBmaWxlbmFtZSA9IHF1ZXJ5X3BhcmFtZXRlcnNbImZpbGVuYW1lIl07CisKKyAg
ICBmZXRjaChmaWxlbmFtZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAg
ICAgICAgaWYgKHJlc3BvbnNlLm9rKQorICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4
dCgpOworICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGxvYWQgZGF0YSBmaWxl
ICcgKyBmaWxlbmFtZSk7CisgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZGF0YVN0cmlu
ZykgeworICAgICAgICAgIGxvYWRSZXN1bHRzKGRhdGFTdHJpbmcsIGZpbGVuYW1lRm9yUGF0aChm
aWxlbmFtZSkpOworICAgICAgICAgIGhpZGVEZXNjcmlwdGlvbigpOworICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd1aUNvbnRhaW5lcicpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2sn
OworICAgICAgfSk7CisKKyAgICB2YXIgZHJvcF90YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZHJvcFRhcmdldCIpOworCisgICAgZHJvcF90YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigi
ZHJhZ2VudGVyIiwgZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgZHJvcF90YXJnZXQuY2xhc3NOYW1l
ID0gImRyYWdPdmVyIjsKKyAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgZS5w
cmV2ZW50RGVmYXVsdCgpOworICAgIH0sIGZhbHNlKTsKKworICAgIGRyb3BfdGFyZ2V0LmFkZEV2
ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgZS5zdG9wUHJv
cGFnYXRpb24oKTsKKyAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgIH0sIGZhbHNlKTsK
KworICAgIGRyb3BfdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsIGZ1bmN0aW9u
IChlKSB7CisgICAgICAgIGRyb3BfdGFyZ2V0LmNsYXNzTmFtZSA9ICIiOworICAgICAgICBlLnN0
b3BQcm9wYWdhdGlvbigpOworICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgfSwgZmFs
c2UpOworCisgICAgZHJvcF90YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsIGZ1bmN0aW9u
IChlKSB7CisgICAgICAgIGRyb3BfdGFyZ2V0LmNsYXNzTmFtZSA9ICIiOworICAgICAgICBlLnN0
b3BQcm9wYWdhdGlvbigpOworICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisKKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBlLmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGg7ICsraSkgewor
ICAgICAgICAgICAgdmFyIGZpbGUgPSBlLmRhdGFUcmFuc2Zlci5maWxlc1tpXTsKKworICAgICAg
ICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CisgICAgICAgICAgICByZWFkZXIu
ZmlsZW5hbWUgPSBmaWxlLm5hbWU7CisgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgICAgIGxvYWRSZXN1bHRzKGUudGFyZ2V0LnJlc3VsdCwgZmls
ZW5hbWVGb3JQYXRoKHRoaXMuZmlsZW5hbWUpKTsKKyAgICAgICAgICAgICAgICBoaWRlRGVzY3Jp
cHRpb24oKTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndWlDb250
YWluZXInKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKKyAgICAgICAgICAgIH07CisKKyAgICAg
ICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGZpbGUpOworICAgICAgICAgICAgZG9jdW1lbnQudGl0
bGUgPSAiR0MgSGVhcDogIiArIHJlYWRlci5maWxlbmFtZTsKKyAgICAgICAgfQorICAgIH0sIGZh
bHNlKTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBzZXR1cEludGVyZmFj
ZSwgZmFsc2UpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347982</attachid>
            <date>2018-08-23 18:06:32 -0700</date>
            <delta_ts>2018-08-23 19:56:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186416-20180823180632.patch</filename>
            <type>text/plain</type>
            <size>351801</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NTM0MDc2MTZlYmYwNWEyZmE3OTJiYjBiZjIyYTkyMjFkNTI2ZTc0Li4xYjY0NDMyOTc5YTMyZDg1
MGE3OGM0OTA4NDJiNmQxYzY0OTlmNDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NyBAQAorMjAxOC0wOC0yMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgZHVtcGluZyBHQyBoZWFwIHNuYXBzaG90
cywgYW5kIGEgdmlld2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODY0MTYKKworICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisK
KyAgICAgICAgTWFrZSBhIHdheSB0byBkdW1wIGluZm9ybWF0aW9uIGFib3V0IHRoZSBHQyBoZWFw
IHRoYXQgaXMgdXNlZnVsIGZvciBsb29raW5nIGZvciBsZWFrZWQKKyAgICAgICAgb3IgYWJhbmRv
bmVkIG9iamVjdHMuIFRoaXMgZHVtcCBpcyBvYnRhaW5lZCAob24gQXBwbGUgcGxhdGZvcm1zKSB2
aWE6CisgICAgICAgICAgICBub3RpZnl1dGlsIC1wIGNvbS5hcHBsZS5XZWJLaXQuZHVtcEdDSGVh
cAorICAgICAgICB3aGljaCB3cml0ZXMgYSBKU09OIGZpbGUgdG8gL3RtcCB3aGljaCBjYW4gdGhl
biBiZSBsb2FkZWQgaW50byB0aGUgdmlld2VyIGluIFRvb2xzL0dDSGVhcEluc3BlY3Rvci4KKyAg
ICAgICAgCisgICAgICAgIFRoaXMgbGV2ZXJhZ2VzIHRoZSBoZWFwIHNuYXBzaG90IHVzZWQgYnkg
V2ViIEluc3BlY3RvciwgYWRkaW5nIGFuIGFsdGVybmF0ZSBmb3JtYXQgZm9yCisgICAgICAgIHRo
ZSBzbmFwc2hvdCBKU09OIHRoYXQgYWRkcyBhZGRpdGlvbmFsIGRhdGEgYWJvdXQgb2JqZWN0cyBh
bmQgd2h5IHRoZXkgYXJlIEdDIHJvb3RzLgorCisgICAgICAgIFNsb3RWaXNpdG9yIG1haW50YWlu
cyBhIFJvb3RNYXJrUmVhc29uICh2aWEgU2V0Um9vdE1hcmtSZWFzb25TY29wZSkgdGhhdCBhbGxv
d3MKKyAgICAgICAgdGhlIEhlYXBTbmFwc2hvdEJ1aWxkZXIgdG8ga2VlcCB0cmFjayBvZiB3aHkg
YSBKU0NlbGwgd2FzIHRyZWF0ZWQgYXMgYSBHQyByb290LiBGb3IKKyAgICAgICAgb2JqZWN0cyB2
aXNpdGVkIHZpYSBvcGFxdWUgcm9vdHMsIHdlIHJlY29yZCB0aGUgcmVhc29uIHdoeSB2aWEgYSBu
ZXcgb3V0IHBhcmFtIHRvCisgICAgICAgIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKCkuCisK
KyAgICAgICAgSGVhcFNuYXBzaG90QnVpbGRlciBpcyBlbmhhbmNlZCB0byBwcm9kdWNlIEdDRGVi
dWdnaW5nU25hcHNob3QgSlNPTiBvdXRwdXQuIFRoaXMgY29udGFpbnMKKyAgICAgICAgYWRkaXRp
b25hbCBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgdGhlIGFkZHJlc3Mgb2YgdGhlIEpTQ2VsbCogYW5k
IHRoZSB3cmFwcGVkIG9iamVjdCAoZm9yCisgICAgICAgIEpTRE9NV3JhcHBlcnMpLCB0aGUgcm9v
dCByZWFzb25zLCBhbmQgZm9yIHNvbWUgb2JqZWN0cyBsaWtlIEpTRG9jdW1lbnQgYSBsYWJlbCB3
aGljaCBjYW4KKyAgICAgICAgYmUgdGhlIGRvY3VtZW50IFVSTC4KKworICAgICAgICBHQ0RlYnVn
Z2luZ1NuYXBzaG90cyBhcmUgYWx3YXlzIGZ1bGwgc25hcHNob3RzIChwcmV2aW91cyBzbmFwc2hv
dHMgYXJlIG5vdCBrZXB0IGFyb3VuZCkuCisKKyAgICAgICAgKiBBUEkvSlNBUElXcmFwcGVyT2Jq
ZWN0Lm1tOgorICAgICAgICAoSlNBUElXcmFwcGVyT2JqZWN0SGFuZGxlT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBBUEkvSlNNYW5hZ2VkVmFsdWUubW06Cisg
ICAgICAgIChKU01hbmFnZWRWYWx1ZUhhbmRsZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyk6CisgICAgICAgICogQVBJL2dsaWIvSlNBUElXcmFwcGVyT2JqZWN0R0xpYi5jcHA6Cisg
ICAgICAgIChKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMpOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIGhlYXAvQ29u
c2VydmF0aXZlUm9vdHMuaDoKKyAgICAgICAgKEpTQzo6Q29uc2VydmF0aXZlUm9vdHM6OnNpemUg
Y29uc3QpOgorICAgICAgICAoSlNDOjpDb25zZXJ2YXRpdmVSb290czo6c2l6ZSk6IERlbGV0ZWQu
CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6YWRkQ29yZUNv
bnN0cmFpbnRzKToKKyAgICAgICAgKiBoZWFwL0hlYXBTbmFwc2hvdEJ1aWxkZXIuY3BwOgorICAg
ICAgICAoSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyOjpnZXROZXh0T2JqZWN0SWRlbnRpZmllcik6
CisgICAgICAgIChKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXI6OkhlYXBTbmFwc2hvdEJ1aWxkZXIp
OgorICAgICAgICAoSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyOjp+SGVhcFNuYXBzaG90QnVpbGRl
cik6CisgICAgICAgIChKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXI6OmJ1aWxkU25hcHNob3QpOgor
ICAgICAgICAoSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyOjphcHBlbmROb2RlKToKKyAgICAgICAg
KEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlcjo6YXBwZW5kRWRnZSk6CisgICAgICAgIChKU0M6Okhl
YXBTbmFwc2hvdEJ1aWxkZXI6OnNldE9wYXF1ZVJvb3RSZWFjaGFiaWxpdHlSZWFzb25Gb3JDZWxs
KToKKyAgICAgICAgKEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlcjo6c2V0V3JhcHBlZE9iamVjdEZv
ckNlbGwpOgorICAgICAgICAoSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyOjpwcmV2aW91c1NuYXBz
aG90SGFzTm9kZUZvckNlbGwpOgorICAgICAgICAoSlNDOjpzbmFwc2hvdFR5cGVUb1N0cmluZyk6
CisgICAgICAgIChKU0M6OnJvb3RUeXBlVG9TdHJpbmcpOgorICAgICAgICAoSlNDOjpIZWFwU25h
cHNob3RCdWlsZGVyOjpzZXRMYWJlbEZvckNlbGwpOgorICAgICAgICAoSlNDOjpIZWFwU25hcHNo
b3RCdWlsZGVyOjpkZXNjcmlwdGlvbkZvckNlbGwgY29uc3QpOgorICAgICAgICAoSlNDOjpIZWFw
U25hcHNob3RCdWlsZGVyOjpqc29uKToKKyAgICAgICAgKEpTQzo6SGVhcFNuYXBzaG90QnVpbGRl
cjo6aGFzRXhpc3RpbmdOb2RlRm9yQ2VsbCk6IERlbGV0ZWQuCisgICAgICAgICogaGVhcC9IZWFw
U25hcHNob3RCdWlsZGVyLmg6CisgICAgICAgICogaGVhcC9TbG90VmlzaXRvci5jcHA6CisgICAg
ICAgIChKU0M6OlNsb3RWaXNpdG9yOjphcHBlbmRTbG93KToKKyAgICAgICAgKiBoZWFwL1Nsb3RW
aXNpdG9yLmg6CisgICAgICAgIChKU0M6OlNsb3RWaXNpdG9yOjpoZWFwU25hcHNob3RCdWlsZGVy
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6U2xvdFZpc2l0b3I6OnJvb3RNYXJrUmVhc29uIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6U2xvdFZpc2l0b3I6OnNldFJvb3RNYXJrUmVhc29uKToKKyAgICAg
ICAgKEpTQzo6U2V0Um9vdE1hcmtSZWFzb25TY29wZTo6U2V0Um9vdE1hcmtSZWFzb25TY29wZSk6
CisgICAgICAgIChKU0M6OlNldFJvb3RNYXJrUmVhc29uU2NvcGU6On5TZXRSb290TWFya1JlYXNv
blNjb3BlKToKKyAgICAgICAgKiBoZWFwL1dlYWtCbG9jay5jcHA6CisgICAgICAgIChKU0M6Oldl
YWtCbG9jazo6c3BlY2lhbGl6ZWRWaXNpdCk6CisgICAgICAgICogaGVhcC9XZWFrSGFuZGxlT3du
ZXIuY3BwOgorICAgICAgICAoSlNDOjpXZWFrSGFuZGxlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9w
YXF1ZVJvb3RzKToKKyAgICAgICAgKiBoZWFwL1dlYWtIYW5kbGVPd25lci5oOgorICAgICAgICAq
IHJ1bnRpbWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoSlNDOjpT
aW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZlck93bmVyOjppc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogcnVudGltZS9TaW1wbGVUeXBlZEFycmF5Q29u
dHJvbGxlci5oOgorICAgICAgICAqIHRvb2xzL0pTRG9sbGFyVk0uY3BwOgorCiAyMDE4LTA4LTIz
ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFlBUlI6IE5l
ZWQgdG8gSklUIGNvbXBpbGUgYSBSZWdFeHAgYmVmb3JlIHVzaW5nIGNvbnRhaW5zTmVzdGVkU3Vi
cGF0dGVybnMgZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQzMDAwMTYyMDAwMzhhMDQ5NDM1ODVlNjk0NmMx
ZTA0ZTc1Zjg1ZTMuLjQ2MTlhOWIyMDQ3MDdlYjdhMWE4NGQwNjA4YzY0ZTE3NjliZTM3YWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzMTQgQEAKKzIwMTgtMDgtMjMgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGR1bXBpbmcg
R0MgaGVhcCBzbmFwc2hvdHMsIGFuZCBhIHZpZXdlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2NDE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9z
ZXBoIFBlY29yYXJvLgorCisgICAgICAgIE1ha2UgYSB3YXkgdG8gZHVtcCBpbmZvcm1hdGlvbiBh
Ym91dCB0aGUgR0MgaGVhcCB0aGF0IGlzIHVzZWZ1bCBmb3IgbG9va2luZyBmb3IgbGVha2VkCisg
ICAgICAgIG9yIGFiYW5kb25lZCBvYmplY3RzLiBUaGlzIGR1bXAgaXMgb2J0YWluZWQgKG9uIEFw
cGxlIHBsYXRmb3JtcykgdmlhOgorICAgICAgICAgICAgbm90aWZ5dXRpbCAtcCBjb20uYXBwbGUu
V2ViS2l0LmR1bXBHQ0hlYXAKKyAgICAgICAgd2hpY2ggd3JpdGVzIGEgSlNPTiBmaWxlIHRvIC90
bXAgd2hpY2ggY2FuIHRoZW4gYmUgbG9hZGVkIGludG8gdGhlIHZpZXdlciBpbiBUb29scy9HQ0hl
YXBJbnNwZWN0b3IuCisKKyAgICAgICAgVGhpcyBsZXZlcmFnZXMgdGhlIGhlYXAgc25hcHNob3Qg
dXNlZCBieSBXZWIgSW5zcGVjdG9yLCBhZGRpbmcgYW4gYWx0ZXJuYXRlIGZvcm1hdCBmb3IKKyAg
ICAgICAgdGhlIHNuYXBzaG90IEpTT04gdGhhdCBhZGRzIGFkZGl0aW9uYWwgZGF0YSBhYm91dCBv
YmplY3RzIGFuZCB3aHkgdGhleSBhcmUgR0Mgcm9vdHMuCisgICAgICAgIAorICAgICAgICBUaGUg
Z2VuZXJhdGVkIGJpbmRpbmdzIGNvZGUgaXMgY2hhbmdlZCB0byBpbmNsdWRlIHRoZSBvdXRwdXQg
cm9vdCByZWFzb24gZnJvbSBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cygpLAorICAgICAgICBh
bmQgdG8gaW1wbGVtZW50IGhlYXBTbmFwc2hvdCgpIHdoaWNoIHByb3ZpZGVzIHRoZSBhZGRyZXNz
IG9mIHRoZSB3cmFwcGVkIG9iamVjdC4gQSBuZXcgSURMIGF0dHJpYnV0ZSwKKyAgICAgICAgQ3Vz
dG9tSGVhcFNuYXBzaG90LCBpcyB1c2VkIHRvIGFsbG93IGN1c3RvbSBoZWFwU25hcHNob3QoKSBp
bXBsZW1lbnRhdGlvbnMgZm9yIGNsYXNzZXMgbGlrZSBKU0RvY3VtZW50CisgICAgICAgIHRoYXQg
bmVlZCB0byBkZWNvcmF0ZSB0aGUgaGVhcCBzbmFwc2hvdCBjZWxsIGRhdGEgd2l0aCB0aGluZ3Mg
bGlrZSB0aGUgZG9jdW1lbnQgVVJMLgorCisgICAgICAgIEdDQ29udHJvbGxlciByZWdpc3RlcnMg
YSBub3RpZnl1dGlsIGNhbGxiYWNrIHdoaWNoIGdhdGhlcnMgdGhlIGRlYnVnIGhlYXAgc25hcHNo
b3QsIGFuZCBkdW1wcyBpdAorICAgICAgICB0byBhIGZpbGUgaW4gL3RtcC4gVGhlIGZpbGUgcGF0
aCBpcyBwcmludGVkIG91dCB0byB0aGUgc3lzdGVtIGxvZy4KKworICAgICAgICAqIGJpbmRpbmdz
L2pzL0RPTUdDT3V0cHV0Q29uc3RyYWludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01HQ091
dHB1dENvbnN0cmFpbnQ6OmV4ZWN1dGVJbXBsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9HQ0Nv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0NDb250cm9sbGVyOjpHQ0NvbnRyb2xs
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R0NDb250cm9sbGVyOjpkdW1wSGVhcCk6CisgICAgICAg
ICogYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlND
U1NSdWxlTGlzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0NTU1J1bGVMaXN0T3du
ZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0NhbGxiYWNrRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0NhbGxiYWNrRGF0YVdlYWs6
OldlYWtPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoV2ViQ29yZTo6
SlNET01XaW5kb3c6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNEZXBy
ZWNhdGVkQ1NTT01WYWx1ZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RlcHJlY2F0
ZWRDU1NPTVZhbHVlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
RG9jdW1lbnQ6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNaWNyb3Rh
c2tDYWxsYmFjay5oOgorICAgICAgICAoV2ViQ29yZTo6SlNNaWNyb3Rhc2tDYWxsYmFjazo6Y2Fs
bCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTTXV0YXRpb25PYnNlcnZlck93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNOYXZpZ2F0b3JDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOYXZpZ2F0b3I6OnZpc2l0QWRkaXRpb25hbENoaWxk
cmVuKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6aXNSZWFjaGFibGVGcm9tRE9NKToKKyAgICAgICAgKFdlYkNvcmU6OkpTTm9kZU93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNOb2RlTGlzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGVMaXN0T3duZXI6
OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU09m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRE93bmVyOjppc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNQZXJmb3JtYW5jZU9i
c2VydmVyQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTUGVyZm9ybWFuY2VPYnNlcnZl
ck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNQb3BTdGF0ZUV2ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1Rl
eHRUcmFja0N1ZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1RleHRUcmFja0N1ZU93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3MvanMv
V2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNv
cmVUeXBlZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZlck93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlD
b250cm9sbGVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbjoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTSW50ZXJmYWNlTmFtZTo6aGVhcFNuYXBzaG90KToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTSW50ZXJmYWNlTmFtZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTSW50ZXJmYWNlTmFt
ZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExpa2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNNYXBMaWtlOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNNYXBMaWtlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmg6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTUmVhZE9ubHlNYXBMaWtlOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNSZWFkT25seU1hcExpa2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5TWFwTGlrZS5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpoZWFwU25hcHNo
b3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0QWN0aXZlRE9NT2JqZWN0T3duZXI6OmlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENF
UmVhY3Rpb25zOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Q0VSZWFj
dGlvbnNPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5oOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXI6OmhlYXBTbmFwc2hv
dCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyT3duZXI6
OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5oOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTVGVzdENhbGxUcmFjZXI6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpK
U1Rlc3RDYWxsVHJhY2VyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5oOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5D
b25zdHJ1Y3Rvcjo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENsYXNz
V2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNC
dWlsdGluQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3Q6
OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21Db25zdHJ1Y3Rv
cldpdGhOb0ludGVyZmFjZU9iamVjdE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVj
dG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RET01KSVQ6
OmhlYXBTbmFwc2hvdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dERPTUpJVC5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFi
bGVkQnlTZXR0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEVuYWJsZWRCeVNldHRp
bmc6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFbmFibGVkQnlTZXR0
aW5nT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdEV2ZW50Q29uc3RydWN0b3I6OmhlYXBTbmFwc2hvdCk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RXZlbnRUYXJnZXQ6OmhlYXBTbmFwc2hvdCk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0Lmg6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFeGNlcHRpb246OmhlYXBTbmFwc2hvdCk6CisgICAgICAg
IChXZWJDb3JlOjpKU1Rlc3RFeGNlcHRpb25Pd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24u
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
OjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdEdsb2JhbE9iamVjdDo6aGVhcFNuYXBzaG90KToKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdEdsb2JhbE9iamVjdE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9i
amVjdC5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXI6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpoZWFwU25hcHNob3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uT3du
ZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmg6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXI6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZTo6aGVhcFNu
YXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZU93bmVyOjppc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZTo6aGVhcFNuYXBzaG90KToKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0SXRlcmFibGU6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJdGVy
YWJsZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmg6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6aGVhcFNuYXBzaG90KToK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJPd25lcjo6aXNS
ZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXI6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMp
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b246OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbk93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMp
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dE5hbWVkQ29uc3RydWN0b3I6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3ROYW1lZENvbnN0cnVjdG9yT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5o
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJO
b0lkZW50aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWREZWxldGVyTm9J
ZGVudGlmaWVyOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRE
ZWxldGVyTm9JZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVu
dGlmaWVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
RGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5h
bWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Pd25lcjo6aXNSZWFjaGFi
bGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcjo6aGVhcFNu
YXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlm
aWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElu
ZGV4ZWRHZXR0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWREZWxldGVyV2l0
aEluZGV4ZWRHZXR0ZXI6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RO
YW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVs
ZXRlcldpdGhJbmRleGVkR2V0dGVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aDo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRl
ckNhbGxXaXRoLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVk
R2V0dGVyTm9JZGVudGlmaWVyOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRl
ck5vSWRlbnRpZmllci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXI6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJD
b3JlOjpKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6aGVhcFNuYXBzaG90KToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpoZWFwU25h
cHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbk93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
SWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlcldpdGhJ
ZGVudGlmaWVyOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElk
ZW50aWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RO
YW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlck93bmVyOjppc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0
dGVyQW5kU2V0dGVyOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlck93bmVyOjppc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0
aW5zOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRTZXR0ZXJX
aXRoT3ZlcnJpZGVCdWlsdGluc093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92
ZXJyaWRlQnVpbHRpbnMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXM6OmhlYXBTbmFw
c2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxl
UHJvcGVydGllc093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQ
cm9wZXJ0aWVzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVy
dGllc0FuZE92ZXJyaWRlQnVpbHRpbnM6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3Jl
OjpKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVp
bHRpbnNPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVy
dGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROb2RlOjpoZWFw
U25hcHNob3QpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2Rl
Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmo6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJD
b3JlOjpKU1Rlc3RPYmpPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpoZWFwU25hcHNo
b3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc093bmVy
Ojppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1
ZW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
V2l0aFNlcXVlbmNlOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zOjpoZWFwU25hcHNob3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0T3ZlcnJpZGVCdWlsdGluc093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVp
bHRpbnMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2lu
SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFBsdWdpbkludGVyZmFjZTo6
aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFBsdWdpbkludGVyZmFjZU93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50OjpoZWFwU25hcHNob3QpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnQuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFs
aXphdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxpemF0aW9uOjpoZWFw
U25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U2VyaWFsaXphdGlvbk93bmVyOjpp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2U6Omhl
YXBTbmFwc2hvdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
cmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlLmg6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0OjpoZWFwU25hcHNob3QpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5o
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9u
SW5oZXJpdEZpbmFsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6YXRpb25J
bmhlcml0RmluYWw6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZTo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTdHJpbmdpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTdHJpbmdpZmllcjo6
aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFN0cmluZ2lmaWVyT3duZXI6
OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb246OmhlYXBTbmFw
c2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJh
dGlvbk93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFt
ZWRPcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U3RyaW5naWZpZXJOYW1l
ZE9wZXJhdGlvbjo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFN0cmlu
Z2lmaWVyTmFtZWRPcGVyYXRpb25Pd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVk
T3BlcmF0aW9uLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0
cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXM6OmhlYXBTbmFwc2hvdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNP
d25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25OYW1lZFRvU3RyaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFN0cmluZ2lm
aWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZzo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdlYkNv
cmU6OkpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ093bmVyOjppc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZy5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1
dGU6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTdHJpbmdpZmllclJl
YWRPbmx5QXR0cmlidXRlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0
dHJpYnV0ZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJp
bmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RT
dHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZTo6aGVhcFNuYXBzaG90KToKKyAgICAgICAgKFdl
YkNvcmU6OkpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0VHlwZWRlZnM6OmhlYXBTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RU
eXBlZGVmc093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmg6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmlkbDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKIDIwMTgtMDgtMjMg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlh
U3RyZWFtXSBTdG9yZSB2aWRlbyBwcmVzZXQgc2l6ZXMgaW4gYSBtYXAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hh
bmdlTG9nCmluZGV4IDY0Njg3NWQwOTJiOTBhYTBlNDI3NjYzNjdjYjJjYzZlMzg1MzU3MTMuLmY5
NzFmYWRmZTJlNmU5OGE0MmVmZjcwNTkwODM5NDI2ZTdmYjc1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE4LTA4LTIzICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBkdW1waW5nIEdD
IGhlYXAgc25hcHNob3RzLCBhbmQgYSB2aWV3ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjQxNgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvc2Vw
aCBQZWNvcmFyby4KKworICAgICAgICBNYWtlIGEgd2F5IHRvIGR1bXAgaW5mb3JtYXRpb24gYWJv
dXQgdGhlIEdDIGhlYXAgdGhhdCBpcyB1c2VmdWwgZm9yIGxvb2tpbmcgZm9yIGxlYWtlZAorICAg
ICAgICBvciBhYmFuZG9uZWQgb2JqZWN0cy4gVGhpcyBkdW1wIGlzIG9idGFpbmVkIChvbiBBcHBs
ZSBwbGF0Zm9ybXMpIHZpYToKKyAgICAgICAgICAgIG5vdGlmeXV0aWwgLXAgY29tLmFwcGxlLldl
YktpdC5kdW1wR0NIZWFwCisgICAgICAgIHdoaWNoIHdyaXRlcyBhIEpTT04gZmlsZSB0byAvdG1w
IHdoaWNoIGNhbiB0aGVuIGJlIGxvYWRlZCBpbnRvIHRoZSB2aWV3ZXIgaW4gVG9vbHMvR0NIZWFw
SW5zcGVjdG9yLgorCisgICAgICAgIFRoaXMgbGV2ZXJhZ2VzIHRoZSBoZWFwIHNuYXBzaG90IHVz
ZWQgYnkgV2ViIEluc3BlY3RvciwgYWRkaW5nIGFuIGFsdGVybmF0ZSBmb3JtYXQgZm9yCisgICAg
ICAgIHRoZSBzbmFwc2hvdCBKU09OIHRoYXQgYWRkcyBhZGRpdGlvbmFsIGRhdGEgYWJvdXQgb2Jq
ZWN0cyBhbmQgd2h5IHRoZXkgYXJlIEdDIHJvb3RzLgorCisgICAgICAgIFRoZSBnZW5lcmF0ZWQg
YmluZGluZ3MgY29kZSBpcyBjaGFuZ2VkIHRvIGluY2x1ZGUgdGhlIG91dHB1dCByb290IHJlYXNv
biBmcm9tIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKCksCisgICAgICAgIGFuZCB0byBpbXBs
ZW1lbnQgaGVhcFNuYXBzaG90KCkgd2hpY2ggcHJvdmlkZXMgdGhlIGFkZHJlc3Mgb2YgdGhlIHdy
YXBwZWQgb2JqZWN0LiBBIG5ldyBJREwgYXR0cmlidXRlLAorICAgICAgICBDdXN0b21IZWFwU25h
cHNob3QsIGlzIHVzZWQgdG8gYWxsb3cgY3VzdG9tIGhlYXBTbmFwc2hvdCgpIGltcGxlbWVudGF0
aW9ucyBmb3IgY2xhc3NlcyBsaWtlIEpTRG9jdW1lbnQKKyAgICAgICAgdGhhdCBuZWVkIHRvIGRl
Y29yYXRlIHRoZSBoZWFwIHNuYXBzaG90IGNlbGwgZGF0YSB3aXRoIHRoaW5ncyBsaWtlIHRoZSBk
b2N1bWVudCBVUkwuCisKKyAgICAgICAgR0NDb250cm9sbGVyIHJlZ2lzdGVycyBhIG5vdGlmeXV0
aWwgY2FsbGJhY2sgd2hpY2ggZ2F0aGVycyB0aGUgZGVidWcgaGVhcCBzbmFwc2hvdCwgYW5kIGR1
bXBzIGl0CisgICAgICAgIHRvIGEgZmlsZSBpbiAvdG1wLiBUaGUgZmlsZSBwYXRoIGlzIHByaW50
ZWQgb3V0IHRvIHRoZSBzeXN0ZW0gbG9nLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Xb3Jr
ZXJzL0hlYXBTbmFwc2hvdC9IZWFwU25hcHNob3QuanM6CisgICAgICAgIChIZWFwU25hcHNob3Qp
OgorCiAyMDE4LTA4LTIzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBgY29uc29sZS5pbnNwZWN0KHNlc3Npb25TdG9yYWdlKWAgZmly
c3QgdGltZSBkb2VzIG5vdCBzaG93IFNlc3Npb24gU3RvcmFnZSBjb250ZW50IHZpZXcgaWYgU3Rv
cmFnZSB0YWIgd2FzIHByZXZpb3VzbHkgdW52aXNpdGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9iamVjdC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNBUElXcmFwcGVyT2JqZWN0Lm1tCmluZGV4IDk3OWZmOWI5ZWQwYWYyMTcwNDIz
Y2NmOTQ1MmQxYTlhNmQwZmVmYmQuLjhhODRiZjc3YjNlMmRlZTEwNjA2OTZiYTM3MTdmNWQ2NDE4
Y2IwYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElXcmFwcGVy
T2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElXcmFwcGVyT2Jq
ZWN0Lm1tCkBAIC0zNyw3ICszNyw3IEBACiBjbGFzcyBKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVP
d25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6CiAgICAgdm9pZCBm
aW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKikgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJikgb3ZlcnJpZGU7CisgICAgYm9vbCBp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lk
KiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKSBvdmVycmlkZTsKIH07
CiAKIHN0YXRpYyBKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25lcioganNBUElXcmFwcGVyT2Jq
ZWN0SGFuZGxlT3duZXIoKQpAQCAtNTYsNyArNTYsNyBAQCB2b2lkIEpTQVBJV3JhcHBlck9iamVj
dEhhbmRsZU93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwg
dgogICAgIEpTQzo6V2Vha1NldDo6ZGVhbGxvY2F0ZShKU0M6OldlYWtJbXBsOjphc1dlYWtJbXBs
KGhhbmRsZS5zbG90KCkpKTsKIH0KIAotYm9vbCBKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25l
cjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBo
YW5kbGUsIHZvaWQqLCBKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQorYm9vbCBKU0FQSVdyYXBw
ZXJPYmplY3RIYW5kbGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9y
LCBjb25zdCBjaGFyKiopCiB7CiAgICAgSlNDOjpKU0FQSVdyYXBwZXJPYmplY3QqIHdyYXBwZXJP
YmplY3QgPSBKU0M6OmpzQ2FzdDxKU0M6OkpTQVBJV3JhcHBlck9iamVjdCo+KGhhbmRsZS5nZXQo
KS5hc0NlbGwoKSk7CiAgICAgLy8gV2UgdXNlIHRoZSBKU0dsb2JhbE9iamVjdCB3aGVuIHByb2Nl
c3Npbmcgd2VhayBoYW5kbGVzIHRvIHByZXZlbnQgdGhlIHNpdHVhdGlvbiB3aGVyZSB1c2luZwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFsdWUubW0KaW5kZXggMjljNzE3
ZGIzYjNkMWQxODU3MTg1NWI4ZTEzZTY3ZTU4YTQ0Y2JkZS4uYzU0NWZhZDZkNThjNTY1MTc0OWY1
YzkxZDFjMTE5ZjkzM2E0MDI5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU01hbmFnZWRWYWx1ZS5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFu
YWdlZFZhbHVlLm1tCkBAIC00Myw3ICs0Myw3IEBACiBjbGFzcyBKU01hbmFnZWRWYWx1ZUhhbmRs
ZU93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKICAgICB2b2lk
IGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIG92ZXJy
aWRlOwotICAgIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpIG92ZXJyaWRlOwor
ICAgIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKikgb3Zl
cnJpZGU7CiB9OwogCiBzdGF0aWMgSlNNYW5hZ2VkVmFsdWVIYW5kbGVPd25lciYgbWFuYWdlZFZh
bHVlSGFuZGxlT3duZXIoKQpAQCAtMTgyLDggKzE4MiwxMCBAQCBAaW50ZXJmYWNlIEpTTWFuYWdl
ZFZhbHVlIChQcml2YXRlTWV0aG9kcykKIC0gKHZvaWQpZGlzY29ubmVjdFZhbHVlOwogQGVuZAog
Ci1ib29sIEpTTWFuYWdlZFZhbHVlSGFuZGxlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZp
c2l0b3ImIHZpc2l0b3IpCitib29sIEpTTWFuYWdlZFZhbHVlSGFuZGxlT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRl
eHQsIEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7Cisg
ICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICpyZWFzb24gPSAiSlNNYW5hZ2VkVmFs
dWUgaXMgb3BhcXVlIHJvb3QiOwogICAgIEpTTWFuYWdlZFZhbHVlICptYW5hZ2VkVmFsdWUgPSAo
X19icmlkZ2UgSlNNYW5hZ2VkVmFsdWUgKiljb250ZXh0OwogICAgIHJldHVybiB2aXNpdG9yLmNv
bnRhaW5zT3BhcXVlUm9vdCgoX19icmlkZ2Ugdm9pZCopbWFuYWdlZFZhbHVlKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0FQSVdyYXBwZXJPYmplY3RH
TGliLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0FQSVdyYXBwZXJPYmpl
Y3RHTGliLmNwcAppbmRleCAxOGRkMTNlYjcwZjZkMTA1N2ViYTYzZjIzZmNlZWJkYzJmZjMwMTJj
Li44N2QxOThjY2IyZjhmODA2NTAzNjk2MzJmZTVjZDBkZWNjNGRlZTFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyT2JqZWN0R0xpYi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlck9iamVjdEdM
aWIuY3BwCkBAIC0zNiw3ICszNiw3IEBACiBjbGFzcyBKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVP
d25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6CiAgICAgdm9pZCBm
aW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKikgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJikgb3ZlcnJpZGU7CisgICAgYm9vbCBp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lk
KiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKSBvdmVycmlkZTsKIH07
CiAKIHN0YXRpYyBKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25lcioganNBUElXcmFwcGVyT2Jq
ZWN0SGFuZGxlT3duZXIoKQpAQCAtNTUsNyArNTUsNyBAQCB2b2lkIEpTQVBJV3JhcHBlck9iamVj
dEhhbmRsZU93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwg
dgogICAgIEpTQzo6V2Vha1NldDo6ZGVhbGxvY2F0ZShKU0M6OldlYWtJbXBsOjphc1dlYWtJbXBs
KGhhbmRsZS5zbG90KCkpKTsKIH0KIAotYm9vbCBKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25l
cjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBo
YW5kbGUsIHZvaWQqLCBKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQorYm9vbCBKU0FQSVdyYXBw
ZXJPYmplY3RIYW5kbGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9y
LCBjb25zdCBjaGFyKiopCiB7CiAgICAgSlNDOjpKU0FQSVdyYXBwZXJPYmplY3QqIHdyYXBwZXJP
YmplY3QgPSBKU0M6OmpzQ2FzdDxKU0M6OkpTQVBJV3JhcHBlck9iamVjdCo+KGhhbmRsZS5nZXQo
KS5hc0NlbGwoKSk7CiAgICAgLy8gV2UgdXNlIHRoZSBKU0dsb2JhbE9iamVjdCB3aGVuIHByb2Nl
c3Npbmcgd2VhayBoYW5kbGVzIHRvIHByZXZlbnQgdGhlIHNpdHVhdGlvbiB3aGVyZSB1c2luZwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGY2MTBkNzIwNDg2YmUxNzgxZmMy
Y2ExYWEwODc4M2YxYjgxMjQyMDEuLmZiMWQwY2M2YjI0NmE3YTZhNWQ3ZWMwOTIxOTI3MzI3ZTE5
NTk5NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTUzNCw2ICs1MzQs
NyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIGhl
YXAvSGVhcEZpbmFsaXplckNhbGxiYWNrLmgKICAgICBoZWFwL0hlYXBJbmxpbmVzLmgKICAgICBo
ZWFwL0hlYXBPYnNlcnZlci5oCisgICAgaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmgKICAgICBo
ZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCiAgICAgaGVhcC9Jc29DZWxsU2V0LmgKICAgICBoZWFw
L0lzb1N1YnNwYWNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
bnNlcnZhdGl2ZVJvb3RzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db25zZXJ2YXRp
dmVSb290cy5oCmluZGV4IDBmOWE0MmE2ZmNkNjk0ZjBhOWVmZWIxMGYzMjA2MjI0NmY5NjQxMGQu
LjgzZTVjZTQ2OTQyNjdjMzE0M2YwOGI0NGIwYTg2MWRmNDUwY2UxYTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbnNlcnZhdGl2ZVJvb3RzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2VydmF0aXZlUm9vdHMuaApAQCAtNDEsNyArNDEsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBhZGQodm9pZCogYmVnaW4sIHZvaWQqIGVuZCk7CiAgICAgdm9p
ZCBhZGQodm9pZCogYmVnaW4sIHZvaWQqIGVuZCwgSklUU3R1YlJvdXRpbmVTZXQmLCBDb2RlQmxv
Y2tTZXQmKTsKICAgICAKLSAgICBzaXplX3Qgc2l6ZSgpOworICAgIHNpemVfdCBzaXplKCkgY29u
c3Q7CiAgICAgSGVhcENlbGwqKiByb290cygpOwogCiBwcml2YXRlOgpAQCAtNjMsNyArNjMsNyBA
QCBwcml2YXRlOgogICAgIEhlYXBDZWxsKiBtX2lubGluZVJvb3RzW2lubGluZUNhcGFjaXR5XTsK
IH07CiAKLWlubGluZSBzaXplX3QgQ29uc2VydmF0aXZlUm9vdHM6OnNpemUoKQoraW5saW5lIHNp
emVfdCBDb25zZXJ2YXRpdmVSb290czo6c2l6ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2l6
ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggYzc4MmZjYmI3MDUxZGJk
NjViMTNkZWRmYTUyNjYyNmI2N2M3M2M1Zi4uZTBiYWVlNTJmZDRjOTJlYTcyM2Y0NzUxYjg3MmUw
MWY1MDEzYjFmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTI2NDEsMTEg
KzI2NDEsMTUgQEAgdm9pZCBIZWFwOjphZGRDb3JlQ29uc3RyYWludHMoKQogICAgICAgICAgICAg
CiAgICAgICAgICAgICBUaW1pbmdTY29wZSBwcmVDb252ZXJnZW5jZVRpbWluZ1Njb3BlKCp0aGlz
LCAiQ29uc3RyYWludDogY29uc2VydmF0aXZlIHNjYW4iKTsKICAgICAgICAgICAgIG1fb2JqZWN0
U3BhY2UucHJlcGFyZUZvckNvbnNlcnZhdGl2ZVNjYW4oKTsKKwogICAgICAgICAgICAgQ29uc2Vy
dmF0aXZlUm9vdHMgY29uc2VydmF0aXZlUm9vdHMoKnRoaXMpOwogICAgICAgICAgICAgU3VwZXJT
YW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOworCiAgICAgICAgICAgICBnYXRo
ZXJTdGFja1Jvb3RzKGNvbnNlcnZhdGl2ZVJvb3RzKTsKICAgICAgICAgICAgIGdhdGhlckpTU3Rh
Y2tSb290cyhjb25zZXJ2YXRpdmVSb290cyk7CiAgICAgICAgICAgICBnYXRoZXJTY3JhdGNoQnVm
ZmVyUm9vdHMoY29uc2VydmF0aXZlUm9vdHMpOworCisgICAgICAgICAgICBTZXRSb290TWFya1Jl
YXNvblNjb3BlIHJvb3RTY29wZShzbG90VmlzaXRvciwgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVh
c29uOjpDb25zZXJ2YXRpdmVTY2FuKTsKICAgICAgICAgICAgIHNsb3RWaXNpdG9yLmFwcGVuZChj
b25zZXJ2YXRpdmVSb290cyk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGxhc3RWZXJzaW9u
ID0gbV9waGFzZVZlcnNpb247CkBAIC0yNjU1LDI3ICsyNjU5LDM4IEBAIHZvaWQgSGVhcDo6YWRk
Q29yZUNvbnN0cmFpbnRzKCkKICAgICBtX2NvbnN0cmFpbnRTZXQtPmFkZCgKICAgICAgICAgIk1z
ciIsICJNaXNjIFNtYWxsIFJvb3RzIiwKICAgICAgICAgW3RoaXNdIChTbG90VmlzaXRvciYgc2xv
dFZpc2l0b3IpIHsKKwogI2lmIEpTQ19PQkpDX0FQSV9FTkFCTEVECiAgICAgICAgICAgICBzY2Fu
RXh0ZXJuYWxSZW1lbWJlcmVkU2V0KCptX3ZtLCBzbG90VmlzaXRvcik7CiAjZW5kaWYKLQotICAg
ICAgICAgICAgaWYgKG1fdm0tPnNtYWxsU3RyaW5ncy5uZWVkc1RvQmVWaXNpdGVkKCptX2NvbGxl
Y3Rpb25TY29wZSkpCisgICAgICAgICAgICBpZiAobV92bS0+c21hbGxTdHJpbmdzLm5lZWRzVG9C
ZVZpc2l0ZWQoKm1fY29sbGVjdGlvblNjb3BlKSkgeworICAgICAgICAgICAgICAgIFNldFJvb3RN
YXJrUmVhc29uU2NvcGUgcm9vdFNjb3BlKHNsb3RWaXNpdG9yLCBTbG90VmlzaXRvcjo6Um9vdE1h
cmtSZWFzb246OlN0cm9uZ1JlZmVyZW5jZXMpOwogICAgICAgICAgICAgICAgIG1fdm0tPnNtYWxs
U3RyaW5ncy52aXNpdFN0cm9uZ1JlZmVyZW5jZXMoc2xvdFZpc2l0b3IpOworICAgICAgICAgICAg
fQogICAgICAgICAgICAgCi0gICAgICAgICAgICBmb3IgKGF1dG8mIHBhaXIgOiBtX3Byb3RlY3Rl
ZFZhbHVlcykKLSAgICAgICAgICAgICAgICBzbG90VmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZChw
YWlyLmtleSk7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgU2V0Um9vdE1hcmtSZWFz
b25TY29wZSByb290U2NvcGUoc2xvdFZpc2l0b3IsIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNv
bjo6UHJvdGVjdGVkVmFsdWVzKTsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIHBhaXIgOiBt
X3Byb3RlY3RlZFZhbHVlcykKKyAgICAgICAgICAgICAgICAgICAgc2xvdFZpc2l0b3IuYXBwZW5k
VW5iYXJyaWVyZWQocGFpci5rZXkpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAg
ICAgICAgICBpZiAobV9tYXJrTGlzdFNldCAmJiBtX21hcmtMaXN0U2V0LT5zaXplKCkpCisgICAg
ICAgICAgICBpZiAobV9tYXJrTGlzdFNldCAmJiBtX21hcmtMaXN0U2V0LT5zaXplKCkpIHsKKyAg
ICAgICAgICAgICAgICBTZXRSb290TWFya1JlYXNvblNjb3BlIHJvb3RTY29wZShzbG90VmlzaXRv
ciwgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uOjpDb25zZXJ2YXRpdmVTY2FuKTsKICAgICAg
ICAgICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlcjo6bWFya0xpc3RzKHNsb3RWaXNpdG9yLCAq
bV9tYXJrTGlzdFNldCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHNsb3RWaXNpdG9yLmFw
cGVuZFVuYmFycmllcmVkKG1fdm0tPmV4Y2VwdGlvbigpKTsKLSAgICAgICAgICAgIHNsb3RWaXNp
dG9yLmFwcGVuZFVuYmFycmllcmVkKG1fdm0tPmxhc3RFeGNlcHRpb24oKSk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBTZXRSb290TWFya1JlYXNvblNj
b3BlIHJvb3RTY29wZShzbG90VmlzaXRvciwgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uOjpW
TUV4Y2VwdGlvbnMpOworICAgICAgICAgICAgICAgIHNsb3RWaXNpdG9yLmFwcGVuZFVuYmFycmll
cmVkKG1fdm0tPmV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgICAgICBzbG90VmlzaXRvci5hcHBl
bmRVbmJhcnJpZXJlZChtX3ZtLT5sYXN0RXhjZXB0aW9uKCkpOworICAgICAgICAgICAgfQogICAg
ICAgICB9LAogICAgICAgICBDb25zdHJhaW50Vm9sYXRpbGl0eTo6R3JleWVkQnlFeGVjdXRpb24p
OwogICAgIAogICAgIG1fY29uc3RyYWludFNldC0+YWRkKAogICAgICAgICAiU2giLCAiU3Ryb25n
IEhhbmRsZXMiLAogICAgICAgICBbdGhpc10gKFNsb3RWaXNpdG9yJiBzbG90VmlzaXRvcikgewor
ICAgICAgICAgICAgU2V0Um9vdE1hcmtSZWFzb25TY29wZSByb290U2NvcGUoc2xvdFZpc2l0b3Is
IFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6U3Ryb25nSGFuZGxlcyk7CiAgICAgICAgICAg
ICBtX2hhbmRsZVNldC52aXNpdFN0cm9uZ0hhbmRsZXMoc2xvdFZpc2l0b3IpOwogICAgICAgICB9
LAogICAgICAgICBDb25zdHJhaW50Vm9sYXRpbGl0eTo6R3JleWVkQnlFeGVjdXRpb24pOwpAQCAt
MjY4Myw2ICsyNjk4LDggQEAgdm9pZCBIZWFwOjphZGRDb3JlQ29uc3RyYWludHMoKQogICAgIG1f
Y29uc3RyYWludFNldC0+YWRkKAogICAgICAgICAiRCIsICJEZWJ1Z2dlciIsCiAgICAgICAgIFt0
aGlzXSAoU2xvdFZpc2l0b3ImIHNsb3RWaXNpdG9yKSB7CisgICAgICAgICAgICBTZXRSb290TWFy
a1JlYXNvblNjb3BlIHJvb3RTY29wZShzbG90VmlzaXRvciwgU2xvdFZpc2l0b3I6OlJvb3RNYXJr
UmVhc29uOjpEZWJ1Z2dlcik7CisKICNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCiAgICAg
ICAgICAgICBpZiAoU2FtcGxpbmdQcm9maWxlciogc2FtcGxpbmdQcm9maWxlciA9IG1fdm0tPnNh
bXBsaW5nUHJvZmlsZXIoKSkgewogICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKHNh
bXBsaW5nUHJvZmlsZXItPmdldExvY2soKSk7CkBAIC0yNjkyLDcgKzI3MDksNyBAQCB2b2lkIEhl
YXA6OmFkZENvcmVDb25zdHJhaW50cygpCiAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIlNh
bXBsaW5nIFByb2ZpbGVyIGRhdGE6XG4iLCBzbG90VmlzaXRvcik7CiAgICAgICAgICAgICB9CiAj
ZW5kaWYgLy8gRU5BQkxFKFNBTVBMSU5HX1BST0ZJTEVSKQotICAgICAgICAgICAgCisKICAgICAg
ICAgICAgIGlmIChtX3ZtLT50eXBlUHJvZmlsZXIoKSkKICAgICAgICAgICAgICAgICBtX3ZtLT50
eXBlUHJvZmlsZXJMb2coKS0+dmlzaXQoc2xvdFZpc2l0b3IpOwogICAgICAgICAgICAgCkBAIC0y
NzAzLDYgKzI3MjAsNyBAQCB2b2lkIEhlYXA6OmFkZENvcmVDb25zdHJhaW50cygpCiAgICAgbV9j
b25zdHJhaW50U2V0LT5hZGQoCiAgICAgICAgICJKc3IiLCAiSklUIFN0dWIgUm91dGluZXMiLAog
ICAgICAgICBbdGhpc10gKFNsb3RWaXNpdG9yJiBzbG90VmlzaXRvcikgeworICAgICAgICAgICAg
U2V0Um9vdE1hcmtSZWFzb25TY29wZSByb290U2NvcGUoc2xvdFZpc2l0b3IsIFNsb3RWaXNpdG9y
OjpSb290TWFya1JlYXNvbjo6SklUU3R1YlJvdXRpbmVzKTsKICAgICAgICAgICAgIG1faml0U3R1
YlJvdXRpbmVzLT50cmFjZU1hcmtlZFN0dWJSb3V0aW5lcyhzbG90VmlzaXRvcik7CiAgICAgICAg
IH0sCiAgICAgICAgIENvbnN0cmFpbnRWb2xhdGlsaXR5OjpHcmV5ZWRCeUV4ZWN1dGlvbik7CkBA
IC0yNzEwLDYgKzI3MjgsNyBAQCB2b2lkIEhlYXA6OmFkZENvcmVDb25zdHJhaW50cygpCiAgICAg
bV9jb25zdHJhaW50U2V0LT5hZGQoCiAgICAgICAgICJXcyIsICJXZWFrIFNldHMiLAogICAgICAg
ICBbdGhpc10gKFNsb3RWaXNpdG9yJiBzbG90VmlzaXRvcikgeworICAgICAgICAgICAgU2V0Um9v
dE1hcmtSZWFzb25TY29wZSByb290U2NvcGUoc2xvdFZpc2l0b3IsIFNsb3RWaXNpdG9yOjpSb290
TWFya1JlYXNvbjo6V2Vha1NldHMpOwogICAgICAgICAgICAgbV9vYmplY3RTcGFjZS52aXNpdFdl
YWtTZXRzKHNsb3RWaXNpdG9yKTsKICAgICAgICAgfSwKICAgICAgICAgQ29uc3RyYWludFZvbGF0
aWxpdHk6OkdyZXllZEJ5TWFya2luZyk7CkBAIC0yNzE4LDggKzI3MzcsOSBAQCB2b2lkIEhlYXA6
OmFkZENvcmVDb25zdHJhaW50cygpCiAgICAgICAgICJPIiwgIk91dHB1dCIsCiAgICAgICAgIFtd
IChTbG90VmlzaXRvciYgc2xvdFZpc2l0b3IpIHsKICAgICAgICAgICAgIFZNJiB2bSA9IHNsb3RW
aXNpdG9yLnZtKCk7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgYXV0byBjYWxsT3V0cHV0
Q29uc3RyYWludCA9IFtdIChTbG90VmlzaXRvciYgc2xvdFZpc2l0b3IsIEhlYXBDZWxsKiBoZWFw
Q2VsbCwgSGVhcENlbGw6OktpbmQpIHsKKyAgICAgICAgICAgICAgICBTZXRSb290TWFya1JlYXNv
blNjb3BlIHJvb3RTY29wZShzbG90VmlzaXRvciwgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29u
OjpPdXRwdXQpOwogICAgICAgICAgICAgICAgIFZNJiB2bSA9IHNsb3RWaXNpdG9yLnZtKCk7CiAg
ICAgICAgICAgICAgICAgSlNDZWxsKiBjZWxsID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oaGVhcENl
bGwpOwogICAgICAgICAgICAgICAgIGNlbGwtPm1ldGhvZFRhYmxlKHZtKS0+dmlzaXRPdXRwdXRD
b25zdHJhaW50cyhjZWxsLCBzbG90VmlzaXRvcik7CkBAIC0yNzM5LDYgKzI3NTksOCBAQCB2b2lk
IEhlYXA6OmFkZENvcmVDb25zdHJhaW50cygpCiAgICAgbV9jb25zdHJhaW50U2V0LT5hZGQoCiAg
ICAgICAgICJEdyIsICJERkcgV29ya2xpc3RzIiwKICAgICAgICAgW3RoaXNdIChTbG90VmlzaXRv
ciYgc2xvdFZpc2l0b3IpIHsKKyAgICAgICAgICAgIFNldFJvb3RNYXJrUmVhc29uU2NvcGUgcm9v
dFNjb3BlKHNsb3RWaXNpdG9yLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246OkRGR1dvcmtM
aXN0cyk7CisKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IERGRzo6bnVtYmVyT2ZXb3Jr
bGlzdHMoKTsgaS0tOykKICAgICAgICAgICAgICAgICBERkc6OmV4aXN0aW5nV29ya2xpc3RGb3JJ
bmRleChpKS52aXNpdFdlYWtSZWZlcmVuY2VzKHNsb3RWaXNpdG9yKTsKICAgICAgICAgICAgIApA
QCAtMjc1OSw2ICsyNzgxLDcgQEAgdm9pZCBIZWFwOjphZGRDb3JlQ29uc3RyYWludHMoKQogICAg
IG1fY29uc3RyYWludFNldC0+YWRkKAogICAgICAgICAiQ2IiLCAiQ29kZUJsb2NrcyIsCiAgICAg
ICAgIFt0aGlzXSAoU2xvdFZpc2l0b3ImIHNsb3RWaXNpdG9yKSB7CisgICAgICAgICAgICBTZXRS
b290TWFya1JlYXNvblNjb3BlIHJvb3RTY29wZShzbG90VmlzaXRvciwgU2xvdFZpc2l0b3I6OlJv
b3RNYXJrUmVhc29uOjpDb2RlQmxvY2tzKTsKICAgICAgICAgICAgIGl0ZXJhdGVFeGVjdXRpbmdB
bmRDb21waWxpbmdDb2RlQmxvY2tzV2l0aG91dEhvbGRpbmdMb2NrcygKICAgICAgICAgICAgICAg
ICBbJl0gKENvZGVCbG9jayogY29kZUJsb2NrKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFZp
c2l0IHRoZSBDb2RlQmxvY2sgYXMgYSBjb25zdHJhaW50IG9ubHkgaWYgaXQncyBibGFjay4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1aWxkZXIu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5jcHAK
aW5kZXggNjI0OTM1YTdiMzNmMmM5ZjVlNjM4ZGY2NDllMGRiYjE3Njk1ZWZmZC4uYWE3ZmNlMmZj
YTQ3NmFkMjEyOGIyM2YzMzc0MGMxNGM3ZjUwNTU3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5jcHAKQEAgLTM3LDI0ICszNywzMyBA
QAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIEpTQyB7
Ci0gICAgCi11bnNpZ25lZCBIZWFwU25hcHNob3RCdWlsZGVyOjpuZXh0QXZhaWxhYmxlT2JqZWN0
SWRlbnRpZmllciA9IDE7Ci11bnNpZ25lZCBIZWFwU25hcHNob3RCdWlsZGVyOjpnZXROZXh0T2Jq
ZWN0SWRlbnRpZmllcigpIHsgcmV0dXJuIG5leHRBdmFpbGFibGVPYmplY3RJZGVudGlmaWVyKys7
IH0KKworc3RhdGljIGNvbnN0IGNoYXIqIHJvb3RUeXBlVG9TdHJpbmcoU2xvdFZpc2l0b3I6OlJv
b3RNYXJrUmVhc29uKTsKKworTm9kZUlkZW50aWZpZXIgSGVhcFNuYXBzaG90QnVpbGRlcjo6bmV4
dEF2YWlsYWJsZU9iamVjdElkZW50aWZpZXIgPSAxOworTm9kZUlkZW50aWZpZXIgSGVhcFNuYXBz
aG90QnVpbGRlcjo6Z2V0TmV4dE9iamVjdElkZW50aWZpZXIoKSB7IHJldHVybiBuZXh0QXZhaWxh
YmxlT2JqZWN0SWRlbnRpZmllcisrOyB9CiB2b2lkIEhlYXBTbmFwc2hvdEJ1aWxkZXI6OnJlc2V0
TmV4dEF2YWlsYWJsZU9iamVjdElkZW50aWZpZXIoKSB7IEhlYXBTbmFwc2hvdEJ1aWxkZXI6Om5l
eHRBdmFpbGFibGVPYmplY3RJZGVudGlmaWVyID0gMTsgfQogCi1IZWFwU25hcHNob3RCdWlsZGVy
OjpIZWFwU25hcHNob3RCdWlsZGVyKEhlYXBQcm9maWxlciYgcHJvZmlsZXIpCitIZWFwU25hcHNo
b3RCdWlsZGVyOjpIZWFwU25hcHNob3RCdWlsZGVyKEhlYXBQcm9maWxlciYgcHJvZmlsZXIsIFNu
YXBzaG90VHlwZSB0eXBlKQogICAgIDogbV9wcm9maWxlcihwcm9maWxlcikKKyAgICAsIG1fc25h
cHNob3RUeXBlKHR5cGUpCiB7CiB9CiAKIEhlYXBTbmFwc2hvdEJ1aWxkZXI6On5IZWFwU25hcHNo
b3RCdWlsZGVyKCkKIHsKKyAgICBpZiAobV9zbmFwc2hvdFR5cGUgPT0gU25hcHNob3RUeXBlOjpH
Q0RlYnVnZ2luZ1NuYXBzaG90KQorICAgICAgICBtX3Byb2ZpbGVyLmNsZWFyU25hcHNob3RzKCk7
CiB9CiAKIHZvaWQgSGVhcFNuYXBzaG90QnVpbGRlcjo6YnVpbGRTbmFwc2hvdCgpCiB7CisgICAg
Ly8gR0NEZWJ1Z2dpbmdTbmFwc2hvdCBhcmUgYWx3YXlzIGZ1bGwgc25hcHNob3RzLCBzbyBjbGVh
ciBhbnkgZXhpc3Rpbmcgc25hcHNob3RzLgorICAgIGlmIChtX3NuYXBzaG90VHlwZSA9PSBTbmFw
c2hvdFR5cGU6OkdDRGVidWdnaW5nU25hcHNob3QpCisgICAgICAgIG1fcHJvZmlsZXIuY2xlYXJT
bmFwc2hvdHMoKTsKKwogICAgIFByZXZlbnRDb2xsZWN0aW9uU2NvcGUgcHJldmVudENvbGxlY3Rp
b25TY29wZShtX3Byb2ZpbGVyLnZtKCkuaGVhcCk7Ci0gICAgCisKICAgICBtX3NuYXBzaG90ID0g
c3RkOjptYWtlX3VuaXF1ZTxIZWFwU25hcHNob3Q+KG1fcHJvZmlsZXIubW9zdFJlY2VudFNuYXBz
aG90KCkpOwogICAgIHsKICAgICAgICAgbV9wcm9maWxlci5zZXRBY3RpdmVTbmFwc2hvdEJ1aWxk
ZXIodGhpcyk7CkBAIC02OSwxNyArNzgsMTggQEAgdm9pZCBIZWFwU25hcHNob3RCdWlsZGVyOjpi
dWlsZFNuYXBzaG90KCkKIHZvaWQgSGVhcFNuYXBzaG90QnVpbGRlcjo6YXBwZW5kTm9kZShKU0Nl
bGwqIGNlbGwpCiB7CiAgICAgQVNTRVJUKG1fcHJvZmlsZXIuYWN0aXZlU25hcHNob3RCdWlsZGVy
KCkgPT0gdGhpcyk7CisgICAgCiAgICAgQVNTRVJUKEhlYXA6OmlzTWFya2VkKGNlbGwpKTsKIAot
ICAgIGlmIChoYXNFeGlzdGluZ05vZGVGb3JDZWxsKGNlbGwpKQorICAgIE5vZGVJZGVudGlmaWVy
IGlkZW50aWZpZXI7CisgICAgaWYgKHByZXZpb3VzU25hcHNob3RIYXNOb2RlRm9yQ2VsbChjZWxs
LCBpZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc3RkOjpsb2NrX2d1YXJkPExv
Y2s+IGxvY2sobV9idWlsZGluZ05vZGVNdXRleCk7Ci0KICAgICBtX3NuYXBzaG90LT5hcHBlbmRO
b2RlKEhlYXBTbmFwc2hvdE5vZGUoY2VsbCwgZ2V0TmV4dE9iamVjdElkZW50aWZpZXIoKSkpOwog
fQogCi12b2lkIEhlYXBTbmFwc2hvdEJ1aWxkZXI6OmFwcGVuZEVkZ2UoSlNDZWxsKiBmcm9tLCBK
U0NlbGwqIHRvKQordm9pZCBIZWFwU25hcHNob3RCdWlsZGVyOjphcHBlbmRFZGdlKEpTQ2VsbCog
ZnJvbSwgSlNDZWxsKiB0bywgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uIHJvb3RNYXJrUmVh
c29uKQogewogICAgIEFTU0VSVChtX3Byb2ZpbGVyLmFjdGl2ZVNuYXBzaG90QnVpbGRlcigpID09
IHRoaXMpOwogICAgIEFTU0VSVCh0byk7CkBAIC05MCw2ICsxMDAsMTUgQEAgdm9pZCBIZWFwU25h
cHNob3RCdWlsZGVyOjphcHBlbmRFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bykKIAogICAg
IHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1fYnVpbGRpbmdFZGdlTXV0ZXgpOwogCisgICAg
aWYgKG1fc25hcHNob3RUeXBlID09IFNuYXBzaG90VHlwZTo6R0NEZWJ1Z2dpbmdTbmFwc2hvdCkg
eworICAgICAgICBpZiAocm9vdE1hcmtSZWFzb24gPT0gU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVh
c29uOjpOb25lICYmIG1fc25hcHNob3RUeXBlID09IFNuYXBzaG90VHlwZTo6R0NEZWJ1Z2dpbmdT
bmFwc2hvdCkKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiQ2VsbCAlcCBpcyBhIHJvb3QgYnV0
IG5vIHJvb3QgbWFya2luZyByZWFzb24gd2FzIHN1cHBsaWVkIiwgdG8pOworCisgICAgICAgIG1f
cm9vdERhdGEuZW5zdXJlKHRvLCBbXSAoKSAtPiBSb290RGF0YSB7CisgICAgICAgICAgICByZXR1
cm4geyB9OworICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWUubWFya1JlYXNvbiA9IHJvb3RNYXJr
UmVhc29uOworICAgIH0KKwogICAgIG1fZWRnZXMuYXBwZW5kKEhlYXBTbmFwc2hvdEVkZ2UoZnJv
bSwgdG8pKTsKIH0KIApAQCAtMTIzLDIyICsxNDIsNDYgQEAgdm9pZCBIZWFwU25hcHNob3RCdWls
ZGVyOjphcHBlbmRJbmRleEVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRvLCB1aW50MzJfdCBp
bmQKICAgICBtX2VkZ2VzLmFwcGVuZChIZWFwU25hcHNob3RFZGdlKGZyb20sIHRvLCBpbmRleCkp
OwogfQogCi1ib29sIEhlYXBTbmFwc2hvdEJ1aWxkZXI6Omhhc0V4aXN0aW5nTm9kZUZvckNlbGwo
SlNDZWxsKiBjZWxsKQordm9pZCBIZWFwU25hcHNob3RCdWlsZGVyOjpzZXRPcGFxdWVSb290UmVh
Y2hhYmlsaXR5UmVhc29uRm9yQ2VsbChKU0NlbGwqIGNlbGwsIGNvbnN0IGNoYXIqIHJlYXNvbikK
K3sKKyAgICBpZiAoIXJlYXNvbiB8fCAhKnJlYXNvbiB8fCBtX3NuYXBzaG90VHlwZSAhPSBTbmFw
c2hvdFR5cGU6OkdDRGVidWdnaW5nU25hcHNob3QpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
cm9vdERhdGEuZW5zdXJlKGNlbGwsIFtdICgpIC0+IFJvb3REYXRhIHsKKyAgICAgICAgcmV0dXJu
IHsgfTsKKyAgICB9KS5pdGVyYXRvci0+dmFsdWUucmVhY2hhYmlsaXR5RnJvbU9wYXF1ZVJvb3RS
ZWFzb25zID0gcmVhc29uOworfQorCit2b2lkIEhlYXBTbmFwc2hvdEJ1aWxkZXI6OnNldFdyYXBw
ZWRPYmplY3RGb3JDZWxsKEpTQ2VsbCogY2VsbCwgdm9pZCogd3JhcHBlZFB0cikKK3sKKyAgICBt
X3dyYXBwZWRPYmplY3RQb2ludGVycy5zZXQoY2VsbCwgd3JhcHBlZFB0cik7Cit9CisKK2Jvb2wg
SGVhcFNuYXBzaG90QnVpbGRlcjo6cHJldmlvdXNTbmFwc2hvdEhhc05vZGVGb3JDZWxsKEpTQ2Vs
bCogY2VsbCwgTm9kZUlkZW50aWZpZXImIGlkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFtX3NuYXBz
aG90LT5wcmV2aW91cygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gISFt
X3NuYXBzaG90LT5wcmV2aW91cygpLT5ub2RlRm9yQ2VsbChjZWxsKTsKLX0KKyAgICBhdXRvIGV4
aXN0aW5nTm9kZSA9IG1fc25hcHNob3QtPnByZXZpb3VzKCktPm5vZGVGb3JDZWxsKGNlbGwpOwor
ICAgIGlmIChleGlzdGluZ05vZGUpIHsKKyAgICAgICAgaWRlbnRpZmllciA9IGV4aXN0aW5nTm9k
ZS52YWx1ZSgpLmlkZW50aWZpZXI7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAorICAg
IHJldHVybiBmYWxzZTsKK30KIAogLy8gSGVhcCBTbmFwc2hvdCBKU09OIEZvcm1hdDoKIC8vCisv
LyAgSW5zcGVjdG9yIHNuYXBzaG90czoKKy8vCiAvLyAgIHsKIC8vICAgICAgInZlcnNpb24iOiAx
LjAsCisvLyAgICAgICJ0eXBlIjogIkluc3BlY3RvciIsCisvLyAgICAgIC8vIFs8YWRkcmVzcz4s
IDxsYWJlbEluZGV4PiwgPHdyYXBwZWRFZGRyZXNzPl0gb25seSBwcmVzZW50IGluIEdDRGVidWdn
aW5nU25hcHNob3QtdHlwZSBzbmFwc2hvdHMKIC8vICAgICAgIm5vZGVzIjogWwotLy8gICAgICAg
ICAgPG5vZGVJZD4sIDxzaXplSW5CeXRlcz4sIDxub2RlQ2xhc3NOYW1lSW5kZXg+LCA8aW50ZXJu
YWw+LAotLy8gICAgICAgICAgPG5vZGVJZD4sIDxzaXplSW5CeXRlcz4sIDxub2RlQ2xhc3NOYW1l
SW5kZXg+LCA8aW50ZXJuYWw+LAorLy8gICAgICAgICAgPG5vZGVJZD4sIDxzaXplSW5CeXRlcz4s
IDxub2RlQ2xhc3NOYW1lSW5kZXg+LCA8aW50ZXJuYWw+CisvLyAgICAgICAgICA8bm9kZUlkPiwg
PHNpemVJbkJ5dGVzPiwgPG5vZGVDbGFzc05hbWVJbmRleD4sIDxpbnRlcm5hbD4KIC8vICAgICAg
ICAgIC4uLgogLy8gICAgICBdLAogLy8gICAgICAibm9kZUNsYXNzTmFtZXMiOiBbCkBAIC0xNTcs
NiArMjAwLDQwIEBAIGJvb2wgSGVhcFNuYXBzaG90QnVpbGRlcjo6aGFzRXhpc3RpbmdOb2RlRm9y
Q2VsbChKU0NlbGwqIGNlbGwpCiAvLyAgICAgIF0KIC8vICAgfQogLy8KKy8vICBHQyBoZWFwIGRl
YnVnZ2VyIHNuYXBzaG90czoKKy8vCisvLyAgIHsKKy8vICAgICAgInZlcnNpb24iOiAxLjAsCisv
LyAgICAgICJ0eXBlIjogIkdDRGVidWdnaW5nIiwKKy8vICAgICAgIm5vZGVzIjogWworLy8gICAg
ICAgICAgPG5vZGVJZD4sIDxzaXplSW5CeXRlcz4sIDxub2RlQ2xhc3NOYW1lSW5kZXg+LCA8aW50
ZXJuYWw+LCA8bGFiZWxJbmRleD4sIDxjZWxsRWRkcmVzcz4sIDx3cmFwcGVkRWRkcmVzcz4sCisv
LyAgICAgICAgICA8bm9kZUlkPiwgPHNpemVJbkJ5dGVzPiwgPG5vZGVDbGFzc05hbWVJbmRleD4s
IDxpbnRlcm5hbD4sIDxsYWJlbEluZGV4PiwgPGNlbGxFZGRyZXNzPiwgPHdyYXBwZWRFZGRyZXNz
PiwKKy8vICAgICAgICAgIC4uLgorLy8gICAgICBdLAorLy8gICAgICAibm9kZUNsYXNzTmFtZXMi
OiBbCisvLyAgICAgICAgICAic3RyaW5nIiwgIlN0cnVjdHVyZSIsICJPYmplY3QiLCAuLi4KKy8v
ICAgICAgXSwKKy8vICAgICAgImVkZ2VzIjogWworLy8gICAgICAgICAgPGZyb21Ob2RlSWQ+LCA8
dG9Ob2RlSWQ+LCA8ZWRnZVR5cGVJbmRleD4sIDxlZGdlRXh0cmFEYXRhPiwKKy8vICAgICAgICAg
IDxmcm9tTm9kZUlkPiwgPHRvTm9kZUlkPiwgPGVkZ2VUeXBlSW5kZXg+LCA8ZWRnZUV4dHJhRGF0
YT4sCisvLyAgICAgICAgICAuLi4KKy8vICAgICAgXSwKKy8vICAgICAgImVkZ2VUeXBlcyI6IFsK
Ky8vICAgICAgICAgICJJbnRlcm5hbCIsICJQcm9wZXJ0eSIsICJJbmRleCIsICJWYXJpYWJsZSIK
Ky8vICAgICAgXSwKKy8vICAgICAgImVkZ2VOYW1lcyI6IFsKKy8vICAgICAgICAgICJwcm9wZXJ0
eU5hbWUiLCAidmFyaWFibGVOYW1lIiwgLi4uCisvLyAgICAgIF0sCisvLyAgICAgICJyb290cyIg
OiBbCisvLyAgICAgICAgICA8bm9kZUlkPiwgPHJvb3RSZWFzb25JbmRleD4sIDxyZWFjaGFiaWxp
dHlSZWFzb25JbmRleD4sCisvLyAgICAgICAgICA8bm9kZUlkPiwgPHJvb3RSZWFzb25JbmRleD4s
IDxyZWFjaGFiaWxpdHlSZWFzb25JbmRleD4sCisvLyAgICAgICAgICAuLi4gLy8gPG5vZGVJZD4g
bWF5IGJlIHJlcGVhdGVkCisvLyAgICAgIF0sCisvLyAgICAgICJsYWJlbHMiIDogWworLy8gICAg
ICAgICAgImZvbyIsICJiYXIiLCAuLi4KKy8vICAgICAgXQorLy8gICB9CisvLwogLy8gTm90ZXM6
CiAvLwogLy8gICAgIDxub2RlQ2xhc3NOYW1lSW5kZXg+CkBAIC0xNzIsNiArMjQ5LDkgQEAgYm9v
bCBIZWFwU25hcHNob3RCdWlsZGVyOjpoYXNFeGlzdGluZ05vZGVGb3JDZWxsKEpTQ2VsbCogY2Vs
bCkKIC8vICAgICAgIC0gZm9yIEludGVybmFsIGVkZ2VzIHRoaXMgc2hvdWxkIGJlIGlnbm9yZWQg
KDApLgogLy8gICAgICAgLSBmb3IgSW5kZXggZWRnZXMgdGhpcyBpcyB0aGUgaW5kZXggdmFsdWUu
CiAvLyAgICAgICAtIGZvciBQcm9wZXJ0eSBvciBWYXJpYWJsZSBlZGdlcyB0aGlzIGlzIGFuIGlu
ZGV4IGludG8gdGhlICJlZGdlTmFtZXMiIGxpc3QuCisvLworLy8gICAgICA8cm9vdFJlYXNvbklu
ZGV4PgorLy8gICAgICAgLSBpbmRleCBpbnRvIHRoZSAibGFiZWxzIiBsaXN0LgogCiBzdGF0aWMg
dWludDhfdCBlZGdlVHlwZVRvTnVtYmVyKEVkZ2VUeXBlIHR5cGUpCiB7CkBAIC0xOTQsMjQgKzI3
NCw5OCBAQCBzdGF0aWMgY29uc3QgY2hhciogZWRnZVR5cGVUb1N0cmluZyhFZGdlVHlwZSB0eXBl
KQogICAgIHJldHVybiAiSW50ZXJuYWwiOwogfQogCitzdGF0aWMgY29uc3QgY2hhciogc25hcHNo
b3RUeXBlVG9TdHJpbmcoSGVhcFNuYXBzaG90QnVpbGRlcjo6U25hcHNob3RUeXBlIHR5cGUpCit7
CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBIZWFwU25hcHNob3RCdWlsZGVyOjpTbmFw
c2hvdFR5cGU6Okluc3BlY3RvclNuYXBzaG90OgorICAgICAgICByZXR1cm4gIkluc3BlY3RvciI7
CisgICAgY2FzZSBIZWFwU25hcHNob3RCdWlsZGVyOjpTbmFwc2hvdFR5cGU6OkdDRGVidWdnaW5n
U25hcHNob3Q6CisgICAgICAgIHJldHVybiAiR0NEZWJ1Z2dpbmciOworICAgIH0KKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gIkluc3BlY3RvciI7Cit9CisKK3N0YXRpYyBj
b25zdCBjaGFyKiByb290VHlwZVRvU3RyaW5nKFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbiB0
eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgU2xvdFZpc2l0b3I6OlJvb3RN
YXJrUmVhc29uOjpOb25lOgorICAgICAgICByZXR1cm4gIk5vbmUiOworICAgIGNhc2UgU2xvdFZp
c2l0b3I6OlJvb3RNYXJrUmVhc29uOjpDb25zZXJ2YXRpdmVTY2FuOgorICAgICAgICByZXR1cm4g
IkNvbnNlcnZhdGl2ZSBzY2FuIjsKKyAgICBjYXNlIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNv
bjo6U3Ryb25nUmVmZXJlbmNlczoKKyAgICAgICAgcmV0dXJuICJTdHJvbmcgcmVmZXJlbmNlcyI7
CisgICAgY2FzZSBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246OlByb3RlY3RlZFZhbHVlczoK
KyAgICAgICAgcmV0dXJuICJQcm90ZWN0ZWQgdmFsdWVzIjsKKyAgICBjYXNlIFNsb3RWaXNpdG9y
OjpSb290TWFya1JlYXNvbjo6TWFya0xpc3RTZXQ6CisgICAgICAgIHJldHVybiAiTWFyayBsaXN0
IHNldCI7CisgICAgY2FzZSBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246OlZNRXhjZXB0aW9u
czoKKyAgICAgICAgcmV0dXJuICJWTSBleGNlcHRpb25zIjsKKyAgICBjYXNlIFNsb3RWaXNpdG9y
OjpSb290TWFya1JlYXNvbjo6U3Ryb25nSGFuZGxlczoKKyAgICAgICAgcmV0dXJuICJTdHJvbmcg
aGFuZGxlcyI7CisgICAgY2FzZSBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246OkRlYnVnZ2Vy
OgorICAgICAgICByZXR1cm4gIkRlYnVnZ2VyIjsKKyAgICBjYXNlIFNsb3RWaXNpdG9yOjpSb290
TWFya1JlYXNvbjo6SklUU3R1YlJvdXRpbmVzOgorICAgICAgICByZXR1cm4gIkpJVCBzdHViIHJv
dXRpbmVzIjsKKyAgICBjYXNlIFNsb3RWaXNpdG9yOjpSb290TWFya1JlYXNvbjo6V2Vha1NldHM6
CisgICAgICAgIHJldHVybiAiV2VhayBzZXRzIjsKKyAgICBjYXNlIFNsb3RWaXNpdG9yOjpSb290
TWFya1JlYXNvbjo6T3V0cHV0OgorICAgICAgICByZXR1cm4gIk91dHB1dCI7CisgICAgY2FzZSBT
bG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246OkRGR1dvcmtMaXN0czoKKyAgICAgICAgcmV0dXJu
ICJERkcgd29yayBsaXN0cyI7CisgICAgY2FzZSBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb246
OkNvZGVCbG9ja3M6CisgICAgICAgIHJldHVybiAiQ29kZSBibG9ja3MiOworICAgIGNhc2UgU2xv
dFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uOjpET01HQ091dHB1dDoKKyAgICAgICAgcmV0dXJuICJE
T00gR0Mgb3V0cHV0IjsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0
dXJuICJOb25lIjsKK30KKwogU3RyaW5nIEhlYXBTbmFwc2hvdEJ1aWxkZXI6Ompzb24oKQogewog
ICAgIHJldHVybiBqc29uKFtdIChjb25zdCBIZWFwU25hcHNob3ROb2RlJikgeyByZXR1cm4gdHJ1
ZTsgfSk7CiB9CiAKK3ZvaWQgSGVhcFNuYXBzaG90QnVpbGRlcjo6c2V0TGFiZWxGb3JDZWxsKEpT
Q2VsbCogY2VsbCwgY29uc3QgU3RyaW5nJiBsYWJlbCkKK3sKKyAgICBtX2NlbGxMYWJlbHMuc2V0
KGNlbGwsIGxhYmVsKTsKK30KKworU3RyaW5nIEhlYXBTbmFwc2hvdEJ1aWxkZXI6OmRlc2NyaXB0
aW9uRm9yQ2VsbChKU0NlbGwgKmNlbGwpIGNvbnN0Cit7CisgICAgaWYgKGNlbGwtPmlzU3RyaW5n
KCkpCisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOyAvLyBGSVhNRTogZ2V0IHBhcnQgb2Yg
c3RyaW5nLgorCisgICAgVk0mIHZtID0gbV9wcm9maWxlci52bSgpOworICAgIFN0cnVjdHVyZSog
c3RydWN0dXJlID0gY2VsbC0+c3RydWN0dXJlKHZtKTsKKworICAgIGlmIChzdHJ1Y3R1cmUtPmNs
YXNzSW5mbygpLT5pc1N1YkNsYXNzT2YoU3RydWN0dXJlOjppbmZvKCkpKSB7CisgICAgICAgIFN0
cnVjdHVyZSogY2VsbEFzU3RydWN0dXJlID0ganNDYXN0PFN0cnVjdHVyZSo+KGNlbGwpOworICAg
ICAgICByZXR1cm4gY2VsbEFzU3RydWN0dXJlLT5jbGFzc0luZm8oKS0+Y2xhc3NOYW1lOworICAg
IH0KKworICAgIHJldHVybiBlbXB0eVN0cmluZygpOworfQorCiBTdHJpbmcgSGVhcFNuYXBzaG90
QnVpbGRlcjo6anNvbihGdW5jdGlvbjxib29sIChjb25zdCBIZWFwU25hcHNob3ROb2RlJik+IGFs
bG93Tm9kZUNhbGxiYWNrKQogewogICAgIFZNJiB2bSA9IG1fcHJvZmlsZXIudm0oKTsKICAgICBE
ZWZlckdDRm9yQVdoaWxlIGRlZmVyR0Modm0uaGVhcCk7CiAKICAgICAvLyBCdWlsZCBhIG5vZGUg
dG8gaWRlbnRpZmllciBtYXAgb2YgYWxsb3dlZCBub2RlcyB0byB1c2Ugd2hlbiBzZXJpYWxpemlu
ZyBlZGdlcy4KLSAgICBIYXNoTWFwPEpTQ2VsbCosIHVuc2lnbmVkPiBhbGxvd2VkTm9kZUlkZW50
aWZpZXJzOworICAgIEhhc2hNYXA8SlNDZWxsKiwgTm9kZUlkZW50aWZpZXI+IGFsbG93ZWROb2Rl
SWRlbnRpZmllcnM7CiAKICAgICAvLyBCdWlsZCBhIGxpc3Qgb2YgdXNlZCBjbGFzcyBuYW1lcy4K
ICAgICBIYXNoTWFwPGNvbnN0IGNoYXIqLCB1bnNpZ25lZD4gY2xhc3NOYW1lSW5kZXhlczsKICAg
ICBjbGFzc05hbWVJbmRleGVzLnNldCgiPHJvb3Q+IiwgMCk7CiAgICAgdW5zaWduZWQgbmV4dENs
YXNzTmFtZUluZGV4ID0gMTsKIAorICAgIC8vIEJ1aWxkIGEgbGlzdCBvZiBsYWJlbHMgKHRoaXMg
aXMganVzdCBhIHN0cmluZyB0YWJsZSkuCisgICAgSGFzaE1hcDxTdHJpbmcsIHVuc2lnbmVkPiBs
YWJlbEluZGV4ZXM7CisgICAgbGFiZWxJbmRleGVzLnNldChlbXB0eVN0cmluZygpLCAwKTsKKyAg
ICB1bnNpZ25lZCBuZXh0TGFiZWxJbmRleCA9IDE7CisKICAgICAvLyBCdWlsZCBhIGxpc3Qgb2Yg
dXNlZCBlZGdlIG5hbWVzLgogICAgIEhhc2hNYXA8VW5pcXVlZFN0cmluZ0ltcGwqLCB1bnNpZ25l
ZD4gZWRnZU5hbWVJbmRleGVzOwogICAgIHVuc2lnbmVkIG5leHRFZGdlTmFtZUluZGV4ID0gMDsK
QEAgLTIzMSwxMiArMzg1LDQ0IEBAIFN0cmluZyBIZWFwU25hcHNob3RCdWlsZGVyOjpqc29uKEZ1
bmN0aW9uPGJvb2wgKGNvbnN0IEhlYXBTbmFwc2hvdE5vZGUmKT4gYWxsb3dOCiAgICAgICAgIHVu
c2lnbmVkIGNsYXNzTmFtZUluZGV4ID0gcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKIAogICAgICAg
ICBib29sIGlzSW50ZXJuYWwgPSBmYWxzZTsKKyAgICAgICAgdm9pZCogd3JhcHBlZEFkZHJlc3Mg
PSAwOworICAgICAgICB1bnNpZ25lZCBsYWJlbEluZGV4ID0gMDsKICAgICAgICAgaWYgKCFub2Rl
LmNlbGwtPmlzU3RyaW5nKCkpIHsKICAgICAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0g
bm9kZS5jZWxsLT5zdHJ1Y3R1cmUodm0pOwogICAgICAgICAgICAgaXNJbnRlcm5hbCA9ICFzdHJ1
Y3R1cmUgfHwgIXN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCk7CisKKyAgICAgICAgICAgIGlmICht
X3NuYXBzaG90VHlwZSA9PSBTbmFwc2hvdFR5cGU6OkdDRGVidWdnaW5nU25hcHNob3QpIHsKKyAg
ICAgICAgICAgICAgICBTdHJpbmcgbm9kZUxhYmVsOworICAgICAgICAgICAgICAgIGF1dG8gaXQg
PSBtX2NlbGxMYWJlbHMuZmluZChub2RlLmNlbGwpOworICAgICAgICAgICAgICAgIGlmIChpdCAh
PSBtX2NlbGxMYWJlbHMuZW5kKCkpCisgICAgICAgICAgICAgICAgICAgIG5vZGVMYWJlbCA9IGl0
LT52YWx1ZTsKKworICAgICAgICAgICAgICAgIGlmIChub2RlTGFiZWwuaXNFbXB0eSgpKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChhdXRvKiBvYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTT2Jq
ZWN0Kj4odm0sIG5vZGUuY2VsbCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRv
KiBmdW5jdGlvbiA9IGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlvbio+KHZtLCBvYmplY3QpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVMYWJlbCA9IGZ1bmN0aW9uLT5jYWxjdWxhdGVk
RGlzcGxheU5hbWUodm0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbiA9
IGRlc2NyaXB0aW9uRm9yQ2VsbChub2RlLmNlbGwpOworICAgICAgICAgICAgICAgIGlmIChkZXNj
cmlwdGlvbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAobm9kZUxhYmVsLmxl
bmd0aCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUxhYmVsLmFwcGVuZCgnICcpOwor
ICAgICAgICAgICAgICAgICAgICBub2RlTGFiZWwuYXBwZW5kKGRlc2NyaXB0aW9uKTsKKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoIW5vZGVMYWJlbC5pc0VtcHR5KCkg
JiYgbV9zbmFwc2hvdFR5cGUgPT0gU25hcHNob3RUeXBlOjpHQ0RlYnVnZ2luZ1NuYXBzaG90KSB7
CisgICAgICAgICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gbGFiZWxJbmRleGVzLmFkZChub2Rl
TGFiZWwsIG5leHRMYWJlbEluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5p
c05ld0VudHJ5KQorICAgICAgICAgICAgICAgICAgICAgICAgbmV4dExhYmVsSW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICAgICAgbGFiZWxJbmRleCA9IHJlc3VsdC5pdGVyYXRvci0+dmFsdWU7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHdyYXBw
ZWRBZGRyZXNzID0gbV93cmFwcGVkT2JqZWN0UG9pbnRlcnMuZ2V0KG5vZGUuY2VsbCk7CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICAvLyA8bm9kZUlkPiwgPHNpemVJbkJ5dGVz
PiwgPGNsYXNzTmFtZT4sIDxvcHRpb25hbEludGVybmFsQm9vbGVhbj4KKyAgICAgICAgLy8gPG5v
ZGVJZD4sIDxzaXplSW5CeXRlcz4sIDxub2RlQ2xhc3NOYW1lSW5kZXg+LCA8aW50ZXJuYWw+LCBb
PGxhYmVsSW5kZXg+LCA8Y2VsbEVkZHJlc3M+LCA8d3JhcHBlZEVkZHJlc3M+XQogICAgICAgICBq
c29uLmFwcGVuZCgnLCcpOwogICAgICAgICBqc29uLmFwcGVuZE51bWJlcihub2RlLmlkZW50aWZp
ZXIpOwogICAgICAgICBqc29uLmFwcGVuZCgnLCcpOwpAQCAtMjQ1LDYgKzQzMSwxNCBAQCBTdHJp
bmcgSGVhcFNuYXBzaG90QnVpbGRlcjo6anNvbihGdW5jdGlvbjxib29sIChjb25zdCBIZWFwU25h
cHNob3ROb2RlJik+IGFsbG93TgogICAgICAgICBqc29uLmFwcGVuZE51bWJlcihjbGFzc05hbWVJ
bmRleCk7CiAgICAgICAgIGpzb24uYXBwZW5kKCcsJyk7CiAgICAgICAgIGpzb24uYXBwZW5kKGlz
SW50ZXJuYWwgPyAnMScgOiAnMCcpOworICAgICAgICBpZiAobV9zbmFwc2hvdFR5cGUgPT0gU25h
cHNob3RUeXBlOjpHQ0RlYnVnZ2luZ1NuYXBzaG90KSB7CisgICAgICAgICAgICBqc29uLmFwcGVu
ZCgnLCcpOworICAgICAgICAgICAganNvbi5hcHBlbmROdW1iZXIobGFiZWxJbmRleCk7CisgICAg
ICAgICAgICBqc29uLmFwcGVuZCgnLCcpOworICAgICAgICAgICAganNvbi5hcHBlbmQoU3RyaW5n
Ojpmb3JtYXQoIlwiJXBcIiIsIG5vZGUuY2VsbCkpOyAvLyBGSVhNRTogU2hvdWxkIGFkZCBTdHJp
bmdCdWlsZGVyOjphcHBlbmRBZGRyZXNzKHZvaWQqKS4KKyAgICAgICAgICAgIGpzb24uYXBwZW5k
KCcsJyk7CisgICAgICAgICAgICBqc29uLmFwcGVuZChTdHJpbmc6OmZvcm1hdCgiXCIlcFwiIiwg
d3JhcHBlZEFkZHJlc3MpKTsKKyAgICAgICAgfQogICAgIH07CiAKICAgICBib29sIGZpcnN0RWRn
ZSA9IHRydWU7CkBAIC0yODUsMTEgKzQ3OSwyMSBAQCBTdHJpbmcgSGVhcFNuYXBzaG90QnVpbGRl
cjo6anNvbihGdW5jdGlvbjxib29sIChjb25zdCBIZWFwU25hcHNob3ROb2RlJik+IGFsbG93Tgog
ICAgIC8vIHZlcnNpb24KICAgICBqc29uLmFwcGVuZExpdGVyYWwoIlwidmVyc2lvblwiOjEiKTsK
IAorICAgIC8vIHR5cGUKKyAgICBqc29uLmFwcGVuZCgnLCcpOworICAgIGpzb24uYXBwZW5kTGl0
ZXJhbCgiXCJ0eXBlXCI6Iik7CisgICAganNvbi5hcHBlbmRRdW90ZWRKU09OU3RyaW5nKHNuYXBz
aG90VHlwZVRvU3RyaW5nKG1fc25hcHNob3RUeXBlKSk7CisKICAgICAvLyBub2RlcwogICAgIGpz
b24uYXBwZW5kKCcsJyk7CiAgICAganNvbi5hcHBlbmRMaXRlcmFsKCJcIm5vZGVzXCI6Iik7CiAg
ICAganNvbi5hcHBlbmQoJ1snKTsKLSAgICBqc29uLmFwcGVuZExpdGVyYWwoIjAsMCwwLDAiKTsg
Ly8gPHJvb3Q+CisgICAgLy8gPHJvb3Q+CisgICAgaWYgKG1fc25hcHNob3RUeXBlID09IFNuYXBz
aG90VHlwZTo6R0NEZWJ1Z2dpbmdTbmFwc2hvdCkKKyAgICAgICAganNvbi5hcHBlbmRMaXRlcmFs
KCIwLDAsMCwwLDAsXCIweDBcIixcIjB4MFwiIik7CisgICAgZWxzZQorICAgICAgICBqc29uLmFw
cGVuZExpdGVyYWwoIjAsMCwwLDAiKTsKKwogICAgIGZvciAoSGVhcFNuYXBzaG90KiBzbmFwc2hv
dCA9IG1fcHJvZmlsZXIubW9zdFJlY2VudFNuYXBzaG90KCk7IHNuYXBzaG90OyBzbmFwc2hvdCA9
IHNuYXBzaG90LT5wcmV2aW91cygpKSB7CiAgICAgICAgIGZvciAoYXV0byYgbm9kZSA6IHNuYXBz
aG90LT5tX25vZGVzKQogICAgICAgICAgICAgYXBwZW5kTm9kZUpTT04obm9kZSk7CkBAIC0zMjMs
OCArNTI3LDExIEBAIFN0cmluZyBIZWFwU25hcHNob3RCdWlsZGVyOjpqc29uKEZ1bmN0aW9uPGJv
b2wgKGNvbnN0IEhlYXBTbmFwc2hvdE5vZGUmKT4gYWxsb3dOCiAgICAgICAgICAgICBlZGdlLmZy
b20uaWRlbnRpZmllciA9IDA7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgYXV0byBmcm9t
TG9va3VwID0gYWxsb3dlZE5vZGVJZGVudGlmaWVycy5maW5kKGVkZ2UuZnJvbS5jZWxsKTsKLSAg
ICAgICAgICAgIGlmIChmcm9tTG9va3VwID09IGFsbG93ZWROb2RlSWRlbnRpZmllcnMuZW5kKCkp
CisgICAgICAgICAgICBpZiAoZnJvbUxvb2t1cCA9PSBhbGxvd2VkTm9kZUlkZW50aWZpZXJzLmVu
ZCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fc25hcHNob3RUeXBlID09IFNuYXBzaG90VHlw
ZTo6R0NEZWJ1Z2dpbmdTbmFwc2hvdCkKKyAgICAgICAgICAgICAgICAgICAgV1RGTG9nQWx3YXlz
KCJGYWlsZWQgdG8gZmluZCBub2RlIGZvciBmcm9tLWVkZ2UgY2VsbCAlcCIsIGVkZ2UuZnJvbS5j
ZWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGVkZ2UuZnJvbS5pZGVudGlmaWVyID0gZnJvbUxvb2t1cC0+dmFsdWU7CiAgICAgICAg
IH0KIApAQCAtMzMyLDEzICs1MzksMTcgQEAgU3RyaW5nIEhlYXBTbmFwc2hvdEJ1aWxkZXI6Ompz
b24oRnVuY3Rpb248Ym9vbCAoY29uc3QgSGVhcFNuYXBzaG90Tm9kZSYpPiBhbGxvd04KICAgICAg
ICAgICAgIGVkZ2UudG8uaWRlbnRpZmllciA9IDA7CiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgYXV0byB0b0xvb2t1cCA9IGFsbG93ZWROb2RlSWRlbnRpZmllcnMuZmluZChlZGdlLnRvLmNl
bGwpOwotICAgICAgICAgICAgaWYgKHRvTG9va3VwID09IGFsbG93ZWROb2RlSWRlbnRpZmllcnMu
ZW5kKCkpCisgICAgICAgICAgICBpZiAodG9Mb29rdXAgPT0gYWxsb3dlZE5vZGVJZGVudGlmaWVy
cy5lbmQoKSkgeworICAgICAgICAgICAgICAgIGlmIChtX3NuYXBzaG90VHlwZSA9PSBTbmFwc2hv
dFR5cGU6OkdDRGVidWdnaW5nU25hcHNob3QpCisgICAgICAgICAgICAgICAgICAgIFdURkxvZ0Fs
d2F5cygiRmFpbGVkIHRvIGZpbmQgbm9kZSBmb3IgdG8tZWRnZSBjZWxsICVwIiwgZWRnZS50by5j
ZWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGVkZ2UudG8uaWRlbnRpZmllciA9IHRvTG9va3VwLT52YWx1ZTsKICAgICAgICAgfQog
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9KTsKKwogICAgIGFsbG93ZWROb2RlSWRlbnRp
ZmllcnMuY2xlYXIoKTsKICAgICBtX2VkZ2VzLnNocmlua1RvRml0KCk7CiAKQEAgLTM4Niw2ICs1
OTcsNzMgQEAgU3RyaW5nIEhlYXBTbmFwc2hvdEJ1aWxkZXI6Ompzb24oRnVuY3Rpb248Ym9vbCAo
Y29uc3QgSGVhcFNuYXBzaG90Tm9kZSYpPiBhbGxvd04KICAgICBvcmRlcmVkRWRnZU5hbWVzLmNs
ZWFyKCk7CiAgICAganNvbi5hcHBlbmQoJ10nKTsKIAorICAgIGlmIChtX3NuYXBzaG90VHlwZSA9
PSBTbmFwc2hvdFR5cGU6OkdDRGVidWdnaW5nU25hcHNob3QpIHsKKyAgICAgICAganNvbi5hcHBl
bmQoJywnKTsKKyAgICAgICAganNvbi5hcHBlbmRMaXRlcmFsKCJcInJvb3RzXCI6Iik7CisgICAg
ICAgIGpzb24uYXBwZW5kKCdbJyk7CisgICAgICAgIAorICAgICAgICBIZWFwU25hcHNob3QqIHNu
YXBzaG90ID0gbV9wcm9maWxlci5tb3N0UmVjZW50U25hcHNob3QoKTsKKworICAgICAgICBib29s
IGZpcnN0Tm9kZSA9IHRydWU7CisgICAgICAgIGZvciAoYXV0byBpdCA6IG1fcm9vdERhdGEpIHsK
KyAgICAgICAgICAgIGF1dG8gc25hcHNob3ROb2RlID0gc25hcHNob3QtPm5vZGVGb3JDZWxsKGl0
LmtleSk7CisgICAgICAgICAgICBpZiAoIXNuYXBzaG90Tm9kZSkgeworICAgICAgICAgICAgICAg
IFdURkxvZ0Fsd2F5cygiRmFpbGVkIHRvIGZpbmQgc25hcHNob3Qgbm9kZSBmb3IgY2VsbCAlcCIs
IGl0LmtleSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGlmICghZmlyc3ROb2RlKQorICAgICAgICAgICAgICAgIGpzb24uYXBwZW5kKCcs
Jyk7CisKKyAgICAgICAgICAgIGZpcnN0Tm9kZSA9IGZhbHNlOworICAgICAgICAgICAganNvbi5h
cHBlbmROdW1iZXIoc25hcHNob3ROb2RlLnZhbHVlKCkuaWRlbnRpZmllcik7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIC8vIE1heWJlIHdlIHNob3VsZCBqdXN0IGFsd2F5cyBlbmNvZGUgdGhl
IHJvb3QgbmFtZXMuCisgICAgICAgICAgICBjb25zdCBjaGFyKiByb290TmFtZSA9IHJvb3RUeXBl
VG9TdHJpbmcoaXQudmFsdWUubWFya1JlYXNvbik7CisgICAgICAgICAgICBhdXRvIHJlc3VsdCA9
IGxhYmVsSW5kZXhlcy5hZGQocm9vdE5hbWUsIG5leHRMYWJlbEluZGV4KTsKKyAgICAgICAgICAg
IGlmIChyZXN1bHQuaXNOZXdFbnRyeSkKKyAgICAgICAgICAgICAgICBuZXh0TGFiZWxJbmRleCsr
OworICAgICAgICAgICAgdW5zaWduZWQgbGFiZWxJbmRleCA9IHJlc3VsdC5pdGVyYXRvci0+dmFs
dWU7CisgICAgICAgICAgICBqc29uLmFwcGVuZCgnLCcpOworICAgICAgICAgICAganNvbi5hcHBl
bmROdW1iZXIobGFiZWxJbmRleCk7CisKKyAgICAgICAgICAgIHVuc2lnbmVkIHJlYWNoYWJpbGl0
eVJlYXNvbkluZGV4ID0gMDsKKyAgICAgICAgICAgIGlmIChpdC52YWx1ZS5yZWFjaGFiaWxpdHlG
cm9tT3BhcXVlUm9vdFJlYXNvbnMpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IGxh
YmVsSW5kZXhlcy5hZGQoaXQudmFsdWUucmVhY2hhYmlsaXR5RnJvbU9wYXF1ZVJvb3RSZWFzb25z
LCBuZXh0TGFiZWxJbmRleCk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5
KQorICAgICAgICAgICAgICAgICAgICBuZXh0TGFiZWxJbmRleCsrOworICAgICAgICAgICAgICAg
IHJlYWNoYWJpbGl0eVJlYXNvbkluZGV4ID0gcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGpzb24uYXBwZW5kKCcsJyk7CisgICAgICAgICAgICBqc29u
LmFwcGVuZE51bWJlcihyZWFjaGFiaWxpdHlSZWFzb25JbmRleCk7CisgICAgICAgIH0KKworICAg
ICAgICBqc29uLmFwcGVuZCgnXScpOworICAgIH0KKworICAgIGlmIChtX3NuYXBzaG90VHlwZSA9
PSBTbmFwc2hvdFR5cGU6OkdDRGVidWdnaW5nU25hcHNob3QpIHsKKyAgICAgICAgLy8gaW50ZXJu
YWwgbm9kZSBkZXNjcmlwdGlvbnMKKyAgICAgICAganNvbi5hcHBlbmQoJywnKTsKKyAgICAgICAg
anNvbi5hcHBlbmRMaXRlcmFsKCJcImxhYmVsc1wiOiIpOworICAgICAgICBqc29uLmFwcGVuZCgn
WycpOworCisgICAgICAgIFZlY3RvcjxTdHJpbmc+IG9yZGVyZWRMYWJlbHMobGFiZWxJbmRleGVz
LnNpemUoKSk7CisgICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBsYWJlbEluZGV4ZXMpCisgICAg
ICAgICAgICBvcmRlcmVkTGFiZWxzW2VudHJ5LnZhbHVlXSA9IGVudHJ5LmtleTsKKyAgICAgICAg
bGFiZWxJbmRleGVzLmNsZWFyKCk7CisgICAgICAgIGJvb2wgZmlyc3RMYWJlbCA9IHRydWU7Cisg
ICAgICAgIGZvciAoYXV0byYgbGFiZWwgOiBvcmRlcmVkTGFiZWxzKSB7CisgICAgICAgICAgICBp
ZiAoIWZpcnN0TGFiZWwpCisgICAgICAgICAgICAgICAganNvbi5hcHBlbmQoJywnKTsKKworICAg
ICAgICAgICAgZmlyc3RMYWJlbCA9IGZhbHNlOworICAgICAgICAgICAganNvbi5hcHBlbmRRdW90
ZWRKU09OU3RyaW5nKGxhYmVsKTsKKyAgICAgICAgfQorICAgICAgICBvcmRlcmVkTGFiZWxzLmNs
ZWFyKCk7CisKKyAgICAgICAganNvbi5hcHBlbmQoJ10nKTsKKyAgICB9CisKICAgICBqc29uLmFw
cGVuZCgnfScpOwogICAgIHJldHVybiBqc29uLnRvU3RyaW5nKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmgKaW5kZXggYWU3ZjBiZDBj
M2U0MjMxNDU2NDNkNzNkZDIyZmY1YzgwNDhlYzE4YS4uZDY5ODY5Mjk4YjM2ZWIwZTEwZTYwNmMw
YTU1NDIxMzUwYTAzY2FhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcFNuYXBzaG90QnVpbGRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXBTbmFwc2hvdEJ1aWxkZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgiCiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRl
IDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTMzLDEwICszNCwxMyBA
QAogCiBuYW1lc3BhY2UgSlNDIHsKIAorY2xhc3MgQ29uc2VydmF0aXZlUm9vdHM7CiBjbGFzcyBI
ZWFwUHJvZmlsZXI7CiBjbGFzcyBIZWFwU25hcHNob3Q7CiBjbGFzcyBKU0NlbGw7CiAKK3R5cGVk
ZWYgdW5zaWduZWQgTm9kZUlkZW50aWZpZXI7CisKIHN0cnVjdCBIZWFwU25hcHNob3ROb2RlIHsK
ICAgICBIZWFwU25hcHNob3ROb2RlKEpTQ2VsbCogY2VsbCwgdW5zaWduZWQgaWRlbnRpZmllcikK
ICAgICAgICAgOiBjZWxsKGNlbGwpCkBAIC00NCw3ICs0OCw3IEBAIHN0cnVjdCBIZWFwU25hcHNo
b3ROb2RlIHsKICAgICB7IH0KIAogICAgIEpTQ2VsbCogY2VsbDsKLSAgICB1bnNpZ25lZCBpZGVu
dGlmaWVyOworICAgIE5vZGVJZGVudGlmaWVyIGlkZW50aWZpZXI7CiB9OwogCiBlbnVtIGNsYXNz
IEVkZ2VUeXBlIDogdWludDhfdCB7CkBAIC04MiwxMiArODYsMTIgQEAgc3RydWN0IEhlYXBTbmFw
c2hvdEVkZ2UgewogCiAgICAgdW5pb24gewogICAgICAgICBKU0NlbGwgKmNlbGw7Ci0gICAgICAg
IHVuc2lnbmVkIGlkZW50aWZpZXI7CisgICAgICAgIE5vZGVJZGVudGlmaWVyIGlkZW50aWZpZXI7
CiAgICAgfSBmcm9tOwogCiAgICAgdW5pb24gewogICAgICAgICBKU0NlbGwgKmNlbGw7Ci0gICAg
ICAgIHVuc2lnbmVkIGlkZW50aWZpZXI7CisgICAgICAgIE5vZGVJZGVudGlmaWVyIGlkZW50aWZp
ZXI7CiAgICAgfSB0bzsKIAogICAgIHVuaW9uIHsKQEAgLTEwMSwzMyArMTA1LDQ3IEBAIHN0cnVj
dCBIZWFwU25hcHNob3RFZGdlIHsKIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEhlYXBTbmFwc2hv
dEJ1aWxkZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIEhl
YXBTbmFwc2hvdEJ1aWxkZXIoSGVhcFByb2ZpbGVyJik7CisgICAgZW51bSBTbmFwc2hvdFR5cGUg
eyBJbnNwZWN0b3JTbmFwc2hvdCwgR0NEZWJ1Z2dpbmdTbmFwc2hvdCB9OworCisgICAgSGVhcFNu
YXBzaG90QnVpbGRlcihIZWFwUHJvZmlsZXImLCBTbmFwc2hvdFR5cGUgPSBTbmFwc2hvdFR5cGU6
Okluc3BlY3RvclNuYXBzaG90KTsKICAgICB+SGVhcFNuYXBzaG90QnVpbGRlcigpOwogCi0gICAg
c3RhdGljIHVuc2lnbmVkIG5leHRBdmFpbGFibGVPYmplY3RJZGVudGlmaWVyOwotICAgIHN0YXRp
YyB1bnNpZ25lZCBnZXROZXh0T2JqZWN0SWRlbnRpZmllcigpOwogICAgIHN0YXRpYyB2b2lkIHJl
c2V0TmV4dEF2YWlsYWJsZU9iamVjdElkZW50aWZpZXIoKTsKIAogICAgIC8vIFBlcmZvcm1zIGEg
Z2FyYmFnZSBjb2xsZWN0aW9uIHRoYXQgYnVpbGRzIGEgc25hcHNob3Qgb2YgYWxsIGxpdmUgY2Vs
bHMuCiAgICAgdm9pZCBidWlsZFNuYXBzaG90KCk7CiAKLSAgICAvLyBBIG1hcmtlZCBjZWxsLgor
ICAgIC8vIEEgcm9vdCBvciBtYXJrZWQgY2VsbC4KICAgICB2b2lkIGFwcGVuZE5vZGUoSlNDZWxs
Kik7CiAKICAgICAvLyBBIHJlZmVyZW5jZSBmcm9tIG9uZSBjZWxsIHRvIGFub3RoZXIuCi0gICAg
dm9pZCBhcHBlbmRFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0byk7CisgICAgdm9pZCBhcHBl
bmRFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVh
c29uKTsKICAgICB2b2lkIGFwcGVuZFByb3BlcnR5TmFtZUVkZ2UoSlNDZWxsKiBmcm9tLCBKU0Nl
bGwqIHRvLCBVbmlxdWVkU3RyaW5nSW1wbCogcHJvcGVydHlOYW1lKTsKICAgICB2b2lkIGFwcGVu
ZFZhcmlhYmxlTmFtZUVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRvLCBVbmlxdWVkU3RyaW5n
SW1wbCogdmFyaWFibGVOYW1lKTsKICAgICB2b2lkIGFwcGVuZEluZGV4RWRnZShKU0NlbGwqIGZy
b20sIEpTQ2VsbCogdG8sIHVpbnQzMl90IGluZGV4KTsKIAorICAgIHZvaWQgc2V0T3BhcXVlUm9v
dFJlYWNoYWJpbGl0eVJlYXNvbkZvckNlbGwoSlNDZWxsKiwgY29uc3QgY2hhciopOworICAgIHZv
aWQgc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoSlNDZWxsKiwgdm9pZCopOworICAgIHZvaWQgc2V0
TGFiZWxGb3JDZWxsKEpTQ2VsbCosIGNvbnN0IFN0cmluZyYpOworCiAgICAgU3RyaW5nIGpzb24o
KTsKICAgICBTdHJpbmcganNvbihGdW5jdGlvbjxib29sIChjb25zdCBIZWFwU25hcHNob3ROb2Rl
Jik+IGFsbG93Tm9kZUNhbGxiYWNrKTsKIAogcHJpdmF0ZToKKyAgICBzdGF0aWMgTm9kZUlkZW50
aWZpZXIgbmV4dEF2YWlsYWJsZU9iamVjdElkZW50aWZpZXI7CisgICAgc3RhdGljIE5vZGVJZGVu
dGlmaWVyIGdldE5leHRPYmplY3RJZGVudGlmaWVyKCk7CisKICAgICAvLyBGaW5hbGl6ZWQgc25h
cHNob3RzIGFyZSBub3QgbW9kaWZpZWQgZHVyaW5nIGJ1aWxkaW5nLiBTbyBzZWFyY2hpbmcgdGhl
bQogICAgIC8vIGZvciBhbiBleGlzdGluZyBub2RlIGNhbiBiZSBkb25lIGNvbmN1cnJlbnRseSB3
aXRob3V0IGEgbG9jay4KLSAgICBib29sIGhhc0V4aXN0aW5nTm9kZUZvckNlbGwoSlNDZWxsKik7
Ci0KKyAgICBib29sIHByZXZpb3VzU25hcHNob3RIYXNOb2RlRm9yQ2VsbChKU0NlbGwqLCBOb2Rl
SWRlbnRpZmllciYpOworICAgIAorICAgIFN0cmluZyBkZXNjcmlwdGlvbkZvckNlbGwoSlNDZWxs
KikgY29uc3Q7CisgICAgCisgICAgc3RydWN0IFJvb3REYXRhIHsKKyAgICAgICAgY29uc3QgY2hh
ciogcmVhY2hhYmlsaXR5RnJvbU9wYXF1ZVJvb3RSZWFzb25zIHsgbnVsbHB0ciB9OworICAgICAg
ICBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb24gbWFya1JlYXNvbiB7IFNsb3RWaXNpdG9yOjpS
b290TWFya1JlYXNvbjo6Tm9uZSB9OworICAgIH07CisgICAgCiAgICAgSGVhcFByb2ZpbGVyJiBt
X3Byb2ZpbGVyOwogCiAgICAgLy8gU2xvdFZpc2l0b3JzIHJ1biBpbiBwYXJhbGxlbC4KQEAgLTEz
NSw2ICsxNTMsMTAgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGVhcFNuYXBzaG90
PiBtX3NuYXBzaG90OwogICAgIExvY2sgbV9idWlsZGluZ0VkZ2VNdXRleDsKICAgICBWZWN0b3I8
SGVhcFNuYXBzaG90RWRnZT4gbV9lZGdlczsKKyAgICBIYXNoTWFwPEpTQ2VsbCosIFJvb3REYXRh
PiBtX3Jvb3REYXRhOworICAgIEhhc2hNYXA8SlNDZWxsKiwgdm9pZCo+IG1fd3JhcHBlZE9iamVj
dFBvaW50ZXJzOworICAgIEhhc2hNYXA8SlNDZWxsKiwgU3RyaW5nPiBtX2NlbGxMYWJlbHM7Cisg
ICAgU25hcHNob3RUeXBlIG1fc25hcHNob3RUeXBlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlND
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAKaW5kZXggZTczN2Yz
OTQ1MGU5MGM1NDI1ZWIzYTE0NmMzOTI0NWQ4ZTk2NTU0ZS4uMzNjMzdmYzZlODliMjhiNjM0Nzg2
OWRiZTBkYWM3N2RiMWVhYjM1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvU2xvdFZpc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RW
aXNpdG9yLmNwcApAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZEpT
Q2VsbE9yQXV4aWxpYXJ5KEhlYXBDZWxsKiBoZWFwQ2VsbCkKIHZvaWQgU2xvdFZpc2l0b3I6OmFw
cGVuZFNsb3coSlNDZWxsKiBjZWxsLCBEZXBlbmRlbmN5IGRlcGVuZGVuY3kpCiB7CiAgICAgaWYg
KFVOTElLRUxZKG1faGVhcFNuYXBzaG90QnVpbGRlcikpCi0gICAgICAgIG1faGVhcFNuYXBzaG90
QnVpbGRlci0+YXBwZW5kRWRnZShtX2N1cnJlbnRDZWxsLCBjZWxsKTsKKyAgICAgICAgbV9oZWFw
U25hcHNob3RCdWlsZGVyLT5hcHBlbmRFZGdlKG1fY3VycmVudENlbGwsIGNlbGwsIG1fcm9vdE1h
cmtSZWFzb24pOwogICAgIAogICAgIGFwcGVuZEhpZGRlblNsb3dJbXBsKGNlbGwsIGRlcGVuZGVu
Y3kpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0
b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKaW5kZXggZThh
Mjc3NDNhNmM2M2IxMmFkOTk3NzNhYmQyNjBkODM5YWQzMTczMS4uZWU1OTBlZmEwNTc5NTdhNTk5
OGJlMWRjNjlhYTNkMDUxYjczMTM3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvU2xvdFZpc2l0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90
VmlzaXRvci5oCkBAIC01Nyw2ICs1NywyMyBAQCBjbGFzcyBTbG90VmlzaXRvciB7CiAgICAgZnJp
ZW5kIGNsYXNzIEhlYXA7CiAKIHB1YmxpYzoKKyAgICBlbnVtIFJvb3RNYXJrUmVhc29uIHsKKyAg
ICAgICAgTm9uZSwKKyAgICAgICAgQ29uc2VydmF0aXZlU2NhbiwKKyAgICAgICAgU3Ryb25nUmVm
ZXJlbmNlcywKKyAgICAgICAgUHJvdGVjdGVkVmFsdWVzLAorICAgICAgICBNYXJrTGlzdFNldCwK
KyAgICAgICAgVk1FeGNlcHRpb25zLAorICAgICAgICBTdHJvbmdIYW5kbGVzLAorICAgICAgICBE
ZWJ1Z2dlciwKKyAgICAgICAgSklUU3R1YlJvdXRpbmVzLAorICAgICAgICBXZWFrU2V0cywKKyAg
ICAgICAgT3V0cHV0LAorICAgICAgICBERkdXb3JrTGlzdHMsCisgICAgICAgIENvZGVCbG9ja3Ms
CisgICAgICAgIERPTUdDT3V0cHV0LAorICAgIH07CisKICAgICBTbG90VmlzaXRvcihIZWFwJiwg
Q1N0cmluZyBjb2RlTmFtZSk7CiAgICAgflNsb3RWaXNpdG9yKCk7CiAKQEAgLTE0Miw3ICsxNTks
MTEgQEAgcHVibGljOgogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogCiAgICAg
Ym9vbCBpc0J1aWxkaW5nSGVhcFNuYXBzaG90KCkgY29uc3QgeyByZXR1cm4gISFtX2hlYXBTbmFw
c2hvdEJ1aWxkZXI7IH0KKyAgICBIZWFwU25hcHNob3RCdWlsZGVyKiBoZWFwU25hcHNob3RCdWls
ZGVyKCkgY29uc3QgeyByZXR1cm4gbV9oZWFwU25hcHNob3RCdWlsZGVyOyB9CiAgICAgCisgICAg
Um9vdE1hcmtSZWFzb24gcm9vdE1hcmtSZWFzb24oKSBjb25zdCB7IHJldHVybiBtX3Jvb3RNYXJr
UmVhc29uOyB9CisgICAgdm9pZCBzZXRSb290TWFya1JlYXNvbihSb290TWFya1JlYXNvbiByZWFz
b24pIHsgbV9yb290TWFya1JlYXNvbiA9IHJlYXNvbjsgfQorCiAgICAgSGVhcFZlcnNpb24gbWFy
a2luZ1ZlcnNpb24oKSBjb25zdCB7IHJldHVybiBtX21hcmtpbmdWZXJzaW9uOyB9CiAKICAgICBi
b29sIG11dGF0b3JJc1N0b3BwZWQoKSBjb25zdCB7IHJldHVybiBtX211dGF0b3JJc1N0b3BwZWQ7
IH0KQEAgLTIyNCw2ICsyNDUsNyBAQCBwcml2YXRlOgogCiAgICAgSGVhcFNuYXBzaG90QnVpbGRl
ciogbV9oZWFwU25hcHNob3RCdWlsZGVyIHsgbnVsbHB0ciB9OwogICAgIEpTQ2VsbCogbV9jdXJy
ZW50Q2VsbCB7IG51bGxwdHIgfTsKKyAgICBSb290TWFya1JlYXNvbiBtX3Jvb3RNYXJrUmVhc29u
IHsgUm9vdE1hcmtSZWFzb246Ok5vbmUgfTsKICAgICBib29sIG1faXNGaXJzdFZpc2l0IHsgZmFs
c2UgfTsKICAgICBib29sIG1fbXV0YXRvcklzU3RvcHBlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2Nhbk9wdGltaXplRm9yU3RvcHBlZE11dGF0b3IgeyBmYWxzZSB9OwpAQCAtMjYyLDQgKzI4NCwy
MyBAQCBwcml2YXRlOgogICAgIFNsb3RWaXNpdG9yJiBtX3N0YWNrOwogfTsKIAorY2xhc3MgU2V0
Um9vdE1hcmtSZWFzb25TY29wZSB7CitwdWJsaWM6CisgICAgU2V0Um9vdE1hcmtSZWFzb25TY29w
ZShTbG90VmlzaXRvciYgdmlzaXRvciwgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uIHJlYXNv
bikKKyAgICAgICAgOiBtX3Zpc2l0b3IodmlzaXRvcikKKyAgICAgICAgLCBtX3ByZXZpb3VzUmVh
c29uKHZpc2l0b3Iucm9vdE1hcmtSZWFzb24oKSkKKyAgICB7CisgICAgICAgIG1fdmlzaXRvci5z
ZXRSb290TWFya1JlYXNvbihyZWFzb24pOworICAgIH0KKworICAgIH5TZXRSb290TWFya1JlYXNv
blNjb3BlKCkKKyAgICB7CisgICAgICAgIG1fdmlzaXRvci5zZXRSb290TWFya1JlYXNvbihtX3By
ZXZpb3VzUmVhc29uKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgU2xvdFZpc2l0b3ImIG1fdmlz
aXRvcjsKKyAgICBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb24gbV9wcmV2aW91c1JlYXNvbjsK
K307CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvV2Vha0Jsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtC
bG9jay5jcHAKaW5kZXggZjMyOGY5NmM0NTFhNTE1M2I4OWQ1YjNjNGFlNDI0ODgwNjc1ZjBjMy4u
MzIzY2U2ZmZhYzY4OGFlMTRiMTBkYzg0Yzg1ZDEyMmRmMDIxZmJhOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0Jsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRl
ICJDZWxsQ29udGFpbmVySW5saW5lcy5oIgogI2luY2x1ZGUgIkhlYXAuaCIKKyNpbmNsdWRlICJI
ZWFwU25hcHNob3RCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUg
IkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiV2Vha0hhbmRsZU93bmVyLmgiCkBAIC0xMTQsMTAgKzEx
NSwyMCBAQCB2b2lkIFdlYWtCbG9jazo6c3BlY2lhbGl6ZWRWaXNpdChDb250YWluZXJUeXBlJiBj
b250YWluZXIsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgICAgICBpZiAoY29udGFpbmVyLmlz
TWFya2VkKG1hcmtpbmdWZXJzaW9uLCBqc1ZhbHVlLmFzQ2VsbCgpKSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICAKLSAgICAgICAgaWYgKCF3ZWFrSGFuZGxlT3duZXItPmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKEhhbmRsZTxVbmtub3duPjo6d3JhcFNsb3QoJmNvbnN0X2Nhc3Q8
SlNWYWx1ZSY+KGpzVmFsdWUpKSwgd2Vha0ltcGwtPmNvbnRleHQoKSwgdmlzaXRvcikpCisgICAg
ICAgIGNvbnN0IGNoYXIqIHJlYXNvbiA9ICIiOworICAgICAgICBjb25zdCBjaGFyKiogcmVhc29u
UHRyID0gbnVsbHB0cjsKKyAgICAgICAgaWYgKFVOTElLRUxZKHZpc2l0b3IuaXNCdWlsZGluZ0hl
YXBTbmFwc2hvdCgpKSkKKyAgICAgICAgICAgIHJlYXNvblB0ciA9ICZyZWFzb247CisKKyAgICAg
ICAgaWYgKCF3ZWFrSGFuZGxlT3duZXItPmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEhhbmRs
ZTxVbmtub3duPjo6d3JhcFNsb3QoJmNvbnN0X2Nhc3Q8SlNWYWx1ZSY+KGpzVmFsdWUpKSwgd2Vh
a0ltcGwtPmNvbnRleHQoKSwgdmlzaXRvciwgcmVhc29uUHRyKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCiAgICAgICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWQoanNWYWx1ZSk7CisKKyAg
ICAgICAgaWYgKFVOTElLRUxZKHZpc2l0b3IuaXNCdWlsZGluZ0hlYXBTbmFwc2hvdCgpKSkgewor
ICAgICAgICAgICAgaWYgKGpzVmFsdWUuaXNDZWxsKCkpCisgICAgICAgICAgICAgICAgdmlzaXRv
ci5oZWFwU25hcHNob3RCdWlsZGVyKCktPnNldE9wYXF1ZVJvb3RSZWFjaGFiaWxpdHlSZWFzb25G
b3JDZWxsKGpzVmFsdWUuYXNDZWxsKCksICpyZWFzb25QdHIpOworICAgICAgICB9CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrSGFuZGxlT3du
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0hhbmRsZU93bmVyLmNwcApp
bmRleCAwNDQ1MThmN2EzMTMwN2NmMzY2YzE4ZmEzYjJlNjdmZGU4MDVmZTFjLi40NTcyNDA1OTc3
ZjU5NzFhMTc3NzVkZTRiOWU0MWFkNmM0ZTI3YWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9XZWFrSGFuZGxlT3duZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL1dlYWtIYW5kbGVPd25lci5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgV2Vha0hhbmRs
ZU93bmVyOjp+V2Vha0hhbmRsZU93bmVyKCkKIHsKIH0KIAotYm9vbCBXZWFrSGFuZGxlT3duZXI6
OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEhhbmRsZTxVbmtub3duPiwgdm9pZCosIFNsb3RW
aXNpdG9yJikKK2Jvb2wgV2Vha0hhbmRsZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhIYW5kbGU8VW5rbm93bj4sIHZvaWQqLCBTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKikKIHsK
ICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9XZWFrSGFuZGxlT3duZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtI
YW5kbGVPd25lci5oCmluZGV4IDIxOWE5YzU5MTg5ZGQxNDEzZTRlYTZlNzI0ZDdkYTFhMzY1MDVk
YjEuLjQ1MDQ1NmY0MDE2OWE3YTQ1NjQwYjVlNjU1NDc2OGVkZDQxNWU5MmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtIYW5kbGVPd25lci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtIYW5kbGVPd25lci5oCkBAIC0zNCw3ICszNCw4IEBA
IGNsYXNzIFNsb3RWaXNpdG9yOwogY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgV2Vha0hhbmRsZU93
bmVyIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWFrSGFuZGxlT3duZXIoKTsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSGFuZGxlPFVua25vd24+LCB2b2lk
KiBjb250ZXh0LCBTbG90VmlzaXRvciYpOworICAgIC8vIHJlYXNvbiB3aWxsIG9ubHkgYmUgbm9u
LW51bGwgd2hlbiBnZW5lcmF0aW5nIGEgZGVidWcgR0MgaGVhcCBzbmFwc2hvdC4KKyAgICB2aXJ0
dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSGFuZGxlPFVua25vd24+LCB2b2lk
KiBjb250ZXh0LCBTbG90VmlzaXRvciYsIGNoYXIgY29uc3QqKiByZWFzb24gPSBudWxscHRyKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSGFuZGxlPFVua25vd24+LCB2b2lkKiBjb250ZXh0
KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBs
ZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcAppbmRleCBhMjUwMjhjZDc1MmY4M2Y3YWQ2
NjY3ODNmZTYyYmM5YTUxMGM3YTM2Li42YWZlMjMwOWYxNGEyMWYzOGQzM2UzMTIxOWJiNTcwOTMy
MmI5YzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaW1wbGVU
eXBlZEFycmF5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwCkBAIC01OCw4ICs1OCwxMCBAQCBib29s
IFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyOjppc0F0b21pY3NXYWl0QWxsb3dlZE9uQ3VycmVu
dFRocmVhZCgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgU2ltcGxlVHlwZWRBcnJheUNv
bnRyb2xsZXI6OkpTQXJyYXlCdWZmZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBKU0M6OlNsb3RWaXNpdG9y
JiB2aXNpdG9yKQorYm9vbCBTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZl
ck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+IGhhbmRsZSwgdm9pZCosIEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIq
KiByZWFzb24pCiB7CisgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICpyZWFzb24g
PSAiSlNBcnJheUJ1ZmZlciBpcyBvcGFxdWUgcm9vdCI7CiAgICAgYXV0byYgd3JhcHBlciA9ICpK
U0M6OmpzQ2FzdDxKU0M6OkpTQXJyYXlCdWZmZXIqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7
CiAgICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KHdyYXBwZXIuaW1wbCgpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVk
QXJyYXlDb250cm9sbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaW1wbGVU
eXBlZEFycmF5Q29udHJvbGxlci5oCmluZGV4IGQyYjAzYzI2Mzk1OTBkMzdlY2QxMmM2YTk5OGQz
NTY5YmFlMjc5YTYuLjMzZDA4OWY2MTdiZDg4Y2JlNGRmODFjNDExYmRmNGU0MGM3N2Q1MTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlw
ZWRBcnJheUNvbnRyb2xsZXIuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIGNsYXNzIEpTQXJyYXlCdWZmZXJPd25lciA6IHB1YmxpYyBXZWFrSGFuZGxlT3duZXIgewog
ICAgIHB1YmxpYzoKLSAgICAgICAgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBTbG90VmlzaXRvciYpIG92ZXJy
aWRlOworICAgICAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIFNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioq
IHJlYXNvbikgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGU7CiAgICAgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCmluZGV4IGRkZTMxMDkxMWMwZGM0M2Mx
YjY3YzM1MjkyZDEwODY3N2ZiZDIyOTUuLmViNTdjNzg0Yzk4MTgwNDYyZDRhOGU0M2M4NmI1MGJh
YWFlODQ5M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxh
clZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAK
QEAgLTE3Miw4ICsxNzIsMTAgQEAgcHJpdmF0ZToKIAogY2xhc3MgRWxlbWVudEhhbmRsZU93bmVy
IDogcHVibGljIFdlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgYm9vbCBpc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyhIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90
VmlzaXRvciYgdmlzaXRvcikgb3ZlcnJpZGUKKyAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2
aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKSBvdmVycmlkZQogICAgIHsKKyAgICAgICAgaWYg
KFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICAgICAqcmVhc29uID0gIkpTQzo6RWxlbWVudCBp
cyBvcGFxdWUgcm9vdCI7CiAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBqc0Nhc3Q8RWxlbWVu
dCo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICAgICAgcmV0dXJuIHZpc2l0b3IuY29u
dGFpbnNPcGFxdWVSb290KGVsZW1lbnQtPnJvb3QoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NR0NPdXRwdXRDb25zdHJhaW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTUdDT3V0cHV0Q29uc3RyYWludC5jcHAKaW5kZXggNjg4
NjM0M2E3NzUzNDg0OGQ0YjU5YzM0ZWZmNjViZmVkN2M3Y2YyNS4uN2QyN2RhNDY2Yjg1YzVkNWM5
YTE1YjczOTFjMTNmOTY1MmM3YzhkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvRE9NR0NPdXRwdXRDb25zdHJhaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9ET01HQ091dHB1dENvbnN0cmFpbnQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Js
b2NrRGlyZWN0b3J5SW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBJbmxp
bmVzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL01hcmtlZEJsb2NrSW5saW5lcy5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1N1YnNwYWNlSW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1ZNLmg+CkBAIC02MSw2ICs2Miw3IEBAIHZvaWQgRE9NR0NPdXRwdXRDb25zdHJhaW50Ojpl
eGVjdXRlSW1wbChTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICBtX2NsaWVudERhdGEuZm9yRWFj
aE91dHB1dENvbnN0cmFpbnRTcGFjZSgKICAgICAgICAgWyZdIChTdWJzcGFjZSYgc3Vic3BhY2Up
IHsKICAgICAgICAgICAgIGF1dG8gZnVuYyA9IFtdIChTbG90VmlzaXRvciYgdmlzaXRvciwgSGVh
cENlbGwqIGhlYXBDZWxsLCBIZWFwQ2VsbDo6S2luZCkgeworICAgICAgICAgICAgICAgIFNldFJv
b3RNYXJrUmVhc29uU2NvcGUgcm9vdFNjb3BlKHZpc2l0b3IsIFNsb3RWaXNpdG9yOjpSb290TWFy
a1JlYXNvbjo6RE9NR0NPdXRwdXQpOwogICAgICAgICAgICAgICAgIEpTQ2VsbCogY2VsbCA9IHN0
YXRpY19jYXN0PEpTQ2VsbCo+KGhlYXBDZWxsKTsKICAgICAgICAgICAgICAgICBjZWxsLT5tZXRo
b2RUYWJsZSh2aXNpdG9yLnZtKCkpLT52aXNpdE91dHB1dENvbnN0cmFpbnRzKGNlbGwsIHZpc2l0
b3IpOwogICAgICAgICAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0dDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRy
b2xsZXIuY3BwCmluZGV4IDQzODU2ZjVlZTVjYWZjMjNmNTYzZDVmYzc2NTQ5OWE2ZjZhYzIxZTUu
LmQyNTFkMmVjZTFmMThiMjQwYTg4YmJmYjNhMjJjMmMyNGY4MGY2Y2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcApAQCAtMjcsOSArMjcsMTQgQEAKICNp
bmNsdWRlICJHQ0NvbnRyb2xsZXIuaCIKIAogI2luY2x1ZGUgIkNvbW1vblZNLmgiCisjaW5jbHVk
ZSAiRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIkpTSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAi
TG9jYXRpb24uaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwLmg+CisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTTG9jay5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1ZNLmg+CisjaW5jbHVk
ZSA8cGFsL0xvZ2dpbmcuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAg
LTUyLDYgKzU3LDEyIEBAIEdDQ29udHJvbGxlciYgR0NDb250cm9sbGVyOjpzaW5nbGV0b24oKQog
R0NDb250cm9sbGVyOjpHQ0NvbnRyb2xsZXIoKQogICAgIDogbV9HQ1RpbWVyKCp0aGlzLCAmR0ND
b250cm9sbGVyOjpnY1RpbWVyRmlyZWQpCiB7CisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9u
Y2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CisgICAgICAgIFBBTDo6
cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5kdW1wR0NIZWFwIiwgW10g
eworICAgICAgICAgICAgR0NDb250cm9sbGVyOjpzaW5nbGV0b24oKS5kdW1wSGVhcCgpOworICAg
ICAgICB9KTsKKyAgICB9KTsKIH0KIAogdm9pZCBHQ0NvbnRyb2xsZXI6OmdhcmJhZ2VDb2xsZWN0
U29vbigpCkBAIC0xMjcsNCArMTM4LDM2IEBAIHZvaWQgR0NDb250cm9sbGVyOjpkZWxldGVBbGxM
aW5rZWRDb2RlKERlbGV0ZUFsbENvZGVFZmZvcnQgZWZmb3J0KQogICAgIGNvbW1vblZNKCkuZGVs
ZXRlQWxsTGlua2VkQ29kZShlZmZvcnQpOwogfQogCit2b2lkIEdDQ29udHJvbGxlcjo6ZHVtcEhl
YXAoKQoreworICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlSGFuZGxlOwor
ICAgIFN0cmluZyB0ZW1wRmlsZVBhdGggPSBGaWxlU3lzdGVtOjpvcGVuVGVtcG9yYXJ5RmlsZSgi
R0NIZWFwIl9zLCBmaWxlSGFuZGxlKTsKKyAgICBpZiAoIUZpbGVTeXN0ZW06OmlzSGFuZGxlVmFs
aWQoZmlsZUhhbmRsZSkpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJEdW1waW5nIEdDIGhlYXAg
ZmFpbGVkIHRvIG9wZW4gdGVtcG9yYXJ5IGZpbGUiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIFZNJiB2bSA9IGNvbW1vblZNKCk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOwor
CisgICAgc2FuaXRpemVTdGFja0ZvclZNKCZ2bSk7CisKKyAgICBTdHJpbmcganNvbkRhdGE7Cisg
ICAgeworICAgICAgICBEZWZlckdDRm9yQVdoaWxlIGRlZmVyR0Modm0uaGVhcCk7IC8vIFByZXZl
bnQgY29uY3VycmVudCBHQyBmcm9tIGludGVyZmVyaW5nIHdpdGggdGhlIGZ1bGwgR0MgdGhhdCB0
aGUgc25hcHNob3QgZG9lcy4KKworICAgICAgICBIZWFwU25hcHNob3RCdWlsZGVyIHNuYXBzaG90
QnVpbGRlcih2bS5lbnN1cmVIZWFwUHJvZmlsZXIoKSwgSGVhcFNuYXBzaG90QnVpbGRlcjo6U25h
cHNob3RUeXBlOjpHQ0RlYnVnZ2luZ1NuYXBzaG90KTsKKyAgICAgICAgc25hcHNob3RCdWlsZGVy
LmJ1aWxkU25hcHNob3QoKTsKKworICAgICAgICBqc29uRGF0YSA9IHNuYXBzaG90QnVpbGRlci5q
c29uKCk7CisgICAgfQorCisgICAgQ1N0cmluZyB1dGY4U3RyaW5nID0ganNvbkRhdGEudXRmOCgp
OworCisgICAgRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUoZmlsZUhhbmRsZSwgdXRmOFN0cmluZy5k
YXRhKCksIHV0ZjhTdHJpbmcubGVuZ3RoKCkpOworICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShm
aWxlSGFuZGxlKTsKKyAgICAKKyAgICBXVEZMb2dBbHdheXMoIkR1bXBlZCBHQyBoZWFwIHRvICVz
IiwgdGVtcEZpbGVQYXRoLnV0ZjgoKS5kYXRhKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5oCmluZGV4IGVmNmQx
Mzg2ZjcyZDUwODE5MDMxYTZjMWQzMjQzOGFmZGU5MGY4ZjEuLjBjZTQ1OTUwYzUzOTFmNjA2OTZm
ZDQwZDg5ZDkyN2RhMzg2YTg3ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0dDQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29u
dHJvbGxlci5oCkBAIC01MSw2ICs1MSw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgR0NDb250
cm9sbGVyKCk7IC8vIFVzZSBzaW5nbGV0b24oKSBpbnN0ZWFkLgogCisgICAgdm9pZCBkdW1wSGVh
cCgpOworCiAgICAgdm9pZCBnY1RpbWVyRmlyZWQoKTsKICAgICBUaW1lciBtX0dDVGltZXI7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NSdWxlTGlzdEN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVMaXN0Q3VzdG9t
LmNwcAppbmRleCBmMDU1MGFhNjQ0M2VlOWQ0NDY1NWI5NWMwOTcyMGU0NjJkY2Q3YmZlLi4wMjBl
NDU4YzA1ZmIzNTBkMDM1MWQwNGRjMTc1ZTExOTM1MDY3Y2JhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcApAQCAtMzYsMTUgKzM2
LDI1IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCi1ib29s
IEpTQ1NTUnVsZUxpc3RPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK2Jv
b2wgSlNDU1NSdWxlTGlzdE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBj
b25zdCBjaGFyKiogcmVhc29uKQogewogICAgIEpTQ1NTUnVsZUxpc3QqIGpzQ1NTUnVsZUxpc3Qg
PSBqc0Nhc3Q8SlNDU1NSdWxlTGlzdCo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICBp
ZiAoIWpzQ1NTUnVsZUxpc3QtPmhhc0N1c3RvbVByb3BlcnRpZXMoKmpzQ1NTUnVsZUxpc3QtPnZt
KCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKENTU1N0eWxlU2hlZXQqIHN0eWxl
U2hlZXQgPSBqc0NTU1J1bGVMaXN0LT53cmFwcGVkKCkuc3R5bGVTaGVldCgpKQorCisgICAgaWYg
KENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBqc0NTU1J1bGVMaXN0LT53cmFwcGVkKCkuc3R5
bGVTaGVldCgpKSB7CisgICAgICAgIGlmIChVTkxJS0VMWShyZWFzb24pKQorICAgICAgICAgICAg
KnJlYXNvbiA9ICJDU1NTdHlsZVNoZWV0IGlzIG9wYXF1ZSByb290IjsKKwogICAgICAgICByZXR1
cm4gdmlzaXRvci5jb250YWluc09wYXF1ZVJvb3Qocm9vdChzdHlsZVNoZWV0KSk7Ci0gICAgaWYg
KENTU1J1bGUqIGNzc1J1bGUgPSBqc0NTU1J1bGVMaXN0LT53cmFwcGVkKCkuaXRlbSgwKSkKKyAg
ICB9CisgICAgCisgICAgaWYgKENTU1J1bGUqIGNzc1J1bGUgPSBqc0NTU1J1bGVMaXN0LT53cmFw
cGVkKCkuaXRlbSgwKSkgeworICAgICAgICBpZiAoVU5MSUtFTFkocmVhc29uKSkKKyAgICAgICAg
ICAgICpyZWFzb24gPSAiQ1NTUnVsZSBpcyBvcGFxdWUgcm9vdCI7CisKICAgICAgICAgcmV0dXJu
IHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KHJvb3QoY3NzUnVsZSkpOworICAgIH0KICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ2FsbGJhY2tEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJh
Y2tEYXRhLmNwcAppbmRleCA5YmEwZWFmMTlmYWRkYzFjNGJlMWE1MzBhZWI0NDdkY2IzOWVlZjFm
Li4xODY3NjJhOTBkMjg1MzU0NzQ2MjMxOGMyNWNhZWE0Njg1NmZkOWNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwCkBAIC05MCw4ICs5MCwxMCBA
QCB2b2lkIEpTQ2FsbGJhY2tEYXRhV2Vhazo6dmlzaXRKU0Z1bmN0aW9uKEpTQzo6U2xvdFZpc2l0
b3ImIHZpc3RvcikKICAgICB2aXN0b3IuYXBwZW5kKG1fY2FsbGJhY2spOwogfQogCi1ib29sIEpT
Q2FsbGJhY2tEYXRhV2Vhazo6V2Vha093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhK
U0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBTbG90VmlzaXRvciYgdmlz
aXRvcikKK2Jvb2wgSlNDYWxsYmFja0RhdGFXZWFrOjpXZWFrT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIFNs
b3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogeworICAgIGlmIChVTkxJ
S0VMWShyZWFzb24pKQorICAgICAgICAqcmVhc29uID0gIkNvbnRleHQgaXMgb3BhcXVlIHJvb3Qi
OyAvLyBGSVhNRTogd2hhdCBpcyB0aGUgY29udGV4dC4KICAgICByZXR1cm4gdmlzaXRvci5jb250
YWluc09wYXF1ZVJvb3QoY29udGV4dCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0NhbGxiYWNrRGF0YS5oCmluZGV4IDYwMTkyZTYxNDIyZDEyM2EyMjk3OTI3YjViZGFmZjAz
ZDQ0N2Q3NjUuLmE1YmM5NTQyZTU0NzUyMzM0YWYwZDc5MDMwNTI2M2U5NGZlNWJkZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuaApAQCAtMTE2LDcgKzEx
Niw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBjbGFzcyBXZWFrT3duZXIgOiBwdWJsaWMg
SlNDOjpXZWFrSGFuZGxlT3duZXIgewotICAgICAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xv
dFZpc2l0b3ImKSBvdmVycmlkZTsKKyAgICAgICAgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RW
aXNpdG9yJiwgY29uc3QgY2hhcioqKSBvdmVycmlkZTsKICAgICB9OwogICAgIFdlYWtPd25lciBt
X3dlYWtPd25lcjsKICAgICBKU0M6OldlYWs8SlNDOjpKU09iamVjdD4gbV9jYWxsYmFjazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAppbmRleCBmMTAxOGY0ZDU3ZGZiM2I0MjU2ZDE3MWVk
YjY4ZmRhMTgzYzQ4MGE4Li40ZDUwMDQyOTgwNzc1MzU4MDQ5MWZhY2VjMTcwZTZiYTc3NzAyNTBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwCkBAIC0yMiw4ICsyMiwxMSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRPd25l
cjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBo
YW5kbGUsIHZvaWQqLCBKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQorYm9vbCBKU0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0
b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CisgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisg
ICAgICAgICpyZWFzb24gPSAiQ2FudmFzIGlzIG9wYXF1ZSByb290IjsKKwogICAgIEpTQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEKiBqc0NhbnZhc1JlbmRlcmluZ0NvbnRleHQgPSBqc0Nhc3Q8SlND
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAg
dm9pZCogcm9vdCA9IFdlYkNvcmU6OnJvb3QoanNDYW52YXNSZW5kZXJpbmdDb250ZXh0LT53cmFw
cGVkKCkuY2FudmFzKCkpOwogICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChy
b290KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9t
LmNwcAppbmRleCBhNzYxZGIxMjNlNjJjOGJkOTdmMGU3ODE3MmMxNmUwNmEyMjdiNDI3Li40OTZk
MmU3ZDZmMjQ2OGZlYjZkODFhMmQ4NGVkMjZkODM3YTM2ZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC00NSw2ICs0NSw3IEBA
CiAjaW5jbHVkZSAiU2NoZWR1bGVkQWN0aW9uLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNp
bmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGlu
ZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU01pY3JvdGFzay5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0xvb2t1cC5oPgpAQCAtMjAyLDcgKzIwMyw3IEBAIGJvb2wgSlNET01X
aW5kb3c6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0
YXRlLCBQcm9wZXJ0CiAgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNz
VG9ET01XaW5kb3coKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCksIGVycm9yTWVzc2FnZSkp
CiAgICAgICAgIHJldHVybiBqc0RPTVdpbmRvd0dldE93blByb3BlcnR5U2xvdFJlc3RyaWN0ZWRB
Y2Nlc3M8RE9NV2luZG93VHlwZTo6TG9jYWw+KHRoaXNPYmplY3QsIHRoaXNPYmplY3QtPndyYXBw
ZWQoKSwgKnN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QsIGVycm9yTWVzc2FnZSk7CiAKLSAgICAv
LyBGSVhNRTogdGhpcyBuZWVkIG1vcmUgZXhwbGFuYXRpb24uCisgICAgLy8gRklYTUU6IHRoaXMg
bmVlZHMgbW9yZSBleHBsYW5hdGlvbi4KICAgICAvLyAoUGFydGljdWxhcmx5LCBpcyBpdCBjb3Jy
ZWN0IHRoYXQgdGhpcyBleGlzdHMgaGVyZSBidXQgbm90IGluIGdldE93blByb3BlcnR5U2xvdEJ5
SW5kZXg/KQogICAgIHNsb3Quc2V0V2F0Y2hwb2ludFNldCh0aGlzT2JqZWN0LT5tX3dpbmRvd0Ns
b3NlV2F0Y2hwb2ludHMpOwogCkBAIC0zMjgsNiArMzI5LDE1IEBAIGJvb2wgSlNET01XaW5kb3c6
OmRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5z
aWduZWQKICAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXNPYmplY3Qs
IGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAKK3ZvaWQgSlNET01XaW5kb3c6OmhlYXBTbmFwc2hv
dChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgSlNE
T01XaW5kb3cqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNET01XaW5kb3cqPihjZWxsKTsKKyAgICBp
ZiAoYXV0byogbG9jYXRpb24gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubG9jYXRpb24oKSkKKyAg
ICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgbG9jYXRpb24tPmhyZWYoKSk7CisK
KyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKIC8vIGh0dHBzOi8v
aHRtbC5zcGVjLndoYXR3Zy5vcmcvI2Nyb3Nzb3JpZ2lucHJvcGVydGllcy0oLW8tKQogc3RhdGlj
IHZvaWQgYWRkQ3Jvc3NPcmlnaW5XaW5kb3dQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSYgc3RhdGUs
IEFic3RyYWN0RE9NV2luZG93JiB3aW5kb3csIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5h
bWVzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXByZWNh
dGVkQ1NTT01WYWx1ZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rl
cHJlY2F0ZWRDU1NPTVZhbHVlQ3VzdG9tLmNwcAppbmRleCAzNWM3NWZlMzQ3MTI2NDIxNzc1NjA5
YzQ0MjhjYWNmMGEzY2RmMTAzLi5mODZmZWU2M2M3NmI5NTZiM2YzYzJiY2MxZDI2NWZhODc3Njk1
NTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RlcHJlY2F0ZWRD
U1NPTVZhbHVlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rl
cHJlY2F0ZWRDU1NPTVZhbHVlQ3VzdG9tLmNwcApAQCAtMzUsMTEgKzM1LDE1IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCi1ib29sIEpTRGVwcmVjYXRlZENT
U09NVmFsdWVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK2Jvb2wgSlNE
ZXByZWNhdGVkQ1NTT01WYWx1ZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9y
LCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIEpTRGVwcmVjYXRlZENTU09NVmFsdWUqIGpz
Q1NTVmFsdWUgPSBqc0Nhc3Q8SlNEZXByZWNhdGVkQ1NTT01WYWx1ZSo+KGhhbmRsZS5zbG90KCkt
PmFzQ2VsbCgpKTsKICAgICBpZiAoIWpzQ1NTVmFsdWUtPmhhc0N1c3RvbVByb3BlcnRpZXMoKmpz
Q1NTVmFsdWUtPnZtKCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoVU5MSUtF
TFkocmVhc29uKSkKKyAgICAgICAgKnJlYXNvbiA9ICJDU1NTdHlsZURlY2xhcmF0aW9uIGlzIG9w
YXF1ZSByb290IjsKKwogICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChyb290
KCZqc0NTU1ZhbHVlLT53cmFwcGVkKCkub3duZXIoKSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCmluZGV4IDY2MDVmMWU3ZmYyZjk1
NzZmZjg5ZmU3MGYxYTM0OGVlNGM4YmRmM2MuLjU2ODdlNGQ3OGM2MmQwOGYxOTRiOTM4MjQ2NDY5
Nzk2OTljMTdmOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9j
dW1lbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1l
bnRDdXN0b20uY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiSlNYTUxEb2N1bWVudC5o
IgogI2luY2x1ZGUgIk5vZGVUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudC5oIgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KIAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC05Myw0ICs5NCwxMSBAQCB2b2lkIEpTRG9jdW1lbnQ6OnZpc2l0
QWRkaXRpb25hbENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYWRk
T3BhcXVlUm9vdChzdGF0aWNfY2FzdDxTY3JpcHRFeGVjdXRpb25Db250ZXh0Kj4oJndyYXBwZWQo
KSkpOwogfQogCit2b2lkIEpTRG9jdW1lbnQ6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhl
YXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNl
bGwsIGJ1aWxkZXIpOworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNEb2N1bWVudCo+
KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIHRoaXNPYmplY3QtPndy
YXBwZWQoKS51cmwoKS5zdHJpbmcoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWljcm90YXNrQ2FsbGJhY2su
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWljcm90YXNrQ2FsbGJhY2suaAppbmRl
eCBjOWI4ZTY0Yjg1NGI0NDNmZmQzZjk3YmMyM2UyNWM4ZDE2NjRjMjZhLi4xYTBiNTNmYzM0M2Q1
YzViMTRmNzM3ZTI1OGIzN2E2NGQ4MjQ0ZTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01pY3JvdGFza0NhbGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNNaWNyb3Rhc2tDYWxsYmFjay5oCkBAIC00MCw4ICs0MCw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNhbGwoKQogICAgIHsKICAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlzIHsgbWFr
ZVJlZigqdGhpcykgfTsKLSAgICAgICAgVk0mIHZtID0gbV9nbG9iYWxPYmplY3QtPnZtKCk7Ci0g
ICAgICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKKyAgICAgICAgSlNDOjpWTSYgdm0gPSBtX2ds
b2JhbE9iamVjdC0+dm0oKTsKKyAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAg
ICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAgICAgSlNF
eGVjU3RhdGU6OnJ1blRhc2sobV9nbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgbV90YXNrKTsK
ICAgICAgICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKQEAgLTU0LDcgKzU0LDcgQEAgcHJp
dmF0ZToKICAgICB7CiAgICAgfQogCi0gICAgU3Ryb25nPEpTRE9NR2xvYmFsT2JqZWN0PiBtX2ds
b2JhbE9iamVjdDsKKyAgICBKU0M6OlN0cm9uZzxKU0RPTUdsb2JhbE9iamVjdD4gbV9nbG9iYWxP
YmplY3Q7CiAgICAgUmVmPEpTQzo6TWljcm90YXNrPiBtX3Rhc2s7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNw
cAppbmRleCA0ZGRlZjhhZmM4N2IwMWRjNmE1NTFkMWI5MmRkMmZmMTk0MzBkYmUzLi4xOTVhZDAx
NWNkNTk5YjQ1NjFhZTVlYTEwZmMwOTM0NjY3NGJmNTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKQEAgLTQ0
LDExICs0NCwxNCBAQCB2b2lkIEpTTXV0YXRpb25PYnNlcnZlcjo6dmlzaXRBZGRpdGlvbmFsQ2hp
bGRyZW4oSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB3cmFwcGVkKCkuY2FsbGJhY2so
KS52aXNpdEpTRnVuY3Rpb24odmlzaXRvcik7CiB9CiAKLWJvb2wgSlNNdXRhdGlvbk9ic2VydmVy
T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCitib29sIEpTTXV0YXRpb25P
YnNlcnZlck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFy
KipyZWFzb24pCiB7CiAgICAgZm9yIChhdXRvKiBub2RlIDoganNDYXN0PEpTTXV0YXRpb25PYnNl
cnZlcio+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKS0+d3JhcHBlZCgpLm9ic2VydmVkTm9kZXMo
KSkgewotICAgICAgICBpZiAodmlzaXRvci5jb250YWluc09wYXF1ZVJvb3Qocm9vdChub2RlKSkp
CisgICAgICAgIGlmICh2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChyb290KG5vZGUpKSkgewor
ICAgICAgICAgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICAgICAgICAgKnJlYXNv
biA9ICJSZWFjaGFibGUgZnJvbSBvYnNlcnZlZCBub2RlcyI7CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hdmlnYXRvckN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hdmlnYXRvckN1c3RvbS5jcHAKaW5kZXggNDljZGEw
NjRkYzY2ZjJiYjM4OTAxYTJlM2U2ZTMxOTU3MzljMGY4MS4uMjE2OTkwMDRhYTc1MWVkYmI0NmYx
OTBkNTdmNDMwOGMwNDA4N2ZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOYXZpZ2F0b3JDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTmF2aWdhdG9yQ3VzdG9tLmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXZvaWQgSlNOYXZpZ2F0b3I6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU05hdmlnYXRvcjo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRy
ZW4oSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCiAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KCZ3cmFwcGVkKCkuc2VydmljZVdvcmtlcigp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCmluZGV4IDA5
YTcwZjIyZTg4Y2YxY2I5ODdhZTdkNzE4MWNmZTI1OTUzNTk0MjIuLmM0ODVlMzAzZDVhMzZlMzEx
MDVmODNmZDU3NGQ1YzMxMTdhYjI0OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNOb2RlQ3VzdG9tLmNwcApAQCAtNzEsNyArNzEsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNSZWFj
aGFibGVGcm9tRE9NKE5vZGUqIG5vZGUsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQorc3RhdGljIGlu
bGluZSBib29sIGlzUmVhY2hhYmxlRnJvbURPTShOb2RlKiBub2RlLCBTbG90VmlzaXRvciYgdmlz
aXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBpZiAoIW5vZGUtPmlzQ29ubmVjdGVk
KCkpIHsKICAgICAgICAgaWYgKGlzPEVsZW1lbnQ+KCpub2RlKSkgewpAQCAtODMsMzAgKzgzLDQy
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1JlYWNoYWJsZUZyb21ET00oTm9kZSogbm9kZSwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgICAgICAgICAvLyB0aGUgZWxlbWVudCBpcyBkZXN0cm95
ZWQsIGl0cyBsb2FkIGV2ZW50IHdpbGwgbm90IGZpcmUuCiAgICAgICAgICAgICAvLyBGSVhNRTog
VGhlIERPTSBzaG91bGQgbWFuYWdlIHRoaXMgaXNzdWUgd2l0aG91dCB0aGUgaGVscCBvZiBKYXZh
U2NyaXB0IHdyYXBwZXJzLgogICAgICAgICAgICAgaWYgKGlzPEhUTUxJbWFnZUVsZW1lbnQ+KGVs
ZW1lbnQpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGRvd25jYXN0PEhUTUxJbWFnZUVsZW1lbnQ+
KGVsZW1lbnQpLmhhc1BlbmRpbmdBY3Rpdml0eSgpKQorICAgICAgICAgICAgICAgIGlmIChkb3du
Y2FzdDxIVE1MSW1hZ2VFbGVtZW50PihlbGVtZW50KS5oYXNQZW5kaW5nQWN0aXZpdHkoKSkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAoVU5MSUtFTFkocmVhc29uKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICpyZWFzb24gPSAiSW1hZ2UgZWxlbWVudCB3aXRoIHBlbmRpbmcgYWN0aXZpdHki
OwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CiAjaWYgRU5BQkxFKFZJREVPKQogICAgICAgICAgICAgZWxzZSBpZiAoaXM8
SFRNTEF1ZGlvRWxlbWVudD4oZWxlbWVudCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWRvd25j
YXN0PEhUTUxBdWRpb0VsZW1lbnQ+KGVsZW1lbnQpLnBhdXNlZCgpKQorICAgICAgICAgICAgICAg
IGlmICghZG93bmNhc3Q8SFRNTEF1ZGlvRWxlbWVudD4oZWxlbWVudCkucGF1c2VkKCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICAgICAgICAg
ICAgICAgICAqcmVhc29uID0gIkF1ZGlvIGVsZW1lbnQgd2hpY2ggaXMgbm90IHBhdXNlZCI7CiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KICNlbmRpZgogICAgICAgICB9CiAKICAgICAgICAgLy8gSWYgYSBub2RlIGlzIGZp
cmluZyBldmVudCBsaXN0ZW5lcnMsIGl0cyB3cmFwcGVyIGlzIG9ic2VydmFibGUgYmVjYXVzZQog
ICAgICAgICAvLyBpdHMgd3JhcHBlciBpcyByZXNwb25zaWJsZSBmb3IgbWFya2luZyB0aG9zZSBl
dmVudCBsaXN0ZW5lcnMuCi0gICAgICAgIGlmIChub2RlLT5pc0ZpcmluZ0V2ZW50TGlzdGVuZXJz
KCkpCisgICAgICAgIGlmIChub2RlLT5pc0ZpcmluZ0V2ZW50TGlzdGVuZXJzKCkpIHsKKyAgICAg
ICAgICAgIGlmIChVTkxJS0VMWShyZWFzb24pKQorICAgICAgICAgICAgICAgICpyZWFzb24gPSAi
Tm9kZSB3aGljaCBpcyBmaXJpbmcgZXZlbnQgbGlzdGVuZXJzIjsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CiAgICAgfQogCisgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisg
ICAgICAgICpyZWFzb24gPSAiQ29ubmVjdGVkIG5vZGUiOworCiAgICAgcmV0dXJuIHZpc2l0b3Iu
Y29udGFpbnNPcGFxdWVSb290KHJvb3Qobm9kZSkpOwogfQogCi1ib29sIEpTTm9kZU93bmVyOjpp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRs
ZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQorYm9vbCBKU05vZGVPd25lcjo6aXNSZWFj
aGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZv
aWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBK
U05vZGUqIGpzTm9kZSA9IGpzQ2FzdDxKU05vZGUqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7
Ci0gICAgcmV0dXJuIGlzUmVhY2hhYmxlRnJvbURPTSgmanNOb2RlLT53cmFwcGVkKCksIHZpc2l0
b3IpOworICAgIHJldHVybiBpc1JlYWNoYWJsZUZyb21ET00oJmpzTm9kZS0+d3JhcHBlZCgpLCB2
aXNpdG9yLCByZWFzb24pOwogfQogCiBKU1Njb3BlKiBKU05vZGU6OnB1c2hFdmVudEhhbmRsZXJT
Y29wZShFeGVjU3RhdGUqIGV4ZWMsIEpTU2NvcGUqIG5vZGUpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUxpc3RDdXN0b20uY3BwCmluZGV4IDlhMWM4NzM0NDY5
NTNlMzIxZmI4ZTU1NjljOTRmMzQ4MWNjZWY4ZjguLjdmNmQ5ZTcyZGE1MDc5NWZlZjM1ZmZkNjJi
ZDI2ODhjNWExMGVhZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Tm9kZUxpc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9k
ZUxpc3RDdXN0b20uY3BwCkBAIC0zNywxNyArMzcsMzIgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKLWJvb2wgSlNOb2RlTGlzdE93bmVyOjppc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCos
IFNsb3RWaXNpdG9yJiB2aXNpdG9yKQorYm9vbCBKU05vZGVMaXN0T3duZXI6OmlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgSlNOb2Rl
TGlzdCoganNOb2RlTGlzdCA9IGpzQ2FzdDxKU05vZGVMaXN0Kj4oaGFuZGxlLnNsb3QoKS0+YXND
ZWxsKCkpOwogICAgIGlmICghanNOb2RlTGlzdC0+aGFzQ3VzdG9tUHJvcGVydGllcygqanNOb2Rl
TGlzdC0+dm0oKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoanNOb2RlTGlzdC0+
d3JhcHBlZCgpLmlzTGl2ZU5vZGVMaXN0KCkpCisKKyAgICBpZiAoanNOb2RlTGlzdC0+d3JhcHBl
ZCgpLmlzTGl2ZU5vZGVMaXN0KCkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisg
ICAgICAgICAgICAqcmVhc29uID0gIkxpdmVOb2RlTGlzdCBvd25lciBpcyBvcGFxdWUgcm9vdCI7
CisKICAgICAgICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KHJvb3Qoc3RhdGlj
X2Nhc3Q8TGl2ZU5vZGVMaXN0Jj4oanNOb2RlTGlzdC0+d3JhcHBlZCgpKS5vd25lck5vZGUoKSkp
OwotICAgIGlmIChqc05vZGVMaXN0LT53cmFwcGVkKCkuaXNDaGlsZE5vZGVMaXN0KCkpCisgICAg
fQorCisgICAgaWYgKGpzTm9kZUxpc3QtPndyYXBwZWQoKS5pc0NoaWxkTm9kZUxpc3QoKSkgewor
ICAgICAgICBpZiAoVU5MSUtFTFkocmVhc29uKSkKKyAgICAgICAgICAgICpyZWFzb24gPSAiQ2hp
bGROb2RlTGlzdCBvd25lciBpcyBvcGFxdWUgcm9vdCI7CisKICAgICAgICAgcmV0dXJuIHZpc2l0
b3IuY29udGFpbnNPcGFxdWVSb290KHJvb3Qoc3RhdGljX2Nhc3Q8Q2hpbGROb2RlTGlzdCY+KGpz
Tm9kZUxpc3QtPndyYXBwZWQoKSkub3duZXJOb2RlKCkpKTsKLSAgICBpZiAoanNOb2RlTGlzdC0+
d3JhcHBlZCgpLmlzRW1wdHlOb2RlTGlzdCgpKQorICAgIH0KKworICAgIGlmIChqc05vZGVMaXN0
LT53cmFwcGVkKCkuaXNFbXB0eU5vZGVMaXN0KCkpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKHJl
YXNvbikpCisgICAgICAgICAgICAqcmVhc29uID0gIkVtcHR5Tm9kZUxpc3Qgb3duZXIgaXMgb3Bh
cXVlIHJvb3QiOworCiAgICAgICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChy
b290KHN0YXRpY19jYXN0PEVtcHR5Tm9kZUxpc3QmPihqc05vZGVMaXN0LT53cmFwcGVkKCkpLm93
bmVyTm9kZSgpKSk7CisgICAgfQogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPZmZzY3JlZW5D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwCmluZGV4IDMzYjA4ZTc4YTJjMmY3NjU3
NGFkOGM1MmQyMzBmNmNhMDc3NGE1MjkuLjM0ZDdhMDk5YjM2Njc4NzUzZjU0ZjVkZGZjNjQ4OTc0
YjI3ZDRhN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTT2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU09mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5j
cHAKQEAgLTI4LDggKzI4LDExIEBAIGlubGluZSB2b2lkKiByb290KE9mZnNjcmVlbkNhbnZhcyog
Y2FudmFzKQogICAgIHJldHVybiBjYW52YXM7CiB9CiAKLWJvb2wgSlNPZmZzY3JlZW5DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikK
K2Jvb2wgSlNPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRPd25lcjo6aXNSZWFjaGFi
bGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQq
LCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKKyAgICBpZiAo
VU5MSUtFTFkocmVhc29uKSkKKyAgICAgICAgKnJlYXNvbiA9ICJDYW52YXMgaXMgb3BhcXVlIHJv
b3QiOworCiAgICAgSlNPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIGpzT2Zmc2Ny
ZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dCA9IGpzQ2FzdDxKU09mZnNjcmVlbkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRCo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICB2b2lkKiByb290
ID0gV2ViQ29yZTo6cm9vdCgmanNPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0LT53cmFw
cGVkKCkuY2FudmFzKCkpOwogICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdChy
b290KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGVyZm9ybWFu
Y2VPYnNlcnZlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BlcmZv
cm1hbmNlT2JzZXJ2ZXJDdXN0b20uY3BwCmluZGV4IDM3ZTk1MTcxMTIyZGRkYTA1ZGQzNzZiNjFl
ZWExZjhlMWQzYzcyOWYuLjZlZmEzZGNkMmU3ZWJkMzVhYzFiODYyN2JjMmJkYjgwODBhMWNhMzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGVyZm9ybWFuY2VPYnNl
cnZlckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQZXJmb3Jt
YW5jZU9ic2VydmVyQ3VzdG9tLmNwcApAQCAtMzUsOCArMzUsMTEgQEAgdm9pZCBKU1BlcmZvcm1h
bmNlT2JzZXJ2ZXI6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKEpTQzo6U2xvdFZpc2l0b3ImIHZp
c2l0b3IpCiAgICAgd3JhcHBlZCgpLmNhbGxiYWNrKCkudmlzaXRKU0Z1bmN0aW9uKHZpc2l0b3Ip
OwogfQogCi1ib29sIEpTUGVyZm9ybWFuY2VPYnNlcnZlck93bmVyOjppc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RW
aXNpdG9yJikKK2Jvb2wgSlNQZXJmb3JtYW5jZU9ic2VydmVyT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xv
dFZpc2l0b3ImLCBjb25zdCBjaGFyKiogcmVhc29uKQogeworICAgIGlmIChVTkxJS0VMWShyZWFz
b24pKQorICAgICAgICAqcmVhc29uID0gIlJlZ2lzdGVyZWQgUGVyZm9ybWFuY2VPYnNlcnZlciBj
YWxsYmFjayI7CisKICAgICByZXR1cm4ganNDYXN0PEpTUGVyZm9ybWFuY2VPYnNlcnZlcio+KGhh
bmRsZS5zbG90KCktPmFzQ2VsbCgpKS0+d3JhcHBlZCgpLmlzUmVnaXN0ZXJlZCgpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BvcFN0YXRlRXZlbnRDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQb3BTdGF0ZUV2ZW50Q3VzdG9t
LmNwcAppbmRleCA3MjJkZDllNDM0MDNmOWRjMzQzMjk2MGNmNzM3ZjRjOGYxYWQ2MDFlLi5kMzFi
ZGM3NzliOTE3ZWM1ZTU4MjFmNmY4OWY0MGJiZmUwMmFkYTg4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BvcFN0YXRlRXZlbnRDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUG9wU3RhdGVFdmVudEN1c3RvbS5jcHAKQEAgLTM3LDYg
KzM3LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBKU1ZhbHVlIEpT
UG9wU3RhdGVFdmVudDo6c3RhdGUoRXhlY1N0YXRlJiBzdGF0ZSkgY29uc3QKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcAppbmRl
eCBjMjk0NDUxM2Y5NWU5M2QwYjFhYWUyYTdiNTA2NzNkODEzZTNhNGUzLi4zYzQ4Nzk1MmMzODY1
YTA3NzBhNDdkYWJmY2Q1Y2U4ZmFiNWZkNGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1RleHRUcmFja0N1ZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwCkBAIC0zOCwyMCArMzgsMjYgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKLWJvb2wgSlNUZXh0
VHJhY2tDdWVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK2Jvb2wgSlNU
ZXh0VHJhY2tDdWVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3Qg
Y2hhcioqIHJlYXNvbikKIHsKICAgICBKU1RleHRUcmFja0N1ZSoganNUZXh0VHJhY2tDdWUgPSBq
c0Nhc3Q8SlNUZXh0VHJhY2tDdWUqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgVGV4
dFRyYWNrQ3VlJiB0ZXh0VHJhY2tDdWUgPSBqc1RleHRUcmFja0N1ZS0+d3JhcHBlZCgpOwogCiAg
ICAgLy8gSWYgdGhlIGN1ZSBpcyBmaXJpbmcgZXZlbnQgbGlzdGVuZXJzLCBpdHMgd3JhcHBlciBp
cyByZWFjaGFibGUgYmVjYXVzZQogICAgIC8vIHRoZSB3cmFwcGVyIGlzIHJlc3BvbnNpYmxlIGZv
ciBtYXJraW5nIHRob3NlIGV2ZW50IGxpc3RlbmVycy4KLSAgICBpZiAodGV4dFRyYWNrQ3VlLmlz
RmlyaW5nRXZlbnRMaXN0ZW5lcnMoKSkKKyAgICBpZiAodGV4dFRyYWNrQ3VlLmlzRmlyaW5nRXZl
bnRMaXN0ZW5lcnMoKSkgeworICAgICAgICBpZiAoVU5MSUtFTFkocmVhc29uKSkKKyAgICAgICAg
ICAgICpyZWFzb24gPSAiVGV4dFRyYWNrQ3VlIGlzIGZpcmluZyBldmVudCBsaXN0ZW5lcnMiOwog
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAKICAgICAvLyBJZiB0aGUgY3VlIGlzIG5vdCBh
c3NvY2lhdGVkIHdpdGggYSB0cmFjaywgaXQgaXMgbm90IHJlYWNoYWJsZS4KICAgICBpZiAoIXRl
eHRUcmFja0N1ZS50cmFjaygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoVU5M
SUtFTFkocmVhc29uKSkKKyAgICAgICAgKnJlYXNvbiA9ICJUZXh0VHJhY2sgaXMgYW4gb3BhcXVl
IHJvb3QiOworCiAgICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KHJvb3QodGV4
dFRyYWNrQ3VlLnRyYWNrKCkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAKaW5kZXggODRmYjNj
NGYxNWE4YzgzODBiZTM1YjE1ZTYxZjhlNzZmNWE5NzJhMi4uMjBiNWY5ODE2OGRiZGUzYTdmMTkw
NjkzMTkzMzVmYTlhNTRhZGY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwCkBAIC01Myw4ICs1Mywx
MCBAQCBib29sIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlcjo6aXNBdG9taWNzV2FpdEFsbG93
ZWRPbkN1cnJlbnRUaHJlYWQoKQogICAgIHJldHVybiAhaXNNYWluVGhyZWFkKCk7CiB9CiAKLWJv
b2wgV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyOjpKU0FycmF5QnVmZmVyT3duZXI6OmlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2
b2lkKiwgSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKK2Jvb2wgV2ViQ29yZVR5cGVkQXJyYXlD
b250cm9sbGVyOjpKU0FycmF5QnVmZmVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgSlNDOjpTbG90VmlzaXRv
ciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKKyAgICBpZiAoVU5MSUtFTFkocmVh
c29uKSkKKyAgICAgICAgKnJlYXNvbiA9ICJBcnJheUJ1ZmZlciBpcyBvcGFxdWUgcm9vdCI7CiAg
ICAgYXV0byYgd3JhcHBlciA9ICpKU0M6OmpzQ2FzdDxKU0M6OkpTQXJyYXlCdWZmZXIqPihoYW5k
bGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVS
b290KHdyYXBwZXIuaW1wbCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmgKaW5kZXggMjUyNjAxMjJlYmYx
MTk3ZWRjZjEyNzQ5NzE5NjFlZjIyOTM0NDczNi4uZTBiYjk1NmI5OTQ0YmEyMmJjZTk3YTI5Njc2
Y2Y4MWRkMGEyYjg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2Vi
Q29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICBjbGFzcyBKU0FycmF5QnVmZmVyT3duZXIgOiBwdWJsaWMgSlNDOjpX
ZWFrSGFuZGxlT3duZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgYm9vbCBpc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBK
U0M6OlNsb3RWaXNpdG9yJikgb3ZlcnJpZGU7CisgICAgICAgIGJvb2wgaXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlND
OjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKikgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgZmlu
YWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGU7
CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQppbmRleCA4NzNlZDZiMDJkZTE3ZjE4MmJjZDZlYzMwMjJkMGQ1YTczMTBj
Nzg0Li43ZjRhYzEwYzllOGFmOGJkYzZkYmM4NjVjYzdiYmZlNGE2NDJmM2RjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAt
MjY1Nyw3ICsyNjU3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgaWYgKCRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbVByZXZlbnRFeHRlbnNpb25zfSkgewogICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBib29sIHByZXZlbnRFeHRlbnNpb25z
KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSopO1xuIik7CiAgICAgfQotICAgIAorCiAg
ICAgaWYgKEluc3RhbmNlTmVlZHNFc3RpbWF0ZWRTaXplKCRpbnRlcmZhY2UpKSB7CiAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIHNpemVfdCBlc3RpbWF0ZWRTaXplKEpT
Q2VsbCosIEpTQzo6Vk0mKTtcbiIpOwogICAgIH0KQEAgLTI3NTgsNiArMjc1OCwxMCBAQCBzdWIg
R2VuZXJhdGVIZWFkZXIKICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdGVt
cGxhdGU8dHlwZW5hbWU+IHN0YXRpYyBKU0M6OkNvbXBsZXRlU3Vic3BhY2UqIHN1YnNwYWNlRm9y
KEpTQzo6Vk0mIHZtKSB7IHJldHVybiAkc3Vic3BhY2VGdW5jKHZtKTsgfVxuIik7CiAgICAgICAg
IH0KICAgICB9CisKKyAgICBpZiAoTmVlZHNJbXBsZW1lbnRhdGlvbkNsYXNzKCRpbnRlcmZhY2Up
KSB7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIHZvaWQgaGVhcFNu
YXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpO1xuIik7CisgICAgfQog
ICAgIAogICAgIGlmICgkbnVtQ3VzdG9tQXR0cmlidXRlcyA+IDApIHsKICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIlxuICAgIC8vIEN1c3RvbSBhdHRyaWJ1dGVzXG4iKTsKQEAgLTI4Njcs
NyArMjg3MSw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICB9CiAgICAgICAgICRoZWFk
ZXJJbmNsdWRlc3siPHd0Zi9OZXZlckRlc3Ryb3llZC5oPiJ9ID0gMTsKICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgInB1YmxpYzpcbiIpOwotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7XG4iKTsK
KyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFi
bGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4
dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7XG4iKTsKICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIn07XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlxuIik7CkBAIC00
NTIxLDYgKzQ1MjUsMjAgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0KIAorICAgIGlmIChOZWVkc0ltcGxlbWVu
dGF0aW9uQ2xhc3MoJGludGVyZmFjZSkgJiYgISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRl
cy0+e0N1c3RvbUhlYXBTbmFwc2hvdH0pIHsKKyAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIjxK
YXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+Iik7CisgICAgICAgIEFkZFRvSW1w
bEluY2x1ZGVzKCJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiKTsKKyAgICAgICAgQWRkVG9JbXBs
SW5jbHVkZXMoIlVSTC5oIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2Ns
YXNzTmFtZX06OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXIm
IGJ1aWxkZXIpXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDwke2Ns
YXNzTmFtZX0qPihjZWxsKTtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBi
dWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVk
KCkpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICh0aGlzT2JqZWN0
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0
KFwidXJsICVzXCIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTtcbiIpOworICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CisgICAgfQorCiAgICAgaWYgKCRpbmRleGVkR2V0
dGVyT3BlcmF0aW9uKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IlVSTC5oIn0gPSAxIGlmICRp
bmRleGVkR2V0dGVyT3BlcmF0aW9uLT50eXBlLT5uYW1lIGVxICJET01TdHJpbmciOwogICAgICAg
ICBpZiAoJGludGVyZmFjZU5hbWUgPX4gL15IVE1MXHcqQ29sbGVjdGlvbiQvIG9yICRpbnRlcmZh
Y2VOYW1lIGVxICJSYWRpb05vZGVMaXN0IikgewpAQCAtNDUzMCw3ICs0NTQ4LDcgQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KICAgICB9CiAKICAgICBpZiAoU2hvdWxkR2VuZXJhdGVXcmFw
cGVyT3duZXJDb2RlKCRoYXNQYXJlbnQsICRpbnRlcmZhY2UpICYmICFHZXRDdXN0b21Jc1JlYWNo
YWJsZSgkaW50ZXJmYWNlKSkgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgSlMk
e2ludGVyZmFjZU5hbWV9T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpXG4i
KTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sIEpTJHtpbnRlcmZhY2VOYW1lfU93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29u
KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICMgQWxs
IEFjdGl2ZURPTU9iamVjdHMgaW1wbGVtZW50IGhhc1BlbmRpbmdBY3Rpdml0eSgpLCBidXQgbm90
IGFsbCBvZiB0aGVtCiAgICAgICAgICMgaW5jcmVtZW50IHRoZWlyIEMrKyByZWZlcmVuY2UgY291
bnRzIHdoZW4gaGFzUGVuZGluZ0FjdGl2aXR5KCkgYmVjb21lcwpAQCAtNDU0MywyMyArNDU2MSwy
OSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBpZiAoJGNvZGVHZW5lcmF0
b3ItPkluaGVyaXRzRXh0ZW5kZWRBdHRyaWJ1dGUoJGludGVyZmFjZSwgIkFjdGl2ZURPTU9iamVj
dCIpKSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvKiBqcyR7aW50
ZXJmYWNlTmFtZX0gPSBqc0Nhc3Q8SlMke2ludGVyZmFjZU5hbWV9Kj4oaGFuZGxlLnNsb3QoKS0+
YXNDZWxsKCkpO1xuIik7CiAgICAgICAgICAgICAkZW1pdHRlZEpTQ2FzdCA9IDE7Ci0gICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoanMke2ludGVyZmFjZU5hbWV9LT53cmFw
cGVkKCkuaGFzUGVuZGluZ0FjdGl2aXR5KCkpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIGlmIChqcyR7aW50ZXJmYWNlTmFtZX0tPndyYXBwZWQoKS5oYXNQZW5kaW5n
QWN0aXZpdHkoKSkge1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgaWYgKFVOTElLRUxZKHJlYXNvbikpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICAgICAgICAgKnJlYXNvbiA9IFwiQWN0aXZlRE9NT2JqZWN0IHdpdGggcGVuZGlu
ZyBhY3Rpdml0eVwiO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgcmV0dXJuIHRydWU7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICB9XG4iKTsKICAgICAgICAgfQogICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRz
SW50ZXJmYWNlKCRpbnRlcmZhY2UsICJFdmVudFRhcmdldCIpKSB7CiAgICAgICAgICAgICBpZiAo
ISRlbWl0dGVkSlNDYXN0KSB7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgYXV0byoganMke2ludGVyZmFjZU5hbWV9ID0ganNDYXN0PEpTJHtpbnRlcmZhY2VOYW1lfSo+
KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTtcbiIpOwogICAgICAgICAgICAgICAgICRlbWl0dGVk
SlNDYXN0ID0gMTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIGlmIChqcyR7aW50ZXJmYWNlTmFtZX0tPndyYXBwZWQoKS5pc0ZpcmluZ0V2ZW50TGlz
dGVuZXJzKCkpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChq
cyR7aW50ZXJmYWNlTmFtZX0tPndyYXBwZWQoKS5pc0ZpcmluZ0V2ZW50TGlzdGVuZXJzKCkpIHtc
biIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGlmIChVTkxJS0VM
WShyZWFzb24pKVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAg
ICAgICpyZWFzb24gPSBcIkV2ZW50VGFyZ2V0IGZpcmluZyBldmVudCBsaXN0ZW5lcnNcIjtcbiIp
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xu
Iik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKICAgICAgICAg
fQogICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZh
Y2UsICJOb2RlIikpIHsKICAgICAgICAgICAgIGlmICghJGVtaXR0ZWRKU0Nhc3QpIHsKICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvKiBqcyR7aW50ZXJmYWNlTmFt
ZX0gPSBqc0Nhc3Q8SlMke2ludGVyZmFjZU5hbWV9Kj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkp
O1xuIik7CiAgICAgICAgICAgICAgICAgJGVtaXR0ZWRKU0Nhc3QgPSAxOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKEpTTm9kZU93bmVyOjpp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhoYW5kbGUsIDAsIHZpc2l0b3IpKVxuIik7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoSlNOb2RlT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKGhhbmRsZSwgMCwgdmlzaXRvciwgcmVhc29uKSlcbiIpOwogICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAg
ICAgICAgIH0KICAgICAgICAgaWYgKEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGludGVyZmFjZSkp
IHsKQEAgLTQ1NzEsMzMgKzQ1OTUsNDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAg
ICAgICAgICAgIG15ICRyb290U3RyaW5nOwogICAgICAgICAgICAgaWYgKEdldEdlbmVyYXRlSXNS
ZWFjaGFibGUoJGludGVyZmFjZSkgZXEgIkltcGwiKSB7CiAgICAgICAgICAgICAgICAgJHJvb3RT
dHJpbmcgID0gIiAgICAke2ltcGxUeXBlfSogcm9vdCA9ICZqcyR7aW50ZXJmYWNlTmFtZX0tPndy
YXBwZWQoKTtcbiI7CisgICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICBpZiAoVU5M
SUtFTFkocmVhc29uKSlcbiI7CisgICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICAg
ICAgKnJlYXNvbiA9IFwiUmVhY2hhYmxlIGZyb20gJHtpbnRlcmZhY2VOYW1lfVwiO1xuIjsKICAg
ICAgICAgICAgIH0gZWxzaWYgKEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGludGVyZmFjZSkgZXEg
IkltcGxXZWJHTFJlbmRlcmluZ0NvbnRleHQiKSB7CiAgICAgICAgICAgICAgICAgJHJvb3RTdHJp
bmcgID0gIiAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiByb290ID0gV1RGOjpnZXRQdHIo
anMke2ludGVyZmFjZU5hbWV9LT53cmFwcGVkKCkuY29udGV4dCgpKTtcbiI7CisgICAgICAgICAg
ICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICBpZiAoVU5MSUtFTFkocmVhc29uKSlcbiI7CisgICAg
ICAgICAgICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICAgICAgKnJlYXNvbiA9IFwiUmVhY2hhYmxl
IGZyb20gJHtpbnRlcmZhY2VOYW1lfVwiO1xuIjsKICAgICAgICAgICAgIH0gZWxzaWYgKEdldEdl
bmVyYXRlSXNSZWFjaGFibGUoJGludGVyZmFjZSkgZXEgIkltcGxGcmFtZSIpIHsKICAgICAgICAg
ICAgICAgICAkcm9vdFN0cmluZyAgPSAiICAgIEZyYW1lKiByb290ID0gV1RGOjpnZXRQdHIoanMk
e2ludGVyZmFjZU5hbWV9LT53cmFwcGVkKCkuZnJhbWUoKSk7XG4iOwogICAgICAgICAgICAgICAg
ICRyb290U3RyaW5nIC49ICIgICAgaWYgKCFyb290KVxuIjsKICAgICAgICAgICAgICAgICAkcm9v
dFN0cmluZyAuPSAiICAgICAgICByZXR1cm4gZmFsc2U7XG4iOworICAgICAgICAgICAgICAgICRy
b290U3RyaW5nIC49ICIgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpXG4iOworICAgICAgICAgICAg
ICAgICRyb290U3RyaW5nIC49ICIgICAgICAgICpyZWFzb24gPSBcIlJlYWNoYWJsZSBmcm9tIEZy
YW1lXCI7XG4iOwogICAgICAgICAgICAgfSBlbHNpZiAoR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgk
aW50ZXJmYWNlKSBlcSAiSW1wbERvY3VtZW50IikgewogICAgICAgICAgICAgICAgICRyb290U3Ry
aW5nICA9ICIgICAgRG9jdW1lbnQqIHJvb3QgPSBXVEY6OmdldFB0cihqcyR7aW50ZXJmYWNlTmFt
ZX0tPndyYXBwZWQoKS5kb2N1bWVudCgpKTtcbiI7CiAgICAgICAgICAgICAgICAgJHJvb3RTdHJp
bmcgLj0gIiAgICBpZiAoIXJvb3QpXG4iOwogICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49
ICIgICAgICAgIHJldHVybiBmYWxzZTtcbiI7CisgICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcg
Lj0gIiAgICBpZiAoVU5MSUtFTFkocmVhc29uKSlcbiI7CisgICAgICAgICAgICAgICAgJHJvb3RT
dHJpbmcgLj0gIiAgICAgICAgKnJlYXNvbiA9IFwiUmVhY2hhYmxlIGZyb20gRG9jdW1lbnRcIjtc
biI7CiAgICAgICAgICAgICB9IGVsc2lmIChHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRpbnRlcmZh
Y2UpIGVxICJJbXBsRWxlbWVudFJvb3QiKSB7CiAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRl
c3siRWxlbWVudC5oIn0gPSAxOwogICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTTm9k
ZUN1c3RvbS5oIn0gPSAxOwogICAgICAgICAgICAgICAgICRyb290U3RyaW5nICA9ICIgICAgRWxl
bWVudCogZWxlbWVudCA9IFdURjo6Z2V0UHRyKGpzJHtpbnRlcmZhY2VOYW1lfS0+d3JhcHBlZCgp
LmVsZW1lbnQoKSk7XG4iOwogICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49ICIgICAgaWYg
KCFlbGVtZW50KVxuIjsKICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAuPSAiICAgICAgICBy
ZXR1cm4gZmFsc2U7XG4iOworICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49ICIgICAgaWYg
KFVOTElLRUxZKHJlYXNvbikpXG4iOworICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49ICIg
ICAgICAgICpyZWFzb24gPSBcIlJlYWNoYWJsZSBmcm9tICR7aW50ZXJmYWNlTmFtZX1Pd25lclwi
O1xuIjsKICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAuPSAiICAgIHZvaWQqIHJvb3QgPSBX
ZWJDb3JlOjpyb290KGVsZW1lbnQpO1xuIjsKICAgICAgICAgICAgIH0gZWxzaWYgKEdldEdlbmVy
YXRlSXNSZWFjaGFibGUoJGludGVyZmFjZSkgZXEgIkltcGxPd25lck5vZGVSb290IikgewogICAg
ICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkVsZW1lbnQuaCJ9ID0gMTsKICAgICAgICAgICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJKU05vZGVDdXN0b20uaCJ9ID0gMTsKICAgICAgICAgICAgICAg
ICAkcm9vdFN0cmluZyAgPSAiICAgIHZvaWQqIHJvb3QgPSBXZWJDb3JlOjpyb290KGpzJHtpbnRl
cmZhY2VOYW1lfS0+d3JhcHBlZCgpLm93bmVyTm9kZSgpKTtcbiI7CisgICAgICAgICAgICAgICAg
JHJvb3RTdHJpbmcgLj0gIiAgICBpZiAoVU5MSUtFTFkocmVhc29uKSlcbiI7CisgICAgICAgICAg
ICAgICAgJHJvb3RTdHJpbmcgLj0gIiAgICAgICAgKnJlYXNvbiA9IFwiUmVhY2hhYmxlIGZyb20g
JHtpbnRlcmZhY2VOYW1lfSBvd25lck5vZGVcIjtcbiI7CiAgICAgICAgICAgICB9IGVsc2lmIChH
ZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRpbnRlcmZhY2UpIGVxICJJbXBsU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCIpIHsKICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAgPSAiICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHJvb3QgPSBXVEY6OmdldFB0cihqcyR7aW50ZXJmYWNlTmFtZX0tPndy
YXBwZWQoKS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpO1xuIjsKICAgICAgICAgICAgICAgICAk
cm9vdFN0cmluZyAuPSAiICAgIGlmICghcm9vdClcbiI7CiAgICAgICAgICAgICAgICAgJHJvb3RT
dHJpbmcgLj0gIiAgICAgICAgcmV0dXJuIGZhbHNlO1xuIjsKKyAgICAgICAgICAgICAgICAkcm9v
dFN0cmluZyAuPSAiICAgIGlmIChVTkxJS0VMWShyZWFzb24pKVxuIjsKKyAgICAgICAgICAgICAg
ICAkcm9vdFN0cmluZyAuPSAiICAgICAgICAqcmVhc29uID0gXCJSZWFjaGFibGUgZnJvbSBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0XCI7XG4iOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICAkcm9vdFN0cmluZyAgPSAiICAgIHZvaWQqIHJvb3QgPSBXZWJDb3JlOjpyb290KCZq
cyR7aW50ZXJmYWNlTmFtZX0tPndyYXBwZWQoKSk7XG4iOworICAgICAgICAgICAgICAgICRyb290
U3RyaW5nIC49ICIgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpXG4iOworICAgICAgICAgICAgICAg
ICRyb290U3RyaW5nIC49ICIgICAgICAgICpyZWFzb24gPSBcIlJlYWNoYWJsZSBmcm9tIGpzJHtp
bnRlcmZhY2VOYW1lfVwiO1xuIjsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICRyb290U3RyaW5nKTsKQEAgLTQ2MDcsNiArNDY0Nyw3IEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7XG4iKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTtcbiIpOworICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7XG4i
KTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBmYWxzZTtcbiIp
OwogICAgICAgICB9CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29u
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KaW5k
ZXggYTk5OTFjMjg0YmZkZmUxODA5ZTcwYmRkMzc4MWFhMDcwZmQxYzQyYi4uNzNmZTdhMjVmOWNk
MTlkY2FjN2UzNTc0M2ZlNmZmNWZmZmFlMjFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KQEAgLTExOCw2ICsxMTgsOSBAQAog
ICAgICAgICAiQ3VzdG9tR2V0dGVyIjogewogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6
IFsiYXR0cmlidXRlIl0KICAgICAgICAgfSwKKyAgICAgICAgIkN1c3RvbUhlYXBTbmFwc2hvdCI6
IHsKKyAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImludGVyZmFjZSJdCisgICAgICAg
IH0sCiAgICAgICAgICJDdXN0b21JbmRleGVkU2V0dGVyIjogewogICAgICAgICAgICAgImNvbnRl
eHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIl0KICAgICAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5hbWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTSW50ZXJmYWNlTmFtZS5j
cHAKaW5kZXggZDhjMTBhMmE5Yjg5YWYwOTBmOGZhMmVkZmQxMzRlNDFmMTY5ZDA2MC4uMTE3OTU4
NzUzNTFiZjJlMzYzYzkxNGVkZDc0MTM1MWI3NDJhMjlhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTSW50ZXJmYWNlTmFtZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTSW50ZXJmYWNlTmFtZS5j
cHAKQEAgLTI1LDcgKzI1LDEwIEBACiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0
cnVjdGFibGUuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVk
ZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgiCisjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Q
cm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVy
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0
Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMTY4
LDEwICsxNzEsMjAgQEAgc2l6ZV90IEpTSW50ZXJmYWNlTmFtZTo6ZXN0aW1hdGVkU2l6ZShKU0Nl
bGwqIGNlbGwsIFZNJiB2bSkKICAgICByZXR1cm4gQmFzZTo6ZXN0aW1hdGVkU2l6ZSh0aGlzT2Jq
ZWN0LCB2bSkgKyB0aGlzT2JqZWN0LT53cmFwcGVkKCkubWVtb3J5Q29zdCgpOwogfQogCi1ib29s
IEpTSW50ZXJmYWNlTmFtZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQor
dm9pZCBKU0ludGVyZmFjZU5hbWU6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFw
c2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxK
U0ludGVyZmFjZU5hbWUqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JD
ZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxs
KGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBCYXNlOjpo
ZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNJbnRlcmZhY2VOYW1lT3du
ZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4g
aGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24p
CiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3Ip
OworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTSW50ZXJm
YWNlTmFtZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTSW50
ZXJmYWNlTmFtZS5oCmluZGV4IDlkZGJiYzNlOGRkOGE2OTAzYmM2ZmQyM2ZlOTRkOTNhOGM0MzZi
ZjQuLmM2MGE5MTc3NTg2YzYzYjgwMmIyODNlNThhM2MwZmEwNzg0YTYwOTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5hbWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNJbnRlcmZh
Y2VOYW1lLmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTVmFs
dWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsK
ICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIEpTQzo6U2xvdFZpc2l0b3Im
KTsKIAorICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFw
c2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoKICAgICBKU0ludGVyZmFjZU5hbWUoSlNDOjpTdHJ1
Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxJbnRlcmZhY2VOYW1lPiYmKTsKIApAQCAt
NjAsNyArNjEsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTSW50ZXJmYWNlTmFtZU93bmVyIDog
cHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wg
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9p
ZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNN
YXBMaWtlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01h
cExpa2UuY3BwCmluZGV4IDc2MWJiZjQ2ZDlhNmU0MTYwYjU2NzIxNGZhOTU2Mjk1ODU3YjY0OWUu
LjZkN2ZhYTJiNzdkYWQ2YTQ3M2QwOWNhNmZmMjliMzg5NmM1YzRhMmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExpa2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExpa2UuY3BwCkBA
IC0zMCw4ICszMCwxMSBAQAogI2luY2x1ZGUgIkpTRE9NTWFwTGlrZS5oIgogI2luY2x1ZGUgIkpT
RE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRl
ICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvQnVpbHRpbk5hbWVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
RnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNo
b3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5o
PgpAQCAtMzM3LDEwICszNDAsMjAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc01h
cExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZShFeGVjU3RhdGUqIHN0YXRlKQogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNNYXBMaWtlPjo6Y2FsbDxqc01hcExpa2VQcm90b3R5cGVGdW5jdGlv
bkRlbGV0ZUJvZHk+KCpzdGF0ZSwgImRlbGV0ZSIpOwogfQogCi1ib29sIEpTTWFwTGlrZU93bmVy
Ojppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhh
bmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU01hcExpa2U6OmhlYXBT
bmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7Cisg
ICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU01hcExpa2UqPihjZWxsKTsKKyAgICBidWls
ZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkp
OworICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAg
IGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0
aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisK
K2Jvb2wgSlNNYXBMaWtlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNv
bnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5V
U0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVy
biBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTTWFwTGlrZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTTWFwTGlrZS5oCmluZGV4IGQ4MDQwMmQ4NGY2Y2NjOThlNGVlMmQwZjFlMmMzOTg0
MmVlODc4ZjkuLjIwNmNkMmVmMjNmNTFmZjI2NmRkOTQ4Zjg2YjAxMDRiODcwOWMyMTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExpa2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtl
LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpT
VmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3Qq
KTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNo
b3RCdWlsZGVyJik7CiBwcm90ZWN0ZWQ6CiAgICAgSlNNYXBMaWtlKEpTQzo6U3RydWN0dXJlKiwg
SlNET01HbG9iYWxPYmplY3QmLCBSZWY8TWFwTGlrZT4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAg
cHJvdGVjdGVkOgogCiBjbGFzcyBKU01hcExpa2VPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5k
bGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xv
dFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRv
ciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5TWFwTGlr
ZS5jcHAKaW5kZXggYzUyZDEwMWY0YjAxMDBlNzczZmU2N2I1MmQ5NjExYWM4M2UwNjU3OS4uMDA4
ZGNlYmE0MmM2ZDRjNmZiMmM5YTkxM2ZmYjZkMzNmZDBmMWM4MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1h
cExpa2UuY3BwCkBAIC0zMCw4ICszMCwxMSBAQAogI2luY2x1ZGUgIkpTRE9NTWFwTGlrZS5oIgog
I2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUu
aCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiVVJMLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQnVpbHRpbk5hbWVzLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5s
aW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclBy
ZXBhcmF0aW9ucy5oPgpAQCAtMjg2LDEwICsyODksMjAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChFeGVjU3Rh
dGUKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTUmVhZE9ubHlNYXBMaWtlPjo6Y2FsbDxqc1Jl
YWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHk+KCpzdGF0ZSwgImZvckVh
Y2giKTsKIH0KIAotYm9vbCBKU1JlYWRPbmx5TWFwTGlrZU93bmVyOjppc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1JlYWRPbmx5TWFwTGlrZTo6aGVhcFNuYXBzaG90KEpT
Q2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEpTUmVhZE9ubHlNYXBMaWtlKj4oY2VsbCk7CisgICAgYnVpbGRl
ci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsK
KyAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICBi
dWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhp
c09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCiti
b29sIEpTUmVhZE9ubHlNYXBMaWtlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAg
ICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAg
IHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuaAppbmRleCBlMmRjNzlmM2U0
MzU1OGU5M2U1NmEzNTAzNTA5MzIxZmZkMjViYjFkLi5iNmZiYjIwYmM3ZTcxY2ZjZDg1MThmNGU1
NTA5Njc4Nzk1YTVlNGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuaApAQCAtNDksNiArNDksNyBA
QCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3Rv
cihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lk
IGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHByb3Rl
Y3RlZDoKICAgICBKU1JlYWRPbmx5TWFwTGlrZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFs
T2JqZWN0JiwgUmVmPFJlYWRPbmx5TWFwTGlrZT4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJv
dGVjdGVkOgogCiBjbGFzcyBKU1JlYWRPbmx5TWFwTGlrZU93bmVyIDogcHVibGljIEpTQzo6V2Vh
a0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlND
OjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RW
aXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RB
Y3RpdmVET01PYmplY3QuY3BwCmluZGV4IDdkNDkwN2QxNWZkMmRkYjZjN2JjMzg4N2IwZGY1Y2Zk
NGQ4NGJmOGIuLjYyOTE2ZDM2YmI1NWE2OTMyMjYyZmZhNTVkYzI0Y2U2ZWUzYmU4NjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3Rp
dmVET01PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCkBAIC0zMiw3ICszMiwxMCBAQAogI2luY2x1
ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNp
bmNsdWRlICJKU05vZGUuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisj
aW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5
cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMjQ3LDEwICsy
NTAsMjAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RBY3RpdmVET01PYmpl
Y3RQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdlKEUKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdEFjdGl2ZURPTU9iamVjdD46OmNhbGw8anNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90
eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZUJvZHk+KCpzdGF0ZSwgInBvc3RNZXNzYWdlIik7CiB9CiAK
LWJvb2wgSlNUZXN0QWN0aXZlRE9NT2JqZWN0T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3Im
IHZpc2l0b3IpCit2b2lkIEpTVGVzdEFjdGl2ZURPTU9iamVjdDo6aGVhcFNuYXBzaG90KEpTQ2Vs
bCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlz
T2JqZWN0ID0ganNDYXN0PEpTVGVzdEFjdGl2ZURPTU9iamVjdCo+KGNlbGwpOworICAgIGJ1aWxk
ZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7
CisgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAg
YnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRo
aXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKwor
Ym9vbCBKU1Rlc3RBY3RpdmVET01PYmplY3RPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYg
dmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxl
KTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmgKaW5k
ZXggMGRkODMzZjc0OWUwNTBhYzNlZDg1YWZmYjViYWViYTZkYmQxZWJlOC4uZjIyNDYzM2VhZDE4
MDFiNDcwZGExYmYwNWIyOWYwMjQzMWYyYWJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmpl
Y3QuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6
SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVj
dCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFw
c2hvdEJ1aWxkZXImKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0
dXJlRmxhZ3MgPSBKU0M6Okhhc1N0YXRpY1Byb3BlcnR5VGFibGUgfCBCYXNlOjpTdHJ1Y3R1cmVG
bGFnczsKIHByb3RlY3RlZDoKQEAgLTU5LDcgKzYwLDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBK
U1Rlc3RBY3RpdmVET01PYmplY3RPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7
CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3Im
KTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0
IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5r
bm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHAKaW5k
ZXggODM3NDBiZjc5NTEwN2FmNDJjMDM2MTY4ZDYxMDc1Y2Q1MDQzMDJmYi4uNjQwNmJlOTk5MDNk
MTRjMWIxNzEwOGI4ZmEzZDEyOTJlMWZjOTA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnMuY3Bw
CkBAIC0zMyw3ICszMywxMCBAQAogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVk
ZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJKU1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUg
IlVSTC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+Cisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTQyNywxMCArNDMwLDIwIEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RD
RVJlYWN0aW9ucz46OmNhbGw8anNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZEJvZHk+KCpzdGF0ZSwgIm1ldGhvZFdpdGhDRVJlYWN0
aW9uc05vdE5lZWRlZCIpOwogfQogCi1ib29sIEpTVGVzdENFUmVhY3Rpb25zT3duZXI6OmlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2
b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdENFUmVhY3Rpb25zOjpoZWFw
U25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQorewor
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0Q0VSZWFjdGlvbnMqPihjZWxsKTsK
KyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53
cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1
cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRl
cik7Cit9CisKK2Jvb2wgSlNUZXN0Q0VSZWFjdGlvbnNPd25lcjo6aXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90Vmlz
aXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0o
aGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJl
YXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5oCmluZGV4
IGU3ZjgwMWZjZGM0ODJlYmMyZmZlYmJhOGZkMzNjNGE2ZjhmN2I0YmIuLjhhYzk5YzllOGE1NDI4
NGU1NGZkMjg1YWVjOTBjZDM4NWQ5MDYwYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5oCkBAIC00
OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdl
dENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAg
c3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRl
ciYpOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdENFUmVhY3Rpb25zKEpTQzo6U3RydWN0dXJlKiwg
SlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdENFUmVhY3Rpb25zPiYmKTsKIApAQCAtNTcsNyAr
NTgsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdENFUmVhY3Rpb25zT3duZXIgOiBwdWJs
aWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1Jl
YWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBj
b250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQs
IEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5h
bGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcAppbmRleCA4ZWYyMGYz
NTJlNzBjZDZiZWMyNzUzNzllOGJjNWM2ZmRkNzA3ZGNmLi5hZGFkMDQ5YjE0YzRhYTVmMjVhZWFk
OTQ2MGIxYzJiZmE2MTkyMjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3Ry
aW5naWZpZXIuY3BwCkBAIC0yOSw3ICsyOSwxMCBAQAogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9u
SGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9N
V3JhcHBlckNhY2hlLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2lu
Y2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBl
Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTI1NiwxMCArMjU5
LDIwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q0VSZWFjdGlvbnNTdHJp
bmdpZmllclByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpCiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyPjo6Y2FsbDxqc1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZ0JvZHk+KCpzdGF0ZSwgInRvU3RyaW5nIik7
CiB9CiAKLWJvb2wgSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllck93bmVyOjppc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCos
IFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVy
OjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVy
KQoreworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0Q0VSZWFjdGlvbnNTdHJp
bmdpZmllcio+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2Vs
bCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwg
U3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgIEJhc2U6OmhlYXBTbmFw
c2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5r
bm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiBy
ZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZp
c2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmgKaW5kZXggNjNiM2Ux
NjMxMzlhNmQ4YzZkNjc4N2NhNWM4NWUxYjAzMDJkYWE0Yy4uMDVjMWVkYjNlYjg4NzM0OTFkNjhm
Y2E1NzFlMmI4ZTRkM2RkMjVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJp
bmdpZmllci5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMg
SlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVh
cFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdENFUmVhY3Rpb25zU3Ry
aW5naWZpZXIoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0Q0VS
ZWFjdGlvbnNTdHJpbmdpZmllcj4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVkOgog
CiBjbGFzcyBKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyT3duZXIgOiBwdWJsaWMgSlNDOjpX
ZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBK
U0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xv
dFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxs
VHJhY2VyLmNwcAppbmRleCAzMzBhMmNlYzdlMDMxZWNhYmYzNWU2OTJmNDMzN2YyYjE1NTFhODVh
Li40NjFjNGQ5NmE1ZjM5MGRjOGYxOTAwOTVjYjc0NTY0YTcxMDdhNzIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENh
bGxUcmFjZXIuY3BwCkBAIC0zNiw3ICszNiwxMCBAQAogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9u
LmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJKU05vZGUuaCIK
KyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiVVJMLmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtNTIwLDEwICs1MjMsMjAgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0
T3BlcmF0aW9uV2l0aEQKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENhbGxUcmFjZXI+
OjpjYWxsPGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRo
RGVmYXVsdFZhcmlhbnRBcmd1bWVudEJvZHk+KCpzdGF0ZSwgInRlc3RPcGVyYXRpb25XaXRoRGVm
YXVsdFZhcmlhbnRBcmd1bWVudCIpOwogfQogCi1ib29sIEpTVGVzdENhbGxUcmFjZXJPd25lcjo6
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5k
bGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0Q2FsbFRyYWNlcjo6
aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikK
K3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdENhbGxUcmFjZXIqPihjZWxs
KTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0
LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpCisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0
KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVp
bGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0Q2FsbFRyYWNlck93bmVyOjppc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RW
aXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNFRF9QQVJB
TShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0o
cmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5oCmluZGV4
IGRkNzVhMTcyNThhYTNiOGIzMzlmNjg0OWU1ZmJjMTdjMzQxOTU2MDcuLmM3YmNhMWYxOWYxM2Ri
ZGI5ZWU2YzkyZDM5NzFjYjU1OWYxYmE0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuaApAQCAtNDks
NiArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRD
b25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0
YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXIm
KTsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RDYWxsVHJhY2VyKEpTQzo6U3RydWN0dXJlKiwgSlNE
T01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdENhbGxUcmFjZXI+JiYpOwogCkBAIC01Nyw3ICs1OCw3
IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0Q2FsbFRyYWNlck93bmVyIDogcHVibGljIEpT
Qzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFi
bGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4
dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6
OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NX
aXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAppbmRl
eCBiOGIzMTAxYzk5YjE3M2RjZDM1NzQ2NzI0NzU0YTE2MGY0M2E2ZTRmLi4xZGIwYTMyZDU1ZTVj
YjdjMGY5NGM4NWYyYWZjOWM5ODJiMmViMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKQEAgLTI1LDggKzI1LDExIEBACiAj
aW5jbHVkZSAiSlNET01CdWlsdGluQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2Vw
dGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRl
ICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiVGVzdENsYXNzV2l0aEpTQnVp
bHRpbkNvbnN0cnVjdG9yQnVpbHRpbnMuaCIKKyNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJ
bmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVy
UHJlcGFyYXRpb25zLmg+CkBAIC0xNjAsMTAgKzE2MywyMCBAQCBib29sIHNldEpTVGVzdENsYXNz
V2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZAogICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotYm9v
bCBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvck93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1
Y3Rvcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVp
bGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdENsYXNzV2l0aEpT
QnVpbHRpbkNvbnN0cnVjdG9yKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0
Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBpZiAodGhpc09iamVj
dC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICBidWlsZGVyLnNldExhYmVsRm9y
Q2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgQmFz
ZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdENsYXNzV2l0
aEpTQnVpbHRpbkNvbnN0cnVjdG9yT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAg
ICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAg
IHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNC
dWlsdGluQ29uc3RydWN0b3IuaAppbmRleCAwNjFiMjNhZjIzZGFjMDYxYmRlMTZmNTA5ODI0MDYx
MzM2NTEyYTc5Li4xNjZlZTczYjBmYzhmODNjYTY1ZjhkZDM0ZjIzYzBjZGIyN2JiNzNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xh
c3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuaApA
QCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1
ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwor
ICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1
aWxkZXImKTsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1
Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RDbGFzc1dp
dGhKU0J1aWx0aW5Db25zdHJ1Y3Rvcj4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVk
OgogCiBjbGFzcyBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvck93bmVyIDogcHVi
bGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNS
ZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCog
Y29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0
LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmlu
YWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5v
SW50ZXJmYWNlT2JqZWN0LmNwcAppbmRleCA4NGY4ZGYyMDllMTE1Y2U4M2Q4ODQ1MzIzOWYzMjE3
ODY2ZjhiOTU4Li5lMWY5ZjE3MGE2Y2Q3MjNkYmU5NTU4NGRjZjVmYWQwNDI0MmNlZTg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3Vz
dG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhO
b0ludGVyZmFjZU9iamVjdC5jcHAKQEAgLTI1LDcgKzI1LDEwIEBACiAjaW5jbHVkZSAiSlNET01D
b25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNs
dWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKKyNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlv
blByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxk
ZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8
d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0x
NTgsMTAgKzE2MSwyMCBAQCBib29sIHNldEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50
ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZQogICAgIHJldHVybiBwcm90
b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotYm9vbCBKU1Rlc3RDdXN0b21Db25zdHJ1
Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQordm9pZCBKU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVj
dDo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRl
cikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEN1c3RvbUNvbnN0cnVj
dG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Kj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVk
T2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBpZiAodGhp
c09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICBidWlsZGVyLnNldExh
YmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7Cisg
ICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdEN1
c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0T3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BB
UkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJB
TShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0
aE5vSW50ZXJmYWNlT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuaAppbmRl
eCBkM2IyYjA1MjExY2E0ODIxMzY4MzlmNmYzNmY1MDY4Njg3NDQ2ZTFkLi40Y2RlMmU5YmQwMmYz
ODViNjU2MmE2NDU3NDEwNTM3NmY2NTAzNDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRl
cmZhY2VPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuaApAQCAtNDgs
NiArNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKKyAgICBzdGF0aWMgdm9pZCBo
ZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwcm90ZWN0
ZWQ6CiAgICAgSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QoSlND
OjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0Q3VzdG9tQ29uc3RydWN0
b3JXaXRoTm9JbnRlcmZhY2VPYmplY3Q+JiYpOwogCkBAIC01Niw3ICs1Nyw3IEBAIHByb3RlY3Rl
ZDoKIAogY2xhc3MgSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RP
d25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVh
bCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wg
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9p
ZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVh
bCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQp
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdERPTUpJVC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RE9NSklULmNwcAppbmRleCA5Mzg3MmE2YTAxZDdkZWViZjhkYjM3NTQ5Y2Ji
ZDBmMDg4MzQ5ZTljLi43NmM0MGZiMDQ1Nzk1MDNlYTViNTJjNDdlMDQ5NjBkYjIxOTk5ZjNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RE9NSklULmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RE9NSklULmNwcApAQCAtNDAsNyArNDAsMTAgQEAKICNpbmNsdWRlICJKU0RPTVdyYXBw
ZXJDYWNoZS5oIgogI2luY2x1ZGUgIkpTRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTTm9kZUxpc3Qu
aCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiVVJMLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnJhbWVUcmFjZXJzLmg+CisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTEyNTgsNSArMTI2MSwxNCBAQCBKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gdW5zYWZlSnNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rp
b25HZXRFbGVtZW50cwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZh
Y2U8Tm9kZUxpc3Q+Pigqc3RhdGUsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC5n
ZXRFbGVtZW50c0J5TmFtZShXVEZNb3ZlKGVsZW1lbnROYW1lKSkpKTsKIH0KIAordm9pZCBKU1Rl
c3RET01KSVQ6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXIm
IGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RET01KSVQq
PihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlz
T2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpCisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6
Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVy
bCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2Vs
bCwgYnVpbGRlcik7Cit9CisKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5oCmluZGV4IDBiNzgxZTYyZTNiZTJmMjFi
Mzg5MTcwZGFkZjJlY2QzMWVmMDFlMjAuLjM1ZmIxMjZlYzRjNmU5YTUxOGY4YzhmNDE5NzIwMTZk
NDg0MTMwZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RET01KSVQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RE9NSklULmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIH0K
IAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0
IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlND
ZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiAgICAgVGVzdERPTUpJVCYgd3JhcHBl
ZCgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGVzdERPTUpJVCY+
KEJhc2U6OndyYXBwZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAKaW5k
ZXggZDk5OTAzMmVmMmU3YTJjMzExNDhjMTg3YTljOTVhN2RlOWE4YjgyNi4uODdiMzUzYzViNTk4
NTg5ZDU5MDJiNzBlNjRmMzkwNzIxZmE5MmM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlT
ZXR0aW5nLmNwcApAQCAtMjksOSArMjksMTIgQEAKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5o
IgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAiSlNUZXN0U3ViT2Jq
LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNldHRp
bmdzLmgiCisjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5o
IgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTI5NCwxMCArMjk3LDIwIEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZUZ1
bmN0aW9uRW5hYmxlZEJ5U2V0CiAKICNlbmRpZgogCi1ib29sIEpTVGVzdEVuYWJsZWRCeVNldHRp
bmdPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0RW5h
YmxlZEJ5U2V0dGluZzo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVp
bGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEVu
YWJsZWRCeVNldHRpbmcqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JD
ZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxs
KGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBCYXNlOjpo
ZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0RW5hYmxlZEJ5U2V0
dGluZ093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiog
cmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2
aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFbmFibGVkQnlTZXR0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5oCmluZGV4IDlmZjM3MDUxZTBhMTE1ZjZi
ODE2ZGQ2MjI3YTFlMzQwOWZlODNhY2UuLmNhMWViYjYzZWVhNzg0ODgyMjMzYWU1YTY1ZTQ3MDI2
MGY5Y2YyYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuaApAQCAtNDksNiArNDks
NyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1
Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2
b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHB1
YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Okhh
c1N0YXRpY1Byb3BlcnR5VGFibGUgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHByb3RlY3RlZDoK
QEAgLTU5LDcgKzYwLDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RFbmFibGVkQnlTZXR0
aW5nT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZp
cnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBi
b29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4s
IHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZp
cnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAppbmRleCA4ZjFm
OWI0ZmM5NDU0MjQ4ZDc5MWZmOWQwN2ZhMzU5NWEwNTJkN2NkLi41NWRlYThlZWFiMDdmNzUwNWYx
YTZiZGZjYzI0MWI2NzFjYmRlYTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3Iu
Y3BwCkBAIC0yOSw2ICsyOSw5IEBACiAjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgog
I2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBw
ZXJDYWNoZS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRl
ICJVUkwuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9H
ZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMzAzLDYg
KzMwNiwxNSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjMoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpcwogCiAjZW5kaWYKIAordm9pZCBKU1Rl
c3RFdmVudENvbnN0cnVjdG9yOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNo
b3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNU
ZXN0RXZlbnRDb25zdHJ1Y3Rvcio+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVj
dEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgaWYgKHRoaXNPYmpl
Y3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZv
ckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgIEJh
c2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKwogI2lmIEVOQUJMRShCSU5ESU5H
X0lOVEVHUklUWSkKICNpZiBQTEFURk9STShXSU4pCiAjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTog
NDQ4MykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCmluZGV4IGUxMDRjZWRkN2Y5ODE4
YWNlZTE5OTBmMGE3MGI0YTc4MTdkNmZiNDMuLjk3NTUzNjBlMjZhOGMxNzQ4ZWY4ZGUwYTk1Y2Ex
ZjBkYzc4NTg4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaApAQCAtNDksNiAr
NDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25z
dHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRp
YyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsK
ICAgICBUZXN0RXZlbnRDb25zdHJ1Y3RvciYgd3JhcHBlZCgpIGNvbnN0CiAgICAgewogICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8VGVzdEV2ZW50Q29uc3RydWN0b3ImPihCYXNlOjp3cmFwcGVk
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKaW5kZXggMTdmM2QwM2YwYmQ0YTc3MGYxZTll
ODYyOTlhMDUxZWZjMDhkNDFlYy4uMzA4ZTM0ZjAwMWFjMmQ4YjM1M2U4MDUxZDhlYzUxYmJhZGQ2
ZWUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCkBAIC0zMSw2ICszMSw5IEBACiAjaW5j
bHVkZSAiSlNET01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgog
I2luY2x1ZGUgIkpTTm9kZS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIK
KyNpbmNsdWRlICJVUkwuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RC
dWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1Byb3BlcnR5TmFtZUFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0dl
dFB0ci5oPgpAQCAtMjQ2LDYgKzI0OSwxNSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25JdGVtKEV4ZWNTdGF0ZSogcwogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0RXZlbnRUYXJnZXQ+OjpjYWxsPGpzVGVzdEV2ZW50
VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25JdGVtQm9keT4oKnN0YXRlLCAiaXRlbSIpOwogfQogCit2
b2lkIEpTVGVzdEV2ZW50VGFyZ2V0OjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25h
cHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
SlNUZXN0RXZlbnRUYXJnZXQqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RG
b3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JD
ZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBCYXNl
OjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKICNpZiBFTkFCTEUoQklORElOR19J
TlRFR1JJVFkpCiAjaWYgUExBVEZPUk0oV0lOKQogI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQ0
ODMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCmluZGV4IDlhYzIyMjAwZDg4YjM5ZTA0MjU2ZjI0NDc5
YzVmNzc3ZjE4ZWViZGEuLmViODYzOTU1ZTVjNDlmZjk5YTA0NTEwNTBmNzRkNDZmMTEyNDk5MmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCkBAIC01Myw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICB9
CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25z
dCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpT
Q2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogICAgIFRlc3RFdmVudFRhcmdldCYg
d3JhcHBlZCgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGVzdEV2
ZW50VGFyZ2V0Jj4oQmFzZTo6d3JhcHBlZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKaW5kZXgg
MzQ4MTkwZTkzYjFmZDU4Y2FjMGRiYjVlNTBhNjA2MWFiNjM1MWMxNi4uMjM4YTQ4ZjdjNjVmMGQz
Y2I2ZjFlMDNmN2EyOWU5ZTgyOWViY2JjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKQEAgLTI3
LDcgKzI3LDEwIEBACiAjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUg
IkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5o
IgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJVUkwuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0xNzcsMTAgKzE4MCwyMCBAQCBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25OYW1lKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUAogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RXhjZXB0aW9u
Pjo6Z2V0PGpzVGVzdEV4Y2VwdGlvbk5hbWVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpzdGF0ZSwgdGhpc1ZhbHVlLCAibmFtZSIpOwogfQogCi1ib29sIEpTVGVzdEV4
Y2VwdGlvbk93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rl
c3RFeGNlcHRpb246OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxk
ZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RFeGNl
cHRpb24qPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGws
ICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpCisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0
cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNo
b3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0RXhjZXB0aW9uT3duZXI6OmlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2
b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAg
VU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVO
VVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlv
bi5oCmluZGV4IDU5YzhkNGMyYWY3ZDE5YTYxOTcyYmI3YjFjNTkxNzViY2I4Yzk3MTUuLmFiMjVk
ZTc1MDM4Mjk3OGEwMGM1ZTA5NGI4NDYzYjVkNzMxZjdkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmgK
QEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFs
dWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsK
KyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RC
dWlsZGVyJik7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0RXhjZXB0aW9uKEpTQzo6U3RydWN0dXJl
KiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdEV4Y2VwdGlvbj4mJik7CiAKQEAgLTU4LDcg
KzU5LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RFeGNlcHRpb25Pd25lciA6IHB1Ymxp
YyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNv
bnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVG
cm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwg
SlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFs
aXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCmluZGV4IDcwOGVmNjZkNjkxMjBi
OTk3OGRjYzk5ODQ1NGQwYzQzMmRjYzI1MjUuLjM0MjM4YmM1ZDIxM2VjNDk5ZmJlNWEyNTVjNTYx
OGYzMDY4NWIyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAK
QEAgLTI4LDcgKzI4LDkgQEAKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAj
aW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgiCisjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVu
Y3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RC
dWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpA
QCAtMTgzLDEwICsxODUsMjEgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZUFTZWNyZXRBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2QKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+OjpnZXQ8anNUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZUFTZWNyZXRBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpzdGF0ZSwgdGhpc1ZhbHVlLCAiYVNlY3JldEF0dHJpYnV0ZSIpOwogfQog
Ci1ib29sIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90Vmlz
aXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6aGVhcFNuYXBz
aG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBh
dXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqPihjZWxs
KTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0
LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpCisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0
KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVp
bGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZU93bmVyOjppc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9p
ZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIGF1
dG8qIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUgPSBqc0Nhc3Q8SlNUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICBUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZSogcm9vdCA9ICZqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLT53cmFwcGVkKCk7Cisg
ICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICpyZWFzb24gPSAiUmVhY2hhYmxlIGZy
b20gVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUiOwogICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5z
T3BhcXVlUm9vdChyb290KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
LmgKaW5kZXggYzc4OGNlMWNjYjdhNjNhY2E4YWRmNGIzMDRhNmM0YjZkYzg2YTkzNy4uMDA2NTAy
MzUwMWQzZTgzNjg0ODJjYjhlYTZhOGI3YjJkZDg4MmU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZS5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAg
ICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6
OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCos
IEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGUoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZT4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVk
OgogCiBjbGFzcyBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlT3duZXIgOiBwdWJsaWMgSlNDOjpX
ZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBK
U0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xv
dFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEds
b2JhbE9iamVjdC5jcHAKaW5kZXggNTYxZDUxNDcxYmRlZjM3M2YyZWYxYTZmODNmNjE4MzIwNjA3
YjQ3Ni4uYmRhMzJjMzdiMDQ0YmZiZDczNDZiNzI3MGE2Y2FiNDQ4OGM4NGVhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEdsb2JhbE9iamVjdC5jcHAKQEAgLTM0LDggKzM0LDEwIEBACiAjaW5jbHVkZSAiSlNET01X
cmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1
ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5j
dGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1
aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVk
ZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBA
IC01NjgsMTAgKzU3MCwyMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEds
b2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlYwogCiAjZW5kaWYKIAot
Ym9vbCBKU1Rlc3RHbG9iYWxPYmplY3RPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlz
aXRvcikKK3ZvaWQgSlNUZXN0R2xvYmFsT2JqZWN0OjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxs
LCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8SlNUZXN0R2xvYmFsT2JqZWN0Kj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFw
cGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBpZiAo
dGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICBidWlsZGVyLnNl
dExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7
CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVz
dEdsb2JhbE9iamVjdE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25z
dCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNF
RF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuaAppbmRleCBmZTI2MWY1YWUxMGE2ZDA1
ZDg1ODM1YzkzNjAzZjFkNGZkZTMyMjgxLi43ZmQ0ODc1MGMxZGY0Y2MyNzVhYTU2ZGVlN2E0MjM5
MDYxNDg1NDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5oCkBAIC01MSw2ICs1MSw3IEBAIHB1
YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpT
Qzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVh
cFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHVibGljOgog
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6SGFzU3RhdGlj
UHJvcGVydHlUYWJsZSB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgpAQCAtNjEs
NyArNjIsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdEdsb2JhbE9iamVjdE93bmVyIDog
cHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wg
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9p
ZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKaW5k
ZXggZWZkMThjOWI2MDk4Y2JkODI1ZjQyMDhkZDIwNjRlZmUwN2NhZGVmNS4uNjYwNzhiZDZjYjUx
MWUxZDJmNDY4ODgyNTgyYTdmOTFmYmMwNmJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcApAQCAtMjYsOCArMjYsMTAgQEAKICNpbmNsdWRl
ICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGlu
Zy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNu
YXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9wZXJ0eU5hbWVBcnJheS5oPgogI2luY2x1ZGUg
PHd0Zi9HZXRQdHIuaD4KQEAgLTI0NiwxMCArMjQ4LDIwIEBAIGJvb2wgc2V0SlNUZXN0SW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1ib29s
IEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90Vmlz
aXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6aGVh
cFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sK
KyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXIqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGws
ICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpCisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0
cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNo
b3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRp
Zmllck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiog
cmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2
aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5oCmluZGV4
IDg2NmM0MTU5NTNhMGU4YTNjZGUyOGM5NDY2ZWNiMmJmYTBlOGJlYTAuLmI3YWE5OThjODY4YmI2
ZGRhNDZhZTMwMGFjZmRmYTUzNGZiMTljNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXIuaApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgfQog
CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3Qg
SlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0Nl
bGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0
eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0
cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgpAQCAtNjUsNyArNjYsNyBAQCBwcm90ZWN0ZWQ6CiAK
IGNsYXNzIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJPd25lciA6IHB1YmxpYyBKU0M6
OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQs
IEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpT
bG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAppbmRl
eCAwMTE5ZTZiZWE3YTkzN2Q1YTI2MTVhOTJmOTVjNzFlZTg0OGU3ZjgyLi42MjAzY2MwYjk4NzM5
MjQ3N2ExZDliZjdiNTcwY2JlMzdjMTBlMzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcApAQCAtMjYsOCArMjYsMTAgQEAK
ICNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRp
b25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCisjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lu
bGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9wZXJ0eU5hbWVBcnJheS5oPgog
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KQEAgLTI0NiwxMCArMjQ4LDIwIEBAIGJvb2wgc2V0SlNU
ZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwog
fQogCi1ib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbk93bmVyOjppc1Jl
YWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwg
dm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RJbmRleGVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb246OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1
aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJ
bmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24qPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdy
YXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlm
ICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIGJ1aWxkZXIu
c2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkp
KTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNU
ZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9w
YXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFN
KGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShy
ZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oCmluZGV4IDA4OGM0YmJmMDNkODhmNjJi
ZTYwZmY1NjkxYzJkZDQ5Y2NlZTNjM2MuLjI5YWQyYmU2N2MxNTdjOWJiYzUzOTEwNTRkYzVkNDY1
NTg4Zjc2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93
aW5nRXhjZXB0aW9uLmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0
YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlND
OjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0
eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVG
bGFnczsKIHByb3RlY3RlZDoKQEAgLTY1LDcgKzY2LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBK
U1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Pd25lciA6IHB1YmxpYyBKU0M6Oldl
YWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpT
Qzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90
VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAppbmRleCA4YzI5NzRl
OGVkYjQ0OGVhYzZmOTc4OTJiOGU3NWY0N2JhNDQzNGZlLi4zZmRjNTYwNDAzNTBlMTMyMWRiMjQ2
OTdiNzI3MjU1N2RkMWE5MDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyLmNwcApAQCAtMjgsOCArMjgsMTAgQEAKICNpbmNsdWRlICJKU0RP
TUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01PcGVyYXRpb24uaCIKICNpbmNs
dWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlv
blByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxk
ZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRy
Lmg+CkBAIC0yNzgsMTAgKzI4MCwyMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uSQogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyPjo6Y2Fs
bDxqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4
ZWRTZXR0ZXJCb2R5Pigqc3RhdGUsICJpbmRleGVkU2V0dGVyIik7CiB9CiAKLWJvb2wgSlNUZXN0
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3Im
IHZpc2l0b3IpCit2b2lkIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6aGVhcFNu
YXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAg
ICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllcio+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwg
JnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3Ry
aW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hv
dChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioq
IHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0o
dmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmgK
aW5kZXggODNlYmY1Mjk5ZTk4ZWY5NGY3ZjlmZDhjNGNmNzE5MTQ4MWNjMjhkMC4uMDQwZGZhYWFl
MGM1NDU1NWMyNWEwMDRmZTdmOTFmMjhiNDkwYTEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuaApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6
CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZN
JiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFw
c2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHB1YmxpYzoKICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6OkludGVyY2VwdHNHZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8
IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgpAQCAtNjUsNyArNjYsNyBAQCBwcm90
ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllck93bmVyIDog
cHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wg
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9p
ZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbnRlcmZhY2UuY3BwCmluZGV4IGI3ZGVlMWE4ZWFmYTRkOTRjOWExODg5OGZlMTI5
NDcwMjRjNWUyMDIuLjRjNjRjMTllYjg1ODI2MDI5ZjYwYjkyNWIzMTllMTFhNzAzZDk0ZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbnRlcmZhY2UuY3BwCkBAIC0zMiw4ICszMiwxMSBAQAogI2luY2x1ZGUgIkpTRE9N
RXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1
ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oIgogI2luY2x1ZGUgIlRlc3RTdXBwbGVtZW50YWwuaCIKKyNpbmNsdWRlICJVUkwuaCIKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC05ODQsMTIgKzk4NywyNSBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25TdXBw
bGVtZW50YWxNZXRobwogCiAjZW5kaWYKIAotYm9vbCBKU1Rlc3RJbnRlcmZhY2VPd25lcjo6aXNS
ZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUs
IHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0SW50ZXJmYWNlOjpoZWFw
U25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQorewor
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oY2VsbCk7Cisg
ICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3Jh
cHBlZCgpKTsKKyAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQor
ICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJs
ICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIp
OworfQorCitib29sIEpTVGVzdEludGVyZmFjZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9y
JiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIGF1dG8qIGpzVGVzdEludGVy
ZmFjZSA9IGpzQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7
Ci0gICAgaWYgKGpzVGVzdEludGVyZmFjZS0+d3JhcHBlZCgpLmhhc1BlbmRpbmdBY3Rpdml0eSgp
KQorICAgIGlmIChqc1Rlc3RJbnRlcmZhY2UtPndyYXBwZWQoKS5oYXNQZW5kaW5nQWN0aXZpdHko
KSkgeworICAgICAgICBpZiAoVU5MSUtFTFkocmVhc29uKSkKKyAgICAgICAgICAgICpyZWFzb24g
PSAiQWN0aXZlRE9NT2JqZWN0IHdpdGggcGVuZGluZyBhY3Rpdml0eSI7CiAgICAgICAgIHJldHVy
biB0cnVlOworICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9Q
QVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCmlu
ZGV4IGJlOTRkYzVjM2I2YzE4OTliODU0ZTY3OTdmODM4ZTMxYjIyMWMxOWEuLmE1NWE0ZTFhZWE0
MjZkZTE2YTdiOGFjYjIyNzYxNjljOGQ0YjVjYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKQEAgLTUz
LDYgKzUzLDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0
Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBz
dGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVy
Jik7CiAKICAgICAvLyBDdXN0b20gYXR0cmlidXRlcwogI2lmIEVOQUJMRShDb25kaXRpb24yMikg
fHwgRU5BQkxFKENvbmRpdGlvbjIzKQpAQCAtODMsNyArODQsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNs
YXNzIEpTVGVzdEludGVyZmFjZU93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsK
IHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYp
OworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3Qg
Y2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVy
ZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNwcAppbmRleCAxMWE3OGQ3OTQzYWNlMTRjNThjOThjN2Yw
NWEyYWIxMjAwNTZmYmI3Li41NWZmZDY3YTE1MGZlMzJjNWVkYTM1ZTMyZDI0NmY2OTMyZThlYmFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5j
cHAKQEAgLTI3LDcgKzI3LDEwIEBACiAjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgog
I2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBw
ZXJDYWNoZS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRl
ICJVUkwuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0xNzcsMTAgKzE4MCwyMCBA
QCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZVJlYWRvbmx5
KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZQogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmU+OjpnZXQ8anNUZXN0SW50ZXJmYWNlTGVhZGluZ1Vu
ZGVyc2NvcmVSZWFkb25seUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KnN0YXRlLCB0aGlzVmFsdWUsICJyZWFkb25seSIpOwogfQogCi1ib29sIEpTVGVzdEludGVyZmFj
ZUxlYWRpbmdVbmRlcnNjb3JlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3Ip
Cit2b2lkIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlOjpoZWFwU25hcHNob3QoSlND
ZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUqPihjZWxs
KTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0
LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpCisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0
KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVp
bGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVPd25lcjo6
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5k
bGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsK
ICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7Cisg
ICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlTGVhZGluZ1VuZGVyc2NvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5oCmluZGV4IGNkMjA2Y2Ez
MWIwMDMwMDAxNTZhZWNlNmQ4OTEzOTU4YzMzMjVjYjMuLjRjYzhkOGM3MjhjZGQ4OTg5MzRjMmUw
YTVjY2Y4YzIxMWJhMTc2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFk
aW5nVW5kZXJzY29yZS5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBz
dGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpT
R2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpT
Qzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdEludGVyZmFj
ZUxlYWRpbmdVbmRlcnNjb3JlKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBS
ZWY8VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlPiYmKTsKIApAQCAtNTcsNyArNTgsNyBA
QCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlT3du
ZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwg
Ym9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlz
UmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQq
IGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwg
dm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJdGVyYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwCmluZGV4IDc4YzNmZjkyMTc5MWQxNWJmMDBhZDFmZmE0
ZjBhYzgxMDFiZWIwMDguLjk3OWMwZjhjYzViYWQ4NDZmMDk2MWNiZGEyNjRlMGNiNzZjMTgzMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJdGVyYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEl0ZXJhYmxlLmNwcApAQCAtMjcsOCArMjcsMTEgQEAKICNpbmNsdWRlICJKU0RP
TUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNET01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RP
TVdyYXBwZXJDYWNoZS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNp
bmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9CdWlsdGluTmFtZXMuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0yMzAsMTAgKzIzMywyMCBAQCBKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlv
bkZvckVhY2goSlNDOjpFeAogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SXRlcmFibGU+
OjpjYWxsPGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQ2FsbGVyPigqc3Rh
dGUsICJmb3JFYWNoIik7CiB9CiAKLWJvb2wgSlNUZXN0SXRlcmFibGVPd25lcjo6aXNSZWFjaGFi
bGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQq
LCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0SXRlcmFibGU6OmhlYXBTbmFwc2hv
dChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0
byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJdGVyYWJsZSo+KGNlbGwpOworICAgIGJ1aWxk
ZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7
CisgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAg
YnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRo
aXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKwor
Ym9vbCBKU1Rlc3RJdGVyYWJsZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9y
LCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAg
IFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmgKaW5kZXggNDYzMGQ3ZTI4NmEwNzgxZTU2
ZTEyMTY4MTZjN2FlMDExNDM2Y2VjMS4uNjQ4OWYyNjEwMGM3Y2Y2N2VkNThjOGEzNmUyOWE1NDBk
ZTlhMDA2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEl0ZXJhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAg
IH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNv
bnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3Qo
SlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwcm90ZWN0ZWQ6CiAgICAgSlNU
ZXN0SXRlcmFibGUoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0
SXRlcmFibGU+JiYpOwogCkBAIC01Nyw3ICs1OCw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNU
ZXN0SXRlcmFibGVPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6
Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7
CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZv
aWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuY3BwCmluZGV4IGUwZDgzODk4Y2M5OTI1ZDQzOWE2NjI0YTkzNDdkNTBkOTVhNzg3MzUu
LjUwYWRhOGNhZjBlZTZkMDJiYWRhODAxYjBiNjk4YWVlOTU5ZDkzNjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKQEAgLTI5LDcgKzI5LDEwIEBACiAj
aW5jbHVkZSAiSlNET01PcGVyYXRpb24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5o
IgogI2luY2x1ZGUgIkpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIgorI2luY2x1ZGUgIlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hl
YXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVz
Lmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFy
YXRpb25zLmg+CkBAIC0xODYsMTAgKzE4OSwyMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGVGdW5jdGlvbk1ldGhvZAog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj46OmNh
bGw8anNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kQm9k
eT4oKnN0YXRlLCAibWV0aG9kIik7CiB9CiAKLWJvb2wgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25h
cHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcio+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3Jh
cHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgaWYg
KHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgYnVpbGRlci5z
ZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3Qt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkp
OworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZp
c2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7
CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwog
ICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmgKaW5kZXggZDM0YmJkZTU3NjczMmU0M2Y0YjY2MzNmYzc3MTFiOTEwNWFkZjM2MS4u
ZDAzNzVlM2FmNzdmZWIxMzNkNzRkNDhlMjFkODRkYTI5ZjE1ZTlhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoK
ICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0m
LCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBz
aG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAg
IEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2Jh
bE9iamVjdCYsIFJlZjxUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4mJik7CiAKQEAgLTU3LDcg
KzU4LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
T3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1
YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29s
IGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZv
aWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1
YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0
KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllci5jcHAKaW5kZXggMTdjZjdlNTAzNGQyMjYyYjU4MGYzMDI1MDgzYmQy
ZTIxMjBhYWI4MS4uMzE4N2QyZGFmM2Q2ZTcyMWU3ZTAwODVmMjdjY2IyMmYyYjQxZGFmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRl
bnRpZmllci5jcHAKQEAgLTI3LDggKzI3LDEwIEBACiAjaW5jbHVkZSAiSlNET01Db252ZXJ0U3Ry
aW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJK
U0RPTVdyYXBwZXJDYWNoZS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIK
ICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3Rv
dHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CkBA
IC0zMTIsMTAgKzMxNCwyMCBAQCBib29sIHNldEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5v
SWRlbnRpZmllckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuYwogICAgIHJldHVybiBw
cm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotYm9vbCBKU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlz
aXRvcikKK3ZvaWQgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpoZWFw
U25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQorewor
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2Vs
bChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBpZiAodGhpc09iamVjdC0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChj
ZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgQmFzZTo6aGVh
cFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9y
LCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAg
IFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuaAppbmRleCAyYjgyYjA5MjdlZWMxMTk0ZjYxMTUxMzZh
ZjBlNDlhZjllNzU0N2E4Li4xMDM5MGQ5NzI2MjZhOTQ0YjM5MTAwNzBiZDRhMTZiY2FkMjEzYzFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5v
SWRlbnRpZmllci5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0
aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6
SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9w
ZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZl
bldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwog
cHJvdGVjdGVkOgpAQCAtNjUsNyArNjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllck93bmVyIDogcHVibGljIEpTQzo6V2Vha0hh
bmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpT
bG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNp
dG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9u
LmNwcAppbmRleCBkM2MzMjRhMmQwYjkwZjZhYTc5NzhjMzkyNzU5NTVhMmEyYWFjM2VkLi5kMjcx
OTRlODNlNmFjNzc2NTMxYTlkYjc3MzBmMDU3NGMyZGZhZTFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bi5jcHAKQEAgLTI3LDggKzI3LDEwIEBACiAjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5o
IgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdy
YXBwZXJDYWNoZS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNs
dWRlICJVUkwuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5o
PgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CkBAIC0zMTIs
MTAgKzMxNCwyMCBAQCBib29sIHNldEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5n
RXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZQogICAgIHJldHVybiBwcm90b3R5
cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbk93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhK
U0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQordm9pZCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6
aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikK
K3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2Jq
ZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBpZiAodGhpc09i
amVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICBidWlsZGVyLnNldExhYmVs
Rm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAg
QmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9w
YXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFN
KGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShy
ZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaAppbmRleCAz
Y2RiNmRjN2NmMGFmMzc3ZGVlYzExZjBkZGNlOGUyMjAyZDQ4MDQyLi4xYmZkNzRjNDg2Y2ZlMjE3
NDkwZTMxZjFlNzM2ZmY0YmExMmE0NDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaApAQCAtNTUsNiAr
NTUsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25z
dHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRp
YyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsK
IHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6
OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRl
cmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwg
SlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3Bl
cnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHByb3RlY3RlZDoKQEAgLTY1LDcgKzY2
LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbk93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1Ymxp
YzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAg
IHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioq
KTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwg
dm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAppbmRleCA5OTU3NGIyMDU0N2Ez
MDFmM2IyNzQyNDliYjMxMmI5YmY1YmJlOWI3Li5iMWYzNmQ3M2UwMzVhZmU3OGVmZTkzMmIxNGRm
OTNjZWZmYmE0ZGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKQEAgLTI5LDggKzI5LDEwIEBACiAjaW5j
bHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9u
LmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25h
cHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Byb3BlcnR5TmFtZUFycmF5Lmg+CiAjaW5jbHVkZSA8
d3RmL0dldFB0ci5oPgpAQCAtMzY2LDEwICszNjgsMjAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlw
ZUYKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyPjo6Y2FsbDxqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
ZmllclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlckJvZHk+KCpzdGF0ZSwgImluZGV4ZWRT
ZXR0ZXIiKTsKIH0KIAotYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVu
a25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCog
Y2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKj4o
Y2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09i
amVjdC0+d3JhcHBlZCgpKTsKKyAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKQorICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZv
cm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGws
IGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIq
KiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFN
KHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
V2l0aElkZW50aWZpZXIuaAppbmRleCBkZGNiNjU1ZGE5YjkwYjIzNTAxNTZlYTAyOTJmMDM5OGE5
ZjIyOTNjLi43ZTg4Y2Y0ZDQxZDcyNWQ0MGI5ZmY5ZDE5NTFmZWY1MWIxODg3MjY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXIuaApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpT
Qzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9i
amVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBT
bmFwc2hvdEJ1aWxkZXImKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlB
YnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVu
TGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6
Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHByb3Rl
Y3RlZDoKQEAgLTY1LDcgKzY2LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllck93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRs
ZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90
VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhK
U0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9y
JiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggZTNjZTQyMTkxNzMzOTcyZTAyYmNmNjQwNGNjZTZmMzlmY2Q1
NjYzZC4uOTI5OGExNzYwYzA4MzUyNjZjNDJlYjY2NDg2NGJmNjQ0ODJjN2IzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcApAQCAtMjgsNyArMjgsMTAgQEAKICNpbmNsdWRl
ICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01OYW1lZENvbnN0cnVj
dG9yLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFw
U25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5o
PgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0
aW9ucy5oPgpAQCAtMTk3LDEyICsyMDAsMjUgQEAgYm9vbCBzZXRKU1Rlc3ROYW1lZENvbnN0cnVj
dG9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1YKICAg
ICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0
cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLWJvb2wgSlNUZXN0
TmFtZWRDb25zdHJ1Y3Rvck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQor
dm9pZCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBI
ZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcio+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3Jh
cHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgaWYg
KHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgYnVpbGRlci5z
ZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3Qt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkp
OworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rl
c3ROYW1lZENvbnN0cnVjdG9yT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3Is
IGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgYXV0byoganNUZXN0TmFtZWRDb25zdHJ1Y3Rv
ciA9IGpzQ2FzdDxKU1Rlc3ROYW1lZENvbnN0cnVjdG9yKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxs
KCkpOwotICAgIGlmIChqc1Rlc3ROYW1lZENvbnN0cnVjdG9yLT53cmFwcGVkKCkuaGFzUGVuZGlu
Z0FjdGl2aXR5KCkpCisgICAgaWYgKGpzVGVzdE5hbWVkQ29uc3RydWN0b3ItPndyYXBwZWQoKS5o
YXNQZW5kaW5nQWN0aXZpdHkoKSkgeworICAgICAgICBpZiAoVU5MSUtFTFkocmVhc29uKSkKKyAg
ICAgICAgICAgICpyZWFzb24gPSAiQWN0aXZlRE9NT2JqZWN0IHdpdGggcGVuZGluZyBhY3Rpdml0
eSI7CiAgICAgICAgIHJldHVybiB0cnVlOworICAgICB9CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0
b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgKaW5kZXggNTczMmJjMGU0NDdkZTE4MGJmMDgw
MGJhMmYyMzMyOWRmOTdlMjZiZS4uMjVjNTFiZDdhZjNmYmY4YWE2NDM0YmVkNmM1MzNlY2RmZDMw
YjJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCkBAIC01MCw2ICs1MCw3IEBA
IHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpW
TSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVl
IGdldE5hbWVkQ29uc3RydWN0b3IoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAg
ICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWls
ZGVyJik7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvcihKU0M6OlN0cnVj
dHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3ROYW1lZENvbnN0cnVjdG9yPiYmKTsK
IApAQCAtNTgsNyArNTksNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5hbWVkQ29uc3Ry
dWN0b3JPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAg
dmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFs
IGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
Piwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAg
dmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNv
bnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlm
aWVyLmNwcAppbmRleCA1MjRhNjAzNDhlMjk5OGE0Y2FlN2E3MDQ4YTYwYTc1OGUxNmYyM2FhLi41
N2Q2N2MyMzRlMjZiNGRkZDA5NDdlNDAyZWY4OWI0NTAyYjZkZDQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9J
ZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmNwcApAQCAtMjcsNyArMjcsMTAgQEAK
ICNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRp
b25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCisjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lu
bGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQ
cmVwYXJhdGlvbnMuaD4KQEAgLTIyNSwxMCArMjI4LDIwIEBAIGJvb2wgc2V0SlNUZXN0TmFtZWRE
ZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpT
VmFsCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1ib29s
IEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNp
dG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXI6OmhlYXBT
bmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7Cisg
ICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZp
ZXIqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0
aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpCisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmlu
Zzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3Qo
Y2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVy
T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFz
b24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0
b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5oCmluZGV4IGZjOTNl
ODAyYTAxMWVkMDQ5MmVlZmZmYzIzYWJkMWI0ZjBjMzRjMmQuLjI0NzlmNGY4YzhiMWRjNTQ3OWRi
MTA5M2M3Mjk3MTA1YzVhNWI0OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVy
Tm9JZGVudGlmaWVyLmgKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0
YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlND
OjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclBy
b3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhF
dmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90
IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7
CiBwcm90ZWN0ZWQ6CkBAIC02NCw3ICs2NSw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0
TmFtZWREZWxldGVyTm9JZGVudGlmaWVyT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3du
ZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNp
dG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBj
b25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4
Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCmluZGV4IGUwN2M5YTFhYWM4NzM5
N2E3MjIxZmUwZDY5NmU3MzU5YWFlMGI2MDAuLmQwZmNkMmYyYjkwMzI0OTViNGI2NThiZTliMzFi
N2ZlNTVhMDg4NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRo
cm93aW5nRXhjZXB0aW9uLmNwcApAQCAtMjcsNyArMjcsMTAgQEAKICNpbmNsdWRlICJKU0RPTUNv
bnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2lu
Y2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oIgorI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0
aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVp
bGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRl
IDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAg
LTIzOSwxMCArMjQyLDIwIEBAIGJvb2wgc2V0SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNl
cHRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkCiAgICAgcmV0dXJuIHBy
b3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1ib29sIEpTVGVzdE5hbWVkRGVsZXRl
clRocm93aW5nRXhjZXB0aW9uT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3Ip
Cit2b2lkIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uOjpoZWFwU25hcHNob3Qo
SlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8q
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24q
PihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlz
T2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpCisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6
Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVy
bCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2Vs
bCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRp
b25Pd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJl
YXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlz
aXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5o
CmluZGV4IGNkZTExYzY4MTk1MDg3MjIxZWVlMzZkZDUxZTY1MzVkYWQyODYxODQuLjdiZGU5YjE4
OTY0YWMyYTcyZmQwZTM5ODE5NDMyZjdkZjY5YTdlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4
Y2VwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oCkBAIC01NCw2ICs1NCw3IEBAIHB1
YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpT
Qzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVh
cFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHVibGljOgog
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6R2V0T3duUHJv
cGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8
IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgpAQCAtNjQsNyArNjUsNyBAQCBwcm90
ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uT3duZXIg
OiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9v
bCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2
b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNv
bnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9p
ZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuY3Bw
CmluZGV4IDZhNTk3NDE2ZWUzNDAzMDY2ZGNkYzk4Y2NlZGRmMzBkZTg5NzU0NTMuLjI1MTQxMGI1
ZmFlZjcwMDRjMDExNjY2NmZjZThlMWU5MGEzMzc5YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRp
Zmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcApAQCAtMjgsNyArMjgsMTAgQEAKICNp
bmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01PcGVyYXRp
b24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBT
bmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+
CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRp
b25zLmg+CkBAIC0yNTYsMTAgKzI1OSwyMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYQogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXI+Ojpj
YWxsPGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW1l
ZERlbGV0ZXJCb2R5Pigqc3RhdGUsICJuYW1lZERlbGV0ZXIiKTsKIH0KIAotYm9vbCBKU1Rlc3RO
YW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQordm9pZCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcjo6aGVhcFNuYXBz
aG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBh
dXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVy
Kj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhp
c09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKQorICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6
OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51
cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNl
bGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVy
T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFz
b24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0
b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuaAppbmRleCAw
MTQxNzA4Mzk1MDQ1YjZmNmJjZDUxYTMzMWYwOTE1YjJmODNmZDgyLi40ZWYzZWMxODc4OGM0MGFm
YzdhYzI2Yzk0OTdiMzdkMDY3YmFiMWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRE
ZWxldGVyV2l0aElkZW50aWZpZXIuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAgfQog
CiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3Qg
SlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0Nl
bGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1w
dXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90
QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1
cmVGbGFnczsKIHByb3RlY3RlZDoKQEAgLTY0LDcgKzY1LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFz
cyBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllck93bmVyIDogcHVibGljIEpTQzo6V2Vh
a0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlND
OjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RW
aXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVy
V2l0aEluZGV4ZWRHZXR0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcAppbmRleCAxZjgz
YTlhNjdiYTg4NTYxZTNmZmQyMTIyMTFmNzAyN2I0ZmRjNTY0Li4yNzU4Y2ExMGExNDEyYzQxMzli
MzI1ODRmM2NmOTJiNDAzYWJiMDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKQEAgLTI3LDggKzI3LDEwIEBACiAjaW5jbHVk
ZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxp
bmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBT
bmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRl
IDx3dGYvR2V0UHRyLmg+CkBAIC0yNDMsMTAgKzI0NSwyMCBAQCBib29sIHNldEpTVGVzdE5hbWVk
RGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZAogICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotYm9v
bCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlck93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdl
dHRlcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVp
bGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkRGVsZXRl
cldpdGhJbmRleGVkR2V0dGVyKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0
Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBpZiAodGhpc09iamVj
dC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICBidWlsZGVyLnNldExhYmVsRm9y
Q2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgQmFz
ZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdE5hbWVkRGVs
ZXRlcldpdGhJbmRleGVkR2V0dGVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAg
ICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAg
IHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVy
V2l0aEluZGV4ZWRHZXR0ZXIuaAppbmRleCAxNTNkYjdlY2EzMDZjMjg2NDMwYzA4ZTZjNzQzNGJi
ZWU3ZjEwZTE3Li5iM2Q1MDE3ODczNDYzNTNlNDc5ZDdmNjI2MTc5YjNhMTcxNzczMWU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuaApA
QCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1
ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwor
ICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1
aWxkZXImKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwg
SlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNO
b3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRl
c0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHByb3RlY3RlZDoKQEAg
LTY0LDcgKzY1LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SW5kZXhlZEdldHRlck93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1Ymxp
YzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAg
IHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioq
KTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwg
dm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0
aC5jcHAKaW5kZXggNWQzNGI3Yjg5MWI0ZWRiNTY4NzkyOGVlMTkzMTNlODE2YmI5MmUwNC4uY2Ey
YmY2MTJhY2JjMmZkNGUwNDRhMTU5YTc2NDY3ZTVhYWNhYjliMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdp
dGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZEdldHRlckNhbGxXaXRoLmNwcApAQCAtMjcsNyArMjcsMTAgQEAKICNpbmNsdWRlICJK
U0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5o
IgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBz
aG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNp
bmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMu
aD4KQEAgLTIwNCwxMCArMjA3LDIwIEBAIGJvb2wgc2V0SlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0
aENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoCiAgICAgcmV0
dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3Rv
ciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1ib29sIEpTVGVzdE5hbWVk
R2V0dGVyQ2FsbFdpdGhPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3Zv
aWQgSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aDo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwg
SGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0g
anNDYXN0PEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgqPihjZWxsKTsKKyAgICBidWlsZGVyLnNl
dFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAg
IGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIGJ1aWxk
ZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2Jq
ZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wg
SlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2
aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUp
OwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0
aC5oCmluZGV4IDZiZDJlOGRmODc5OTcwYjJkNWJmZDhmNjg2ZmJlY2Y4NDY5YzdlZjMuLjM2ZGIw
MTc5OGM2MDFjOWNlZTg4OTg0MmRkYmNlYzhiMzM5M2U3ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRo
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkR2V0dGVyQ2FsbFdpdGguaApAQCAtNTIsNiArNTIsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAg
ICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlND
OjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwq
LCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJl
Rm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0
eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVG
bGFnczsKIHByb3RlY3RlZDoKQEAgLTYyLDcgKzYzLDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBK
U1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3du
ZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNp
dG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBj
b25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRHZXR0ZXJOb0lkZW50aWZpZXIuY3BwCmluZGV4IDliMGM0YjcxY2ZhN2Y1NWUyODE0ZDA2ZmQ2
YzA5ODNmNTgwY2ZkZmEuLjkxMjBmNGJlN2YyMWI3OGQyYzliZmYyZGIxNzI1YTk0OTc0YmZjZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcApAQCAt
MjcsNyArMjcsMTAgQEAKICNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVk
ZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hl
LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlVSTC5o
IgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTIwNCwxMCArMjA3LDIwIEBAIGJvb2wg
c2V0SlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1CiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1
ZSkpOwogfQogCi1ib29sIEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyT3duZXI6OmlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2
b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVu
dGlmaWVyOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBi
dWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRHZXR0
ZXJOb0lkZW50aWZpZXIqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JD
ZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxs
KGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBCYXNlOjpo
ZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0TmFtZWRHZXR0ZXJO
b0lkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3Qg
Y2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURf
UEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5oCmlu
ZGV4IDczMTgwZDVlMmJiMDQxMzJkMDg3MTRmMjU0ZWFlNjllYjc1NTdjYWUuLmQzN2M4M2Y4MGI3
Yzc5ZWU5OWViMzIyNmI1OTFkNTQwNmZmODhlYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZEdldHRlck5vSWRlbnRpZmllci5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICB9CiAK
ICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2Vs
bCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHVibGljOgogICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1
cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzOwogcHJvdGVjdGVkOgpAQCAtNjIsNyArNjMsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNz
IEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFu
ZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNs
b3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0
b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJ
ZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcAppbmRleCBjNzUyZmQwMGM5YTA5ZWRh
NzViYmY0OThjYzYzZDZjNzgwZjU0NjM3Li4zYmI3ZDNiN2UxMmY4MjljODhjMzQ0YmFiZGI0ODY4
MjJmNTdjYmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50
aWZpZXIuY3BwCkBAIC0yOCw3ICsyOCwxMCBAQAogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFu
ZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV3Jh
cHBlckNhY2hlLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1
ZGUgIlVSTC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTIzMiwxMCArMjM1LDIw
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRl
bnRpZmllclByb3RvdHlwZUZ1bmN0aW9uR2V0CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyPjo6Y2FsbDxqc1Rlc3ROYW1lZEdldHRlcldpdGhJ
ZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25HZXR0ZXJOYW1lQm9keT4oKnN0YXRlLCAiZ2V0dGVy
TmFtZSIpOwogfQogCi1ib29sIEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJPd25lcjo6
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5k
bGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0TmFtZWRHZXR0ZXJX
aXRoSWRlbnRpZmllcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVp
bGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5h
bWVkR2V0dGVyV2l0aElkZW50aWZpZXIqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRP
YmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlz
T2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIGJ1aWxkZXIuc2V0TGFi
ZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAg
ICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0TmFt
ZWRHZXR0ZXJXaXRoSWRlbnRpZmllck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhK
U0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNp
dG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwog
ICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRo
SWRlbnRpZmllci5oCmluZGV4IGY1N2I5ZDVmYzZlMzk3NTRkNzEwNThhNjdhMThhM2QzMDQ5Y2Qz
NzEuLjBkNTVmZWYyMzQ0ODUwMTNmOGQ3NjFjM2MxOWIzZjI3MGI0OWVkYzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRl
cldpdGhJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuaApAQCAtNTIsNiArNTIsNyBA
QCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3Rv
cihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lk
IGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6OkdldE93
blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRz
R2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFt
ZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHByb3RlY3RlZDoKQEAgLTYyLDcgKzYzLDcgQEAg
cHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyT3duZXIg
OiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9v
bCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2
b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNv
bnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9p
ZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCmluZGV4
IDQ4YzA3MTEzYTRjNDVkNDFlYTM1MGM0YmIyYmJhNjdmZjhmMWE4YzUuLmNiZDVkMzFhNjI2N2Vh
MWVlMjVkZTA5MTRkNjE0NjhiZmNkOTI1YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyTm9JZGVudGlmaWVyLmNwcApAQCAtMjcsNyArMjcsMTAgQEAKICNpbmNsdWRlICJKU0RP
TUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgog
I2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgorI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1
bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90
QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNs
dWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4K
QEAgLTI2NiwxMCArMjY5LDIwIEBAIGJvb2wgc2V0SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZp
ZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1CiAgICAgcmV0dXJu
IHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3Rvciwg
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1ib29sIEpTVGVzdE5hbWVkU2V0
dGVyTm9JZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2
b2lkIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyOjpoZWFwU25hcHNob3QoSlNDZWxsKiBj
ZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIqPihjZWxsKTsKKyAgICBi
dWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVk
KCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAg
ICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMi
LCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9
CisKK2Jvb2wgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVG
cm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBT
bG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURf
UEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BB
UkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50
aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlck5vSWRlbnRpZmllci5oCmluZGV4IDQ1NDRjNTE1NTljZjc5NTMzMDRjNDZjNjQ2
NmFiYzdjMzkzNzgwZjAuLjYzNzU3MGYyMTZlZTM4MzI1NWJjODliNGUyOGVlOWZmMjYwYWVkNTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5oCkBAIC01NSw2
ICs1NSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENv
bnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3Rh
dGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYp
OwogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpT
Qzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6Oklu
dGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8g
fCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJv
cGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgpAQCAtNjUsNyAr
NjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVy
T3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1
YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29s
IGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZv
aWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1
YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0
KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uLmNwcAppbmRleCAyYjdkYzk1YTg5ZDEzNGMxNTRiYjM1MTY1YzU2NjU0NmUxMjg5MDg4
Li45ZmNiZjY5N2I2MzlhZTAzZGRjMGViYjIwODNjZTc5OWY3Mzg4MzUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCkBAIC0yNyw3
ICsyNywxMCBAQAogI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKICNpbmNsdWRlICJK
U0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIK
KyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiVVJMLmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMjY2LDEwICsyNjksMjAgQEAgYm9vbCBzZXRK
U1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEoKICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnBy
b3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7
CiB9CiAKLWJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbk93bmVyOjppc1Jl
YWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwg
dm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3ROYW1lZFNldHRlclRocm93
aW5nRXhjZXB0aW9uOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWls
ZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFt
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBl
ZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgaWYgKHRo
aXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgYnVpbGRlci5zZXRM
YWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwor
ICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RO
YW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3Im
IHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRs
ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24p
OwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uLmgKaW5kZXggZWY0YTI2ZDkwMDFmNjBkYWEwNTkyMDMyYzYx
YWI2NTYzMjAwYTkwMS4uNWIxNzEzYzBjZjJiZmUxYTEyMTRiNzZmYjUyNzE2OGViM2VhMzQ5MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5o
CkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1Zh
bHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90
QnVpbGRlciYpOwogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2Ug
fCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJ
c05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJp
ZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgpA
QCAtNjUsNyArNjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5hbWVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb25Pd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJs
aWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIq
Kik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4s
IHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVy
V2l0aElkZW50aWZpZXIuY3BwCmluZGV4IGU2NTllYjM0NzUzOGZkN2M3NWM0OTU5NzMxMTI5ZDUz
OWViZWZkMTUuLmI4YTlmYWRlODViNGU5ODdjNzA1MmEwMjlhOWRkOGZjZGE2ZDMyNTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKQEAgLTI4
LDcgKzI4LDEwIEBACiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1
ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKKyNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiVVJMLmgiCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMjk3LDEwICszMDAsMjAgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBl
RnVuY3Rpb25OYW0KICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0
aElkZW50aWZpZXI+OjpjYWxsPGpzVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5
cGVGdW5jdGlvbk5hbWVkU2V0dGVyQm9keT4oKnN0YXRlLCAibmFtZWRTZXR0ZXIiKTsKIH0KIAot
Ym9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6
OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIp
Cit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJ
ZGVudGlmaWVyKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChj
ZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxs
LCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgQmFzZTo6aGVhcFNu
YXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElk
ZW50aWZpZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hh
cioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFS
QU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuaApp
bmRleCBiYzg4NWIzY2E5NTcyODQ2N2IxYTViNzNhYmU1NjIyM2EwY2M4NjU2Li4wZWM0NWY0MGY0
NGUwZTI3MmZlMmMzNjczNjY2ZTM3YmU2ZTFkOTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAg
IH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNv
bnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3Qo
SlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJ
c0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5
U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3Ry
dWN0dXJlRmxhZ3M7CiBwcm90ZWN0ZWQ6CkBAIC02NSw3ICs2Niw3IEBAIHByb3RlY3RlZDoKIAog
Y2xhc3MgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllck93bmVyIDogcHVibGljIEpTQzo6
V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVG
cm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwg
SlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNs
b3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKaW5kZXggNjRh
NWNhNjMyNTk4NjU3OTQxZDc1NjUyZTMzOTJiNmNjNmQ3MTZkOS4uMTcxNDc3NTUwYjBjMzg0NTk1
NjJmNmE3NWMyZTgzZDgzMTVkYjkyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmNwcApAQCAtMjksOCArMjksMTAgQEAKICNpbmNsdWRl
ICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01PcGVyYXRpb24uaCIK
ICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9G
dW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hv
dEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYv
R2V0UHRyLmg+CkBAIC0zNDAsMTAgKzM0MiwyMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbgog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
cj46OmNhbGw8anNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZUZ1bmN0
aW9uSW5kZXhlZFNldHRlckJvZHk+KCpzdGF0ZSwgImluZGV4ZWRTZXR0ZXIiKTsKIH0KIAotYm9v
bCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxk
ZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldp
dGhJbmRleGVkR2V0dGVyKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9y
Q2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBpZiAodGhpc09iamVjdC0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2Vs
bChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgQmFzZTo6
aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwg
Y29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBV
TlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXIuaAppbmRleCAyZjI0NTIwZmJmMTlmZWEwNDBlMTEyZmU3OWUwMzE0NGQyM2E4
MDJhLi5kYmViZTRjNDg2Mjg0NTdmMTk0ZjEwYzQ4MDdhMzUxYzFkNmE3MjdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmgKQEAgLTU1LDYg
KzU1LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29u
c3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0
aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7
CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlND
OjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50
ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8
IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlkZXNHZXRQcm9w
ZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiBwcm90ZWN0ZWQ6CkBAIC02NSw3ICs2
Niw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlck93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2
aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwg
Ym9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2
aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29u
dGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5jcHAKaW5kZXggY2NjZGViMTI3NjBlYjM5NGYw
NTliZTg3ZTQ4MDczZDRkNDg4Y2RlOC4uMTAzZjkxYzFiYWEyYWEzOWYxZTM5OWFhZmVjZTU4MTE5
MTExNmRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
cldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcApAQCAtMjksOCArMjksMTAgQEAKICNpbmNs
dWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01PcGVyYXRpb24u
aCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFw
c2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvcGVydHlOYW1lQXJyYXkuaD4KICNpbmNsdWRlIDx3
dGYvR2V0UHRyLmg+CkBAIC0zOTAsMTAgKzM5MiwyMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5
cAogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlckFuZFNldHRlcj46OmNhbGw8anNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFu
ZFNldHRlclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlck92ZXJsb2FkRGlzcGF0Y2hlcj4o
KnN0YXRlLCAiaW5kZXhlZFNldHRlciIpOwogfQogCi1ib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlz
aXRvcikKK3ZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcjo6
aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikK
K3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmpl
Y3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2Jq
ZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxG
b3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBC
YXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNp
dG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVOVVNFRF9QQVJBTSho
YW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVTRURfUEFSQU0ocmVh
c29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0
dGVyQW5kU2V0dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5oCmluZGV4IDQ1MDYw
Yzc1NWY2NTc1MjA4MTQwZGM0MWVhZmI2Njg3NDg1M2ExMDUuLmMxNjBkNjhmMjUxYThmNmQ4NTIz
Y2UzNDY0ZWJjMTI0ZTI0ZWQ3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0
dGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuaApAQCAtNTUsNiArNTUsNyBA
QCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3Rv
cihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lk
IGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6OkdldE93
blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNlIHwgSlNDOjpJbnRlcmNlcHRz
R2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSlNDOjpP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFt
ZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHByb3RlY3RlZDoKQEAgLTY1LDcgKzY2LDcgQEAg
cHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5k
U2V0dGVyT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgotICAg
IHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVh
bCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAg
IHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBj
b250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldp
dGhPdmVycmlkZUJ1aWx0aW5zLmNwcAppbmRleCBmYjI1MTRjYmRkMDM1NDc1NTkyZmMwMDJkNWEy
YmM3MzQ4ODI2NjNiLi5mYzEyMmEyZTJiYmY4N2JhMTRiMTZmNzA3OTllNmMyODBmMWU0YzRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVp
bHRpbnMuY3BwCkBAIC0yNyw3ICsyNywxMCBAQAogI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmlu
Z3MuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNE
T01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisj
aW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5
cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMjUzLDEwICsy
NTYsMjAgQEAgYm9vbCBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zQ29u
c3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2QKICAgICByZXR1cm4gcHJvdG90eXBlLT5w
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLWJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJp
ZGVCdWlsdGluc093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBK
U1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zOjpoZWFwU25hcHNob3QoSlNDZWxs
KiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNP
YmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucyo+KGNl
bGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmpl
Y3QtPndyYXBwZWQoKSk7CisgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3Jt
YXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBi
dWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5z
T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFz
b24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0
b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5z
LmgKaW5kZXggZDA4NGNhNWY0MjE0NWMwNWVhMThkMGNhM2MxNWYyZmQyMWMzNWY2MS4uZmUwMzdj
MzEzMjVlYzFmNDQ5NmZjZTFmZDdlOTU3NGFmNjlmOGY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJy
aWRlQnVpbHRpbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5oCkBAIC01NSw2ICs1NSw3
IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVj
dG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZv
aWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHVi
bGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6R2V0
T3duUHJvcGVydHlTbG90SXNJbXB1cmUgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blBy
b3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVj
dHVyZUZsYWdzOwogcHJvdGVjdGVkOgpAQCAtNjUsNyArNjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNs
YXNzIEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnNPd25lciA6IHB1YmxpYyBK
U0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRl
eHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlND
OjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXpl
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVy
dGllcy5jcHAKaW5kZXggYzU0OTQzYTM5MzhkMDQ1MGJlODdiMjQyNDRhNTNlOTMwNjRiM2RjNy4u
NDgwN2IzNjU1MzMxOGUwNDJhOWI2N2I0NDQwODExOWQ2ODRlZDFkZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0
aFVuZm9yZ2FibGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMu
Y3BwCkBAIC0yOSw3ICsyOSwxMCBAQAogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcu
aCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNh
Y2hlLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlVS
TC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTMzNSwxMCArMzM4LDIwIEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJs
ZVByb3BlcnRpZXNJbnN0YW5jZUZ1CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1l
ZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcz46OmNhbGw8anNUZXN0TmFtZWRTZXR0ZXJX
aXRoVW5mb3JnYWJsZVByb3BlcnRpZXNJbnN0YW5jZUZ1bmN0aW9uVW5mb3JnZWFibGVPcGVyYXRp
b25Cb2R5Pigqc3RhdGUsICJ1bmZvcmdlYWJsZU9wZXJhdGlvbiIpOwogfQogCi1ib29sIEpTVGVz
dE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQ
cm9wZXJ0aWVzOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVy
JiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdy
YXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlm
ICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIGJ1aWxkZXIu
c2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkp
KTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNPd25lcjo6aXNSZWFjaGFibGVG
cm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBT
bG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURf
UEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BB
UkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5m
b3JnYWJsZVByb3BlcnRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5oCmluZGV4IDk2
NGExN2RmMTI2OGQ4NDY0YWFkOWI1OWMxNmUxMzY0ZGM4ZDRlZDQuLmExNjg2OGYyZjJjMzExNTZl
Mzg2ZGEwMzIxMWIxZTJmOTdmYzVlZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVy
dGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5oCkBAIC01NSw2ICs1NSw3IEBA
IHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9y
KEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQg
aGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHVibGlj
OgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6R2V0T3du
UHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBKU0M6Okhhc1N0YXRpY1By
b3BlcnR5VGFibGUgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZl
bldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwog
cHJvdGVjdGVkOgpAQCAtNjUsNyArNjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE5h
bWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFr
SGFuZGxlT3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6
OlNsb3RWaXNpdG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZp
c2l0b3ImLCBjb25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldp
dGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9y
Z2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHAKaW5kZXggNDk4MmUxNzA2NGJh
MWVhNDBjMDg2YzQ4NDIwN2IxNDE1YmFlMGUxZS4uZGQ1MTkzMDczM2I2Y2RhYTQ5ZTFmNjg1NmI2
YjcxZjFlMTE3Y2FkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3Zl
cnJpZGVCdWlsdGlucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJp
ZGVCdWlsdGlucy5jcHAKQEAgLTI5LDcgKzI5LDEwIEBACiAjaW5jbHVkZSAiSlNET01FeGNlcHRp
b25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNE
T01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisj
aW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5
cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMzIyLDEwICsz
MjUsMjAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZFNldHRlcldp
dGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWQKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWls
dGlucz46OmNhbGw8anNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRP
dmVycmlkZUJ1aWx0aW5zSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlT3BlcmF0aW9uQm9keT4o
KnN0YXRlLCAidW5mb3JnZWFibGVPcGVyYXRpb24iKTsKIH0KIAotYm9vbCBKU1Rlc3ROYW1lZFNl
dHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnNPd25lcjo6aXNS
ZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUs
IHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
VW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zOjpoZWFwU25hcHNob3QoSlND
ZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRp
ZXNBbmRPdmVycmlkZUJ1aWx0aW5zKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2Jq
ZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBpZiAodGhpc09i
amVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICBidWlsZGVyLnNldExhYmVs
Rm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAg
QmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdE5hbWVk
U2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGluc093bmVyOjpp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRs
ZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewog
ICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAg
ICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhV
bmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuaAppbmRleCAzODViMGE1YjYw
MjI5YmEyMzM0MjIwMGE5YWExMzE2OWZjMmU2YzQ1Li45ZTQyNjdjYjYwNzYwNTMyZTA4ZDE5YTFk
MWViNWY2OTY0M2U5NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRP
dmVycmlkZUJ1aWx0aW5zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJp
ZGVCdWlsdGlucy5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0
aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6
SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUgfCBKU0M6
Okhhc1N0YXRpY1Byb3BlcnR5VGFibGUgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blBy
b3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVj
dHVyZUZsYWdzOwogcHJvdGVjdGVkOgpAQCAtNjUsNyArNjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNs
YXNzIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVC
dWlsdGluc093bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1
YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCog
Y29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKaW5kZXggMjQ2YjE3YTI0NDkwNjE4MjAxODBlOWZl
OWRiZjE2MzQ5ZjdmNGNmMy4uZGU5NmQzYjhjYmYyMDEyOGIzOTYzNWRiMzZlMDY4NGU5Zjg2Njdj
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROb2RlLmNwcApAQCAtMzQsNyArMzQsOSBAQAogI2luY2x1ZGUgIkpTRE9NV3JhcHBl
ckNhY2hlLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUg
IlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9CdWlsdGluTmFtZXMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9I
ZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5l
cy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09iamVjdENvbnN0cnVjdG9yLmg+CiAjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgpAQCAtNDEyLDYgKzQxNCwxNSBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRvSlNPTihFeGVjU3RhdGUq
IHN0YXRlKQogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Tm9kZT46OmNhbGw8anNUZXN0
Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9keT4oKnN0YXRlLCAidG9KU09OIik7CiB9CiAK
K3ZvaWQgSlNUZXN0Tm9kZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90
QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVz
dE5vZGUqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGws
ICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpCisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0
cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNo
b3QoY2VsbCwgYnVpbGRlcik7Cit9CisKICNpZiBFTkFCTEUoQklORElOR19JTlRFR1JJVFkpCiAj
aWYgUExBVEZPUk0oV0lOKQogI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQ0ODMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaApp
bmRleCA4ZjhkMmMzODhiZjdiYjk3MjI3YTRlOTY4NjZjOTJmM2QxMWRmZGU2Li5lN2MyNWQ1NTRj
YTI4NGZjYzI1MTczNmFlYjRkNDczNmE0YTQ3NGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmgKQEAgLTQ5LDYgKzQ5LDcg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6
OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2Jq
ZWN0KiBzZXJpYWxpemUoSlNDOjpFeGVjU3RhdGUmLCBKU1Rlc3ROb2RlJiB0aGlzT2JqZWN0LCBK
U0RPTUdsb2JhbE9iamVjdCYsIEpTQzo6VGhyb3dTY29wZSYpOworICAgIHN0YXRpYyB2b2lkIGhl
YXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKICAgICBUZXN0
Tm9kZSYgd3JhcHBlZCgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
VGVzdE5vZGUmPihCYXNlOjp3cmFwcGVkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCA1ZGVlYmJiMTFhMTEz
ODk5NmY4MDJkMWY0YTU2OTE3NDFiOTA1NTU3Li5lNGQ5ODg1OTdhY2Y5MmQ0ZmQ1NTVhZDJmYmRm
ODdlMDRhNjZkNThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtODIsNiArODIsNyBAQAogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0FycmF5UHJvdG90eXBlLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
QnVpbHRpbk5hbWVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5
cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSXRlcmF0b3JPcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSlNBcnJheS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lu
bGluZXMuaD4KQEAgLTgzODksMTAgKzgzOTAsMjAgQEAgdm9pZCBKU1Rlc3RPYmo6OnZpc2l0Q2hp
bGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFw
cGVuZCh0aGlzT2JqZWN0LT5tX2NhY2hlZEF0dHJpYnV0ZTIpOwogfQogCi1ib29sIEpTVGVzdE9i
ak93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RPYmo6
OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIp
Cit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RPYmoqPihjZWxsKTsKKyAg
ICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFw
cGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisg
ICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwg
JXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7
Cit9CisKK2Jvb2wgSlNUZXN0T2JqT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAg
ICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAg
IHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCmluZGV4IDg1NDI0NDMzZjgyZTRmZWJkNzVmNjM1NTA3
YjBlN2FmOWQ1OGY5NTQuLjFlMWI0NjdmZmUxN2RhOTA2ZThmYWYxZDM5NDJmODhlMWExNWMxYzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmgKQEAgLTYyLDYgKzYyLDcgQEAgcHVibGljOgogICAgIG11dGFibGUgSlNDOjpXcml0
ZUJhcnJpZXI8SlNDOjpVbmtub3duPiBtX2NhY2hlZEF0dHJpYnV0ZTI7CiAgICAgc3RhdGljIHZv
aWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJik7CiAKKyAgICBzdGF0
aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7
CiAKICAgICAvLyBDdXN0b20gYXR0cmlidXRlcwogICAgIEpTQzo6SlNWYWx1ZSBjdXN0b21BdHRy
KEpTQzo6RXhlY1N0YXRlJikgY29uc3Q7CkBAIC04NCw3ICs4NSw3IEBAIHByb3RlY3RlZDoKIAog
Y2xhc3MgSlNUZXN0T2JqT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVi
bGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7Cisg
ICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFy
KiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzLmNwcAppbmRleCAzOGFhNGFiMjY4YmE4MmRkYjRmMGU0YmMxOTM3ZTUwMzhkMmYw
YjcxLi5lYWYwOTJhZjNmM2E3MWU5ZDNjNGNmNjAxMWJmZDkxOTJhYjIxYjVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCkBAIC0zMSw3ICszMSwxMCBA
QAogI2luY2x1ZGUgIkpTRE9NQ29udmVydFZhcmlhZGljLmgiCiAjaW5jbHVkZSAiSlNET01FeGNl
cHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCisjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pT
Q0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50
ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTI0OSwxMCArMjUyLDIwIEBAIGJvb2wgc2V0SlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1i
b29sIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNPd25lcjo6aXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90Vmlz
aXRvciYgdmlzaXRvcikKK3ZvaWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6aGVhcFNu
YXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAg
ICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMq
PihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlz
T2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpCisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6
Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVy
bCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2Vs
bCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc093bmVy
Ojppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhh
bmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQog
ewogICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsK
KyAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCmluZGV4IGI3OGQ4M2E3OGE4OGE5
NWUwYTlmYWEyMGM1MTMxZTNjYzdmNTU5NjcuLjI4OWE2MzVhYmY1MTk2NjczYWExMWJkNDZhYjBm
YWRiODM1YWU5MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMu
aApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNW
YWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCop
OworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hv
dEJ1aWxkZXImKTsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
KEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnM+JiYpOwogCkBAIC01Nyw3ICs1OCw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3Mg
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc093bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRs
ZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90
VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhK
U0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9y
JiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc1dpdGhTZXF1ZW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAKaW5kZXgg
MWRjOGJjOTgyODhmNmNmZTA2YTZiNmY4ZjljY2ViZjgxNjQxZjAxZi4uMDU4MTQzYmExNGJiNGVi
MjI0MDljOGQyODQ3Mzc1M2Q4NGYwM2U3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2Vx
dWVuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcApAQCAtMjgsNyArMjgs
MTAgQEAKICNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01F
eGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCisjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0l0ZXJhdG9yT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQXJyYXku
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CkBAIC0yMDUsMTAgKzIw
OCwyMCBAQCBib29sIHNldEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbgogICAgIHJldHVybiBwcm90b3R5cGUtPnB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotYm9vbCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
V2l0aFNlcXVlbmNlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lk
IEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2U6OmhlYXBTbmFwc2hvdChK
U0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVl
bmNlKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAm
dGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKQorICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJp
bmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90
KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNX
aXRoU2VxdWVuY2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3Qg
Y2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURf
UEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnNXaXRoU2VxdWVuY2UuaAppbmRleCBlMzU4ZGFhNGQyNGZjM2QyM2UwOWNkZTRlYTE4ZTkw
Nzc3NGM0NzFkLi5lMGY1NGViZWRmZmUyZjJkZDFiNTllYmIwYTg3MzliNmI2ZGYxNjgyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNl
cXVlbmNlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBK
U0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFw
U25hcHNob3RCdWlsZGVyJik7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9yc1dpdGhTZXF1ZW5jZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Jiwg
UmVmPFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlPiYmKTsKIApAQCAtNTcs
NyArNTgsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNXaXRoU2VxdWVuY2VPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJs
aWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIq
Kik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4s
IHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3Bw
CmluZGV4IGQ4OTBkM2U3MTk3ZTJhMDU2YmM3NzkzNGU2MTIyOGRkMzAxMGE0M2UuLjBkYjc3NGFm
MTI1ZjVkMTg1MGY3OWE2MTcxNDc1ZTEzN2FiN2NkNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJp
ZGVCdWlsdGlucy5jcHAKQEAgLTMxLDcgKzMxLDEwIEBACiAjaW5jbHVkZSAiSlNET01PcGVyYXRp
b24uaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgogI2luY2x1ZGUgIkpTTm9kZS5o
IgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJVUkwuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+CkBAIC0yMzUsMTAgKzIzOCwyMCBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE92ZXJyaWRlQnVpbHRpbnNQcm90b3R5cGVGdW5j
dGlvbk5hbWVkSXRlbShFeAogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T3ZlcnJpZGVC
dWlsdGlucz46OmNhbGw8anNUZXN0T3ZlcnJpZGVCdWlsdGluc1Byb3RvdHlwZUZ1bmN0aW9uTmFt
ZWRJdGVtQm9keT4oKnN0YXRlLCAibmFtZWRJdGVtIik7CiB9CiAKLWJvb2wgSlNUZXN0T3ZlcnJp
ZGVCdWlsdGluc093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBK
U1Rlc3RPdmVycmlkZUJ1aWx0aW5zOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25h
cHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
SlNUZXN0T3ZlcnJpZGVCdWlsdGlucyo+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9i
amVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgaWYgKHRoaXNP
YmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgYnVpbGRlci5zZXRMYWJl
bEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAg
IEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RPdmVy
cmlkZUJ1aWx0aW5zT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0
IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VE
X1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBm
YWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmgKaW5kZXggZjViZTA3MmNj
OGQ2ZThhMTM3MDU0Njk1NWQ5ODE3ZGIwZjU2OTA4Mi4uZjJhMjZhZjM5YTQ2YzE4NzlmNTZjYjNj
ZDgxYzY3OTcwY2YyZGJmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5oCkBAIC01
Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdl
dENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAg
c3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRl
ciYpOwogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Q
cm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJh
c2U6OlN0cnVjdHVyZUZsYWdzOwogcHJvdGVjdGVkOgpAQCAtNjIsNyArNjMsNyBAQCBwcm90ZWN0
ZWQ6CiAKIGNsYXNzIEpTVGVzdE92ZXJyaWRlQnVpbHRpbnNPd25lciA6IHB1YmxpYyBKU0M6Oldl
YWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpT
Qzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90
VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVy
ZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
UGx1Z2luSW50ZXJmYWNlLmNwcAppbmRleCBkZTQ5MGM1ZjA5YTlhYWE4Y2QxZmRiYTQyZDE3NjRh
NGMwOWFmODA0Li4yODM2MjQ3M2E3MDlmNTk2NDZiYmViNjA0YmUzZGExMTFhMGE4Y2VkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1
Z2luSW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmNwcApAQCAtMjYsNyArMjYsMTAgQEAKICNpbmNs
dWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2Fj
aGUuaCIKICNpbmNsdWRlICJKU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCIKKyNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5s
aW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclBy
ZXBhcmF0aW9ucy5oPgpAQCAtMjA4LDEwICsyMTEsMjAgQEAgYm9vbCBzZXRKU1Rlc3RQbHVnaW5J
bnRlcmZhY2VDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmEKICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
PmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLWJvb2wg
SlNUZXN0UGx1Z2luSW50ZXJmYWNlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCit2b2lkIEpTVGVzdFBsdWdpbkludGVyZmFjZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2Vs
bCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0
ID0ganNDYXN0PEpTVGVzdFBsdWdpbkludGVyZmFjZSo+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0
V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAg
aWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgYnVpbGRl
ci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmpl
Y3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBK
U1Rlc3RQbHVnaW5JbnRlcmZhY2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRv
ciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAg
ICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmgKaW5kZXggMzdh
MzBlYzliZjI1MjU0ZDI2ZDIzYmNiMzI4YjY4MWQyNGQ0NmYxMC4uNmRkYjc5YzVjNWNmMDFhZDA0
ZmViZmQ3MTMzNTc3YzYwNTE2ZjdlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuaApA
QCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1
ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwor
ICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1
aWxkZXImKTsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5n
dGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldENhbGxEYXRhIHwgSlNDOjpPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIHByb3RlY3RlZDoKQEAg
LTY2LDcgKzY3LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RQbHVnaW5JbnRlcmZhY2VP
d25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVh
bCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wg
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9p
ZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVh
bCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQp
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcAppbmRl
eCAwN2E5M2IzOWUxMWVkNjYzZmEyYzNlOGQ2YWY2MDc3YjY3ZGIxODA4Li44YjBmNTFlZDMxOTQx
Yzg0YWViMjRhMzczYmU5YjE3YzA3Zjc2M2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50LmNwcApAQCAtMzMsNiArMzMsOSBAQAogI2luY2x1ZGUgIkpTRE9NRXhj
ZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgogI2luY2x1
ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oIgorI2luY2x1ZGUgIlVSTC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFw
c2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAj
aW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFyYXRpb25z
Lmg+CkBAIC0yODUsNiArMjg4LDE1IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFByb21pc2VSZWpl
Y3Rpb25FdmVudFJlYXNvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQ+OjpnZXQ8anNUZXN0
UHJvbWlzZVJlamVjdGlvbkV2ZW50UmVhc29uR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0Pigqc3RhdGUsIHRoaXNWYWx1ZSwgInJlYXNvbiIpOwogfQogCit2b2lkIEpTVGVz
dFByb21pc2VSZWplY3Rpb25FdmVudDo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNu
YXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0
PEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudCo+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3Jh
cHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgaWYg
KHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgYnVpbGRlci5z
ZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3Qt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkp
OworICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKwogI2lmIEVOQUJM
RShCSU5ESU5HX0lOVEVHUklUWSkKICNpZiBQTEFURk9STShXSU4pCiAjcHJhZ21hIHdhcm5pbmco
ZGlzYWJsZTogNDQ4MykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuaApp
bmRleCA0NDI2ODI0MzRiMDJjMTQ5NWVkNTUwNjdmYjk0ZjNhMjNmZmI0NzdmLi5mNDY5NWZhNGM1
YWQ2NjY1ODA1MDI2OTE4ZWU5ZmQ2ZGRjOTY0NmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21p
c2VSZWplY3Rpb25FdmVudC5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAg
ICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6
OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCos
IEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogICAgIFRlc3RQcm9taXNlUmVqZWN0aW9uRXZl
bnQmIHdyYXBwZWQoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRl
c3RQcm9taXNlUmVqZWN0aW9uRXZlbnQmPihCYXNlOjp3cmFwcGVkKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
cmlhbGl6YXRpb24uY3BwCmluZGV4IDJiMmNjNjI2YjQ5MDgxMzFmOTliZjJhMTRiYWUyMTZjNmM0
NTExZDguLmUzYzFjYzI1OWExZDI3ODc5YTI2N2Q5ZjQ0NThkNWQ0ODlhNjg3OTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U2VyaWFsaXphdGlvbi5jcHAKQEAgLTM1LDcgKzM1LDEwIEBACiAjaW5jbHVkZSAiSlNU
ZXN0RXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5o
ZXJpdGFuY2UuaCIKICNpbmNsdWRlICJKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsLmgi
CisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlVSTC5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PYmplY3RDb25z
dHJ1Y3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KQEAgLTU0MiwxMCArNTQ1LDIwIEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2VyaWFsaXphdGlvblByb3RvdHlw
ZUZ1bmN0aW9uVG9KU09OKEV4ZWNTdGF0CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RT
ZXJpYWxpemF0aW9uPjo6Y2FsbDxqc1Rlc3RTZXJpYWxpemF0aW9uUHJvdG90eXBlRnVuY3Rpb25U
b0pTT05Cb2R5Pigqc3RhdGUsICJ0b0pTT04iKTsKIH0KIAotYm9vbCBKU1Rlc3RTZXJpYWxpemF0
aW9uT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5r
bm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdFNl
cmlhbGl6YXRpb246OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxk
ZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTZXJp
YWxpemF0aW9uKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChj
ZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxs
LCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgQmFzZTo6aGVhcFNu
YXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVzdFNlcmlhbGl6YXRpb25Pd25l
cjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBo
YW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikK
IHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7
CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2Vy
aWFsaXphdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6YXRpb24uaAppbmRleCAwMDlkNjZmNGJjZGQ0ZTE0N2JjZWI5ODA1OTc2Yjg3
ODBhMDA2ODFlLi5kMjcyODQ3ZjdiNDNkOWVkNTM4MTM2N2IzNTQxYmJiZjMxMzQ3ZWY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2Vy
aWFsaXphdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTZXJpYWxpemF0aW9uLmgKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpK
U0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBzZXJpYWxpemUoSlND
OjpFeGVjU3RhdGUmLCBKU1Rlc3RTZXJpYWxpemF0aW9uJiB0aGlzT2JqZWN0LCBKU0RPTUdsb2Jh
bE9iamVjdCYsIEpTQzo6VGhyb3dTY29wZSYpOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hv
dChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoKICAgICBK
U1Rlc3RTZXJpYWxpemF0aW9uKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBS
ZWY8VGVzdFNlcmlhbGl6YXRpb24+JiYpOwogCkBAIC01OCw3ICs1OSw3IEBAIHByb3RlY3RlZDoK
IAogY2xhc3MgSlNUZXN0U2VyaWFsaXphdGlvbk93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRs
ZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90
VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhK
U0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9y
JiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluZGly
ZWN0SW5oZXJpdGFuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlLmNwcAppbmRleCA4NmUx
Y2Q5OWY2NjM2YjViYTkwZTRiYzcwZTc1ZjY2OWVlYzQxMDRjLi45NjM2OGYzZTZmN2JmZmE4ZTFh
N2VmYmZlN2Y1MDYzZjY0NmRiZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
ZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5jZS5jcHAKQEAgLTI1LDYgKzI1LDkgQEAKICNp
bmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgogI2luY2x1ZGUgIkpT
RE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgor
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJVUkwuaCIKKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMTQ2LDUgKzE0OSwxNCBAQCBi
b29sIHNldEpTVGVzdFNlcmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3Io
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jbwogICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2
bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VmFsdWUpKTsKIH0KIAordm9pZCBKU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5j
ZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRl
cikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFNlcmlhbGl6YXRpb25J
bmRpcmVjdEluaGVyaXRhbmNlKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0
Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBpZiAodGhpc09iamVj
dC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICBidWlsZGVyLnNldExhYmVsRm9y
Q2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgQmFz
ZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9u
SW5kaXJlY3RJbmhlcml0YW5jZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlLmgKaW5kZXggYTEz
MzVmYWRjOTE1ZDQ1NGNjNWE0Yjg4Nzc1ZWQ0OGRhNTMyM2I4MC4uMGRkMDQ1YWU2ODVlZGRhY2Y5
NWVjZGJhYjNlZGRhZTE1YzhhNWJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
cmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgcHVibGlj
OgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpW
TSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25h
cHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiAgICAgVGVzdFNlcmlh
bGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlJiB3cmFwcGVkKCkgY29uc3QKICAgICB7CiAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFu
Y2UmPihCYXNlOjp3cmFwcGVkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5o
ZXJpdC5jcHAKaW5kZXggYTc3YTU4ODhmMzA3MmQxODVmOTVhMTIzMjY5YjM3MTI3ZThkMTk3Ni4u
MzdmNjU0ZGRmY2Q3YzE1Yjc4ZWI2NzFjNGFhYzY3ODVkNTQwMGJiNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25J
bmhlcml0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQuY3BwCkBAIC0yOCw2ICsyOCw5IEBACiAjaW5jbHVk
ZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgi
CiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgiCisjaW5jbHVkZSAiVVJMLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGlu
ZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PYmplY3RDb25zdHJ1Y3Rvci5oPgogI2lu
Y2x1ZGUgPHd0Zi9HZXRQdHIuaD4KQEAgLTIyMSw1ICsyMjQsMTQgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdFByb3RvdHlwZUZ1bmN0aW9u
VG9KU09OKEUKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhl
cml0Pjo6Y2FsbDxqc1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdFByb3RvdHlwZUZ1bmN0aW9uVG9K
U09OQm9keT4oKnN0YXRlLCAidG9KU09OIik7CiB9CiAKK3ZvaWQgSlNUZXN0U2VyaWFsaXphdGlv
bkluaGVyaXQ6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXIm
IGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTZXJpYWxp
emF0aW9uSW5oZXJpdCo+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNl
bGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgaWYgKHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwo
Y2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgIEJhc2U6Omhl
YXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVy
aXQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJp
YWxpemF0aW9uSW5oZXJpdC5oCmluZGV4IDA2NzM4NTRjMmYwMWNjZTQzYzhlZjhhZDFmZWE0MTY0
YmI4MWVkZDEuLjAyODczYTI2ZmNjMDQxYmM5OGE2NGE1NTdiM2VjOTc4ZTNlYmNhNTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJp
YWxpemF0aW9uSW5oZXJpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5oCkBAIC00OSw2ICs0OSw3IEBAIHB1
YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYs
IGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCog
c2VyaWFsaXplKEpTQzo6RXhlY1N0YXRlJiwgSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQmIHRo
aXNPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0JiwgSlNDOjpUaHJvd1Njb3BlJik7CisgICAgc3Rh
dGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYp
OwogICAgIFRlc3RTZXJpYWxpemF0aW9uSW5oZXJpdCYgd3JhcHBlZCgpIGNvbnN0CiAgICAgewog
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0Jj4oQmFz
ZTo6d3JhcHBlZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJp
dEZpbmFsLmNwcAppbmRleCA1MjUwNGYxODEzNjQ3MmExMjYxYjM0NzQ3OTA1Y2NiNzQyMjk1YmU2
Li41ZTg2OTEwYWI1MjA4OGUzMTc3OTM2NDlkNGM2MDcyYWM0ZTcyYjk0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlv
bkluaGVyaXRGaW5hbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuY3BwCkBAIC0yOCw2ICsyOCw5
IEBACiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9N
T3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiVVJMLmgiCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PYmplY3RDb25zdHJ1
Y3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KQEAgLTI1NSw1ICsyNTgsMTQgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFs
UHJvdG90eXBlRnVuY3Rpb25Ub0oKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNlcmlh
bGl6YXRpb25Jbmhlcml0RmluYWw+OjpjYWxsPGpzVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0Rmlu
YWxQcm90b3R5cGVGdW5jdGlvblRvSlNPTkJvZHk+KCpzdGF0ZSwgInRvSlNPTiIpOwogfQogCit2
b2lkIEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWw6OmhlYXBTbmFwc2hvdChKU0NlbGwq
IGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09i
amVjdCA9IGpzQ2FzdDxKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsKj4oY2VsbCk7Cisg
ICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3Jh
cHBlZCgpKTsKKyAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQor
ICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJs
ICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIp
OworfQorCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5h
bC5oCmluZGV4IGQxNmY4NWZjNTNmYjBkZTA5ZjkxYmQ2OWRmNWU2ODFjOTE2M2NkNDguLjdjNDc1
NzUyZDQwYzMwMWIyNDQ5MzNjZTAxMDM5Njg5NDMxMDE2ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJp
dEZpbmFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25z
dCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIHNlcmlh
bGl6ZShKU0M6OkV4ZWNTdGF0ZSYsIEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwmIHRo
aXNPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0JiwgSlNDOjpUaHJvd1Njb3BlJik7CisgICAgc3Rh
dGljIHZvaWQgaGVhcFNuYXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYp
OwogICAgIFRlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsJiB3cmFwcGVkKCkgY29uc3QKICAg
ICB7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRG
aW5hbCY+KEJhc2U6OndyYXBwZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IDMyYWY2OTM5ZjA3YTVjODk5Zjli
Y2IzZGRjNTQ3MGY2ZWI3NTI0NTMuLjM0MmVkMWFhNTBiNDY4NjhiZmIzOTE2NmFlMGY4M2QwOGM2
ODAyYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuY3BwCkBAIC0zNSw4ICszNSwxMSBAQAogI2luY2x1ZGUgIkpTRE9NT3BlcmF0
aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJKU01lc3Nh
Z2VQb3J0LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUg
IlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQXJy
YXkuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8
d3RmL0dldFB0ci5oPgpAQCAtMzQ1LDEwICszNDgsMjAgQEAgdm9pZCBKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2U6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90Vmlz
aXQKICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX2NhY2hlZFJlYWRvbmx5VmFsdWUp
OwogfQogCi1ib29sIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZU93bmVyOjpp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRs
ZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2U6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hv
dEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqPihjZWxsKTsKKyAgICBidWlsZGVyLnNl
dFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAg
IGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIGJ1aWxk
ZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2Jq
ZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wg
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BB
UkFNKGhhbmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJB
TShyZWFzb24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCmluZGV4IDA2OWExZDVkZTEzNGNm
MDUwZmZiOWExYTg3ZGE0ZjRmMTRhYTFiZjguLmZlYWVjODk0YzA3MDIwMjc1MmM3NmY1ZGE0YjNl
ZWE4MGZjNTlhMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlLmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAgIG11dGFibGUg
SlNDOjpXcml0ZUJhcnJpZXI8SlNDOjpVbmtub3duPiBtX2NhY2hlZFJlYWRvbmx5VmFsdWU7CiAg
ICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJik7
CiAKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNo
b3RCdWlsZGVyJik7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT4mJik7CiAKQEAgLTYzLDcgKzY0LDcgQEAgcHJv
dGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VPd25l
ciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBi
b29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4s
IHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNS
ZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCog
Y29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2
b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFN0cmluZ2lmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAKaW5kZXggYWMzOWJjODRlOTFkZWE5NzRjNzU5
NGQzYzMxYzk3MDc3NTNlZWE2YS4uZmYyY2FkMmNhZmZjOWFkZjFhZmZhNTNjZGYwOTc3Y2ZjODNl
ODcxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFN0cmluZ2lmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuY3BwCkBAIC0yNyw3ICsyNywxMCBAQAogI2lu
Y2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlv
bi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNu
YXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4K
ICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlv
bnMuaD4KQEAgLTE3OSwxMCArMTgyLDIwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0U3RyaW5naWZpZXJQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKEV4ZWNTdGF0CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllcj46OmNhbGw8anNUZXN0U3RyaW5n
aWZpZXJQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nQm9keT4oKnN0YXRlLCAidG9TdHJpbmciKTsK
IH0KIAotYm9vbCBKU1Rlc3RTdHJpbmdpZmllck93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQordm9pZCBKU1Rlc3RTdHJpbmdpZmllcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCog
Y2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRX
cmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBp
ZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICBidWlsZGVy
LnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVj
dC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpT
VGVzdFN0cmluZ2lmaWVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNv
bnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5V
U0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVy
biBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuaAppbmRleCBmNDMyYmVlNjE4YTY4ZmJm
YjAyNGVmYmY4N2M3NmRkYTZkMWE2MmI3Li41NTM4MWY3MGE1MmQ4ZDUzYjMzYmZlMDU5Yzc4YWQ1
MDMxODE1Mjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuaApAQCAtNDksNiArNDksNyBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6
OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBT
bmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoK
ICAgICBKU1Rlc3RTdHJpbmdpZmllcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0
JiwgUmVmPFRlc3RTdHJpbmdpZmllcj4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVk
OgogCiBjbGFzcyBKU1Rlc3RTdHJpbmdpZmllck93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRs
ZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90
VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhK
U0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9y
JiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1v
dXNPcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNwcAppbmRleCAxZTQ3MzBlYjIw
ZTk0OTViMmRhODA0MGQ3NGVhNzEzZTM2ZDJlYWY5Li44OWVkZmI0ZDU0ZmZjZTI5MzEyZTlkYzM3
MGEyOTA0ZTg2Mzg5NDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmll
ckFub255bW91c09wZXJhdGlvbi5jcHAKQEAgLTI3LDcgKzI3LDEwIEBACiAjaW5jbHVkZSAiSlNE
T01FeGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5j
bHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgiCisjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rp
b25Qcm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWls
ZGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAt
MTc5LDEwICsxODIsMjAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJp
bmdpZmllckFub255bW91c09wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW8KICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uPjo6Y2FsbDxqc1Rl
c3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdC
b2R5Pigqc3RhdGUsICJ0b1N0cmluZyIpOwogfQogCi1ib29sIEpTVGVzdFN0cmluZ2lmaWVyQW5v
bnltb3VzT3BlcmF0aW9uT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2
b2lkIEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uOjpoZWFwU25hcHNob3QoSlND
ZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQoreworICAgIGF1dG8qIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24qPihj
ZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpCisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9y
bWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgp
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwg
YnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25P
d25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
PiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNv
bikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRv
cik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbi5oCmlu
ZGV4IGYyOWQzZTBmZGU1YWFlOWU5N2QzZDQ2OTM2ZTc0M2Y5NmY1NzNlY2YuLjE0YWEwZWQzZWU5
YWNlZDE2YTU3YmNiNDU5MzIyODJkMGQ0OWFhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbi5oCkBAIC00OSw2ICs0OSw3IEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6
Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNu
YXBzaG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgog
ICAgIEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uKEpTQzo6U3RydWN0dXJlKiwg
SlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9u
PiYmKTsKIApAQCAtNTcsNyArNTgsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdFN0cmlu
Z2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3du
ZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNp
dG9yJik7CisgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBj
b25zdCBjaGFyKiopOwogICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
dHJpbmdpZmllck5hbWVkT3BlcmF0aW9uLmNwcAppbmRleCBkMTZlZDRiYjllY2MwZTY1N2QwODg0
YzMxNzMxN2ZlMzhiODUyZGY0Li5iMTZiNmZiNGJkMTRlMjRkMmRhZTBmNDRiYWJlYTY0ZDg0NzAw
ZjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24u
Y3BwCkBAIC0yNyw3ICsyNywxMCBAQAogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcu
aCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNh
Y2hlLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlVS
TC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTE5NCwxMCArMTk3LDIwIEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlv
blByb3RvdHlwZUZ1bmN0aW9uVG9TCiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJp
bmdpZmllck5hbWVkT3BlcmF0aW9uPjo6Y2FsbDxqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0
aW9uUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZ0JvZHk+KCpzdGF0ZSwgInRvU3RyaW5nIik7CiB9
CiAKLWJvb2wgSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbk93bmVyOjppc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCos
IFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0
aW9uOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWls
ZGVyKQoreworICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJO
YW1lZE9wZXJhdGlvbio+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNl
bGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgaWYgKHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwo
Y2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgIEJhc2U6Omhl
YXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RTdHJpbmdpZmllck5h
bWVkT3BlcmF0aW9uT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0
IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CiAgICAgVU5VU0VE
X1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24pOwogICAgIHJldHVybiBm
YWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9u
LmgKaW5kZXggODYwZGU2Y2JiNWFhNjM1ODM0N2JjOTNlMDg1M2MzY2Q0NTI3OTNmOS4uNWJjMTBl
ZjY1ZDIxOTQ0MDFhNTNlM2U1Y2MyMzE4ZmQ0NWZiYmU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVy
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoK
ICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0m
LCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgaGVhcFNuYXBz
aG90KEpTQ2VsbCosIEpTQzo6SGVhcFNuYXBzaG90QnVpbGRlciYpOwogcHJvdGVjdGVkOgogICAg
IEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24oSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUds
b2JhbE9iamVjdCYsIFJlZjxUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbj4mJik7CiAKQEAg
LTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RTdHJpbmdpZmllck5hbWVk
T3BlcmF0aW9uT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVibGljOgot
ICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7CisgICAgdmly
dHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5r
bm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwog
ICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lk
KiBjb250ZXh0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lm
aWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcy5jcHAKaW5kZXggYjhkYTVkNmY1ZGNjM2YxZTVjMjI1
MjJhZWY0MDYwNzNlYmY1MTBkMS4uNWE1NGFjMTQzY2IyNzkzNjRlNjQ2YzMzMzRiMGNiYzE3YWU4
MzQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uSW1wbGVtZW50ZWRBcy5jcHAKQEAgLTI3LDcgKzI3LDEwIEBACiAjaW5jbHVkZSAiSlNET01F
eGNlcHRpb25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVk
ZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgiCisjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Q
cm90b3R5cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVy
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0
Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMTk0
LDEwICsxOTcsMjAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVGdW4KICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcz46OmNhbGw8anNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVuY3Rpb25Ub1N0
cmluZ0JvZHk+KCpzdGF0ZSwgInRvU3RyaW5nIik7CiB9CiAKLWJvb2wgSlNUZXN0U3RyaW5naWZp
ZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCit2b2lkIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBczo6aGVh
cFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKK3sK
KyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
SW1wbGVtZW50ZWRBcyo+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNl
bGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgaWYgKHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwo
Y2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgIEJhc2U6Omhl
YXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RTdHJpbmdpZmllck9w
ZXJhdGlvbkltcGxlbWVudGVkQXNPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRv
ciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKICAg
ICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZp
ZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmgKaW5kZXggOWQ0MDcwMDkxNDFiZGFjYjZkZWNjNmUz
Y2IzODMxZGU4MGQyYzYzYS4uZjkzZmYxMTY4Njk1OTZiZjdlZmMyOGM5ZWU2Mjc1YWRmZmI1ODZl
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbklt
cGxlbWVudGVkQXMuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3Rh
dGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0ds
b2JhbE9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6
OkhlYXBTbmFwc2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbkltcGxlbWVudGVkQXMoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVj
dCYsIFJlZjxUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzPiYmKTsKIApAQCAt
NTcsNyArNTgsNyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uSW1wbGVtZW50ZWRBc093bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1
YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOwor
ICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hh
cioqKTsKICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
Piwgdm9pZCogY29udGV4dCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3Ry
aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
dHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCmluZGV4IGMyZWRlYThkM2JjOTFj
OTI2YTNjNzdiZTljNDY0NjYyOWRiODExMjMuLmYyNTE4YTcxZWQ2ODYxYzVhOGNhZjZiZWIzNGM1
ZmNmNmJkMzBkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCkBAIC0yNyw3ICsyNywxMCBAQAogI2luY2x1ZGUg
IkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgog
I2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgorI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1
bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90
QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNs
dWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4K
QEAgLTE3OSwxMCArMTgyLDIwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nUHJvdG90eXBlRnVuCiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmc+Ojpj
YWxsPGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ1Byb3RvdHlwZUZ1bmN0
aW9uVG9TdHJpbmdCb2R5Pigqc3RhdGUsICJ0b1N0cmluZyIpOwogfQogCi1ib29sIEpTVGVzdFN0
cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNp
dG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJp
bmc6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxk
ZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTdHJpbmdpZmllck9w
ZXJhdGlvbk5hbWVkVG9TdHJpbmcqPihjZWxsKTsKKyAgICBidWlsZGVyLnNldFdyYXBwZWRPYmpl
Y3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOworICAgIGlmICh0aGlzT2Jq
ZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxG
b3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBC
YXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7Cit9CisKK2Jvb2wgSlNUZXN0U3RyaW5n
aWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3Im
IHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRs
ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFzb24p
OwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0
cmluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0
cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZy5oCmluZGV4IGZmODQ1NjZiYzhmMjc0ODBh
OTcwNmMwODFmYmNiMTVhOGZhMmQyYWIuLjEyZGUyMzhlMGY2MjhkNjA5ZmIxOGM5YzA1YzVmODAw
YzZiMjRhYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25OYW1lZFRvU3RyaW5nLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAog
ICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpT
Qzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxs
KiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9i
YWxPYmplY3QmLCBSZWY8VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZz4mJik7
CiAKQEAgLTU3LDcgKzU4LDcgQEAgcHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25l
ciB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0
b3ImKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNv
bnN0IGNoYXIqKik7CiAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRy
aWJ1dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuY3BwCmluZGV4IGQxZTM3ZDE2M2Q3NjEwOWM2
M2FmOTY5NTE0OTQwNzcxZGY1ZTdlNTMuLjgxMjM3MmI0ZDRlZTcwYzQyM2EyODQzMzQ2NTFkMTE1
OGVhYWNlNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25s
eUF0dHJpYnV0ZS5jcHAKQEAgLTI4LDcgKzI4LDEwIEBACiAjaW5jbHVkZSAiSlNET01FeGNlcHRp
b25IYW5kbGluZy5oIgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNE
T01XcmFwcGVyQ2FjaGUuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisj
aW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5
cGUuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwU25hcHNob3RCdWlsZGVyLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgpAQCAtMjAxLDEwICsy
MDQsMjAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmllclJl
YWRPbmx5QXR0cmlidXRlUHJvdG90eXBlRnVuY3Rpb24KICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGU+OjpjYWxsPGpzVGVzdFN0cmluZ2lm
aWVyUmVhZE9ubHlBdHRyaWJ1dGVQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nQm9keT4oKnN0YXRl
LCAidG9TdHJpbmciKTsKIH0KIAotYm9vbCBKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmli
dXRlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5r
bm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEpTVGVzdFN0
cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGU6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhl
YXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpz
Q2FzdDxKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlKj4oY2VsbCk7CisgICAgYnVp
bGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgp
KTsKKyAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAg
ICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwg
dGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKSk7CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQor
Citib29sIEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVPd25lcjo6aXNSZWFjaGFi
bGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQq
LCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKICAgICBVTlVT
RURfUEFSQU0oaGFuZGxlKTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CisgICAgVU5VU0VE
X1BBUkFNKHJlYXNvbik7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFk
T25seUF0dHJpYnV0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuaAppbmRleCAzNDJjYTU5ZmExZGQ4
MTg5ODRmODM0MGM5ZmQxZWM0NGJhZGYwY2I1Li42ZGNiZGM4ZDk1NWU1YjJkZWI1ZWIwMTI1MDUz
YzIyNTI4YjVkNDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRP
bmx5QXR0cmlidXRlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0
YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlND
OjpIZWFwU25hcHNob3RCdWlsZGVyJik7CiBwcm90ZWN0ZWQ6CiAgICAgSlNUZXN0U3RyaW5naWZp
ZXJSZWFkT25seUF0dHJpYnV0ZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Jiwg
UmVmPFRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlPiYmKTsKIApAQCAtNTcsNyArNTgs
NyBAQCBwcm90ZWN0ZWQ6CiAKIGNsYXNzIEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1
dGVPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmly
dHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5r
bm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwg
dm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmly
dHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRl
eHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0
ZUF0dHJpYnV0ZS5jcHAKaW5kZXggYWE1NDEyMWY4YzI3MGIzMTdlNGJjZWNiMjc4MjRlYjNiYjAz
MDFjYi4uMzkxN2I0ZDkyOTZiYTUyM2RjMTMwNzA2MTljZjRjZWQzOGE4M2ZiMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lm
aWVyUmVhZFdyaXRlQXR0cmlidXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuY3BwCkBA
IC0yOCw3ICsyOCwxMCBAQAogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKICNp
bmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgi
CisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlVSTC5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSGVhcFNuYXBzaG90QnVpbGRlci5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KQEAgLTIxOSwxMCArMjIyLDIwIEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQ
cm90b3R5cGVGdW5jdGlvCiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmll
clJlYWRXcml0ZUF0dHJpYnV0ZT46OmNhbGw8anNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRy
aWJ1dGVQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nQm9keT4oKnN0YXRlLCAidG9TdHJpbmciKTsK
IH0KIAotYm9vbCBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZU93bmVyOjppc1Jl
YWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwg
dm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBKU1Rlc3RTdHJpbmdpZmllclJlYWRX
cml0ZUF0dHJpYnV0ZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVp
bGRlciYgYnVpbGRlcikKK3sKKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFN0
cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlKj4oY2VsbCk7CisgICAgYnVpbGRlci5zZXRXcmFw
cGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKKyAgICBpZiAo
dGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICBidWlsZGVyLnNl
dExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7
CisgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOworfQorCitib29sIEpTVGVz
dFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0
b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhh
bmRsZSk7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOworICAgIFVOVVNFRF9QQVJBTShyZWFz
b24pOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmli
dXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3Ry
aW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuaAppbmRleCBkZGE0ZDlkMTA0MWVlMDU3MDc3YTYy
NjNkNDA3NjIzZjk5ZDE4OWE3Li5jYjIxYzNlZDQ1NTAxMjg0YTM1ZDJmNjQ1Y2ZhOWIxMDM1YmY5
Mzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRy
aWJ1dGUuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpT
Qzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9i
amVjdCopOworICAgIHN0YXRpYyB2b2lkIGhlYXBTbmFwc2hvdChKU0NlbGwqLCBKU0M6OkhlYXBT
bmFwc2hvdEJ1aWxkZXImKTsKIHByb3RlY3RlZDoKICAgICBKU1Rlc3RTdHJpbmdpZmllclJlYWRX
cml0ZUF0dHJpYnV0ZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRl
c3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZT4mJik7CiAKQEAgLTU3LDcgKzU4LDcgQEAg
cHJvdGVjdGVkOgogCiBjbGFzcyBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZU93
bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFs
IGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
Piwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZpcnR1YWwgYm9vbCBp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lk
KiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKICAgICB2aXJ0dWFs
IHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAppbmRleCBhZDdmYTdmZTA1NzIyOWIyYmM5OWQzZGZl
YzZiMTU5NTU5OGM2ZTgwLi4xZTYxM2FhYjA2NTI0YWY1NTYwNjMzZDg4MjI0OTdmZDFjMDFlMGEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0VHlwZWRlZnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKQEAgLTQzLDggKzQzLDExIEBACiAjaW5jbHVkZSAiSlNU
ZXN0Q2FsbGJhY2tJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJKU1Rlc3RFdmVudFRhcmdldC5oIgog
I2luY2x1ZGUgIkpTVGVzdFN1Yk9iai5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJVUkwu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU0FycmF5Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5l
cy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KQEAgLTc0MSwxMCArNzQ0LDIwIEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhFeGNlcHRpb24oCiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVm
cz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRp
b25Cb2R5Pigqc3RhdGUsICJtZXRob2RXaXRoRXhjZXB0aW9uIik7CiB9CiAKLWJvb2wgSlNUZXN0
VHlwZWRlZnNPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSlNU
ZXN0VHlwZWRlZnM6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxk
ZXImIGJ1aWxkZXIpCit7CisgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RUeXBl
ZGVmcyo+KGNlbGwpOworICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwg
JnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CisgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3Ry
aW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgIEJhc2U6OmhlYXBTbmFwc2hv
dChjZWxsLCBidWlsZGVyKTsKK30KKworYm9vbCBKU1Rlc3RUeXBlZGVmc093bmVyOjppc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9p
ZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQogewogICAgIFVO
VVNFRF9QQVJBTShoYW5kbGUpOwogICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsKKyAgICBVTlVT
RURfUEFSQU0ocmVhc29uKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgK
aW5kZXggZDhmYjBmNWM1NTY2NzE3ZGM3YjE5Yzk0OWI5ZmRkZWI3ZWNhMWU1ZS4uMzZmMmFlZDgz
YTRhMWE2MTdjY2ZkMzgyODU3NDViMGViODk1ZjZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgKQEAgLTQ5
LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0
Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBz
dGF0aWMgdm9pZCBoZWFwU25hcHNob3QoSlNDZWxsKiwgSlNDOjpIZWFwU25hcHNob3RCdWlsZGVy
Jik7CiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
SlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiBwcm90
ZWN0ZWQ6CkBAIC01OSw3ICs2MCw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgSlNUZXN0VHlwZWRl
ZnNPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CiBwdWJsaWM6Ci0gICAgdmly
dHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5r
bm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwg
dm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7CiAgICAgdmly
dHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRl
eHQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKaW5kZXggZWRmMzRhOWUwYTcxYjJiYjdi
MDQzMTdlNDdmMDQ3YWQ5Mzk0Mjg5Ny4uMzVmZjljMDU3YzNlNDczZmYwZmU5NzQ4NWVjMGRjNDhj
Yzg0OGIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCkBAIC0zNSw2ICszNSw3IEBAIHR5cGVk
ZWYgKAogICAgIENvbnN0cnVjdG9yLAogICAgIENvbnN0cnVjdG9yQ2FsbFdpdGg9RG9jdW1lbnQs
CiAgICAgQ3VzdG9tVG9KU09iamVjdCwKKyAgICBDdXN0b21IZWFwU25hcHNob3QsCiAgICAgRE9N
SklULAogICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAogICAgIEpTQ3VzdG9tSGVhZGVy
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IGEzMmQwZjYwODM5NTEwYzEzNTNlODAy
YzZkYWQzMWM4MjVmZjIyM2QuLjJiNDE1MGY2Mzg3ZDA1N2MxMDdlZWRlZmY1NjE0OWQxYWM3MzBm
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTMzLDYgKzMzLDcgQEAgdHlwZWRl
ZiBVU1ZTdHJpbmcgQ1NTT01TdHJpbmc7CiAgICAgQ3VzdG9tR2V0T3duUHJvcGVydHlOYW1lcywK
ICAgICBDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3QsCiAgICAgQ3VzdG9tR2V0UHJvdG90eXBlLAor
ICAgIEN1c3RvbUhlYXBTbmFwc2hvdCwKICAgICBDdXN0b21QcmV2ZW50RXh0ZW5zaW9ucywKICAg
ICBDdXN0b21Qcm94eVRvSlNPYmplY3QsCiAgICAgQ3VzdG9tUHV0LApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9IZWFwU25hcHNob3QvSGVh
cFNuYXBzaG90LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vy
cy9IZWFwU25hcHNob3QvSGVhcFNuYXBzaG90LmpzCmluZGV4IGE4ZjJjMzMwMzE3N2E2NWY4Njll
ZjBhY2E1MGNlYjFiYmMyZjgzYjAuLjc0NTc3NGJiMzlhYmI2MGVjYzIzMGNlMzRiMWQ0ZjNmZGM0
MDJkNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dv
cmtlcnMvSGVhcFNuYXBzaG90L0hlYXBTbmFwc2hvdC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJzL0hlYXBTbmFwc2hvdC9IZWFwU25hcHNob3QuanMK
QEAgLTg0LDYgKzg0LDcgQEAgSGVhcFNuYXBzaG90ID0gY2xhc3MgSGVhcFNuYXBzaG90CiAKICAg
ICAgICAgbGV0IHt2ZXJzaW9uLCBub2Rlcywgbm9kZUNsYXNzTmFtZXMsIGVkZ2VzLCBlZGdlVHlw
ZXMsIGVkZ2VOYW1lc30gPSBqc29uOwogICAgICAgICBjb25zb2xlLmFzc2VydCh2ZXJzaW9uID09
PSAxLCAiRXhwZWN0IEphdmFTY3JpcHRDb3JlIEhlYXAgU25hcHNob3QgdmVyc2lvbiAxIik7Cisg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0eXBlIHx8IHR5cGUgPT09ICJJbnNwZWN0b3IiLCAiRXhw
ZWN0IGFuIEluc3BlY3RvciBIZWFwIFNuYXBzaG90Iik7CiAKICAgICAgICAgdGhpcy5fbm9kZXMg
PSBub2RlczsKICAgICAgICAgdGhpcy5fbm9kZUNvdW50ID0gbm9kZXMubGVuZ3RoIC8gbm9kZUZp
ZWxkQ291bnQ7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggZjAzOGUzODA5ZmI5NThkNmRkYjkzZjQ2NGY1ZmUyNmMyMDA5YjdkMC4uYWZlNzVmOWE4
OWYyNTFiOTE5MDY4NjY3MWI3MDU2OTM4NWFkY2JkYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE4LTA4LTIzICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBkdW1waW5nIEdDIGhlYXAgc25hcHNob3RzLCBhbmQgYSB2aWV3ZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjQxNgorCisgICAgICAg
IFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KKworICAgICAgICBBZGQgYSB2aWV3ZXIgZm9y
IEdDIGhlYXAgc25hcHNob3RzLiBBIHNuYXBzaG90IEpTT04gZmlsZSBjYW4gYmUgZHJhZ2dlZCBp
bnRvIHRoaXMKKyAgICAgICAgcGFnZSBmb3IgaW5zcGVjdGlvbiAob3Igc2V0IHZpYSB0aGUgJ2Zp
bGVuYW1lJyBVUkwgcGFyYW1ldGVyKS4KKworICAgICAgICBGb3Igbm93LCB0aGlzIHBhZ2Ugc2hv
d3MgYWxsIG9iamVjdHMsIGFsbCByb290cywgYW5kIHRoZSBzaG9ydGVzdCBwYXRoIGZyb20gYSBy
b290CisgICAgICAgIHRvIGFsbCBIVE1MRG9jdW1lbnRzIGFuZCBXaW5kb3dzLgorCisgICAgICAg
ICogR0NIZWFwSW5zcGVjdG9yL2djLWhlYXAtaW5zcGVjdG9yLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIEdDSGVhcEluc3BlY3Rvci9oZWFwLWFuYWx5c2lzL0hlYXBTbmFwc2hvdC5qczogQ29waWVk
IGZyb20gU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9IZWFwU25h
cHNob3QvSGVhcFNuYXBzaG90LmpzLgorICAgICAgICAqIEdDSGVhcEluc3BlY3Rvci9zY3JpcHQv
aW50ZXJmYWNlLmpzOiBBZGRlZC4KKwogMjAxOC0wOC0yMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxt
bWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSExTTF0gQWxsb3cgbmF0aXZlIHR5cGVz
IHRvIGhhdmUgdHlwZSBhcmd1bWVudHMgKGxpa2UgInZlY3RvcjxmbG9hdCwgND4iKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvR0NIZWFwSW5zcGVjdG9yL2djLWhlYXAtaW5zcGVjdG9yLmh0bWwgYi9Ub29s
cy9HQ0hlYXBJbnNwZWN0b3IvZ2MtaGVhcC1pbnNwZWN0b3IuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzM5
YTkzYWU5NmIxYmQxMjNkODk3YThlYTMyMTg3MjYzZjJjOTlhCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvR0NIZWFwSW5zcGVjdG9yL2djLWhlYXAtaW5zcGVjdG9yLmh0bWwKQEAgLTAsMCArMSwx
NzggQEAKKzwhRE9DVFlQRSBodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPkdDIEhlYXAgSW5zcGVj
dG9yPC90aXRsZT4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGY4Ij4KKyAgICA8c3R5bGUgdHlwZT0i
dGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorCisgICAgICAgIGJvZHkgeworICAgICAgICAgICAg
Zm9udC1mYW1pbHk6ICJIZWx2ZXRpY2EgTmV1ZSI7CisgICAgICAgICAgICBsaW5lLWhlaWdodDog
MS4zOworICAgICAgICB9CisKKyAgICAgICAgaDEgeworICAgICAgICAgICAgbWFyZ2luLWJvdHRv
bTogMC4yZW07CisgICAgICAgICAgICBmb250LXNpemU6IDMycHg7CisgICAgICAgIH0KKworICAg
ICAgICBsYWJlbCB7CisgICAgICAgICAgICBmb250LXNpemU6IDEzcHg7CisgICAgICAgIH0KKwor
ICAgICAgICAjZHJvcFRhcmdldCB7CisgICAgICAgICAgICBmb250LXNpemU6IDEycHQ7CisgICAg
ICAgICAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjODg4OworICAg
ICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgdG9wOiAyMHB4OworICAg
ICAgICAgICAgcmlnaHQ6IDIwcHg7CisgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZ2Jh
KDAsIDAsIDAsIDAuMyk7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAs
IDAsIDAuMSk7CisgICAgICAgICAgICBwYWRkaW5nOiAxMHB4OworICAgICAgICAgICAgYm9yZGVy
LXJhZGl1czogMTBweDsKKyAgICAgICAgfQorCisgICAgICAgICNkcm9wVGFyZ2V0LmRyYWdPdmVy
IHsKKyAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTsKKyAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTsKKyAgICAgICAg
ICAgIGNvbG9yOiAjZGRkOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBkZXRhaWxzIHsK
KyAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4OworICAgICAgICB9CisgICAgICAgIAorICAg
ICAgICB1bC5wYXRoIHsKKyAgICAgICAgICAgIG1hcmdpbi10b3A6IDVweDsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgdWwuaW5zdGFuY2UtbGlzdCB7CisgICAgICAgICAgICBtYXJnaW4t
dG9wOiAwLjNlbTsKKyAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS4yZW07CisgICAgICAgICAg
ICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CisgICAgICAgIH0KKworICAgICAgICAubm9kZS1pZDo6
YmVmb3JlIHsKKyAgICAgICAgICAgIGNvbnRlbnQ6ICdAJzsKKyAgICAgICAgfQorCisgICAgICAg
IC5ub2RlLWlkIHsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogc21hbGxlcjsKKyAgICAgICAgICAg
IGNvbG9yOiBzaWx2ZXI7CisgICAgICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBSZW1vdmUgaWYg
eW91IHdhbnQgdG8gc2VlIGNlbGwgaWRlbnRpZmllcnMuICovCisgICAgICAgIH0KKworICAgICAg
ICAubm9kZS1hZGRyZXNzLCAubm9kZS1zaXplLCAubm9kZS1sYWJlbCB7CisgICAgICAgICAgICBm
b250LWZhbWlseTogbW9ub3NwYWNlOworICAgICAgICAgICAgY29sb3I6IGdyYXk7CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIC5ub2RlLXNpemUgeworICAgICAgICAgICAgZGlzcGxheTog
bm9uZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLm5vZGUtZ2Mtcm9vdCB7CisgICAg
ICAgICAgICBmb250LXNpemU6IHNtYWxsZXI7CisgICAgICAgICAgICBjb2xvcjogbWFyb29uOwor
ICAgICAgICB9CisgICAgICAgIAorICAgICAgICAubm9kZS1nYy1yb290IGltZyB7CisgICAgICAg
ICAgICBtYXJnaW46IDAgM3B4OworICAgICAgICAgICAgaGVpZ2h0OiAxLjRlbTsKKyAgICAgICAg
ICAgIHdpZHRoOiAxLjRlbTsKKyAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Cisg
ICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CisgICAgICAgICAgICBkaXNwbGF5OiBub25lOwor
ICAgICAgICB9CisgICAgICAgIAorICAgICAgICAuZWRnZTo6YmVmb3JlIHsKKyAgICAgICAgICAg
IGNvbnRlbnQ6ICcg4p+5ICc7CisgICAgICAgICAgICBjb2xvcjogZ3JheTsKKyAgICAgICAgfQor
CisgICAgICAgIC5lZGdlOjphZnRlciB7CisgICAgICAgICAgICBjb250ZW50OiAnIOKfuSc7Cisg
ICAgICAgICAgICBjb2xvcjogZ3JheTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLmVk
Z2UtZGF0YSB7CisgICAgICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOworICAgICAgICAg
ICAgY29sb3I6IGdyYXk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHVsLnBhdGggewor
ICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lOworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICAjZGVzY3JpcHRpb24geworICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOworICAg
ICAgICAgICAgbWFyZ2luOiAzMDBweCBjYWxjKCgxMDB2dyAtIDUwMHB4KSAvIDIpOworICAgICAg
ICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjMpOworICAgICAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpOworICAgICAgICAgICAgcGFkZGlu
ZzogMjBweCA1MHB4OworICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKKyAgICAgICAg
ICAgIHdpZHRoOiA1MDBweDsKKyAgICAgICAgfQorCisgICAgICAgICNkZXNjcmlwdGlvbiA+IGgx
IHsKKyAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7CisgICAgICAgICAgICBtYXJnaW4tYm90
dG9tOiAxNXB4OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAjZGVzY3JpcHRpb24gY29k
ZSB7CisgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKKyAgICAgICAgICAgIG1hcmdpbjogMTVw
eCAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAjZGVzY3JpcHRpb24uaGlkZGVuIHsK
KyAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
ICN1aUNvbnRhaW5lciB7CisgICAgICAgICAgICBkaXNwbGF5OiBub25lOworICAgICAgICB9Cisg
ICAgICAgIAorICAgIDwvc3R5bGU+CisKKyAgICA8c2NyaXB0IHNyYz0ic2NyaXB0L2ludGVyZmFj
ZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9ImhlYXAtYW5hbHlzaXMvSGVhcFNuYXBz
aG90LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxoZWFkZXI+CisgICAgPGRp
diBpZD0iZHJvcFRhcmdldCI+RHJvcCBHQyBoZWFwIEpTT04gZmlsZSBoZXJlIHRvIGxvYWQuPC9k
aXY+CisgICAgPC9oZWFkZXI+CisKKyAgICA8c2VjdGlvbiBpZD0iZGVzY3JpcHRpb24iPgorICAg
ICAgICA8aDE+R0MgaGVhcCBkZWJ1Z2dlcjwvaDI+CisgICAgICAgIDxwPlRoaXMgcGFnZSBpcyBm
b3IgYW5hbHl6aW5nIEpTT04gZHVtcHMgb2YgdGhlIEdDIGhlYXAuIFRvIGRlYnVnIGFuIGlzc3Vl
IHRoYXQgeW91IHRoaW5rIG1pZ2h0IGJlIGEgbGVha2VkIG9yIGFiYW5kb25lZCBvYmplY3QgKG9m
dGVuIGEgRG9jdW1lbnQgb3IgSlNHbG9iYWxPYmplY3QpLCBsb2FkIHRoZSB0ZXN0IHBhZ2UsIHRo
ZW4gbmF2aWdhdGUgdG8gYWJvdXQ6Ymxhbmsgb3Igb3RoZXIgc2ltcGxlIHBhZ2UuIE5vdyBzaW11
bGF0ZSBhIG1lbW9yeSB3YXJuaW5nICh0byBjbGVhciB0aGUgcGFnZSBjYWNoZSkgYnkgaXNzdWlu
ZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQgaW4gYSBUZXJtaW5hbCB3aW5kb3c6CisgICAgICAgIDxj
b2RlPm5vdGlmeXV0aWwgLXAgb3JnLldlYktpdC5sb3dNZW1vcnk8L2NvZGU+CisgICAgICAgIAor
ICAgICAgICBZb3UgY2FuIG5vdyBpbnNwZWN0IHRoZSBsaXN0IG9mIGxpdmUgZG9jdW1lbnRzIHZp
YToKKyAgICAgICAgPGNvZGU+bm90aWZ5dXRpbCAtcCBjb20uYXBwbGUuV2ViS2l0LnNob3dBbGxE
b2N1bWVudHM8L2NvZGU+CisgICAgICAgIAorICAgICAgICB3aGljaCBwcmludHMgaXRzIG91dHB1
dCB0byB0aGUgc3lzdGVtIGxvZy4gSWYgdGhpcyBsaXN0cyBkb2N1bWVudHMgb3RoZXIgdGhhbiB0
aGUgY3VycmVudCBwYWdlLCB5b3UgbWF5IGhhdmUgYSBsZWFrZWQgb3IgYWJhbmRvbmVkIERvY3Vt
ZW50LiBUbyBzZWUgaWYgdGhlIEdDIGhlYXAgaXMgcmVmZXJlbmNpbmcgdGhhdCBEb2N1bWVudCwg
b2J0YWluIGEgR0MgaGVhcCBkdW1wOgorICAgICAgICA8Y29kZT5ub3RpZnl1dGlsIC1wIGNvbS5h
cHBsZS5XZWJLaXQuZHVtcEdDSGVhcDwvY29kZT4KKyAgICAgICAgCisgICAgICAgIFRoYXQgY29t
bWFuZCB3aWxsIGdlbmVyYXRlIGEgSlNPTiBmaWxlIGluIC90bXAgKG9yIGVxdWl2YWxlbnQpOyB0
aGUgZmlsZSBwYXRoIGlzIGR1bXBlZCB0byB0aGUgc3lzdGVtIGxvZy4gRHJhZyB0aGF0IGZpbGUg
b250byB0aGUgZHJvcCB0YXJnZXQgaW4gdGhlIHRvcCByaWdodCAob3IgdXNlIHRoZSA/ZmlsZW5h
bWU9IFVSTCBwYXJhbWV0ZXIpLgorICAgICAgICA8L3A+CisgICAgPC9zZWN0aW9uPgorCisgICAg
PHNlY3Rpb24gaWQ9InVpQ29udGFpbmVyIj4KKworICAgICAgICA8ZGl2IGlkPSJyb290ZWQiPgor
ICAgICAgICA8L2Rpdj4KKworICAgICAgICA8aDE+QWxsIHBhdGhzIHRv4oCmPC9oMT4KKyAgICAg
ICAgPGRpdiBpZD0iYWxsLXBhdGhzIj4KKyAgICAgICAgPC9kaXY+CisKKyAgICAgICAgPGgxPk9i
amVjdHM8L2gxPgorICAgICAgICA8c2VjdGlvbiBpZD0iY2F0ZWdvcmllcyI+CisgICAgICAgIDwv
c2VjdGlvbj4KKworICAgICAgICA8aDE+Um9vdHM8L2gxPgorICAgICAgICA8c2VjdGlvbiBpZD0i
cm9vdHMiPgorICAgICAgICA8L3NlY3Rpb24+CisgICAgPC9zZWN0aW9uPgorICAgIAorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvR0NIZWFwSW5zcGVjdG9yL2hlYXAtYW5hbHlz
aXMvSGVhcFNuYXBzaG90LmpzIGIvVG9vbHMvR0NIZWFwSW5zcGVjdG9yL2hlYXAtYW5hbHlzaXMv
SGVhcFNuYXBzaG90LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyNzU5ODg0NWE2NTE3MGVkN2UyYjhhM2JiZTky
MGUzNGM0YTMzNjMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9HQ0hlYXBJbnNwZWN0b3IvaGVh
cC1hbmFseXNpcy9IZWFwU25hcHNob3QuanMKQEAgLTAsMCArMSw4NDkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLy8gbm9kZXMKKy8vIFs8
MDppZD4sIDwxOnNpemU+LCA8MjpjbGFzc05hbWVUYWJsZUluZGV4PiwgPDM6aW50ZXJuYWw+LCA8
NDpsYWJlbEluZGV4PiwgPDU6YWRkcmVzcz4sIDw2OndyYXBwZWQgYWRkcmVzcz5dCitsZXQgbm9k
ZUZpZWxkQ291bnQgPSA3OworY29uc3Qgbm9kZUlkT2Zmc2V0ID0gMDsKK2NvbnN0IG5vZGVTaXpl
T2Zmc2V0ID0gMTsKK2NvbnN0IG5vZGVDbGFzc05hbWVPZmZzZXQgPSAyOworY29uc3Qgbm9kZUlu
dGVybmFsT2Zmc2V0ID0gMzsKK2NvbnN0IG5vZGVMYWJlbE9mZnNldCA9IDQ7Citjb25zdCBub2Rl
QWRkcmVzc09mZnNldCA9IDU7Citjb25zdCBub2RlV3JhcHBlZEFkZHJlc3NPZmZzZXQgPSA2Owor
CisvLyBlZGdlcworLy8gWzwwOmZyb21JZD4sIDwxOnRvSWQ+LCA8Mjp0eXBlVGFibGVJbmRleD4s
IDwzOmVkZ2VEYXRhSW5kZXhPckVkZ2VOYW1lSW5kZXg+XQorY29uc3QgZWRnZUZpZWxkQ291bnQg
PSA0OworY29uc3QgZWRnZUZyb21JZE9mZnNldCA9IDA7Citjb25zdCBlZGdlVG9JZE9mZnNldCA9
IDE7Citjb25zdCBlZGdlVHlwZU9mZnNldCA9IDI7Citjb25zdCBlZGdlRGF0YU9mZnNldCA9IDM7
CisKKy8vIHJvb3RzCisvLyBbPDA6aWQ+LCA8MTpsYWJlbEluZGV4Pl0KK2xldCByb290RmllbGRD
b3VudCA9IDM7Citjb25zdCByb290SWRPZmZzZXQgPSAwOworY29uc3Qgcm9vdExhYmVsT2Zmc2V0
ID0gMTsKK2NvbnN0IHJlYWNoYWJpbGl0eVJlYXNvbk9mZnNldCA9IDI7CisKKy8vIE90aGVyIGNv
bnN0YW50cy4KK2NvbnN0IHJvb3ROb2RlSW5kZXggPSAwOworY29uc3Qgcm9vdE5vZGVPcmRpbmFs
ID0gMDsKK2NvbnN0IHJvb3ROb2RlSWRlbnRpZmllciA9IDA7CisKKy8vIFRlcm1pbm9sb2d5Ogor
Ly8gICAtIGBub2RlSW5kZXhgIGlzIGFuIGluZGV4IGludG8gdGhlIGBub2Rlc2AgbGlzdC4KKy8v
ICAgLSBgbm9kZU9yZGluYWxgIGlzIHRoZSBvcmRlciBvZiB0aGUgbm9kZSBpbiB0aGUgYG5vZGVz
YCBsaXN0LiAobm9kZUluZGV4IC8gbm9kZUZpZWxkQ291bnQpLgorLy8gICAtIGBub2RlSWRlbnRp
ZmllcmAgaXMgdGhlIG5vZGUncyBpZCB2YWx1ZS4gKG5vZGVzW25vZGVJbmRleCArIG5vZGVJZE9m
ZnNldF0pLgorLy8gICAtIGBlZGdlSW5kZXhgIGlzIGFuIGluZGV4IGludG8gdGhlIGBlZGdlc2Ag
bGlzdC4KKy8vCisvLyBMaXN0czoKKy8vICAgLSBfbm9kZU9yZGluYWxUb0ZpcnN0T3V0Z29pbmdF
ZGdlIC0gYG5vZGVPcmRpbmFsYCB0byBgZWRnZUluZGV4YCBpbiBgZWRnZXNgLgorLy8gICAgIEl0
ZXJhdGUgZWRnZXMgYnkgd2Fsa2luZyBgZWRnZXNgIChlZGdlRmllbGRDb3VudCkgYW5kIGNoZWNr
aW5nIGlmIGZyb21JZGVudGlmaWVyIGlzIGN1cnJlbnQuCisvLyAgIC0gX25vZGVPcmRpbmFsVG9G
aXJzdEluY29taW5nRWRnZSAtIGBub2RlT3JkaW5hbGAgdG8gYGluY29taW5nRWRnZUluZGV4YCBp
biBgaW5jb21pbmdFZGdlc2AuCisvLyAgICAgSXRlcmF0ZSBlZGdlcyBieSB3YWxraW5nIGBpbmNv
bWluZ0VkZ2VzYCB1bnRpbCBgbm9kZU9yZGluYWwrMWAncyBmaXJzdCBpbmNvbWluZyBlZGdlIGlu
ZGV4LgorLy8gICAtIF9ub2RlT3JkaW5hbFRvRG9taW5hdG9yTm9kZU9yZGluYWwgLSBgbm9kZU9y
ZGluYWxgIHRvIGBub2RlT3JkaW5hbGAgb2YgZG9taW5hdG9yLgorLy8gICAtIF9ub2RlT3JkaW5h
bFRvUmV0YWluZWRTaXplcyAtIGBub2RlT3JkaW5hbGAgdG8gcmV0YWluIHNpemUgdmFsdWUuCisv
LyAgIC0gX25vZGVPcmRpbmFsSXNEZWFkIC0gYG5vZGVPcmRpbmFsYCBpcyBkZWFkIG9yIGFsaXZl
LgorLy8KKy8vIFRlbXBvcmFyeSBMaXN0czoKKy8vICAgLSBub2RlT3JkaW5hbFRvUG9zdE9yZGVy
SW5kZXggLSBgbm9kZU9yZGluYWxgIHRvIGEgYHBvc3RPcmRlckluZGV4YC4KKy8vICAgLSBwb3N0
T3JkZXJJbmRleFRvTm9kZU9yZGluYWwgLSBgcG9zdE9yZGVySW5kZXhgIHRvIGEgYG5vZGVPcmRp
bmFsYC4KKworbGV0IG5leHRTbmFwc2hvdElkZW50aWZpZXIgPSAxOworCitIZWFwU25hcHNob3Qg
PSBjbGFzcyBIZWFwU25hcHNob3QKK3sKKyAgICBjb25zdHJ1Y3RvcihvYmplY3RJZCwgc25hcHNo
b3REYXRhU3RyaW5nLCB0aXRsZSA9IG51bGwpCisgICAgeworICAgICAgICB0aGlzLl9pZGVudGlm
aWVyID0gbmV4dFNuYXBzaG90SWRlbnRpZmllcisrOworICAgICAgICB0aGlzLl9vYmplY3RJZCA9
IG9iamVjdElkOworICAgICAgICB0aGlzLl90aXRsZSA9IHRpdGxlOworCisgICAgICAgIGxldCBq
c29uID0gSlNPTi5wYXJzZShzbmFwc2hvdERhdGFTdHJpbmcpOworICAgICAgICBzbmFwc2hvdERh
dGFTdHJpbmcgPSBudWxsOworCisgICAgICAgIGxldCB7dmVyc2lvbiwgdHlwZSwgbm9kZXMsIG5v
ZGVDbGFzc05hbWVzLCBlZGdlcywgZWRnZVR5cGVzLCBlZGdlTmFtZXMsIHJvb3RzLCBsYWJlbHN9
ID0ganNvbjsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodmVyc2lvbiA9PT0gMSwgIkV4cGVjdCBK
YXZhU2NyaXB0Q29yZSBIZWFwIFNuYXBzaG90IHZlcnNpb24gMSIpOworICAgICAgICBjb25zb2xl
LmFzc2VydCh0eXBlID09PSAiR0NEZWJ1Z2dpbmciLCAiRXhwZWN0IGEgR0NEZWJ1Z2dpbmctdHlw
ZSBzbmFwc2hvdCIpOworCisgICAgICAgIHRoaXMuX25vZGVzID0gbm9kZXM7CisgICAgICAgIHRo
aXMuX25vZGVDb3VudCA9IG5vZGVzLmxlbmd0aCAvIG5vZGVGaWVsZENvdW50OworCisgICAgICAg
IHRoaXMuX3Jvb3RzID0gcm9vdHM7CisgICAgICAgIHRoaXMuX3Jvb3RDb3VudCA9IHJvb3RzLmxl
bmd0aCAvIHJvb3RGaWVsZENvdW50OworCisgICAgICAgIHRoaXMuX2VkZ2VzID0gZWRnZXM7Cisg
ICAgICAgIHRoaXMuX2VkZ2VDb3VudCA9IGVkZ2VzLmxlbmd0aCAvIGVkZ2VGaWVsZENvdW50Owor
CisgICAgICAgIHRoaXMuX2VkZ2VUeXBlc1RhYmxlID0gZWRnZVR5cGVzOworICAgICAgICB0aGlz
Ll9lZGdlTmFtZXNUYWJsZSA9IGVkZ2VOYW1lczsKKyAgICAgICAgdGhpcy5fbm9kZUNsYXNzTmFt
ZXNUYWJsZSA9IG5vZGVDbGFzc05hbWVzOworICAgICAgICB0aGlzLl9sYWJlbHNUYWJsZSA9IGxh
YmVsczsKKworICAgICAgICB0aGlzLl90b3RhbFNpemUgPSAwOworICAgICAgICB0aGlzLl9ub2Rl
SWRlbnRpZmllclRvT3JkaW5hbCA9IG5ldyBNYXA7IC8vIDxub2RlIGlkZW50aWZpZXI+ID0+IG5v
ZGVPcmRpbmFsCisgICAgICAgIHRoaXMuX2xhc3ROb2RlSWRlbnRpZmllciA9IDA7CisgICAgICAg
IGZvciAobGV0IG5vZGVJbmRleCA9IDA7IG5vZGVJbmRleCA8IG5vZGVzLmxlbmd0aDsgbm9kZUlu
ZGV4ICs9IG5vZGVGaWVsZENvdW50KSB7CisgICAgICAgICAgICBsZXQgbm9kZU9yZGluYWwgPSBu
b2RlSW5kZXggLyBub2RlRmllbGRDb3VudDsKKyAgICAgICAgICAgIGxldCBub2RlSWRlbnRpZmll
ciA9IG5vZGVzW25vZGVJbmRleCArIG5vZGVJZE9mZnNldF07CisgICAgICAgICAgICB0aGlzLl9u
b2RlSWRlbnRpZmllclRvT3JkaW5hbC5zZXQobm9kZUlkZW50aWZpZXIsIG5vZGVPcmRpbmFsKTsK
KyAgICAgICAgICAgIHRoaXMuX3RvdGFsU2l6ZSArPSBub2Rlc1tub2RlSW5kZXggKyBub2RlU2l6
ZU9mZnNldF07CisgICAgICAgICAgICBpZiAobm9kZUlkZW50aWZpZXIgPiB0aGlzLl9sYXN0Tm9k
ZUlkZW50aWZpZXIpCisgICAgICAgICAgICAgICAgdGhpcy5fbGFzdE5vZGVJZGVudGlmaWVyID0g
bm9kZUlkZW50aWZpZXI7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9yb290SWRlbnRpZmll
clRvUmVhc29ucyA9IG5ldyBNYXA7IC8vIDxub2RlIGlkZW50aWZpZXI+ID0+IFNldCBvZiByb290
IHJlYXNvbnMKKyAgICAgICAgZm9yIChsZXQgcm9vdEluZGV4ID0gMDsgcm9vdEluZGV4IDwgcm9v
dHMubGVuZ3RoOyByb290SW5kZXggKz0gcm9vdEZpZWxkQ291bnQpIHsKKyAgICAgICAgICAgIGxl
dCByb290T3JkaW5hbCA9IHJvb3RJbmRleCAvIHJvb3RGaWVsZENvdW50OworICAgICAgICAgICAg
bGV0IHJvb3RJZGVudGlmaWVyID0gcm9vdHNbcm9vdEluZGV4ICsgcm9vdElkT2Zmc2V0XTsKKyAg
ICAgICAgICAgIGxldCByb290UmVhc29uSW5kZXggPSByb290c1tyb290SW5kZXggKyByb290TGFi
ZWxPZmZzZXRdOworICAgICAgICAgICAgbGV0IHJvb3RSZWFjaGFiaWxpdHlJbmRleCA9IHJvb3Rz
W3Jvb3RJbmRleCArIHJlYWNoYWJpbGl0eVJlYXNvbk9mZnNldF07CisKKyAgICAgICAgICAgIGxl
dCBleGlzdGluZ1JlYXNvbnMgPSB0aGlzLl9yb290SWRlbnRpZmllclRvUmVhc29ucy5nZXQocm9v
dElkZW50aWZpZXIpOworICAgICAgICAgICAgaWYgKGV4aXN0aW5nUmVhc29ucykgeworICAgICAg
ICAgICAgICAgIGV4aXN0aW5nUmVhc29ucy5hZGQocm9vdFJlYXNvbkluZGV4KTsKKyAgICAgICAg
ICAgICAgICBleGlzdGluZ1JlYXNvbnMuYWRkKHJvb3RSZWFjaGFiaWxpdHlJbmRleCk7CisgICAg
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0aGlzLl9yb290SWRlbnRpZmllclRvUmVh
c29ucy5zZXQocm9vdElkZW50aWZpZXIsIG5ldyBTZXQoW3Jvb3RSZWFzb25JbmRleCwgcm9vdFJl
YWNoYWJpbGl0eUluZGV4XSkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRklYTUU6IFJlcGxh
Y2UgdG9JZGVudGlmaWVyIGFuZCBmcm9tSWRlbnRpZmllciBpbiBlZGdlcyB3aXRoIG5vZGVJbmRl
eCB0byByZWR1Y2UgaGFzaCBsb29rdXBzPworCisgICAgICAgIHRoaXMuX25vZGVPcmRpbmFsVG9G
aXJzdE91dGdvaW5nRWRnZSA9IG5ldyBVaW50MzJBcnJheSh0aGlzLl9ub2RlQ291bnQpOyAvLyBu
b2RlT3JkaW5hbCA9PiBlZGdlSW5kZXgKKyAgICAgICAgdGhpcy5fYnVpbGRPdXRnb2luZ0VkZ2Vz
KCk7CisKKyAgICAgICAgdGhpcy5fbm9kZU9yZGluYWxUb0ZpcnN0SW5jb21pbmdFZGdlID0gbmV3
IFVpbnQzMkFycmF5KHRoaXMuX25vZGVDb3VudCArIDEpOyAvLyBub2RlT3JkaW5hbCA9PiBpbmNv
bWluZ05vZGVzL2luY29taW5nRWRnZXMgaW5kZXgKKyAgICAgICAgdGhpcy5faW5jb21pbmdOb2Rl
cyA9IG5ldyBVaW50MzJBcnJheSh0aGlzLl9lZGdlQ291bnQpOyAvLyBmcm9tIG5vZGVPcmRpbmFs
cy4KKyAgICAgICAgdGhpcy5faW5jb21pbmdFZGdlcyA9IG5ldyBVaW50MzJBcnJheSh0aGlzLl9l
ZGdlQ291bnQpOyAvLyBlZGdlSW5kZXguCisgICAgICAgIHRoaXMuX2J1aWxkSW5jb21pbmdFZGdl
cygpOworCisgICAgICAgIGxldCB7bm9kZU9yZGluYWxUb1Bvc3RPcmRlckluZGV4LCBwb3N0T3Jk
ZXJJbmRleFRvTm9kZU9yZGluYWx9ID0gdGhpcy5fYnVpbGRQb3N0T3JkZXJJbmRleGVzKCk7CisK
KyAgICAgICAgdGhpcy5fbm9kZU9yZGluYWxUb0RvbWluYXRvck5vZGVPcmRpbmFsID0gbmV3IFVp
bnQzMkFycmF5KHRoaXMuX25vZGVDb3VudCk7CisgICAgICAgIHRoaXMuX25vZGVPcmRpbmFsSXNH
Q1Jvb3QgPSBuZXcgVWludDhBcnJheSh0aGlzLl9ub2RlQ291bnQpOworICAgICAgICB0aGlzLl9i
dWlsZERvbWluYXRvckluZGV4ZXMobm9kZU9yZGluYWxUb1Bvc3RPcmRlckluZGV4LCBwb3N0T3Jk
ZXJJbmRleFRvTm9kZU9yZGluYWwpOworCisgICAgICAgIG5vZGVPcmRpbmFsVG9Qb3N0T3JkZXJJ
bmRleCA9IG51bGw7CisKKyAgICAgICAgdGhpcy5fbm9kZU9yZGluYWxUb1JldGFpbmVkU2l6ZXMg
PSBuZXcgVWludDMyQXJyYXkodGhpcy5fbm9kZUNvdW50KTsKKyAgICAgICAgdGhpcy5fYnVpbGRS
ZXRhaW5lZFNpemVzKHBvc3RPcmRlckluZGV4VG9Ob2RlT3JkaW5hbCk7CisKKyAgICAgICAgcG9z
dE9yZGVySW5kZXhUb05vZGVPcmRpbmFsID0gbnVsbDsKKworICAgICAgICB0aGlzLl9ub2RlT3Jk
aW5hbElzRGVhZCA9IG5ldyBVaW50OEFycmF5KHRoaXMuX25vZGVDb3VudCk7CisKKyAgICAgICAg
bGV0IHtsaXZlU2l6ZSwgY2F0ZWdvcmllc30gPSBIZWFwU25hcHNob3QudXBkYXRlQ2F0ZWdvcmll
c0FuZE1ldGFkYXRhKHRoaXMpOworICAgICAgICB0aGlzLl9saXZlU2l6ZSA9IGxpdmVTaXplOwor
ICAgICAgICB0aGlzLl9jYXRlZ29yaWVzID0gY2F0ZWdvcmllczsKKyAgICB9CisKKyAgICBnZXQg
cHJveHlPYmplY3RJZCgpIHsgcmV0dXJuIHRoaXMuX3Byb3h5T2JqZWN0SWQ7IH0KKyAgICBnZXQg
aWRlbnRpZmllcigpIHsgcmV0dXJuIHRoaXMuX2lkZW50aWZpZXI7IH0KKyAgICBnZXQgdGl0bGUo
KSB7IHJldHVybiB0aGlzLl90aXRsZTsgfQorICAgIGdldCB0b3RhbFNpemUoKSB7IHJldHVybiB0
aGlzLl90b3RhbFNpemU7IH0KKyAgICBnZXQgdG90YWxPYmplY3RDb3VudCgpIHsgcmV0dXJuIHRo
aXMuX3RvdGFsT2JqZWN0Q291bnQ7IH0KKyAgICBnZXQgbGl2ZVNpemUoKSB7IHJldHVybiB0aGlz
Ll9saXZlU2l6ZTsgfQorICAgIGdldCBjYXRlZ29yaWVzKCkgeyByZXR1cm4gdGhpcy5fY2F0ZWdv
cmllczsgfQorICAgIGdldCBpbnZhbGlkKCkgeyByZXR1cm4gdGhpcy5fcHJveHlPYmplY3RJZCA9
PT0gMDsgfQorCisgICAgLy8gU3RhdGljCisKKyAgICBzdGF0aWMgdXBkYXRlQ2F0ZWdvcmllc0Fu
ZE1ldGFkYXRhKHNuYXBzaG90LCBhbGxvd05vZGVJZGVudGlmaWVyQ2FsbGJhY2spCisgICAgewor
ICAgICAgICBsZXQgbGl2ZVNpemUgPSAwOworICAgICAgICBsZXQgY2F0ZWdvcmllcyA9IHt9Owor
CisgICAgICAgIGxldCBub2RlcyA9IHNuYXBzaG90Ll9ub2RlczsKKyAgICAgICAgbGV0IG5vZGVD
bGFzc05hbWVzVGFibGUgPSBzbmFwc2hvdC5fbm9kZUNsYXNzTmFtZXNUYWJsZTsKKyAgICAgICAg
bGV0IG5vZGVPcmRpbmFsVG9SZXRhaW5lZFNpemVzID0gc25hcHNob3QuX25vZGVPcmRpbmFsVG9S
ZXRhaW5lZFNpemVzOworICAgICAgICBsZXQgbm9kZU9yZGluYWxJc0RlYWQgPSBzbmFwc2hvdC5f
bm9kZU9yZGluYWxJc0RlYWQ7CisKKyAgICAgICAgLy8gU2tpcCB0aGUgPHJvb3Q+IG5vZGUuCisg
ICAgICAgIGxldCBmaXJzdE5vZGVJbmRleCA9IG5vZGVGaWVsZENvdW50OworICAgICAgICBsZXQg
Zmlyc3ROb2RlT3JkaW5hbCA9IDE7CisgICAgICAgIGZvciAobGV0IG5vZGVJbmRleCA9IGZpcnN0
Tm9kZUluZGV4LCBub2RlT3JkaW5hbCA9IGZpcnN0Tm9kZU9yZGluYWw7IG5vZGVJbmRleCA8IG5v
ZGVzLmxlbmd0aDsgbm9kZUluZGV4ICs9IG5vZGVGaWVsZENvdW50LCBub2RlT3JkaW5hbCsrKSB7
CisgICAgICAgICAgICBpZiAoYWxsb3dOb2RlSWRlbnRpZmllckNhbGxiYWNrICYmICFhbGxvd05v
ZGVJZGVudGlmaWVyQ2FsbGJhY2sobm9kZXNbbm9kZUluZGV4ICsgbm9kZUlkT2Zmc2V0XSkpCisg
ICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGxldCBjbGFzc05hbWVUYWJs
ZUluZGV4ID0gbm9kZXNbbm9kZUluZGV4ICsgbm9kZUNsYXNzTmFtZU9mZnNldF07CisgICAgICAg
ICAgICBsZXQgY2xhc3NOYW1lID0gbm9kZUNsYXNzTmFtZXNUYWJsZVtjbGFzc05hbWVUYWJsZUlu
ZGV4XTsKKyAgICAgICAgICAgIGxldCBzaXplID0gbm9kZXNbbm9kZUluZGV4ICsgbm9kZVNpemVP
ZmZzZXRdOworICAgICAgICAgICAgbGV0IHJldGFpbmVkU2l6ZSA9IG5vZGVPcmRpbmFsVG9SZXRh
aW5lZFNpemVzW25vZGVPcmRpbmFsXTsKKyAgICAgICAgICAgIGxldCBpbnRlcm5hbCA9IG5vZGVz
W25vZGVJbmRleCArIG5vZGVJbnRlcm5hbE9mZnNldF0gPyB0cnVlIDogZmFsc2U7CisgICAgICAg
ICAgICBsZXQgZGVhZCA9IG5vZGVPcmRpbmFsSXNEZWFkW25vZGVPcmRpbmFsXSA/IHRydWUgOiBm
YWxzZTsKKworICAgICAgICAgICAgbGV0IGNhdGVnb3J5ID0gY2F0ZWdvcmllc1tjbGFzc05hbWVd
OworICAgICAgICAgICAgaWYgKCFjYXRlZ29yeSkKKyAgICAgICAgICAgICAgICBjYXRlZ29yeSA9
IGNhdGVnb3JpZXNbY2xhc3NOYW1lXSA9IHtjbGFzc05hbWUsIHNpemU6IDAsIHJldGFpbmVkU2l6
ZTogMCwgY291bnQ6IDAsIGludGVybmFsQ291bnQ6IDAsIGRlYWRDb3VudDogMH07CisKKyAgICAg
ICAgICAgIGNhdGVnb3J5LnNpemUgKz0gc2l6ZTsKKyAgICAgICAgICAgIGNhdGVnb3J5LnJldGFp
bmVkU2l6ZSArPSByZXRhaW5lZFNpemU7CisgICAgICAgICAgICBjYXRlZ29yeS5jb3VudCArPSAx
OworICAgICAgICAgICAgaWYgKGludGVybmFsKQorICAgICAgICAgICAgICAgIGNhdGVnb3J5Lmlu
dGVybmFsQ291bnQgKz0gMTsKKyAgICAgICAgICAgIGlmIChkZWFkKQorICAgICAgICAgICAgICAg
IGNhdGVnb3J5LmRlYWRDb3VudCArPSAxOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIGxpdmVTaXplICs9IHNpemU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4ge2xpdmVT
aXplLCBjYXRlZ29yaWVzfTsKKyAgICB9CisKKyAgICBzdGF0aWMgYWxsb2NhdGlvbkJ1Y2tldENv
dW50cyhzbmFwc2hvdCwgYnVja2V0U2l6ZXMsIGFsbG93Tm9kZUlkZW50aWZpZXJDYWxsYmFjaykK
KyAgICB7CisgICAgICAgIGxldCBjb3VudHMgPSBuZXcgQXJyYXkoYnVja2V0U2l6ZXMubGVuZ3Ro
ICsgMSk7CisgICAgICAgIGxldCByZW1haW5kZXJCdWNrZXQgPSBjb3VudHMubGVuZ3RoIC0gMTsK
KyAgICAgICAgY291bnRzLmZpbGwoMCk7CisKKyAgICAgICAgbGV0IG5vZGVzID0gc25hcHNob3Qu
X25vZGVzOworCisgICAgICAgIC8vIFNraXAgdGhlIDxyb290PiBub2RlLgorICAgICAgICBsZXQg
Zmlyc3ROb2RlSW5kZXggPSBub2RlRmllbGRDb3VudDsKKworICAgIG91dGVyOgorICAgICAgICBm
b3IgKGxldCBub2RlSW5kZXggPSBmaXJzdE5vZGVJbmRleDsgbm9kZUluZGV4IDwgbm9kZXMubGVu
Z3RoOyBub2RlSW5kZXggKz0gbm9kZUZpZWxkQ291bnQpIHsKKyAgICAgICAgICAgIGlmIChhbGxv
d05vZGVJZGVudGlmaWVyQ2FsbGJhY2sgJiYgIWFsbG93Tm9kZUlkZW50aWZpZXJDYWxsYmFjayhu
b2Rlc1tub2RlSW5kZXggKyBub2RlSWRPZmZzZXRdKSkKKyAgICAgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICAgICAgbGV0IHNpemUgPSBub2Rlc1tub2RlSW5kZXggKyBub2RlU2l6ZU9m
ZnNldF07CisgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJ1Y2tldFNpemVzLmxlbmd0
aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHNpemUgPCBidWNrZXRTaXplc1tpXSkgewor
ICAgICAgICAgICAgICAgICAgICBjb3VudHNbaV0rKzsKKyAgICAgICAgICAgICAgICAgICAgY29u
dGludWUgb3V0ZXI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAg
ICAgY291bnRzW3JlbWFpbmRlckJ1Y2tldF0rKzsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVy
biBjb3VudHM7CisgICAgfQorCisgICAgc3RhdGljIGluc3RhbmNlc1dpdGhDbGFzc05hbWUoc25h
cHNob3QsIGNsYXNzTmFtZSwgYWxsb3dOb2RlSWRlbnRpZmllckNhbGxiYWNrKQorICAgIHsKKyAg
ICAgICAgbGV0IGluc3RhbmNlcyA9IFtdOworCisgICAgICAgIGxldCBub2RlcyA9IHNuYXBzaG90
Ll9ub2RlczsKKyAgICAgICAgbGV0IG5vZGVDbGFzc05hbWVzVGFibGUgPSBzbmFwc2hvdC5fbm9k
ZUNsYXNzTmFtZXNUYWJsZTsKKworICAgICAgICAvLyBTa2lwIHRoZSA8cm9vdD4gbm9kZS4KKyAg
ICAgICAgbGV0IGZpcnN0Tm9kZUluZGV4ID0gbm9kZUZpZWxkQ291bnQ7CisgICAgICAgIGxldCBm
aXJzdE5vZGVPcmRpbmFsID0gMTsKKyAgICAgICAgZm9yIChsZXQgbm9kZUluZGV4ID0gZmlyc3RO
b2RlSW5kZXgsIG5vZGVPcmRpbmFsID0gZmlyc3ROb2RlT3JkaW5hbDsgbm9kZUluZGV4IDwgbm9k
ZXMubGVuZ3RoOyBub2RlSW5kZXggKz0gbm9kZUZpZWxkQ291bnQsIG5vZGVPcmRpbmFsKyspIHsK
KyAgICAgICAgICAgIGlmIChhbGxvd05vZGVJZGVudGlmaWVyQ2FsbGJhY2sgJiYgIWFsbG93Tm9k
ZUlkZW50aWZpZXJDYWxsYmFjayhub2Rlc1tub2RlSW5kZXggKyBub2RlSWRPZmZzZXRdKSkKKyAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgbGV0IGNsYXNzTmFtZVRhYmxl
SW5kZXggPSBub2Rlc1tub2RlSW5kZXggKyBub2RlQ2xhc3NOYW1lT2Zmc2V0XTsKKyAgICAgICAg
ICAgIGlmIChub2RlQ2xhc3NOYW1lc1RhYmxlW2NsYXNzTmFtZVRhYmxlSW5kZXhdID09PSBjbGFz
c05hbWUpCisgICAgICAgICAgICAgICAgaW5zdGFuY2VzLnB1c2gobm9kZUluZGV4KTsKKyAgICAg
ICAgfQorCisgICAgICAgIHJldHVybiBpbnN0YW5jZXMubWFwKHNuYXBzaG90LnNlcmlhbGl6ZU5v
ZGUsIHNuYXBzaG90KTsKKyAgICB9CisKKyAgICAvLyBXb3JrZXIgTWV0aG9kcworCisgICAgYWxs
b2NhdGlvbkJ1Y2tldENvdW50cyhidWNrZXRTaXplcykKKyAgICB7CisgICAgICAgIHJldHVybiBI
ZWFwU25hcHNob3QuYWxsb2NhdGlvbkJ1Y2tldENvdW50cyh0aGlzLCBidWNrZXRTaXplcyk7Cisg
ICAgfQorCisgICAgaW5zdGFuY2VzV2l0aENsYXNzTmFtZShjbGFzc05hbWUpCisgICAgeworICAg
ICAgICByZXR1cm4gSGVhcFNuYXBzaG90Lmluc3RhbmNlc1dpdGhDbGFzc05hbWUodGhpcywgY2xh
c3NOYW1lKTsKKyAgICB9CisKKyAgICB1cGRhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEhl
YXBTbmFwc2hvdC51cGRhdGVDYXRlZ29yaWVzQW5kTWV0YWRhdGEodGhpcyk7CisgICAgfQorCisg
ICAgbm9kZVdpdGhJZGVudGlmaWVyKG5vZGVJZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAgbGV0
IG5vZGVPcmRpbmFsID0gdGhpcy5fbm9kZUlkZW50aWZpZXJUb09yZGluYWwuZ2V0KG5vZGVJZGVu
dGlmaWVyKTsKKyAgICAgICAgbGV0IG5vZGVJbmRleCA9IG5vZGVPcmRpbmFsICogbm9kZUZpZWxk
Q291bnQ7CisgICAgICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZU5vZGUobm9kZUluZGV4KTsKKyAg
ICB9CisKKyAgICBzaG9ydGVzdEdDUm9vdFBhdGgobm9kZUlkZW50aWZpZXIpCisgICAgeworICAg
ICAgICAvLyBSZXR1cm5zIGFuIGFycmF5IGZyb20gdGhpcyBub2RlIHRvIGEgZ2NSb290IG5vZGUu
CisgICAgICAgIC8vIEUuZy4gW05vZGUgKHRhcmdldCksIEVkZ2UsIE5vZGUsIEVkZ2UsIE5vZGUg
KHJvb3QpXS4KKyAgICAgICAgLy8gSW50ZXJuYWwgbm9kZXMgYXJlIGF2b2lkZWQsIHNvIGlmIHRo
ZSBwYXRoIGlzIGVtcHR5IHRoaXMKKyAgICAgICAgLy8gbm9kZSBpcyBlaXRoZXIgYSBnY1Jvb3Qg
b3Igb25seSByZWFjaGFibGUgdmlhIEludGVybmFsIG5vZGVzLgorCisgICAgICAgIGxldCBwYXRo
cyA9IHRoaXMuX2djUm9vdFBhdGhzKG5vZGVJZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKCFwYXRo
cy5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gW107CisKKyAgICAgICAgcGF0aHMuc29ydCgo
YSwgYikgPT4gYS5sZW5ndGggLSBiLmxlbmd0aCk7CisKKyAgICAgICAgbGV0IHNob3J0ZXN0UGF0
aFdpdGhHbG9iYWxPYmplY3QgPSBudWxsOworICAgICAgICBmb3IgKGxldCBwYXRoIG9mIHBhdGhz
KSB7CisgICAgICAgICAgICBsZXQgbGFzdE5vZGVJbmRleCA9IHBhdGhbcGF0aC5sZW5ndGggLSAx
XS5ub2RlOworICAgICAgICAgICAgaWYgKHRoaXMuX2lzTm9kZUdsb2JhbE9iamVjdChsYXN0Tm9k
ZUluZGV4KSkgeworICAgICAgICAgICAgICAgIHNob3J0ZXN0UGF0aFdpdGhHbG9iYWxPYmplY3Qg
PSBwYXRoOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9
CisKKyAgICAgICAgbGV0IHNob3J0ZXN0UGF0aCA9IHNob3J0ZXN0UGF0aFdpdGhHbG9iYWxPYmpl
Y3QgfHwgcGF0aHNbMF07CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCJub2RlIiBpbiBzaG9ydGVz
dFBhdGhbMF0sICJQYXRoIHNob3VsZCBzdGFydCB3aXRoIGEgbm9kZSIpOworICAgICAgICBjb25z
b2xlLmFzc2VydCgibm9kZSIgaW4gc2hvcnRlc3RQYXRoW3Nob3J0ZXN0UGF0aC5sZW5ndGggLSAx
XSwgIlBhdGggc2hvdWxkIGVuZCB3aXRoIGEgbm9kZSIpOworCisgICAgICAgIHJldHVybiBzaG9y
dGVzdFBhdGgubWFwKChjb21wb25lbnQpID0+IHsKKyAgICAgICAgICAgIGlmIChjb21wb25lbnQu
bm9kZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zZXJpYWxpemVOb2RlKGNvbXBvbmVu
dC5ub2RlKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZUVkZ2UoY29tcG9uZW50
LmVkZ2UpOworICAgICAgICB9KTsKKyAgICB9CisgICAgCisgICAgcm9vdE5vZGVzKCkKKyAgICB7
CisgICAgICAgIGxldCByb290Tm9kZUluZGV4U2V0ID0gbmV3IFNldDsKKworICAgICAgICAvLyBJ
ZGVudGlmaWVycyBjYW4gb2NjdXIgbXVsdGlwbGUgdGltZXMgaW4gdGhlIHJvb3RzIGxpc3QuCisg
ICAgICAgIGZvciAobGV0IHJvb3RJbmRleCA9IDA7IHJvb3RJbmRleCA8IHRoaXMuX3Jvb3RzLmxl
bmd0aDsgcm9vdEluZGV4ICs9IHJvb3RGaWVsZENvdW50KSB7CisgICAgICAgICAgICBsZXQgcm9v
dE9yZGluYWwgPSByb290SW5kZXggLyByb290RmllbGRDb3VudDsKKyAgICAgICAgICAgIGxldCBy
b290SWRlbnRpZmllciA9IHRoaXMuX3Jvb3RzW3Jvb3RJbmRleCArIHJvb3RJZE9mZnNldF07CisK
KyAgICAgICAgICAgIGxldCB0b05vZGVPcmRpbmFsID0gdGhpcy5fbm9kZUlkZW50aWZpZXJUb09y
ZGluYWwuZ2V0KHJvb3RJZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGxldCB0b05vZGVJbmRleCA9
IHRvTm9kZU9yZGluYWwgKiBub2RlRmllbGRDb3VudDsKKworICAgICAgICAgICAgcm9vdE5vZGVJ
bmRleFNldC5hZGQodG9Ob2RlSW5kZXgpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIEFy
cmF5LmZyb20ocm9vdE5vZGVJbmRleFNldC52YWx1ZXMoKSkubWFwKHRoaXMuc2VyaWFsaXplTm9k
ZSwgdGhpcyk7CisgICAgfQorICAgIAorICAgIHJlYXNvbk5hbWVzRm9yUm9vdChyb290SWRlbnRp
ZmllcikKKyAgICB7CisgICAgICAgIGxldCByZWFzb25JbmRleGVzID0gdGhpcy5fcm9vdElkZW50
aWZpZXJUb1JlYXNvbnMuZ2V0KHJvb3RJZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKCFyZWFzb25J
bmRleGVzKQorICAgICAgICAgICAgcmV0dXJuIFtdOworICAgICAgICByZXR1cm4gQXJyYXkuZnJv
bShyZWFzb25JbmRleGVzKS5tYXAodGhpcy5sYWJlbEZvckluZGV4LCB0aGlzKS5maWx0ZXIoYSA9
PiBhICE9IDApCisgICAgfQorCisgICAgZG9taW5hdGVkTm9kZXMobm9kZUlkZW50aWZpZXIpCisg
ICAgeworICAgICAgICBsZXQgZG9taW5hdGVkTm9kZXMgPSBbXTsKKworICAgICAgICBsZXQgdGFy
Z2V0Tm9kZU9yZGluYWwgPSB0aGlzLl9ub2RlSWRlbnRpZmllclRvT3JkaW5hbC5nZXQobm9kZUlk
ZW50aWZpZXIpOworICAgICAgICBmb3IgKGxldCBub2RlT3JkaW5hbCA9IDA7IG5vZGVPcmRpbmFs
IDwgdGhpcy5fbm9kZUNvdW50OyArK25vZGVPcmRpbmFsKSB7CisgICAgICAgICAgICBpZiAodGhp
cy5fbm9kZU9yZGluYWxUb0RvbWluYXRvck5vZGVPcmRpbmFsW25vZGVPcmRpbmFsXSA9PT0gdGFy
Z2V0Tm9kZU9yZGluYWwpCisgICAgICAgICAgICAgICAgZG9taW5hdGVkTm9kZXMucHVzaChub2Rl
T3JkaW5hbCAqIG5vZGVGaWVsZENvdW50KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBk
b21pbmF0ZWROb2Rlcy5tYXAodGhpcy5zZXJpYWxpemVOb2RlLCB0aGlzKTsKKyAgICB9CisKKyAg
ICByZXRhaW5lZE5vZGVzKG5vZGVJZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAgbGV0IHJldGFp
bmVkTm9kZXMgPSBbXTsKKyAgICAgICAgbGV0IGVkZ2VzID0gW107CisKKyAgICAgICAgbGV0IG5v
ZGVPcmRpbmFsID0gdGhpcy5fbm9kZUlkZW50aWZpZXJUb09yZGluYWwuZ2V0KG5vZGVJZGVudGlm
aWVyKTsKKyAgICAgICAgbGV0IGVkZ2VJbmRleCA9IHRoaXMuX25vZGVPcmRpbmFsVG9GaXJzdE91
dGdvaW5nRWRnZVtub2RlT3JkaW5hbF07CisgICAgICAgIGZvciAoOyB0aGlzLl9lZGdlc1tlZGdl
SW5kZXggKyBlZGdlRnJvbUlkT2Zmc2V0XSA9PT0gbm9kZUlkZW50aWZpZXI7IGVkZ2VJbmRleCAr
PSBlZGdlRmllbGRDb3VudCkgeworICAgICAgICAgICAgbGV0IHRvTm9kZUlkZW50aWZpZXIgPSB0
aGlzLl9lZGdlc1tlZGdlSW5kZXggKyBlZGdlVG9JZE9mZnNldF07CisgICAgICAgICAgICBsZXQg
dG9Ob2RlT3JkaW5hbCA9IHRoaXMuX25vZGVJZGVudGlmaWVyVG9PcmRpbmFsLmdldCh0b05vZGVJ
ZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGxldCB0b05vZGVJbmRleCA9IHRvTm9kZU9yZGluYWwg
KiBub2RlRmllbGRDb3VudDsKKyAgICAgICAgICAgIHJldGFpbmVkTm9kZXMucHVzaCh0b05vZGVJ
bmRleCk7CisgICAgICAgICAgICBlZGdlcy5wdXNoKGVkZ2VJbmRleCk7CisgICAgICAgIH0KKwor
ICAgICAgICByZXR1cm4geworICAgICAgICAgICAgcmV0YWluZWROb2RlczogcmV0YWluZWROb2Rl
cy5tYXAodGhpcy5zZXJpYWxpemVOb2RlLCB0aGlzKSwKKyAgICAgICAgICAgIGVkZ2VzOiBlZGdl
cy5tYXAodGhpcy5zZXJpYWxpemVFZGdlLCB0aGlzKSwKKyAgICAgICAgfTsKKyAgICB9CisKKyAg
ICByZXRhaW5lcnMobm9kZUlkZW50aWZpZXIpCisgICAgeworICAgICAgICBsZXQgcmV0YWluZXJz
ID0gW107CisgICAgICAgIGxldCBlZGdlcyA9IFtdOworCisgICAgICAgIGxldCBub2RlT3JkaW5h
bCA9IHRoaXMuX25vZGVJZGVudGlmaWVyVG9PcmRpbmFsLmdldChub2RlSWRlbnRpZmllcik7Cisg
ICAgICAgIGxldCBpbmNvbWluZ0VkZ2VJbmRleCA9IHRoaXMuX25vZGVPcmRpbmFsVG9GaXJzdElu
Y29taW5nRWRnZVtub2RlT3JkaW5hbF07CisgICAgICAgIGxldCBpbmNvbWluZ0VkZ2VJbmRleEVu
ZCA9IHRoaXMuX25vZGVPcmRpbmFsVG9GaXJzdEluY29taW5nRWRnZVtub2RlT3JkaW5hbCArIDFd
OworICAgICAgICBmb3IgKGxldCBlZGdlSW5kZXggPSBpbmNvbWluZ0VkZ2VJbmRleDsgZWRnZUlu
ZGV4IDwgaW5jb21pbmdFZGdlSW5kZXhFbmQ7ICsrZWRnZUluZGV4KSB7CisgICAgICAgICAgICBs
ZXQgZnJvbU5vZGVPcmRpbmFsID0gdGhpcy5faW5jb21pbmdOb2Rlc1tlZGdlSW5kZXhdOworICAg
ICAgICAgICAgbGV0IGZyb21Ob2RlSW5kZXggPSBmcm9tTm9kZU9yZGluYWwgKiBub2RlRmllbGRD
b3VudDsKKyAgICAgICAgICAgIHJldGFpbmVycy5wdXNoKGZyb21Ob2RlSW5kZXgpOworICAgICAg
ICAgICAgZWRnZXMucHVzaCh0aGlzLl9pbmNvbWluZ0VkZ2VzW2VkZ2VJbmRleF0pOworICAgICAg
ICB9CisKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHJldGFpbmVyczogcmV0YWluZXJz
Lm1hcCh0aGlzLnNlcmlhbGl6ZU5vZGUsIHRoaXMpLAorICAgICAgICAgICAgZWRnZXM6IGVkZ2Vz
Lm1hcCh0aGlzLnNlcmlhbGl6ZUVkZ2UsIHRoaXMpLAorICAgICAgICB9OworICAgIH0KKworICAg
IHVwZGF0ZURlYWROb2Rlc0FuZEdhdGhlckNvbGxlY3Rpb25EYXRhKHNuYXBzaG90cykKKyAgICB7
CisgICAgICAgIGxldCBwcmV2aW91c1NuYXBzaG90SW5kZXggPSBzbmFwc2hvdHMuaW5kZXhPZih0
aGlzKSAtIDE7CisgICAgICAgIGxldCBwcmV2aW91c1NuYXBzaG90ID0gc25hcHNob3RzW3ByZXZp
b3VzU25hcHNob3RJbmRleF07CisgICAgICAgIGlmICghcHJldmlvdXNTbmFwc2hvdCkKKyAgICAg
ICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgIGxldCBsYXN0Tm9kZUlkZW50aWZpZXIgPSBw
cmV2aW91c1NuYXBzaG90Ll9sYXN0Tm9kZUlkZW50aWZpZXI7CisKKyAgICAgICAgLy8gQWxsIG9m
IHRoZSBub2RlIGlkZW50aWZpZXJzIHRoYXQgY291bGQgaGF2ZSBleGlzdGVkIHByaW9yIHRvIHRo
aXMgc25hcHNob3QuCisgICAgICAgIGxldCBrbm93biA9IG5ldyBNYXA7CisgICAgICAgIGZvciAo
bGV0IG5vZGVJbmRleCA9IDA7IG5vZGVJbmRleCA8IHRoaXMuX25vZGVzLmxlbmd0aDsgbm9kZUlu
ZGV4ICs9IG5vZGVGaWVsZENvdW50KSB7CisgICAgICAgICAgICBsZXQgbm9kZUlkZW50aWZpZXIg
PSB0aGlzLl9ub2Rlc1tub2RlSW5kZXggKyBub2RlSWRPZmZzZXRdOworICAgICAgICAgICAgaWYg
KG5vZGVJZGVudGlmaWVyID4gbGFzdE5vZGVJZGVudGlmaWVyKQorICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAga25vd24uc2V0KG5vZGVJZGVudGlmaWVyLCBub2RlSW5kZXgp
OworICAgICAgICB9CisKKyAgICAgICAgLy8gRGV0ZXJtaW5lIHdoaWNoIG5vZGUgaWRlbnRpZmll
cnMgaGF2ZSBzaW5jZSBiZWVuIGRlbGV0ZWQuCisgICAgICAgIGxldCBjb2xsZWN0ZWROb2Rlc0xp
c3QgPSBbXTsKKyAgICAgICAgZm9yIChsZXQgbm9kZUluZGV4ID0gMDsgbm9kZUluZGV4IDwgcHJl
dmlvdXNTbmFwc2hvdC5fbm9kZXMubGVuZ3RoOyBub2RlSW5kZXggKz0gbm9kZUZpZWxkQ291bnQp
IHsKKyAgICAgICAgICAgIGxldCBub2RlSWRlbnRpZmllciA9IHByZXZpb3VzU25hcHNob3QuX25v
ZGVzW25vZGVJbmRleCArIG5vZGVJZE9mZnNldF07CisgICAgICAgICAgICBsZXQgd2FzRGVsZXRl
ZCA9ICFrbm93bi5oYXMobm9kZUlkZW50aWZpZXIpOworICAgICAgICAgICAgaWYgKHdhc0RlbGV0
ZWQpCisgICAgICAgICAgICAgICAgY29sbGVjdGVkTm9kZXNMaXN0LnB1c2gobm9kZUlkZW50aWZp
ZXIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVXBkYXRlIGRlYWQgbm9kZXMgaW4gcHJldmlv
dXMgc25hcHNob3RzLgorICAgICAgICBsZXQgYWZmZWN0ZWRTbmFwc2hvdHMgPSBbXTsKKyAgICAg
ICAgZm9yIChsZXQgc25hcHNob3Qgb2Ygc25hcHNob3RzKSB7CisgICAgICAgICAgICBpZiAoc25h
cHNob3QgPT09IHRoaXMpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBpZiAo
c25hcHNob3QuX21hcmtEZWFkTm9kZXMoY29sbGVjdGVkTm9kZXNMaXN0KSkKKyAgICAgICAgICAg
ICAgICBhZmZlY3RlZFNuYXBzaG90cy5wdXNoKHNuYXBzaG90Ll9pZGVudGlmaWVyKTsKKyAgICAg
ICAgfQorCisgICAgICAgIC8vIENvbnZlcnQgbGlzdCB0byBhIG1hcC4KKyAgICAgICAgbGV0IGNv
bGxlY3RlZE5vZGVzID0ge307CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sbGVjdGVk
Tm9kZXNMaXN0Lmxlbmd0aDsgKytpKQorICAgICAgICAgICAgY29sbGVjdGVkTm9kZXNbY29sbGVj
dGVkTm9kZXNMaXN0W2ldXSA9IHRydWU7CisKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAg
IGNvbGxlY3RlZE5vZGVzLAorICAgICAgICAgICAgYWZmZWN0ZWRTbmFwc2hvdHMsCisgICAgICAg
IH07CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBzZXJpYWxpemUoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIGlkZW50aWZpZXI6IHRoaXMuX2lkZW50aWZpZXIs
CisgICAgICAgICAgICB0aXRsZTogdGhpcy5fdGl0bGUsCisgICAgICAgICAgICB0b3RhbFNpemU6
IHRoaXMuX3RvdGFsU2l6ZSwKKyAgICAgICAgICAgIHRvdGFsT2JqZWN0Q291bnQ6IHRoaXMuX25v
ZGVDb3VudCAtIDEsIC8vIDxyb290Pi4KKyAgICAgICAgICAgIGxpdmVTaXplOiB0aGlzLl9saXZl
U2l6ZSwKKyAgICAgICAgICAgIGNhdGVnb3JpZXM6IHRoaXMuX2NhdGVnb3JpZXMsCisgICAgICAg
IH07CisgICAgfQorCisgICAgc2VyaWFsaXplTm9kZShub2RlSW5kZXgpCisgICAgeworICAgICAg
ICBjb25zb2xlLmFzc2VydCgobm9kZUluZGV4ICUgbm9kZUZpZWxkQ291bnQpID09PSAwLCAiSW52
YWxpZCBub2RlSW5kZXggdG8gc2VyaWFsaXplOiAiICsgbm9kZUluZGV4KTsKKworICAgICAgICBs
ZXQgbm9kZUlkZW50aWZpZXIgPSB0aGlzLl9ub2Rlc1tub2RlSW5kZXggKyBub2RlSWRPZmZzZXRd
OworICAgICAgICBsZXQgbm9kZU9yZGluYWwgPSBub2RlSW5kZXggLyBub2RlRmllbGRDb3VudDsK
KyAgICAgICAgbGV0IGVkZ2VJbmRleCA9IHRoaXMuX25vZGVPcmRpbmFsVG9GaXJzdE91dGdvaW5n
RWRnZVtub2RlT3JkaW5hbF07CisgICAgICAgIGxldCBoYXNDaGlsZHJlbiA9IHRoaXMuX2VkZ2Vz
W2VkZ2VJbmRleCArIGVkZ2VGcm9tSWRPZmZzZXRdID09PSBub2RlSWRlbnRpZmllcjsKKworICAg
ICAgICBsZXQgZG9taW5hdG9yTm9kZU9yZGluYWwgPSB0aGlzLl9ub2RlT3JkaW5hbFRvRG9taW5h
dG9yTm9kZU9yZGluYWxbbm9kZU9yZGluYWxdOworICAgICAgICBsZXQgZG9taW5hdG9yTm9kZUlu
ZGV4ID0gZG9taW5hdG9yTm9kZU9yZGluYWwgKiBub2RlRmllbGRDb3VudDsKKyAgICAgICAgbGV0
IGRvbWluYXRvck5vZGVJZGVudGlmaWVyID0gdGhpcy5fbm9kZXNbZG9taW5hdG9yTm9kZUluZGV4
ICsgbm9kZUlkT2Zmc2V0XTsKKworICAgICAgICBsZXQgcmVzdWx0ID0geworICAgICAgICAgICAg
aWQ6IG5vZGVJZGVudGlmaWVyLAorICAgICAgICAgICAgY2xhc3NOYW1lOiB0aGlzLl9ub2RlQ2xh
c3NOYW1lc1RhYmxlW3RoaXMuX25vZGVzW25vZGVJbmRleCArIG5vZGVDbGFzc05hbWVPZmZzZXRd
XSwKKyAgICAgICAgICAgIHNpemU6IHRoaXMuX25vZGVzW25vZGVJbmRleCArIG5vZGVTaXplT2Zm
c2V0XSwKKyAgICAgICAgICAgIHJldGFpbmVkU2l6ZTogdGhpcy5fbm9kZU9yZGluYWxUb1JldGFp
bmVkU2l6ZXNbbm9kZU9yZGluYWxdLAorICAgICAgICAgICAgaW50ZXJuYWw6IHRoaXMuX25vZGVz
W25vZGVJbmRleCArIG5vZGVJbnRlcm5hbE9mZnNldF0gPyB0cnVlIDogZmFsc2UsCisgICAgICAg
ICAgICBnY1Jvb3Q6IHRoaXMuX25vZGVPcmRpbmFsSXNHQ1Jvb3Rbbm9kZU9yZGluYWxdID8gdHJ1
ZSA6IGZhbHNlLAorICAgICAgICAgICAgbWFya2VkUm9vdCA6IHRoaXMuX3Jvb3RJZGVudGlmaWVy
VG9SZWFzb25zLmhhcyhub2RlSWRlbnRpZmllciksCisgICAgICAgICAgICBkZWFkOiB0aGlzLl9u
b2RlT3JkaW5hbElzRGVhZFtub2RlT3JkaW5hbF0gPyB0cnVlIDogZmFsc2UsCisgICAgICAgICAg
ICBhZGRyZXNzOiB0aGlzLl9ub2Rlc1tub2RlSW5kZXggKyBub2RlQWRkcmVzc09mZnNldF0sCisg
ICAgICAgICAgICBsYWJlbDogdGhpcy5fbGFiZWxzVGFibGVbdGhpcy5fbm9kZXNbbm9kZUluZGV4
ICsgbm9kZUxhYmVsT2Zmc2V0XV0sCisgICAgICAgICAgICBkb21pbmF0b3JOb2RlSWRlbnRpZmll
ciwKKyAgICAgICAgICAgIGhhc0NoaWxkcmVuLAorICAgICAgICB9OworCisgICAgICAgIGxldCB3
cmFwcGVkQWRkciA9IHRoaXMuX25vZGVzW25vZGVJbmRleCArIG5vZGVXcmFwcGVkQWRkcmVzc09m
ZnNldF07CisgICAgICAgIGlmICh3cmFwcGVkQWRkciAhPT0gIjB4MCIpCisgICAgICAgICAgICBy
ZXN1bHQud3JhcHBlZEFkZHJlc3MgPSB3cmFwcGVkQWRkcjsKKyAgICAgICAgCisgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgfQorCisgICAgbGFiZWxGb3JJbmRleChpbmRleCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0aGlzLl9sYWJlbHNUYWJsZVtpbmRleF07CisgICAgfQorCisgICAgc2Vy
aWFsaXplRWRnZShlZGdlSW5kZXgpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydCgoZWRn
ZUluZGV4ICUgZWRnZUZpZWxkQ291bnQpID09PSAwLCAiSW52YWxpZCBlZGdlSW5kZXggdG8gc2Vy
aWFsaXplIik7CisKKyAgICAgICAgbGV0IGVkZ2VUeXBlID0gdGhpcy5fZWRnZVR5cGVzVGFibGVb
dGhpcy5fZWRnZXNbZWRnZUluZGV4ICsgZWRnZVR5cGVPZmZzZXRdXTsKKyAgICAgICAgbGV0IGVk
Z2VEYXRhID0gdGhpcy5fZWRnZXNbZWRnZUluZGV4ICsgZWRnZURhdGFPZmZzZXRdOworICAgICAg
ICBzd2l0Y2ggKGVkZ2VUeXBlKSB7CisgICAgICAgIGNhc2UgIkludGVybmFsIjoKKyAgICAgICAg
ICAgIC8vIGVkZ2VEYXRhIGNhbiBiZSBpZ25vcmVkLgorICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgIlByb3BlcnR5IjoKKyAgICAgICAgY2FzZSAiVmFyaWFibGUiOgorICAgICAgICAg
ICAgLy8gZWRnZURhdGEgaXMgYSB0YWJsZSBpbmRleC4KKyAgICAgICAgICAgIGVkZ2VEYXRhID0g
dGhpcy5fZWRnZU5hbWVzVGFibGVbZWRnZURhdGFdOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgIkluZGV4IjoKKyAgICAgICAgICAgIC8vIGVkZ2VEYXRhIGlzIHRoZSBpbmRleC4K
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgY29uc29s
ZS5lcnJvcigiVW5leHBlY3RlZCBlZGdlIHR5cGU6ICIgKyBlZGdlVHlwZSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBmcm9t
OiB0aGlzLl9lZGdlc1tlZGdlSW5kZXggKyBlZGdlRnJvbUlkT2Zmc2V0XSwKKyAgICAgICAgICAg
IHRvOiB0aGlzLl9lZGdlc1tlZGdlSW5kZXggKyBlZGdlVG9JZE9mZnNldF0sCisgICAgICAgICAg
ICB0eXBlOiBlZGdlVHlwZSwKKyAgICAgICAgICAgIGRhdGE6IGVkZ2VEYXRhLAorICAgICAgICB9
OworICAgIH0KKworICAgIC8vIFByaXZhdGUKKworICAgIF9idWlsZE91dGdvaW5nRWRnZXMoKQor
ICAgIHsKKyAgICAgICAgbGV0IGxhc3RGcm9tSWRlbnRpZmllciA9IC0xOworICAgICAgICBmb3Ig
KGxldCBlZGdlSW5kZXggPSAwOyBlZGdlSW5kZXggPCB0aGlzLl9lZGdlcy5sZW5ndGg7IGVkZ2VJ
bmRleCArPSBlZGdlRmllbGRDb3VudCkgeworICAgICAgICAgICAgbGV0IGZyb21JZGVudGlmaWVy
ID0gdGhpcy5fZWRnZXNbZWRnZUluZGV4ICsgZWRnZUZyb21JZE9mZnNldF07CisgICAgICAgICAg
ICBjb25zb2xlLmFzc2VydChsYXN0RnJvbUlkZW50aWZpZXIgPD0gZnJvbUlkZW50aWZpZXIsICJF
ZGdlIGxpc3Qgc2hvdWxkIGJlIG9yZGVyZWQgYnkgZnJvbSBub2RlIGlkZW50aWZpZXIiKTsKKyAg
ICAgICAgICAgIGlmIChmcm9tSWRlbnRpZmllciAhPT0gbGFzdEZyb21JZGVudGlmaWVyKSB7Cisg
ICAgICAgICAgICAgICAgbGV0IG5vZGVPcmRpbmFsID0gdGhpcy5fbm9kZUlkZW50aWZpZXJUb09y
ZGluYWwuZ2V0KGZyb21JZGVudGlmaWVyKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9ub2RlT3Jk
aW5hbFRvRmlyc3RPdXRnb2luZ0VkZ2Vbbm9kZU9yZGluYWxdID0gZWRnZUluZGV4OworICAgICAg
ICAgICAgICAgIGxhc3RGcm9tSWRlbnRpZmllciA9IGZyb21JZGVudGlmaWVyOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgX2J1aWxkSW5jb21pbmdFZGdlcygpCisgICAg
eworICAgICAgICAvLyBGaXJzdCBjYWxjdWxhdGUgdGhlIGNvdW50IG9mIGluY29taW5nIGVkZ2Vz
IGZvciBlYWNoIG5vZGUuCisgICAgICAgIGZvciAobGV0IGVkZ2VJbmRleCA9IDA7IGVkZ2VJbmRl
eCA8IHRoaXMuX2VkZ2VzLmxlbmd0aDsgZWRnZUluZGV4ICs9IGVkZ2VGaWVsZENvdW50KSB7Cisg
ICAgICAgICAgICBsZXQgdG9JZGVudGlmaWVyID0gdGhpcy5fZWRnZXNbZWRnZUluZGV4ICsgZWRn
ZVRvSWRPZmZzZXRdOworICAgICAgICAgICAgbGV0IHRvTm9kZU9yZGluYWwgPSB0aGlzLl9ub2Rl
SWRlbnRpZmllclRvT3JkaW5hbC5nZXQodG9JZGVudGlmaWVyKTsKKyAgICAgICAgICAgIHRoaXMu
X25vZGVPcmRpbmFsVG9GaXJzdEluY29taW5nRWRnZVt0b05vZGVPcmRpbmFsXSsrOworICAgICAg
ICB9CisKKyAgICAgICAgLy8gUmVwbGFjZSB0aGUgY291bnRzIHdpdGggd2hhdCB3aWxsIGJlIHRo
ZSByZXN1bHRpbmcgaW5kZXggYnkgcnVubmluZyB1cCB0aGUgY291bnRzLgorICAgICAgICAvLyBT
dG9yZSB0aGUgY291bnRzIGluIHdoYXQgd2lsbCBiZSB0aGUgZWRnZXMgbGlzdCB0byB1c2Ugd2hl
biBwbGFjaW5nIGVkZ2VzIGluIHRoZSBsaXN0LgorICAgICAgICBsZXQgcnVubmluZ0ZpcnN0SW5k
ZXggPSAwOworICAgICAgICBmb3IgKGxldCBub2RlT3JkaW5hbCA9IDA7IG5vZGVPcmRpbmFsIDwg
dGhpcy5fbm9kZUNvdW50OyArK25vZGVPcmRpbmFsKSB7CisgICAgICAgICAgICBsZXQgY291bnQg
PSB0aGlzLl9ub2RlT3JkaW5hbFRvRmlyc3RJbmNvbWluZ0VkZ2Vbbm9kZU9yZGluYWxdOworICAg
ICAgICAgICAgdGhpcy5fbm9kZU9yZGluYWxUb0ZpcnN0SW5jb21pbmdFZGdlW25vZGVPcmRpbmFs
XSA9IHJ1bm5pbmdGaXJzdEluZGV4OworICAgICAgICAgICAgdGhpcy5faW5jb21pbmdOb2Rlc1ty
dW5uaW5nRmlyc3RJbmRleF0gPSBjb3VudDsKKyAgICAgICAgICAgIHJ1bm5pbmdGaXJzdEluZGV4
ICs9IGNvdW50OworICAgICAgICB9CisKKyAgICAgICAgLy8gRmlsbCBpbiB0aGUgaW5jb21pbmcg
ZWRnZXMgbGlzdC4gVXNlIHRoZSBjb3VudCBhcyBhbiBvZmZzZXQgd2hlbiBwbGFjaW5nIGVkZ2Vz
IGluIHRoZSBsaXN0LgorICAgICAgICBmb3IgKGxldCBlZGdlSW5kZXggPSAwOyBlZGdlSW5kZXgg
PCB0aGlzLl9lZGdlcy5sZW5ndGg7IGVkZ2VJbmRleCArPSBlZGdlRmllbGRDb3VudCkgeworICAg
ICAgICAgICAgbGV0IGZyb21JZGVudGlmaWVyID0gdGhpcy5fZWRnZXNbZWRnZUluZGV4ICsgZWRn
ZUZyb21JZE9mZnNldF07CisgICAgICAgICAgICBsZXQgZnJvbU5vZGVPcmRpbmFsID0gdGhpcy5f
bm9kZUlkZW50aWZpZXJUb09yZGluYWwuZ2V0KGZyb21JZGVudGlmaWVyKTsKKyAgICAgICAgICAg
IGxldCB0b0lkZW50aWZpZXIgPSB0aGlzLl9lZGdlc1tlZGdlSW5kZXggKyBlZGdlVG9JZE9mZnNl
dF07CisgICAgICAgICAgICBsZXQgdG9Ob2RlT3JkaW5hbCA9IHRoaXMuX25vZGVJZGVudGlmaWVy
VG9PcmRpbmFsLmdldCh0b0lkZW50aWZpZXIpOworCisgICAgICAgICAgICBsZXQgZmlyc3RJbmNv
bWluZ0VkZ2VJbmRleCA9IHRoaXMuX25vZGVPcmRpbmFsVG9GaXJzdEluY29taW5nRWRnZVt0b05v
ZGVPcmRpbmFsXTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2luY29taW5nTm9k
ZXNbZmlyc3RJbmNvbWluZ0VkZ2VJbmRleF0gPiAwLCAiU2hvdWxkIGJlIGV4cGVjdGluZyBlZGdl
cyBmb3IgdGhpcyBub2RlIik7CisgICAgICAgICAgICBsZXQgY291bnRBc09mZnNldCA9IHRoaXMu
X2luY29taW5nTm9kZXNbZmlyc3RJbmNvbWluZ0VkZ2VJbmRleF0tLTsKKyAgICAgICAgICAgIGxl
dCBpbmRleCA9IGZpcnN0SW5jb21pbmdFZGdlSW5kZXggKyBjb3VudEFzT2Zmc2V0IC0gMTsKKyAg
ICAgICAgICAgIHRoaXMuX2luY29taW5nTm9kZXNbaW5kZXhdID0gZnJvbU5vZGVPcmRpbmFsOwor
ICAgICAgICAgICAgdGhpcy5faW5jb21pbmdFZGdlc1tpbmRleF0gPSBlZGdlSW5kZXg7CisgICAg
ICAgIH0KKworICAgICAgICAvLyBEdXBsaWNhdGUgdmFsdWUgb24gdGhlIGVuZC4gSW5jb21pbmcg
ZWRnZSBpdGVyYXRpb24gd2Fsa3MgZmlyc3RJbmNvbWluZ0VkZ2Uob3JkaW5hbCkgdG8gZmlyc3RJ
bmNvbWluZ0VkZ2Uob3JkaW5hbCsxKS4KKyAgICAgICAgdGhpcy5fbm9kZU9yZGluYWxUb0ZpcnN0
SW5jb21pbmdFZGdlW3RoaXMuX25vZGVDb3VudF0gPSB0aGlzLl9ub2RlT3JkaW5hbFRvRmlyc3RJ
bmNvbWluZ0VkZ2VbdGhpcy5fbm9kZUNvdW50IC0gMV07CisgICAgfQorCisgICAgX2J1aWxkUG9z
dE9yZGVySW5kZXhlcygpCisgICAgeworICAgICAgICBsZXQgcG9zdE9yZGVySW5kZXggPSAwOwor
ICAgICAgICBsZXQgbm9kZU9yZGluYWxUb1Bvc3RPcmRlckluZGV4ID0gbmV3IFVpbnQzMkFycmF5
KHRoaXMuX25vZGVDb3VudCk7CisgICAgICAgIGxldCBwb3N0T3JkZXJJbmRleFRvTm9kZU9yZGlu
YWwgPSBuZXcgVWludDMyQXJyYXkodGhpcy5fbm9kZUNvdW50KTsKKworICAgICAgICBsZXQgc3Rh
Y2tOb2RlcyA9IG5ldyBVaW50MzJBcnJheSh0aGlzLl9ub2RlQ291bnQpOyAvLyBub2RlT3JkaW5h
bC4KKyAgICAgICAgbGV0IHN0YWNrRWRnZXMgPSBuZXcgVWludDMyQXJyYXkodGhpcy5fbm9kZUNv
dW50KTsgLy8gZWRnZUluZGV4LgorICAgICAgICBsZXQgdmlzaXRlZCA9IG5ldyBVaW50OEFycmF5
KHRoaXMuX25vZGVDb3VudCk7CisKKyAgICAgICAgbGV0IHN0YWNrVG9wID0gMDsKKyAgICAgICAg
c3RhY2tOb2Rlc1tzdGFja1RvcF0gPSByb290Tm9kZU9yZGluYWw7CisgICAgICAgIHN0YWNrRWRn
ZXNbc3RhY2tUb3BdID0gdGhpcy5fbm9kZU9yZGluYWxUb0ZpcnN0T3V0Z29pbmdFZGdlW3Jvb3RO
b2RlT3JkaW5hbF07CisKKyAgICAgICAgd2hpbGUgKHN0YWNrVG9wID49IDApIHsKKyAgICAgICAg
ICAgIGxldCBub2RlT3JkaW5hbCA9IHN0YWNrTm9kZXNbc3RhY2tUb3BdOworICAgICAgICAgICAg
bGV0IG5vZGVJZGVudGlmaWVyID0gdGhpcy5fbm9kZXNbKG5vZGVPcmRpbmFsICogbm9kZUZpZWxk
Q291bnQpICsgbm9kZUlkT2Zmc2V0XTsKKyAgICAgICAgICAgIGxldCBlZGdlSW5kZXggPSBzdGFj
a0VkZ2VzW3N0YWNrVG9wXTsKKworICAgICAgICAgICAgaWYgKHRoaXMuX2VkZ2VzW2VkZ2VJbmRl
eCArIGVkZ2VGcm9tSWRPZmZzZXRdID09PSBub2RlSWRlbnRpZmllcikgeworICAgICAgICAgICAg
ICAgIC8vIFByZXBhcmUgdGhlIG5leHQgY2hpbGQgZm9yIHRoZSBjdXJyZW50IG5vZGUuCisgICAg
ICAgICAgICAgICAgc3RhY2tFZGdlc1tzdGFja1RvcF0gKz0gZWRnZUZpZWxkQ291bnQ7CisKKyAg
ICAgICAgICAgICAgICBsZXQgdG9JZGVudGlmaWVyID0gdGhpcy5fZWRnZXNbZWRnZUluZGV4ICsg
ZWRnZVRvSWRPZmZzZXRdOworICAgICAgICAgICAgICAgIGxldCB0b05vZGVPcmRpbmFsID0gdGhp
cy5fbm9kZUlkZW50aWZpZXJUb09yZGluYWwuZ2V0KHRvSWRlbnRpZmllcik7CisgICAgICAgICAg
ICAgICAgaWYgKHZpc2l0ZWRbdG9Ob2RlT3JkaW5hbF0pCisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworCisgICAgICAgICAgICAgICAgLy8gQ2hpbGQuCisgICAgICAgICAgICAgICAgc3Rh
Y2tUb3ArKzsKKyAgICAgICAgICAgICAgICBzdGFja05vZGVzW3N0YWNrVG9wXSA9IHRvTm9kZU9y
ZGluYWw7CisgICAgICAgICAgICAgICAgc3RhY2tFZGdlc1tzdGFja1RvcF0gPSB0aGlzLl9ub2Rl
T3JkaW5hbFRvRmlyc3RPdXRnb2luZ0VkZ2VbdG9Ob2RlT3JkaW5hbF07CisgICAgICAgICAgICAg
ICAgdmlzaXRlZFt0b05vZGVPcmRpbmFsXSA9IDE7CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIC8vIFNlbGYuCisgICAgICAgICAgICAgICAgbm9kZU9yZGluYWxUb1Bvc3RP
cmRlckluZGV4W25vZGVPcmRpbmFsXSA9IHBvc3RPcmRlckluZGV4OworICAgICAgICAgICAgICAg
IHBvc3RPcmRlckluZGV4VG9Ob2RlT3JkaW5hbFtwb3N0T3JkZXJJbmRleF0gPSBub2RlT3JkaW5h
bDsKKyAgICAgICAgICAgICAgICBwb3N0T3JkZXJJbmRleCsrOworICAgICAgICAgICAgICAgIHN0
YWNrVG9wLS07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBVbnZpc2l0
ZWQgbm9kZXMuCisgICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgcGFyZW50IG5vZGUg
d2FzIGRpc2FsbG93ZWQgb24gdGhlIGJhY2tlbmQsIGJ1dCBvdGhlciBub2RlcworICAgICAgICAv
LyB0aGF0IHdlcmUgb25seSByZWZlcmVuY2VkIGZyb20gdGhhdCBkaXNhbGxvd2VkIG5vZGUgd2Vy
ZSBldmVudHVhbGx5IGFsbG93ZWQgYmVjYXVzZQorICAgICAgICAvLyB0aGV5IG1heSBiZSBnZW5l
cmljIHN5c3RlbSBvYmplY3RzLiBHaXZlIHRoZXNlIG5vZGVzIGEgcG9zdE9yZGVySW5kZXggYW55
d2F5cy4KKyAgICAgICAgaWYgKHBvc3RPcmRlckluZGV4ICE9PSB0aGlzLl9ub2RlQ291bnQpIHsK
KyAgICAgICAgICAgIC8vIFJvb3Qgd2FzIHRoZSBsYXN0IG5vZGUgdmlzaXRlZC4gUmV2ZXJ0IGFz
c2lnbmluZyBpdCBhbiBpbmRleCwgYWRkIGl0IGJhY2sgYXQgdGhlIGVuZC4KKyAgICAgICAgICAg
IHBvc3RPcmRlckluZGV4LS07CisKKyAgICAgICAgICAgIC8vIFZpc2l0IHVudmlzaXRlZCBub2Rl
cy4KKyAgICAgICAgICAgIGZvciAobGV0IG5vZGVPcmRpbmFsID0gMTsgbm9kZU9yZGluYWwgPCB0
aGlzLl9ub2RlQ291bnQ7ICsrbm9kZU9yZGluYWwpIHsKKyAgICAgICAgICAgICAgICBpZiAodmlz
aXRlZFtub2RlT3JkaW5hbF0pCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgICAgIG5vZGVPcmRpbmFsVG9Qb3N0T3JkZXJJbmRleFtub2RlT3JkaW5hbF0gPSBwb3N0
T3JkZXJJbmRleDsKKyAgICAgICAgICAgICAgICBwb3N0T3JkZXJJbmRleFRvTm9kZU9yZGluYWxb
cG9zdE9yZGVySW5kZXhdID0gbm9kZU9yZGluYWw7CisgICAgICAgICAgICAgICAgcG9zdE9yZGVy
SW5kZXgrKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gVmlzaXQgcm9vdCBhZ2Fp
bi4KKyAgICAgICAgICAgIG5vZGVPcmRpbmFsVG9Qb3N0T3JkZXJJbmRleFtyb290Tm9kZU9yZGlu
YWxdID0gcG9zdE9yZGVySW5kZXg7CisgICAgICAgICAgICBwb3N0T3JkZXJJbmRleFRvTm9kZU9y
ZGluYWxbcG9zdE9yZGVySW5kZXhdID0gcm9vdE5vZGVPcmRpbmFsOworICAgICAgICAgICAgcG9z
dE9yZGVySW5kZXgrKzsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHBvc3RP
cmRlckluZGV4ID09PSB0aGlzLl9ub2RlQ291bnQsICJBbGwgbm9kZXMgd2VyZSB2aXNpdGVkIik7
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KG5vZGVPcmRpbmFsVG9Qb3N0T3JkZXJJbmRleFtyb290
Tm9kZU9yZGluYWxdID09PSB0aGlzLl9ub2RlQ291bnQgLSAxLCAiUm9vdCBub2RlIHNob3VsZCBo
YXZlIHRoZSBsYXN0IHBvc3NpYmxlIHBvc3RPcmRlckluZGV4Iik7CisKKyAgICAgICAgcmV0dXJu
IHtub2RlT3JkaW5hbFRvUG9zdE9yZGVySW5kZXgsIHBvc3RPcmRlckluZGV4VG9Ob2RlT3JkaW5h
bH07CisgICAgfQorCisgICAgX2J1aWxkRG9taW5hdG9ySW5kZXhlcyhub2RlT3JkaW5hbFRvUG9z
dE9yZGVySW5kZXgsIHBvc3RPcmRlckluZGV4VG9Ob2RlT3JkaW5hbCkKKyAgICB7CisgICAgICAg
IC8vIFRoZSBhbGdvcml0aG0gaXMgYmFzZWQgb24gdGhlIGFydGljbGU6CisgICAgICAgIC8vIEsu
IENvb3BlciwgVC4gSGFydmV5IGFuZCBLLiBLZW5uZWR5ICJBIFNpbXBsZSwgRmFzdCBEb21pbmFu
Y2UgQWxnb3JpdGhtIgorCisgICAgICAgIGxldCByb290UG9zdE9yZGVySW5kZXggPSB0aGlzLl9u
b2RlQ291bnQgLSAxOworICAgICAgICBsZXQgbm9FbnRyeSA9IHRoaXMuX25vZGVDb3VudDsKKwor
ICAgICAgICBsZXQgYWZmZWN0ZWQgPSBuZXcgVWludDhBcnJheSh0aGlzLl9ub2RlQ291bnQpOwor
ICAgICAgICBsZXQgZG9taW5hdG9ycyA9IG5ldyBVaW50MzJBcnJheSh0aGlzLl9ub2RlQ291bnQp
OworCisgICAgICAgIC8vIEluaXRpYWxpemUgd2l0aCB1bnNldCB2YWx1ZS4KKyAgICAgICAgZG9t
aW5hdG9ycy5maWxsKG5vRW50cnkpOworCisgICAgICAgIC8vIE1hcmsgdGhlIHJvb3QncyBkb21p
bmF0b3IgdmFsdWUuCisgICAgICAgIGRvbWluYXRvcnNbcm9vdFBvc3RPcmRlckluZGV4XSA9IHJv
b3RQb3N0T3JkZXJJbmRleDsKKworICAgICAgICAvLyBBZmZlY3QgdGhlIHJvb3QncyBjaGlsZHJl
bi4gQWxzbyB1c2UgdGhpcyBvcHBvcnR1bml0eSB0byBtYXJrIHRoZW0gYXMgR0Mgcm9vdHMuCisg
ICAgICAgIGxldCByb290RWRnZUluZGV4ID0gdGhpcy5fbm9kZU9yZGluYWxUb0ZpcnN0T3V0Z29p
bmdFZGdlW3Jvb3ROb2RlT3JkaW5hbF07CisgICAgICAgIGZvciAobGV0IGVkZ2VJbmRleCA9IHJv
b3RFZGdlSW5kZXg7IHRoaXMuX2VkZ2VzW2VkZ2VJbmRleCArIGVkZ2VGcm9tSWRPZmZzZXRdID09
PSByb290Tm9kZUlkZW50aWZpZXI7IGVkZ2VJbmRleCArPSBlZGdlRmllbGRDb3VudCkgeworICAg
ICAgICAgICAgbGV0IHRvSWRlbnRpZmllciA9IHRoaXMuX2VkZ2VzW2VkZ2VJbmRleCArIGVkZ2VU
b0lkT2Zmc2V0XTsKKyAgICAgICAgICAgIGxldCB0b05vZGVPcmRpbmFsID0gdGhpcy5fbm9kZUlk
ZW50aWZpZXJUb09yZGluYWwuZ2V0KHRvSWRlbnRpZmllcik7CisgICAgICAgICAgICBsZXQgdG9Q
b3N0T3JkZXJJbmRleCA9IG5vZGVPcmRpbmFsVG9Qb3N0T3JkZXJJbmRleFt0b05vZGVPcmRpbmFs
XTsKKyAgICAgICAgICAgIGFmZmVjdGVkW3RvUG9zdE9yZGVySW5kZXhdID0gMTsKKyAgICAgICAg
ICAgIHRoaXMuX25vZGVPcmRpbmFsSXNHQ1Jvb3RbdG9Ob2RlT3JkaW5hbF0gPSAxOworICAgICAg
ICB9CisKKyAgICAgICAgbGV0IGNoYW5nZWQgPSB0cnVlOworICAgICAgICB3aGlsZSAoY2hhbmdl
ZCkgeworICAgICAgICAgICAgY2hhbmdlZCA9IGZhbHNlOworCisgICAgICAgICAgICBmb3IgKGxl
dCBwb3N0T3JkZXJJbmRleCA9IHJvb3RQb3N0T3JkZXJJbmRleCAtIDE7IHBvc3RPcmRlckluZGV4
ID49IDA7IC0tcG9zdE9yZGVySW5kZXgpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWFmZmVjdGVk
W3Bvc3RPcmRlckluZGV4XSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICAgICAgYWZmZWN0ZWRbcG9zdE9yZGVySW5kZXhdID0gMDsKKworICAgICAgICAgICAgICAg
IC8vIFRoZSBkb21pbmF0b3IgaXMgYWxyZWFkeSB0aGUgcm9vdCwgbm90aGluZyB0byBkby4KKyAg
ICAgICAgICAgICAgICBpZiAoZG9taW5hdG9yc1twb3N0T3JkZXJJbmRleF0gPT09IHJvb3RQb3N0
T3JkZXJJbmRleCkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAg
ICAgICBsZXQgbmV3RG9taW5hdG9ySW5kZXggPSBub0VudHJ5OworICAgICAgICAgICAgICAgIGxl
dCBub2RlT3JkaW5hbCA9IHBvc3RPcmRlckluZGV4VG9Ob2RlT3JkaW5hbFtwb3N0T3JkZXJJbmRl
eF07CisgICAgICAgICAgICAgICAgbGV0IGluY29taW5nRWRnZUluZGV4ID0gdGhpcy5fbm9kZU9y
ZGluYWxUb0ZpcnN0SW5jb21pbmdFZGdlW25vZGVPcmRpbmFsXTsKKyAgICAgICAgICAgICAgICBs
ZXQgaW5jb21pbmdFZGdlSW5kZXhFbmQgPSB0aGlzLl9ub2RlT3JkaW5hbFRvRmlyc3RJbmNvbWlu
Z0VkZ2Vbbm9kZU9yZGluYWwgKyAxXTsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBlZGdlSW5k
ZXggPSBpbmNvbWluZ0VkZ2VJbmRleDsgZWRnZUluZGV4IDwgaW5jb21pbmdFZGdlSW5kZXhFbmQ7
ICsrZWRnZUluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgIGxldCBmcm9tTm9kZU9yZGluYWwg
PSB0aGlzLl9pbmNvbWluZ05vZGVzW2VkZ2VJbmRleF07CisgICAgICAgICAgICAgICAgICAgIGxl
dCBmcm9tUG9zdE9yZGVySW5kZXggPSBub2RlT3JkaW5hbFRvUG9zdE9yZGVySW5kZXhbZnJvbU5v
ZGVPcmRpbmFsXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRvbWluYXRvcnNbZnJvbVBvc3RP
cmRlckluZGV4XSAhPT0gbm9FbnRyeSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5l
d0RvbWluYXRvckluZGV4ID09PSBub0VudHJ5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG5ld0RvbWluYXRvckluZGV4ID0gZnJvbVBvc3RPcmRlckluZGV4OworICAgICAgICAgICAgICAg
ICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGZyb21Q
b3N0T3JkZXJJbmRleCAhPT0gbmV3RG9taW5hdG9ySW5kZXgpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2hpbGUgKGZyb21Qb3N0T3JkZXJJbmRleCA8IG5ld0RvbWluYXRvcklu
ZGV4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVBvc3RPcmRlcklu
ZGV4ID0gZG9taW5hdG9yc1tmcm9tUG9zdE9yZGVySW5kZXhdOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aGlsZSAobmV3RG9taW5hdG9ySW5kZXggPCBmcm9tUG9zdE9yZGVySW5k
ZXgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdEb21pbmF0b3JJbmRl
eCA9IGRvbWluYXRvcnNbbmV3RG9taW5hdG9ySW5kZXhdOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICBpZiAobmV3RG9taW5hdG9ySW5kZXggPT09IHJvb3RQb3N0
T3JkZXJJbmRleCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgIC8vIENoYW5nZWQuIEFmZmVjdCBjaGlsZHJlbi4KKyAg
ICAgICAgICAgICAgICBpZiAobmV3RG9taW5hdG9ySW5kZXggIT09IG5vRW50cnkgJiYgZG9taW5h
dG9yc1twb3N0T3JkZXJJbmRleF0gIT09IG5ld0RvbWluYXRvckluZGV4KSB7CisgICAgICAgICAg
ICAgICAgICAgIGRvbWluYXRvcnNbcG9zdE9yZGVySW5kZXhdID0gbmV3RG9taW5hdG9ySW5kZXg7
CisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOworCisgICAgICAgICAgICAgICAg
ICAgIGxldCBvdXRnb2luZ0VkZ2VJbmRleCA9IHRoaXMuX25vZGVPcmRpbmFsVG9GaXJzdE91dGdv
aW5nRWRnZVtub2RlT3JkaW5hbF07CisgICAgICAgICAgICAgICAgICAgIGxldCBub2RlSWRlbnRp
ZmllciA9IHRoaXMuX25vZGVzWyhub2RlT3JkaW5hbCAqIG5vZGVGaWVsZENvdW50KSArIG5vZGVJ
ZE9mZnNldF07CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGVkZ2VJbmRleCA9IG91dGdv
aW5nRWRnZUluZGV4OyB0aGlzLl9lZGdlc1tlZGdlSW5kZXggKyBlZGdlRnJvbUlkT2Zmc2V0XSA9
PT0gbm9kZUlkZW50aWZpZXI7IGVkZ2VJbmRleCArPSBlZGdlRmllbGRDb3VudCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IHRvTm9kZUlkZW50aWZpZXIgPSB0aGlzLl9lZGdlc1tlZGdl
SW5kZXggKyBlZGdlVG9JZE9mZnNldF07CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdG9O
b2RlT3JkaW5hbCA9IHRoaXMuX25vZGVJZGVudGlmaWVyVG9PcmRpbmFsLmdldCh0b05vZGVJZGVu
dGlmaWVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0b05vZGVQb3N0T3JkZXIgPSBu
b2RlT3JkaW5hbFRvUG9zdE9yZGVySW5kZXhbdG9Ob2RlT3JkaW5hbF07CisgICAgICAgICAgICAg
ICAgICAgICAgICBhZmZlY3RlZFt0b05vZGVQb3N0T3JkZXJdID0gMTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIGZvciAobGV0IHBvc3RPcmRlckluZGV4ID0gMDsgcG9zdE9yZGVySW5kZXggPCB0aGlz
Ll9ub2RlQ291bnQ7ICsrcG9zdE9yZGVySW5kZXgpIHsKKyAgICAgICAgICAgIGxldCBub2RlT3Jk
aW5hbCA9IHBvc3RPcmRlckluZGV4VG9Ob2RlT3JkaW5hbFtwb3N0T3JkZXJJbmRleF07CisgICAg
ICAgICAgICBsZXQgZG9taW5hdG9yTm9kZU9yZGluYWwgPSBwb3N0T3JkZXJJbmRleFRvTm9kZU9y
ZGluYWxbZG9taW5hdG9yc1twb3N0T3JkZXJJbmRleF1dOworICAgICAgICAgICAgdGhpcy5fbm9k
ZU9yZGluYWxUb0RvbWluYXRvck5vZGVPcmRpbmFsW25vZGVPcmRpbmFsXSA9IGRvbWluYXRvck5v
ZGVPcmRpbmFsOworICAgICAgICB9CisgICAgfQorCisgICAgX2J1aWxkUmV0YWluZWRTaXplcyhw
b3N0T3JkZXJJbmRleFRvTm9kZU9yZGluYWwpCisgICAgeworICAgICAgICAvLyBTZWxmIHNpemUu
CisgICAgICAgIGZvciAobGV0IG5vZGVJbmRleCA9IDAsIG5vZGVPcmRpbmFsID0gMDsgbm9kZU9y
ZGluYWwgPCB0aGlzLl9ub2RlQ291bnQ7IG5vZGVJbmRleCArPSBub2RlRmllbGRDb3VudCwgbm9k
ZU9yZGluYWwrKykKKyAgICAgICAgICAgIHRoaXMuX25vZGVPcmRpbmFsVG9SZXRhaW5lZFNpemVz
W25vZGVPcmRpbmFsXSA9IHRoaXMuX25vZGVzW25vZGVJbmRleCArIG5vZGVTaXplT2Zmc2V0XTsK
KworICAgICAgICAvLyBBdHRyaWJ1dGUgc2l6ZSB0byBkb21pbmF0b3IuCisgICAgICAgIGZvciAo
bGV0IHBvc3RPcmRlckluZGV4ID0gMDsgcG9zdE9yZGVySW5kZXggPCB0aGlzLl9ub2RlQ291bnQg
LSAxOyArK3Bvc3RPcmRlckluZGV4KSB7CisgICAgICAgICAgICBsZXQgbm9kZU9yZGluYWwgPSBw
b3N0T3JkZXJJbmRleFRvTm9kZU9yZGluYWxbcG9zdE9yZGVySW5kZXhdOworICAgICAgICAgICAg
bGV0IG5vZGVSZXRhaW5lZFNpemUgPSB0aGlzLl9ub2RlT3JkaW5hbFRvUmV0YWluZWRTaXplc1tu
b2RlT3JkaW5hbF07CisgICAgICAgICAgICBsZXQgZG9taW5hdG9yTm9kZU9yZGluYWwgPSB0aGlz
Ll9ub2RlT3JkaW5hbFRvRG9taW5hdG9yTm9kZU9yZGluYWxbbm9kZU9yZGluYWxdOworICAgICAg
ICAgICAgdGhpcy5fbm9kZU9yZGluYWxUb1JldGFpbmVkU2l6ZXNbZG9taW5hdG9yTm9kZU9yZGlu
YWxdICs9IG5vZGVSZXRhaW5lZFNpemU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfbWFya0Rl
YWROb2Rlcyhjb2xsZWN0ZWROb2Rlc0xpc3QpCisgICAgeworICAgICAgICBsZXQgYWZmZWN0ZWQg
PSBmYWxzZTsKKworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbGxlY3RlZE5vZGVzTGlz
dC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbGV0IG5vZGVJZGVudGlmaWVyID0gY29sbGVj
dGVkTm9kZXNMaXN0W2ldOworICAgICAgICAgICAgaWYgKG5vZGVJZGVudGlmaWVyID4gdGhpcy5f
bGFzdE5vZGVJZGVudGlmaWVyKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgbGV0IG5vZGVPcmRpbmFsID0gdGhpcy5fbm9kZUlkZW50aWZpZXJUb09yZGluYWwuZ2V0KG5v
ZGVJZGVudGlmaWVyKTsKKyAgICAgICAgICAgIHRoaXMuX25vZGVPcmRpbmFsSXNEZWFkW25vZGVP
cmRpbmFsXSA9IDE7CisgICAgICAgICAgICBhZmZlY3RlZCA9IHRydWU7CisgICAgICAgIH0KKwor
ICAgICAgICByZXR1cm4gYWZmZWN0ZWQ7CisgICAgfQorCisgICAgX2lzTm9kZUdsb2JhbE9iamVj
dChub2RlSW5kZXgpCisgICAgeworICAgICAgICBsZXQgY2xhc3NOYW1lID0gdGhpcy5fbm9kZUNs
YXNzTmFtZXNUYWJsZVt0aGlzLl9ub2Rlc1tub2RlSW5kZXggKyBub2RlQ2xhc3NOYW1lT2Zmc2V0
XV07CisgICAgICAgIHJldHVybiBjbGFzc05hbWUgPT09ICJXaW5kb3ciCisgICAgICAgICAgICB8
fCBjbGFzc05hbWUgPT09ICJKU1dpbmRvd1Byb3h5IgorICAgICAgICAgICAgfHwgY2xhc3NOYW1l
ID09PSAiR2xvYmFsT2JqZWN0IjsKKyAgICB9CisKKyAgICBfZ2NSb290UGF0aHMobm9kZUlkZW50
aWZpZXIpCisgICAgeworICAgICAgICBsZXQgdGFyZ2V0Tm9kZU9yZGluYWwgPSB0aGlzLl9ub2Rl
SWRlbnRpZmllclRvT3JkaW5hbC5nZXQobm9kZUlkZW50aWZpZXIpOworCisgICAgICAgIGlmICh0
aGlzLl9ub2RlT3JkaW5hbElzR0NSb290W3RhcmdldE5vZGVPcmRpbmFsXSkKKyAgICAgICAgICAg
IHJldHVybiBbXTsKKworICAgICAgICAvLyBGSVhNRTogQXJyYXkgcHVzaC9wb3AgY2FuIGFmZmVj
dCBwZXJmb3JtYW5jZSBoZXJlLCBidXQgaW4gcHJhY3RpY2UgaXQgaGFzbid0IGJlZW4gYW4gaXNz
dWUuCisKKyAgICAgICAgbGV0IHBhdGhzID0gW107CisgICAgICAgIGxldCBjdXJyZW50UGF0aCA9
IFtdOworICAgICAgICBsZXQgdmlzaXRlZCA9IG5ldyBVaW50OEFycmF5KHRoaXMuX25vZGVDb3Vu
dCk7CisKKyAgICAgICAgZnVuY3Rpb24gdmlzaXROb2RlKG5vZGVPcmRpbmFsKQorICAgICAgICB7
CisgICAgICAgICAgICBpZiAodGhpcy5fbm9kZU9yZGluYWxJc0dDUm9vdFtub2RlT3JkaW5hbF0p
IHsKKyAgICAgICAgICAgICAgICBsZXQgZnVsbFBhdGggPSBjdXJyZW50UGF0aC5zbGljZSgpOwor
ICAgICAgICAgICAgICAgIGxldCBub2RlSW5kZXggPSBub2RlT3JkaW5hbCAqIG5vZGVGaWVsZENv
dW50OworICAgICAgICAgICAgICAgIGZ1bGxQYXRoLnB1c2goe25vZGU6IG5vZGVJbmRleH0pOwor
ICAgICAgICAgICAgICAgIHBhdGhzLnB1c2goZnVsbFBhdGgpOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHZpc2l0ZWRbbm9kZU9yZGlu
YWxdKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHZpc2l0ZWRbbm9kZU9y
ZGluYWxdID0gMTsKKworICAgICAgICAgICAgbGV0IG5vZGVJbmRleCA9IG5vZGVPcmRpbmFsICog
bm9kZUZpZWxkQ291bnQ7CisgICAgICAgICAgICBjdXJyZW50UGF0aC5wdXNoKHtub2RlOiBub2Rl
SW5kZXh9KTsKKworICAgICAgICAgICAgLy8gTG9vcCBpbiByZXZlcnNlIG9yZGVyIGJlY2F1c2Ug
ZWRnZXMgd2VyZSBhZGRlZCBpbiByZXZlcnNlIG9yZGVyLgorICAgICAgICAgICAgLy8gSXQgZG9l
c24ndCBwYXJ0aWN1bGFybHkgbWF0dGVyIG90aGVyIHRoZW4gY29uc2lzdGVuY3kgd2l0aCBwcmV2
aW91cyBjb2RlLgorICAgICAgICAgICAgbGV0IGluY29taW5nRWRnZUluZGV4U3RhcnQgPSB0aGlz
Ll9ub2RlT3JkaW5hbFRvRmlyc3RJbmNvbWluZ0VkZ2Vbbm9kZU9yZGluYWxdOworICAgICAgICAg
ICAgbGV0IGluY29taW5nRWRnZUluZGV4RW5kID0gdGhpcy5fbm9kZU9yZGluYWxUb0ZpcnN0SW5j
b21pbmdFZGdlW25vZGVPcmRpbmFsICsgMV07CisgICAgICAgICAgICBmb3IgKGxldCBpbmNvbWlu
Z0VkZ2VJbmRleCA9IGluY29taW5nRWRnZUluZGV4RW5kIC0gMTsgaW5jb21pbmdFZGdlSW5kZXgg
Pj0gaW5jb21pbmdFZGdlSW5kZXhTdGFydDsgLS1pbmNvbWluZ0VkZ2VJbmRleCkgeworICAgICAg
ICAgICAgICAgIGxldCBmcm9tTm9kZU9yZGluYWwgPSB0aGlzLl9pbmNvbWluZ05vZGVzW2luY29t
aW5nRWRnZUluZGV4XTsKKyAgICAgICAgICAgICAgICBsZXQgZnJvbU5vZGVJbmRleCA9IGZyb21O
b2RlT3JkaW5hbCAqIG5vZGVGaWVsZENvdW50OworICAgICAgICAgICAgICAgIC8vIGxldCBmcm9t
Tm9kZUlzSW50ZXJuYWwgPSB0aGlzLl9ub2Rlc1tmcm9tTm9kZUluZGV4ICsgbm9kZUludGVybmFs
T2Zmc2V0XTsKKyAgICAgICAgICAgICAgICAvLyBpZiAoZnJvbU5vZGVJc0ludGVybmFsKQorICAg
ICAgICAgICAgICAgIC8vICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIGxldCBlZGdl
SW5kZXggPSB0aGlzLl9pbmNvbWluZ0VkZ2VzW2luY29taW5nRWRnZUluZGV4XTsKKyAgICAgICAg
ICAgICAgICBjdXJyZW50UGF0aC5wdXNoKHtlZGdlOiBlZGdlSW5kZXh9KTsKKyAgICAgICAgICAg
ICAgICB2aXNpdE5vZGUuY2FsbCh0aGlzLCBmcm9tTm9kZU9yZGluYWwpOworICAgICAgICAgICAg
ICAgIGN1cnJlbnRQYXRoLnBvcCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjdXJy
ZW50UGF0aC5wb3AoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpc2l0Tm9kZS5jYWxsKHRoaXMs
IHRhcmdldE5vZGVPcmRpbmFsKTsKKworICAgICAgICByZXR1cm4gcGF0aHM7CisgICAgfQorfTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0dDSGVhcEluc3BlY3Rvci9zY3JpcHQvaW50ZXJmYWNlLmpzIGIv
VG9vbHMvR0NIZWFwSW5zcGVjdG9yL3NjcmlwdC9pbnRlcmZhY2UuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWUz
YWQ1YjAwYjI5NTUxZGE5ZDIxMGUyZWRjN2Y1OTM3NjI3OGEzYwotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL0dDSGVhcEluc3BlY3Rvci9zY3JpcHQvaW50ZXJmYWNlLmpzCkBAIC0wLDAgKzEsNTE1
IEBACisKKworLy8gRE9NIEhlbHBlcnMKK2NsYXNzIERPTVV0aWxzCit7CisgICAgc3RhdGljIHJl
bW92ZUFsbENoaWxkcmVuKG5vZGUpCisgICAgeworICAgICAgICB3aGlsZSAobm9kZS5sYXN0Q2hp
bGQpCisgICAgICAgICAgICAgbm9kZS5yZW1vdmVDaGlsZChub2RlLmxhc3RDaGlsZCk7CisgICAg
fQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVEZXRhaWxzKHN1bW1hcnlUZXh0KQorICAgIHsKKyAg
ICAgICAgbGV0IHN1bW1hcnkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdW1tYXJ5Jyk7Cisg
ICAgICAgIHN1bW1hcnkudGV4dENvbnRlbnQgPSBzdW1tYXJ5VGV4dDsKKyAgICAKKyAgICAgICAg
bGV0IGRldGFpbHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkZXRhaWxzJyk7CisgICAgICAg
IGRldGFpbHMuYXBwZW5kQ2hpbGQoc3VtbWFyeSk7CisgICAgICAgIAorICAgICAgICBkZXRhaWxz
LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICAg
ICAgY29uc3QgcmlnaHRBcnJvd0tleUNvZGUgPSAzOTsKKyAgICAgICAgICAgIGNvbnN0IGxlZnRB
cnJvd0tleUNvZGUgPSAzNzsKKyAgICAgICAgICAgIGlmIChldmVudC5rZXlDb2RlID09IHJpZ2h0
QXJyb3dLZXlDb2RlKQorICAgICAgICAgICAgICAgIHRoaXMub3BlbiA9IHRydWU7CisgICAgICAg
ICAgICBlbHNlIGlmIChldmVudC5rZXlDb2RlID09IGxlZnRBcnJvd0tleUNvZGUpCisgICAgICAg
ICAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7CisgICAgICAgIH0sIGZhbHNlKTsKKworICAgICAg
ICByZXR1cm4gZGV0YWlsczsKKyAgICB9Cit9OworCisvLyBIZWFwIEluc3BlY3RvciBIZWxwZXJz
CitjbGFzcyBIZWFwSW5zcGVjdG9yVXRpbHMKK3sKKyAgICBzdGF0aWMgaHVtYW5SZWFkYWJsZVNp
emUoc2l6ZUluQnl0ZXMpCisgICAgeworICAgICAgICB2YXIgaSA9IC0xOworICAgICAgICBpZiAo
c2l6ZUluQnl0ZXMgPCA1MTIpCisgICAgICAgICAgICByZXR1cm4gc2l6ZUluQnl0ZXMgKyAnJnRo
aW5zcDtCJzsKKyAgICAgICAgdmFyIGJ5dGVVbml0cyA9IFsnJnRoaW5zcDtLQicsICcmdGhpbnNw
O01CJywgJyZ0aGluc3A7R0InXTsKKyAgICAgICAgZG8geworICAgICAgICAgICAgc2l6ZUluQnl0
ZXMgPSBzaXplSW5CeXRlcyAvIDEwMjQ7CisgICAgICAgICAgICBpKys7CisgICAgICAgIH0gd2hp
bGUgKHNpemVJbkJ5dGVzID4gMTAyNCk7CisKKyAgICAgICAgcmV0dXJuIE1hdGgubWF4KHNpemVJ
bkJ5dGVzLCAwLjEpLnRvRml4ZWQoMSkgKyBieXRlVW5pdHNbaV07CisgICAgfQorCisgICAgc3Rh
dGljIGFkZHJlc3NGb3JOb2RlKG5vZGUpCisgICAgeworICAgICAgICByZXR1cm4gbm9kZS53cmFw
cGVkQWRkcmVzcyA/IG5vZGUud3JhcHBlZEFkZHJlc3MgOiBub2RlLmFkZHJlc3M7CisgICAgfQor
CisgICAgc3RhdGljIG5vZGVOYW1lKHNuYXBzaG90LCBub2RlKQorICAgIHsKKyAgICAgICAgaWYg
KG5vZGUudHlwZSA9PSAiSW50ZXJuYWwiKQorICAgICAgICAgICAgcmV0dXJuICdJbnRlcm5hbCBu
b2RlJzsKKworICAgICAgICBsZXQgcmVzdWx0ID0gbm9kZS5jbGFzc05hbWUgKyAnIEAnICsgbm9k
ZS5pZCArICcgKCcgKyBIZWFwSW5zcGVjdG9yVXRpbHMuYWRkcmVzc0Zvck5vZGUobm9kZSkgKyAn
ICcgKyBub2RlLmxhYmVsICsgJyknOworICAgICAgICBpZiAobm9kZS5nY1Jvb3QgfHwgbm9kZS5t
YXJrZWRSb290KQorICAgICAgICAgICAgcmVzdWx0ICs9ICcgKEdDIHJvb3TigJQnICsgc25hcHNo
b3QucmVhc29uTmFtZXNGb3JSb290KG5vZGUuaWQpLmpvaW4oJywgJykgKyAnKSc7CisgICAgCisg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgc3RhdGljIHNwYW5Gb3JOb2RlKGlu
c3BlY3Rvciwgbm9kZSwgc2hvd1BhdGhCdXR0b24pCisgICAgeworICAgICAgICBsZXQgbm9kZVNw
YW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CisKKyAgICAgICAgaWYgKG5vZGUu
dHlwZSA9PSAiSW50ZXJuYWwiKSB7CisgICAgICAgICAgICBub2RlU3Bhbi50ZXh0Q29udGVudCA9
ICdJbnRlcm5hbCBub2RlJzsKKyAgICAgICAgICAgIHJldHVybiBub2RlU3BhbjsKKyAgICAgICAg
fQorCisgICAgICAgIGxldCB3cmFwcGVkQWRkcmVzc1N0cmluZyA9IG5vZGUud3JhcHBlZEFkZHJl
c3MgPyBgd3JhcHBlZCAke25vZGUud3JhcHBlZEFkZHJlc3N9YCA6ICcnOworCisgICAgICAgIGxl
dCBub2RlSFRNTCA9IG5vZGUuY2xhc3NOYW1lICsgYCA8c3BhbiBjbGFzcz0ibm9kZS1pZCI+JHtu
b2RlLmlkfTwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5vZGUtYWRkcmVzcyI+Y2VsbCAke25vZGUuYWRk
cmVzc30gJHt3cmFwcGVkQWRkcmVzc1N0cmluZ308L3NwYW4+IDxzcGFuIGNsYXNzPSJub2RlLXNp
emUiPihyZXRhaW5zICR7SGVhcEluc3BlY3RvclV0aWxzLmh1bWFuUmVhZGFibGVTaXplKG5vZGUu
cmV0YWluZWRTaXplKX0pPC9zcGFuPmA7CisgICAgCisgICAgICAgIGlmIChub2RlLmxhYmVsLmxl
bmd0aCkKKyAgICAgICAgICAgIG5vZGVIVE1MICs9IGAgPHNwYW4gY2xhc3M9Im5vZGUtbGFiZWwi
PuKAnCR7bm9kZS5sYWJlbH3igJ08L3NwYW4+YDsKKyAgICAKKyAgICAgICAgbm9kZVNwYW4uaW5u
ZXJIVE1MID0gbm9kZUhUTUw7CisKKyAgICAgICAgaWYgKG5vZGUuZ2NSb290IHx8IG5vZGUubWFy
a2VkUm9vdCkgeworICAgICAgICAgICAgbGV0IGdjUm9vdFNwYW4gPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdzcGFuJyk7CisgICAgICAgICAgICBnY1Jvb3RTcGFuLmNsYXNzTmFtZSA9ICdub2Rl
LWdjLXJvb3QnOworICAgICAgICAgICAgZ2NSb290U3Bhbi50ZXh0Q29udGVudCA9ICcgKEdDIHJv
b3TigJQnICsgaW5zcGVjdG9yLnNuYXBzaG90LnJlYXNvbk5hbWVzRm9yUm9vdChub2RlLmlkKS5q
b2luKCcsICcpICsgJyknOworICAgICAgICAgICAgbm9kZVNwYW4uYXBwZW5kQ2hpbGQoZ2NSb290
U3Bhbik7CisgICAgICAgIH0gZWxzZSBpZiAoc2hvd1BhdGhCdXR0b24pIHsKKyAgICAgICAgICAg
IGxldCBzaG93QWxsUGF0aHNBbmNob3IgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24n
KTsKKyAgICAgICAgICAgIHNob3dBbGxQYXRoc0FuY2hvci5jbGFzc05hbWUgPSAnbm9kZS1zaG93
LWFsbC1wYXRocyc7CisgICAgICAgICAgICBzaG93QWxsUGF0aHNBbmNob3IudGV4dENvbnRlbnQg
PSAnU2hvdyBhbGwgcGF0aHMnOworICAgICAgICAgICAgc2hvd0FsbFBhdGhzQW5jaG9yLmFkZEV2
ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHsKKyAgICAgICAgICAgICAgICBpbnNwZWN0b3Iu
c2hvd0FsbFBhdGhzVG9Ob2RlKG5vZGUpOworICAgICAgICAgICAgfSwgZmFsc2UpOworICAgICAg
ICAgICAgbm9kZVNwYW4uYXBwZW5kQ2hpbGQoc2hvd0FsbFBhdGhzQW5jaG9yKTsKKyAgICAgICAg
fQorICAgIAorICAgICAgICByZXR1cm4gbm9kZVNwYW47CisgICAgfQorCisgICAgc3RhdGljIHNw
YW5Gb3JFZGdlKHNuYXBzaG90LCBlZGdlKQorICAgIHsKKyAgICAgICAgbGV0IGVkZ2VTcGFuID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOworICAgICAgICBlZGdlU3Bhbi5jbGFzc05h
bWUgPSAnZWRnZSc7CisgICAgICAgIGVkZ2VTcGFuLmlubmVySFRNTCA9ICc8c3BhbiBjbGFzcz0i
ZWRnZS10eXBlIj4nICsgZWRnZS50eXBlICsgJzwvc3Bhbj4gPHNwYW4gY2xhc3M9ImVkZ2UtZGF0
YSI+JyArIGVkZ2UuZGF0YSArICc8L3NwYW4+JzsKKyAgICAgICAgcmV0dXJuIGVkZ2VTcGFuOwor
ICAgIH0KKworICAgIHN0YXRpYyBzdW1tYXJ5U3BhbkZvclBhdGgoaW5zcGVjdG9yLCBwYXRoKQor
ICAgIHsKKyAgICAgICAgbGV0IHBhdGhTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3Bh
bicpOworICAgICAgICBwYXRoU3Bhbi5jbGFzc05hbWUgPSAncGF0aC1zdW1tYXJ5JzsKKyAgICAK
KyAgICAgICAgaWYgKHBhdGgubGVuZ3RoID4gMCkgeworICAgICAgICAgICAgbGV0IHBhdGhMZW5n
dGggPSAocGF0aC5sZW5ndGggLSAxKSAvIDI7CisgICAgICAgICAgICBwYXRoU3Bhbi50ZXh0Q29u
dGVudCA9IHBhdGhMZW5ndGggKyAnIHN0ZXAnICsgKHBhdGhMZW5ndGggPiAxID8gJ3MnIDogJycp
ICsgJyBmcm9tICc7CisgICAgICAgICAgICBwYXRoU3Bhbi5hcHBlbmRDaGlsZChIZWFwSW5zcGVj
dG9yVXRpbHMuc3BhbkZvck5vZGUoaW5zcGVjdG9yLCBwYXRoWzBdKSwgdHJ1ZSk7CisgICAgICAg
IH0KKworICAgICAgICByZXR1cm4gcGF0aFNwYW47CisgICAgfQorCisgICAgc3RhdGljIGVkZ2VO
YW1lKGVkZ2UpCisgICAgeworICAgICAgICByZXR1cm4gJ+KHkiAnICsgZWRnZS50eXBlICsgJyAn
ICsgZWRnZS5kYXRhICsgJyDih5InOworICAgIH0KK307CisKKworLy8gTWFuYWdlcyBhIGxpc3Qg
b2YgaGVhcCBzbmFwc2hvdCBub2RlcyB0aGF0IGNhbiBkeW5hbWljYWxseSBidWlsZCB0aGUgY29u
dGVudHMgb2YgYW4gSFRNTExpc3RFbGVtZW50LgorY2xhc3MgSW5zdGFuY2VMaXN0Cit7CisgICAg
Y29uc3RydWN0b3IobGlzdEVsZW1lbnQsIHNuYXBzaG90LCBsaXN0R2VuZXJhdG9yRnVuYykKKyAg
ICB7CisgICAgICAgIHRoaXMubGlzdEVsZW1lbnQgPSBsaXN0RWxlbWVudDsKKyAgICAgICAgdGhp
cy5zbmFwc2hvdCA9IHNuYXBzaG90OworICAgICAgICB0aGlzLm5vZGVMaXN0ID0gbGlzdEdlbmVy
YXRvckZ1bmModGhpcy5zbmFwc2hvdCk7CisgICAgICAgIHRoaXMuZW50cmllc0FkZGVkID0gMDsK
KyAgICAgICAgdGhpcy5pbml0aWFsRW50cmllcyA9IDEwMDsKKyAgICAgICAgdGhpcy5lbnRyaWVz
UXVhbnR1bSA9IDUwOworICAgICAgICB0aGlzLnNob3dNb3JlSXRlbSA9IHVuZGVmaW5lZDsKKyAg
ICB9CisgICAgCisgICAgYnVpbGRMaXN0KGluc3BlY3RvcikKKyAgICB7CisgICAgICAgIERPTVV0
aWxzLnJlbW92ZUFsbENoaWxkcmVuKHRoaXMubGlzdEVsZW1lbnQpOworICAgICAgICBpZiAodGhp
cy5ub2RlTGlzdC5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBs
ZXQgbWF4SW5kZXggPSBNYXRoLm1pbih0aGlzLm5vZGVMaXN0Lmxlbmd0aCwgdGhpcy5pbml0aWFs
RW50cmllcyk7CisgICAgICAgIHRoaXMuYXBwZW5kSXRlbXNGb3JSYW5nZShpbnNwZWN0b3IsIDAs
IG1heEluZGV4KTsKKyAgICAgICAgCisgICAgICAgIGlmIChtYXhJbmRleCA8IHRoaXMubm9kZUxp
c3QubGVuZ3RoKSB7CisgICAgICAgICAgICB0aGlzLnNob3dNb3JlSXRlbSA9IHRoaXMubWFrZVNo
b3dNb3JlSXRlbShpbnNwZWN0b3IpOworICAgICAgICAgICAgdGhpcy5saXN0RWxlbWVudC5hcHBl
bmRDaGlsZCh0aGlzLnNob3dNb3JlSXRlbSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IHRoaXMuZW50cmllc0FkZGVkID0gbWF4SW5kZXg7CisgICAgfQorICAgIAorICAgIGFwcGVuZEl0
ZW1zRm9yUmFuZ2UoaW5zcGVjdG9yLCBzdGFydEluZGV4LCBlbmRJbmRleCkKKyAgICB7CisgICAg
ICAgIGZvciAobGV0IGluZGV4ID0gc3RhcnRJbmRleDsgaW5kZXggPCBlbmRJbmRleDsgKytpbmRl
eCkgeworICAgICAgICAgICAgbGV0IGluc3RhbmNlID0gdGhpcy5ub2RlTGlzdFtpbmRleF07Cisg
ICAgICAgICAgICBsZXQgbGlzdEl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwor
ICAgICAgICAgICAgbGlzdEl0ZW0uYXBwZW5kQ2hpbGQoSGVhcEluc3BlY3RvclV0aWxzLnNwYW5G
b3JOb2RlKGluc3BlY3RvciwgaW5zdGFuY2UsIHRydWUpKTsKKyAgICAgICAgICAgIHRoaXMubGlz
dEVsZW1lbnQuYXBwZW5kQ2hpbGQobGlzdEl0ZW0pOworICAgICAgICB9CisKKyAgICAgICAgdGhp
cy5lbnRyaWVzQWRkZWQgPSBlbmRJbmRleDsKKyAgICB9CisgICAgCisgICAgYXBwZW5kTW9yZUVu
dHJpZXMoaW5zcGVjdG9yKQorICAgIHsKKyAgICAgICAgbGV0IG51bVJlbWFpbmluZyA9IHRoaXMu
bm9kZUxpc3QubGVuZ3RoIC0gdGhpcy5lbnRyaWVzQWRkZWQ7CisgICAgICAgIGlmIChudW1SZW1h
aW5pbmcgPT0gMCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLnNob3dNb3Jl
SXRlbS5yZW1vdmUoKTsKKworICAgICAgICBsZXQgZnJvbUluZGV4ID0gdGhpcy5lbnRyaWVzQWRk
ZWQ7CisgICAgICAgIGxldCB0b0luZGV4ID0gTWF0aC5taW4odGhpcy5ub2RlTGlzdC5sZW5ndGgs
IGZyb21JbmRleCArIHRoaXMuZW50cmllc1F1YW50dW0pOworICAgICAgICB0aGlzLmFwcGVuZEl0
ZW1zRm9yUmFuZ2UoaW5zcGVjdG9yLCBmcm9tSW5kZXgsIHRvSW5kZXgpOworICAgICAgICAKKyAg
ICAgICAgaWYgKHRvSW5kZXggPCB0aGlzLm5vZGVMaXN0Lmxlbmd0aCkgeworICAgICAgICAgICAg
dGhpcy5zaG93TW9yZUl0ZW0gPSB0aGlzLm1ha2VTaG93TW9yZUl0ZW0oaW5zcGVjdG9yKTsKKyAg
ICAgICAgICAgIHRoaXMubGlzdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5zaG93TW9yZUl0ZW0p
OworICAgICAgICB9CisgICAgfQorCisgICAgbWFrZVNob3dNb3JlSXRlbShpbnNwZWN0b3IpCisg
ICAgeworICAgICAgICBsZXQgbnVtYmVyUmVtYWluaW5nID0gdGhpcy5ub2RlTGlzdC5sZW5ndGgg
LSB0aGlzLmVudHJpZXNBZGRlZDsKKyAgICAgICAgCisgICAgICAgIGxldCBsaXN0SXRlbSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CisgICAgICAgIGxpc3RJdGVtLmNsYXNzTmFtZSA9
ICdzaG93LW1vcmUnOworICAgICAgICBsaXN0SXRlbS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZShgJHtudW1iZXJSZW1haW5pbmd9IG1vcmUgYCkpOworCisgICAgICAgIGxldCBt
b3JlQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CisgICAgICAgIG1v
cmVCdXR0b24udGV4dENvbnRlbnQgPSBgU2hvdyAke01hdGgubWluKHRoaXMuZW50cmllc1F1YW50
dW0sIG51bWJlclJlbWFpbmluZyl9IG1vcmVgOworCisgICAgICAgIGxldCB0aGlzTGlzdCA9IHRo
aXM7CisgICAgICAgIG1vcmVCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlv
bihlKSB7CisgICAgICAgICAgICB0aGlzTGlzdC5hcHBlbmRNb3JlRW50cmllcyhpbnNwZWN0b3Is
IDEwKTsKKyAgICAgICAgfSwgZmFsc2UpOworICAgICAgICAKKyAgICAgICAgbGlzdEl0ZW0uYXBw
ZW5kQ2hpbGQobW9yZUJ1dHRvbik7CisgICAgICAgIHJldHVybiBsaXN0SXRlbTsKKyAgICB9Cit9
OworCisKK2NsYXNzIEhlYXBTbmFwc2hvdEluc3BlY3RvcgoreworICAgIGNvbnN0cnVjdG9yKGNv
bnRhaW5lckVsZW1lbnQsIGhlYXBKU09ORGF0YSwgZmlsZW5hbWUpCisgICAgeworICAgICAgICB0
aGlzLmNvbnRhaW5lckVsZW1lbnQgPSBjb250YWluZXJFbGVtZW50OworICAgICAgICB0aGlzLnJl
c2V0VUkoKTsKKworICAgICAgICB0aGlzLnNuYXBzaG90ID0gbmV3IEhlYXBTbmFwc2hvdCgxLCBo
ZWFwSlNPTkRhdGEsIGZpbGVuYW1lKTsKKyAgICAgICAgCisgICAgICAgIHRoaXMuYnVpbGRSb290
cygpOworICAgICAgICB0aGlzLmJ1aWxkQWxsT2JqZWN0c0J5VHlwZSgpOworCisgICAgICAgIHRo
aXMuYnVpbGRQYXRoc1RvUm9vdHNPZlR5cGUoJ1dpbmRvdycpOworICAgICAgICB0aGlzLmJ1aWxk
UGF0aHNUb1Jvb3RzT2ZUeXBlKCdIVE1MRG9jdW1lbnQnKTsKKyAgICB9CisgICAgCisgICAgcmVz
ZXRVSSgpCisgICAgeworICAgICAgICBET01VdGlscy5yZW1vdmVBbGxDaGlsZHJlbih0aGlzLmNv
bnRhaW5lckVsZW1lbnQpOworICAgICAgICAKKyAgICAgICAgdGhpcy5vYmplY3RCeVR5cGVDb250
YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzZWN0aW9uJyk7CisgICAgICAgIHRoaXMu
b2JqZWN0QnlUeXBlQ29udGFpbmVyLmlkID0gJ2FsbC1vYmplY3RzLWJ5LXR5cGUnOworCisgICAg
ICAgIGxldCBoZWFkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdoMScpOworICAgICAgICBo
ZWFkZXIudGV4dENvbnRlbnQgPSAnQWxsIE9iamVjdHMgYnkgVHlwZScKKyAgICAgICAgdGhpcy5v
YmplY3RCeVR5cGVDb250YWluZXIuYXBwZW5kQ2hpbGQoaGVhZGVyKTsKKyAgICAgICAgCisgICAg
ICAgIHRoaXMucm9vdHNDb250YWluZXIgPSAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2VjdGlv
bicpOworICAgICAgICB0aGlzLnJvb3RzQ29udGFpbmVyLmlkID0gJ3Jvb3RzJzsKKyAgICAgICAg
aGVhZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaDEnKTsKKyAgICAgICAgaGVhZGVyLnRl
eHRDb250ZW50ID0gJ1Jvb3RzJworICAgICAgICB0aGlzLnJvb3RzQ29udGFpbmVyLmFwcGVuZENo
aWxkKGhlYWRlcik7CisKKyAgICAgICAgdGhpcy5wYXRoc1RvUm9vdHNDb250YWluZXIgPSAgZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnc2VjdGlvbicpOworICAgICAgICB0aGlzLnBhdGhzVG9Sb290
c0NvbnRhaW5lci5pZCA9ICdwYXRocy10by1yb290cyc7CisgICAgICAgIGhlYWRlciA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2gxJyk7CisgICAgICAgIGhlYWRlci50ZXh0Q29udGVudCA9ICdQ
YXRocyB0byByb290cycKKyAgICAgICAgdGhpcy5wYXRoc1RvUm9vdHNDb250YWluZXIuYXBwZW5k
Q2hpbGQoaGVhZGVyKTsKKworICAgICAgICB0aGlzLmFsbFBhdGhzQ29udGFpbmVyID0gIGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3NlY3Rpb24nKTsKKyAgICAgICAgdGhpcy5hbGxQYXRoc0NvbnRh
aW5lci5pZCA9ICdhbGwtcGF0aHMnOworICAgICAgICBoZWFkZXIgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdoMScpOworICAgICAgICBoZWFkZXIudGV4dENvbnRlbnQgPSAnQWxsIHBhdGhzIHRv
4oCmJworICAgICAgICB0aGlzLmFsbFBhdGhzQ29udGFpbmVyLmFwcGVuZENoaWxkKGhlYWRlcik7
CisKKyAgICAgICAgdGhpcy5jb250YWluZXJFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMucGF0aHNU
b1Jvb3RzQ29udGFpbmVyKTsKKyAgICAgICAgdGhpcy5jb250YWluZXJFbGVtZW50LmFwcGVuZENo
aWxkKHRoaXMuYWxsUGF0aHNDb250YWluZXIpOworICAgICAgICB0aGlzLmNvbnRhaW5lckVsZW1l
bnQuYXBwZW5kQ2hpbGQodGhpcy5yb290c0NvbnRhaW5lcik7CisgICAgICAgIHRoaXMuY29udGFp
bmVyRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLm9iamVjdEJ5VHlwZUNvbnRhaW5lcik7CisgICAg
fQorCisgICAgYnVpbGRBbGxPYmplY3RzQnlUeXBlKCkKKyAgICB7CisgICAgICAgIGxldCBjYXRl
Z29yaWVzID0gdGhpcy5zbmFwc2hvdC5fY2F0ZWdvcmllczsKKyAgICAgICAgbGV0IGNhdGVnb3J5
TmFtZXMgPSBPYmplY3Qua2V5cyhjYXRlZ29yaWVzKS5zb3J0KCk7CisgICAgCisgICAgICAgIGZv
ciAodmFyIGNhdGVnb3J5TmFtZSBvZiBjYXRlZ29yeU5hbWVzKSB7CisgICAgICAgICAgICBsZXQg
Y2F0ZWdvcnkgPSBjYXRlZ29yaWVzW2NhdGVnb3J5TmFtZV07CisKKyAgICAgICAgICAgIGxldCBk
ZXRhaWxzID0gRE9NVXRpbHMuY3JlYXRlRGV0YWlscyhgJHtjYXRlZ29yeS5jbGFzc05hbWV9ICgk
e2NhdGVnb3J5LmNvdW50fSlgKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGV0IGluc3Rh
bmNlTGlzdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd1bCcpOworICAgICAgICAg
ICAgaW5zdGFuY2VMaXN0RWxlbWVudC5jbGFzc05hbWUgPSAnaW5zdGFuY2UtbGlzdCc7CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIGxldCBpbnN0YW5jZUxpc3QgPSBuZXcgSW5zdGFuY2VMaXN0
KGluc3RhbmNlTGlzdEVsZW1lbnQsIHRoaXMuc25hcHNob3QsIGZ1bmN0aW9uKHNuYXBzaG90KSB7
CisgICAgICAgICAgICAgICAgcmV0dXJuIEhlYXBTbmFwc2hvdC5pbnN0YW5jZXNXaXRoQ2xhc3NO
YW1lKHNuYXBzaG90LCBjYXRlZ29yeU5hbWUpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGluc3RhbmNlTGlzdC5idWlsZExpc3QodGhpcyk7CisKKyAgICAgICAg
ICAgIGRldGFpbHMuYXBwZW5kQ2hpbGQoaW5zdGFuY2VMaXN0RWxlbWVudCk7CisgICAgICAgICAg
ICB0aGlzLm9iamVjdEJ5VHlwZUNvbnRhaW5lci5hcHBlbmRDaGlsZChkZXRhaWxzKTsKKyAgICAg
ICAgfQorICAgIH0KKyAgICAKKyAgICBidWlsZFJvb3RzKCkKKyAgICB7CisgICAgICAgIGxldCBy
b290cyA9IHRoaXMuc25hcHNob3Qucm9vdE5vZGVzKCk7CisgICAgICAgIGlmIChyb290cy5sZW5n
dGggPT0gMCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsZXQgZ3JvdXBpbmdzID0g
cm9vdHMucmVkdWNlKGZ1bmN0aW9uKGFjY3VtdWxhdG9yLCBub2RlKSB7CisgICAgICAgICAgICB2
YXIga2V5ID0gbm9kZS5jbGFzc05hbWU7CisgICAgICAgICAgICAgICAgaWYgKCFhY2N1bXVsYXRv
cltrZXldKSB7CisgICAgICAgICAgICAgICAgICBhY2N1bXVsYXRvcltrZXldID0gW107CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFjY3VtdWxhdG9yW2tleV0ucHVzaChub2Rl
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYWNjdW11bGF0b3I7ICAgICAgICAKKyAgICAgICAg
fSwge30pOworICAgIAorICAgICAgICBsZXQgcm9vdE5hbWVzID0gT2JqZWN0LmtleXMoZ3JvdXBp
bmdzKS5zb3J0KCk7CisgICAgCisgICAgICAgIGZvciAodmFyIHJvb3RDbGFzc05hbWUgb2Ygcm9v
dE5hbWVzKSB7CisgICAgICAgICAgICBsZXQgcm9vdHNPZlR5cGUgPSBncm91cGluZ3Nbcm9vdENs
YXNzTmFtZV07CisgICAgICAgIAorICAgICAgICAgICAgcm9vdHNPZlR5cGUuc29ydChmdW5jdGlv
bihhLCBiKSB7CisgICAgICAgICAgICAgICAgbGV0IGFkZHJlc3NBID0gSGVhcEluc3BlY3RvclV0
aWxzLmFkZHJlc3NGb3JOb2RlKGEpOworICAgICAgICAgICAgICAgIGxldCBhZGRyZXNzQiA9IEhl
YXBJbnNwZWN0b3JVdGlscy5hZGRyZXNzRm9yTm9kZShiKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gKGFkZHJlc3NBIDwgYWRkcmVzc0IpID8gLTEgOiAoYWRkcmVzc0EgPiBhZGRyZXNzQikgPyAx
IDogMDsKKyAgICAgICAgICAgIH0pCisKKyAgICAgICAgICAgIGxldCBkZXRhaWxzID0gRE9NVXRp
bHMuY3JlYXRlRGV0YWlscyhgJHtyb290Q2xhc3NOYW1lfSAoJHtyb290c09mVHlwZS5sZW5ndGh9
KWApOworICAgICAgICAgICAgbGV0IHJvb3RzVHlwZUxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCd1bCcpCisgICAgICAgICAgICByb290c1R5cGVMaXN0LmNsYXNzTmFtZSA9ICdpbnN0YW5j
ZS1saXN0JzsKKworICAgICAgICAgICAgZm9yIChsZXQgcm9vdCBvZiByb290c09mVHlwZSkgewor
ICAgICAgICAgICAgICAgIGxldCByb290TGlzdEl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdsaScpOworICAgICAgICAgICAgICAgIHJvb3RMaXN0SXRlbS5hcHBlbmRDaGlsZChIZWFwSW5z
cGVjdG9yVXRpbHMuc3BhbkZvck5vZGUodGhpcywgcm9vdCwgdHJ1ZSkpOworICAgICAgICAgICAg
ICAgIHJvb3RzVHlwZUxpc3QuYXBwZW5kQ2hpbGQocm9vdExpc3RJdGVtKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgZGV0YWlscy5hcHBlbmRDaGlsZChyb290c1R5cGVMaXN0KTsKKwor
ICAgICAgICAgICAgdGhpcy5yb290c0NvbnRhaW5lci5hcHBlbmRDaGlsZChkZXRhaWxzKTsKKyAg
ICAgICAgfQorICAgIH0KKyAgICAKKyAgICBidWlsZFBhdGhzVG9Sb290c09mVHlwZSh0eXBlKQor
ICAgIHsKKyAgICAgICAgbGV0IGluc3RhbmNlcyA9IEhlYXBTbmFwc2hvdC5pbnN0YW5jZXNXaXRo
Q2xhc3NOYW1lKHRoaXMuc25hcHNob3QsIHR5cGUpOworICAgICAgICBpZiAoaW5zdGFuY2VzLmxl
bmd0aCA9PSAwKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxldCBoZWFkZXIgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdoMicpOworICAgICAgICBoZWFkZXIudGV4dENvbnRlbnQg
PSAnU2hvcnRlc3QgcGF0aHMgdG8gYWxsICcgKyB0eXBlICsgJ3MnOworICAgIAorICAgICAgICBs
ZXQgZGV0YWlsc0NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlY3Rpb24nKQor
ICAgICAgICBkZXRhaWxzQ29udGFpbmVyLmNsYXNzTmFtZSA9ICdwYXRoJzsKKworICAgICAgICBm
b3IgKHZhciBpbnN0YW5jZSBvZiBpbnN0YW5jZXMpIHsKKyAgICAgICAgICAgIGxldCBzaG9ydGVz
dFBhdGggPSB0aGlzLnNuYXBzaG90LnNob3J0ZXN0R0NSb290UGF0aChpbnN0YW5jZS5pZCkucmV2
ZXJzZSgpOworCisgICAgICAgICAgICBsZXQgZGV0YWlscyA9IERPTVV0aWxzLmNyZWF0ZURldGFp
bHMoJycpOworICAgICAgICAgICAgbGV0IHN1bW1hcnkgPSBkZXRhaWxzLmZpcnN0Q2hpbGQ7Cisg
ICAgICAgICAgICBzdW1tYXJ5LmFwcGVuZENoaWxkKEhlYXBJbnNwZWN0b3JVdGlscy5zcGFuRm9y
Tm9kZSh0aGlzLCBpbnN0YW5jZSwgdHJ1ZSkpOworICAgICAgICAgICAgc3VtbWFyeS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgn4oCUJykpOworICAgICAgICAgICAgc3VtbWFy
eS5hcHBlbmRDaGlsZChIZWFwSW5zcGVjdG9yVXRpbHMuc3VtbWFyeVNwYW5Gb3JQYXRoKHRoaXMs
IHNob3J0ZXN0UGF0aCkpOworCisgICAgICAgICAgICBsZXQgcGF0aExpc3QgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCd1bCcpOworICAgICAgICAgICAgcGF0aExpc3QuY2xhc3NOYW1lID0gJ3Bh
dGgnOworCisgICAgICAgICAgICBsZXQgaXNOb2RlID0gdHJ1ZTsKKyAgICAgICAgICAgIGxldCBj
dXJySXRlbSA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2Ygc2hvcnRl
c3RQYXRoKSB7CisgICAgICAgICAgICAgICAgaWYgKGlzTm9kZSkgeworICAgICAgICAgICAgICAg
ICAgICBjdXJySXRlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CisgICAgICAgICAg
ICAgICAgICAgIGN1cnJJdGVtLmFwcGVuZENoaWxkKEhlYXBJbnNwZWN0b3JVdGlscy5zcGFuRm9y
Tm9kZSh0aGlzLCBpdGVtKSk7CisgICAgICAgICAgICAgICAgICAgIHBhdGhMaXN0LmFwcGVuZENo
aWxkKGN1cnJJdGVtKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICBjdXJySXRlbS5hcHBlbmRDaGlsZChIZWFwSW5zcGVjdG9yVXRpbHMuc3BhbkZvckVkZ2Uo
dGhpcy5zbmFwc2hvdCwgaXRlbSkpOworICAgICAgICAgICAgICAgICAgICBjdXJySXRlbSA9IHVu
ZGVmaW5lZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaXNOb2RlID0gIWlz
Tm9kZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBkZXRhaWxzLmFwcGVu
ZENoaWxkKHBhdGhMaXN0KTsKKyAgICAgICAgICAgIGRldGFpbHNDb250YWluZXIuYXBwZW5kQ2hp
bGQoZGV0YWlscyk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLnBhdGhzVG9Sb290c0NvbnRh
aW5lci5hcHBlbmRDaGlsZChoZWFkZXIpOworICAgICAgICB0aGlzLnBhdGhzVG9Sb290c0NvbnRh
aW5lci5hcHBlbmRDaGlsZChkZXRhaWxzQ29udGFpbmVyKTsKKyAgICB9CisKKyAgICBzaG93QWxs
UGF0aHNUb05vZGUobm9kZSkKKyAgICB7CisgICAgICAgIGxldCBwYXRocyA9IHRoaXMuc25hcHNo
b3QuX2djUm9vdFBhdGhzKG5vZGUuaWQpOworICAgIAorICAgICAgICBsZXQgZGV0YWlscyA9IERP
TVV0aWxzLmNyZWF0ZURldGFpbHMoJycpOworICAgICAgICBsZXQgc3VtbWFyeSA9IGRldGFpbHMu
Zmlyc3RDaGlsZDsKKyAgICAgICAgc3VtbWFyeS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZShgJHtwYXRocy5sZW5ndGh9IHBhdGgke3BhdGhzLmxlbmd0aCA+IDEgPyAncycgOiAn
J30gdG8gYCkpOworICAgICAgICBzdW1tYXJ5LmFwcGVuZENoaWxkKEhlYXBJbnNwZWN0b3JVdGls
cy5zcGFuRm9yTm9kZSh0aGlzLCBub2RlLCBmYWxzZSkpOworCisgICAgICAgIGxldCBkZXRhaWxz
Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2VjdGlvbicpCisgICAgICAgIGRl
dGFpbHNDb250YWluZXIuY2xhc3NOYW1lID0gJ3BhdGgnOworICAgIAorICAgICAgICBmb3IgKGxl
dCBwYXRoIG9mIHBhdGhzKSB7CisgICAgICAgICAgICBsZXQgcGF0aE5vZGVzID0gcGF0aC5tYXAo
KGNvbXBvbmVudCkgPT4geworICAgICAgICAgICAgICAgIGlmIChjb21wb25lbnQubm9kZSkKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc25hcHNob3Quc2VyaWFsaXplTm9kZShjb21w
b25lbnQubm9kZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc25hcHNob3Quc2VyaWFs
aXplRWRnZShjb21wb25lbnQuZWRnZSk7CisgICAgICAgICAgICB9KS5yZXZlcnNlKCk7CisKKyAg
ICAgICAgICAgIGxldCBwYXRoRGV0YWlscyA9IERPTVV0aWxzLmNyZWF0ZURldGFpbHMoJycpOwor
ICAgICAgICAgICAgbGV0IHBhdGhTdW1tYXJ5ID0gcGF0aERldGFpbHMuZmlyc3RDaGlsZDsKKyAg
ICAgICAgICAgIHBhdGhTdW1tYXJ5LmFwcGVuZENoaWxkKEhlYXBJbnNwZWN0b3JVdGlscy5zdW1t
YXJ5U3BhbkZvclBhdGgodGhpcywgcGF0aE5vZGVzKSk7CisgICAgICAgIAorICAgICAgICAgICAg
bGV0IHBhdGhMaXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndWwnKTsKKyAgICAgICAgICAg
IHBhdGhMaXN0LmNsYXNzTmFtZSA9ICdwYXRoJzsKKworICAgICAgICAgICAgbGV0IGlzTm9kZSA9
IHRydWU7CisgICAgICAgICAgICBsZXQgY3Vyckl0ZW0gPSB1bmRlZmluZWQ7CisgICAgICAgICAg
ICBmb3IgKGxldCBpdGVtIG9mIHBhdGhOb2RlcykgeworICAgICAgICAgICAgICAgIGlmIChpc05v
ZGUpIHsKKyAgICAgICAgICAgICAgICAgICAgY3Vyckl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdsaScpOworICAgICAgICAgICAgICAgICAgICBjdXJySXRlbS5hcHBlbmRDaGlsZChIZWFw
SW5zcGVjdG9yVXRpbHMuc3BhbkZvck5vZGUodGhpcywgaXRlbSkpOworICAgICAgICAgICAgICAg
ICAgICBwYXRoTGlzdC5hcHBlbmRDaGlsZChjdXJySXRlbSk7CisgICAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY3Vyckl0ZW0uYXBwZW5kQ2hpbGQoSGVhcEluc3Bl
Y3RvclV0aWxzLnNwYW5Gb3JFZGdlKHRoaXMuc25hcHNob3QsIGl0ZW0pKTsKKyAgICAgICAgICAg
ICAgICAgICAgY3Vyckl0ZW0gPSB1bmRlZmluZWQ7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGlzTm9kZSA9ICFpc05vZGU7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAg
ICAgICBwYXRoRGV0YWlscy5hcHBlbmRDaGlsZChwYXRoTGlzdCk7CisgICAgICAgICAgICBkZXRh
aWxzQ29udGFpbmVyLmFwcGVuZENoaWxkKHBhdGhEZXRhaWxzKTsKKyAgICAgICAgfQorICAgIAor
ICAgICAgICBkZXRhaWxzLmFwcGVuZENoaWxkKGRldGFpbHNDb250YWluZXIpOworICAgICAgICB0
aGlzLmFsbFBhdGhzQ29udGFpbmVyLmFwcGVuZENoaWxkKGRldGFpbHMpOworICAgIH0KKworfTsK
KworCitmdW5jdGlvbiBsb2FkUmVzdWx0cyhkYXRhU3RyaW5nLCBmaWxlbmFtZSkKK3sKKyAgICBs
ZXQgaW5zcGVjdG9yQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VpQ29udGFp
bmVyJyk7CisgICAgaW5zcGVjdG9yID0gbmV3IEhlYXBTbmFwc2hvdEluc3BlY3RvcihpbnNwZWN0
b3JDb250YWluZXIsIGRhdGFTdHJpbmcsIGZpbGVuYW1lKQorfQorCitmdW5jdGlvbiBmaWxlbmFt
ZUZvclBhdGgoZmlsZXBhdGgpCit7CisgICAgcmV0dXJuIGZpbGVwYXRoLm1hdGNoKC8oW15cL10r
KSg/PVwuXHcrJCkvKVswXTsKK30KKworZnVuY3Rpb24gaGlkZURlc2NyaXB0aW9uKCkKK3sKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVzY3JpcHRpb24nKS5jbGFzc0xpc3QuYWRkKCdo
aWRkZW4nKTsKK30KKwordmFyIGluc3BlY3RvcjsKKworZnVuY3Rpb24gc2V0dXBJbnRlcmZhY2Uo
KQoreworICAgIC8vIFNlZSBpZiB3ZSBoYXZlIGEgZmlsZSB0byBsb2FkIHNwZWNpZmllZCBpbiB0
aGUgcXVlcnkgc3RyaW5nLgorICAgIHZhciBxdWVyeV9wYXJhbWV0ZXJzID0ge307CisgICAgdmFy
IHBhaXJzID0gd2luZG93LmxvY2F0aW9uLmhyZWYuc2xpY2Uod2luZG93LmxvY2F0aW9uLmhyZWYu
aW5kZXhPZignPycpICsgMSkuc3BsaXQoJyYnKTsKKyAgICB2YXIgZmlsZW5hbWUgPSAidGVzdC1o
ZWFwLmpzb24iOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYWlycy5sZW5ndGg7IGkrKykg
eworICAgICAgICB2YXIgcGFpciA9IHBhaXJzW2ldLnNwbGl0KCc9Jyk7CisgICAgICAgIHF1ZXJ5
X3BhcmFtZXRlcnNbcGFpclswXV0gPSBkZWNvZGVVUklDb21wb25lbnQocGFpclsxXSk7CisgICAg
fQorCisgICAgaWYgKCJmaWxlbmFtZSIgaW4gcXVlcnlfcGFyYW1ldGVycykKKyAgICAgICAgZmls
ZW5hbWUgPSBxdWVyeV9wYXJhbWV0ZXJzWyJmaWxlbmFtZSJdOworCisgICAgZmV0Y2goZmlsZW5h
bWUpCisgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgIGlmIChyZXNw
b25zZS5vaykKKyAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsKKyAgICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGRhdGEgZmlsZSAnICsgZmlsZW5hbWUp
OworICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGRhdGFTdHJpbmcpIHsKKyAgICAgICAg
ICBsb2FkUmVzdWx0cyhkYXRhU3RyaW5nLCBmaWxlbmFtZUZvclBhdGgoZmlsZW5hbWUpKTsKKyAg
ICAgICAgICBoaWRlRGVzY3JpcHRpb24oKTsKKyAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndWlDb250YWluZXInKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKKyAgICAgIH0pOwor
CisgICAgdmFyIGRyb3BfdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyb3BUYXJn
ZXQiKTsKKworICAgIGRyb3BfdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbnRlciIsIGZ1
bmN0aW9uIChlKSB7CisgICAgICAgIGRyb3BfdGFyZ2V0LmNsYXNzTmFtZSA9ICJkcmFnT3ZlciI7
CisgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIGUucHJldmVudERlZmF1bHQo
KTsKKyAgICB9LCBmYWxzZSk7CisKKyAgICBkcm9wX3RhcmdldC5hZGRFdmVudExpc3RlbmVyKCJk
cmFnb3ZlciIsIGZ1bmN0aW9uIChlKSB7CisgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7Cisg
ICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICB9LCBmYWxzZSk7CisKKyAgICBkcm9wX3Rh
cmdldC5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLCBmdW5jdGlvbiAoZSkgeworICAgICAg
ICBkcm9wX3RhcmdldC5jbGFzc05hbWUgPSAiIjsKKyAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24o
KTsKKyAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgIH0sIGZhbHNlKTsKKworICAgIGRy
b3BfdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLCBmdW5jdGlvbiAoZSkgeworICAgICAg
ICBkcm9wX3RhcmdldC5jbGFzc05hbWUgPSAiIjsKKyAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24o
KTsKKyAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworCisgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgZS5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZh
ciBmaWxlID0gZS5kYXRhVHJhbnNmZXIuZmlsZXNbaV07CisKKyAgICAgICAgICAgIHZhciByZWFk
ZXIgPSBuZXcgRmlsZVJlYWRlcigpOworICAgICAgICAgICAgcmVhZGVyLmZpbGVuYW1lID0gZmls
ZS5uYW1lOworICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgICAgICBsb2FkUmVzdWx0cyhlLnRhcmdldC5yZXN1bHQsIGZpbGVuYW1lRm9yUGF0aCh0
aGlzLmZpbGVuYW1lKSk7CisgICAgICAgICAgICAgICAgaGlkZURlc2NyaXB0aW9uKCk7CisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VpQ29udGFpbmVyJykuc3R5bGUu
ZGlzcGxheSA9ICdibG9jayc7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICByZWFkZXIu
cmVhZEFzVGV4dChmaWxlKTsKKyAgICAgICAgICAgIGRvY3VtZW50LnRpdGxlID0gIkdDIEhlYXA6
ICIgKyByZWFkZXIuZmlsZW5hbWU7CisgICAgICAgIH0KKyAgICB9LCBmYWxzZSk7Cit9CisKK3dp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgc2V0dXBJbnRlcmZhY2UsIGZhbHNlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>