<?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>203101</bug_id>
          
          <creation_ts>2019-10-17 09:54:42 -0700</creation_ts>
          <short_desc>PaymentRequest / PaymentResponse should not prevent entering the back/forward cache</short_desc>
          <delta_ts>2019-11-11 14:14:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=203976</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>202293</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1581014</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-17 09:54:42 -0700</bug_when>
    <thetext>PaymentRequest / PaymentResponse should not prevent entering the back/forward cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585361</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-30 08:21:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/56744409&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588753</commentid>
    <comment_count>2</comment_count>
      <attachid>383151</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2019-11-08 11:59:00 -0800</bug_when>
    <thetext>Created attachment 383151
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588758</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-08 12:36:08 -0800</bug_when>
    <thetext>Looks like EWS is unhappy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588765</commentid>
    <comment_count>4</comment_count>
      <attachid>383151</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-08 12:48:03 -0800</bug_when>
    <thetext>Comment on attachment 383151
Patch

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

&gt; Source/WebCore/Modules/paymentrequest/PaymentRequest.cpp:508
&gt; +    showPromise-&gt;queueTaskToSettleWithResultCallback(TaskSource::UserInteraction, [] {

Soon won&apos;t be needed anymore: https://bugs.webkit.org/show_bug.cgi?id=203976</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588774</commentid>
    <comment_count>5</comment_count>
      <attachid>383155</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2019-11-08 13:06:05 -0800</bug_when>
    <thetext>Created attachment 383155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588829</commentid>
    <comment_count>6</comment_count>
      <attachid>383162</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2019-11-08 14:08:22 -0800</bug_when>
    <thetext>Created attachment 383162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588846</commentid>
    <comment_count>7</comment_count>
      <attachid>383162</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-08 14:39:39 -0800</bug_when>
    <thetext>Comment on attachment 383162
Patch

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

&gt; Source/WebCore/Modules/paymentrequest/PaymentRequest.cpp:508
&gt; +    showPromise-&gt;queueTaskToSettleWithResultCallback(TaskSource::UserInteraction, [] {

My patch landed so this is really not needed anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588851</commentid>
    <comment_count>8</comment_count>
      <attachid>383162</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-08 14:59:13 -0800</bug_when>
    <thetext>Comment on attachment 383162
Patch

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

&gt; Source/WebCore/bindings/js/JSDOMPromiseDeferred.cpp:177
&gt; +void DeferredPromise::queueTaskKeepingSelfAlive(TaskSource source, Function&lt;void()&gt;&amp;&amp; task)

This is no longer needed now that my patch landed.

&gt; Source/WebCore/bindings/js/JSDOMPromiseDeferred.h:170
&gt; +    void queueTaskToSettleWithResultCallback(TaskSource source, Function&lt;ExceptionOr&lt;typename IDLType::ParameterType&gt;()&gt;&amp;&amp; resultCallback)

No longer needed.

&gt; Source/WebCore/bindings/js/JSDOMPromiseDeferred.h:177
&gt; +    void queueTaskToSettleWithResultCallback(TaskSource source, Function&lt;ExceptionOr&lt;void&gt;()&gt;&amp;&amp; resultCallback)

No longer needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589194</commentid>
    <comment_count>9</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2019-11-11 07:59:10 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #8)
&gt; Comment on attachment 383162 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=383162&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSDOMPromiseDeferred.cpp:177
&gt; &gt; +void DeferredPromise::queueTaskKeepingSelfAlive(TaskSource source, Function&lt;void()&gt;&amp;&amp; task)
&gt; 
&gt; This is no longer needed now that my patch landed.

I rebased on top of your patch and switched to calling DOMPromiseDeferred::settle in my suspend() overrides, but two of my new tests now crash on ASSERT(vm.currentThreadIsHoldingAPILock()) in JSC::sanitizeStackForVM when the promises are being settled in the WindowEventLoop.

CRASHING TEST: /paymentrequest/page-cache-interactive-payment-request.https.html

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   JavaScriptCore                	0x0000000240a66d9e WTFCrash + 14 (Assertions.cpp:305)
1   JavaScriptCore                	0x0000000241c3307b WTFCrashWithInfo(int, char const*, char const*, int) + 27
2   JavaScriptCore                	0x0000000241db8ccf JSC::sanitizeStackForVM(JSC::VM&amp;) + 143 (VM.cpp:1157)
3   JavaScriptCore                	0x00000002415d2e02 JSC::Heap::runCurrentPhase(JSC::GCConductor, JSC::CurrentThreadState*) + 98
4   JavaScriptCore                	0x00000002415d7d4f JSC::Heap::collectInMutatorThread() + 47 (Heap.cpp:1838)
5   JavaScriptCore                	0x00000002415d7b6b JSC::Heap::stopIfNecessarySlow(unsigned int) + 363 (Heap.cpp:1831)
6   JavaScriptCore                	0x00000002415d78d7 JSC::Heap::stopIfNecessarySlow() + 151 (Heap.cpp:1800)
7   JavaScriptCore                	0x00000002415d271f JSC::Heap::stopIfNecessary() + 143 (HeapInlines.h:270)
8   JavaScriptCore                	0x00000002415cf0e2 JSC::Heap::collectIfNecessaryOrDefer(JSC::GCDeferralContext*) + 434
9   JavaScriptCore                	0x00000002415da7b3 JSC::Heap::decrementDeferralDepthAndGCIfNeededSlow() + 163 (Heap.cpp:2667)
10  JavaScriptCore                	0x0000000241b6a058 JSC::Heap::decrementDeferralDepthAndGCIfNeeded() + 184 (HeapInlines.h:215)
11  JavaScriptCore                	0x0000000241a4607f JSC::DeferGC::~DeferGC() + 127 (DeferGC.h:49)
12  JavaScriptCore                	0x0000000241b5ee15 JSC::DeferGC::~DeferGC() + 21 (DeferGC.h:49)
13  JavaScriptCore                	0x0000000240df6733 JSC::GCSafeConcurrentJSLocker::~GCSafeConcurrentJSLocker() + 51 (ConcurrentJSLock.h:91)
14  JavaScriptCore                	0x0000000240df6365 JSC::GCSafeConcurrentJSLocker::~GCSafeConcurrentJSLocker() + 21 (ConcurrentJSLock.h:91)
15  JavaScriptCore                	0x0000000241d779e9 int JSC::Structure::add&lt;(JSC::Structure::ShouldPin)0, JSC::Structure::add(JSC::VM&amp;, JSC::PropertyName, unsigned int)::$_4&gt;(JSC::VM&amp;, JSC::PropertyName, unsigned int, JSC::Structure::add(JSC::VM&amp;, JSC::PropertyName, unsigned int)::$_4 const&amp;) + 697 (StructureInlines.h:460)
16  JavaScriptCore                	0x0000000241d7504e JSC::Structure::add(JSC::VM&amp;, JSC::PropertyName, unsigned int) + 62 (Structure.cpp:962)
17  JavaScriptCore                	0x0000000241d74e95 JSC::Structure::addNewPropertyTransition(JSC::VM&amp;, JSC::Structure*, JSC::PropertyName, unsigned int, int&amp;, JSC::PutPropertySlot::Context, JSC::DeferredStructureTransitionWatchpointFire*) + 1093 (Structure.cpp:508)
18  JavaScriptCore                	0x0000000241a48cfc bool JSC::JSObject::putDirectInternal&lt;(JSC::JSObject::PutMode)1&gt;(JSC::VM&amp;, JSC::PropertyName, JSC::JSValue, unsigned int, JSC::PutPropertySlot&amp;) + 2812 (JSObjectInlines.h:375)
19  JavaScriptCore                	0x0000000241a382a2 JSC::JSObject::putDirect(JSC::VM&amp;, JSC::PropertyName, JSC::JSValue, unsigned int) + 354 (JSObject.h:1490)
20  JavaScriptCore                	0x0000000241c49e7f JSC::JSObject::putDirectBuiltinFunction(JSC::VM&amp;, JSC::JSGlobalObject*, JSC::PropertyName const&amp;, JSC::FunctionExecutable*, unsigned int) + 271 (JSObject.cpp:3203)
21  JavaScriptCore                	0x0000000241c44a6d JSC::reifyStaticProperty(JSC::VM&amp;, JSC::ClassInfo const*, JSC::PropertyName const&amp;, JSC::HashTableValue const&amp;, JSC::JSObject&amp;) + 269 (Lookup.h:329)
22  JavaScriptCore                	0x0000000241cc4ce0 JSC::setUpStaticFunctionSlot(JSC::VM&amp;, JSC::ClassInfo const*, JSC::HashTableValue const*, JSC::JSObject*, JSC::PropertyName, JSC::PropertySlot&amp;) + 384 (Lookup.cpp:63)
23  JavaScriptCore                	0x0000000241c43216 JSC::getStaticPropertySlotFromTable(JSC::VM&amp;, JSC::ClassInfo const*, JSC::HashTable const&amp;, JSC::JSObject*, JSC::PropertyName, JSC::PropertySlot&amp;) + 182 (Lookup.h:233)
24  JavaScriptCore                	0x0000000241c4310e JSC::JSObject::getOwnStaticPropertySlot(JSC::VM&amp;, JSC::PropertyName, JSC::PropertySlot&amp;) + 126 (JSObject.cpp:2215)
25  JavaScriptCore                	0x0000000241c56c79 JSC::JSObject::getOwnNonIndexPropertySlot(JSC::VM&amp;, JSC::Structure*, JSC::PropertyName, JSC::PropertySlot&amp;) + 153 (JSObject.h:1355)
26  JavaScriptCore                	0x0000000241a4a3b4 bool JSC::JSObject::getPropertySlot&lt;false&gt;(JSC::JSGlobalObject*, JSC::PropertyName, JSC::PropertySlot&amp;) + 436 (JSObject.h:1444)
27  JavaScriptCore                	0x0000000241b653be JSC::JSValue::getPropertySlot(JSC::JSGlobalObject*, JSC::PropertyName, JSC::PropertySlot&amp;) const + 670 (JSCJSValueInlines.h:909)
28  JavaScriptCore                	0x0000000241a4d278 JSC::JSValue::get(JSC::JSGlobalObject*, JSC::PropertyName, JSC::PropertySlot&amp;) const + 184 (JSCJSValueInlines.h:866)
29  JavaScriptCore                	0x0000000241892965 llint_slow_path_get_by_id + 437 (LLIntSlowPaths.cpp:770)
30  JavaScriptCore                	0x0000000240dc1a5e llint_entry + 40048
31  JavaScriptCore                	0x0000000240db7b83 vmEntryToJavaScript + 273
32  JavaScriptCore                	0x0000000241785977 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 199 (JITCodeInlines.h:38)
33  JavaScriptCore                	0x0000000241785fc6 JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 1494 (Interpreter.cpp:905)
34  JavaScriptCore                	0x0000000241a76859 JSC::call(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 233 (CallData.cpp:59)
35  JavaScriptCore                	0x0000000241c4ebe6 JSC::callFunction(JSC::JSGlobalObject*, JSC::JSValue, JSC::JSPromise*, JSC::JSValue) + 438 (JSPromise.cpp:154)
36  JavaScriptCore                	0x0000000241c4ee44 JSC::JSPromise::reject(JSC::JSGlobalObject*, JSC::JSValue) + 388 (JSPromise.cpp:180)
37  com.apple.WebCore             	0x00000002473598e8 WebCore::DeferredPromise::callFunction(JSC::JSGlobalObject&amp;, WebCore::DeferredPromise::ResolveMode, JSC::JSValue) + 440
38  com.apple.WebCore             	0x000000024739cd9c WebCore::DeferredPromise::callFunction(JSC::JSGlobalObject&amp;, WebCore::DeferredPromise::ResolveMode, JSC::JSValue)::$_31::operator()() + 108 (JSDOMPromiseDeferred.cpp:59)
39  com.apple.WebCore             	0x000000024739cc4e WTF::Detail::CallableWrapper&lt;WebCore::DeferredPromise::callFunction(JSC::JSGlobalObject&amp;, WebCore::DeferredPromise::ResolveMode, JSC::JSValue)::$_31, void&gt;::call() + 30 (Function.h:52)
40  com.apple.WebCore             	0x0000000245583df2 WTF::Function&lt;void ()&gt;::operator()() const + 130 (Function.h:79)
41  com.apple.WebCore             	0x0000000247acf7ee WebCore::WindowEventLoop::run() + 382 (WindowEventLoop.cpp:110)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589195</commentid>
    <comment_count>10</comment_count>
      <attachid>383270</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2019-11-11 08:00:53 -0800</bug_when>
    <thetext>Created attachment 383270
Crash log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589215</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-11 09:18:32 -0800</bug_when>
    <thetext>Oh, I think I found the bug. Can you try this?
diff --git a/Source/WebCore/bindings/js/JSDOMPromiseDeferred.cpp b/Source/WebCore/bindings/js/JSDOMPromiseDeferred.cpp
index 0bc5a89984b..972544a5250 100644
--- a/Source/WebCore/bindings/js/JSDOMPromiseDeferred.cpp
+++ b/Source/WebCore/bindings/js/JSDOMPromiseDeferred.cpp
@@ -52,8 +52,12 @@ void DeferredPromise::callFunction(JSGlobalObject&amp; lexicalGlobalObject, ResolveM
     if (activeDOMObjectsAreSuspended()) {
         JSC::Strong&lt;JSC::Unknown, ShouldStrongDestructorGrabLock::Yes&gt; strongResolution(lexicalGlobalObject.vm(), resolution);
         scriptExecutionContext()-&gt;eventLoop().queueTask(TaskSource::Networking, *scriptExecutionContext(), [this, protectedThis = makeRef(*this), mode, strongResolution = WTFMove(strongResolution)]() mutable {
-            if (!shouldIgnoreRequestToFulfill())
-                callFunction(*globalObject(), mode, strongResolution.get());
+            if (shouldIgnoreRequestToFulfill())
+                return;
+
+            JSC::JSGlobalObject* lexicalGlobalObject = globalObject();
+            JSC::JSLockHolder locker(lexicalGlobalObject);
+            callFunction(*lexicalGlobalObject, mode, strongResolution.get());
         });
         return;
     }

I forgot to re-grab the JS lock when the lambda runs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589256</commentid>
    <comment_count>12</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2019-11-11 10:34:05 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #11)
&gt; Oh, I think I found the bug. Can you try this?
&gt; diff --git a/Source/WebCore/bindings/js/JSDOMPromiseDeferred.cpp
&gt; b/Source/WebCore/bindings/js/JSDOMPromiseDeferred.cpp
&gt; index 0bc5a89984b..972544a5250 100644
&gt; --- a/Source/WebCore/bindings/js/JSDOMPromiseDeferred.cpp
&gt; +++ b/Source/WebCore/bindings/js/JSDOMPromiseDeferred.cpp
&gt; @@ -52,8 +52,12 @@ void DeferredPromise::callFunction(JSGlobalObject&amp;
&gt; lexicalGlobalObject, ResolveM
&gt;      if (activeDOMObjectsAreSuspended()) {
&gt;          JSC::Strong&lt;JSC::Unknown, ShouldStrongDestructorGrabLock::Yes&gt;
&gt; strongResolution(lexicalGlobalObject.vm(), resolution);
&gt;         
&gt; scriptExecutionContext()-&gt;eventLoop().queueTask(TaskSource::Networking,
&gt; *scriptExecutionContext(), [this, protectedThis = makeRef(*this), mode,
&gt; strongResolution = WTFMove(strongResolution)]() mutable {
&gt; -            if (!shouldIgnoreRequestToFulfill())
&gt; -                callFunction(*globalObject(), mode, strongResolution.get());
&gt; +            if (shouldIgnoreRequestToFulfill())
&gt; +                return;
&gt; +
&gt; +            JSC::JSGlobalObject* lexicalGlobalObject = globalObject();
&gt; +            JSC::JSLockHolder locker(lexicalGlobalObject);
&gt; +            callFunction(*lexicalGlobalObject, mode,
&gt; strongResolution.get());
&gt;          });
&gt;          return;
&gt;      }
&gt; 
&gt; I forgot to re-grab the JS lock when the lambda runs.

Looks good now, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589259</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-11 10:42:34 -0800</bug_when>
    <thetext>(In reply to Andy Estes from comment #12)
&gt; (In reply to Chris Dumez from comment #11)
&gt; &gt; Oh, I think I found the bug. Can you try this?
&gt; &gt; diff --git a/Source/WebCore/bindings/js/JSDOMPromiseDeferred.cpp
&gt; &gt; b/Source/WebCore/bindings/js/JSDOMPromiseDeferred.cpp
&gt; &gt; index 0bc5a89984b..972544a5250 100644
&gt; &gt; --- a/Source/WebCore/bindings/js/JSDOMPromiseDeferred.cpp
&gt; &gt; +++ b/Source/WebCore/bindings/js/JSDOMPromiseDeferred.cpp
&gt; &gt; @@ -52,8 +52,12 @@ void DeferredPromise::callFunction(JSGlobalObject&amp;
&gt; &gt; lexicalGlobalObject, ResolveM
&gt; &gt;      if (activeDOMObjectsAreSuspended()) {
&gt; &gt;          JSC::Strong&lt;JSC::Unknown, ShouldStrongDestructorGrabLock::Yes&gt;
&gt; &gt; strongResolution(lexicalGlobalObject.vm(), resolution);
&gt; &gt;         
&gt; &gt; scriptExecutionContext()-&gt;eventLoop().queueTask(TaskSource::Networking,
&gt; &gt; *scriptExecutionContext(), [this, protectedThis = makeRef(*this), mode,
&gt; &gt; strongResolution = WTFMove(strongResolution)]() mutable {
&gt; &gt; -            if (!shouldIgnoreRequestToFulfill())
&gt; &gt; -                callFunction(*globalObject(), mode, strongResolution.get());
&gt; &gt; +            if (shouldIgnoreRequestToFulfill())
&gt; &gt; +                return;
&gt; &gt; +
&gt; &gt; +            JSC::JSGlobalObject* lexicalGlobalObject = globalObject();
&gt; &gt; +            JSC::JSLockHolder locker(lexicalGlobalObject);
&gt; &gt; +            callFunction(*lexicalGlobalObject, mode,
&gt; &gt; strongResolution.get());
&gt; &gt;          });
&gt; &gt;          return;
&gt; &gt;      }
&gt; &gt; 
&gt; &gt; I forgot to re-grab the JS lock when the lambda runs.
&gt; 
&gt; Looks good now, thanks.

Great, let’s land with this fix then. Still r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589261</commentid>
    <comment_count>14</comment_count>
      <attachid>383284</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2019-11-11 10:44:12 -0800</bug_when>
    <thetext>Created attachment 383284
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589321</commentid>
    <comment_count>15</comment_count>
      <attachid>383284</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-11 14:14:03 -0800</bug_when>
    <thetext>Comment on attachment 383284
Patch

Clearing flags on attachment: 383284

Committed r252338: &lt;https://trac.webkit.org/changeset/252338&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589322</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-11 14:14:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383151</attachid>
            <date>2019-11-08 11:59:00 -0800</date>
            <delta_ts>2019-11-08 13:06:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203101-20191108115859.patch</filename>
            <type>text/plain</type>
            <size>35755</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU5MGYzYTAzNTA1NDM4
MTgzMjI3ZjU0NDY3NGQ4ZDdhMDU3MTgyYi4uYmEwMDRlMzY2MTA0ZjYwMzc5MWZkNmExMmU5NTY5
NTI3OTRjNjJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE5LTExLTA4ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50UmVxdWVzdCAvIFBh
eW1lbnRSZXNwb25zZSBzaG91bGQgbm90IHByZXZlbnQgZW50ZXJpbmcgdGhlIGJhY2svZm9yd2Fy
ZCBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAzMTAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81Njc0NDQwOT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIFBheW1lbnRSZXF1ZXN0
J3MgYW5kIFBheW1lbnRSZXNwb25zZSdzIG92ZXJyaWRlIG9mCisgICAgICAgIEFjdGl2ZURPTU9i
amVjdDo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVEIGFu
ZCBpbXBsZW1lbnRlZAorICAgICAgICBBY3RpdmVET01PYmplY3Q6OnN1c3BlbmQgaW5zdGVhZC4K
KworICAgICAgICBJbnRyb2R1Y2VkIERPTVByb21pc2VEZWZlcnJlZDo6cXVldWVUYXNrVG9TZXR0
bGVXaXRoUmVzdWx0Q2FsbGJhY2sgYXMgYSBjb252ZW5pZW5jZSBtZXRob2QKKyAgICAgICAgdG8g
cXVldWUgdGFza3MgdG8gc2V0dGxlIHByb21pc2VzIG9uIHRoZSBjb3JyZWN0IHNjcmlwdCBleGVj
dXRpb24gY29udGV4dCBldmVudCBsb29wLCBzaW5jZQorICAgICAgICB0aGUgc2hvdygpIGFuZCBy
ZXRyeSgpIHByb21pc2VzIG1pZ2h0IGJlbG9uZyB0byBhIGRpZmZlcmVudCBjb250ZXh0IHRoYW4g
dGhlIFBheW1lbnRSZXF1ZXN0CisgICAgICAgIG9yIFBheW1lbnRSZXNwb25zZS4gU2VlIGh0dHAv
dGVzdHMvcGF5bWVudHJlcXVlc3QvcmVqZWN0c19pZl9ub3RfYWN0aXZlLmh0dHBzLmh0bWwgZm9y
IGFuCisgICAgICAgIGV4YW1wbGUgb2Ygd2h5IHdlIG5lZWQgdGhpcy4KKworICAgICAgICBUZXN0
czogaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNsb3NlZC1wYXltZW50LXJl
cXVlc3QuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wYXltZW50cmVxdWVz
dC9wYWdlLWNhY2hlLWNvbXBsZXRlZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jcmVhdGVkLXBh
eW1lbnQtcmVxdWVzdC5odHRwcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3BheW1l
bnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY3JlYXRlZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1pbnRl
cmFjdGl2ZS1wYXltZW50LXJlcXVlc3QuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLXJldHJpZWQtcGF5bWVudC1yZXNwb25zZS5o
dHRwcy5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1
ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpzdXNwZW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpzaG91bGRQcmV2ZW50RW50ZXJpbmdCYWNr
Rm9yd2FyZENhY2hlX0RFUFJFQ0FURUQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVs
ZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3Bh
eW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXlt
ZW50UmVzcG9uc2U6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlc3BvbnNlOjpz
dXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXNwb25zZTo6c2hvdWxkUHJldmVu
dEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVEIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5oOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRlZmVycmVkUHJvbWlzZTo6cXVldWVUYXNrS2VlcGluZ1NlbGZBbGl2ZSk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRlZmVycmVkUHJvbWlzZTo6c2V0dGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZmVycmVkUHJv
bWlzZTo6cXVldWVUYXNrVG9TZXR0bGVXaXRoUmVzdWx0Q2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NUHJvbWlzZURlZmVycmVkOjpzZXR0bGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
UHJvbWlzZURlZmVycmVkOjpxdWV1ZVRhc2tUb1NldHRsZVdpdGhSZXN1bHRDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD46OnNldHRsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD46OnF1ZXVlVGFza1RvU2V0dGxl
V2l0aFJlc3VsdENhbGxiYWNrKToKKwogMjAxOS0xMS0wNSAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjUxOTMwKTogRmxha3kgV0sxIGNy
YXNoIGluIHByaW50aW5nL3BzZXVkby1jbGFzcy1vdXRzaWRlLXBhZ2UuaHRtbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0
LmNwcAppbmRleCBkYWY1MTgzMDhmMDU0OTQ3OWMwOTYzNzVhZjZjNDI3NzEzNjRlNmUwLi45MjQ3
ODgzMWJiNzg4OGI4ZWQ5ZWFiMzgzOGM4MjA0MzE2OTZmNWZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcApA
QCAtNDg4LDYgKzQ4OCwyOCBAQCB2b2lkIFBheW1lbnRSZXF1ZXN0OjpzdG9wKCkKICAgICBzZXR0
bGVTaG93UHJvbWlzZShFeGNlcHRpb24geyBBYm9ydEVycm9yIH0pOwogfQogCit2b2lkIFBheW1l
bnRSZXF1ZXN0OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQoreworICAgIGlm
IChyZWFzb24gIT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKCFtX2FjdGl2ZVBheW1lbnRIYW5kbGVyKSB7CisgICAgICAg
IEFTU0VSVCghbV9zaG93UHJvbWlzZSk7CisgICAgICAgIEFTU0VSVChtX3N0YXRlICE9IFN0YXRl
OjpJbnRlcmFjdGl2ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjbG9zZUFjdGl2
ZVBheW1lbnRIYW5kbGVyKCk7CisKKyAgICBhdXRvIHNob3dQcm9taXNlID0gc3RkOjpleGNoYW5n
ZShtX3Nob3dQcm9taXNlLCBudWxscHRyKTsKKyAgICBpZiAoIXNob3dQcm9taXNlKQorICAgICAg
ICByZXR1cm47CisKKyAgICBzaG93UHJvbWlzZS0+cXVldWVUYXNrVG9TZXR0bGVXaXRoUmVzdWx0
Q2FsbGJhY2soVGFza1NvdXJjZTo6VXNlckludGVyYWN0aW9uLCBbXSB7CisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBBYm9ydEVycm9yIH07CisgICAgfSk7Cit9CisKIC8vIGh0dHBzOi8vd3d3
LnczLm9yZy9UUi9wYXltZW50LXJlcXVlc3QvI2Fib3J0KCktbWV0aG9kCiB2b2lkIFBheW1lbnRS
ZXF1ZXN0OjphYm9ydChBYm9ydFByb21pc2UmJiBwcm9taXNlKQogewpAQCAtNTM5LDEyICs1NjEs
NiBAQCBPcHRpb25hbDxQYXltZW50U2hpcHBpbmdUeXBlPiBQYXltZW50UmVxdWVzdDo6c2hpcHBp
bmdUeXBlKCkgY29uc3QKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCi0vLyBGSVhNRTog
VGhpcyBzaG91bGQgbmV2ZXIgcHJldmVudCBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hl
LgotYm9vbCBQYXltZW50UmVxdWVzdDo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRD
YWNoZV9ERVBSRUNBVEVEKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaGFzUGVuZGluZ0FjdGl2aXR5
KCk7Ci19Ci0KIHZvaWQgUGF5bWVudFJlcXVlc3Q6OnNoaXBwaW5nQWRkcmVzc0NoYW5nZWQoUmVm
PFBheW1lbnRBZGRyZXNzPiYmIHNoaXBwaW5nQWRkcmVzcykKIHsKICAgICB3aGVuRGV0YWlsc1Nl
dHRsZWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCBzaGlwcGluZ0Fk
ZHJlc3MgPSBtYWtlUmVmUHRyKHNoaXBwaW5nQWRkcmVzcy5nZXQoKSldKCkgbXV0YWJsZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRS
ZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRS
ZXF1ZXN0LmgKaW5kZXggNDBhNWVhMmY4ZGYxZTc3YjFmNWU2YzBlYjhlODExZjIyNjZjNGIxZi4u
NjhhY2FjOTZiMmU3YmRhMmEwNWVkZjVhY2I1ZmQ5YWU2ZjhkODk5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaApA
QCAtMTI2LDggKzEyNiw4IEBAIHByaXZhdGU6CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAg
ICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
IlBheW1lbnRSZXF1ZXN0IjsgfQotICAgIGJvb2wgc2hvdWxkUHJldmVudEVudGVyaW5nQmFja0Zv
cndhcmRDYWNoZV9ERVBSRUNBVEVEKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmlu
YWw7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIGZpbmFsOwogCiAgICAg
Ly8gRXZlbnRUYXJnZXQKICAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVy
ZmFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBheW1lbnRSZXF1ZXN0RXZlbnRUYXJnZXRJbnRl
cmZhY2VUeXBlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRy
ZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1l
bnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5jcHAKaW5kZXggMTY5MmRjMDYyYzI0MTk0ODkwYjAz
YzVjN2Y4YmE0MTUxNDBmYTUyMy4uMWUwZDVkYTUyYTdkYWFkYzAzZDZhN2JkZWE2YTViZDFiNDc0
NDUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9Q
YXltZW50UmVzcG9uc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJl
cXVlc3QvUGF5bWVudFJlc3BvbnNlLmNwcApAQCAtMTI1LDE4ICsxMjUsMzQgQEAgdm9pZCBQYXlt
ZW50UmVzcG9uc2U6OnNldHRsZVJldHJ5UHJvbWlzZShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3Vs
dCkKICAgICBtX3JldHJ5UHJvbWlzZSA9IG51bGxwdHI7CiB9CiAKLS8vIEZJWE1FOiBUaGlzIHNo
b3VsZCBuZXZlciBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCi1ib29s
IFBheW1lbnRSZXNwb25zZTo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9E
RVBSRUNBVEVEKCkgY29uc3QKK3ZvaWQgUGF5bWVudFJlc3BvbnNlOjpzdG9wKCkKIHsKLSAgICBB
U1NFUlQobV9zdGF0ZSAhPSBTdGF0ZTo6U3RvcHBlZCk7Ci0gICAgcmV0dXJuIGhhc1BlbmRpbmdB
Y3Rpdml0eSgpOworICAgIHNldHRsZVJldHJ5UHJvbWlzZShFeGNlcHRpb24geyBBYm9ydEVycm9y
IH0pOworICAgIG1fcGVuZGluZ0FjdGl2aXR5ID0gbnVsbHB0cjsKKyAgICBtX3N0YXRlID0gU3Rh
dGU6OlN0b3BwZWQ7CiB9CiAKLXZvaWQgUGF5bWVudFJlc3BvbnNlOjpzdG9wKCkKK3ZvaWQgUGF5
bWVudFJlc3BvbnNlOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQogewotICAg
IHNldHRsZVJldHJ5UHJvbWlzZShFeGNlcHRpb24geyBBYm9ydEVycm9yIH0pOworICAgIGlmIChy
ZWFzb24gIT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OkNyZWF0ZWQpIHsKKyAgICAgICAg
QVNTRVJUKCFoYXNQZW5kaW5nQWN0aXZpdHkoKSk7CisgICAgICAgIEFTU0VSVCghbV9yZXRyeVBy
b21pc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbV9wZW5kaW5nQWN0aXZpdHkg
PSBudWxscHRyOwogICAgIG1fc3RhdGUgPSBTdGF0ZTo6U3RvcHBlZDsKKworICAgIGF1dG8gcmV0
cnlQcm9taXNlID0gc3RkOjpleGNoYW5nZShtX3JldHJ5UHJvbWlzZSwgbnVsbHB0cik7CisgICAg
aWYgKCFyZXRyeVByb21pc2UpCisgICAgICAgIHJldHVybjsKKworICAgIHJldHJ5UHJvbWlzZS0+
cXVldWVUYXNrVG9TZXR0bGVXaXRoUmVzdWx0Q2FsbGJhY2soVGFza1NvdXJjZTo6VXNlckludGVy
YWN0aW9uLCBbXSB7CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBBYm9ydEVycm9yIH07Cisg
ICAgfSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5oCmluZGV4IDY1
N2ZkNTZjNjI1M2I5NzdiMDYxNjNlMDY3OWUyZDczMWE1ODlhZjUuLmM0ZmY0YjZmMWEwNjQ4N2Uz
NThjYmI3NjhlNTU5NTc5NzY0YjI3ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVzcG9uc2UuaApAQCAtOTgsOCArOTgsOCBA
QCBwcml2YXRlOgogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAgICAgY29uc3QgY2hhciogYWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJQYXltZW50UmVzcG9uc2Ui
OyB9Ci0gICAgYm9vbCBzaG91bGRQcmV2ZW50RW50ZXJpbmdCYWNrRm9yd2FyZENhY2hlX0RFUFJF
Q0FURUQoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKKyAgICB2b2lkIHN1
c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikgZmluYWw7CiAKICAgICAvLyBFdmVudFRhcmdldAog
ICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gUGF5bWVudFJlc3BvbnNlRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJl
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5j
cHAKaW5kZXggNTUwYmNjM2E2MDMxOTIzOWEyYTY0YjJjZTdkZWFhN2Q1NmRmNDM5MS4uNDRkM2Nj
NDNiNGZkZmJlM2JjNWFjMDU3YTY0Njg1MGE3N2ExYWFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmNwcApAQCAtMjYsNiArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVk
LmgiCiAKKyNpbmNsdWRlICJBYnN0cmFjdEV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Lmgi
CkBAIC0xNzIsNiArMTczLDE2IEBAIHZvaWQgRGVmZXJyZWRQcm9taXNlOjpyZWplY3QoY29uc3Qg
SlNDOjpQcml2YXRlTmFtZSYgcHJpdmF0ZU5hbWUpCiAgICAgcmVqZWN0KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OlN5bWJvbDo6Y3JlYXRlKGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCksIHBy
aXZhdGVOYW1lLnVpZCgpKSk7CiB9CiAKK3ZvaWQgRGVmZXJyZWRQcm9taXNlOjpxdWV1ZVRhc2tL
ZWVwaW5nU2VsZkFsaXZlKFRhc2tTb3VyY2Ugc291cmNlLCBGdW5jdGlvbjx2b2lkKCk+JiYgdGFz
aykKK3sKKyAgICBBU1NFUlQoZGVmZXJyZWQoKSk7CisgICAgYXV0byYgY29udGV4dCA9ICptX2ds
b2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGNvbnRleHQuZXZlbnRM
b29wKCkucXVldWVUYXNrKHNvdXJjZSwgY29udGV4dCwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgdGFzayA9IFdURk1vdmUodGFzayldIHsKKyAgICAgICAgQVNTRVJUKGNh
bkludm9rZUNhbGxiYWNrKCkpOworICAgICAgICB0YXNrKCk7CisgICAgfSk7Cit9CisKIHZvaWQg
cmVqZWN0UHJvbWlzZVdpdGhFeGNlcHRpb25JZkFueShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBKU1Byb21p
c2UmIHByb21pc2UpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC52bSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJy
ZWQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmgK
aW5kZXggZjBhMWU3ZTIwNGM4Mjg5ZDE4OTBhYzdhYzI1YWViZDBkMWI1NTBiOC4uYjNjMGIxNWQx
OGI5MGY2ZjdjYzBhNjliMGQ1NGJlZDU3NWQzNjBmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5oCkBAIC0zMyw2ICszMyw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorZW51bSBjbGFzcyBUYXNrU291cmNlIDogdWludDhfdDsK
IGNsYXNzIEpTRE9NV2luZG93OwogCiBjbGFzcyBEZWZlcnJlZFByb21pc2UgOiBwdWJsaWMgRE9N
R3VhcmRlZDxKU0M6OkpTUHJvbWlzZT4gewpAQCAtMTQ0LDYgKzE0NSw0MiBAQCBwdWJsaWM6CiAg
ICAgICAgIHJlamVjdCgqbGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbGJhY2soKmdsb2JhbE9iamVj
dCgpKSk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4KKyAgICB2b2lk
IHNldHRsZShFeGNlcHRpb25Pcjx0eXBlbmFtZSBJRExUeXBlOjpQYXJhbWV0ZXJUeXBlPiYmIHJl
c3VsdCkKKyAgICB7CisgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKKyAgICAg
ICAgICAgIHJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHJlc29sdmU8SURMVHlwZT4ocmVzdWx0LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpKTsKKyAgICB9CisKKyAgICB2b2lkIHNldHRsZShFeGNlcHRpb25Pcjx2
b2lkPiYmIHJlc3VsdCkKKyAgICB7CisgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
IHsKKyAgICAgICAgICAgIHJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHJlc29sdmUoKTsKKyAgICB9CisK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPgorICAgIHZvaWQgcXVldWVUYXNrVG9TZXR0
bGVXaXRoUmVzdWx0Q2FsbGJhY2soVGFza1NvdXJjZSBzb3VyY2UsIEZ1bmN0aW9uPEV4Y2VwdGlv
bk9yPHR5cGVuYW1lIElETFR5cGU6OlBhcmFtZXRlclR5cGU+KCk+JiYgcmVzdWx0Q2FsbGJhY2sp
CisgICAgeworICAgICAgICBxdWV1ZVRhc2tLZWVwaW5nU2VsZkFsaXZlKHNvdXJjZSwgW3RoaXMs
IHJlc3VsdENhbGxiYWNrID0gV1RGTW92ZShyZXN1bHRDYWxsYmFjayldIHsKKyAgICAgICAgICAg
IHNldHRsZTxJRExUeXBlPihyZXN1bHRDYWxsYmFjaygpKTsKKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgdm9pZCBxdWV1ZVRhc2tUb1NldHRsZVdpdGhSZXN1bHRDYWxsYmFjayhUYXNrU291cmNl
IHNvdXJjZSwgRnVuY3Rpb248RXhjZXB0aW9uT3I8dm9pZD4oKT4mJiByZXN1bHRDYWxsYmFjaykK
KyAgICB7CisgICAgICAgIHF1ZXVlVGFza0tlZXBpbmdTZWxmQWxpdmUoc291cmNlLCBbdGhpcywg
cmVzdWx0Q2FsbGJhY2sgPSBXVEZNb3ZlKHJlc3VsdENhbGxiYWNrKV0geworICAgICAgICAgICAg
c2V0dGxlKHJlc3VsdENhbGxiYWNrKCkpOworICAgICAgICB9KTsKKyAgICB9CisKICAgICBKU0M6
OkpTVmFsdWUgcHJvbWlzZSgpIGNvbnN0OwogCiAgICAgdm9pZCB3aGVuU2V0dGxlZChGdW5jdGlv
bjx2b2lkKCk+JiYpOwpAQCAtMTYyLDYgKzE5OSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJl
c29sdmUoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpKU1Zh
bHVlIHJlc29sdXRpb24pIHsgY2FsbEZ1bmN0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIFJlc29s
dmVNb2RlOjpSZXNvbHZlLCByZXNvbHV0aW9uKTsgfQogICAgIHZvaWQgcmVqZWN0KEpTQzo6SlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSByZXNvbHV0aW9u
KSB7IGNhbGxGdW5jdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBSZXNvbHZlTW9kZTo6UmVqZWN0
LCByZXNvbHV0aW9uKTsgfQorICAgIHZvaWQgcXVldWVUYXNrS2VlcGluZ1NlbGZBbGl2ZShUYXNr
U291cmNlLCBGdW5jdGlvbjx2b2lkKCk+JiYpOwogCiAgICAgTW9kZSBtX21vZGU7CiB9OwpAQCAt
MjM5LDExICsyNzcsMTIgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXR0bGUoRXhjZXB0aW9uT3I8
dHlwZW5hbWUgSURMVHlwZTo6UGFyYW1ldGVyVHlwZT4mJiByZXN1bHQpCiAgICAgewotICAgICAg
ICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgICAgICByZWplY3QocmVzdWx0
LnJlbGVhc2VFeGNlcHRpb24oKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICAgICAgcmVzb2x2ZShyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOworICAgICAgICBtX3By
b21pc2UtPnNldHRsZTxJRExUeXBlPihXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0KKworICAgIHZv
aWQgcXVldWVUYXNrVG9TZXR0bGVXaXRoUmVzdWx0Q2FsbGJhY2soVGFza1NvdXJjZSBzb3VyY2Us
IEZ1bmN0aW9uPEV4Y2VwdGlvbk9yPHR5cGVuYW1lIElETFR5cGU6OlBhcmFtZXRlclR5cGU+KCk+
JiYgcmVzdWx0Q2FsbGJhY2spCisgICAgeworICAgICAgICBtX3Byb21pc2UtPnF1ZXVlVGFza1Rv
U2V0dGxlV2l0aFJlc3VsdENhbGxiYWNrPElETFR5cGU+KHNvdXJjZSwgV1RGTW92ZShyZXN1bHRD
YWxsYmFjaykpOwogICAgIH0KIH07CiAKQEAgLTI2MSwxMSArMzAwLDEyIEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgc2V0dGxlKEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVzdWx0KQogICAgIHsKLSAgICAg
ICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAgcmVqZWN0KHJlc3Vs
dC5yZWxlYXNlRXhjZXB0aW9uKCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0g
ICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgbV9wcm9taXNlLT5zZXR0bGUoV1RGTW92ZShyZXN1
bHQpKTsKKyAgICB9CisKKyAgICB2b2lkIHF1ZXVlVGFza1RvU2V0dGxlV2l0aFJlc3VsdENhbGxi
YWNrKFRhc2tTb3VyY2Ugc291cmNlLCBGdW5jdGlvbjxFeGNlcHRpb25Pcjx2b2lkPigpPiYmIHJl
c3VsdENhbGxiYWNrKQorICAgIHsKKyAgICAgICAgbV9wcm9taXNlLT5xdWV1ZVRhc2tUb1NldHRs
ZVdpdGhSZXN1bHRDYWxsYmFjayhzb3VyY2UsIFdURk1vdmUocmVzdWx0Q2FsbGJhY2spKTsKICAg
ICB9CiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggYjQyMTBkMzljNzJjNDY5MGNjYmE5MmYzODM3NmM4OGVkY2Q3N2Jk
Yi4uYTcxYzQwM2YyNjlkYjEwNzk4NTYxZmFhYjdhNTlhNzAxNjYxMmEzOSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI3IEBACisyMDE5LTExLTA4ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKwor
ICAgICAgICBQYXltZW50UmVxdWVzdCAvIFBheW1lbnRSZXNwb25zZSBzaG91bGQgbm90IHByZXZl
bnQgZW50ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMTAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81Njc0NDQwOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jbG9zZWQtcGF5bWVu
dC1yZXF1ZXN0Lmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNsb3NlZC1wYXltZW50LXJlcXVlc3QuaHR0cHMu
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNh
Y2hlLWNvbXBsZXRlZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNvbXBsZXRl
ZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jcmVhdGVkLXBheW1lbnQtcmVxdWVzdC5odHRw
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVl
c3QvcGFnZS1jYWNoZS1jcmVhdGVkLXBheW1lbnQtcmVxdWVzdC5odHRwcy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY3JlYXRlZC1w
YXltZW50LXJlc3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNyZWF0ZWQtcGF5bWVudC1yZXNwb25z
ZS5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0
L3BhZ2UtY2FjaGUtaW50ZXJhY3RpdmUtcGF5bWVudC1yZXF1ZXN0Lmh0dHBzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hl
LWludGVyYWN0aXZlLXBheW1lbnQtcmVxdWVzdC5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtcmV0cmllZC1wYXltZW50LXJl
c3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9w
YXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLXJldHJpZWQtcGF5bWVudC1yZXNwb25zZS5odHRwcy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiByZXNvdXJjZXMvanMtdGVzdC5qczoKKyAgICAgICAgKHNo
b3VsZFJlamVjdCk6CisgICAgICAgIChzaG91bGRSZWplY3RXaXRoRXJyb3JOYW1lKToKKwogMjAx
OS0xMS0wNSAgT3Jpb2wgQnJ1ZmF1ICA8b2JydWZhdUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtj
c3MtbGlzdHNdIEltcGxlbWVudCBsaXN0LXN0eWxlLXR5cGU6IDxzdHJpbmc+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY2xvc2Vk
LXBheW1lbnQtcmVxdWVzdC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY2xvc2VkLXBheW1lbnQtcmVxdWVzdC5odHRw
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZiMDU1YzM2ZjFiNTBmMWJhY2I4ZDgyMjZmMTk0
NDk2Zjc1YzBjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5
bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jbG9zZWQtcGF5bWVudC1yZXF1ZXN0Lmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitUZXN0cyB0aGF0IGEgcGFnZSB3aXRoIGEgUGF5bWVu
dFJlcXVlc3QgaW4gdGhlIENsb3NlZCBzdGF0ZSBnb2VzIGludG8gdGhlIGJhY2svZm9yd2FyZCBj
YWNoZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0NyZWF0aW5nIGEgUGF5bWVu
dFJlcXVlc3QgaW4gdGhlIENsb3NlZCBzdGF0ZS4KK1BBU1MgcmVzcG9uc2VQcm9taXNlIHJlamVj
dGVkIHByb21pc2UgIHdpdGggQWJvcnRFcnJvcjogVGhlIG9wZXJhdGlvbiB3YXMgYWJvcnRlZC4u
CitwYWdlc2hvdyAtIG5vdCBmcm9tIGNhY2hlCitwYWdlaGlkZSAtIGVudGVyaW5nIGNhY2hlCitw
YWdlc2hvdyAtIGZyb20gY2FjaGUKK1BBU1MgUGFnZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0b3Jl
ZCBmcm9tIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKK1Rlc3RpbmcgdGhhdCBQYXltZW50UmVxdWVz
dCByZW1haW5zIGluIHRoZSBDbG9zZWQgc3RhdGUuCitQQVNTIHJlcXVlc3Quc2hvdygpIHJlamVj
dGVkIHByb21pc2UgIHdpdGggSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3QgaXMgaW4gYW4g
aW52YWxpZCBzdGF0ZS4uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVx
dWVzdC9wYWdlLWNhY2hlLWNsb3NlZC1wYXltZW50LXJlcXVlc3QuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jbG9zZWQtcGF5bWVu
dC1yZXF1ZXN0Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE2MWVhN2M1MTUwZDNjZjQ4MjJmNzI1
MmJjZGMxNTAyNzNlMTc3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jbG9zZWQtcGF5bWVudC1yZXF1ZXN0Lmh0dHBz
Lmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVC
YWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPScvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyc+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0nL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyc+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy9wYXltZW50LXJlcXVlc3QuanMnPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGF0IGEgcGFnZSB3aXRoIGEgUGF5bWVudFJl
cXVlc3QgaW4gdGhlIENsb3NlZCBzdGF0ZSBnb2VzIGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNo
ZS4nKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKword2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoJ3BhZ2VzaG93JywgYXN5bmMgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1ZygncGFn
ZXNob3cgLSAnICsgKGV2ZW50LnBlcnNpc3RlZCA/ICcnIDogJ25vdCAnKSArICdmcm9tIGNhY2hl
Jyk7CisKKyAgICBpZiAoIWV2ZW50LnBlcnNpc3RlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
dGVzdFBhc3NlZCgnUGFnZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0b3JlZCBmcm9tIHRoZSBiYWNr
L2ZvcndhcmQgY2FjaGUnKTsKKworICAgIFVJSGVscGVyLndpdGhVc2VyR2VzdHVyZShhc3luYyBm
dW5jdGlvbigpIHsKKyAgICAgICAgZGVidWcoJ1Rlc3RpbmcgdGhhdCBQYXltZW50UmVxdWVzdCBy
ZW1haW5zIGluIHRoZSBDbG9zZWQgc3RhdGUuJyk7CisgICAgICAgIGF3YWl0IHNob3VsZFJlamVj
dFdpdGhFcnJvck5hbWUoJ3JlcXVlc3Quc2hvdygpJywgJ0ludmFsaWRTdGF0ZUVycm9yJyk7CisK
KyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7Cit9LCBmYWxzZSk7CisKK3dpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCdwYWdlaGlkZScsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWco
J3BhZ2VoaWRlIC0gJyArIChldmVudC5wZXJzaXN0ZWQgPyAnJyA6ICdub3QgJykgKyAnZW50ZXJp
bmcgY2FjaGUnKTsKKworICAgIGlmIChldmVudC5wZXJzaXN0ZWQpCisgICAgICAgIHJldHVybjsK
KworICAgIHRlc3RGYWlsZWQoJ1BhZ2UgZmFpbGVkIHRvIGVudGVyIHRoZSBiYWNrL2ZvcndhcmQg
Y2FjaGUuJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmYWxzZSk7CisKK3dpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7CisgICAgVUlIZWxwZXIud2l0aFVzZXJH
ZXN0dXJlKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBkZWJ1ZygnQ3JlYXRpbmcgYSBQYXlt
ZW50UmVxdWVzdCBpbiB0aGUgQ2xvc2VkIHN0YXRlLicpOworICAgICAgICByZXF1ZXN0ID0gbmV3
IFBheW1lbnRSZXF1ZXN0KFt2YWxpZFBheW1lbnRNZXRob2QoKV0sIHZhbGlkUGF5bWVudERldGFp
bHMoKSk7CisgICAgICAgIHJlc3BvbnNlUHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOworICAgICAg
ICBhd2FpdCByZXF1ZXN0LmFib3J0KCk7CisgICAgICAgIGF3YWl0IHNob3VsZFJlamVjdFdpdGhF
cnJvck5hbWUoJ3Jlc3BvbnNlUHJvbWlzZScsICdBYm9ydEVycm9yJyk7CisKKyAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0g
Jy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9wYWdlLWNhY2hlLWhlbHBlci5odG1sJzsKKyAgICAgICAg
fSwgMCk7CisgICAgfSk7Cit9LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1j
YWNoZS1jb21wbGV0ZWQtcGF5bWVudC1yZXNwb25zZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY29tcGxldGVkLXBh
eW1lbnQtcmVzcG9uc2UuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiNmRjNjYzNjQ5
Y2ZjYWM3ZTc1Yjk3N2UwZTU2OWE1Y2U4NzQxOTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY29tcGxldGVkLXBheW1l
bnQtcmVzcG9uc2UuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3RzIHRo
YXQgYSBwYWdlIHdpdGggYSBQYXltZW50UmVzcG9uc2UgaW4gdGhlIENvbXBsZXRlZCBzdGF0ZSBn
b2VzIGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK0NyZWF0aW5nIGEgUGF5bWVudFJlc3BvbnNlIGluIHRoZSBDb21wbGV0ZWQgc3Rh
dGUuCitwYWdlc2hvdyAtIG5vdCBmcm9tIGNhY2hlCitwYWdlaGlkZSAtIGVudGVyaW5nIGNhY2hl
CitwYWdlc2hvdyAtIGZyb20gY2FjaGUKK1BBU1MgUGFnZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0
b3JlZCBmcm9tIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKK1Rlc3RpbmcgdGhhdCBQYXltZW50UmVz
cG9uc2UgcmVtYWlucyBpbiB0aGUgQ29tcGxldGVkIHN0YXRlLgorUEFTUyByZXNwb25zZS5jb21w
bGV0ZSgpIHJlamVjdGVkIHByb21pc2UgIHdpdGggSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmpl
Y3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4uCitQQVNTIHJlc3BvbnNlLnJldHJ5KCkgcmVqZWN0
ZWQgcHJvbWlzZSAgd2l0aCBJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBp
bnZhbGlkIHN0YXRlLi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1
ZXN0L3BhZ2UtY2FjaGUtY29tcGxldGVkLXBheW1lbnQtcmVzcG9uc2UuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jb21wbGV0ZWQt
cGF5bWVudC1yZXNwb25zZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhYWJmNjgzYmM1YjU2NzY4
ODdjOTliNjZkNTMyNjEzMzQyMmZiMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY29tcGxldGVkLXBheW1lbnQtcmVz
cG9uc2UuaHR0cHMuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Jy9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0Lmpz
Jz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpz
Jz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3BheW1lbnQtcmVxdWVzdC5qcyc+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgYSBwYWdlIHdpdGgg
YSBQYXltZW50UmVzcG9uc2UgaW4gdGhlIENvbXBsZXRlZCBzdGF0ZSBnb2VzIGludG8gdGhlIGJh
Y2svZm9yd2FyZCBjYWNoZS4nKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKword2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VzaG93JywgYXN5bmMgZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICBkZWJ1ZygncGFnZXNob3cgLSAnICsgKGV2ZW50LnBlcnNpc3RlZCA/ICcnIDogJ25vdCAn
KSArICdmcm9tIGNhY2hlJyk7CisKKyAgICBpZiAoIWV2ZW50LnBlcnNpc3RlZCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgdGVzdFBhc3NlZCgnUGFnZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0b3Jl
ZCBmcm9tIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUnKTsKKworICAgIGRlYnVnKCdUZXN0aW5nIHRo
YXQgUGF5bWVudFJlc3BvbnNlIHJlbWFpbnMgaW4gdGhlIENvbXBsZXRlZCBzdGF0ZS4nKTsKKyAg
ICBhd2FpdCBzaG91bGRSZWplY3RXaXRoRXJyb3JOYW1lKCdyZXNwb25zZS5jb21wbGV0ZSgpJywg
J0ludmFsaWRTdGF0ZUVycm9yJyk7CisgICAgYXdhaXQgc2hvdWxkUmVqZWN0V2l0aEVycm9yTmFt
ZSgncmVzcG9uc2UucmV0cnkoKScsICdJbnZhbGlkU3RhdGVFcnJvcicpOworCisgICAgZmluaXNo
SlNUZXN0KCk7Cit9LCBmYWxzZSk7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlaGlk
ZScsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWcoJ3BhZ2VoaWRlIC0gJyArIChldmVudC5w
ZXJzaXN0ZWQgPyAnJyA6ICdub3QgJykgKyAnZW50ZXJpbmcgY2FjaGUnKTsKKworICAgIGlmIChl
dmVudC5wZXJzaXN0ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIHRlc3RGYWlsZWQoJ1BhZ2Ug
ZmFpbGVkIHRvIGVudGVyIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuJyk7CisgICAgZmluaXNoSlNU
ZXN0KCk7Cit9LCBmYWxzZSk7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVu
Y3Rpb24oKSB7CisgICAgVUlIZWxwZXIud2l0aFVzZXJHZXN0dXJlKGFzeW5jIGZ1bmN0aW9uKCkg
eworICAgICAgICBkZWJ1ZygnQ3JlYXRpbmcgYSBQYXltZW50UmVzcG9uc2UgaW4gdGhlIENvbXBs
ZXRlZCBzdGF0ZS4nKTsKKworICAgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1
ZXN0KFt2YWxpZFBheW1lbnRNZXRob2QoKV0sIHZhbGlkUGF5bWVudERldGFpbHMoKSk7CisgICAg
ICAgIGNvbnN0IHJlc3BvbnNlUHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOworICAgICAgICBpbnRl
cm5hbHMubW9ja1BheW1lbnRDb29yZGluYXRvci5hY2NlcHRQYXltZW50KCk7CisgICAgICAgIHJl
c3BvbnNlID0gYXdhaXQgcmVzcG9uc2VQcm9taXNlOworICAgICAgICBhd2FpdCByZXNwb25zZS5j
b21wbGV0ZSgnc3VjY2VzcycpOworCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvbmF2aWdhdGlvbi9yZXNvdXJjZXMv
cGFnZS1jYWNoZS1oZWxwZXIuaHRtbCc7CisgICAgICAgIH0sIDApOworICAgIH0pOworfSwgZmFs
c2UpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY3JlYXRlZC1wYXltZW50LXJl
cXVlc3QuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50
cmVxdWVzdC9wYWdlLWNhY2hlLWNyZWF0ZWQtcGF5bWVudC1yZXF1ZXN0Lmh0dHBzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wMTM5YmIyMDUwZDg3NTExNWMxNjdhZjI2Y2Q0ZWZlNzQyYjJkMzBk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVz
dC9wYWdlLWNhY2hlLWNyZWF0ZWQtcGF5bWVudC1yZXF1ZXN0Lmh0dHBzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE2IEBACitUZXN0cyB0aGF0IGEgcGFnZSB3aXRoIGEgUGF5bWVudFJlcXVlc3Qg
aW4gdGhlIENyZWF0ZWQgc3RhdGUgZ29lcyBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitDcmVhdGluZyBhIFBheW1lbnRSZXF1ZXN0
IGluIHRoZSBDcmVhdGVkIHN0YXRlLgorcGFnZXNob3cgLSBub3QgZnJvbSBjYWNoZQorcGFnZWhp
ZGUgLSBlbnRlcmluZyBjYWNoZQorcGFnZXNob3cgLSBmcm9tIGNhY2hlCitQQVNTIFBhZ2UgZGlk
IGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCitUZXN0
aW5nIHRoYXQgUGF5bWVudFJlcXVlc3QgcmVtYWlucyBpbiB0aGUgQ3JlYXRlZCBzdGF0ZS4KK1BB
U1MgcmVzcG9uc2VQcm9taXNlIHJlamVjdGVkIHByb21pc2UgIHdpdGggQWJvcnRFcnJvcjogVGhl
IG9wZXJhdGlvbiB3YXMgYWJvcnRlZC4uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
YXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNyZWF0ZWQtcGF5bWVudC1yZXF1ZXN0Lmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY3Jl
YXRlZC1wYXltZW50LXJlcXVlc3QuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2ZkMzk1YjA0ODM5
ZWYyYjNmMWIzOGEzZmUzNzgzZDdmNjAxZTEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNyZWF0ZWQtcGF5bWVudC1y
ZXF1ZXN0Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPScvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyc+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5q
cyc+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy9wYXltZW50LXJlcXVlc3QuanMn
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGF0IGEgcGFnZSB3aXRo
IGEgUGF5bWVudFJlcXVlc3QgaW4gdGhlIENyZWF0ZWQgc3RhdGUgZ29lcyBpbnRvIHRoZSBiYWNr
L2ZvcndhcmQgY2FjaGUuJyk7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3dpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdwYWdlc2hvdycsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVi
dWcoJ3BhZ2VzaG93IC0gJyArIChldmVudC5wZXJzaXN0ZWQgPyAnJyA6ICdub3QgJykgKyAnZnJv
bSBjYWNoZScpOworCisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpCisgICAgICAgIHJldHVybjsK
KworICAgIHRlc3RQYXNzZWQoJ1BhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0
aGUgYmFjay9mb3J3YXJkIGNhY2hlJyk7CisKKyAgICBVSUhlbHBlci53aXRoVXNlckdlc3R1cmUo
YXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgUGF5bWVudFJl
cXVlc3QgcmVtYWlucyBpbiB0aGUgQ3JlYXRlZCBzdGF0ZS4nKQorICAgICAgICByZXNwb25zZVBy
b21pc2UgPSByZXF1ZXN0LnNob3coKTsKKyAgICAgICAgYXdhaXQgcmVxdWVzdC5hYm9ydCgpOwor
ICAgICAgICBhd2FpdCBzaG91bGRSZWplY3RXaXRoRXJyb3JOYW1lKCdyZXNwb25zZVByb21pc2Un
LCAnQWJvcnRFcnJvcicpOworCisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfSwg
ZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZWhpZGUnLCBmdW5jdGlvbihl
dmVudCkgeworICAgIGRlYnVnKCdwYWdlaGlkZSAtICcgKyAoZXZlbnQucGVyc2lzdGVkID8gJycg
OiAnbm90ICcpICsgJ2VudGVyaW5nIGNhY2hlJyk7CisKKyAgICBpZiAoZXZlbnQucGVyc2lzdGVk
KQorICAgICAgICByZXR1cm47CisKKyAgICB0ZXN0RmFpbGVkKCdQYWdlIGZhaWxlZCB0byBlbnRl
ciB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSwgZmFs
c2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uKCkgeworICAg
IGRlYnVnKCdDcmVhdGluZyBhIFBheW1lbnRSZXF1ZXN0IGluIHRoZSBDcmVhdGVkIHN0YXRlLicp
OworCisgICAgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChbdmFsaWRQYXltZW50TWV0aG9k
KCldLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpOworCisgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKKyAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL25hdmlnYXRpb24vcmVzb3VyY2Vz
L3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwnOworICAgIH0sIDApOworfSwgZmFsc2UpOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY3JlYXRlZC1wYXltZW50LXJlc3BvbnNlLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFn
ZS1jYWNoZS1jcmVhdGVkLXBheW1lbnQtcmVzcG9uc2UuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQ2YzkyZTE0MTkzOWFhYzQzZjNlYTczYTA3YjQzYjBjYzQ5Mjg1NjgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2Fj
aGUtY3JlYXRlZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE3IEBACitUZXN0cyB0aGF0IGEgcGFnZSB3aXRoIGEgUGF5bWVudFJlc3BvbnNlIGluIHRoZSBD
cmVhdGVkIHN0YXRlIGdvZXMgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworQ3JlYXRpbmcgYSBQYXltZW50UmVzcG9uc2UgaW4gdGhl
IENyZWF0ZWQgc3RhdGUuCitwYWdlc2hvdyAtIG5vdCBmcm9tIGNhY2hlCitwYWdlaGlkZSAtIGVu
dGVyaW5nIGNhY2hlCitwYWdlc2hvdyAtIGZyb20gY2FjaGUKK1BBU1MgUGFnZSBkaWQgZW50ZXIg
YW5kIHdhcyByZXN0b3JlZCBmcm9tIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKK1Rlc3RpbmcgdGhh
dCBQYXltZW50UmVzcG9uc2UgaXMgbm93IGluIHRoZSBDbG9zZWQgc3RhdGUuCitQQVNTIHJlc3Bv
bnNlLmNvbXBsZXRlKCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBBYm9ydEVycm9yOiBUaGUgb3Bl
cmF0aW9uIHdhcyBhYm9ydGVkLi4KK1BBU1MgcmVzcG9uc2UucmV0cnkoKSByZWplY3RlZCBwcm9t
aXNlICB3aXRoIEFib3J0RXJyb3I6IFRoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQuLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jcmVhdGVk
LXBheW1lbnQtcmVzcG9uc2UuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5
bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jcmVhdGVkLXBheW1lbnQtcmVzcG9uc2UuaHR0cHMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hYjU5MmVlMWNiOGEwNmVhOGRjOGJjZjY5YWU2MWQ5ZjAyMzVhMjAxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9w
YWdlLWNhY2hlLWNyZWF0ZWQtcGF5bWVudC1yZXNwb25zZS5odHRwcy5odG1sCkBAIC0wLDAgKzEs
NTMgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10
cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0n
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMnPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy9q
cy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMnPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy9y
ZXNvdXJjZXMvcGF5bWVudC1yZXF1ZXN0LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbignVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBhIFBheW1lbnRSZXNwb25zZSBpbiB0aGUgQ3Jl
YXRlZCBzdGF0ZSBnb2VzIGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4nKTsKK3dpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VzaG93
JywgYXN5bmMgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1ZygncGFnZXNob3cgLSAnICsgKGV2
ZW50LnBlcnNpc3RlZCA/ICcnIDogJ25vdCAnKSArICdmcm9tIGNhY2hlJyk7CisKKyAgICBpZiAo
IWV2ZW50LnBlcnNpc3RlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgdGVzdFBhc3NlZCgnUGFn
ZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0b3JlZCBmcm9tIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUn
KTsKKworICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgUGF5bWVudFJlc3BvbnNlIGlzIG5vdyBpbiB0
aGUgQ2xvc2VkIHN0YXRlLicpOworICAgIGF3YWl0IHNob3VsZFJlamVjdFdpdGhFcnJvck5hbWUo
J3Jlc3BvbnNlLmNvbXBsZXRlKCknLCAnQWJvcnRFcnJvcicpOworICAgIGF3YWl0IHNob3VsZFJl
amVjdFdpdGhFcnJvck5hbWUoJ3Jlc3BvbnNlLnJldHJ5KCknLCAnQWJvcnRFcnJvcicpOworCisg
ICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmYWxzZSk7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdwYWdlaGlkZScsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWcoJ3BhZ2VoaWRlIC0gJyAr
IChldmVudC5wZXJzaXN0ZWQgPyAnJyA6ICdub3QgJykgKyAnZW50ZXJpbmcgY2FjaGUnKTsKKwor
ICAgIGlmIChldmVudC5wZXJzaXN0ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIHRlc3RGYWls
ZWQoJ1BhZ2UgZmFpbGVkIHRvIGVudGVyIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuJyk7CisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9LCBmYWxzZSk7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCds
b2FkJywgZnVuY3Rpb24oKSB7CisgICAgVUlIZWxwZXIud2l0aFVzZXJHZXN0dXJlKGFzeW5jIGZ1
bmN0aW9uKCkgeworICAgICAgICBkZWJ1ZygnQ3JlYXRpbmcgYSBQYXltZW50UmVzcG9uc2UgaW4g
dGhlIENyZWF0ZWQgc3RhdGUuJyk7CisKKyAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXlt
ZW50UmVxdWVzdChbdmFsaWRQYXltZW50TWV0aG9kKCldLCB2YWxpZFBheW1lbnREZXRhaWxzKCkp
OworICAgICAgICBjb25zdCByZXNwb25zZVByb21pc2UgPSByZXF1ZXN0LnNob3coKTsKKyAgICAg
ICAgaW50ZXJuYWxzLm1vY2tQYXltZW50Q29vcmRpbmF0b3IuYWNjZXB0UGF5bWVudCgpOworICAg
ICAgICByZXNwb25zZSA9IGF3YWl0IHJlc3BvbnNlUHJvbWlzZTsKKworICAgICAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL25h
dmlnYXRpb24vcmVzb3VyY2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwnOworICAgICAgICB9LCAw
KTsKKyAgICB9KTsKK30sIGZhbHNlKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hl
LWludGVyYWN0aXZlLXBheW1lbnQtcmVxdWVzdC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtaW50ZXJhY3RpdmUtcGF5
bWVudC1yZXF1ZXN0Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NWMyZjMwMGYwYjhi
MGJmOGY5OWRkODMwYTIzMjNiM2YyMzBjYWYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWludGVyYWN0aXZlLXBheW1l
bnQtcmVxdWVzdC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGVzdHMgdGhh
dCBhIHBhZ2Ugd2l0aCBhIFBheW1lbnRSZXF1ZXN0IGluIHRoZSBJbnRlcmFjdGl2ZSBzdGF0ZSBn
b2VzIGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK0NyZWF0aW5nIGEgUGF5bWVudFJlcXVlc3QgaW4gdGhlIEludGVyYWN0aXZlIHN0
YXRlLgorcGFnZXNob3cgLSBub3QgZnJvbSBjYWNoZQorcGFnZWhpZGUgLSBlbnRlcmluZyBjYWNo
ZQorcGFnZXNob3cgLSBmcm9tIGNhY2hlCitQQVNTIFBhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVz
dG9yZWQgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCitUZXN0aW5nIHRoYXQgdGhlIHByb21p
c2UgcmV0dXJuZWQgYnkgc2hvdygpIHdhcyByZWplY3RlZCB3aXRoICJBYm9ydEVycm9yIi4KK1BB
U1MgcmVzcG9uc2VQcm9taXNlIHJlamVjdGVkIHByb21pc2UgIHdpdGggQWJvcnRFcnJvcjogVGhl
IG9wZXJhdGlvbiB3YXMgYWJvcnRlZC4uCitUZXN0aW5nIHRoYXQgUGF5bWVudFJlcXVlc3QgaXMg
bm93IGluIHRoZSBDbG9zZWQgc3RhdGUuCitQQVNTIHJlcXVlc3QuYWJvcnQoKSByZWplY3RlZCBw
cm9taXNlICB3aXRoIEludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFs
aWQgc3RhdGUuLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3Qv
cGFnZS1jYWNoZS1pbnRlcmFjdGl2ZS1wYXltZW50LXJlcXVlc3QuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1pbnRlcmFjdGl2ZS1w
YXltZW50LXJlcXVlc3QuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjVjY2RmNDAwMWQ4ZDUwMzhi
ZjBiOWZiM2MwZDc3NDY1ZGJjYjhiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWludGVyYWN0aXZlLXBheW1lbnQtcmVx
dWVzdC5odHRwcy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0nL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMn
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMn
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvcGF5bWVudC1yZXF1ZXN0LmpzJz48
L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBh
IFBheW1lbnRSZXF1ZXN0IGluIHRoZSBJbnRlcmFjdGl2ZSBzdGF0ZSBnb2VzIGludG8gdGhlIGJh
Y2svZm9yd2FyZCBjYWNoZS4nKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKword2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VzaG93JywgYXN5bmMgZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICBkZWJ1ZygncGFnZXNob3cgLSAnICsgKGV2ZW50LnBlcnNpc3RlZCA/ICcnIDogJ25vdCAn
KSArICdmcm9tIGNhY2hlJyk7CisKKyAgICBpZiAoIWV2ZW50LnBlcnNpc3RlZCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgdGVzdFBhc3NlZCgnUGFnZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0b3Jl
ZCBmcm9tIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUnKTsKKworICAgIGRlYnVnKCdUZXN0aW5nIHRo
YXQgdGhlIHByb21pc2UgcmV0dXJuZWQgYnkgc2hvdygpIHdhcyByZWplY3RlZCB3aXRoICJBYm9y
dEVycm9yIi4nKTsKKyAgICBhd2FpdCBzaG91bGRSZWplY3RXaXRoRXJyb3JOYW1lKCdyZXNwb25z
ZVByb21pc2UnLCAnQWJvcnRFcnJvcicpOworCisgICAgZGVidWcoJ1Rlc3RpbmcgdGhhdCBQYXlt
ZW50UmVxdWVzdCBpcyBub3cgaW4gdGhlIENsb3NlZCBzdGF0ZS4nKTsKKyAgICBhd2FpdCBzaG91
bGRSZWplY3RXaXRoRXJyb3JOYW1lKCdyZXF1ZXN0LmFib3J0KCknLCAnSW52YWxpZFN0YXRlRXJy
b3InKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigncGFnZWhpZGUnLCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVnKCdwYWdl
aGlkZSAtICcgKyAoZXZlbnQucGVyc2lzdGVkID8gJycgOiAnbm90ICcpICsgJ2VudGVyaW5nIGNh
Y2hlJyk7CisKKyAgICBpZiAoZXZlbnQucGVyc2lzdGVkKQorICAgICAgICByZXR1cm47CisKKyAg
ICB0ZXN0RmFpbGVkKCdQYWdlIGZhaWxlZCB0byBlbnRlciB0aGUgYmFjay9mb3J3YXJkIGNhY2hl
LicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uKCkgeworICAgIFVJSGVscGVyLndpdGhVc2VyR2VzdHVy
ZShhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgZGVidWcoJ0NyZWF0aW5nIGEgUGF5bWVudFJl
cXVlc3QgaW4gdGhlIEludGVyYWN0aXZlIHN0YXRlLicpOworICAgICAgICByZXF1ZXN0ID0gbmV3
IFBheW1lbnRSZXF1ZXN0KFt2YWxpZFBheW1lbnRNZXRob2QoKV0sIHZhbGlkUGF5bWVudERldGFp
bHMoKSk7CisgICAgICAgIHJlc3BvbnNlUHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOworICAgIH0p
OworCisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgd2luZG93LmxvY2F0aW9u
LmhyZWYgPSAnL25hdmlnYXRpb24vcmVzb3VyY2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwnOwor
ICAgIH0sIDApOworfSwgZmFsc2UpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUt
cmV0cmllZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1yZXRyaWVkLXBheW1lbnQtcmVz
cG9uc2UuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiNjVlMzUzYzQ1OTU4MjFhZDRi
NTJkNTM5NWYzYTI1ZDRhN2RhNjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtcmV0cmllZC1wYXltZW50LXJlc3BvbnNl
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUZXN0cyB0aGF0IGEgcGFnZSB3
aXRoIGEgUGF5bWVudFJlc3BvbnNlIGluIHRoZSBDb21wbGV0ZWQgc3RhdGUgZ29lcyBpbnRvIHRo
ZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitD
cmVhdGluZyBhIFBheW1lbnRSZXNwb25zZSBpbiB0aGUgQ3JlYXRlZCBzdGF0ZSB3aXRoIGEgcmV0
cnkgcHJvbWlzZS4KK3BhZ2VzaG93IC0gbm90IGZyb20gY2FjaGUKK3BhZ2VoaWRlIC0gZW50ZXJp
bmcgY2FjaGUKK3BhZ2VzaG93IC0gZnJvbSBjYWNoZQorUEFTUyBQYWdlIGRpZCBlbnRlciBhbmQg
d2FzIHJlc3RvcmVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorVGVzdGluZyB0aGF0IHRo
ZSBwcm9taXNlIHJldHVybmVkIGJ5IHJldHJ5KCkgd2FzIHJlamVjdGVkIHdpdGggIkFib3J0RXJy
b3IiLgorUEFTUyByZXRyeVByb21pc2UgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBBYm9ydEVycm9y
OiBUaGUgb3BlcmF0aW9uIHdhcyBhYm9ydGVkLi4KK1Rlc3RpbmcgdGhhdCBQYXltZW50UmVzcG9u
c2UgaXMgbm93IGluIHRoZSBDbG9zZWQgc3RhdGUuCitQQVNTIHJlc3BvbnNlLmNvbXBsZXRlKCkg
cmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBBYm9ydEVycm9yOiBUaGUgb3BlcmF0aW9uIHdhcyBhYm9y
dGVkLi4KK1BBU1MgcmVzcG9uc2UucmV0cnkoKSByZWplY3RlZCBwcm9taXNlICB3aXRoIEFib3J0
RXJyb3I6IFRoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQuLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1yZXRyaWVkLXBheW1lbnQtcmVzcG9u
c2UuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFn
ZS1jYWNoZS1yZXRyaWVkLXBheW1lbnQtcmVzcG9uc2UuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
Y2Q2YmU3NTgxOWRhMDk5YTU3MmI1YjYzYjM1NDFiNGY4ZGVhZTU0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLXJldHJp
ZWQtcGF5bWVudC1yZXNwb25zZS5odHRwcy5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+Cis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0nL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QuanMnPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy9qcy10ZXN0LXJlc291cmNl
cy91aS1oZWxwZXIuanMnPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvcGF5bWVu
dC1yZXF1ZXN0LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdHMgdGhh
dCBhIHBhZ2Ugd2l0aCBhIFBheW1lbnRSZXNwb25zZSBpbiB0aGUgQ29tcGxldGVkIHN0YXRlIGdv
ZXMgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLicpOword2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLCBhc3luYyBmdW5j
dGlvbihldmVudCkgeworICAgIGRlYnVnKCdwYWdlc2hvdyAtICcgKyAoZXZlbnQucGVyc2lzdGVk
ID8gJycgOiAnbm90ICcpICsgJ2Zyb20gY2FjaGUnKTsKKworICAgIGlmICghZXZlbnQucGVyc2lz
dGVkKQorICAgICAgICByZXR1cm47CisKKyAgICB0ZXN0UGFzc2VkKCdQYWdlIGRpZCBlbnRlciBh
bmQgd2FzIHJlc3RvcmVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZScpOworCisgICAgZGVi
dWcoJ1Rlc3RpbmcgdGhhdCB0aGUgcHJvbWlzZSByZXR1cm5lZCBieSByZXRyeSgpIHdhcyByZWpl
Y3RlZCB3aXRoICJBYm9ydEVycm9yIi4nKTsKKyAgICBhd2FpdCBzaG91bGRSZWplY3RXaXRoRXJy
b3JOYW1lKCdyZXRyeVByb21pc2UnLCAnQWJvcnRFcnJvcicpOworCisgICAgZGVidWcoJ1Rlc3Rp
bmcgdGhhdCBQYXltZW50UmVzcG9uc2UgaXMgbm93IGluIHRoZSBDbG9zZWQgc3RhdGUuJyk7Cisg
ICAgYXdhaXQgc2hvdWxkUmVqZWN0V2l0aEVycm9yTmFtZSgncmVzcG9uc2UuY29tcGxldGUoKScs
ICdBYm9ydEVycm9yJyk7CisgICAgYXdhaXQgc2hvdWxkUmVqZWN0V2l0aEVycm9yTmFtZSgncmVz
cG9uc2UucmV0cnkoKScsICdBYm9ydEVycm9yJyk7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30s
IGZhbHNlKTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VoaWRlJywgZnVuY3Rpb24o
ZXZlbnQpIHsKKyAgICBkZWJ1ZygncGFnZWhpZGUgLSAnICsgKGV2ZW50LnBlcnNpc3RlZCA/ICcn
IDogJ25vdCAnKSArICdlbnRlcmluZyBjYWNoZScpOworCisgICAgaWYgKGV2ZW50LnBlcnNpc3Rl
ZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgdGVzdEZhaWxlZCgnUGFnZSBmYWlsZWQgdG8gZW50
ZXIgdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4nKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIGZh
bHNlKTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpIHsKKyAg
ICBVSUhlbHBlci53aXRoVXNlckdlc3R1cmUoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGRl
YnVnKCdDcmVhdGluZyBhIFBheW1lbnRSZXNwb25zZSBpbiB0aGUgQ3JlYXRlZCBzdGF0ZSB3aXRo
IGEgcmV0cnkgcHJvbWlzZS4nKTsKKworICAgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFBheW1l
bnRSZXF1ZXN0KFt2YWxpZFBheW1lbnRNZXRob2QoKV0sIHZhbGlkUGF5bWVudERldGFpbHMoKSk7
CisgICAgICAgIGNvbnN0IHJlc3BvbnNlUHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOworICAgICAg
ICBpbnRlcm5hbHMubW9ja1BheW1lbnRDb29yZGluYXRvci5hY2NlcHRQYXltZW50KCk7CisgICAg
ICAgIHJlc3BvbnNlID0gYXdhaXQgcmVzcG9uc2VQcm9taXNlOworICAgICAgICByZXRyeVByb21p
c2UgPSByZXNwb25zZS5yZXRyeSgpOworCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvbmF2aWdhdGlvbi9yZXNvdXJj
ZXMvcGFnZS1jYWNoZS1oZWxwZXIuaHRtbCc7CisgICAgICAgIH0sIDApOworICAgIH0pOworfSwg
ZmFsc2UpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9yZXNvdXJjZXMvanMtdGVzdC5qcyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy9qcy10ZXN0
LmpzCmluZGV4IDY4YTQ1NmE4M2M2NDk5Zjk0ZWZiYjkyMTQ4MzgzMmQzMjVjMjEzY2IuLjFhYjIx
NTU0MmU3YWM2ZWEzMDBiNmE0Y2NiZGI4N2E3ZmRiNTJjNTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3Jlc291cmNlcy9qcy10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy9qcy10
ZXN0LmpzCkBAIC03MTIsNiArNzEyLDExIEBAIGZ1bmN0aW9uIGV4cGVjdEVycm9yKCkKIH0KIAog
ZnVuY3Rpb24gc2hvdWxkUmVqZWN0KF9hLCBfbWVzc2FnZSkKK3sKKyAgICByZXR1cm4gc2hvdWxk
UmVqZWN0V2l0aEVycm9yTmFtZShfYSwgdW5kZWZpbmVkLCBfbWVzc2FnZSk7Cit9CisKK2Z1bmN0
aW9uIHNob3VsZFJlamVjdFdpdGhFcnJvck5hbWUoX2EsIF9uYW1lLCBfbWVzc2FnZSkKIHsKICAg
ICB2YXIgX2V4Y2VwdGlvbjsKICAgICB2YXIgX2F2OwpAQCAtNzI1LDcgKzczMCwxMSBAQCBmdW5j
dGlvbiBzaG91bGRSZWplY3QoX2EsIF9tZXNzYWdlKQogICAgIHJldHVybiBfYXYudGhlbihmdW5j
dGlvbihyZXN1bHQpIHsKICAgICAgICAgdGVzdEZhaWxlZCgoX21lc3NhZ2UgPyBfbWVzc2FnZSA6
IF9hKSArICIgc2hvdWxkIHJlamVjdCBwcm9taXNlLiBSZXNvbHZlZCB3aXRoICIgKyByZXN1bHQg
KyAiLiIpOwogICAgIH0sIGZ1bmN0aW9uKGVycm9yKSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoKF9t
ZXNzYWdlID8gX21lc3NhZ2UgOiBfYSkgKyAiIHJlamVjdGVkIHByb21pc2UgIHdpdGggIiArIGVy
cm9yICsgIi4iKTsKKyAgICAgICAgaWYgKF9uYW1lID09PSB1bmRlZmluZWQgfHwgZXJyb3JbJ25h
bWUnXSA9PT0gX25hbWUpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhlIGV4dHJh
IHNwYWNlIGFuZCAnLicgKERPTUV4Y2VwdGlvbiBkZXNjcmlwdGlvbnMgYWxyZWFkeSBlbmQgd2l0
aCBwZXJpb2RzKSB0aGVuIHJlYmFzZSB0ZXN0cy4KKyAgICAgICAgICAgIHRlc3RQYXNzZWQoKF9t
ZXNzYWdlID8gX21lc3NhZ2UgOiBfYSkgKyAiIHJlamVjdGVkIHByb21pc2UgIHdpdGggIiArIGVy
cm9yICsgIi4iKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKChfbWVz
c2FnZSA/IF9tZXNzYWdlIDogX2EpICsgIiBzaG91bGQgcmVqZWN0IHByb21pc2Ugd2l0aCAiICsg
X25hbWUgKyAiLiBSZWplY3RlZCB3aXRoICIgKyBlcnJvclsnbmFtZSddICsgIiBpbnN0ZWFkLiIp
OwogICAgIH0pOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383155</attachid>
            <date>2019-11-08 13:06:05 -0800</date>
            <delta_ts>2019-11-08 14:08:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203101-20191108130603.patch</filename>
            <type>text/plain</type>
            <size>35813</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU5MGYzYTAzNTA1NDM4
MTgzMjI3ZjU0NDY3NGQ4ZDdhMDU3MTgyYi4uYmEwMDRlMzY2MTA0ZjYwMzc5MWZkNmExMmU5NTY5
NTI3OTRjNjJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE5LTExLTA4ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50UmVxdWVzdCAvIFBh
eW1lbnRSZXNwb25zZSBzaG91bGQgbm90IHByZXZlbnQgZW50ZXJpbmcgdGhlIGJhY2svZm9yd2Fy
ZCBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAzMTAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81Njc0NDQwOT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIFBheW1lbnRSZXF1ZXN0
J3MgYW5kIFBheW1lbnRSZXNwb25zZSdzIG92ZXJyaWRlIG9mCisgICAgICAgIEFjdGl2ZURPTU9i
amVjdDo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVEIGFu
ZCBpbXBsZW1lbnRlZAorICAgICAgICBBY3RpdmVET01PYmplY3Q6OnN1c3BlbmQgaW5zdGVhZC4K
KworICAgICAgICBJbnRyb2R1Y2VkIERPTVByb21pc2VEZWZlcnJlZDo6cXVldWVUYXNrVG9TZXR0
bGVXaXRoUmVzdWx0Q2FsbGJhY2sgYXMgYSBjb252ZW5pZW5jZSBtZXRob2QKKyAgICAgICAgdG8g
cXVldWUgdGFza3MgdG8gc2V0dGxlIHByb21pc2VzIG9uIHRoZSBjb3JyZWN0IHNjcmlwdCBleGVj
dXRpb24gY29udGV4dCBldmVudCBsb29wLCBzaW5jZQorICAgICAgICB0aGUgc2hvdygpIGFuZCBy
ZXRyeSgpIHByb21pc2VzIG1pZ2h0IGJlbG9uZyB0byBhIGRpZmZlcmVudCBjb250ZXh0IHRoYW4g
dGhlIFBheW1lbnRSZXF1ZXN0CisgICAgICAgIG9yIFBheW1lbnRSZXNwb25zZS4gU2VlIGh0dHAv
dGVzdHMvcGF5bWVudHJlcXVlc3QvcmVqZWN0c19pZl9ub3RfYWN0aXZlLmh0dHBzLmh0bWwgZm9y
IGFuCisgICAgICAgIGV4YW1wbGUgb2Ygd2h5IHdlIG5lZWQgdGhpcy4KKworICAgICAgICBUZXN0
czogaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNsb3NlZC1wYXltZW50LXJl
cXVlc3QuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wYXltZW50cmVxdWVz
dC9wYWdlLWNhY2hlLWNvbXBsZXRlZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jcmVhdGVkLXBh
eW1lbnQtcmVxdWVzdC5odHRwcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3BheW1l
bnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY3JlYXRlZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1pbnRl
cmFjdGl2ZS1wYXltZW50LXJlcXVlc3QuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLXJldHJpZWQtcGF5bWVudC1yZXNwb25zZS5o
dHRwcy5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1
ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpzdXNwZW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpzaG91bGRQcmV2ZW50RW50ZXJpbmdCYWNr
Rm9yd2FyZENhY2hlX0RFUFJFQ0FURUQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVs
ZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3Bh
eW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXlt
ZW50UmVzcG9uc2U6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlc3BvbnNlOjpz
dXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXNwb25zZTo6c2hvdWxkUHJldmVu
dEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVEIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5oOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRlZmVycmVkUHJvbWlzZTo6cXVldWVUYXNrS2VlcGluZ1NlbGZBbGl2ZSk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRlZmVycmVkUHJvbWlzZTo6c2V0dGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZmVycmVkUHJv
bWlzZTo6cXVldWVUYXNrVG9TZXR0bGVXaXRoUmVzdWx0Q2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NUHJvbWlzZURlZmVycmVkOjpzZXR0bGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
UHJvbWlzZURlZmVycmVkOjpxdWV1ZVRhc2tUb1NldHRsZVdpdGhSZXN1bHRDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD46OnNldHRsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD46OnF1ZXVlVGFza1RvU2V0dGxl
V2l0aFJlc3VsdENhbGxiYWNrKToKKwogMjAxOS0xMS0wNSAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjUxOTMwKTogRmxha3kgV0sxIGNy
YXNoIGluIHByaW50aW5nL3BzZXVkby1jbGFzcy1vdXRzaWRlLXBhZ2UuaHRtbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0
LmNwcAppbmRleCBkYWY1MTgzMDhmMDU0OTQ3OWMwOTYzNzVhZjZjNDI3NzEzNjRlNmUwLi45MjQ3
ODgzMWJiNzg4OGI4ZWQ5ZWFiMzgzOGM4MjA0MzE2OTZmNWZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcApA
QCAtNDg4LDYgKzQ4OCwyOCBAQCB2b2lkIFBheW1lbnRSZXF1ZXN0OjpzdG9wKCkKICAgICBzZXR0
bGVTaG93UHJvbWlzZShFeGNlcHRpb24geyBBYm9ydEVycm9yIH0pOwogfQogCit2b2lkIFBheW1l
bnRSZXF1ZXN0OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQoreworICAgIGlm
IChyZWFzb24gIT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKCFtX2FjdGl2ZVBheW1lbnRIYW5kbGVyKSB7CisgICAgICAg
IEFTU0VSVCghbV9zaG93UHJvbWlzZSk7CisgICAgICAgIEFTU0VSVChtX3N0YXRlICE9IFN0YXRl
OjpJbnRlcmFjdGl2ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjbG9zZUFjdGl2
ZVBheW1lbnRIYW5kbGVyKCk7CisKKyAgICBhdXRvIHNob3dQcm9taXNlID0gc3RkOjpleGNoYW5n
ZShtX3Nob3dQcm9taXNlLCBudWxscHRyKTsKKyAgICBpZiAoIXNob3dQcm9taXNlKQorICAgICAg
ICByZXR1cm47CisKKyAgICBzaG93UHJvbWlzZS0+cXVldWVUYXNrVG9TZXR0bGVXaXRoUmVzdWx0
Q2FsbGJhY2soVGFza1NvdXJjZTo6VXNlckludGVyYWN0aW9uLCBbXSB7CisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBBYm9ydEVycm9yIH07CisgICAgfSk7Cit9CisKIC8vIGh0dHBzOi8vd3d3
LnczLm9yZy9UUi9wYXltZW50LXJlcXVlc3QvI2Fib3J0KCktbWV0aG9kCiB2b2lkIFBheW1lbnRS
ZXF1ZXN0OjphYm9ydChBYm9ydFByb21pc2UmJiBwcm9taXNlKQogewpAQCAtNTM5LDEyICs1NjEs
NiBAQCBPcHRpb25hbDxQYXltZW50U2hpcHBpbmdUeXBlPiBQYXltZW50UmVxdWVzdDo6c2hpcHBp
bmdUeXBlKCkgY29uc3QKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCi0vLyBGSVhNRTog
VGhpcyBzaG91bGQgbmV2ZXIgcHJldmVudCBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hl
LgotYm9vbCBQYXltZW50UmVxdWVzdDo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRD
YWNoZV9ERVBSRUNBVEVEKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaGFzUGVuZGluZ0FjdGl2aXR5
KCk7Ci19Ci0KIHZvaWQgUGF5bWVudFJlcXVlc3Q6OnNoaXBwaW5nQWRkcmVzc0NoYW5nZWQoUmVm
PFBheW1lbnRBZGRyZXNzPiYmIHNoaXBwaW5nQWRkcmVzcykKIHsKICAgICB3aGVuRGV0YWlsc1Nl
dHRsZWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCBzaGlwcGluZ0Fk
ZHJlc3MgPSBtYWtlUmVmUHRyKHNoaXBwaW5nQWRkcmVzcy5nZXQoKSldKCkgbXV0YWJsZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRS
ZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRS
ZXF1ZXN0LmgKaW5kZXggNDBhNWVhMmY4ZGYxZTc3YjFmNWU2YzBlYjhlODExZjIyNjZjNGIxZi4u
NjhhY2FjOTZiMmU3YmRhMmEwNWVkZjVhY2I1ZmQ5YWU2ZjhkODk5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaApA
QCAtMTI2LDggKzEyNiw4IEBAIHByaXZhdGU6CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAg
ICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
IlBheW1lbnRSZXF1ZXN0IjsgfQotICAgIGJvb2wgc2hvdWxkUHJldmVudEVudGVyaW5nQmFja0Zv
cndhcmRDYWNoZV9ERVBSRUNBVEVEKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmlu
YWw7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIGZpbmFsOwogCiAgICAg
Ly8gRXZlbnRUYXJnZXQKICAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVy
ZmFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBheW1lbnRSZXF1ZXN0RXZlbnRUYXJnZXRJbnRl
cmZhY2VUeXBlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRy
ZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1l
bnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5jcHAKaW5kZXggMTY5MmRjMDYyYzI0MTk0ODkwYjAz
YzVjN2Y4YmE0MTUxNDBmYTUyMy4uMWUwZDVkYTUyYTdkYWFkYzAzZDZhN2JkZWE2YTViZDFiNDc0
NDUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9Q
YXltZW50UmVzcG9uc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJl
cXVlc3QvUGF5bWVudFJlc3BvbnNlLmNwcApAQCAtMTI1LDE4ICsxMjUsMzQgQEAgdm9pZCBQYXlt
ZW50UmVzcG9uc2U6OnNldHRsZVJldHJ5UHJvbWlzZShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3Vs
dCkKICAgICBtX3JldHJ5UHJvbWlzZSA9IG51bGxwdHI7CiB9CiAKLS8vIEZJWE1FOiBUaGlzIHNo
b3VsZCBuZXZlciBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCi1ib29s
IFBheW1lbnRSZXNwb25zZTo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9E
RVBSRUNBVEVEKCkgY29uc3QKK3ZvaWQgUGF5bWVudFJlc3BvbnNlOjpzdG9wKCkKIHsKLSAgICBB
U1NFUlQobV9zdGF0ZSAhPSBTdGF0ZTo6U3RvcHBlZCk7Ci0gICAgcmV0dXJuIGhhc1BlbmRpbmdB
Y3Rpdml0eSgpOworICAgIHNldHRsZVJldHJ5UHJvbWlzZShFeGNlcHRpb24geyBBYm9ydEVycm9y
IH0pOworICAgIG1fcGVuZGluZ0FjdGl2aXR5ID0gbnVsbHB0cjsKKyAgICBtX3N0YXRlID0gU3Rh
dGU6OlN0b3BwZWQ7CiB9CiAKLXZvaWQgUGF5bWVudFJlc3BvbnNlOjpzdG9wKCkKK3ZvaWQgUGF5
bWVudFJlc3BvbnNlOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQogewotICAg
IHNldHRsZVJldHJ5UHJvbWlzZShFeGNlcHRpb24geyBBYm9ydEVycm9yIH0pOworICAgIGlmIChy
ZWFzb24gIT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OkNyZWF0ZWQpIHsKKyAgICAgICAg
QVNTRVJUKCFoYXNQZW5kaW5nQWN0aXZpdHkoKSk7CisgICAgICAgIEFTU0VSVCghbV9yZXRyeVBy
b21pc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbV9wZW5kaW5nQWN0aXZpdHkg
PSBudWxscHRyOwogICAgIG1fc3RhdGUgPSBTdGF0ZTo6U3RvcHBlZDsKKworICAgIGF1dG8gcmV0
cnlQcm9taXNlID0gc3RkOjpleGNoYW5nZShtX3JldHJ5UHJvbWlzZSwgbnVsbHB0cik7CisgICAg
aWYgKCFyZXRyeVByb21pc2UpCisgICAgICAgIHJldHVybjsKKworICAgIHJldHJ5UHJvbWlzZS0+
cXVldWVUYXNrVG9TZXR0bGVXaXRoUmVzdWx0Q2FsbGJhY2soVGFza1NvdXJjZTo6VXNlckludGVy
YWN0aW9uLCBbXSB7CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBBYm9ydEVycm9yIH07Cisg
ICAgfSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5oCmluZGV4IDY1
N2ZkNTZjNjI1M2I5NzdiMDYxNjNlMDY3OWUyZDczMWE1ODlhZjUuLmM0ZmY0YjZmMWEwNjQ4N2Uz
NThjYmI3NjhlNTU5NTc5NzY0YjI3ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVzcG9uc2UuaApAQCAtOTgsOCArOTgsOCBA
QCBwcml2YXRlOgogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAgICAgY29uc3QgY2hhciogYWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJQYXltZW50UmVzcG9uc2Ui
OyB9Ci0gICAgYm9vbCBzaG91bGRQcmV2ZW50RW50ZXJpbmdCYWNrRm9yd2FyZENhY2hlX0RFUFJF
Q0FURUQoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKKyAgICB2b2lkIHN1
c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikgZmluYWw7CiAKICAgICAvLyBFdmVudFRhcmdldAog
ICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gUGF5bWVudFJlc3BvbnNlRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJl
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5j
cHAKaW5kZXggNTUwYmNjM2E2MDMxOTIzOWEyYTY0YjJjZTdkZWFhN2Q1NmRmNDM5MS4uNWUyM2Ri
Njg1MzQzMGNjZWEzZjcwNzQ5N2NkZTI2Y2Y4YTA3ODY5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmNwcApAQCAtMjYsNiArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVk
LmgiCiAKKyNpbmNsdWRlICJBYnN0cmFjdEV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Lmgi
CkBAIC0xNzIsNiArMTczLDE5IEBAIHZvaWQgRGVmZXJyZWRQcm9taXNlOjpyZWplY3QoY29uc3Qg
SlNDOjpQcml2YXRlTmFtZSYgcHJpdmF0ZU5hbWUpCiAgICAgcmVqZWN0KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OlN5bWJvbDo6Y3JlYXRlKGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCksIHBy
aXZhdGVOYW1lLnVpZCgpKSk7CiB9CiAKK3ZvaWQgRGVmZXJyZWRQcm9taXNlOjpxdWV1ZVRhc2tL
ZWVwaW5nU2VsZkFsaXZlKFRhc2tTb3VyY2Ugc291cmNlLCBGdW5jdGlvbjx2b2lkKCk+JiYgdGFz
aykKK3sKKyAgICBBU1NFUlQoZGVmZXJyZWQoKSk7CisgICAgYXV0byYgY29udGV4dCA9ICptX2ds
b2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGNvbnRleHQuZXZlbnRM
b29wKCkucXVldWVUYXNrKHNvdXJjZSwgY29udGV4dCwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgdGFzayA9IFdURk1vdmUodGFzayldIHsKKyNpZiBBU1NFUlRfRElTQUJM
RUQKKyAgICAgICAgVU5VU0VEX1BBUkFNKHRoaXMpOworI2VuZGlmCisgICAgICAgIEFTU0VSVChj
YW5JbnZva2VDYWxsYmFjaygpKTsKKyAgICAgICAgdGFzaygpOworICAgIH0pOworfQorCiB2b2lk
IHJlamVjdFByb21pc2VXaXRoRXhjZXB0aW9uSWZBbnkoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgSlNQcm9t
aXNlJiBwcm9taXNlKQogewogICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVy
cmVkLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5o
CmluZGV4IGYwYTFlN2UyMDRjODI4OWQxODkwYWM3YWMyNWFlYmQwZDFiNTUwYjguLmIzYzBiMTVk
MThiOTBmNmY3Y2MwYTY5YjBkNTRiZWQ1NzVkMzYwZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuaApAQCAtMzMsNiArMzMsNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2VudW0gY2xhc3MgVGFza1NvdXJjZSA6IHVpbnQ4X3Q7
CiBjbGFzcyBKU0RPTVdpbmRvdzsKIAogY2xhc3MgRGVmZXJyZWRQcm9taXNlIDogcHVibGljIERP
TUd1YXJkZWQ8SlNDOjpKU1Byb21pc2U+IHsKQEAgLTE0NCw2ICsxNDUsNDIgQEAgcHVibGljOgog
ICAgICAgICByZWplY3QoKmxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxiYWNrKCpnbG9iYWxPYmpl
Y3QoKSkpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+CisgICAgdm9p
ZCBzZXR0bGUoRXhjZXB0aW9uT3I8dHlwZW5hbWUgSURMVHlwZTo6UGFyYW1ldGVyVHlwZT4mJiBy
ZXN1bHQpCisgICAgeworICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAg
ICAgICAgICByZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICByZXNvbHZlPElETFR5cGU+KHJlc3VsdC5yZWxl
YXNlUmV0dXJuVmFsdWUoKSk7CisgICAgfQorCisgICAgdm9pZCBzZXR0bGUoRXhjZXB0aW9uT3I8
dm9pZD4mJiByZXN1bHQpCisgICAgeworICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigp
KSB7CisgICAgICAgICAgICByZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICByZXNvbHZlKCk7CisgICAgfQor
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4KKyAgICB2b2lkIHF1ZXVlVGFza1RvU2V0
dGxlV2l0aFJlc3VsdENhbGxiYWNrKFRhc2tTb3VyY2Ugc291cmNlLCBGdW5jdGlvbjxFeGNlcHRp
b25Pcjx0eXBlbmFtZSBJRExUeXBlOjpQYXJhbWV0ZXJUeXBlPigpPiYmIHJlc3VsdENhbGxiYWNr
KQorICAgIHsKKyAgICAgICAgcXVldWVUYXNrS2VlcGluZ1NlbGZBbGl2ZShzb3VyY2UsIFt0aGlz
LCByZXN1bHRDYWxsYmFjayA9IFdURk1vdmUocmVzdWx0Q2FsbGJhY2spXSB7CisgICAgICAgICAg
ICBzZXR0bGU8SURMVHlwZT4ocmVzdWx0Q2FsbGJhY2soKSk7CisgICAgICAgIH0pOworICAgIH0K
KworICAgIHZvaWQgcXVldWVUYXNrVG9TZXR0bGVXaXRoUmVzdWx0Q2FsbGJhY2soVGFza1NvdXJj
ZSBzb3VyY2UsIEZ1bmN0aW9uPEV4Y2VwdGlvbk9yPHZvaWQ+KCk+JiYgcmVzdWx0Q2FsbGJhY2sp
CisgICAgeworICAgICAgICBxdWV1ZVRhc2tLZWVwaW5nU2VsZkFsaXZlKHNvdXJjZSwgW3RoaXMs
IHJlc3VsdENhbGxiYWNrID0gV1RGTW92ZShyZXN1bHRDYWxsYmFjayldIHsKKyAgICAgICAgICAg
IHNldHRsZShyZXN1bHRDYWxsYmFjaygpKTsKKyAgICAgICAgfSk7CisgICAgfQorCiAgICAgSlND
OjpKU1ZhbHVlIHByb21pc2UoKSBjb25zdDsKIAogICAgIHZvaWQgd2hlblNldHRsZWQoRnVuY3Rp
b248dm9pZCgpPiYmKTsKQEAgLTE2Miw2ICsxOTksNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBy
ZXNvbHZlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6SlNW
YWx1ZSByZXNvbHV0aW9uKSB7IGNhbGxGdW5jdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBSZXNv
bHZlTW9kZTo6UmVzb2x2ZSwgcmVzb2x1dGlvbik7IH0KICAgICB2b2lkIHJlamVjdChKU0M6OkpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcmVzb2x1dGlv
bikgeyBjYWxsRnVuY3Rpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgUmVzb2x2ZU1vZGU6OlJlamVj
dCwgcmVzb2x1dGlvbik7IH0KKyAgICB2b2lkIHF1ZXVlVGFza0tlZXBpbmdTZWxmQWxpdmUoVGFz
a1NvdXJjZSwgRnVuY3Rpb248dm9pZCgpPiYmKTsKIAogICAgIE1vZGUgbV9tb2RlOwogfTsKQEAg
LTIzOSwxMSArMjc3LDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0dGxlKEV4Y2VwdGlvbk9y
PHR5cGVuYW1lIElETFR5cGU6OlBhcmFtZXRlclR5cGU+JiYgcmVzdWx0KQogICAgIHsKLSAgICAg
ICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAgcmVqZWN0KHJlc3Vs
dC5yZWxlYXNlRXhjZXB0aW9uKCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0g
ICAgICAgIHJlc29sdmUocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKKyAgICAgICAgbV9w
cm9taXNlLT5zZXR0bGU8SURMVHlwZT4oV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9CisKKyAgICB2
b2lkIHF1ZXVlVGFza1RvU2V0dGxlV2l0aFJlc3VsdENhbGxiYWNrKFRhc2tTb3VyY2Ugc291cmNl
LCBGdW5jdGlvbjxFeGNlcHRpb25Pcjx0eXBlbmFtZSBJRExUeXBlOjpQYXJhbWV0ZXJUeXBlPigp
PiYmIHJlc3VsdENhbGxiYWNrKQorICAgIHsKKyAgICAgICAgbV9wcm9taXNlLT5xdWV1ZVRhc2tU
b1NldHRsZVdpdGhSZXN1bHRDYWxsYmFjazxJRExUeXBlPihzb3VyY2UsIFdURk1vdmUocmVzdWx0
Q2FsbGJhY2spKTsKICAgICB9CiB9OwogCkBAIC0yNjEsMTEgKzMwMCwxMiBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHNldHRsZShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkKICAgICB7Ci0gICAg
ICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgICAgIHJlamVjdChyZXN1
bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
ICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIG1fcHJvbWlzZS0+c2V0dGxlKFdURk1vdmUocmVz
dWx0KSk7CisgICAgfQorCisgICAgdm9pZCBxdWV1ZVRhc2tUb1NldHRsZVdpdGhSZXN1bHRDYWxs
YmFjayhUYXNrU291cmNlIHNvdXJjZSwgRnVuY3Rpb248RXhjZXB0aW9uT3I8dm9pZD4oKT4mJiBy
ZXN1bHRDYWxsYmFjaykKKyAgICB7CisgICAgICAgIG1fcHJvbWlzZS0+cXVldWVUYXNrVG9TZXR0
bGVXaXRoUmVzdWx0Q2FsbGJhY2soc291cmNlLCBXVEZNb3ZlKHJlc3VsdENhbGxiYWNrKSk7CiAg
ICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGI0MjEwZDM5YzcyYzQ2OTBjY2JhOTJmMzgzNzZjODhlZGNkNzdi
ZGIuLmE3MWM0MDNmMjY5ZGIxMDc5ODU2MWZhYWI3YTU5YTcwMTY2MTJhMzkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxOS0xMS0wOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisK
KyAgICAgICAgUGF5bWVudFJlcXVlc3QgLyBQYXltZW50UmVzcG9uc2Ugc2hvdWxkIG5vdCBwcmV2
ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzEwMQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNTY3NDQ0MDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY2xvc2VkLXBheW1l
bnQtcmVxdWVzdC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jbG9zZWQtcGF5bWVudC1yZXF1ZXN0Lmh0dHBz
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1j
YWNoZS1jb21wbGV0ZWQtcGF5bWVudC1yZXNwb25zZS5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jb21wbGV0
ZWQtcGF5bWVudC1yZXNwb25zZS5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY3JlYXRlZC1wYXltZW50LXJlcXVlc3QuaHR0
cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3BheW1lbnRyZXF1
ZXN0L3BhZ2UtY2FjaGUtY3JlYXRlZC1wYXltZW50LXJlcXVlc3QuaHR0cHMuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNyZWF0ZWQt
cGF5bWVudC1yZXNwb25zZS5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jcmVhdGVkLXBheW1lbnQtcmVzcG9u
c2UuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wYXltZW50cmVxdWVz
dC9wYWdlLWNhY2hlLWludGVyYWN0aXZlLXBheW1lbnQtcmVxdWVzdC5odHRwcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNo
ZS1pbnRlcmFjdGl2ZS1wYXltZW50LXJlcXVlc3QuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLXJldHJpZWQtcGF5bWVudC1y
ZXNwb25zZS5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1yZXRyaWVkLXBheW1lbnQtcmVzcG9uc2UuaHR0cHMu
aHRtbDogQWRkZWQuCisgICAgICAgICogcmVzb3VyY2VzL2pzLXRlc3QuanM6CisgICAgICAgIChz
aG91bGRSZWplY3QpOgorICAgICAgICAoc2hvdWxkUmVqZWN0V2l0aEVycm9yTmFtZSk6CisKIDIw
MTktMTEtMDUgIE9yaW9sIEJydWZhdSAgPG9icnVmYXVAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
Y3NzLWxpc3RzXSBJbXBsZW1lbnQgbGlzdC1zdHlsZS10eXBlOiA8c3RyaW5nPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNsb3Nl
ZC1wYXltZW50LXJlcXVlc3QuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNsb3NlZC1wYXltZW50LXJlcXVlc3QuaHR0
cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2YjA1NWMzNmYxYjUwZjFiYWNiOGQ4MjI2ZjE5
NDQ5NmY3NWMwYzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Bh
eW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY2xvc2VkLXBheW1lbnQtcmVxdWVzdC5odHRwcy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBhIFBheW1l
bnRSZXF1ZXN0IGluIHRoZSBDbG9zZWQgc3RhdGUgZ29lcyBpbnRvIHRoZSBiYWNrL2ZvcndhcmQg
Y2FjaGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitDcmVhdGluZyBhIFBheW1l
bnRSZXF1ZXN0IGluIHRoZSBDbG9zZWQgc3RhdGUuCitQQVNTIHJlc3BvbnNlUHJvbWlzZSByZWpl
Y3RlZCBwcm9taXNlICB3aXRoIEFib3J0RXJyb3I6IFRoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQu
LgorcGFnZXNob3cgLSBub3QgZnJvbSBjYWNoZQorcGFnZWhpZGUgLSBlbnRlcmluZyBjYWNoZQor
cGFnZXNob3cgLSBmcm9tIGNhY2hlCitQQVNTIFBhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9y
ZWQgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCitUZXN0aW5nIHRoYXQgUGF5bWVudFJlcXVl
c3QgcmVtYWlucyBpbiB0aGUgQ2xvc2VkIHN0YXRlLgorUEFTUyByZXF1ZXN0LnNob3coKSByZWpl
Y3RlZCBwcm9taXNlICB3aXRoIEludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFu
IGludmFsaWQgc3RhdGUuLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJl
cXVlc3QvcGFnZS1jYWNoZS1jbG9zZWQtcGF5bWVudC1yZXF1ZXN0Lmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY2xvc2VkLXBheW1l
bnQtcmVxdWVzdC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhNjFlYTdjNTE1MGQzY2Y0ODIyZjcy
NTJiY2RjMTUwMjczZTE3N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY2xvc2VkLXBheW1lbnQtcmVxdWVzdC5odHRw
cy5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
QmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0nL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMnPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Jy9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMnPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvcGF5bWVudC1yZXF1ZXN0LmpzJz48L3NjcmlwdD4K
KzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBhIFBheW1lbnRS
ZXF1ZXN0IGluIHRoZSBDbG9zZWQgc3RhdGUgZ29lcyBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUuJyk7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3dpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdwYWdlc2hvdycsIGFzeW5jIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWcoJ3Bh
Z2VzaG93IC0gJyArIChldmVudC5wZXJzaXN0ZWQgPyAnJyA6ICdub3QgJykgKyAnZnJvbSBjYWNo
ZScpOworCisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpCisgICAgICAgIHJldHVybjsKKworICAg
IHRlc3RQYXNzZWQoJ1BhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUgYmFj
ay9mb3J3YXJkIGNhY2hlJyk7CisKKyAgICBVSUhlbHBlci53aXRoVXNlckdlc3R1cmUoYXN5bmMg
ZnVuY3Rpb24oKSB7CisgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgUGF5bWVudFJlcXVlc3Qg
cmVtYWlucyBpbiB0aGUgQ2xvc2VkIHN0YXRlLicpOworICAgICAgICBhd2FpdCBzaG91bGRSZWpl
Y3RXaXRoRXJyb3JOYW1lKCdyZXF1ZXN0LnNob3coKScsICdJbnZhbGlkU3RhdGVFcnJvcicpOwor
CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfSwgZmFsc2UpOworCit3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigncGFnZWhpZGUnLCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVn
KCdwYWdlaGlkZSAtICcgKyAoZXZlbnQucGVyc2lzdGVkID8gJycgOiAnbm90ICcpICsgJ2VudGVy
aW5nIGNhY2hlJyk7CisKKyAgICBpZiAoZXZlbnQucGVyc2lzdGVkKQorICAgICAgICByZXR1cm47
CisKKyAgICB0ZXN0RmFpbGVkKCdQYWdlIGZhaWxlZCB0byBlbnRlciB0aGUgYmFjay9mb3J3YXJk
IGNhY2hlLicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSwgZmFsc2UpOworCit3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uKCkgeworICAgIFVJSGVscGVyLndpdGhVc2Vy
R2VzdHVyZShhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgZGVidWcoJ0NyZWF0aW5nIGEgUGF5
bWVudFJlcXVlc3QgaW4gdGhlIENsb3NlZCBzdGF0ZS4nKTsKKyAgICAgICAgcmVxdWVzdCA9IG5l
dyBQYXltZW50UmVxdWVzdChbdmFsaWRQYXltZW50TWV0aG9kKCldLCB2YWxpZFBheW1lbnREZXRh
aWxzKCkpOworICAgICAgICByZXNwb25zZVByb21pc2UgPSByZXF1ZXN0LnNob3coKTsKKyAgICAg
ICAgYXdhaXQgcmVxdWVzdC5hYm9ydCgpOworICAgICAgICBhd2FpdCBzaG91bGRSZWplY3RXaXRo
RXJyb3JOYW1lKCdyZXNwb25zZVByb21pc2UnLCAnQWJvcnRFcnJvcicpOworCisgICAgICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9
ICcvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcGFnZS1jYWNoZS1oZWxwZXIuaHRtbCc7CisgICAgICAg
IH0sIDApOworICAgIH0pOworfSwgZmFsc2UpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2Ut
Y2FjaGUtY29tcGxldGVkLXBheW1lbnQtcmVzcG9uc2UuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNvbXBsZXRlZC1w
YXltZW50LXJlc3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjZkYzY2MzY0
OWNmY2FjN2U3NWI5NzdlMGU1NjlhNWNlODc0MTk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNvbXBsZXRlZC1wYXlt
ZW50LXJlc3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitUZXN0cyB0
aGF0IGEgcGFnZSB3aXRoIGEgUGF5bWVudFJlc3BvbnNlIGluIHRoZSBDb21wbGV0ZWQgc3RhdGUg
Z29lcyBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitDcmVhdGluZyBhIFBheW1lbnRSZXNwb25zZSBpbiB0aGUgQ29tcGxldGVkIHN0
YXRlLgorcGFnZXNob3cgLSBub3QgZnJvbSBjYWNoZQorcGFnZWhpZGUgLSBlbnRlcmluZyBjYWNo
ZQorcGFnZXNob3cgLSBmcm9tIGNhY2hlCitQQVNTIFBhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVz
dG9yZWQgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCitUZXN0aW5nIHRoYXQgUGF5bWVudFJl
c3BvbnNlIHJlbWFpbnMgaW4gdGhlIENvbXBsZXRlZCBzdGF0ZS4KK1BBU1MgcmVzcG9uc2UuY29t
cGxldGUoKSByZWplY3RlZCBwcm9taXNlICB3aXRoIEludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2Jq
ZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuLgorUEFTUyByZXNwb25zZS5yZXRyeSgpIHJlamVj
dGVkIHByb21pc2UgIHdpdGggSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3QgaXMgaW4gYW4g
aW52YWxpZCBzdGF0ZS4uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVx
dWVzdC9wYWdlLWNhY2hlLWNvbXBsZXRlZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY29tcGxldGVk
LXBheW1lbnQtcmVzcG9uc2UuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWFiZjY4M2JjNWI1Njc2
ODg3Yzk5YjY2ZDUzMjYxMzM0MjJmYjJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNvbXBsZXRlZC1wYXltZW50LXJl
c3BvbnNlLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPScvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyc+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5q
cyc+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy9wYXltZW50LXJlcXVlc3QuanMn
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGF0IGEgcGFnZSB3aXRo
IGEgUGF5bWVudFJlc3BvbnNlIGluIHRoZSBDb21wbGV0ZWQgc3RhdGUgZ29lcyBpbnRvIHRoZSBi
YWNrL2ZvcndhcmQgY2FjaGUuJyk7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3dp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlc2hvdycsIGFzeW5jIGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgZGVidWcoJ3BhZ2VzaG93IC0gJyArIChldmVudC5wZXJzaXN0ZWQgPyAnJyA6ICdub3Qg
JykgKyAnZnJvbSBjYWNoZScpOworCisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpCisgICAgICAg
IHJldHVybjsKKworICAgIHRlc3RQYXNzZWQoJ1BhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9y
ZWQgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlJyk7CisKKyAgICBkZWJ1ZygnVGVzdGluZyB0
aGF0IFBheW1lbnRSZXNwb25zZSByZW1haW5zIGluIHRoZSBDb21wbGV0ZWQgc3RhdGUuJyk7Cisg
ICAgYXdhaXQgc2hvdWxkUmVqZWN0V2l0aEVycm9yTmFtZSgncmVzcG9uc2UuY29tcGxldGUoKScs
ICdJbnZhbGlkU3RhdGVFcnJvcicpOworICAgIGF3YWl0IHNob3VsZFJlamVjdFdpdGhFcnJvck5h
bWUoJ3Jlc3BvbnNlLnJldHJ5KCknLCAnSW52YWxpZFN0YXRlRXJyb3InKTsKKworICAgIGZpbmlz
aEpTVGVzdCgpOworfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZWhp
ZGUnLCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVnKCdwYWdlaGlkZSAtICcgKyAoZXZlbnQu
cGVyc2lzdGVkID8gJycgOiAnbm90ICcpICsgJ2VudGVyaW5nIGNhY2hlJyk7CisKKyAgICBpZiAo
ZXZlbnQucGVyc2lzdGVkKQorICAgICAgICByZXR1cm47CisKKyAgICB0ZXN0RmFpbGVkKCdQYWdl
IGZhaWxlZCB0byBlbnRlciB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLicpOworICAgIGZpbmlzaEpT
VGVzdCgpOworfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1
bmN0aW9uKCkgeworICAgIFVJSGVscGVyLndpdGhVc2VyR2VzdHVyZShhc3luYyBmdW5jdGlvbigp
IHsKKyAgICAgICAgZGVidWcoJ0NyZWF0aW5nIGEgUGF5bWVudFJlc3BvbnNlIGluIHRoZSBDb21w
bGV0ZWQgc3RhdGUuJyk7CisKKyAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVx
dWVzdChbdmFsaWRQYXltZW50TWV0aG9kKCldLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpOworICAg
ICAgICBjb25zdCByZXNwb25zZVByb21pc2UgPSByZXF1ZXN0LnNob3coKTsKKyAgICAgICAgaW50
ZXJuYWxzLm1vY2tQYXltZW50Q29vcmRpbmF0b3IuYWNjZXB0UGF5bWVudCgpOworICAgICAgICBy
ZXNwb25zZSA9IGF3YWl0IHJlc3BvbnNlUHJvbWlzZTsKKyAgICAgICAgYXdhaXQgcmVzcG9uc2Uu
Y29tcGxldGUoJ3N1Y2Nlc3MnKTsKKworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL25hdmlnYXRpb24vcmVzb3VyY2Vz
L3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwnOworICAgICAgICB9LCAwKTsKKyAgICB9KTsKK30sIGZh
bHNlKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNyZWF0ZWQtcGF5bWVudC1y
ZXF1ZXN0Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVu
dHJlcXVlc3QvcGFnZS1jYWNoZS1jcmVhdGVkLXBheW1lbnQtcmVxdWVzdC5odHRwcy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDEzOWJiMjA1MGQ4NzUxMTVjMTY3YWYyNmNkNGVmZTc0MmIyZDMw
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVl
c3QvcGFnZS1jYWNoZS1jcmVhdGVkLXBheW1lbnQtcmVxdWVzdC5odHRwcy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNiBAQAorVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBhIFBheW1lbnRSZXF1ZXN0
IGluIHRoZSBDcmVhdGVkIHN0YXRlIGdvZXMgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworQ3JlYXRpbmcgYSBQYXltZW50UmVxdWVz
dCBpbiB0aGUgQ3JlYXRlZCBzdGF0ZS4KK3BhZ2VzaG93IC0gbm90IGZyb20gY2FjaGUKK3BhZ2Vo
aWRlIC0gZW50ZXJpbmcgY2FjaGUKK3BhZ2VzaG93IC0gZnJvbSBjYWNoZQorUEFTUyBQYWdlIGRp
ZCBlbnRlciBhbmQgd2FzIHJlc3RvcmVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorVGVz
dGluZyB0aGF0IFBheW1lbnRSZXF1ZXN0IHJlbWFpbnMgaW4gdGhlIENyZWF0ZWQgc3RhdGUuCitQ
QVNTIHJlc3BvbnNlUHJvbWlzZSByZWplY3RlZCBwcm9taXNlICB3aXRoIEFib3J0RXJyb3I6IFRo
ZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQuLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jcmVhdGVkLXBheW1lbnQtcmVxdWVzdC5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNy
ZWF0ZWQtcGF5bWVudC1yZXF1ZXN0Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTNmZDM5NWIwNDgz
OWVmMmIzZjFiMzhhM2ZlMzc4M2Q3ZjYwMWUxMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jcmVhdGVkLXBheW1lbnQt
cmVxdWVzdC5odHRwcy5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0nL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMnPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIu
anMnPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvcGF5bWVudC1yZXF1ZXN0Lmpz
Jz48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0
aCBhIFBheW1lbnRSZXF1ZXN0IGluIHRoZSBDcmVhdGVkIHN0YXRlIGdvZXMgaW50byB0aGUgYmFj
ay9mb3J3YXJkIGNhY2hlLicpOword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCit3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLCBmdW5jdGlvbihldmVudCkgeworICAgIGRl
YnVnKCdwYWdlc2hvdyAtICcgKyAoZXZlbnQucGVyc2lzdGVkID8gJycgOiAnbm90ICcpICsgJ2Zy
b20gY2FjaGUnKTsKKworICAgIGlmICghZXZlbnQucGVyc2lzdGVkKQorICAgICAgICByZXR1cm47
CisKKyAgICB0ZXN0UGFzc2VkKCdQYWdlIGRpZCBlbnRlciBhbmQgd2FzIHJlc3RvcmVkIGZyb20g
dGhlIGJhY2svZm9yd2FyZCBjYWNoZScpOworCisgICAgVUlIZWxwZXIud2l0aFVzZXJHZXN0dXJl
KGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBkZWJ1ZygnVGVzdGluZyB0aGF0IFBheW1lbnRS
ZXF1ZXN0IHJlbWFpbnMgaW4gdGhlIENyZWF0ZWQgc3RhdGUuJykKKyAgICAgICAgcmVzcG9uc2VQ
cm9taXNlID0gcmVxdWVzdC5zaG93KCk7CisgICAgICAgIGF3YWl0IHJlcXVlc3QuYWJvcnQoKTsK
KyAgICAgICAgYXdhaXQgc2hvdWxkUmVqZWN0V2l0aEVycm9yTmFtZSgncmVzcG9uc2VQcm9taXNl
JywgJ0Fib3J0RXJyb3InKTsKKworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKK30s
IGZhbHNlKTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VoaWRlJywgZnVuY3Rpb24o
ZXZlbnQpIHsKKyAgICBkZWJ1ZygncGFnZWhpZGUgLSAnICsgKGV2ZW50LnBlcnNpc3RlZCA/ICcn
IDogJ25vdCAnKSArICdlbnRlcmluZyBjYWNoZScpOworCisgICAgaWYgKGV2ZW50LnBlcnNpc3Rl
ZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgdGVzdEZhaWxlZCgnUGFnZSBmYWlsZWQgdG8gZW50
ZXIgdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4nKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIGZh
bHNlKTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpIHsKKyAg
ICBkZWJ1ZygnQ3JlYXRpbmcgYSBQYXltZW50UmVxdWVzdCBpbiB0aGUgQ3JlYXRlZCBzdGF0ZS4n
KTsKKworICAgIHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoW3ZhbGlkUGF5bWVudE1ldGhv
ZCgpXSwgdmFsaWRQYXltZW50RGV0YWlscygpKTsKKworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9uYXZpZ2F0aW9uL3Jlc291cmNl
cy9wYWdlLWNhY2hlLWhlbHBlci5odG1sJzsKKyAgICB9LCAwKTsKK30sIGZhbHNlKTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNyZWF0ZWQtcGF5bWVudC1yZXNwb25zZS5odHRw
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3Bh
Z2UtY2FjaGUtY3JlYXRlZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40NmM5MmUxNDE5MzlhYWM0M2YzZWE3M2EwN2I0M2IwY2M0OTI4NTY4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNh
Y2hlLWNyZWF0ZWQtcGF5bWVudC1yZXNwb25zZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNyBAQAorVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBhIFBheW1lbnRSZXNwb25zZSBpbiB0aGUg
Q3JlYXRlZCBzdGF0ZSBnb2VzIGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0NyZWF0aW5nIGEgUGF5bWVudFJlc3BvbnNlIGluIHRo
ZSBDcmVhdGVkIHN0YXRlLgorcGFnZXNob3cgLSBub3QgZnJvbSBjYWNoZQorcGFnZWhpZGUgLSBl
bnRlcmluZyBjYWNoZQorcGFnZXNob3cgLSBmcm9tIGNhY2hlCitQQVNTIFBhZ2UgZGlkIGVudGVy
IGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCitUZXN0aW5nIHRo
YXQgUGF5bWVudFJlc3BvbnNlIGlzIG5vdyBpbiB0aGUgQ2xvc2VkIHN0YXRlLgorUEFTUyByZXNw
b25zZS5jb21wbGV0ZSgpIHJlamVjdGVkIHByb21pc2UgIHdpdGggQWJvcnRFcnJvcjogVGhlIG9w
ZXJhdGlvbiB3YXMgYWJvcnRlZC4uCitQQVNTIHJlc3BvbnNlLnJldHJ5KCkgcmVqZWN0ZWQgcHJv
bWlzZSAgd2l0aCBBYm9ydEVycm9yOiBUaGUgb3BlcmF0aW9uIHdhcyBhYm9ydGVkLi4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY3JlYXRl
ZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Bh
eW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY3JlYXRlZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYWI1OTJlZTFjYjhhMDZlYThkYzhiY2Y2OWFlNjFkOWYwMjM1YTIwMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3Qv
cGFnZS1jYWNoZS1jcmVhdGVkLXBheW1lbnQtcmVzcG9uc2UuaHR0cHMuaHRtbApAQCAtMCwwICsx
LDUzIEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9
dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
Jy9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScv
anMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScv
cmVzb3VyY2VzL3BheW1lbnQtcmVxdWVzdC5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3Jp
cHRpb24oJ1Rlc3RzIHRoYXQgYSBwYWdlIHdpdGggYSBQYXltZW50UmVzcG9uc2UgaW4gdGhlIENy
ZWF0ZWQgc3RhdGUgZ29lcyBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuJyk7Cit3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlc2hv
dycsIGFzeW5jIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWcoJ3BhZ2VzaG93IC0gJyArIChl
dmVudC5wZXJzaXN0ZWQgPyAnJyA6ICdub3QgJykgKyAnZnJvbSBjYWNoZScpOworCisgICAgaWYg
KCFldmVudC5wZXJzaXN0ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIHRlc3RQYXNzZWQoJ1Bh
Z2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hl
Jyk7CisKKyAgICBkZWJ1ZygnVGVzdGluZyB0aGF0IFBheW1lbnRSZXNwb25zZSBpcyBub3cgaW4g
dGhlIENsb3NlZCBzdGF0ZS4nKTsKKyAgICBhd2FpdCBzaG91bGRSZWplY3RXaXRoRXJyb3JOYW1l
KCdyZXNwb25zZS5jb21wbGV0ZSgpJywgJ0Fib3J0RXJyb3InKTsKKyAgICBhd2FpdCBzaG91bGRS
ZWplY3RXaXRoRXJyb3JOYW1lKCdyZXNwb25zZS5yZXRyeSgpJywgJ0Fib3J0RXJyb3InKTsKKwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cigncGFnZWhpZGUnLCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVnKCdwYWdlaGlkZSAtICcg
KyAoZXZlbnQucGVyc2lzdGVkID8gJycgOiAnbm90ICcpICsgJ2VudGVyaW5nIGNhY2hlJyk7CisK
KyAgICBpZiAoZXZlbnQucGVyc2lzdGVkKQorICAgICAgICByZXR1cm47CisKKyAgICB0ZXN0RmFp
bGVkKCdQYWdlIGZhaWxlZCB0byBlbnRlciB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLicpOworICAg
IGZpbmlzaEpTVGVzdCgpOworfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bG9hZCcsIGZ1bmN0aW9uKCkgeworICAgIFVJSGVscGVyLndpdGhVc2VyR2VzdHVyZShhc3luYyBm
dW5jdGlvbigpIHsKKyAgICAgICAgZGVidWcoJ0NyZWF0aW5nIGEgUGF5bWVudFJlc3BvbnNlIGlu
IHRoZSBDcmVhdGVkIHN0YXRlLicpOworCisgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5
bWVudFJlcXVlc3QoW3ZhbGlkUGF5bWVudE1ldGhvZCgpXSwgdmFsaWRQYXltZW50RGV0YWlscygp
KTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2VQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7CisgICAg
ICAgIGludGVybmFscy5tb2NrUGF5bWVudENvb3JkaW5hdG9yLmFjY2VwdFBheW1lbnQoKTsKKyAg
ICAgICAgcmVzcG9uc2UgPSBhd2FpdCByZXNwb25zZVByb21pc2U7CisKKyAgICAgICAgc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9u
YXZpZ2F0aW9uL3Jlc291cmNlcy9wYWdlLWNhY2hlLWhlbHBlci5odG1sJzsKKyAgICAgICAgfSwg
MCk7CisgICAgfSk7Cit9LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNo
ZS1pbnRlcmFjdGl2ZS1wYXltZW50LXJlcXVlc3QuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWludGVyYWN0aXZlLXBh
eW1lbnQtcmVxdWVzdC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODVjMmYzMDBmMGI4
YjBiZjhmOTlkZDgzMGEyMzIzYjNmMjMwY2FmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1pbnRlcmFjdGl2ZS1wYXlt
ZW50LXJlcXVlc3QuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3RzIHRo
YXQgYSBwYWdlIHdpdGggYSBQYXltZW50UmVxdWVzdCBpbiB0aGUgSW50ZXJhY3RpdmUgc3RhdGUg
Z29lcyBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitDcmVhdGluZyBhIFBheW1lbnRSZXF1ZXN0IGluIHRoZSBJbnRlcmFjdGl2ZSBz
dGF0ZS4KK3BhZ2VzaG93IC0gbm90IGZyb20gY2FjaGUKK3BhZ2VoaWRlIC0gZW50ZXJpbmcgY2Fj
aGUKK3BhZ2VzaG93IC0gZnJvbSBjYWNoZQorUEFTUyBQYWdlIGRpZCBlbnRlciBhbmQgd2FzIHJl
c3RvcmVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorVGVzdGluZyB0aGF0IHRoZSBwcm9t
aXNlIHJldHVybmVkIGJ5IHNob3coKSB3YXMgcmVqZWN0ZWQgd2l0aCAiQWJvcnRFcnJvciIuCitQ
QVNTIHJlc3BvbnNlUHJvbWlzZSByZWplY3RlZCBwcm9taXNlICB3aXRoIEFib3J0RXJyb3I6IFRo
ZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQuLgorVGVzdGluZyB0aGF0IFBheW1lbnRSZXF1ZXN0IGlz
IG5vdyBpbiB0aGUgQ2xvc2VkIHN0YXRlLgorUEFTUyByZXF1ZXN0LmFib3J0KCkgcmVqZWN0ZWQg
cHJvbWlzZSAgd2l0aCBJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZh
bGlkIHN0YXRlLi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0
L3BhZ2UtY2FjaGUtaW50ZXJhY3RpdmUtcGF5bWVudC1yZXF1ZXN0Lmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtaW50ZXJhY3RpdmUt
cGF5bWVudC1yZXF1ZXN0Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWY1Y2NkZjQwMDFkOGQ1MDM4
YmYwYjlmYjNjMGQ3NzQ2NWRiY2I4YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1pbnRlcmFjdGl2ZS1wYXltZW50LXJl
cXVlc3QuaHR0cHMuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Jy9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0Lmpz
Jz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpz
Jz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3BheW1lbnQtcmVxdWVzdC5qcyc+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgYSBwYWdlIHdpdGgg
YSBQYXltZW50UmVxdWVzdCBpbiB0aGUgSW50ZXJhY3RpdmUgc3RhdGUgZ29lcyBpbnRvIHRoZSBi
YWNrL2ZvcndhcmQgY2FjaGUuJyk7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3dp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlc2hvdycsIGFzeW5jIGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgZGVidWcoJ3BhZ2VzaG93IC0gJyArIChldmVudC5wZXJzaXN0ZWQgPyAnJyA6ICdub3Qg
JykgKyAnZnJvbSBjYWNoZScpOworCisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpCisgICAgICAg
IHJldHVybjsKKworICAgIHRlc3RQYXNzZWQoJ1BhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9y
ZWQgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlJyk7CisKKyAgICBkZWJ1ZygnVGVzdGluZyB0
aGF0IHRoZSBwcm9taXNlIHJldHVybmVkIGJ5IHNob3coKSB3YXMgcmVqZWN0ZWQgd2l0aCAiQWJv
cnRFcnJvciIuJyk7CisgICAgYXdhaXQgc2hvdWxkUmVqZWN0V2l0aEVycm9yTmFtZSgncmVzcG9u
c2VQcm9taXNlJywgJ0Fib3J0RXJyb3InKTsKKworICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgUGF5
bWVudFJlcXVlc3QgaXMgbm93IGluIHRoZSBDbG9zZWQgc3RhdGUuJyk7CisgICAgYXdhaXQgc2hv
dWxkUmVqZWN0V2l0aEVycm9yTmFtZSgncmVxdWVzdC5hYm9ydCgpJywgJ0ludmFsaWRTdGF0ZUVy
cm9yJyk7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIGZhbHNlKTsKKword2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoJ3BhZ2VoaWRlJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1ZygncGFn
ZWhpZGUgLSAnICsgKGV2ZW50LnBlcnNpc3RlZCA/ICcnIDogJ25vdCAnKSArICdlbnRlcmluZyBj
YWNoZScpOworCisgICAgaWYgKGV2ZW50LnBlcnNpc3RlZCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgdGVzdEZhaWxlZCgnUGFnZSBmYWlsZWQgdG8gZW50ZXIgdGhlIGJhY2svZm9yd2FyZCBjYWNo
ZS4nKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIGZhbHNlKTsKKword2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpIHsKKyAgICBVSUhlbHBlci53aXRoVXNlckdlc3R1
cmUoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGRlYnVnKCdDcmVhdGluZyBhIFBheW1lbnRS
ZXF1ZXN0IGluIHRoZSBJbnRlcmFjdGl2ZSBzdGF0ZS4nKTsKKyAgICAgICAgcmVxdWVzdCA9IG5l
dyBQYXltZW50UmVxdWVzdChbdmFsaWRQYXltZW50TWV0aG9kKCldLCB2YWxpZFBheW1lbnREZXRh
aWxzKCkpOworICAgICAgICByZXNwb25zZVByb21pc2UgPSByZXF1ZXN0LnNob3coKTsKKyAgICB9
KTsKKworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIHdpbmRvdy5sb2NhdGlv
bi5ocmVmID0gJy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9wYWdlLWNhY2hlLWhlbHBlci5odG1sJzsK
KyAgICB9LCAwKTsKK30sIGZhbHNlKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hl
LXJldHJpZWQtcGF5bWVudC1yZXNwb25zZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtcmV0cmllZC1wYXltZW50LXJl
c3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjY1ZTM1M2M0NTk1ODIxYWQ0
YjUyZDUzOTVmM2EyNWQ0YTdkYTY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLXJldHJpZWQtcGF5bWVudC1yZXNwb25z
ZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGVzdHMgdGhhdCBhIHBhZ2Ug
d2l0aCBhIFBheW1lbnRSZXNwb25zZSBpbiB0aGUgQ29tcGxldGVkIHN0YXRlIGdvZXMgaW50byB0
aGUgYmFjay9mb3J3YXJkIGNhY2hlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
Q3JlYXRpbmcgYSBQYXltZW50UmVzcG9uc2UgaW4gdGhlIENyZWF0ZWQgc3RhdGUgd2l0aCBhIHJl
dHJ5IHByb21pc2UuCitwYWdlc2hvdyAtIG5vdCBmcm9tIGNhY2hlCitwYWdlaGlkZSAtIGVudGVy
aW5nIGNhY2hlCitwYWdlc2hvdyAtIGZyb20gY2FjaGUKK1BBU1MgUGFnZSBkaWQgZW50ZXIgYW5k
IHdhcyByZXN0b3JlZCBmcm9tIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKK1Rlc3RpbmcgdGhhdCB0
aGUgcHJvbWlzZSByZXR1cm5lZCBieSByZXRyeSgpIHdhcyByZWplY3RlZCB3aXRoICJBYm9ydEVy
cm9yIi4KK1BBU1MgcmV0cnlQcm9taXNlIHJlamVjdGVkIHByb21pc2UgIHdpdGggQWJvcnRFcnJv
cjogVGhlIG9wZXJhdGlvbiB3YXMgYWJvcnRlZC4uCitUZXN0aW5nIHRoYXQgUGF5bWVudFJlc3Bv
bnNlIGlzIG5vdyBpbiB0aGUgQ2xvc2VkIHN0YXRlLgorUEFTUyByZXNwb25zZS5jb21wbGV0ZSgp
IHJlamVjdGVkIHByb21pc2UgIHdpdGggQWJvcnRFcnJvcjogVGhlIG9wZXJhdGlvbiB3YXMgYWJv
cnRlZC4uCitQQVNTIHJlc3BvbnNlLnJldHJ5KCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBBYm9y
dEVycm9yOiBUaGUgb3BlcmF0aW9uIHdhcyBhYm9ydGVkLi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtcmV0cmllZC1wYXltZW50LXJlc3Bv
bnNlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3Bh
Z2UtY2FjaGUtcmV0cmllZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGNkNmJlNzU4MTlkYTA5OWE1NzJiNWI2M2IzNTQxYjRmOGRlYWU1NAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1yZXRy
aWVkLXBheW1lbnQtcmVzcG9uc2UuaHR0cHMuaHRtbApAQCAtMCwwICsxLDU3IEBACis8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Jy9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvanMtdGVzdC1yZXNvdXJj
ZXMvdWktaGVscGVyLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3BheW1l
bnQtcmVxdWVzdC5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHRo
YXQgYSBwYWdlIHdpdGggYSBQYXltZW50UmVzcG9uc2UgaW4gdGhlIENvbXBsZXRlZCBzdGF0ZSBn
b2VzIGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4nKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VzaG93JywgYXN5bmMgZnVu
Y3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1ZygncGFnZXNob3cgLSAnICsgKGV2ZW50LnBlcnNpc3Rl
ZCA/ICcnIDogJ25vdCAnKSArICdmcm9tIGNhY2hlJyk7CisKKyAgICBpZiAoIWV2ZW50LnBlcnNp
c3RlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgdGVzdFBhc3NlZCgnUGFnZSBkaWQgZW50ZXIg
YW5kIHdhcyByZXN0b3JlZCBmcm9tIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUnKTsKKworICAgIGRl
YnVnKCdUZXN0aW5nIHRoYXQgdGhlIHByb21pc2UgcmV0dXJuZWQgYnkgcmV0cnkoKSB3YXMgcmVq
ZWN0ZWQgd2l0aCAiQWJvcnRFcnJvciIuJyk7CisgICAgYXdhaXQgc2hvdWxkUmVqZWN0V2l0aEVy
cm9yTmFtZSgncmV0cnlQcm9taXNlJywgJ0Fib3J0RXJyb3InKTsKKworICAgIGRlYnVnKCdUZXN0
aW5nIHRoYXQgUGF5bWVudFJlc3BvbnNlIGlzIG5vdyBpbiB0aGUgQ2xvc2VkIHN0YXRlLicpOwor
ICAgIGF3YWl0IHNob3VsZFJlamVjdFdpdGhFcnJvck5hbWUoJ3Jlc3BvbnNlLmNvbXBsZXRlKCkn
LCAnQWJvcnRFcnJvcicpOworICAgIGF3YWl0IHNob3VsZFJlamVjdFdpdGhFcnJvck5hbWUoJ3Jl
c3BvbnNlLnJldHJ5KCknLCAnQWJvcnRFcnJvcicpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9
LCBmYWxzZSk7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlaGlkZScsIGZ1bmN0aW9u
KGV2ZW50KSB7CisgICAgZGVidWcoJ3BhZ2VoaWRlIC0gJyArIChldmVudC5wZXJzaXN0ZWQgPyAn
JyA6ICdub3QgJykgKyAnZW50ZXJpbmcgY2FjaGUnKTsKKworICAgIGlmIChldmVudC5wZXJzaXN0
ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIHRlc3RGYWlsZWQoJ1BhZ2UgZmFpbGVkIHRvIGVu
dGVyIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBm
YWxzZSk7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7Cisg
ICAgVUlIZWxwZXIud2l0aFVzZXJHZXN0dXJlKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBk
ZWJ1ZygnQ3JlYXRpbmcgYSBQYXltZW50UmVzcG9uc2UgaW4gdGhlIENyZWF0ZWQgc3RhdGUgd2l0
aCBhIHJldHJ5IHByb21pc2UuJyk7CisKKyAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXlt
ZW50UmVxdWVzdChbdmFsaWRQYXltZW50TWV0aG9kKCldLCB2YWxpZFBheW1lbnREZXRhaWxzKCkp
OworICAgICAgICBjb25zdCByZXNwb25zZVByb21pc2UgPSByZXF1ZXN0LnNob3coKTsKKyAgICAg
ICAgaW50ZXJuYWxzLm1vY2tQYXltZW50Q29vcmRpbmF0b3IuYWNjZXB0UGF5bWVudCgpOworICAg
ICAgICByZXNwb25zZSA9IGF3YWl0IHJlc3BvbnNlUHJvbWlzZTsKKyAgICAgICAgcmV0cnlQcm9t
aXNlID0gcmVzcG9uc2UucmV0cnkoKTsKKworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL25hdmlnYXRpb24vcmVzb3Vy
Y2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwnOworICAgICAgICB9LCAwKTsKKyAgICB9KTsKK30s
IGZhbHNlKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvanMtdGVz
dC5qcwppbmRleCA2OGE0NTZhODNjNjQ5OWY5NGVmYmI5MjE0ODM4MzJkMzI1YzIxM2NiLi4xYWIy
MTU1NDJlN2FjNmVhMzAwYjZhNGNjYmRiODdhN2ZkYjUyYzU2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9yZXNvdXJjZXMvanMtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvanMt
dGVzdC5qcwpAQCAtNzEyLDYgKzcxMiwxMSBAQCBmdW5jdGlvbiBleHBlY3RFcnJvcigpCiB9CiAK
IGZ1bmN0aW9uIHNob3VsZFJlamVjdChfYSwgX21lc3NhZ2UpCit7CisgICAgcmV0dXJuIHNob3Vs
ZFJlamVjdFdpdGhFcnJvck5hbWUoX2EsIHVuZGVmaW5lZCwgX21lc3NhZ2UpOworfQorCitmdW5j
dGlvbiBzaG91bGRSZWplY3RXaXRoRXJyb3JOYW1lKF9hLCBfbmFtZSwgX21lc3NhZ2UpCiB7CiAg
ICAgdmFyIF9leGNlcHRpb247CiAgICAgdmFyIF9hdjsKQEAgLTcyNSw3ICs3MzAsMTEgQEAgZnVu
Y3Rpb24gc2hvdWxkUmVqZWN0KF9hLCBfbWVzc2FnZSkKICAgICByZXR1cm4gX2F2LnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7CiAgICAgICAgIHRlc3RGYWlsZWQoKF9tZXNzYWdlID8gX21lc3NhZ2Ug
OiBfYSkgKyAiIHNob3VsZCByZWplY3QgcHJvbWlzZS4gUmVzb2x2ZWQgd2l0aCAiICsgcmVzdWx0
ICsgIi4iKTsKICAgICB9LCBmdW5jdGlvbihlcnJvcikgewotICAgICAgICB0ZXN0UGFzc2VkKChf
bWVzc2FnZSA/IF9tZXNzYWdlIDogX2EpICsgIiByZWplY3RlZCBwcm9taXNlICB3aXRoICIgKyBl
cnJvciArICIuIik7CisgICAgICAgIGlmIChfbmFtZSA9PT0gdW5kZWZpbmVkIHx8IGVycm9yWydu
YW1lJ10gPT09IF9uYW1lKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoZSBleHRy
YSBzcGFjZSBhbmQgJy4nIChET01FeGNlcHRpb24gZGVzY3JpcHRpb25zIGFscmVhZHkgZW5kIHdp
dGggcGVyaW9kcykgdGhlbiByZWJhc2UgdGVzdHMuCisgICAgICAgICAgICB0ZXN0UGFzc2VkKChf
bWVzc2FnZSA/IF9tZXNzYWdlIDogX2EpICsgIiByZWplY3RlZCBwcm9taXNlICB3aXRoICIgKyBl
cnJvciArICIuIik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgoX21l
c3NhZ2UgPyBfbWVzc2FnZSA6IF9hKSArICIgc2hvdWxkIHJlamVjdCBwcm9taXNlIHdpdGggIiAr
IF9uYW1lICsgIi4gUmVqZWN0ZWQgd2l0aCAiICsgZXJyb3JbJ25hbWUnXSArICIgaW5zdGVhZC4i
KTsKICAgICB9KTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383162</attachid>
            <date>2019-11-08 14:08:22 -0800</date>
            <delta_ts>2019-11-11 10:44:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203101-20191108140821.patch</filename>
            <type>text/plain</type>
            <size>35972</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU5MGYzYTAzNTA1NDM4
MTgzMjI3ZjU0NDY3NGQ4ZDdhMDU3MTgyYi4uYmEwMDRlMzY2MTA0ZjYwMzc5MWZkNmExMmU5NTY5
NTI3OTRjNjJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE5LTExLTA4ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50UmVxdWVzdCAvIFBh
eW1lbnRSZXNwb25zZSBzaG91bGQgbm90IHByZXZlbnQgZW50ZXJpbmcgdGhlIGJhY2svZm9yd2Fy
ZCBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAzMTAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81Njc0NDQwOT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIFBheW1lbnRSZXF1ZXN0
J3MgYW5kIFBheW1lbnRSZXNwb25zZSdzIG92ZXJyaWRlIG9mCisgICAgICAgIEFjdGl2ZURPTU9i
amVjdDo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVEIGFu
ZCBpbXBsZW1lbnRlZAorICAgICAgICBBY3RpdmVET01PYmplY3Q6OnN1c3BlbmQgaW5zdGVhZC4K
KworICAgICAgICBJbnRyb2R1Y2VkIERPTVByb21pc2VEZWZlcnJlZDo6cXVldWVUYXNrVG9TZXR0
bGVXaXRoUmVzdWx0Q2FsbGJhY2sgYXMgYSBjb252ZW5pZW5jZSBtZXRob2QKKyAgICAgICAgdG8g
cXVldWUgdGFza3MgdG8gc2V0dGxlIHByb21pc2VzIG9uIHRoZSBjb3JyZWN0IHNjcmlwdCBleGVj
dXRpb24gY29udGV4dCBldmVudCBsb29wLCBzaW5jZQorICAgICAgICB0aGUgc2hvdygpIGFuZCBy
ZXRyeSgpIHByb21pc2VzIG1pZ2h0IGJlbG9uZyB0byBhIGRpZmZlcmVudCBjb250ZXh0IHRoYW4g
dGhlIFBheW1lbnRSZXF1ZXN0CisgICAgICAgIG9yIFBheW1lbnRSZXNwb25zZS4gU2VlIGh0dHAv
dGVzdHMvcGF5bWVudHJlcXVlc3QvcmVqZWN0c19pZl9ub3RfYWN0aXZlLmh0dHBzLmh0bWwgZm9y
IGFuCisgICAgICAgIGV4YW1wbGUgb2Ygd2h5IHdlIG5lZWQgdGhpcy4KKworICAgICAgICBUZXN0
czogaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNsb3NlZC1wYXltZW50LXJl
cXVlc3QuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wYXltZW50cmVxdWVz
dC9wYWdlLWNhY2hlLWNvbXBsZXRlZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jcmVhdGVkLXBh
eW1lbnQtcmVxdWVzdC5odHRwcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3BheW1l
bnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY3JlYXRlZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1pbnRl
cmFjdGl2ZS1wYXltZW50LXJlcXVlc3QuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLXJldHJpZWQtcGF5bWVudC1yZXNwb25zZS5o
dHRwcy5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1
ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpzdXNwZW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpzaG91bGRQcmV2ZW50RW50ZXJpbmdCYWNr
Rm9yd2FyZENhY2hlX0RFUFJFQ0FURUQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVs
ZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3Bh
eW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXlt
ZW50UmVzcG9uc2U6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlc3BvbnNlOjpz
dXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXNwb25zZTo6c2hvdWxkUHJldmVu
dEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVEIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5oOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRlZmVycmVkUHJvbWlzZTo6cXVldWVUYXNrS2VlcGluZ1NlbGZBbGl2ZSk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRlZmVycmVkUHJvbWlzZTo6c2V0dGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlZmVycmVkUHJv
bWlzZTo6cXVldWVUYXNrVG9TZXR0bGVXaXRoUmVzdWx0Q2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NUHJvbWlzZURlZmVycmVkOjpzZXR0bGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
UHJvbWlzZURlZmVycmVkOjpxdWV1ZVRhc2tUb1NldHRsZVdpdGhSZXN1bHRDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD46OnNldHRsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD46OnF1ZXVlVGFza1RvU2V0dGxl
V2l0aFJlc3VsdENhbGxiYWNrKToKKwogMjAxOS0xMS0wNSAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjUxOTMwKTogRmxha3kgV0sxIGNy
YXNoIGluIHByaW50aW5nL3BzZXVkby1jbGFzcy1vdXRzaWRlLXBhZ2UuaHRtbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0
LmNwcAppbmRleCBkYWY1MTgzMDhmMDU0OTQ3OWMwOTYzNzVhZjZjNDI3NzEzNjRlNmUwLi45MjQ3
ODgzMWJiNzg4OGI4ZWQ5ZWFiMzgzOGM4MjA0MzE2OTZmNWZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcApA
QCAtNDg4LDYgKzQ4OCwyOCBAQCB2b2lkIFBheW1lbnRSZXF1ZXN0OjpzdG9wKCkKICAgICBzZXR0
bGVTaG93UHJvbWlzZShFeGNlcHRpb24geyBBYm9ydEVycm9yIH0pOwogfQogCit2b2lkIFBheW1l
bnRSZXF1ZXN0OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQoreworICAgIGlm
IChyZWFzb24gIT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKCFtX2FjdGl2ZVBheW1lbnRIYW5kbGVyKSB7CisgICAgICAg
IEFTU0VSVCghbV9zaG93UHJvbWlzZSk7CisgICAgICAgIEFTU0VSVChtX3N0YXRlICE9IFN0YXRl
OjpJbnRlcmFjdGl2ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjbG9zZUFjdGl2
ZVBheW1lbnRIYW5kbGVyKCk7CisKKyAgICBhdXRvIHNob3dQcm9taXNlID0gc3RkOjpleGNoYW5n
ZShtX3Nob3dQcm9taXNlLCBudWxscHRyKTsKKyAgICBpZiAoIXNob3dQcm9taXNlKQorICAgICAg
ICByZXR1cm47CisKKyAgICBzaG93UHJvbWlzZS0+cXVldWVUYXNrVG9TZXR0bGVXaXRoUmVzdWx0
Q2FsbGJhY2soVGFza1NvdXJjZTo6VXNlckludGVyYWN0aW9uLCBbXSB7CisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBBYm9ydEVycm9yIH07CisgICAgfSk7Cit9CisKIC8vIGh0dHBzOi8vd3d3
LnczLm9yZy9UUi9wYXltZW50LXJlcXVlc3QvI2Fib3J0KCktbWV0aG9kCiB2b2lkIFBheW1lbnRS
ZXF1ZXN0OjphYm9ydChBYm9ydFByb21pc2UmJiBwcm9taXNlKQogewpAQCAtNTM5LDEyICs1NjEs
NiBAQCBPcHRpb25hbDxQYXltZW50U2hpcHBpbmdUeXBlPiBQYXltZW50UmVxdWVzdDo6c2hpcHBp
bmdUeXBlKCkgY29uc3QKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCi0vLyBGSVhNRTog
VGhpcyBzaG91bGQgbmV2ZXIgcHJldmVudCBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hl
LgotYm9vbCBQYXltZW50UmVxdWVzdDo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRD
YWNoZV9ERVBSRUNBVEVEKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaGFzUGVuZGluZ0FjdGl2aXR5
KCk7Ci19Ci0KIHZvaWQgUGF5bWVudFJlcXVlc3Q6OnNoaXBwaW5nQWRkcmVzc0NoYW5nZWQoUmVm
PFBheW1lbnRBZGRyZXNzPiYmIHNoaXBwaW5nQWRkcmVzcykKIHsKICAgICB3aGVuRGV0YWlsc1Nl
dHRsZWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCBzaGlwcGluZ0Fk
ZHJlc3MgPSBtYWtlUmVmUHRyKHNoaXBwaW5nQWRkcmVzcy5nZXQoKSldKCkgbXV0YWJsZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRS
ZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRS
ZXF1ZXN0LmgKaW5kZXggNDBhNWVhMmY4ZGYxZTc3YjFmNWU2YzBlYjhlODExZjIyNjZjNGIxZi4u
NjhhY2FjOTZiMmU3YmRhMmEwNWVkZjVhY2I1ZmQ5YWU2ZjhkODk5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaApA
QCAtMTI2LDggKzEyNiw4IEBAIHByaXZhdGU6CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAg
ICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
IlBheW1lbnRSZXF1ZXN0IjsgfQotICAgIGJvb2wgc2hvdWxkUHJldmVudEVudGVyaW5nQmFja0Zv
cndhcmRDYWNoZV9ERVBSRUNBVEVEKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmlu
YWw7CisgICAgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIGZpbmFsOwogCiAgICAg
Ly8gRXZlbnRUYXJnZXQKICAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVy
ZmFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBheW1lbnRSZXF1ZXN0RXZlbnRUYXJnZXRJbnRl
cmZhY2VUeXBlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRy
ZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1l
bnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5jcHAKaW5kZXggMTY5MmRjMDYyYzI0MTk0ODkwYjAz
YzVjN2Y4YmE0MTUxNDBmYTUyMy4uMWUwZDVkYTUyYTdkYWFkYzAzZDZhN2JkZWE2YTViZDFiNDc0
NDUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9Q
YXltZW50UmVzcG9uc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJl
cXVlc3QvUGF5bWVudFJlc3BvbnNlLmNwcApAQCAtMTI1LDE4ICsxMjUsMzQgQEAgdm9pZCBQYXlt
ZW50UmVzcG9uc2U6OnNldHRsZVJldHJ5UHJvbWlzZShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3Vs
dCkKICAgICBtX3JldHJ5UHJvbWlzZSA9IG51bGxwdHI7CiB9CiAKLS8vIEZJWE1FOiBUaGlzIHNo
b3VsZCBuZXZlciBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCi1ib29s
IFBheW1lbnRSZXNwb25zZTo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9E
RVBSRUNBVEVEKCkgY29uc3QKK3ZvaWQgUGF5bWVudFJlc3BvbnNlOjpzdG9wKCkKIHsKLSAgICBB
U1NFUlQobV9zdGF0ZSAhPSBTdGF0ZTo6U3RvcHBlZCk7Ci0gICAgcmV0dXJuIGhhc1BlbmRpbmdB
Y3Rpdml0eSgpOworICAgIHNldHRsZVJldHJ5UHJvbWlzZShFeGNlcHRpb24geyBBYm9ydEVycm9y
IH0pOworICAgIG1fcGVuZGluZ0FjdGl2aXR5ID0gbnVsbHB0cjsKKyAgICBtX3N0YXRlID0gU3Rh
dGU6OlN0b3BwZWQ7CiB9CiAKLXZvaWQgUGF5bWVudFJlc3BvbnNlOjpzdG9wKCkKK3ZvaWQgUGF5
bWVudFJlc3BvbnNlOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQogewotICAg
IHNldHRsZVJldHJ5UHJvbWlzZShFeGNlcHRpb24geyBBYm9ydEVycm9yIH0pOworICAgIGlmIChy
ZWFzb24gIT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OkNyZWF0ZWQpIHsKKyAgICAgICAg
QVNTRVJUKCFoYXNQZW5kaW5nQWN0aXZpdHkoKSk7CisgICAgICAgIEFTU0VSVCghbV9yZXRyeVBy
b21pc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbV9wZW5kaW5nQWN0aXZpdHkg
PSBudWxscHRyOwogICAgIG1fc3RhdGUgPSBTdGF0ZTo6U3RvcHBlZDsKKworICAgIGF1dG8gcmV0
cnlQcm9taXNlID0gc3RkOjpleGNoYW5nZShtX3JldHJ5UHJvbWlzZSwgbnVsbHB0cik7CisgICAg
aWYgKCFyZXRyeVByb21pc2UpCisgICAgICAgIHJldHVybjsKKworICAgIHJldHJ5UHJvbWlzZS0+
cXVldWVUYXNrVG9TZXR0bGVXaXRoUmVzdWx0Q2FsbGJhY2soVGFza1NvdXJjZTo6VXNlckludGVy
YWN0aW9uLCBbXSB7CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBBYm9ydEVycm9yIH07Cisg
ICAgfSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5oCmluZGV4IDY1
N2ZkNTZjNjI1M2I5NzdiMDYxNjNlMDY3OWUyZDczMWE1ODlhZjUuLmM0ZmY0YjZmMWEwNjQ4N2Uz
NThjYmI3NjhlNTU5NTc5NzY0YjI3ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVzcG9uc2UuaApAQCAtOTgsOCArOTgsOCBA
QCBwcml2YXRlOgogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAgICAgY29uc3QgY2hhciogYWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJQYXltZW50UmVzcG9uc2Ui
OyB9Ci0gICAgYm9vbCBzaG91bGRQcmV2ZW50RW50ZXJpbmdCYWNrRm9yd2FyZENhY2hlX0RFUFJF
Q0FURUQoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKKyAgICB2b2lkIHN1
c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikgZmluYWw7CiAKICAgICAvLyBFdmVudFRhcmdldAog
ICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gUGF5bWVudFJlc3BvbnNlRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJl
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5j
cHAKaW5kZXggNTUwYmNjM2E2MDMxOTIzOWEyYTY0YjJjZTdkZWFhN2Q1NmRmNDM5MS4uNzA4YjEx
YTQ3ZGYxZjMwM2ViZjlkNmM0MjliOGE5YWE3NjhmNTI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmNwcApAQCAtMjYsOSArMjYs
MTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJl
ZC5oIgogCisjaW5jbHVkZSAiQWJzdHJhY3RFdmVudExvb3AuaCIKICNpbmNsdWRlICJET01XaW5k
b3cuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5o
IgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9CdWlsdGluTmFtZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9FeGNlcHRp
b24uaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09OT2JqZWN0Lmg+CkBAIC0xNzIsNiAr
MTc0LDE5IEBAIHZvaWQgRGVmZXJyZWRQcm9taXNlOjpyZWplY3QoY29uc3QgSlNDOjpQcml2YXRl
TmFtZSYgcHJpdmF0ZU5hbWUpCiAgICAgcmVqZWN0KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6
OlN5bWJvbDo6Y3JlYXRlKGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCksIHByaXZhdGVOYW1lLnVp
ZCgpKSk7CiB9CiAKK3ZvaWQgRGVmZXJyZWRQcm9taXNlOjpxdWV1ZVRhc2tLZWVwaW5nU2VsZkFs
aXZlKFRhc2tTb3VyY2Ugc291cmNlLCBGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKK3sKKyAgICBB
U1NFUlQoZGVmZXJyZWQoKSk7CisgICAgYXV0byYgY29udGV4dCA9ICptX2dsb2JhbE9iamVjdC0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGNvbnRleHQuZXZlbnRMb29wKCkucXVldWVU
YXNrKHNvdXJjZSwgY29udGV4dCwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgdGFzayA9IFdURk1vdmUodGFzayldIHsKKyNpZiBBU1NFUlRfRElTQUJMRUQKKyAgICAgICAg
VU5VU0VEX1BBUkFNKHRoaXMpOworI2VuZGlmCisgICAgICAgIEFTU0VSVChjYW5JbnZva2VDYWxs
YmFjaygpKTsKKyAgICAgICAgdGFzaygpOworICAgIH0pOworfQorCiB2b2lkIHJlamVjdFByb21p
c2VXaXRoRXhjZXB0aW9uSWZBbnkoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgSlNQcm9taXNlJiBwcm9taXNl
KQogewogICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5oCmluZGV4IGYwYTFl
N2UyMDRjODI4OWQxODkwYWM3YWMyNWFlYmQwZDFiNTUwYjguLmIzYzBiMTVkMThiOTBmNmY3Y2Mw
YTY5YjBkNTRiZWQ1NzVkMzYwZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NUHJvbWlzZURlZmVycmVkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01Qcm9taXNlRGVmZXJyZWQuaApAQCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2VudW0gY2xhc3MgVGFza1NvdXJjZSA6IHVpbnQ4X3Q7CiBjbGFzcyBKU0RP
TVdpbmRvdzsKIAogY2xhc3MgRGVmZXJyZWRQcm9taXNlIDogcHVibGljIERPTUd1YXJkZWQ8SlND
OjpKU1Byb21pc2U+IHsKQEAgLTE0NCw2ICsxNDUsNDIgQEAgcHVibGljOgogICAgICAgICByZWpl
Y3QoKmxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxiYWNrKCpnbG9iYWxPYmplY3QoKSkpOwogICAg
IH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+CisgICAgdm9pZCBzZXR0bGUoRXhj
ZXB0aW9uT3I8dHlwZW5hbWUgSURMVHlwZTo6UGFyYW1ldGVyVHlwZT4mJiByZXN1bHQpCisgICAg
eworICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICByZWpl
Y3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICByZXNvbHZlPElETFR5cGU+KHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFs
dWUoKSk7CisgICAgfQorCisgICAgdm9pZCBzZXR0bGUoRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1
bHQpCisgICAgeworICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAg
ICAgICByZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICByZXNvbHZlKCk7CisgICAgfQorCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgSURMVHlwZT4KKyAgICB2b2lkIHF1ZXVlVGFza1RvU2V0dGxlV2l0aFJlc3Vs
dENhbGxiYWNrKFRhc2tTb3VyY2Ugc291cmNlLCBGdW5jdGlvbjxFeGNlcHRpb25Pcjx0eXBlbmFt
ZSBJRExUeXBlOjpQYXJhbWV0ZXJUeXBlPigpPiYmIHJlc3VsdENhbGxiYWNrKQorICAgIHsKKyAg
ICAgICAgcXVldWVUYXNrS2VlcGluZ1NlbGZBbGl2ZShzb3VyY2UsIFt0aGlzLCByZXN1bHRDYWxs
YmFjayA9IFdURk1vdmUocmVzdWx0Q2FsbGJhY2spXSB7CisgICAgICAgICAgICBzZXR0bGU8SURM
VHlwZT4ocmVzdWx0Q2FsbGJhY2soKSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIHZvaWQg
cXVldWVUYXNrVG9TZXR0bGVXaXRoUmVzdWx0Q2FsbGJhY2soVGFza1NvdXJjZSBzb3VyY2UsIEZ1
bmN0aW9uPEV4Y2VwdGlvbk9yPHZvaWQ+KCk+JiYgcmVzdWx0Q2FsbGJhY2spCisgICAgeworICAg
ICAgICBxdWV1ZVRhc2tLZWVwaW5nU2VsZkFsaXZlKHNvdXJjZSwgW3RoaXMsIHJlc3VsdENhbGxi
YWNrID0gV1RGTW92ZShyZXN1bHRDYWxsYmFjayldIHsKKyAgICAgICAgICAgIHNldHRsZShyZXN1
bHRDYWxsYmFjaygpKTsKKyAgICAgICAgfSk7CisgICAgfQorCiAgICAgSlNDOjpKU1ZhbHVlIHBy
b21pc2UoKSBjb25zdDsKIAogICAgIHZvaWQgd2hlblNldHRsZWQoRnVuY3Rpb248dm9pZCgpPiYm
KTsKQEAgLTE2Miw2ICsxOTksNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZXNvbHZlKEpTQzo6
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSByZXNvbHV0
aW9uKSB7IGNhbGxGdW5jdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBSZXNvbHZlTW9kZTo6UmVz
b2x2ZSwgcmVzb2x1dGlvbik7IH0KICAgICB2b2lkIHJlamVjdChKU0M6OkpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcmVzb2x1dGlvbikgeyBjYWxsRnVu
Y3Rpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgUmVzb2x2ZU1vZGU6OlJlamVjdCwgcmVzb2x1dGlv
bik7IH0KKyAgICB2b2lkIHF1ZXVlVGFza0tlZXBpbmdTZWxmQWxpdmUoVGFza1NvdXJjZSwgRnVu
Y3Rpb248dm9pZCgpPiYmKTsKIAogICAgIE1vZGUgbV9tb2RlOwogfTsKQEAgLTIzOSwxMSArMjc3
LDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0dGxlKEV4Y2VwdGlvbk9yPHR5cGVuYW1lIElE
TFR5cGU6OlBhcmFtZXRlclR5cGU+JiYgcmVzdWx0KQogICAgIHsKLSAgICAgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAgcmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhj
ZXB0aW9uKCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHJlc29s
dmUocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKKyAgICAgICAgbV9wcm9taXNlLT5zZXR0
bGU8SURMVHlwZT4oV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9CisKKyAgICB2b2lkIHF1ZXVlVGFz
a1RvU2V0dGxlV2l0aFJlc3VsdENhbGxiYWNrKFRhc2tTb3VyY2Ugc291cmNlLCBGdW5jdGlvbjxF
eGNlcHRpb25Pcjx0eXBlbmFtZSBJRExUeXBlOjpQYXJhbWV0ZXJUeXBlPigpPiYmIHJlc3VsdENh
bGxiYWNrKQorICAgIHsKKyAgICAgICAgbV9wcm9taXNlLT5xdWV1ZVRhc2tUb1NldHRsZVdpdGhS
ZXN1bHRDYWxsYmFjazxJRExUeXBlPihzb3VyY2UsIFdURk1vdmUocmVzdWx0Q2FsbGJhY2spKTsK
ICAgICB9CiB9OwogCkBAIC0yNjEsMTEgKzMwMCwxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNl
dHRsZShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkKICAgICB7Ci0gICAgICAgIGlmIChyZXN1
bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgICAgIHJlamVjdChyZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICByZXNv
bHZlKCk7CisgICAgICAgIG1fcHJvbWlzZS0+c2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAg
fQorCisgICAgdm9pZCBxdWV1ZVRhc2tUb1NldHRsZVdpdGhSZXN1bHRDYWxsYmFjayhUYXNrU291
cmNlIHNvdXJjZSwgRnVuY3Rpb248RXhjZXB0aW9uT3I8dm9pZD4oKT4mJiByZXN1bHRDYWxsYmFj
aykKKyAgICB7CisgICAgICAgIG1fcHJvbWlzZS0+cXVldWVUYXNrVG9TZXR0bGVXaXRoUmVzdWx0
Q2FsbGJhY2soc291cmNlLCBXVEZNb3ZlKHJlc3VsdENhbGxiYWNrKSk7CiAgICAgfQogfTsKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGI0MjEwZDM5YzcyYzQ2OTBjY2JhOTJmMzgzNzZjODhlZGNkNzdiZGIuLmE3MWM0MDNm
MjY5ZGIxMDc5ODU2MWZhYWI3YTU5YTcwMTY2MTJhMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAor
MjAxOS0xMS0wOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgUGF5
bWVudFJlcXVlc3QgLyBQYXltZW50UmVzcG9uc2Ugc2hvdWxkIG5vdCBwcmV2ZW50IGVudGVyaW5n
IHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMzEwMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTY3NDQ0MDk+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY2xvc2VkLXBheW1lbnQtcmVxdWVzdC5o
dHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcGF5bWVudHJl
cXVlc3QvcGFnZS1jYWNoZS1jbG9zZWQtcGF5bWVudC1yZXF1ZXN0Lmh0dHBzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jb21wbGV0
ZWQtcGF5bWVudC1yZXNwb25zZS5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jb21wbGV0ZWQtcGF5bWVudC1y
ZXNwb25zZS5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3BheW1lbnRy
ZXF1ZXN0L3BhZ2UtY2FjaGUtY3JlYXRlZC1wYXltZW50LXJlcXVlc3QuaHR0cHMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2Fj
aGUtY3JlYXRlZC1wYXltZW50LXJlcXVlc3QuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNyZWF0ZWQtcGF5bWVudC1yZXNw
b25zZS5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcGF5
bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jcmVhdGVkLXBheW1lbnQtcmVzcG9uc2UuaHR0cHMuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hl
LWludGVyYWN0aXZlLXBheW1lbnQtcmVxdWVzdC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1pbnRlcmFjdGl2
ZS1wYXltZW50LXJlcXVlc3QuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLXJldHJpZWQtcGF5bWVudC1yZXNwb25zZS5odHRw
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVl
c3QvcGFnZS1jYWNoZS1yZXRyaWVkLXBheW1lbnQtcmVzcG9uc2UuaHR0cHMuaHRtbDogQWRkZWQu
CisgICAgICAgICogcmVzb3VyY2VzL2pzLXRlc3QuanM6CisgICAgICAgIChzaG91bGRSZWplY3Qp
OgorICAgICAgICAoc2hvdWxkUmVqZWN0V2l0aEVycm9yTmFtZSk6CisKIDIwMTktMTEtMDUgIE9y
aW9sIEJydWZhdSAgPG9icnVmYXVAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWxpc3RzXSBJ
bXBsZW1lbnQgbGlzdC1zdHlsZS10eXBlOiA8c3RyaW5nPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNsb3NlZC1wYXltZW50LXJl
cXVlc3QuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50
cmVxdWVzdC9wYWdlLWNhY2hlLWNsb3NlZC1wYXltZW50LXJlcXVlc3QuaHR0cHMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ2YjA1NWMzNmYxYjUwZjFiYWNiOGQ4MjI2ZjE5NDQ5NmY3NWMwYzAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0
L3BhZ2UtY2FjaGUtY2xvc2VkLXBheW1lbnQtcmVxdWVzdC5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNyBAQAorVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBhIFBheW1lbnRSZXF1ZXN0IGlu
IHRoZSBDbG9zZWQgc3RhdGUgZ29lcyBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitDcmVhdGluZyBhIFBheW1lbnRSZXF1ZXN0IGlu
IHRoZSBDbG9zZWQgc3RhdGUuCitQQVNTIHJlc3BvbnNlUHJvbWlzZSByZWplY3RlZCBwcm9taXNl
ICB3aXRoIEFib3J0RXJyb3I6IFRoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQuLgorcGFnZXNob3cg
LSBub3QgZnJvbSBjYWNoZQorcGFnZWhpZGUgLSBlbnRlcmluZyBjYWNoZQorcGFnZXNob3cgLSBm
cm9tIGNhY2hlCitQQVNTIFBhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUg
YmFjay9mb3J3YXJkIGNhY2hlCitUZXN0aW5nIHRoYXQgUGF5bWVudFJlcXVlc3QgcmVtYWlucyBp
biB0aGUgQ2xvc2VkIHN0YXRlLgorUEFTUyByZXF1ZXN0LnNob3coKSByZWplY3RlZCBwcm9taXNl
ICB3aXRoIEludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3Rh
dGUuLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1j
YWNoZS1jbG9zZWQtcGF5bWVudC1yZXF1ZXN0Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY2xvc2VkLXBheW1lbnQtcmVxdWVzdC5o
dHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhNjFlYTdjNTE1MGQzY2Y0ODIyZjcyNTJiY2RjMTUwMjcz
ZTE3N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRy
ZXF1ZXN0L3BhZ2UtY2FjaGUtY2xvc2VkLXBheW1lbnQtcmVxdWVzdC5odHRwcy5odG1sCkBAIC0w
LDAgKzEsNTMgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRD
YWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0nL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMnPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Jy9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMnPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Jy9yZXNvdXJjZXMvcGF5bWVudC1yZXF1ZXN0LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbignVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBhIFBheW1lbnRSZXF1ZXN0IGluIHRo
ZSBDbG9zZWQgc3RhdGUgZ29lcyBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuJyk7Cit3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdl
c2hvdycsIGFzeW5jIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWcoJ3BhZ2VzaG93IC0gJyAr
IChldmVudC5wZXJzaXN0ZWQgPyAnJyA6ICdub3QgJykgKyAnZnJvbSBjYWNoZScpOworCisgICAg
aWYgKCFldmVudC5wZXJzaXN0ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIHRlc3RQYXNzZWQo
J1BhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNh
Y2hlJyk7CisKKyAgICBVSUhlbHBlci53aXRoVXNlckdlc3R1cmUoYXN5bmMgZnVuY3Rpb24oKSB7
CisgICAgICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgUGF5bWVudFJlcXVlc3QgcmVtYWlucyBpbiB0
aGUgQ2xvc2VkIHN0YXRlLicpOworICAgICAgICBhd2FpdCBzaG91bGRSZWplY3RXaXRoRXJyb3JO
YW1lKCdyZXF1ZXN0LnNob3coKScsICdJbnZhbGlkU3RhdGVFcnJvcicpOworCisgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgIH0pOworfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigncGFnZWhpZGUnLCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVnKCdwYWdlaGlkZSAt
ICcgKyAoZXZlbnQucGVyc2lzdGVkID8gJycgOiAnbm90ICcpICsgJ2VudGVyaW5nIGNhY2hlJyk7
CisKKyAgICBpZiAoZXZlbnQucGVyc2lzdGVkKQorICAgICAgICByZXR1cm47CisKKyAgICB0ZXN0
RmFpbGVkKCdQYWdlIGZhaWxlZCB0byBlbnRlciB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLicpOwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbG9hZCcsIGZ1bmN0aW9uKCkgeworICAgIFVJSGVscGVyLndpdGhVc2VyR2VzdHVyZShhc3lu
YyBmdW5jdGlvbigpIHsKKyAgICAgICAgZGVidWcoJ0NyZWF0aW5nIGEgUGF5bWVudFJlcXVlc3Qg
aW4gdGhlIENsb3NlZCBzdGF0ZS4nKTsKKyAgICAgICAgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVx
dWVzdChbdmFsaWRQYXltZW50TWV0aG9kKCldLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpOworICAg
ICAgICByZXNwb25zZVByb21pc2UgPSByZXF1ZXN0LnNob3coKTsKKyAgICAgICAgYXdhaXQgcmVx
dWVzdC5hYm9ydCgpOworICAgICAgICBhd2FpdCBzaG91bGRSZWplY3RXaXRoRXJyb3JOYW1lKCdy
ZXNwb25zZVByb21pc2UnLCAnQWJvcnRFcnJvcicpOworCisgICAgICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvbmF2aWdhdGlv
bi9yZXNvdXJjZXMvcGFnZS1jYWNoZS1oZWxwZXIuaHRtbCc7CisgICAgICAgIH0sIDApOworICAg
IH0pOworfSwgZmFsc2UpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY29tcGxl
dGVkLXBheW1lbnQtcmVzcG9uc2UuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNvbXBsZXRlZC1wYXltZW50LXJlc3Bv
bnNlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjZkYzY2MzY0OWNmY2FjN2U3NWI5
NzdlMGU1NjlhNWNlODc0MTk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNvbXBsZXRlZC1wYXltZW50LXJlc3BvbnNl
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitUZXN0cyB0aGF0IGEgcGFnZSB3
aXRoIGEgUGF5bWVudFJlc3BvbnNlIGluIHRoZSBDb21wbGV0ZWQgc3RhdGUgZ29lcyBpbnRvIHRo
ZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitD
cmVhdGluZyBhIFBheW1lbnRSZXNwb25zZSBpbiB0aGUgQ29tcGxldGVkIHN0YXRlLgorcGFnZXNo
b3cgLSBub3QgZnJvbSBjYWNoZQorcGFnZWhpZGUgLSBlbnRlcmluZyBjYWNoZQorcGFnZXNob3cg
LSBmcm9tIGNhY2hlCitQQVNTIFBhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0
aGUgYmFjay9mb3J3YXJkIGNhY2hlCitUZXN0aW5nIHRoYXQgUGF5bWVudFJlc3BvbnNlIHJlbWFp
bnMgaW4gdGhlIENvbXBsZXRlZCBzdGF0ZS4KK1BBU1MgcmVzcG9uc2UuY29tcGxldGUoKSByZWpl
Y3RlZCBwcm9taXNlICB3aXRoIEludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFu
IGludmFsaWQgc3RhdGUuLgorUEFTUyByZXNwb25zZS5yZXRyeSgpIHJlamVjdGVkIHByb21pc2Ug
IHdpdGggSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0
ZS4uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNh
Y2hlLWNvbXBsZXRlZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY29tcGxldGVkLXBheW1lbnQtcmVz
cG9uc2UuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYWFiZjY4M2JjNWI1Njc2ODg3Yzk5YjY2ZDUz
MjYxMzM0MjJmYjJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
YXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNvbXBsZXRlZC1wYXltZW50LXJlc3BvbnNlLmh0dHBz
Lmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVC
YWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPScvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyc+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0nL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyc+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy9wYXltZW50LXJlcXVlc3QuanMnPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGF0IGEgcGFnZSB3aXRoIGEgUGF5bWVudFJl
c3BvbnNlIGluIHRoZSBDb21wbGV0ZWQgc3RhdGUgZ29lcyBpbnRvIHRoZSBiYWNrL2ZvcndhcmQg
Y2FjaGUuJyk7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3dpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdwYWdlc2hvdycsIGFzeW5jIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWco
J3BhZ2VzaG93IC0gJyArIChldmVudC5wZXJzaXN0ZWQgPyAnJyA6ICdub3QgJykgKyAnZnJvbSBj
YWNoZScpOworCisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHRlc3RQYXNzZWQoJ1BhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUg
YmFjay9mb3J3YXJkIGNhY2hlJyk7CisKKyAgICBkZWJ1ZygnVGVzdGluZyB0aGF0IFBheW1lbnRS
ZXNwb25zZSByZW1haW5zIGluIHRoZSBDb21wbGV0ZWQgc3RhdGUuJyk7CisgICAgYXdhaXQgc2hv
dWxkUmVqZWN0V2l0aEVycm9yTmFtZSgncmVzcG9uc2UuY29tcGxldGUoKScsICdJbnZhbGlkU3Rh
dGVFcnJvcicpOworICAgIGF3YWl0IHNob3VsZFJlamVjdFdpdGhFcnJvck5hbWUoJ3Jlc3BvbnNl
LnJldHJ5KCknLCAnSW52YWxpZFN0YXRlRXJyb3InKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOwor
fSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZWhpZGUnLCBmdW5jdGlv
bihldmVudCkgeworICAgIGRlYnVnKCdwYWdlaGlkZSAtICcgKyAoZXZlbnQucGVyc2lzdGVkID8g
JycgOiAnbm90ICcpICsgJ2VudGVyaW5nIGNhY2hlJyk7CisKKyAgICBpZiAoZXZlbnQucGVyc2lz
dGVkKQorICAgICAgICByZXR1cm47CisKKyAgICB0ZXN0RmFpbGVkKCdQYWdlIGZhaWxlZCB0byBl
bnRlciB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSwg
ZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uKCkgewor
ICAgIFVJSGVscGVyLndpdGhVc2VyR2VzdHVyZShhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAg
ZGVidWcoJ0NyZWF0aW5nIGEgUGF5bWVudFJlc3BvbnNlIGluIHRoZSBDb21wbGV0ZWQgc3RhdGUu
Jyk7CisKKyAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChbdmFsaWRQ
YXltZW50TWV0aG9kKCldLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpOworICAgICAgICBjb25zdCBy
ZXNwb25zZVByb21pc2UgPSByZXF1ZXN0LnNob3coKTsKKyAgICAgICAgaW50ZXJuYWxzLm1vY2tQ
YXltZW50Q29vcmRpbmF0b3IuYWNjZXB0UGF5bWVudCgpOworICAgICAgICByZXNwb25zZSA9IGF3
YWl0IHJlc3BvbnNlUHJvbWlzZTsKKyAgICAgICAgYXdhaXQgcmVzcG9uc2UuY29tcGxldGUoJ3N1
Y2Nlc3MnKTsKKworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
d2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL25hdmlnYXRpb24vcmVzb3VyY2VzL3BhZ2UtY2FjaGUt
aGVscGVyLmh0bWwnOworICAgICAgICB9LCAwKTsKKyAgICB9KTsKK30sIGZhbHNlKTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNyZWF0ZWQtcGF5bWVudC1yZXF1ZXN0Lmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFn
ZS1jYWNoZS1jcmVhdGVkLXBheW1lbnQtcmVxdWVzdC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDEzOWJiMjA1MGQ4NzUxMTVjMTY3YWYyNmNkNGVmZTc0MmIyZDMwZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNo
ZS1jcmVhdGVkLXBheW1lbnQtcmVxdWVzdC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NiBAQAorVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBhIFBheW1lbnRSZXF1ZXN0IGluIHRoZSBDcmVh
dGVkIHN0YXRlIGdvZXMgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworQ3JlYXRpbmcgYSBQYXltZW50UmVxdWVzdCBpbiB0aGUgQ3Jl
YXRlZCBzdGF0ZS4KK3BhZ2VzaG93IC0gbm90IGZyb20gY2FjaGUKK3BhZ2VoaWRlIC0gZW50ZXJp
bmcgY2FjaGUKK3BhZ2VzaG93IC0gZnJvbSBjYWNoZQorUEFTUyBQYWdlIGRpZCBlbnRlciBhbmQg
d2FzIHJlc3RvcmVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorVGVzdGluZyB0aGF0IFBh
eW1lbnRSZXF1ZXN0IHJlbWFpbnMgaW4gdGhlIENyZWF0ZWQgc3RhdGUuCitQQVNTIHJlc3BvbnNl
UHJvbWlzZSByZWplY3RlZCBwcm9taXNlICB3aXRoIEFib3J0RXJyb3I6IFRoZSBvcGVyYXRpb24g
d2FzIGFib3J0ZWQuLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVl
c3QvcGFnZS1jYWNoZS1jcmVhdGVkLXBheW1lbnQtcmVxdWVzdC5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNyZWF0ZWQtcGF5bWVu
dC1yZXF1ZXN0Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTNmZDM5NWIwNDgzOWVmMmIzZjFiMzhh
M2ZlMzc4M2Q3ZjYwMWUxMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jcmVhdGVkLXBheW1lbnQtcmVxdWVzdC5odHRw
cy5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
QmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0nL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMnPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Jy9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMnPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvcGF5bWVudC1yZXF1ZXN0LmpzJz48L3NjcmlwdD4K
KzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBhIFBheW1lbnRS
ZXF1ZXN0IGluIHRoZSBDcmVhdGVkIHN0YXRlIGdvZXMgaW50byB0aGUgYmFjay9mb3J3YXJkIGNh
Y2hlLicpOword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCit3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcigncGFnZXNob3cnLCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVnKCdwYWdlc2hv
dyAtICcgKyAoZXZlbnQucGVyc2lzdGVkID8gJycgOiAnbm90ICcpICsgJ2Zyb20gY2FjaGUnKTsK
KworICAgIGlmICghZXZlbnQucGVyc2lzdGVkKQorICAgICAgICByZXR1cm47CisKKyAgICB0ZXN0
UGFzc2VkKCdQYWdlIGRpZCBlbnRlciBhbmQgd2FzIHJlc3RvcmVkIGZyb20gdGhlIGJhY2svZm9y
d2FyZCBjYWNoZScpOworCisgICAgVUlIZWxwZXIud2l0aFVzZXJHZXN0dXJlKGFzeW5jIGZ1bmN0
aW9uKCkgeworICAgICAgICBkZWJ1ZygnVGVzdGluZyB0aGF0IFBheW1lbnRSZXF1ZXN0IHJlbWFp
bnMgaW4gdGhlIENyZWF0ZWQgc3RhdGUuJykKKyAgICAgICAgcmVzcG9uc2VQcm9taXNlID0gcmVx
dWVzdC5zaG93KCk7CisgICAgICAgIGF3YWl0IHJlcXVlc3QuYWJvcnQoKTsKKyAgICAgICAgYXdh
aXQgc2hvdWxkUmVqZWN0V2l0aEVycm9yTmFtZSgncmVzcG9uc2VQcm9taXNlJywgJ0Fib3J0RXJy
b3InKTsKKworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKK30sIGZhbHNlKTsKKwor
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VoaWRlJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAg
ICBkZWJ1ZygncGFnZWhpZGUgLSAnICsgKGV2ZW50LnBlcnNpc3RlZCA/ICcnIDogJ25vdCAnKSAr
ICdlbnRlcmluZyBjYWNoZScpOworCisgICAgaWYgKGV2ZW50LnBlcnNpc3RlZCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgdGVzdEZhaWxlZCgnUGFnZSBmYWlsZWQgdG8gZW50ZXIgdGhlIGJhY2sv
Zm9yd2FyZCBjYWNoZS4nKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIGZhbHNlKTsKKword2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpIHsKKyAgICBkZWJ1ZygnQ3Jl
YXRpbmcgYSBQYXltZW50UmVxdWVzdCBpbiB0aGUgQ3JlYXRlZCBzdGF0ZS4nKTsKKworICAgIHJl
cXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoW3ZhbGlkUGF5bWVudE1ldGhvZCgpXSwgdmFsaWRQ
YXltZW50RGV0YWlscygpKTsKKworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAg
IHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9wYWdlLWNhY2hl
LWhlbHBlci5odG1sJzsKKyAgICB9LCAwKTsKK30sIGZhbHNlKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVx
dWVzdC9wYWdlLWNhY2hlLWNyZWF0ZWQtcGF5bWVudC1yZXNwb25zZS5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY3Jl
YXRlZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmM5
MmUxNDE5MzlhYWM0M2YzZWE3M2EwN2I0M2IwY2M0OTI4NTY4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNyZWF0ZWQt
cGF5bWVudC1yZXNwb25zZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVz
dHMgdGhhdCBhIHBhZ2Ugd2l0aCBhIFBheW1lbnRSZXNwb25zZSBpbiB0aGUgQ3JlYXRlZCBzdGF0
ZSBnb2VzIGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK0NyZWF0aW5nIGEgUGF5bWVudFJlc3BvbnNlIGluIHRoZSBDcmVhdGVkIHN0
YXRlLgorcGFnZXNob3cgLSBub3QgZnJvbSBjYWNoZQorcGFnZWhpZGUgLSBlbnRlcmluZyBjYWNo
ZQorcGFnZXNob3cgLSBmcm9tIGNhY2hlCitQQVNTIFBhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVz
dG9yZWQgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCitUZXN0aW5nIHRoYXQgUGF5bWVudFJl
c3BvbnNlIGlzIG5vdyBpbiB0aGUgQ2xvc2VkIHN0YXRlLgorUEFTUyByZXNwb25zZS5jb21wbGV0
ZSgpIHJlamVjdGVkIHByb21pc2UgIHdpdGggQWJvcnRFcnJvcjogVGhlIG9wZXJhdGlvbiB3YXMg
YWJvcnRlZC4uCitQQVNTIHJlc3BvbnNlLnJldHJ5KCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBB
Ym9ydEVycm9yOiBUaGUgb3BlcmF0aW9uIHdhcyBhYm9ydGVkLi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY3JlYXRlZC1wYXltZW50LXJl
c3BvbnNlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0
L3BhZ2UtY2FjaGUtY3JlYXRlZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYWI1OTJlZTFjYjhhMDZlYThkYzhiY2Y2OWFlNjFkOWYwMjM1YTIwMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1j
cmVhdGVkLXBheW1lbnQtcmVzcG9uc2UuaHR0cHMuaHRtbApAQCAtMCwwICsxLDUzIEBACis8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Jy9qcy10ZXN0LXJl
c291cmNlcy9qcy10ZXN0LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvanMtdGVzdC1yZXNv
dXJjZXMvdWktaGVscGVyLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Bh
eW1lbnQtcmVxdWVzdC5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3Rz
IHRoYXQgYSBwYWdlIHdpdGggYSBQYXltZW50UmVzcG9uc2UgaW4gdGhlIENyZWF0ZWQgc3RhdGUg
Z29lcyBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuJyk7Cit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlc2hvdycsIGFzeW5jIGZ1
bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWcoJ3BhZ2VzaG93IC0gJyArIChldmVudC5wZXJzaXN0
ZWQgPyAnJyA6ICdub3QgJykgKyAnZnJvbSBjYWNoZScpOworCisgICAgaWYgKCFldmVudC5wZXJz
aXN0ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIHRlc3RQYXNzZWQoJ1BhZ2UgZGlkIGVudGVy
IGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlJyk7CisKKyAgICBk
ZWJ1ZygnVGVzdGluZyB0aGF0IFBheW1lbnRSZXNwb25zZSBpcyBub3cgaW4gdGhlIENsb3NlZCBz
dGF0ZS4nKTsKKyAgICBhd2FpdCBzaG91bGRSZWplY3RXaXRoRXJyb3JOYW1lKCdyZXNwb25zZS5j
b21wbGV0ZSgpJywgJ0Fib3J0RXJyb3InKTsKKyAgICBhd2FpdCBzaG91bGRSZWplY3RXaXRoRXJy
b3JOYW1lKCdyZXNwb25zZS5yZXRyeSgpJywgJ0Fib3J0RXJyb3InKTsKKworICAgIGZpbmlzaEpT
VGVzdCgpOworfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZWhpZGUn
LCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVnKCdwYWdlaGlkZSAtICcgKyAoZXZlbnQucGVy
c2lzdGVkID8gJycgOiAnbm90ICcpICsgJ2VudGVyaW5nIGNhY2hlJyk7CisKKyAgICBpZiAoZXZl
bnQucGVyc2lzdGVkKQorICAgICAgICByZXR1cm47CisKKyAgICB0ZXN0RmFpbGVkKCdQYWdlIGZh
aWxlZCB0byBlbnRlciB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLicpOworICAgIGZpbmlzaEpTVGVz
dCgpOworfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0
aW9uKCkgeworICAgIFVJSGVscGVyLndpdGhVc2VyR2VzdHVyZShhc3luYyBmdW5jdGlvbigpIHsK
KyAgICAgICAgZGVidWcoJ0NyZWF0aW5nIGEgUGF5bWVudFJlc3BvbnNlIGluIHRoZSBDcmVhdGVk
IHN0YXRlLicpOworCisgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3Qo
W3ZhbGlkUGF5bWVudE1ldGhvZCgpXSwgdmFsaWRQYXltZW50RGV0YWlscygpKTsKKyAgICAgICAg
Y29uc3QgcmVzcG9uc2VQcm9taXNlID0gcmVxdWVzdC5zaG93KCk7CisgICAgICAgIGludGVybmFs
cy5tb2NrUGF5bWVudENvb3JkaW5hdG9yLmFjY2VwdFBheW1lbnQoKTsKKyAgICAgICAgcmVzcG9u
c2UgPSBhd2FpdCByZXNwb25zZVByb21pc2U7CisKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9uYXZpZ2F0aW9uL3Jl
c291cmNlcy9wYWdlLWNhY2hlLWhlbHBlci5odG1sJzsKKyAgICAgICAgfSwgMCk7CisgICAgfSk7
Cit9LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1pbnRlcmFjdGl2
ZS1wYXltZW50LXJlcXVlc3QuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWludGVyYWN0aXZlLXBheW1lbnQtcmVxdWVz
dC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODVjMmYzMDBmMGI4YjBiZjhmOTlkZDgz
MGEyMzIzYjNmMjMwY2FmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1pbnRlcmFjdGl2ZS1wYXltZW50LXJlcXVlc3Qu
aHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3RzIHRoYXQgYSBwYWdlIHdp
dGggYSBQYXltZW50UmVxdWVzdCBpbiB0aGUgSW50ZXJhY3RpdmUgc3RhdGUgZ29lcyBpbnRvIHRo
ZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitD
cmVhdGluZyBhIFBheW1lbnRSZXF1ZXN0IGluIHRoZSBJbnRlcmFjdGl2ZSBzdGF0ZS4KK3BhZ2Vz
aG93IC0gbm90IGZyb20gY2FjaGUKK3BhZ2VoaWRlIC0gZW50ZXJpbmcgY2FjaGUKK3BhZ2VzaG93
IC0gZnJvbSBjYWNoZQorUEFTUyBQYWdlIGRpZCBlbnRlciBhbmQgd2FzIHJlc3RvcmVkIGZyb20g
dGhlIGJhY2svZm9yd2FyZCBjYWNoZQorVGVzdGluZyB0aGF0IHRoZSBwcm9taXNlIHJldHVybmVk
IGJ5IHNob3coKSB3YXMgcmVqZWN0ZWQgd2l0aCAiQWJvcnRFcnJvciIuCitQQVNTIHJlc3BvbnNl
UHJvbWlzZSByZWplY3RlZCBwcm9taXNlICB3aXRoIEFib3J0RXJyb3I6IFRoZSBvcGVyYXRpb24g
d2FzIGFib3J0ZWQuLgorVGVzdGluZyB0aGF0IFBheW1lbnRSZXF1ZXN0IGlzIG5vdyBpbiB0aGUg
Q2xvc2VkIHN0YXRlLgorUEFTUyByZXF1ZXN0LmFib3J0KCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0
aCBJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLi4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUt
aW50ZXJhY3RpdmUtcGF5bWVudC1yZXF1ZXN0Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtaW50ZXJhY3RpdmUtcGF5bWVudC1yZXF1
ZXN0Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWY1Y2NkZjQwMDFkOGQ1MDM4YmYwYjlmYjNjMGQ3
NzQ2NWRiY2I4YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5
bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1pbnRlcmFjdGl2ZS1wYXltZW50LXJlcXVlc3QuaHR0cHMu
aHRtbApAQCAtMCwwICsxLDUyIEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJh
Y2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Jy9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzJz48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPScvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzJz48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3BheW1lbnQtcmVxdWVzdC5qcyc+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgYSBwYWdlIHdpdGggYSBQYXltZW50UmVx
dWVzdCBpbiB0aGUgSW50ZXJhY3RpdmUgc3RhdGUgZ29lcyBpbnRvIHRoZSBiYWNrL2ZvcndhcmQg
Y2FjaGUuJyk7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3dpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdwYWdlc2hvdycsIGFzeW5jIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWco
J3BhZ2VzaG93IC0gJyArIChldmVudC5wZXJzaXN0ZWQgPyAnJyA6ICdub3QgJykgKyAnZnJvbSBj
YWNoZScpOworCisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHRlc3RQYXNzZWQoJ1BhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUg
YmFjay9mb3J3YXJkIGNhY2hlJyk7CisKKyAgICBkZWJ1ZygnVGVzdGluZyB0aGF0IHRoZSBwcm9t
aXNlIHJldHVybmVkIGJ5IHNob3coKSB3YXMgcmVqZWN0ZWQgd2l0aCAiQWJvcnRFcnJvciIuJyk7
CisgICAgYXdhaXQgc2hvdWxkUmVqZWN0V2l0aEVycm9yTmFtZSgncmVzcG9uc2VQcm9taXNlJywg
J0Fib3J0RXJyb3InKTsKKworICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgUGF5bWVudFJlcXVlc3Qg
aXMgbm93IGluIHRoZSBDbG9zZWQgc3RhdGUuJyk7CisgICAgYXdhaXQgc2hvdWxkUmVqZWN0V2l0
aEVycm9yTmFtZSgncmVxdWVzdC5hYm9ydCgpJywgJ0ludmFsaWRTdGF0ZUVycm9yJyk7CisKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30sIGZhbHNlKTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J3BhZ2VoaWRlJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1ZygncGFnZWhpZGUgLSAnICsg
KGV2ZW50LnBlcnNpc3RlZCA/ICcnIDogJ25vdCAnKSArICdlbnRlcmluZyBjYWNoZScpOworCisg
ICAgaWYgKGV2ZW50LnBlcnNpc3RlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgdGVzdEZhaWxl
ZCgnUGFnZSBmYWlsZWQgdG8gZW50ZXIgdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4nKTsKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKK30sIGZhbHNlKTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xv
YWQnLCBmdW5jdGlvbigpIHsKKyAgICBVSUhlbHBlci53aXRoVXNlckdlc3R1cmUoYXN5bmMgZnVu
Y3Rpb24oKSB7CisgICAgICAgIGRlYnVnKCdDcmVhdGluZyBhIFBheW1lbnRSZXF1ZXN0IGluIHRo
ZSBJbnRlcmFjdGl2ZSBzdGF0ZS4nKTsKKyAgICAgICAgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVx
dWVzdChbdmFsaWRQYXltZW50TWV0aG9kKCldLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpOworICAg
ICAgICByZXNwb25zZVByb21pc2UgPSByZXF1ZXN0LnNob3coKTsKKyAgICB9KTsKKworICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9u
YXZpZ2F0aW9uL3Jlc291cmNlcy9wYWdlLWNhY2hlLWhlbHBlci5odG1sJzsKKyAgICB9LCAwKTsK
K30sIGZhbHNlKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLXJldHJpZWQtcGF5
bWVudC1yZXNwb25zZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtcmV0cmllZC1wYXltZW50LXJlc3BvbnNlLmh0dHBz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjY1ZTM1M2M0NTk1ODIxYWQ0YjUyZDUzOTVmM2Ey
NWQ0YTdkYTY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXlt
ZW50cmVxdWVzdC9wYWdlLWNhY2hlLXJldHJpZWQtcGF5bWVudC1yZXNwb25zZS5odHRwcy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBhIFBheW1l
bnRSZXNwb25zZSBpbiB0aGUgQ29tcGxldGVkIHN0YXRlIGdvZXMgaW50byB0aGUgYmFjay9mb3J3
YXJkIGNhY2hlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworQ3JlYXRpbmcgYSBQ
YXltZW50UmVzcG9uc2UgaW4gdGhlIENyZWF0ZWQgc3RhdGUgd2l0aCBhIHJldHJ5IHByb21pc2Uu
CitwYWdlc2hvdyAtIG5vdCBmcm9tIGNhY2hlCitwYWdlaGlkZSAtIGVudGVyaW5nIGNhY2hlCitw
YWdlc2hvdyAtIGZyb20gY2FjaGUKK1BBU1MgUGFnZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0b3Jl
ZCBmcm9tIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKK1Rlc3RpbmcgdGhhdCB0aGUgcHJvbWlzZSBy
ZXR1cm5lZCBieSByZXRyeSgpIHdhcyByZWplY3RlZCB3aXRoICJBYm9ydEVycm9yIi4KK1BBU1Mg
cmV0cnlQcm9taXNlIHJlamVjdGVkIHByb21pc2UgIHdpdGggQWJvcnRFcnJvcjogVGhlIG9wZXJh
dGlvbiB3YXMgYWJvcnRlZC4uCitUZXN0aW5nIHRoYXQgUGF5bWVudFJlc3BvbnNlIGlzIG5vdyBp
biB0aGUgQ2xvc2VkIHN0YXRlLgorUEFTUyByZXNwb25zZS5jb21wbGV0ZSgpIHJlamVjdGVkIHBy
b21pc2UgIHdpdGggQWJvcnRFcnJvcjogVGhlIG9wZXJhdGlvbiB3YXMgYWJvcnRlZC4uCitQQVNT
IHJlc3BvbnNlLnJldHJ5KCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBBYm9ydEVycm9yOiBUaGUg
b3BlcmF0aW9uIHdhcyBhYm9ydGVkLi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Bh
eW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtcmV0cmllZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtcmV0
cmllZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNkNmJlNzU4MTlk
YTA5OWE1NzJiNWI2M2IzNTQxYjRmOGRlYWU1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1yZXRyaWVkLXBheW1lbnQt
cmVzcG9uc2UuaHR0cHMuaHRtbApAQCAtMCwwICsxLDU3IEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Jy9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVy
LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3BheW1lbnQtcmVxdWVzdC5q
cyc+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgYSBwYWdlIHdp
dGggYSBQYXltZW50UmVzcG9uc2UgaW4gdGhlIENvbXBsZXRlZCBzdGF0ZSBnb2VzIGludG8gdGhl
IGJhY2svZm9yd2FyZCBjYWNoZS4nKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VzaG93JywgYXN5bmMgZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICBkZWJ1ZygncGFnZXNob3cgLSAnICsgKGV2ZW50LnBlcnNpc3RlZCA/ICcnIDogJ25v
dCAnKSArICdmcm9tIGNhY2hlJyk7CisKKyAgICBpZiAoIWV2ZW50LnBlcnNpc3RlZCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgdGVzdFBhc3NlZCgnUGFnZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0
b3JlZCBmcm9tIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUnKTsKKworICAgIGRlYnVnKCdUZXN0aW5n
IHRoYXQgdGhlIHByb21pc2UgcmV0dXJuZWQgYnkgcmV0cnkoKSB3YXMgcmVqZWN0ZWQgd2l0aCAi
QWJvcnRFcnJvciIuJyk7CisgICAgYXdhaXQgc2hvdWxkUmVqZWN0V2l0aEVycm9yTmFtZSgncmV0
cnlQcm9taXNlJywgJ0Fib3J0RXJyb3InKTsKKworICAgIGRlYnVnKCdUZXN0aW5nIHRoYXQgUGF5
bWVudFJlc3BvbnNlIGlzIG5vdyBpbiB0aGUgQ2xvc2VkIHN0YXRlLicpOworICAgIGF3YWl0IHNo
b3VsZFJlamVjdFdpdGhFcnJvck5hbWUoJ3Jlc3BvbnNlLmNvbXBsZXRlKCknLCAnQWJvcnRFcnJv
cicpOworICAgIGF3YWl0IHNob3VsZFJlamVjdFdpdGhFcnJvck5hbWUoJ3Jlc3BvbnNlLnJldHJ5
KCknLCAnQWJvcnRFcnJvcicpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmYWxzZSk7CisK
K3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlaGlkZScsIGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgZGVidWcoJ3BhZ2VoaWRlIC0gJyArIChldmVudC5wZXJzaXN0ZWQgPyAnJyA6ICdub3QgJykg
KyAnZW50ZXJpbmcgY2FjaGUnKTsKKworICAgIGlmIChldmVudC5wZXJzaXN0ZWQpCisgICAgICAg
IHJldHVybjsKKworICAgIHRlc3RGYWlsZWQoJ1BhZ2UgZmFpbGVkIHRvIGVudGVyIHRoZSBiYWNr
L2ZvcndhcmQgY2FjaGUuJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmYWxzZSk7CisKK3dp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7CisgICAgVUlIZWxwZXIu
d2l0aFVzZXJHZXN0dXJlKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBkZWJ1ZygnQ3JlYXRp
bmcgYSBQYXltZW50UmVzcG9uc2UgaW4gdGhlIENyZWF0ZWQgc3RhdGUgd2l0aCBhIHJldHJ5IHBy
b21pc2UuJyk7CisKKyAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBQYXltZW50UmVxdWVzdChb
dmFsaWRQYXltZW50TWV0aG9kKCldLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpOworICAgICAgICBj
b25zdCByZXNwb25zZVByb21pc2UgPSByZXF1ZXN0LnNob3coKTsKKyAgICAgICAgaW50ZXJuYWxz
Lm1vY2tQYXltZW50Q29vcmRpbmF0b3IuYWNjZXB0UGF5bWVudCgpOworICAgICAgICByZXNwb25z
ZSA9IGF3YWl0IHJlc3BvbnNlUHJvbWlzZTsKKyAgICAgICAgcmV0cnlQcm9taXNlID0gcmVzcG9u
c2UucmV0cnkoKTsKKworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL25hdmlnYXRpb24vcmVzb3VyY2VzL3BhZ2UtY2Fj
aGUtaGVscGVyLmh0bWwnOworICAgICAgICB9LCAwKTsKKyAgICB9KTsKK30sIGZhbHNlKTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3Vy
Y2VzL2pzLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvanMtdGVzdC5qcwppbmRleCA2
OGE0NTZhODNjNjQ5OWY5NGVmYmI5MjE0ODM4MzJkMzI1YzIxM2NiLi4xYWIyMTU1NDJlN2FjNmVh
MzAwYjZhNGNjYmRiODdhN2ZkYjUyYzU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJj
ZXMvanMtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvanMtdGVzdC5qcwpAQCAt
NzEyLDYgKzcxMiwxMSBAQCBmdW5jdGlvbiBleHBlY3RFcnJvcigpCiB9CiAKIGZ1bmN0aW9uIHNo
b3VsZFJlamVjdChfYSwgX21lc3NhZ2UpCit7CisgICAgcmV0dXJuIHNob3VsZFJlamVjdFdpdGhF
cnJvck5hbWUoX2EsIHVuZGVmaW5lZCwgX21lc3NhZ2UpOworfQorCitmdW5jdGlvbiBzaG91bGRS
ZWplY3RXaXRoRXJyb3JOYW1lKF9hLCBfbmFtZSwgX21lc3NhZ2UpCiB7CiAgICAgdmFyIF9leGNl
cHRpb247CiAgICAgdmFyIF9hdjsKQEAgLTcyNSw3ICs3MzAsMTEgQEAgZnVuY3Rpb24gc2hvdWxk
UmVqZWN0KF9hLCBfbWVzc2FnZSkKICAgICByZXR1cm4gX2F2LnRoZW4oZnVuY3Rpb24ocmVzdWx0
KSB7CiAgICAgICAgIHRlc3RGYWlsZWQoKF9tZXNzYWdlID8gX21lc3NhZ2UgOiBfYSkgKyAiIHNo
b3VsZCByZWplY3QgcHJvbWlzZS4gUmVzb2x2ZWQgd2l0aCAiICsgcmVzdWx0ICsgIi4iKTsKICAg
ICB9LCBmdW5jdGlvbihlcnJvcikgewotICAgICAgICB0ZXN0UGFzc2VkKChfbWVzc2FnZSA/IF9t
ZXNzYWdlIDogX2EpICsgIiByZWplY3RlZCBwcm9taXNlICB3aXRoICIgKyBlcnJvciArICIuIik7
CisgICAgICAgIGlmIChfbmFtZSA9PT0gdW5kZWZpbmVkIHx8IGVycm9yWyduYW1lJ10gPT09IF9u
YW1lKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoZSBleHRyYSBzcGFjZSBhbmQg
Jy4nIChET01FeGNlcHRpb24gZGVzY3JpcHRpb25zIGFscmVhZHkgZW5kIHdpdGggcGVyaW9kcykg
dGhlbiByZWJhc2UgdGVzdHMuCisgICAgICAgICAgICB0ZXN0UGFzc2VkKChfbWVzc2FnZSA/IF9t
ZXNzYWdlIDogX2EpICsgIiByZWplY3RlZCBwcm9taXNlICB3aXRoICIgKyBlcnJvciArICIuIik7
CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgoX21lc3NhZ2UgPyBfbWVz
c2FnZSA6IF9hKSArICIgc2hvdWxkIHJlamVjdCBwcm9taXNlIHdpdGggIiArIF9uYW1lICsgIi4g
UmVqZWN0ZWQgd2l0aCAiICsgZXJyb3JbJ25hbWUnXSArICIgaW5zdGVhZC4iKTsKICAgICB9KTsK
IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>383270</attachid>
            <date>2019-11-11 08:00:53 -0800</date>
            <delta_ts>2019-11-11 10:44:31 -0800</delta_ts>
            <desc>Crash log</desc>
            <filename>page-cache-interactive-payment-request.https-crash-log.txt</filename>
            <type>text/plain</type>
            <size>33844</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">UHJvY2VzczogICAgICAgICAgICAgICBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2ZWxv
cG1lbnQgWzgwNDMxXQpQYXRoOiAgICAgICAgICAgICAgICAgIC9Wb2x1bWVzL1ZPTFVNRS8qL2Nv
bS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudApJZGVudGlmaWVyOiAgICAgICAg
ICAgIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudApWZXJzaW9uOiAgICAg
ICAgICAgICAgIDYwOSsgKDYwOS4xLjExKykKQ29kZSBUeXBlOiAgICAgICAgICAgICBYODYtNjQg
KE5hdGl2ZSkKUGFyZW50IFByb2Nlc3M6ICAgICAgICBsYXVuY2hkX3NpbS5kZXZlbG9wbWVudCBb
MzYxNTddClJlc3BvbnNpYmxlOiAgICAgICAgICAgU2ltdWxhdG9yVHJhbXBvbGluZSBbNTkxXQpV
c2VyIElEOiAgICAgICAgICAgICAgIDUwMQoKRGF0ZS9UaW1lOiAgICAgICAgICAgICAyMDE5LTEx
LTExIDA3OjQyOjM4Ljg1NCAtMDgwMApPUyBWZXJzaW9uOiAgICAgICAgICAgIE1hYyBPUyBYIDEw
LjE1LjEgKDE5QjgyKQpSZXBvcnQgVmVyc2lvbjogICAgICAgIDEyCkJyaWRnZSBPUyBWZXJzaW9u
OiAgICAgNC4yICgxN1AyNTI5KQpBbm9ueW1vdXMgVVVJRDogICAgICAgIDFGRUJBMDRDLTY5MjMt
NjgwNC04NEYyLTVFNDcxNjEyMkRGOAoKClRpbWUgQXdha2UgU2luY2UgQm9vdDogMTAwMDAwMCBz
ZWNvbmRzCgpTeXN0ZW0gSW50ZWdyaXR5IFByb3RlY3Rpb246IGVuYWJsZWQKCkNyYXNoZWQgVGhy
ZWFkOiAgICAgICAgMCAgRGlzcGF0Y2ggcXVldWU6IGNvbS5hcHBsZS5tYWluLXRocmVhZAoKRXhj
ZXB0aW9uIFR5cGU6ICAgICAgICBFWENfQkFEX0FDQ0VTUyAoU0lHU0VHVikKRXhjZXB0aW9uIENv
ZGVzOiAgICAgICBLRVJOX0lOVkFMSURfQUREUkVTUyBhdCAweDAwMDAwMDAwYmJhZGJlZWYKRXhj
ZXB0aW9uIE5vdGU6ICAgICAgICBFWENfQ09SUFNFX05PVElGWQoKVGVybWluYXRpb24gU2lnbmFs
OiAgICBTZWdtZW50YXRpb24gZmF1bHQ6IDExClRlcm1pbmF0aW9uIFJlYXNvbjogICAgTmFtZXNw
YWNlIFNJR05BTCwgQ29kZSAweGIKVGVybWluYXRpbmcgUHJvY2VzczogICBleGMgaGFuZGxlciBb
ODA0MzFdCgpWTSBSZWdpb25zIE5lYXIgMHhiYmFkYmVlZjoKLS0+IAogICAgX19URVhUICAgICAg
ICAgICAgICAgICAwMDAwMDAwMTA2MzU5MDAwLTAwMDAwMDAxMDYzNWEwMDAgWyAgICA0S10gci14
L3IteCBTTT1DT1cgIC9Wb2x1bWVzL1ZPTFVNRS8qLyouRGV2ZWxvcG1lbnQKCkFwcGxpY2F0aW9u
IFNwZWNpZmljIEluZm9ybWF0aW9uOgpDUkFTSElORyBURVNUOiAvcGF5bWVudHJlcXVlc3QvcGFn
ZS1jYWNoZS1pbnRlcmFjdGl2ZS1wYXltZW50LXJlcXVlc3QuaHR0cHMuaHRtbAoKVGhyZWFkIDAg
Q3Jhc2hlZDo6IERpc3BhdGNoIHF1ZXVlOiBjb20uYXBwbGUubWFpbi10aHJlYWQKMCAgIEphdmFT
Y3JpcHRDb3JlICAgICAgICAgICAgICAgIAkweDAwMDAwMDAyNDBhNjZkOWUgV1RGQ3Jhc2ggKyAx
NCAoQXNzZXJ0aW9ucy5jcHA6MzA1KQoxICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAg
CTB4MDAwMDAwMDI0MWMzMzA3YiBXVEZDcmFzaFdpdGhJbmZvKGludCwgY2hhciBjb25zdCosIGNo
YXIgY29uc3QqLCBpbnQpICsgMjcKMiAgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAgICAgIAkw
eDAwMDAwMDAyNDFkYjhjY2YgSlNDOjpzYW5pdGl6ZVN0YWNrRm9yVk0oSlNDOjpWTSYpICsgMTQz
IChWTS5jcHA6MTE1NykKMyAgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAgICAgIAkweDAwMDAw
MDAyNDE1ZDJlMDIgSlNDOjpIZWFwOjpydW5DdXJyZW50UGhhc2UoSlNDOjpHQ0NvbmR1Y3Rvciwg
SlNDOjpDdXJyZW50VGhyZWFkU3RhdGUqKSArIDk4CjQgICBKYXZhU2NyaXB0Q29yZSAgICAgICAg
ICAgICAgICAJMHgwMDAwMDAwMjQxNWQ3ZDRmIEpTQzo6SGVhcDo6Y29sbGVjdEluTXV0YXRvclRo
cmVhZCgpICsgNDcgKEhlYXAuY3BwOjE4MzgpCjUgICBKYXZhU2NyaXB0Q29yZSAgICAgICAgICAg
ICAgICAJMHgwMDAwMDAwMjQxNWQ3YjZiIEpTQzo6SGVhcDo6c3RvcElmTmVjZXNzYXJ5U2xvdyh1
bnNpZ25lZCBpbnQpICsgMzYzIChIZWFwLmNwcDoxODMxKQo2ICAgSmF2YVNjcmlwdENvcmUgICAg
ICAgICAgICAgICAgCTB4MDAwMDAwMDI0MTVkNzhkNyBKU0M6OkhlYXA6OnN0b3BJZk5lY2Vzc2Fy
eVNsb3coKSArIDE1MSAoSGVhcC5jcHA6MTgwMCkKNyAgIEphdmFTY3JpcHRDb3JlICAgICAgICAg
ICAgICAgIAkweDAwMDAwMDAyNDE1ZDI3MWYgSlNDOjpIZWFwOjpzdG9wSWZOZWNlc3NhcnkoKSAr
IDE0MyAoSGVhcElubGluZXMuaDoyNzApCjggICBKYXZhU2NyaXB0Q29yZSAgICAgICAgICAgICAg
ICAJMHgwMDAwMDAwMjQxNWNmMGUyIEpTQzo6SGVhcDo6Y29sbGVjdElmTmVjZXNzYXJ5T3JEZWZl
cihKU0M6OkdDRGVmZXJyYWxDb250ZXh0KikgKyA0MzQKOSAgIEphdmFTY3JpcHRDb3JlICAgICAg
ICAgICAgICAgIAkweDAwMDAwMDAyNDE1ZGE3YjMgSlNDOjpIZWFwOjpkZWNyZW1lbnREZWZlcnJh
bERlcHRoQW5kR0NJZk5lZWRlZFNsb3coKSArIDE2MyAoSGVhcC5jcHA6MjY2NykKMTAgIEphdmFT
Y3JpcHRDb3JlICAgICAgICAgICAgICAgIAkweDAwMDAwMDAyNDFiNmEwNTggSlNDOjpIZWFwOjpk
ZWNyZW1lbnREZWZlcnJhbERlcHRoQW5kR0NJZk5lZWRlZCgpICsgMTg0IChIZWFwSW5saW5lcy5o
OjIxNSkKMTEgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAgICAgIAkweDAwMDAwMDAyNDFhNDYw
N2YgSlNDOjpEZWZlckdDOjp+RGVmZXJHQygpICsgMTI3IChEZWZlckdDLmg6NDkpCjEyICBKYXZh
U2NyaXB0Q29yZSAgICAgICAgICAgICAgICAJMHgwMDAwMDAwMjQxYjVlZTE1IEpTQzo6RGVmZXJH
Qzo6fkRlZmVyR0MoKSArIDIxIChEZWZlckdDLmg6NDkpCjEzICBKYXZhU2NyaXB0Q29yZSAgICAg
ICAgICAgICAgICAJMHgwMDAwMDAwMjQwZGY2NzMzIEpTQzo6R0NTYWZlQ29uY3VycmVudEpTTG9j
a2VyOjp+R0NTYWZlQ29uY3VycmVudEpTTG9ja2VyKCkgKyA1MSAoQ29uY3VycmVudEpTTG9jay5o
OjkxKQoxNCAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGRmNjM2
NSBKU0M6OkdDU2FmZUNvbmN1cnJlbnRKU0xvY2tlcjo6fkdDU2FmZUNvbmN1cnJlbnRKU0xvY2tl
cigpICsgMjEgKENvbmN1cnJlbnRKU0xvY2suaDo5MSkKMTUgIEphdmFTY3JpcHRDb3JlICAgICAg
ICAgICAgICAgIAkweDAwMDAwMDAyNDFkNzc5ZTkgaW50IEpTQzo6U3RydWN0dXJlOjphZGQ8KEpT
Qzo6U3RydWN0dXJlOjpTaG91bGRQaW4pMCwgSlNDOjpTdHJ1Y3R1cmU6OmFkZChKU0M6OlZNJiwg
SlNDOjpQcm9wZXJ0eU5hbWUsIHVuc2lnbmVkIGludCk6OiRfND4oSlNDOjpWTSYsIEpTQzo6UHJv
cGVydHlOYW1lLCB1bnNpZ25lZCBpbnQsIEpTQzo6U3RydWN0dXJlOjphZGQoSlNDOjpWTSYsIEpT
Qzo6UHJvcGVydHlOYW1lLCB1bnNpZ25lZCBpbnQpOjokXzQgY29uc3QmKSArIDY5NyAoU3RydWN0
dXJlSW5saW5lcy5oOjQ2MCkKMTYgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAgICAgIAkweDAw
MDAwMDAyNDFkNzUwNGUgSlNDOjpTdHJ1Y3R1cmU6OmFkZChKU0M6OlZNJiwgSlNDOjpQcm9wZXJ0
eU5hbWUsIHVuc2lnbmVkIGludCkgKyA2MiAoU3RydWN0dXJlLmNwcDo5NjIpCjE3ICBKYXZhU2Ny
aXB0Q29yZSAgICAgICAgICAgICAgICAJMHgwMDAwMDAwMjQxZDc0ZTk1IEpTQzo6U3RydWN0dXJl
OjphZGROZXdQcm9wZXJ0eVRyYW5zaXRpb24oSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgSlND
OjpQcm9wZXJ0eU5hbWUsIHVuc2lnbmVkIGludCwgaW50JiwgSlNDOjpQdXRQcm9wZXJ0eVNsb3Q6
OkNvbnRleHQsIEpTQzo6RGVmZXJyZWRTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludEZpcmUq
KSArIDEwOTMgKFN0cnVjdHVyZS5jcHA6NTA4KQoxOCAgSmF2YVNjcmlwdENvcmUgICAgICAgICAg
ICAgICAgCTB4MDAwMDAwMDI0MWE0OGNmYyBib29sIEpTQzo6SlNPYmplY3Q6OnB1dERpcmVjdElu
dGVybmFsPChKU0M6OkpTT2JqZWN0OjpQdXRNb2RlKTE+KEpTQzo6Vk0mLCBKU0M6OlByb3BlcnR5
TmFtZSwgSlNDOjpKU1ZhbHVlLCB1bnNpZ25lZCBpbnQsIEpTQzo6UHV0UHJvcGVydHlTbG90Jikg
KyAyODEyIChKU09iamVjdElubGluZXMuaDozNzUpCjE5ICBKYXZhU2NyaXB0Q29yZSAgICAgICAg
ICAgICAgICAJMHgwMDAwMDAwMjQxYTM4MmEyIEpTQzo6SlNPYmplY3Q6OnB1dERpcmVjdChKU0M6
OlZNJiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgdW5zaWduZWQgaW50KSArIDM1
NCAoSlNPYmplY3QuaDoxNDkwKQoyMCAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4
MDAwMDAwMDI0MWM0OWU3ZiBKU0M6OkpTT2JqZWN0OjpwdXREaXJlY3RCdWlsdGluRnVuY3Rpb24o
SlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OlByb3BlcnR5TmFtZSBjb25zdCYs
IEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlKiwgdW5zaWduZWQgaW50KSArIDI3MSAoSlNPYmplY3Qu
Y3BwOjMyMDMpCjIxICBKYXZhU2NyaXB0Q29yZSAgICAgICAgICAgICAgICAJMHgwMDAwMDAwMjQx
YzQ0YTZkIEpTQzo6cmVpZnlTdGF0aWNQcm9wZXJ0eShKU0M6OlZNJiwgSlNDOjpDbGFzc0luZm8g
Y29uc3QqLCBKU0M6OlByb3BlcnR5TmFtZSBjb25zdCYsIEpTQzo6SGFzaFRhYmxlVmFsdWUgY29u
c3QmLCBKU0M6OkpTT2JqZWN0JikgKyAyNjkgKExvb2t1cC5oOjMyOSkKMjIgIEphdmFTY3JpcHRD
b3JlICAgICAgICAgICAgICAgIAkweDAwMDAwMDAyNDFjYzRjZTAgSlNDOjpzZXRVcFN0YXRpY0Z1
bmN0aW9uU2xvdChKU0M6OlZNJiwgSlNDOjpDbGFzc0luZm8gY29uc3QqLCBKU0M6Okhhc2hUYWJs
ZVZhbHVlIGNvbnN0KiwgSlNDOjpKU09iamVjdCosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlBy
b3BlcnR5U2xvdCYpICsgMzg0IChMb29rdXAuY3BwOjYzKQoyMyAgSmF2YVNjcmlwdENvcmUgICAg
ICAgICAgICAgICAgCTB4MDAwMDAwMDI0MWM0MzIxNiBKU0M6OmdldFN0YXRpY1Byb3BlcnR5U2xv
dEZyb21UYWJsZShKU0M6OlZNJiwgSlNDOjpDbGFzc0luZm8gY29uc3QqLCBKU0M6Okhhc2hUYWJs
ZSBjb25zdCYsIEpTQzo6SlNPYmplY3QqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eVNsb3QmKSArIDE4MiAoTG9va3VwLmg6MjMzKQoyNCAgSmF2YVNjcmlwdENvcmUgICAgICAgICAg
ICAgICAgCTB4MDAwMDAwMDI0MWM0MzEwZSBKU0M6OkpTT2JqZWN0OjpnZXRPd25TdGF0aWNQcm9w
ZXJ0eVNsb3QoSlNDOjpWTSYsIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYp
ICsgMTI2IChKU09iamVjdC5jcHA6MjIxNSkKMjUgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAg
ICAgIAkweDAwMDAwMDAyNDFjNTZjNzkgSlNDOjpKU09iamVjdDo6Z2V0T3duTm9uSW5kZXhQcm9w
ZXJ0eVNsb3QoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpT
Qzo6UHJvcGVydHlTbG90JikgKyAxNTMgKEpTT2JqZWN0Lmg6MTM1NSkKMjYgIEphdmFTY3JpcHRD
b3JlICAgICAgICAgICAgICAgIAkweDAwMDAwMDAyNDFhNGEzYjQgYm9vbCBKU0M6OkpTT2JqZWN0
OjpnZXRQcm9wZXJ0eVNsb3Q8ZmFsc2U+KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OlByb3Bl
cnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKSArIDQzNiAoSlNPYmplY3QuaDoxNDQ0KQoyNyAg
SmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MWI2NTNiZSBKU0M6OkpT
VmFsdWU6OmdldFByb3BlcnR5U2xvdChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpQcm9wZXJ0
eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90JikgY29uc3QgKyA2NzAgKEpTQ0pTVmFsdWVJbmxpbmVz
Lmg6OTA5KQoyOCAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MWE0
ZDI3OCBKU0M6OkpTVmFsdWU6OmdldChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpQcm9wZXJ0
eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90JikgY29uc3QgKyAxODQgKEpTQ0pTVmFsdWVJbmxpbmVz
Lmg6ODY2KQoyOSAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MTg5
Mjk2NSBsbGludF9zbG93X3BhdGhfZ2V0X2J5X2lkICsgNDM3IChMTEludFNsb3dQYXRocy5jcHA6
NzcwKQozMCAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGRjMWE1
ZSBsbGludF9lbnRyeSArIDQwMDQ4CjMxICBKYXZhU2NyaXB0Q29yZSAgICAgICAgICAgICAgICAJ
MHgwMDAwMDAwMjQwZGI3YjgzIHZtRW50cnlUb0phdmFTY3JpcHQgKyAyNzMKMzIgIEphdmFTY3Jp
cHRDb3JlICAgICAgICAgICAgICAgIAkweDAwMDAwMDAyNDE3ODU5NzcgSlNDOjpKSVRDb2RlOjpl
eGVjdXRlKEpTQzo6Vk0qLCBKU0M6OlByb3RvQ2FsbEZyYW1lKikgKyAxOTkgKEpJVENvZGVJbmxp
bmVzLmg6MzgpCjMzICBKYXZhU2NyaXB0Q29yZSAgICAgICAgICAgICAgICAJMHgwMDAwMDAwMjQx
Nzg1ZmM2IEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpDYWxsVHlwZSwgSlNDOjpDYWxsRGF0YSBjb25zdCYsIEpT
Qzo6SlNWYWx1ZSwgSlNDOjpBcmdMaXN0IGNvbnN0JikgKyAxNDk0IChJbnRlcnByZXRlci5jcHA6
OTA1KQozNCAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MWE3Njg1
OSBKU0M6OmNhbGwoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6SlNWYWx1ZSwgSlNDOjpDYWxs
VHlwZSwgSlNDOjpDYWxsRGF0YSBjb25zdCYsIEpTQzo6SlNWYWx1ZSwgSlNDOjpBcmdMaXN0IGNv
bnN0JikgKyAyMzMgKENhbGxEYXRhLmNwcDo1OSkKMzUgIEphdmFTY3JpcHRDb3JlICAgICAgICAg
ICAgICAgIAkweDAwMDAwMDAyNDFjNGViZTYgSlNDOjpjYWxsRnVuY3Rpb24oSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6SlNWYWx1ZSwgSlNDOjpKU1Byb21pc2UqLCBKU0M6OkpTVmFsdWUpICsg
NDM4IChKU1Byb21pc2UuY3BwOjE1NCkKMzYgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAgICAg
IAkweDAwMDAwMDAyNDFjNGVlNDQgSlNDOjpKU1Byb21pc2U6OnJlamVjdChKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpKU1ZhbHVlKSArIDM4OCAoSlNQcm9taXNlLmNwcDoxODApCjM3ICBjb20u
YXBwbGUuV2ViQ29yZSAgICAgICAgICAgICAJMHgwMDAwMDAwMjQ3MzU5OGU4IFdlYkNvcmU6OkRl
ZmVycmVkUHJvbWlzZTo6Y2FsbEZ1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBXZWJDb3Jl
OjpEZWZlcnJlZFByb21pc2U6OlJlc29sdmVNb2RlLCBKU0M6OkpTVmFsdWUpICsgNDQwCjM4ICBj
b20uYXBwbGUuV2ViQ29yZSAgICAgICAgICAgICAJMHgwMDAwMDAwMjQ3MzljZDljIFdlYkNvcmU6
OkRlZmVycmVkUHJvbWlzZTo6Y2FsbEZ1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBXZWJD
b3JlOjpEZWZlcnJlZFByb21pc2U6OlJlc29sdmVNb2RlLCBKU0M6OkpTVmFsdWUpOjokXzMxOjpv
cGVyYXRvcigpKCkgKyAxMDggKEpTRE9NUHJvbWlzZURlZmVycmVkLmNwcDo1OSkKMzkgIGNvbS5h
cHBsZS5XZWJDb3JlICAgICAgICAgICAgIAkweDAwMDAwMDAyNDczOWNjNGUgV1RGOjpEZXRhaWw6
OkNhbGxhYmxlV3JhcHBlcjxXZWJDb3JlOjpEZWZlcnJlZFByb21pc2U6OmNhbGxGdW5jdGlvbihK
U0M6OkpTR2xvYmFsT2JqZWN0JiwgV2ViQ29yZTo6RGVmZXJyZWRQcm9taXNlOjpSZXNvbHZlTW9k
ZSwgSlNDOjpKU1ZhbHVlKTo6JF8zMSwgdm9pZD46OmNhbGwoKSArIDMwIChGdW5jdGlvbi5oOjUy
KQo0MCAgY29tLmFwcGxlLldlYkNvcmUgICAgICAgICAgICAgCTB4MDAwMDAwMDI0NTU4M2RmMiBX
VEY6OkZ1bmN0aW9uPHZvaWQgKCk+OjpvcGVyYXRvcigpKCkgY29uc3QgKyAxMzAgKEZ1bmN0aW9u
Lmg6NzkpCjQxICBjb20uYXBwbGUuV2ViQ29yZSAgICAgICAgICAgICAJMHgwMDAwMDAwMjQ3YWNm
N2VlIFdlYkNvcmU6OldpbmRvd0V2ZW50TG9vcDo6cnVuKCkgKyAzODIgKFdpbmRvd0V2ZW50TG9v
cC5jcHA6MTEwKQo0MiAgY29tLmFwcGxlLldlYkNvcmUgICAgICAgICAgICAgCTB4MDAwMDAwMDI0
N2FkOTdhMSBXZWJDb3JlOjpXaW5kb3dFdmVudExvb3A6OnNjaGVkdWxlVG9SdW5JZk5lZWRlZCgp
OjokXzM6Om9wZXJhdG9yKCkoKSBjb25zdCArIDQ5IChXaW5kb3dFdmVudExvb3AuY3BwOjk5KQo0
MyAgY29tLmFwcGxlLldlYkNvcmUgICAgICAgICAgICAgCTB4MDAwMDAwMDI0N2FkOTYxZSBXVEY6
OkRldGFpbDo6Q2FsbGFibGVXcmFwcGVyPFdlYkNvcmU6OldpbmRvd0V2ZW50TG9vcDo6c2NoZWR1
bGVUb1J1bklmTmVlZGVkKCk6OiRfMywgdm9pZD46OmNhbGwoKSArIDMwIChGdW5jdGlvbi5oOjUy
KQo0NCAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGE4ZGUyMiBX
VEY6OkZ1bmN0aW9uPHZvaWQgKCk+OjpvcGVyYXRvcigpKCkgY29uc3QgKyAxMzAgKEZ1bmN0aW9u
Lmg6NzkpCjQ1ICBKYXZhU2NyaXB0Q29yZSAgICAgICAgICAgICAgICAJMHgwMDAwMDAwMjQwYWM0
YmI5IFdURjo6ZGlzcGF0Y2hGdW5jdGlvbnNGcm9tTWFpblRocmVhZCgpICsgMjgxIChNYWluVGhy
ZWFkLmNwcDo5NCkKNDYgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAgICAgIAkweDAwMDAwMDAy
NDBhYzcyZTUgLVtKU1dURk1haW5UaHJlYWRDYWxsZXIgY2FsbF0gKyAyMSAoTWFpblRocmVhZENv
Y29hLm1tOjU1KQo0NyAgY29tLmFwcGxlLkZvdW5kYXRpb24gICAgICAgICAgCTB4MDAwMDAwMDEw
NjQyZjYyYyBfX05TVGhyZWFkUGVyZm9ybVBlcmZvcm0gKyAyMDkKNDggIGNvbS5hcHBsZS5Db3Jl
Rm91bmRhdGlvbiAgICAgIAkweDAwMDAwMDAyMzk4ZTIyODEgX19DRlJVTkxPT1BfSVNfQ0FMTElO
R19PVVRfVE9fQV9TT1VSQ0UwX1BFUkZPUk1fRlVOQ1RJT05fXyArIDE3CjQ5ICBjb20uYXBwbGUu
Q29yZUZvdW5kYXRpb24gICAgICAJMHgwMDAwMDAwMjM5OGUyMWFjIF9fQ0ZSdW5Mb29wRG9Tb3Vy
Y2UwICsgNzYKNTAgIGNvbS5hcHBsZS5Db3JlRm91bmRhdGlvbiAgICAgIAkweDAwMDAwMDAyMzk4
ZTE5ZGMgX19DRlJ1bkxvb3BEb1NvdXJjZXMwICsgMjY4CjUxICBjb20uYXBwbGUuQ29yZUZvdW5k
YXRpb24gICAgICAJMHgwMDAwMDAwMjM5OGRjNTdlIF9fQ0ZSdW5Mb29wUnVuICsgOTc0CjUyICBj
b20uYXBwbGUuQ29yZUZvdW5kYXRpb24gICAgICAJMHgwMDAwMDAwMjM5OGRiZTk0IENGUnVuTG9v
cFJ1blNwZWNpZmljICsgNDA0CjUzICBjb20uYXBwbGUuRm91bmRhdGlvbiAgICAgICAgICAJMHgw
MDAwMDAwMTA2NDE5NDkxIC1bTlNSdW5Mb29wKE5TUnVuTG9vcCkgcnVuTW9kZTpiZWZvcmVEYXRl
Ol0gKyAyMTEKNTQgIGNvbS5hcHBsZS5Gb3VuZGF0aW9uICAgICAgICAgIAkweDAwMDAwMDAxMDY0
MTk2YTUgLVtOU1J1bkxvb3AoTlNSdW5Mb29wKSBydW5dICsgNzYKNTUgIGxpYnhwYy5keWxpYiAg
ICAgICAgICAgICAgICAgIAkweDAwMDAwMDAyM2I0YzIxYTIgX3hwY19vYmpjX21haW4gKyAyOTcK
NTYgIGxpYnhwYy5keWxpYiAgICAgICAgICAgICAgICAgIAkweDAwMDAwMDAyM2I0YzQ4YTUgeHBj
X21haW4gKyAxMzIKNTcgIGNvbS5hcHBsZS5XZWJLaXQgICAgICAgICAgICAgIAkweDAwMDAwMDAy
MzA3MmYwMDkgV2ViS2l0OjpYUENTZXJ2aWNlTWFpbihpbnQsIGNoYXIgY29uc3QqKikgKyA4MjUg
KFhQQ1NlcnZpY2VNYWluLm1tOjE1OCkKNTggIGNvbS5hcHBsZS5XZWJLaXQgICAgICAgICAgICAg
IAkweDAwMDAwMDAyMzE3NjNjNmIgV0tYUENTZXJ2aWNlTWFpbiArIDI3IChXS01haW4ubW06MzMp
CjU5ICBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQgICAJMHgwMDAwMDAwMTA2MzU5ZjAyIG1h
aW4gKyAzNCAoQXV4aWxpYXJ5UHJvY2Vzc01haW4uY3BwOjMwKQo2MCAgbGliZHlsZC5keWxpYiAg
ICAgICAgICAgICAgICAgCTB4MDAwMDAwMDIzYjE5OTFlMSBzdGFydCArIDEKClRocmVhZCAxOgow
ICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDAwMDIzYjU4ZjU2YyBzdGFy
dF93cXRocmVhZCArIDAKClRocmVhZCAyOgowICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAg
ICAgCTB4MDAwMDAwMDIzYjU4ZjU2YyBzdGFydF93cXRocmVhZCArIDAKClRocmVhZCAzOjogSmF2
YVNjcmlwdENvcmUgYm1hbGxvYyBzY2F2ZW5nZXIKMCAgIGxpYnN5c3RlbV9rZXJuZWwuZHlsaWIg
ICAgICAgIAkweDAwMDAwMDAyM2I1MzI5MTYgX19wc3luY2hfY3Z3YWl0ICsgMTAKMSAgIGxpYnN5
c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDAwMDAyM2I1OTMwNDAgX3B0aHJlYWRfY29u
ZF93YWl0ICsgNzAxCjIgICBsaWJjKysuMS5keWxpYiAgICAgICAgICAgICAgICAJMHgwMDAwMDAw
MjM5NzlhNjMzIHN0ZDo6X18xOjpjb25kaXRpb25fdmFyaWFibGU6Ol9fZG9fdGltZWRfd2FpdChz
dGQ6Ol9fMTo6dW5pcXVlX2xvY2s8c3RkOjpfXzE6Om11dGV4PiYsIHN0ZDo6X18xOjpjaHJvbm86
OnRpbWVfcG9pbnQ8c3RkOjpfXzE6OmNocm9ubzo6c3lzdGVtX2Nsb2NrLCBzdGQ6Ol9fMTo6Y2hy
b25vOjpkdXJhdGlvbjxsb25nIGxvbmcsIHN0ZDo6X18xOjpyYXRpbzwxbCwgMTAwMDAwMDAwMGw+
ID4gPikgKyA5MwozICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0
MGI5YTk3MyBzdGQ6Ol9fMTo6Y3Zfc3RhdHVzIHN0ZDo6X18xOjpjb25kaXRpb25fdmFyaWFibGU6
OndhaXRfZm9yPGxvbmcgbG9uZywgc3RkOjpfXzE6OnJhdGlvPDFsLCAxMDAwMDAwMDAwbD4gPihz
dGQ6Ol9fMTo6dW5pcXVlX2xvY2s8c3RkOjpfXzE6Om11dGV4PiYsIHN0ZDo6X18xOjpjaHJvbm86
OmR1cmF0aW9uPGxvbmcgbG9uZywgc3RkOjpfXzE6OnJhdGlvPDFsLCAxMDAwMDAwMDAwbD4gPiBj
b25zdCYpICsgMjc1IChfX211dGV4X2Jhc2U6NDE1KQo0ICAgSmF2YVNjcmlwdENvcmUgICAgICAg
ICAgICAgICAgCTB4MDAwMDAwMDI0MGI5YTgyNyBzdGQ6Ol9fMTo6Y3Zfc3RhdHVzIHN0ZDo6X18x
Ojpjb25kaXRpb25fdmFyaWFibGU6OndhaXRfdW50aWw8c3RkOjpfXzE6OmNocm9ubzo6c3RlYWR5
X2Nsb2NrLCBzdGQ6Ol9fMTo6Y2hyb25vOjpkdXJhdGlvbjxsb25nIGxvbmcsIHN0ZDo6X18xOjpy
YXRpbzwxbCwgMTAwMDAwMDAwMGw+ID4gPihzdGQ6Ol9fMTo6dW5pcXVlX2xvY2s8c3RkOjpfXzE6
Om11dGV4PiYsIHN0ZDo6X18xOjpjaHJvbm86OnRpbWVfcG9pbnQ8c3RkOjpfXzE6OmNocm9ubzo6
c3RlYWR5X2Nsb2NrLCBzdGQ6Ol9fMTo6Y2hyb25vOjpkdXJhdGlvbjxsb25nIGxvbmcsIHN0ZDo6
X18xOjpyYXRpbzwxbCwgMTAwMDAwMDAwMGw+ID4gPiBjb25zdCYpICsgODcgKF9fbXV0ZXhfYmFz
ZTozODMpCjUgICBKYXZhU2NyaXB0Q29yZSAgICAgICAgICAgICAgICAJMHgwMDAwMDAwMjQwYjlh
NzliIHN0ZDo6X18xOjpjdl9zdGF0dXMgc3RkOjpfXzE6OmNvbmRpdGlvbl92YXJpYWJsZV9hbnk6
OndhaXRfdW50aWw8c3RkOjpfXzE6OnVuaXF1ZV9sb2NrPGJtYWxsb2M6Ok11dGV4Piwgc3RkOjpf
XzE6OmNocm9ubzo6c3RlYWR5X2Nsb2NrLCBzdGQ6Ol9fMTo6Y2hyb25vOjpkdXJhdGlvbjxsb25n
IGxvbmcsIHN0ZDo6X18xOjpyYXRpbzwxbCwgMTAwMDAwMDAwMGw+ID4gPihzdGQ6Ol9fMTo6dW5p
cXVlX2xvY2s8Ym1hbGxvYzo6TXV0ZXg+Jiwgc3RkOjpfXzE6OmNocm9ubzo6dGltZV9wb2ludDxz
dGQ6Ol9fMTo6Y2hyb25vOjpzdGVhZHlfY2xvY2ssIHN0ZDo6X18xOjpjaHJvbm86OmR1cmF0aW9u
PGxvbmcgbG9uZywgc3RkOjpfXzE6OnJhdGlvPDFsLCAxMDAwMDAwMDAwbD4gPiA+IGNvbnN0Jikg
KyAxMjMgKGNvbmRpdGlvbl92YXJpYWJsZToyMjYpCjYgICBKYXZhU2NyaXB0Q29yZSAgICAgICAg
ICAgICAgICAJMHgwMDAwMDAwMjQwYjlhNjU5IGJvb2wgc3RkOjpfXzE6OmNvbmRpdGlvbl92YXJp
YWJsZV9hbnk6OndhaXRfdW50aWw8c3RkOjpfXzE6OnVuaXF1ZV9sb2NrPGJtYWxsb2M6Ok11dGV4
Piwgc3RkOjpfXzE6OmNocm9ubzo6c3RlYWR5X2Nsb2NrLCBzdGQ6Ol9fMTo6Y2hyb25vOjpkdXJh
dGlvbjxsb25nIGxvbmcsIHN0ZDo6X18xOjpyYXRpbzwxbCwgMTAwMDAwMDAwMGw+ID4sIGJtYWxs
b2M6OlNjYXZlbmdlcjo6dGhyZWFkUnVuTG9vcCgpOjokXzQ+KHN0ZDo6X18xOjp1bmlxdWVfbG9j
azxibWFsbG9jOjpNdXRleD4mLCBzdGQ6Ol9fMTo6Y2hyb25vOjp0aW1lX3BvaW50PHN0ZDo6X18x
OjpjaHJvbm86OnN0ZWFkeV9jbG9jaywgc3RkOjpfXzE6OmNocm9ubzo6ZHVyYXRpb248bG9uZyBs
b25nLCBzdGQ6Ol9fMTo6cmF0aW88MWwsIDEwMDAwMDAwMDBsPiA+ID4gY29uc3QmLCBibWFsbG9j
OjpTY2F2ZW5nZXI6OnRocmVhZFJ1bkxvb3AoKTo6JF80KSArIDczIChjb25kaXRpb25fdmFyaWFi
bGU6MjM2KQo3ICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGI5
Nzg5NyBib29sIHN0ZDo6X18xOjpjb25kaXRpb25fdmFyaWFibGVfYW55Ojp3YWl0X2ZvcjxzdGQ6
Ol9fMTo6dW5pcXVlX2xvY2s8Ym1hbGxvYzo6TXV0ZXg+LCBsb25nIGxvbmcsIHN0ZDo6X18xOjpy
YXRpbzwxbCwgMTAwMGw+LCBibWFsbG9jOjpTY2F2ZW5nZXI6OnRocmVhZFJ1bkxvb3AoKTo6JF80
PihzdGQ6Ol9fMTo6dW5pcXVlX2xvY2s8Ym1hbGxvYzo6TXV0ZXg+Jiwgc3RkOjpfXzE6OmNocm9u
bzo6ZHVyYXRpb248bG9uZyBsb25nLCBzdGQ6Ol9fMTo6cmF0aW88MWwsIDEwMDBsPiA+IGNvbnN0
JiwgYm1hbGxvYzo6U2NhdmVuZ2VyOjp0aHJlYWRSdW5Mb29wKCk6OiRfNCkgKyAxMDMgKGNvbmRp
dGlvbl92YXJpYWJsZToyNTcpCjggICBKYXZhU2NyaXB0Q29yZSAgICAgICAgICAgICAgICAJMHgw
MDAwMDAwMjQwYjk3NjgyIGJtYWxsb2M6OlNjYXZlbmdlcjo6dGhyZWFkUnVuTG9vcCgpICsgMjU4
IChTY2F2ZW5nZXIuY3BwOjQxMSkKOSAgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAgICAgIAkw
eDAwMDAwMDAyNDBiOTZjMTUgYm1hbGxvYzo6U2NhdmVuZ2VyOjp0aHJlYWRFbnRyeVBvaW50KGJt
YWxsb2M6OlNjYXZlbmdlciopICsgMjEKMTAgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAgICAg
IAkweDAwMDAwMDAyNDBiOTlmYTIgZGVjbHR5cGUoc3RkOjpfXzE6OmZvcndhcmQ8dm9pZCAoKiko
Ym1hbGxvYzo6U2NhdmVuZ2VyKik+KGZwKShzdGQ6Ol9fMTo6Zm9yd2FyZDxibWFsbG9jOjpTY2F2
ZW5nZXIqPihmcDApKSkgc3RkOjpfXzE6Ol9faW52b2tlPHZvaWQgKCopKGJtYWxsb2M6OlNjYXZl
bmdlciopLCBibWFsbG9jOjpTY2F2ZW5nZXIqPih2b2lkICgqJiYpKGJtYWxsb2M6OlNjYXZlbmdl
ciopLCBibWFsbG9jOjpTY2F2ZW5nZXIqJiYpICsgNTAKMTEgIEphdmFTY3JpcHRDb3JlICAgICAg
ICAgICAgICAgIAkweDAwMDAwMDAyNDBiOTllZWUgdm9pZCBzdGQ6Ol9fMTo6X190aHJlYWRfZXhl
Y3V0ZTxzdGQ6Ol9fMTo6dW5pcXVlX3B0cjxzdGQ6Ol9fMTo6X190aHJlYWRfc3RydWN0LCBzdGQ6
Ol9fMTo6ZGVmYXVsdF9kZWxldGU8c3RkOjpfXzE6Ol9fdGhyZWFkX3N0cnVjdD4gPiwgdm9pZCAo
KikoYm1hbGxvYzo6U2NhdmVuZ2VyKiksIGJtYWxsb2M6OlNjYXZlbmdlciosIDJ1bD4oc3RkOjpf
XzE6OnR1cGxlPHN0ZDo6X18xOjp1bmlxdWVfcHRyPHN0ZDo6X18xOjpfX3RocmVhZF9zdHJ1Y3Qs
IHN0ZDo6X18xOjpkZWZhdWx0X2RlbGV0ZTxzdGQ6Ol9fMTo6X190aHJlYWRfc3RydWN0PiA+LCB2
b2lkICgqKShibWFsbG9jOjpTY2F2ZW5nZXIqKSwgYm1hbGxvYzo6U2NhdmVuZ2VyKj4mLCBzdGQ6
Ol9fMTo6X190dXBsZV9pbmRpY2VzPDJ1bD4pICsgNjIgKHRocmVhZDozNDIpCjEyICBKYXZhU2Ny
aXB0Q29yZSAgICAgICAgICAgICAgICAJMHgwMDAwMDAwMjQwYjk5NzViIHZvaWQqIHN0ZDo6X18x
OjpfX3RocmVhZF9wcm94eTxzdGQ6Ol9fMTo6dHVwbGU8c3RkOjpfXzE6OnVuaXF1ZV9wdHI8c3Rk
OjpfXzE6Ol9fdGhyZWFkX3N0cnVjdCwgc3RkOjpfXzE6OmRlZmF1bHRfZGVsZXRlPHN0ZDo6X18x
OjpfX3RocmVhZF9zdHJ1Y3Q+ID4sIHZvaWQgKCopKGJtYWxsb2M6OlNjYXZlbmdlciopLCBibWFs
bG9jOjpTY2F2ZW5nZXIqPiA+KHZvaWQqKSArIDkxICh0aHJlYWQ6MzUzKQoxMyAgbGlic3lzdGVt
X3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDAwMDIzYjU5MmQzNiBfcHRocmVhZF9zdGFydCAr
IDEyNQoxNCAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDAwMDIzYjU4ZjU4
ZiB0aHJlYWRfc3RhcnQgKyAxNQoKVGhyZWFkIDQ6CjAgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxp
YiAgICAgICAJMHgwMDAwMDAwMjNiNThmNTZjIHN0YXJ0X3dxdGhyZWFkICsgMAoKVGhyZWFkIDU6
OiBBVkF1ZGlvU2Vzc2lvbiBOb3RpZnkgVGhyZWFkCjAgICBsaWJzeXN0ZW1fa2VybmVsLmR5bGli
ICAgICAgICAJMHgwMDAwMDAwMjNiNTJmMTY2IG1hY2hfbXNnX3RyYXAgKyAxMAoxICAgbGlic3lz
dGVtX2tlcm5lbC5keWxpYiAgICAgICAgCTB4MDAwMDAwMDIzYjUyZjZjYyBtYWNoX21zZyArIDYw
CjIgICBjb20uYXBwbGUuQ29yZUZvdW5kYXRpb24gICAgICAJMHgwMDAwMDAwMjM5OGUxYWU1IF9f
Q0ZSdW5Mb29wU2VydmljZU1hY2hQb3J0ICsgMTY1CjMgICBjb20uYXBwbGUuQ29yZUZvdW5kYXRp
b24gICAgICAJMHgwMDAwMDAwMjM5OGRjNzE3IF9fQ0ZSdW5Mb29wUnVuICsgMTM4Mwo0ICAgY29t
LmFwcGxlLkNvcmVGb3VuZGF0aW9uICAgICAgCTB4MDAwMDAwMDIzOThkYmU5NCBDRlJ1bkxvb3BS
dW5TcGVjaWZpYyArIDQwNAo1ICAgY29tLmFwcGxlLmF1ZGlvLkFWRkF1ZGlvICAgICAgCTB4MDAw
MDAwMDI2YmE5OGNkNiBHZW5lcmljUnVuTG9vcFRocmVhZDo6RW50cnkodm9pZCopICsgMTY2CjYg
ICBjb20uYXBwbGUuYXVkaW8uQVZGQXVkaW8gICAgICAJMHgwMDAwMDAwMjZiYWQ0MWRmIENBUFRo
cmVhZDo6RW50cnkoQ0FQVGhyZWFkKikgKyAxOTEKNyAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGli
ICAgICAgIAkweDAwMDAwMDAyM2I1OTJkMzYgX3B0aHJlYWRfc3RhcnQgKyAxMjUKOCAgIGxpYnN5
c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDAwMDAyM2I1OGY1OGYgdGhyZWFkX3N0YXJ0
ICsgMTUKClRocmVhZCA2OjogQU1DUCBMb2dnaW5nIFNwb29sCjAgICBsaWJzeXN0ZW1fa2VybmVs
LmR5bGliICAgICAgICAJMHgwMDAwMDAwMjNiNTJmMWEyIHNlbWFwaG9yZV93YWl0X3RyYXAgKyAx
MAoxICAgY29tLmFwcGxlLmF1ZGlvLmNhdWxrICAgICAgICAgCTB4MDAwMDAwMDI1ZWE3MmQ0OCBj
YXVsazo6bWFjaDo6c2VtYXBob3JlOjp3YWl0KCkgKyAxNgoyICAgY29tLmFwcGxlLmF1ZGlvLmNh
dWxrICAgICAgICAgCTB4MDAwMDAwMDI1ZWE2ZTJmMiBjYXVsazo6c2VtYXBob3JlOjp0aW1lZF93
YWl0KGRvdWJsZSkgKyAxMDYKMyAgIGNvbS5hcHBsZS5hdWRpby5jYXVsayAgICAgICAgIAkweDAw
MDAwMDAyNWVhNzE5ZDQgY2F1bGs6OmNvbmN1cnJlbnQ6OmRldGFpbHM6Ondvcmtlcl90aHJlYWQ6
OnJ1bigpICsgMzAKNCAgIGNvbS5hcHBsZS5hdWRpby5jYXVsayAgICAgICAgIAkweDAwMDAwMDAy
NWVhNzFiMjQgdm9pZCogY2F1bGs6OnRocmVhZF9wcm94eTxzdGQ6Ol9fMTo6dHVwbGU8Y2F1bGs6
OnRocmVhZDo6YXR0cmlidXRlcywgdm9pZCAoY2F1bGs6OmNvbmN1cnJlbnQ6OmRldGFpbHM6Ondv
cmtlcl90aHJlYWQ6OiopKCksIHN0ZDo6X18xOjp0dXBsZTxjYXVsazo6Y29uY3VycmVudDo6ZGV0
YWlsczo6d29ya2VyX3RocmVhZCo+ID4gPih2b2lkKikgKyA0NQo1ICAgbGlic3lzdGVtX3B0aHJl
YWQuZHlsaWIgICAgICAgCTB4MDAwMDAwMDIzYjU5MmQzNiBfcHRocmVhZF9zdGFydCArIDEyNQo2
ICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDAwMDIzYjU4ZjU4ZiB0aHJl
YWRfc3RhcnQgKyAxNQoKVGhyZWFkIDc6CjAgICBsaWJzeXN0ZW1fa2VybmVsLmR5bGliICAgICAg
ICAJMHgwMDAwMDAwMjNiNTJmMWEyIHNlbWFwaG9yZV93YWl0X3RyYXAgKyAxMAoxICAgY29tLmFw
cGxlLmF1ZGlvLmNhdWxrICAgICAgICAgCTB4MDAwMDAwMDI1ZWE3MmQ0OCBjYXVsazo6bWFjaDo6
c2VtYXBob3JlOjp3YWl0KCkgKyAxNgoyICAgY29tLmFwcGxlLmF1ZGlvLmNhdWxrICAgICAgICAg
CTB4MDAwMDAwMDI1ZWE2ZTJmMiBjYXVsazo6c2VtYXBob3JlOjp0aW1lZF93YWl0KGRvdWJsZSkg
KyAxMDYKMyAgIGNvbS5hcHBsZS5hdWRpby5jYXVsayAgICAgICAgIAkweDAwMDAwMDAyNWVhNzE5
ZDQgY2F1bGs6OmNvbmN1cnJlbnQ6OmRldGFpbHM6Ondvcmtlcl90aHJlYWQ6OnJ1bigpICsgMzAK
NCAgIGNvbS5hcHBsZS5hdWRpby5jYXVsayAgICAgICAgIAkweDAwMDAwMDAyNWVhNzFiMjQgdm9p
ZCogY2F1bGs6OnRocmVhZF9wcm94eTxzdGQ6Ol9fMTo6dHVwbGU8Y2F1bGs6OnRocmVhZDo6YXR0
cmlidXRlcywgdm9pZCAoY2F1bGs6OmNvbmN1cnJlbnQ6OmRldGFpbHM6Ondvcmtlcl90aHJlYWQ6
OiopKCksIHN0ZDo6X18xOjp0dXBsZTxjYXVsazo6Y29uY3VycmVudDo6ZGV0YWlsczo6d29ya2Vy
X3RocmVhZCo+ID4gPih2b2lkKikgKyA0NQo1ICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAg
ICAgCTB4MDAwMDAwMDIzYjU5MmQzNiBfcHRocmVhZF9zdGFydCArIDEyNQo2ICAgbGlic3lzdGVt
X3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDAwMDIzYjU4ZjU4ZiB0aHJlYWRfc3RhcnQgKyAx
NQoKVGhyZWFkIDg6CjAgICBsaWJzeXN0ZW1fa2VybmVsLmR5bGliICAgICAgICAJMHgwMDAwMDAw
MjNiNTJmMWJhIHNlbWFwaG9yZV90aW1lZHdhaXRfdHJhcCArIDEwCjEgICBsaWJkaXNwYXRjaC5k
eWxpYiAgICAgICAgICAgICAJMHgwMDAwMDAwMjNiMTE1ZGUxIF9kaXNwYXRjaF9zZW1hNF90aW1l
ZHdhaXQgKyA3NgoyICAgbGliZGlzcGF0Y2guZHlsaWIgICAgICAgICAgICAgCTB4MDAwMDAwMDIz
YjExNjIzYSBfZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXRfc2xvdyArIDU4CjMgICBsaWJkaXNwYXRj
aC5keWxpYiAgICAgICAgICAgICAJMHgwMDAwMDAwMjNiMTI0YWU5IF9kaXNwYXRjaF93b3JrZXJf
dGhyZWFkICsgMjkyCjQgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAw
MjNiNTkyZDM2IF9wdGhyZWFkX3N0YXJ0ICsgMTI1CjUgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxp
YiAgICAgICAJMHgwMDAwMDAwMjNiNThmNThmIHRocmVhZF9zdGFydCArIDE1CgpUaHJlYWQgOToK
MCAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDAwMDAyM2I1OGY1NmMgc3Rh
cnRfd3F0aHJlYWQgKyAwCgpUaHJlYWQgMTA6OiBIZWFwIEhlbHBlciBUaHJlYWQKMCAgIGxpYnN5
c3RlbV9rZXJuZWwuZHlsaWIgICAgICAgIAkweDAwMDAwMDAyM2I1MzI5MTYgX19wc3luY2hfY3Z3
YWl0ICsgMTAKMSAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDAwMDAyM2I1
OTMwNDAgX3B0aHJlYWRfY29uZF93YWl0ICsgNzAxCjIgICBKYXZhU2NyaXB0Q29yZSAgICAgICAg
ICAgICAgICAJMHgwMDAwMDAwMjQwYjMzMDhjIFdURjo6VGhyZWFkQ29uZGl0aW9uOjp0aW1lZFdh
aXQoV1RGOjpNdXRleCYsIFdURjo6V2FsbFRpbWUpICsgMjUyIChUaHJlYWRpbmdQT1NJWC5jcHA6
NTQyKQozICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGFlM2U1
YiBXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5SW1wbCh2b2lkIGNvbnN0KiwgV1RG
OjpTY29wZWRMYW1iZGE8Ym9vbCAoKT4gY29uc3QmLCBXVEY6OlNjb3BlZExhbWJkYTx2b2lkICgp
PiBjb25zdCYsIFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0JikgKyA0MjcgKFBh
cmtpbmdMb3QuY3BwOjYwNCkKNCAgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAgICAgIAkweDAw
MDAwMDAyNDBhN2EyMzAgV1RGOjpQYXJraW5nTG90OjpQYXJrUmVzdWx0IFdURjo6UGFya2luZ0xv
dDo6cGFya0NvbmRpdGlvbmFsbHk8Ym9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVudGlsPFdURjo6
TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgY29uc3QmKTo6
J2xhbWJkYScoKSwgYm9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVudGlsPFdURjo6TG9jaz4oV1RG
OjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgY29uc3QmKTo6J2xhbWJkYTAn
KCk+KHZvaWQgY29uc3QqLCBXVEY6OkxvY2sgY29uc3QmLCBib29sIFdURjo6Q29uZGl0aW9uOjp3
YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2Nr
VHlwZSBjb25zdCYpOjonbGFtYmRhMCcoKSBjb25zdCYsIFdURjo6VGltZVdpdGhEeW5hbWljQ2xv
Y2tUeXBlIGNvbnN0JikgKyA5NiAoUGFya2luZ0xvdC5oOjgyKQo1ICAgSmF2YVNjcmlwdENvcmUg
ICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGE3YTEzYyBib29sIFdURjo6Q29uZGl0aW9uOjp3
YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVXaXRoRHluYW1pY0Nsb2Nr
VHlwZSBjb25zdCYpICsgMTQwIChDb25kaXRpb24uaDo3NikKNiAgIEphdmFTY3JpcHRDb3JlICAg
ICAgICAgICAgICAgIAkweDAwMDAwMDAyNDBhNzhhOTkgYm9vbCBXVEY6OkNvbmRpdGlvbjo6d2Fp
dEZvcjxXVEY6OkxvY2s+KFdURjo6TG9jayYsIFdURjo6U2Vjb25kcykgKyAxMDUgKENvbmRpdGlv
bi5oOjExNikKNyAgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAgICAgIAkweDAwMDAwMDAyNDBh
N2JjNDkgV1RGOjpBdXRvbWF0aWNUaHJlYWQ6OnN0YXJ0KFdURjo6QWJzdHJhY3RMb2NrZXIgY29u
c3QmKTo6JF8wOjpvcGVyYXRvcigpKCkgY29uc3QgKyA1MjEgKEF1dG9tYXRpY1RocmVhZC5jcHA6
MjA3KQo4ICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGE3Yjhi
ZSBXVEY6OkRldGFpbDo6Q2FsbGFibGVXcmFwcGVyPFdURjo6QXV0b21hdGljVGhyZWFkOjpzdGFy
dChXVEY6OkFic3RyYWN0TG9ja2VyIGNvbnN0Jik6OiRfMCwgdm9pZD46OmNhbGwoKSArIDMwIChG
dW5jdGlvbi5oOjUyKQo5ICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAw
MDI0MGE4ZGUyMiBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+OjpvcGVyYXRvcigpKCkgY29uc3QgKyAx
MzAgKEZ1bmN0aW9uLmg6NzkpCjEwICBKYXZhU2NyaXB0Q29yZSAgICAgICAgICAgICAgICAJMHgw
MDAwMDAwMjQwYjI3ZTE4IFdURjo6VGhyZWFkOjplbnRyeVBvaW50KFdURjo6VGhyZWFkOjpOZXdU
aHJlYWRDb250ZXh0KikgKyA0MjQgKFRocmVhZGluZy5jcHA6MTQ5KQoxMSAgSmF2YVNjcmlwdENv
cmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGIzMjNhOCBXVEY6Ond0ZlRocmVhZEVudHJ5
UG9pbnQodm9pZCopICsgMjQgKFRocmVhZGluZ1BPU0lYLmNwcDoyMDApCjEyICBsaWJzeXN0ZW1f
cHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAwMjNiNTkyZDM2IF9wdGhyZWFkX3N0YXJ0ICsg
MTI1CjEzICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAwMjNiNThmNThm
IHRocmVhZF9zdGFydCArIDE1CgpUaHJlYWQgMTE6OiBIZWFwIEhlbHBlciBUaHJlYWQKMCAgIGxp
YnN5c3RlbV9rZXJuZWwuZHlsaWIgICAgICAgIAkweDAwMDAwMDAyM2I1MzI5MTYgX19wc3luY2hf
Y3Z3YWl0ICsgMTAKMSAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDAwMDAy
M2I1OTMwNDAgX3B0aHJlYWRfY29uZF93YWl0ICsgNzAxCjIgICBKYXZhU2NyaXB0Q29yZSAgICAg
ICAgICAgICAgICAJMHgwMDAwMDAwMjQwYjMzMDhjIFdURjo6VGhyZWFkQ29uZGl0aW9uOjp0aW1l
ZFdhaXQoV1RGOjpNdXRleCYsIFdURjo6V2FsbFRpbWUpICsgMjUyIChUaHJlYWRpbmdQT1NJWC5j
cHA6NTQyKQozICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGFl
M2U1YiBXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5SW1wbCh2b2lkIGNvbnN0Kiwg
V1RGOjpTY29wZWRMYW1iZGE8Ym9vbCAoKT4gY29uc3QmLCBXVEY6OlNjb3BlZExhbWJkYTx2b2lk
ICgpPiBjb25zdCYsIFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0JikgKyA0Mjcg
KFBhcmtpbmdMb3QuY3BwOjYwNCkKNCAgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAgICAgIAkw
eDAwMDAwMDAyNDBhN2EyMzAgV1RGOjpQYXJraW5nTG90OjpQYXJrUmVzdWx0IFdURjo6UGFya2lu
Z0xvdDo6cGFya0NvbmRpdGlvbmFsbHk8Ym9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVudGlsPFdU
Rjo6TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgY29uc3Qm
KTo6J2xhbWJkYScoKSwgYm9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVudGlsPFdURjo6TG9jaz4o
V1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgY29uc3QmKTo6J2xhbWJk
YTAnKCk+KHZvaWQgY29uc3QqLCBXVEY6OkxvY2sgY29uc3QmLCBib29sIFdURjo6Q29uZGl0aW9u
Ojp3YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVXaXRoRHluYW1pY0Ns
b2NrVHlwZSBjb25zdCYpOjonbGFtYmRhMCcoKSBjb25zdCYsIFdURjo6VGltZVdpdGhEeW5hbWlj
Q2xvY2tUeXBlIGNvbnN0JikgKyA5NiAoUGFya2luZ0xvdC5oOjgyKQo1ICAgSmF2YVNjcmlwdENv
cmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGE3YTEzYyBib29sIFdURjo6Q29uZGl0aW9u
Ojp3YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVXaXRoRHluYW1pY0Ns
b2NrVHlwZSBjb25zdCYpICsgMTQwIChDb25kaXRpb24uaDo3NikKNiAgIEphdmFTY3JpcHRDb3Jl
ICAgICAgICAgICAgICAgIAkweDAwMDAwMDAyNDBhNzhhOTkgYm9vbCBXVEY6OkNvbmRpdGlvbjo6
d2FpdEZvcjxXVEY6OkxvY2s+KFdURjo6TG9jayYsIFdURjo6U2Vjb25kcykgKyAxMDUgKENvbmRp
dGlvbi5oOjExNikKNyAgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAgICAgIAkweDAwMDAwMDAy
NDBhN2JjNDkgV1RGOjpBdXRvbWF0aWNUaHJlYWQ6OnN0YXJ0KFdURjo6QWJzdHJhY3RMb2NrZXIg
Y29uc3QmKTo6JF8wOjpvcGVyYXRvcigpKCkgY29uc3QgKyA1MjEgKEF1dG9tYXRpY1RocmVhZC5j
cHA6MjA3KQo4ICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGE3
YjhiZSBXVEY6OkRldGFpbDo6Q2FsbGFibGVXcmFwcGVyPFdURjo6QXV0b21hdGljVGhyZWFkOjpz
dGFydChXVEY6OkFic3RyYWN0TG9ja2VyIGNvbnN0Jik6OiRfMCwgdm9pZD46OmNhbGwoKSArIDMw
IChGdW5jdGlvbi5oOjUyKQo5ICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAw
MDAwMDI0MGE4ZGUyMiBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+OjpvcGVyYXRvcigpKCkgY29uc3Qg
KyAxMzAgKEZ1bmN0aW9uLmg6NzkpCjEwICBKYXZhU2NyaXB0Q29yZSAgICAgICAgICAgICAgICAJ
MHgwMDAwMDAwMjQwYjI3ZTE4IFdURjo6VGhyZWFkOjplbnRyeVBvaW50KFdURjo6VGhyZWFkOjpO
ZXdUaHJlYWRDb250ZXh0KikgKyA0MjQgKFRocmVhZGluZy5jcHA6MTQ5KQoxMSAgSmF2YVNjcmlw
dENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGIzMjNhOCBXVEY6Ond0ZlRocmVhZEVu
dHJ5UG9pbnQodm9pZCopICsgMjQgKFRocmVhZGluZ1BPU0lYLmNwcDoyMDApCjEyICBsaWJzeXN0
ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAwMjNiNTkyZDM2IF9wdGhyZWFkX3N0YXJ0
ICsgMTI1CjEzICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAwMjNiNThm
NThmIHRocmVhZF9zdGFydCArIDE1CgpUaHJlYWQgMTI6OiBIZWFwIEhlbHBlciBUaHJlYWQKMCAg
IGxpYnN5c3RlbV9rZXJuZWwuZHlsaWIgICAgICAgIAkweDAwMDAwMDAyM2I1MzI5MTYgX19wc3lu
Y2hfY3Z3YWl0ICsgMTAKMSAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDAw
MDAyM2I1OTMwNDAgX3B0aHJlYWRfY29uZF93YWl0ICsgNzAxCjIgICBKYXZhU2NyaXB0Q29yZSAg
ICAgICAgICAgICAgICAJMHgwMDAwMDAwMjQwYjMzMDhjIFdURjo6VGhyZWFkQ29uZGl0aW9uOjp0
aW1lZFdhaXQoV1RGOjpNdXRleCYsIFdURjo6V2FsbFRpbWUpICsgMjUyIChUaHJlYWRpbmdQT1NJ
WC5jcHA6NTQyKQozICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0
MGFlM2U1YiBXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5SW1wbCh2b2lkIGNvbnN0
KiwgV1RGOjpTY29wZWRMYW1iZGE8Ym9vbCAoKT4gY29uc3QmLCBXVEY6OlNjb3BlZExhbWJkYTx2
b2lkICgpPiBjb25zdCYsIFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0JikgKyA0
MjcgKFBhcmtpbmdMb3QuY3BwOjYwNCkKNCAgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAgICAg
IAkweDAwMDAwMDAyNDBhN2EyMzAgV1RGOjpQYXJraW5nTG90OjpQYXJrUmVzdWx0IFdURjo6UGFy
a2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHk8Ym9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVudGls
PFdURjo6TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgY29u
c3QmKTo6J2xhbWJkYScoKSwgYm9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVudGlsPFdURjo6TG9j
az4oV1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgY29uc3QmKTo6J2xh
bWJkYTAnKCk+KHZvaWQgY29uc3QqLCBXVEY6OkxvY2sgY29uc3QmLCBib29sIFdURjo6Q29uZGl0
aW9uOjp3YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVXaXRoRHluYW1p
Y0Nsb2NrVHlwZSBjb25zdCYpOjonbGFtYmRhMCcoKSBjb25zdCYsIFdURjo6VGltZVdpdGhEeW5h
bWljQ2xvY2tUeXBlIGNvbnN0JikgKyA5NiAoUGFya2luZ0xvdC5oOjgyKQo1ICAgSmF2YVNjcmlw
dENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGE3YTEzYyBib29sIFdURjo6Q29uZGl0
aW9uOjp3YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVXaXRoRHluYW1p
Y0Nsb2NrVHlwZSBjb25zdCYpICsgMTQwIChDb25kaXRpb24uaDo3NikKNiAgIEphdmFTY3JpcHRD
b3JlICAgICAgICAgICAgICAgIAkweDAwMDAwMDAyNDBhNzhhOTkgYm9vbCBXVEY6OkNvbmRpdGlv
bjo6d2FpdEZvcjxXVEY6OkxvY2s+KFdURjo6TG9jayYsIFdURjo6U2Vjb25kcykgKyAxMDUgKENv
bmRpdGlvbi5oOjExNikKNyAgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAgICAgIAkweDAwMDAw
MDAyNDBhN2JjNDkgV1RGOjpBdXRvbWF0aWNUaHJlYWQ6OnN0YXJ0KFdURjo6QWJzdHJhY3RMb2Nr
ZXIgY29uc3QmKTo6JF8wOjpvcGVyYXRvcigpKCkgY29uc3QgKyA1MjEgKEF1dG9tYXRpY1RocmVh
ZC5jcHA6MjA3KQo4ICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0
MGE3YjhiZSBXVEY6OkRldGFpbDo6Q2FsbGFibGVXcmFwcGVyPFdURjo6QXV0b21hdGljVGhyZWFk
OjpzdGFydChXVEY6OkFic3RyYWN0TG9ja2VyIGNvbnN0Jik6OiRfMCwgdm9pZD46OmNhbGwoKSAr
IDMwIChGdW5jdGlvbi5oOjUyKQo5ICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4
MDAwMDAwMDI0MGE4ZGUyMiBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+OjpvcGVyYXRvcigpKCkgY29u
c3QgKyAxMzAgKEZ1bmN0aW9uLmg6NzkpCjEwICBKYXZhU2NyaXB0Q29yZSAgICAgICAgICAgICAg
ICAJMHgwMDAwMDAwMjQwYjI3ZTE4IFdURjo6VGhyZWFkOjplbnRyeVBvaW50KFdURjo6VGhyZWFk
OjpOZXdUaHJlYWRDb250ZXh0KikgKyA0MjQgKFRocmVhZGluZy5jcHA6MTQ5KQoxMSAgSmF2YVNj
cmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGIzMjNhOCBXVEY6Ond0ZlRocmVh
ZEVudHJ5UG9pbnQodm9pZCopICsgMjQgKFRocmVhZGluZ1BPU0lYLmNwcDoyMDApCjEyICBsaWJz
eXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAwMjNiNTkyZDM2IF9wdGhyZWFkX3N0
YXJ0ICsgMTI1CjEzICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAwMjNi
NThmNThmIHRocmVhZF9zdGFydCArIDE1CgpUaHJlYWQgMTM6OiBIZWFwIEhlbHBlciBUaHJlYWQK
MCAgIGxpYnN5c3RlbV9rZXJuZWwuZHlsaWIgICAgICAgIAkweDAwMDAwMDAyM2I1MzI5MTYgX19w
c3luY2hfY3Z3YWl0ICsgMTAKMSAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAw
MDAwMDAyM2I1OTMwNDAgX3B0aHJlYWRfY29uZF93YWl0ICsgNzAxCjIgICBKYXZhU2NyaXB0Q29y
ZSAgICAgICAgICAgICAgICAJMHgwMDAwMDAwMjQwYjMzMDhjIFdURjo6VGhyZWFkQ29uZGl0aW9u
Ojp0aW1lZFdhaXQoV1RGOjpNdXRleCYsIFdURjo6V2FsbFRpbWUpICsgMjUyIChUaHJlYWRpbmdQ
T1NJWC5jcHA6NTQyKQozICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAw
MDI0MGFlM2U1YiBXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5SW1wbCh2b2lkIGNv
bnN0KiwgV1RGOjpTY29wZWRMYW1iZGE8Ym9vbCAoKT4gY29uc3QmLCBXVEY6OlNjb3BlZExhbWJk
YTx2b2lkICgpPiBjb25zdCYsIFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0Jikg
KyA0MjcgKFBhcmtpbmdMb3QuY3BwOjYwNCkKNCAgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAg
ICAgIAkweDAwMDAwMDAyNDBhN2EyMzAgV1RGOjpQYXJraW5nTG90OjpQYXJrUmVzdWx0IFdURjo6
UGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHk8Ym9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVu
dGlsPFdURjo6TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUg
Y29uc3QmKTo6J2xhbWJkYScoKSwgYm9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVudGlsPFdURjo6
TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgY29uc3QmKTo6
J2xhbWJkYTAnKCk+KHZvaWQgY29uc3QqLCBXVEY6OkxvY2sgY29uc3QmLCBib29sIFdURjo6Q29u
ZGl0aW9uOjp3YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVXaXRoRHlu
YW1pY0Nsb2NrVHlwZSBjb25zdCYpOjonbGFtYmRhMCcoKSBjb25zdCYsIFdURjo6VGltZVdpdGhE
eW5hbWljQ2xvY2tUeXBlIGNvbnN0JikgKyA5NiAoUGFya2luZ0xvdC5oOjgyKQo1ICAgSmF2YVNj
cmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGE3YTEzYyBib29sIFdURjo6Q29u
ZGl0aW9uOjp3YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVXaXRoRHlu
YW1pY0Nsb2NrVHlwZSBjb25zdCYpICsgMTQwIChDb25kaXRpb24uaDo3NikKNiAgIEphdmFTY3Jp
cHRDb3JlICAgICAgICAgICAgICAgIAkweDAwMDAwMDAyNDBhNzhhOTkgYm9vbCBXVEY6OkNvbmRp
dGlvbjo6d2FpdEZvcjxXVEY6OkxvY2s+KFdURjo6TG9jayYsIFdURjo6U2Vjb25kcykgKyAxMDUg
KENvbmRpdGlvbi5oOjExNikKNyAgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAgICAgIAkweDAw
MDAwMDAyNDBhN2JjNDkgV1RGOjpBdXRvbWF0aWNUaHJlYWQ6OnN0YXJ0KFdURjo6QWJzdHJhY3RM
b2NrZXIgY29uc3QmKTo6JF8wOjpvcGVyYXRvcigpKCkgY29uc3QgKyA1MjEgKEF1dG9tYXRpY1Ro
cmVhZC5jcHA6MjA3KQo4ICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAw
MDI0MGE3YjhiZSBXVEY6OkRldGFpbDo6Q2FsbGFibGVXcmFwcGVyPFdURjo6QXV0b21hdGljVGhy
ZWFkOjpzdGFydChXVEY6OkFic3RyYWN0TG9ja2VyIGNvbnN0Jik6OiRfMCwgdm9pZD46OmNhbGwo
KSArIDMwIChGdW5jdGlvbi5oOjUyKQo5ICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAg
CTB4MDAwMDAwMDI0MGE4ZGUyMiBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+OjpvcGVyYXRvcigpKCkg
Y29uc3QgKyAxMzAgKEZ1bmN0aW9uLmg6NzkpCjEwICBKYXZhU2NyaXB0Q29yZSAgICAgICAgICAg
ICAgICAJMHgwMDAwMDAwMjQwYjI3ZTE4IFdURjo6VGhyZWFkOjplbnRyeVBvaW50KFdURjo6VGhy
ZWFkOjpOZXdUaHJlYWRDb250ZXh0KikgKyA0MjQgKFRocmVhZGluZy5jcHA6MTQ5KQoxMSAgSmF2
YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGIzMjNhOCBXVEY6Ond0ZlRo
cmVhZEVudHJ5UG9pbnQodm9pZCopICsgMjQgKFRocmVhZGluZ1BPU0lYLmNwcDoyMDApCjEyICBs
aWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAwMjNiNTkyZDM2IF9wdGhyZWFk
X3N0YXJ0ICsgMTI1CjEzICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAw
MjNiNThmNThmIHRocmVhZF9zdGFydCArIDE1CgpUaHJlYWQgMTQ6OiBIZWFwIEhlbHBlciBUaHJl
YWQKMCAgIGxpYnN5c3RlbV9rZXJuZWwuZHlsaWIgICAgICAgIAkweDAwMDAwMDAyM2I1MzI5MTYg
X19wc3luY2hfY3Z3YWl0ICsgMTAKMSAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkw
eDAwMDAwMDAyM2I1OTMwNDAgX3B0aHJlYWRfY29uZF93YWl0ICsgNzAxCjIgICBKYXZhU2NyaXB0
Q29yZSAgICAgICAgICAgICAgICAJMHgwMDAwMDAwMjQwYjMzMDhjIFdURjo6VGhyZWFkQ29uZGl0
aW9uOjp0aW1lZFdhaXQoV1RGOjpNdXRleCYsIFdURjo6V2FsbFRpbWUpICsgMjUyIChUaHJlYWRp
bmdQT1NJWC5jcHA6NTQyKQozICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAw
MDAwMDI0MGFlM2U1YiBXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5SW1wbCh2b2lk
IGNvbnN0KiwgV1RGOjpTY29wZWRMYW1iZGE8Ym9vbCAoKT4gY29uc3QmLCBXVEY6OlNjb3BlZExh
bWJkYTx2b2lkICgpPiBjb25zdCYsIFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0
JikgKyA0MjcgKFBhcmtpbmdMb3QuY3BwOjYwNCkKNCAgIEphdmFTY3JpcHRDb3JlICAgICAgICAg
ICAgICAgIAkweDAwMDAwMDAyNDBhN2EyMzAgV1RGOjpQYXJraW5nTG90OjpQYXJrUmVzdWx0IFdU
Rjo6UGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHk8Ym9vbCBXVEY6OkNvbmRpdGlvbjo6d2Fp
dFVudGlsPFdURjo6TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5
cGUgY29uc3QmKTo6J2xhbWJkYScoKSwgYm9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVudGlsPFdU
Rjo6TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgY29uc3Qm
KTo6J2xhbWJkYTAnKCk+KHZvaWQgY29uc3QqLCBXVEY6OkxvY2sgY29uc3QmLCBib29sIFdURjo6
Q29uZGl0aW9uOjp3YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVXaXRo
RHluYW1pY0Nsb2NrVHlwZSBjb25zdCYpOjonbGFtYmRhMCcoKSBjb25zdCYsIFdURjo6VGltZVdp
dGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0JikgKyA5NiAoUGFya2luZ0xvdC5oOjgyKQo1ICAgSmF2
YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGE3YTEzYyBib29sIFdURjo6
Q29uZGl0aW9uOjp3YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVXaXRo
RHluYW1pY0Nsb2NrVHlwZSBjb25zdCYpICsgMTQwIChDb25kaXRpb24uaDo3NikKNiAgIEphdmFT
Y3JpcHRDb3JlICAgICAgICAgICAgICAgIAkweDAwMDAwMDAyNDBhNzhhOTkgYm9vbCBXVEY6OkNv
bmRpdGlvbjo6d2FpdEZvcjxXVEY6OkxvY2s+KFdURjo6TG9jayYsIFdURjo6U2Vjb25kcykgKyAx
MDUgKENvbmRpdGlvbi5oOjExNikKNyAgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAgICAgIAkw
eDAwMDAwMDAyNDBhN2JjNDkgV1RGOjpBdXRvbWF0aWNUaHJlYWQ6OnN0YXJ0KFdURjo6QWJzdHJh
Y3RMb2NrZXIgY29uc3QmKTo6JF8wOjpvcGVyYXRvcigpKCkgY29uc3QgKyA1MjEgKEF1dG9tYXRp
Y1RocmVhZC5jcHA6MjA3KQo4ICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAw
MDAwMDI0MGE3YjhiZSBXVEY6OkRldGFpbDo6Q2FsbGFibGVXcmFwcGVyPFdURjo6QXV0b21hdGlj
VGhyZWFkOjpzdGFydChXVEY6OkFic3RyYWN0TG9ja2VyIGNvbnN0Jik6OiRfMCwgdm9pZD46OmNh
bGwoKSArIDMwIChGdW5jdGlvbi5oOjUyKQo5ICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAg
ICAgCTB4MDAwMDAwMDI0MGE4ZGUyMiBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+OjpvcGVyYXRvcigp
KCkgY29uc3QgKyAxMzAgKEZ1bmN0aW9uLmg6NzkpCjEwICBKYXZhU2NyaXB0Q29yZSAgICAgICAg
ICAgICAgICAJMHgwMDAwMDAwMjQwYjI3ZTE4IFdURjo6VGhyZWFkOjplbnRyeVBvaW50KFdURjo6
VGhyZWFkOjpOZXdUaHJlYWRDb250ZXh0KikgKyA0MjQgKFRocmVhZGluZy5jcHA6MTQ5KQoxMSAg
SmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGIzMjNhOCBXVEY6Ond0
ZlRocmVhZEVudHJ5UG9pbnQodm9pZCopICsgMjQgKFRocmVhZGluZ1BPU0lYLmNwcDoyMDApCjEy
ICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAwMjNiNTkyZDM2IF9wdGhy
ZWFkX3N0YXJ0ICsgMTI1CjEzICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAw
MDAwMjNiNThmNThmIHRocmVhZF9zdGFydCArIDE1CgpUaHJlYWQgMTU6OiBIZWFwIEhlbHBlciBU
aHJlYWQKMCAgIGxpYnN5c3RlbV9rZXJuZWwuZHlsaWIgICAgICAgIAkweDAwMDAwMDAyM2I1MzI5
MTYgX19wc3luY2hfY3Z3YWl0ICsgMTAKMSAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAg
IAkweDAwMDAwMDAyM2I1OTMwNDAgX3B0aHJlYWRfY29uZF93YWl0ICsgNzAxCjIgICBKYXZhU2Ny
aXB0Q29yZSAgICAgICAgICAgICAgICAJMHgwMDAwMDAwMjQwYjMzMDhjIFdURjo6VGhyZWFkQ29u
ZGl0aW9uOjp0aW1lZFdhaXQoV1RGOjpNdXRleCYsIFdURjo6V2FsbFRpbWUpICsgMjUyIChUaHJl
YWRpbmdQT1NJWC5jcHA6NTQyKQozICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4
MDAwMDAwMDI0MGFlM2U1YiBXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5SW1wbCh2
b2lkIGNvbnN0KiwgV1RGOjpTY29wZWRMYW1iZGE8Ym9vbCAoKT4gY29uc3QmLCBXVEY6OlNjb3Bl
ZExhbWJkYTx2b2lkICgpPiBjb25zdCYsIFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGNv
bnN0JikgKyA0MjcgKFBhcmtpbmdMb3QuY3BwOjYwNCkKNCAgIEphdmFTY3JpcHRDb3JlICAgICAg
ICAgICAgICAgIAkweDAwMDAwMDAyNDBhN2EyMzAgV1RGOjpQYXJraW5nTG90OjpQYXJrUmVzdWx0
IFdURjo6UGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHk8Ym9vbCBXVEY6OkNvbmRpdGlvbjo6
d2FpdFVudGlsPFdURjo6TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9j
a1R5cGUgY29uc3QmKTo6J2xhbWJkYScoKSwgYm9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVudGls
PFdURjo6TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgY29u
c3QmKTo6J2xhbWJkYTAnKCk+KHZvaWQgY29uc3QqLCBXVEY6OkxvY2sgY29uc3QmLCBib29sIFdU
Rjo6Q29uZGl0aW9uOjp3YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVX
aXRoRHluYW1pY0Nsb2NrVHlwZSBjb25zdCYpOjonbGFtYmRhMCcoKSBjb25zdCYsIFdURjo6VGlt
ZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0JikgKyA5NiAoUGFya2luZ0xvdC5oOjgyKQo1ICAg
SmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGE3YTEzYyBib29sIFdU
Rjo6Q29uZGl0aW9uOjp3YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRpbWVX
aXRoRHluYW1pY0Nsb2NrVHlwZSBjb25zdCYpICsgMTQwIChDb25kaXRpb24uaDo3NikKNiAgIEph
dmFTY3JpcHRDb3JlICAgICAgICAgICAgICAgIAkweDAwMDAwMDAyNDBhNzhhOTkgYm9vbCBXVEY6
OkNvbmRpdGlvbjo6d2FpdEZvcjxXVEY6OkxvY2s+KFdURjo6TG9jayYsIFdURjo6U2Vjb25kcykg
KyAxMDUgKENvbmRpdGlvbi5oOjExNikKNyAgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAgICAg
IAkweDAwMDAwMDAyNDBhN2JjNDkgV1RGOjpBdXRvbWF0aWNUaHJlYWQ6OnN0YXJ0KFdURjo6QWJz
dHJhY3RMb2NrZXIgY29uc3QmKTo6JF8wOjpvcGVyYXRvcigpKCkgY29uc3QgKyA1MjEgKEF1dG9t
YXRpY1RocmVhZC5jcHA6MjA3KQo4ICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4
MDAwMDAwMDI0MGE3YjhiZSBXVEY6OkRldGFpbDo6Q2FsbGFibGVXcmFwcGVyPFdURjo6QXV0b21h
dGljVGhyZWFkOjpzdGFydChXVEY6OkFic3RyYWN0TG9ja2VyIGNvbnN0Jik6OiRfMCwgdm9pZD46
OmNhbGwoKSArIDMwIChGdW5jdGlvbi5oOjUyKQo5ICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAg
ICAgICAgCTB4MDAwMDAwMDI0MGE4ZGUyMiBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+OjpvcGVyYXRv
cigpKCkgY29uc3QgKyAxMzAgKEZ1bmN0aW9uLmg6NzkpCjEwICBKYXZhU2NyaXB0Q29yZSAgICAg
ICAgICAgICAgICAJMHgwMDAwMDAwMjQwYjI3ZTE4IFdURjo6VGhyZWFkOjplbnRyeVBvaW50KFdU
Rjo6VGhyZWFkOjpOZXdUaHJlYWRDb250ZXh0KikgKyA0MjQgKFRocmVhZGluZy5jcHA6MTQ5KQox
MSAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGIzMjNhOCBXVEY6
Ond0ZlRocmVhZEVudHJ5UG9pbnQodm9pZCopICsgMjQgKFRocmVhZGluZ1BPU0lYLmNwcDoyMDAp
CjEyICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAwMjNiNTkyZDM2IF9w
dGhyZWFkX3N0YXJ0ICsgMTI1CjEzICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgw
MDAwMDAwMjNiNThmNThmIHRocmVhZF9zdGFydCArIDE1CgpUaHJlYWQgMTY6OiBIZWFwIEhlbHBl
ciBUaHJlYWQKMCAgIGxpYnN5c3RlbV9rZXJuZWwuZHlsaWIgICAgICAgIAkweDAwMDAwMDAyM2I1
MzI5MTYgX19wc3luY2hfY3Z3YWl0ICsgMTAKMSAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAg
ICAgIAkweDAwMDAwMDAyM2I1OTMwNDAgX3B0aHJlYWRfY29uZF93YWl0ICsgNzAxCjIgICBKYXZh
U2NyaXB0Q29yZSAgICAgICAgICAgICAgICAJMHgwMDAwMDAwMjQwYjMzMDhjIFdURjo6VGhyZWFk
Q29uZGl0aW9uOjp0aW1lZFdhaXQoV1RGOjpNdXRleCYsIFdURjo6V2FsbFRpbWUpICsgMjUyIChU
aHJlYWRpbmdQT1NJWC5jcHA6NTQyKQozICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAg
CTB4MDAwMDAwMDI0MGFlM2U1YiBXVEY6OlBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5SW1w
bCh2b2lkIGNvbnN0KiwgV1RGOjpTY29wZWRMYW1iZGE8Ym9vbCAoKT4gY29uc3QmLCBXVEY6OlNj
b3BlZExhbWJkYTx2b2lkICgpPiBjb25zdCYsIFdURjo6VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBl
IGNvbnN0JikgKyA0MjcgKFBhcmtpbmdMb3QuY3BwOjYwNCkKNCAgIEphdmFTY3JpcHRDb3JlICAg
ICAgICAgICAgICAgIAkweDAwMDAwMDAyNDBhN2EyMzAgV1RGOjpQYXJraW5nTG90OjpQYXJrUmVz
dWx0IFdURjo6UGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHk8Ym9vbCBXVEY6OkNvbmRpdGlv
bjo6d2FpdFVudGlsPFdURjo6TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWND
bG9ja1R5cGUgY29uc3QmKTo6J2xhbWJkYScoKSwgYm9vbCBXVEY6OkNvbmRpdGlvbjo6d2FpdFVu
dGlsPFdURjo6TG9jaz4oV1RGOjpMb2NrJiwgV1RGOjpUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUg
Y29uc3QmKTo6J2xhbWJkYTAnKCk+KHZvaWQgY29uc3QqLCBXVEY6OkxvY2sgY29uc3QmLCBib29s
IFdURjo6Q29uZGl0aW9uOjp3YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRp
bWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBjb25zdCYpOjonbGFtYmRhMCcoKSBjb25zdCYsIFdURjo6
VGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlIGNvbnN0JikgKyA5NiAoUGFya2luZ0xvdC5oOjgyKQo1
ICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGE3YTEzYyBib29s
IFdURjo6Q29uZGl0aW9uOjp3YWl0VW50aWw8V1RGOjpMb2NrPihXVEY6OkxvY2smLCBXVEY6OlRp
bWVXaXRoRHluYW1pY0Nsb2NrVHlwZSBjb25zdCYpICsgMTQwIChDb25kaXRpb24uaDo3NikKNiAg
IEphdmFTY3JpcHRDb3JlICAgICAgICAgICAgICAgIAkweDAwMDAwMDAyNDBhNzhhOTkgYm9vbCBX
VEY6OkNvbmRpdGlvbjo6d2FpdEZvcjxXVEY6OkxvY2s+KFdURjo6TG9jayYsIFdURjo6U2Vjb25k
cykgKyAxMDUgKENvbmRpdGlvbi5oOjExNikKNyAgIEphdmFTY3JpcHRDb3JlICAgICAgICAgICAg
ICAgIAkweDAwMDAwMDAyNDBhN2JjNDkgV1RGOjpBdXRvbWF0aWNUaHJlYWQ6OnN0YXJ0KFdURjo6
QWJzdHJhY3RMb2NrZXIgY29uc3QmKTo6JF8wOjpvcGVyYXRvcigpKCkgY29uc3QgKyA1MjEgKEF1
dG9tYXRpY1RocmVhZC5jcHA6MjA3KQo4ICAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAg
CTB4MDAwMDAwMDI0MGE3YjhiZSBXVEY6OkRldGFpbDo6Q2FsbGFibGVXcmFwcGVyPFdURjo6QXV0
b21hdGljVGhyZWFkOjpzdGFydChXVEY6OkFic3RyYWN0TG9ja2VyIGNvbnN0Jik6OiRfMCwgdm9p
ZD46OmNhbGwoKSArIDMwIChGdW5jdGlvbi5oOjUyKQo5ICAgSmF2YVNjcmlwdENvcmUgICAgICAg
ICAgICAgICAgCTB4MDAwMDAwMDI0MGE4ZGUyMiBXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+OjpvcGVy
YXRvcigpKCkgY29uc3QgKyAxMzAgKEZ1bmN0aW9uLmg6NzkpCjEwICBKYXZhU2NyaXB0Q29yZSAg
ICAgICAgICAgICAgICAJMHgwMDAwMDAwMjQwYjI3ZTE4IFdURjo6VGhyZWFkOjplbnRyeVBvaW50
KFdURjo6VGhyZWFkOjpOZXdUaHJlYWRDb250ZXh0KikgKyA0MjQgKFRocmVhZGluZy5jcHA6MTQ5
KQoxMSAgSmF2YVNjcmlwdENvcmUgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDI0MGIzMjNhOCBX
VEY6Ond0ZlRocmVhZEVudHJ5UG9pbnQodm9pZCopICsgMjQgKFRocmVhZGluZ1BPU0lYLmNwcDoy
MDApCjEyICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwMDAwMjNiNTkyZDM2
IF9wdGhyZWFkX3N0YXJ0ICsgMTI1CjEzICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJ
MHgwMDAwMDAwMjNiNThmNThmIHRocmVhZF9zdGFydCArIDE1CgpUaHJlYWQgMCBjcmFzaGVkIHdp
dGggWDg2IFRocmVhZCBTdGF0ZSAoNjQtYml0KToKICByYXg6IDB4MDAwMDAwMDBiYmFkYmVlZiAg
cmJ4OiAweDAwMDA3ZmI5NDZkMTU3MTAgIHJjeDogMHgwMDAwMDAwMjQyNDRmMmMwICByZHg6IDB4
ZGJjZGE3NDc0ZTE3MDBkNAogIHJkaTogMHgwMDAwN2ZmZWU5OGEyOTQ4ICByc2k6IDB4MDAwMDAw
MDAwMDAwMDAwMCAgcmJwOiAweDAwMDA3ZmZlZTk4YTJhYTAgIHJzcDogMHgwMDAwN2ZmZWU5OGEy
YWEwCiAgIHI4OiAweDAwMDAwMDAwMDAwMTMwYTggICByOTogMHgwMDAwMDAwMDAwMDAwMDAwICBy
MTA6IDB4MDAwMDAwMDIzYjJjZDA3OCAgcjExOiAweDAwMDAwMDAyM2IyY2QwNzAKICByMTI6IDB4
MDAwMDAwMDI3MGNhZDAxMCAgcjEzOiAweDAwMDAwMDAyNzFkYTM4MjAgIHIxNDogMHhmZmZlMDAw
MDAwMDAwMDAwICByMTU6IDB4ZmZmZTAwMDAwMDAwMDAwMgogIHJpcDogMHgwMDAwMDAwMjQwYTY2
ZDllICByZmw6IDB4MDAwMDAwMDAwMDAxMDIwNiAgY3IyOiAweDAwMDAwMDAwYmJhZGJlZWYKICAK
TG9naWNhbCBDUFU6ICAgICAwCkVycm9yIENvZGU6ICAgICAgMHgwMDAwMDAwNiAobm8gbWFwcGlu
ZyBmb3IgdXNlciBkYXRhIHJlYWQpClRyYXAgTnVtYmVyOiAgICAgMTQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383284</attachid>
            <date>2019-11-11 10:44:12 -0800</date>
            <delta_ts>2019-11-11 14:14:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203101-20191111104411.patch</filename>
            <type>text/plain</type>
            <size>30933</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWQ4NjdmNTM0MTI3ZTNk
ODU0NjczYWMyYmI4NWI1Yzg1NmYzMzU4Zi4uODViYmIwM2MyNjBkMzEyYTg1NjkwMTIwMmQ0NmVk
ZjkwNGE5ZWFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTExLTA4ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBQYXltZW50UmVxdWVzdCAvIFBh
eW1lbnRSZXNwb25zZSBzaG91bGQgbm90IHByZXZlbnQgZW50ZXJpbmcgdGhlIGJhY2svZm9yd2Fy
ZCBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAzMTAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81Njc0NDQwOT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBSZW1vdmVkIFBheW1lbnRSZXF1ZXN0J3Mg
YW5kIFBheW1lbnRSZXNwb25zZSdzIG92ZXJyaWRlIG9mCisgICAgICAgIEFjdGl2ZURPTU9iamVj
dDo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVEIGFuZCBp
bXBsZW1lbnRlZAorICAgICAgICBBY3RpdmVET01PYmplY3Q6OnN1c3BlbmQgaW5zdGVhZC4KKwor
ICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNsb3Nl
ZC1wYXltZW50LXJlcXVlc3QuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9w
YXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNvbXBsZXRlZC1wYXltZW50LXJlc3BvbnNlLmh0dHBz
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNo
ZS1jcmVhdGVkLXBheW1lbnQtcmVxdWVzdC5odHRwcy5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY3JlYXRlZC1wYXltZW50LXJlc3BvbnNl
Lmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFn
ZS1jYWNoZS1pbnRlcmFjdGl2ZS1wYXltZW50LXJlcXVlc3QuaHR0cHMuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLXJldHJpZWQtcGF5bWVu
dC1yZXNwb25zZS5odHRwcy5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0
L1BheW1lbnRSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0Ojpz
dXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpzaG91bGRQcmV2ZW50
RW50ZXJpbmdCYWNrRm9yd2FyZENhY2hlX0RFUFJFQ0FURUQgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaDoKKyAgICAgICAg
KiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYXltZW50UmVzcG9uc2U6OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6UGF5
bWVudFJlc3BvbnNlOjpzaG91bGRQcmV2ZW50RW50ZXJpbmdCYWNrRm9yd2FyZENhY2hlX0RFUFJF
Q0FURUQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3Qv
UGF5bWVudFJlc3BvbnNlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVm
ZXJyZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVmZXJyZWRQcm9taXNlOjpjYWxsRnVuY3Rp
b24pOgorCiAyMDE5LTExLTEwICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0xGQ11bSUZDXSBNb3ZlIExpbmU6OlJ1bidzIGxpbmUgbGF5b3V0IHNwZWNpZmljIGxv
Z2ljIHRvIElubGluZUl0ZW1SdW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
cGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKaW5kZXggZGFmNTE4MzA4ZjA1NDk0
NzljMDk2Mzc1YWY2YzQyNzcxMzY0ZTZlMC4uNGM3NTM1MTNkMDg5NDdkMzBlNTUzNzQ0M2ViZDE0
MGVkZWI4YmYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXlt
ZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKQEAgLTQ4OCw2ICs0ODgsMjAgQEAgdm9pZCBQ
YXltZW50UmVxdWVzdDo6c3RvcCgpCiAgICAgc2V0dGxlU2hvd1Byb21pc2UoRXhjZXB0aW9uIHsg
QWJvcnRFcnJvciB9KTsKIH0KIAordm9pZCBQYXltZW50UmVxdWVzdDo6c3VzcGVuZChSZWFzb25G
b3JTdXNwZW5zaW9uIHJlYXNvbikKK3sKKyAgICBpZiAocmVhc29uICE9IFJlYXNvbkZvclN1c3Bl
bnNpb246OkJhY2tGb3J3YXJkQ2FjaGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9h
Y3RpdmVQYXltZW50SGFuZGxlcikgeworICAgICAgICBBU1NFUlQoIW1fc2hvd1Byb21pc2UpOwor
ICAgICAgICBBU1NFUlQobV9zdGF0ZSAhPSBTdGF0ZTo6SW50ZXJhY3RpdmUpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgc3RvcCgpOworfQorCiAvLyBodHRwczovL3d3dy53My5vcmcv
VFIvcGF5bWVudC1yZXF1ZXN0LyNhYm9ydCgpLW1ldGhvZAogdm9pZCBQYXltZW50UmVxdWVzdDo6
YWJvcnQoQWJvcnRQcm9taXNlJiYgcHJvbWlzZSkKIHsKQEAgLTUzOSwxMiArNTUzLDYgQEAgT3B0
aW9uYWw8UGF5bWVudFNoaXBwaW5nVHlwZT4gUGF5bWVudFJlcXVlc3Q6OnNoaXBwaW5nVHlwZSgp
IGNvbnN0CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAotLy8gRklYTUU6IFRoaXMgc2hv
dWxkIG5ldmVyIHByZXZlbnQgZW50ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KLWJvb2wg
UGF5bWVudFJlcXVlc3Q6OnNob3VsZFByZXZlbnRFbnRlcmluZ0JhY2tGb3J3YXJkQ2FjaGVfREVQ
UkVDQVRFRCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGhhc1BlbmRpbmdBY3Rpdml0eSgpOwotfQot
CiB2b2lkIFBheW1lbnRSZXF1ZXN0OjpzaGlwcGluZ0FkZHJlc3NDaGFuZ2VkKFJlZjxQYXltZW50
QWRkcmVzcz4mJiBzaGlwcGluZ0FkZHJlc3MpCiB7CiAgICAgd2hlbkRldGFpbHNTZXR0bGVkKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgc2hpcHBpbmdBZGRyZXNzID0g
bWFrZVJlZlB0cihzaGlwcGluZ0FkZHJlc3MuZ2V0KCkpXSgpIG11dGFibGUgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5o
CmluZGV4IDQwYTVlYTJmOGRmMWU3N2IxZjVlNmMwZWI4ZTgxMWYyMjY2YzRiMWYuLjY4YWNhYzk2
YjJlN2JkYTJhMDVlZGY1YWNiNWZkOWFlNmY4ZDg5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmgKQEAgLTEyNiw4
ICsxMjYsOCBAQCBwcml2YXRlOgogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAgICAgY29uc3Qg
Y2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJQYXltZW50
UmVxdWVzdCI7IH0KLSAgICBib29sIHNob3VsZFByZXZlbnRFbnRlcmluZ0JhY2tGb3J3YXJkQ2Fj
aGVfREVQUkVDQVRFRCgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc3RvcCgpIGZpbmFsOworICAg
IHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBmaW5hbDsKIAogICAgIC8vIEV2ZW50
VGFyZ2V0CiAgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBQYXltZW50UmVxdWVzdEV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlw
ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9Q
YXltZW50UmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVz
dC9QYXltZW50UmVzcG9uc2UuY3BwCmluZGV4IDE2OTJkYzA2MmMyNDE5NDg5MGIwM2M1YzdmOGJh
NDE1MTQwZmE1MjMuLjA1ZDFjYTRiYjc2Zjg0ZTY2OTY0YjllZGExMzJlMGRiZjA1MzVlZWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJl
c3BvbnNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1Bh
eW1lbnRSZXNwb25zZS5jcHAKQEAgLTEyNSwxMyArMTI1LDYgQEAgdm9pZCBQYXltZW50UmVzcG9u
c2U6OnNldHRsZVJldHJ5UHJvbWlzZShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkKICAgICBt
X3JldHJ5UHJvbWlzZSA9IG51bGxwdHI7CiB9CiAKLS8vIEZJWE1FOiBUaGlzIHNob3VsZCBuZXZl
ciBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCi1ib29sIFBheW1lbnRS
ZXNwb25zZTo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVE
KCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9zdGF0ZSAhPSBTdGF0ZTo6U3RvcHBlZCk7Ci0gICAg
cmV0dXJuIGhhc1BlbmRpbmdBY3Rpdml0eSgpOwotfQotCiB2b2lkIFBheW1lbnRSZXNwb25zZTo6
c3RvcCgpCiB7CiAgICAgc2V0dGxlUmV0cnlQcm9taXNlKEV4Y2VwdGlvbiB7IEFib3J0RXJyb3Ig
fSk7CkBAIC0xMzksNiArMTMyLDIwIEBAIHZvaWQgUGF5bWVudFJlc3BvbnNlOjpzdG9wKCkKICAg
ICBtX3N0YXRlID0gU3RhdGU6OlN0b3BwZWQ7CiB9CiAKK3ZvaWQgUGF5bWVudFJlc3BvbnNlOjpz
dXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQoreworICAgIGlmIChyZWFzb24gIT0g
UmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OkNyZWF0ZWQpIHsKKyAgICAgICAgQVNTRVJUKCFo
YXNQZW5kaW5nQWN0aXZpdHkoKSk7CisgICAgICAgIEFTU0VSVCghbV9yZXRyeVByb21pc2UpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RvcCgpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoUEFZTUVOVF9SRVFVRVNUKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVzcG9uc2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNl
LmgKaW5kZXggNjU3ZmQ1NmM2MjUzYjk3N2IwNjE2M2UwNjc5ZTJkNzMxYTU4OWFmNS4uYzRmZjRi
NmYxYTA2NDg3ZTM1OGNiYjc2OGU1NTk1Nzk3NjRiMjdkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVzcG9uc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5oCkBAIC05
OCw4ICs5OCw4IEBAIHByaXZhdGU6CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICBjb25z
dCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlBheW1l
bnRSZXNwb25zZSI7IH0KLSAgICBib29sIHNob3VsZFByZXZlbnRFbnRlcmluZ0JhY2tGb3J3YXJk
Q2FjaGVfREVQUkVDQVRFRCgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc3RvcCgpIGZpbmFsOwor
ICAgIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBmaW5hbDsKIAogICAgIC8vIEV2
ZW50VGFyZ2V0CiAgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2Uo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBQYXltZW50UmVzcG9uc2VFdmVudFRhcmdldEludGVyZmFj
ZVR5cGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJv
bWlzZURlZmVycmVkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NUHJvbWlz
ZURlZmVycmVkLmNwcAppbmRleCAwYmM1YTg5OTg0Yjk2YjExNzVmY2M5YmVjZGM0MjZlNTUxNjll
MjIxLi4yYzAxZjZiMTRiNjNjOGVkOTI5YWYxN2Y2OGIwODdlZDIyY2VmMzdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Qcm9taXNlRGVmZXJyZWQuY3BwCkBA
IC01Miw4ICs1MiwxMiBAQCB2b2lkIERlZmVycmVkUHJvbWlzZTo6Y2FsbEZ1bmN0aW9uKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBSZXNvbHZlTQogICAgIGlmIChhY3RpdmVE
T01PYmplY3RzQXJlU3VzcGVuZGVkKCkpIHsKICAgICAgICAgSlNDOjpTdHJvbmc8SlNDOjpVbmtu
b3duLCBTaG91bGRTdHJvbmdEZXN0cnVjdG9yR3JhYkxvY2s6Olllcz4gc3Ryb25nUmVzb2x1dGlv
bihsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCksIHJlc29sdXRpb24pOwogICAgICAgICBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3
b3JraW5nLCAqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBtb2RlLCBzdHJvbmdSZXNvbHV0aW9uID0gV1RGTW92ZShzdHJvbmdS
ZXNvbHV0aW9uKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGlmICghc2hvdWxkSWdub3JlUmVx
dWVzdFRvRnVsZmlsbCgpKQotICAgICAgICAgICAgICAgIGNhbGxGdW5jdGlvbigqZ2xvYmFsT2Jq
ZWN0KCksIG1vZGUsIHN0cm9uZ1Jlc29sdXRpb24uZ2V0KCkpOworICAgICAgICAgICAgaWYgKHNo
b3VsZElnbm9yZVJlcXVlc3RUb0Z1bGZpbGwoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgICAgIEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QgPSBn
bG9iYWxPYmplY3QoKTsKKyAgICAgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2tlcihsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKKyAgICAgICAgICAgIGNhbGxGdW5jdGlvbigqZ2xvYmFsT2JqZWN0
KCksIG1vZGUsIHN0cm9uZ1Jlc29sdXRpb24uZ2V0KCkpOwogICAgICAgICB9KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhMWI5MzAxZDJhY2Y3ZDc5NDlhNGM0OGRjODUzMjI5MDkw
ZTJjMzg5Li5hZmM3MDI3MDA1NWJlNmYwNmZmM2NhMDdmYzY2NmNiYWZmNjZmZGM0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTktMTEtMDggIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29t
PgorCisgICAgICAgIFBheW1lbnRSZXF1ZXN0IC8gUGF5bWVudFJlc3BvbnNlIHNob3VsZCBub3Qg
cHJldmVudCBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMxMDEKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU2NzQ0NDA5PgorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisg
ICAgICAgICogaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNsb3NlZC1wYXlt
ZW50LXJlcXVlc3QuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY2xvc2VkLXBheW1lbnQtcmVxdWVzdC5odHRw
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2Ut
Y2FjaGUtY29tcGxldGVkLXBheW1lbnQtcmVzcG9uc2UuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY29tcGxl
dGVkLXBheW1lbnQtcmVzcG9uc2UuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNyZWF0ZWQtcGF5bWVudC1yZXF1ZXN0Lmh0
dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wYXltZW50cmVx
dWVzdC9wYWdlLWNhY2hlLWNyZWF0ZWQtcGF5bWVudC1yZXF1ZXN0Lmh0dHBzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jcmVhdGVk
LXBheW1lbnQtcmVzcG9uc2UuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY3JlYXRlZC1wYXltZW50LXJlc3Bv
bnNlLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVl
c3QvcGFnZS1jYWNoZS1pbnRlcmFjdGl2ZS1wYXltZW50LXJlcXVlc3QuaHR0cHMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2Fj
aGUtaW50ZXJhY3RpdmUtcGF5bWVudC1yZXF1ZXN0Lmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1yZXRyaWVkLXBheW1lbnQt
cmVzcG9uc2UuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtcmV0cmllZC1wYXltZW50LXJlc3BvbnNlLmh0dHBz
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHJlc291cmNlcy9qcy10ZXN0LmpzOgorICAgICAgICAo
c2hvdWxkUmVqZWN0KToKKyAgICAgICAgKHNob3VsZFJlamVjdFdpdGhFcnJvck5hbWUpOgorCiAy
MDE5LTExLTEwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIGlP
UzogZmFzdC9ldmVudHMvc2Nyb2xsLXN1YmZyYW1lLWluLXJlbmRlcmluZy11cGRhdGUuaHRtbCBh
bHdheXMgZmFpbHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJl
cXVlc3QvcGFnZS1jYWNoZS1jbG9zZWQtcGF5bWVudC1yZXF1ZXN0Lmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jbG9z
ZWQtcGF5bWVudC1yZXF1ZXN0Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNmIwNTVj
MzZmMWI1MGYxYmFjYjhkODIyNmYxOTQ0OTZmNzVjMGMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNsb3NlZC1wYXlt
ZW50LXJlcXVlc3QuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3RzIHRo
YXQgYSBwYWdlIHdpdGggYSBQYXltZW50UmVxdWVzdCBpbiB0aGUgQ2xvc2VkIHN0YXRlIGdvZXMg
aW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworQ3JlYXRpbmcgYSBQYXltZW50UmVxdWVzdCBpbiB0aGUgQ2xvc2VkIHN0YXRlLgorUEFT
UyByZXNwb25zZVByb21pc2UgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBBYm9ydEVycm9yOiBUaGUg
b3BlcmF0aW9uIHdhcyBhYm9ydGVkLi4KK3BhZ2VzaG93IC0gbm90IGZyb20gY2FjaGUKK3BhZ2Vo
aWRlIC0gZW50ZXJpbmcgY2FjaGUKK3BhZ2VzaG93IC0gZnJvbSBjYWNoZQorUEFTUyBQYWdlIGRp
ZCBlbnRlciBhbmQgd2FzIHJlc3RvcmVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorVGVz
dGluZyB0aGF0IFBheW1lbnRSZXF1ZXN0IHJlbWFpbnMgaW4gdGhlIENsb3NlZCBzdGF0ZS4KK1BB
U1MgcmVxdWVzdC5zaG93KCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBJbnZhbGlkU3RhdGVFcnJv
cjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY2xvc2VkLXBheW1lbnQtcmVx
dWVzdC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9w
YWdlLWNhY2hlLWNsb3NlZC1wYXltZW50LXJlcXVlc3QuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
YTYxZWE3YzUxNTBkM2NmNDgyMmY3MjUyYmNkYzE1MDI3M2UxNzdlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNsb3Nl
ZC1wYXltZW50LXJlcXVlc3QuaHR0cHMuaHRtbApAQCAtMCwwICsxLDUzIEBACis8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Jy9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvanMtdGVzdC1yZXNvdXJjZXMv
dWktaGVscGVyLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3BheW1lbnQt
cmVxdWVzdC5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQg
YSBwYWdlIHdpdGggYSBQYXltZW50UmVxdWVzdCBpbiB0aGUgQ2xvc2VkIHN0YXRlIGdvZXMgaW50
byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLicpOword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLCBhc3luYyBmdW5jdGlvbihl
dmVudCkgeworICAgIGRlYnVnKCdwYWdlc2hvdyAtICcgKyAoZXZlbnQucGVyc2lzdGVkID8gJycg
OiAnbm90ICcpICsgJ2Zyb20gY2FjaGUnKTsKKworICAgIGlmICghZXZlbnQucGVyc2lzdGVkKQor
ICAgICAgICByZXR1cm47CisKKyAgICB0ZXN0UGFzc2VkKCdQYWdlIGRpZCBlbnRlciBhbmQgd2Fz
IHJlc3RvcmVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZScpOworCisgICAgVUlIZWxwZXIu
d2l0aFVzZXJHZXN0dXJlKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBkZWJ1ZygnVGVzdGlu
ZyB0aGF0IFBheW1lbnRSZXF1ZXN0IHJlbWFpbnMgaW4gdGhlIENsb3NlZCBzdGF0ZS4nKTsKKyAg
ICAgICAgYXdhaXQgc2hvdWxkUmVqZWN0V2l0aEVycm9yTmFtZSgncmVxdWVzdC5zaG93KCknLCAn
SW52YWxpZFN0YXRlRXJyb3InKTsKKworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsK
K30sIGZhbHNlKTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VoaWRlJywgZnVuY3Rp
b24oZXZlbnQpIHsKKyAgICBkZWJ1ZygncGFnZWhpZGUgLSAnICsgKGV2ZW50LnBlcnNpc3RlZCA/
ICcnIDogJ25vdCAnKSArICdlbnRlcmluZyBjYWNoZScpOworCisgICAgaWYgKGV2ZW50LnBlcnNp
c3RlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgdGVzdEZhaWxlZCgnUGFnZSBmYWlsZWQgdG8g
ZW50ZXIgdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4nKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30s
IGZhbHNlKTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpIHsK
KyAgICBVSUhlbHBlci53aXRoVXNlckdlc3R1cmUoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAg
IGRlYnVnKCdDcmVhdGluZyBhIFBheW1lbnRSZXF1ZXN0IGluIHRoZSBDbG9zZWQgc3RhdGUuJyk7
CisgICAgICAgIHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoW3ZhbGlkUGF5bWVudE1ldGhv
ZCgpXSwgdmFsaWRQYXltZW50RGV0YWlscygpKTsKKyAgICAgICAgcmVzcG9uc2VQcm9taXNlID0g
cmVxdWVzdC5zaG93KCk7CisgICAgICAgIGF3YWl0IHJlcXVlc3QuYWJvcnQoKTsKKyAgICAgICAg
YXdhaXQgc2hvdWxkUmVqZWN0V2l0aEVycm9yTmFtZSgncmVzcG9uc2VQcm9taXNlJywgJ0Fib3J0
RXJyb3InKTsKKworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
d2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL25hdmlnYXRpb24vcmVzb3VyY2VzL3BhZ2UtY2FjaGUt
aGVscGVyLmh0bWwnOworICAgICAgICB9LCAwKTsKKyAgICB9KTsKK30sIGZhbHNlKTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNvbXBsZXRlZC1wYXltZW50LXJlc3BvbnNlLmh0
dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3Qv
cGFnZS1jYWNoZS1jb21wbGV0ZWQtcGF5bWVudC1yZXNwb25zZS5odHRwcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmI2ZGM2NjM2NDljZmNhYzdlNzViOTc3ZTBlNTY5YTVjZTg3NDE5NAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFn
ZS1jYWNoZS1jb21wbGV0ZWQtcGF5bWVudC1yZXNwb25zZS5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNyBAQAorVGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBhIFBheW1lbnRSZXNwb25zZSBp
biB0aGUgQ29tcGxldGVkIHN0YXRlIGdvZXMgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworQ3JlYXRpbmcgYSBQYXltZW50UmVzcG9u
c2UgaW4gdGhlIENvbXBsZXRlZCBzdGF0ZS4KK3BhZ2VzaG93IC0gbm90IGZyb20gY2FjaGUKK3Bh
Z2VoaWRlIC0gZW50ZXJpbmcgY2FjaGUKK3BhZ2VzaG93IC0gZnJvbSBjYWNoZQorUEFTUyBQYWdl
IGRpZCBlbnRlciBhbmQgd2FzIHJlc3RvcmVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZQor
VGVzdGluZyB0aGF0IFBheW1lbnRSZXNwb25zZSByZW1haW5zIGluIHRoZSBDb21wbGV0ZWQgc3Rh
dGUuCitQQVNTIHJlc3BvbnNlLmNvbXBsZXRlKCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBJbnZh
bGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLi4KK1BBU1Mg
cmVzcG9uc2UucmV0cnkoKSByZWplY3RlZCBwcm9taXNlICB3aXRoIEludmFsaWRTdGF0ZUVycm9y
OiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jb21wbGV0ZWQtcGF5bWVudC1y
ZXNwb25zZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVz
dC9wYWdlLWNhY2hlLWNvbXBsZXRlZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmFhYmY2ODNiYzViNTY3Njg4N2M5OWI2NmQ1MzI2MTMzNDIyZmIyYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNo
ZS1jb21wbGV0ZWQtcGF5bWVudC1yZXNwb25zZS5odHRwcy5odG1sCkBAIC0wLDAgKzEsNTQgQEAK
KzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0g
LS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0nL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QuanMnPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy9qcy10ZXN0
LXJlc291cmNlcy91aS1oZWxwZXIuanMnPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy9yZXNvdXJj
ZXMvcGF5bWVudC1yZXF1ZXN0LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbign
VGVzdHMgdGhhdCBhIHBhZ2Ugd2l0aCBhIFBheW1lbnRSZXNwb25zZSBpbiB0aGUgQ29tcGxldGVk
IHN0YXRlIGdvZXMgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLicpOword2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLCBh
c3luYyBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVnKCdwYWdlc2hvdyAtICcgKyAoZXZlbnQu
cGVyc2lzdGVkID8gJycgOiAnbm90ICcpICsgJ2Zyb20gY2FjaGUnKTsKKworICAgIGlmICghZXZl
bnQucGVyc2lzdGVkKQorICAgICAgICByZXR1cm47CisKKyAgICB0ZXN0UGFzc2VkKCdQYWdlIGRp
ZCBlbnRlciBhbmQgd2FzIHJlc3RvcmVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZScpOwor
CisgICAgZGVidWcoJ1Rlc3RpbmcgdGhhdCBQYXltZW50UmVzcG9uc2UgcmVtYWlucyBpbiB0aGUg
Q29tcGxldGVkIHN0YXRlLicpOworICAgIGF3YWl0IHNob3VsZFJlamVjdFdpdGhFcnJvck5hbWUo
J3Jlc3BvbnNlLmNvbXBsZXRlKCknLCAnSW52YWxpZFN0YXRlRXJyb3InKTsKKyAgICBhd2FpdCBz
aG91bGRSZWplY3RXaXRoRXJyb3JOYW1lKCdyZXNwb25zZS5yZXRyeSgpJywgJ0ludmFsaWRTdGF0
ZUVycm9yJyk7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIGZhbHNlKTsKKword2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ3BhZ2VoaWRlJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1Zygn
cGFnZWhpZGUgLSAnICsgKGV2ZW50LnBlcnNpc3RlZCA/ICcnIDogJ25vdCAnKSArICdlbnRlcmlu
ZyBjYWNoZScpOworCisgICAgaWYgKGV2ZW50LnBlcnNpc3RlZCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgdGVzdEZhaWxlZCgnUGFnZSBmYWlsZWQgdG8gZW50ZXIgdGhlIGJhY2svZm9yd2FyZCBj
YWNoZS4nKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIGZhbHNlKTsKKword2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpIHsKKyAgICBVSUhlbHBlci53aXRoVXNlckdl
c3R1cmUoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGRlYnVnKCdDcmVhdGluZyBhIFBheW1l
bnRSZXNwb25zZSBpbiB0aGUgQ29tcGxldGVkIHN0YXRlLicpOworCisgICAgICAgIGNvbnN0IHJl
cXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoW3ZhbGlkUGF5bWVudE1ldGhvZCgpXSwgdmFsaWRQ
YXltZW50RGV0YWlscygpKTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2VQcm9taXNlID0gcmVxdWVz
dC5zaG93KCk7CisgICAgICAgIGludGVybmFscy5tb2NrUGF5bWVudENvb3JkaW5hdG9yLmFjY2Vw
dFBheW1lbnQoKTsKKyAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCByZXNwb25zZVByb21pc2U7Cisg
ICAgICAgIGF3YWl0IHJlc3BvbnNlLmNvbXBsZXRlKCdzdWNjZXNzJyk7CisKKyAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0g
Jy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9wYWdlLWNhY2hlLWhlbHBlci5odG1sJzsKKyAgICAgICAg
fSwgMCk7CisgICAgfSk7Cit9LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1j
YWNoZS1jcmVhdGVkLXBheW1lbnQtcmVxdWVzdC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY3JlYXRlZC1wYXltZW50
LXJlcXVlc3QuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxMzliYjIwNTBkODc1MTE1
YzE2N2FmMjZjZDRlZmU3NDJiMmQzMGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY3JlYXRlZC1wYXltZW50LXJlcXVl
c3QuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Rlc3RzIHRoYXQgYSBwYWdl
IHdpdGggYSBQYXltZW50UmVxdWVzdCBpbiB0aGUgQ3JlYXRlZCBzdGF0ZSBnb2VzIGludG8gdGhl
IGJhY2svZm9yd2FyZCBjYWNoZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0Ny
ZWF0aW5nIGEgUGF5bWVudFJlcXVlc3QgaW4gdGhlIENyZWF0ZWQgc3RhdGUuCitwYWdlc2hvdyAt
IG5vdCBmcm9tIGNhY2hlCitwYWdlaGlkZSAtIGVudGVyaW5nIGNhY2hlCitwYWdlc2hvdyAtIGZy
b20gY2FjaGUKK1BBU1MgUGFnZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0b3JlZCBmcm9tIHRoZSBi
YWNrL2ZvcndhcmQgY2FjaGUKK1Rlc3RpbmcgdGhhdCBQYXltZW50UmVxdWVzdCByZW1haW5zIGlu
IHRoZSBDcmVhdGVkIHN0YXRlLgorUEFTUyByZXNwb25zZVByb21pc2UgcmVqZWN0ZWQgcHJvbWlz
ZSAgd2l0aCBBYm9ydEVycm9yOiBUaGUgb3BlcmF0aW9uIHdhcyBhYm9ydGVkLi4KK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY3JlYXRlZC1w
YXltZW50LXJlcXVlc3QuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVu
dHJlcXVlc3QvcGFnZS1jYWNoZS1jcmVhdGVkLXBheW1lbnQtcmVxdWVzdC5odHRwcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjUzZmQzOTViMDQ4MzllZjJiM2YxYjM4YTNmZTM3ODNkN2Y2MDFlMTMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2Ut
Y2FjaGUtY3JlYXRlZC1wYXltZW50LXJlcXVlc3QuaHR0cHMuaHRtbApAQCAtMCwwICsxLDUxIEBA
Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBd
IC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Jy9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvanMtdGVz
dC1yZXNvdXJjZXMvdWktaGVscGVyLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvcmVzb3Vy
Y2VzL3BheW1lbnQtcmVxdWVzdC5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
J1Rlc3RzIHRoYXQgYSBwYWdlIHdpdGggYSBQYXltZW50UmVxdWVzdCBpbiB0aGUgQ3JlYXRlZCBz
dGF0ZSBnb2VzIGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4nKTsKK3dpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VzaG93JywgZnVu
Y3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1ZygncGFnZXNob3cgLSAnICsgKGV2ZW50LnBlcnNpc3Rl
ZCA/ICcnIDogJ25vdCAnKSArICdmcm9tIGNhY2hlJyk7CisKKyAgICBpZiAoIWV2ZW50LnBlcnNp
c3RlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgdGVzdFBhc3NlZCgnUGFnZSBkaWQgZW50ZXIg
YW5kIHdhcyByZXN0b3JlZCBmcm9tIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUnKTsKKworICAgIFVJ
SGVscGVyLndpdGhVc2VyR2VzdHVyZShhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgZGVidWco
J1Rlc3RpbmcgdGhhdCBQYXltZW50UmVxdWVzdCByZW1haW5zIGluIHRoZSBDcmVhdGVkIHN0YXRl
LicpCisgICAgICAgIHJlc3BvbnNlUHJvbWlzZSA9IHJlcXVlc3Quc2hvdygpOworICAgICAgICBh
d2FpdCByZXF1ZXN0LmFib3J0KCk7CisgICAgICAgIGF3YWl0IHNob3VsZFJlamVjdFdpdGhFcnJv
ck5hbWUoJ3Jlc3BvbnNlUHJvbWlzZScsICdBYm9ydEVycm9yJyk7CisKKyAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgfSk7Cit9LCBmYWxzZSk7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdwYWdlaGlkZScsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWcoJ3BhZ2VoaWRlIC0gJyAr
IChldmVudC5wZXJzaXN0ZWQgPyAnJyA6ICdub3QgJykgKyAnZW50ZXJpbmcgY2FjaGUnKTsKKwor
ICAgIGlmIChldmVudC5wZXJzaXN0ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIHRlc3RGYWls
ZWQoJ1BhZ2UgZmFpbGVkIHRvIGVudGVyIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuJyk7CisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9LCBmYWxzZSk7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCds
b2FkJywgZnVuY3Rpb24oKSB7CisgICAgZGVidWcoJ0NyZWF0aW5nIGEgUGF5bWVudFJlcXVlc3Qg
aW4gdGhlIENyZWF0ZWQgc3RhdGUuJyk7CisKKyAgICByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1
ZXN0KFt2YWxpZFBheW1lbnRNZXRob2QoKV0sIHZhbGlkUGF5bWVudERldGFpbHMoKSk7CisKKyAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9
ICcvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcGFnZS1jYWNoZS1oZWxwZXIuaHRtbCc7CisgICAgfSwg
MCk7Cit9LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jcmVhdGVk
LXBheW1lbnQtcmVzcG9uc2UuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNyZWF0ZWQtcGF5bWVudC1yZXNwb25zZS5o
dHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZjOTJlMTQxOTM5YWFjNDNmM2VhNzNhMDdi
NDNiMGNjNDkyODU2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1jcmVhdGVkLXBheW1lbnQtcmVzcG9uc2UuaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3RzIHRoYXQgYSBwYWdlIHdpdGggYSBQ
YXltZW50UmVzcG9uc2UgaW4gdGhlIENyZWF0ZWQgc3RhdGUgZ29lcyBpbnRvIHRoZSBiYWNrL2Zv
cndhcmQgY2FjaGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitDcmVhdGluZyBh
IFBheW1lbnRSZXNwb25zZSBpbiB0aGUgQ3JlYXRlZCBzdGF0ZS4KK3BhZ2VzaG93IC0gbm90IGZy
b20gY2FjaGUKK3BhZ2VoaWRlIC0gZW50ZXJpbmcgY2FjaGUKK3BhZ2VzaG93IC0gZnJvbSBjYWNo
ZQorUEFTUyBQYWdlIGRpZCBlbnRlciBhbmQgd2FzIHJlc3RvcmVkIGZyb20gdGhlIGJhY2svZm9y
d2FyZCBjYWNoZQorVGVzdGluZyB0aGF0IFBheW1lbnRSZXNwb25zZSBpcyBub3cgaW4gdGhlIENs
b3NlZCBzdGF0ZS4KK1BBU1MgcmVzcG9uc2UuY29tcGxldGUoKSByZWplY3RlZCBwcm9taXNlICB3
aXRoIEFib3J0RXJyb3I6IFRoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQuLgorUEFTUyByZXNwb25z
ZS5yZXRyeSgpIHJlamVjdGVkIHByb21pc2UgIHdpdGggQWJvcnRFcnJvcjogVGhlIG9wZXJhdGlv
biB3YXMgYWJvcnRlZC4uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVx
dWVzdC9wYWdlLWNhY2hlLWNyZWF0ZWQtcGF5bWVudC1yZXNwb25zZS5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWNyZWF0ZWQtcGF5
bWVudC1yZXNwb25zZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiNTkyZWUxY2I4YTA2ZWE4ZGM4
YmNmNjlhZTYxZDlmMDIzNWEyMDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtY3JlYXRlZC1wYXltZW50LXJlc3BvbnNl
Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
bmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPScvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyc+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0nL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyc+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy9wYXltZW50LXJlcXVlc3QuanMnPjwvc2Ny
aXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGF0IGEgcGFnZSB3aXRoIGEgUGF5
bWVudFJlc3BvbnNlIGluIHRoZSBDcmVhdGVkIHN0YXRlIGdvZXMgaW50byB0aGUgYmFjay9mb3J3
YXJkIGNhY2hlLicpOword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCit3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLCBhc3luYyBmdW5jdGlvbihldmVudCkgeworICAgIGRl
YnVnKCdwYWdlc2hvdyAtICcgKyAoZXZlbnQucGVyc2lzdGVkID8gJycgOiAnbm90ICcpICsgJ2Zy
b20gY2FjaGUnKTsKKworICAgIGlmICghZXZlbnQucGVyc2lzdGVkKQorICAgICAgICByZXR1cm47
CisKKyAgICB0ZXN0UGFzc2VkKCdQYWdlIGRpZCBlbnRlciBhbmQgd2FzIHJlc3RvcmVkIGZyb20g
dGhlIGJhY2svZm9yd2FyZCBjYWNoZScpOworCisgICAgZGVidWcoJ1Rlc3RpbmcgdGhhdCBQYXlt
ZW50UmVzcG9uc2UgaXMgbm93IGluIHRoZSBDbG9zZWQgc3RhdGUuJyk7CisgICAgYXdhaXQgc2hv
dWxkUmVqZWN0V2l0aEVycm9yTmFtZSgncmVzcG9uc2UuY29tcGxldGUoKScsICdBYm9ydEVycm9y
Jyk7CisgICAgYXdhaXQgc2hvdWxkUmVqZWN0V2l0aEVycm9yTmFtZSgncmVzcG9uc2UucmV0cnko
KScsICdBYm9ydEVycm9yJyk7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIGZhbHNlKTsKKwor
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VoaWRlJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAg
ICBkZWJ1ZygncGFnZWhpZGUgLSAnICsgKGV2ZW50LnBlcnNpc3RlZCA/ICcnIDogJ25vdCAnKSAr
ICdlbnRlcmluZyBjYWNoZScpOworCisgICAgaWYgKGV2ZW50LnBlcnNpc3RlZCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgdGVzdEZhaWxlZCgnUGFnZSBmYWlsZWQgdG8gZW50ZXIgdGhlIGJhY2sv
Zm9yd2FyZCBjYWNoZS4nKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIGZhbHNlKTsKKword2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpIHsKKyAgICBVSUhlbHBlci53
aXRoVXNlckdlc3R1cmUoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGRlYnVnKCdDcmVhdGlu
ZyBhIFBheW1lbnRSZXNwb25zZSBpbiB0aGUgQ3JlYXRlZCBzdGF0ZS4nKTsKKworICAgICAgICBj
b25zdCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0KFt2YWxpZFBheW1lbnRNZXRob2QoKV0s
IHZhbGlkUGF5bWVudERldGFpbHMoKSk7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlUHJvbWlzZSA9
IHJlcXVlc3Quc2hvdygpOworICAgICAgICBpbnRlcm5hbHMubW9ja1BheW1lbnRDb29yZGluYXRv
ci5hY2NlcHRQYXltZW50KCk7CisgICAgICAgIHJlc3BvbnNlID0gYXdhaXQgcmVzcG9uc2VQcm9t
aXNlOworCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB3aW5k
b3cubG9jYXRpb24uaHJlZiA9ICcvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcGFnZS1jYWNoZS1oZWxw
ZXIuaHRtbCc7CisgICAgICAgIH0sIDApOworICAgIH0pOworfSwgZmFsc2UpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Bh
eW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUtaW50ZXJhY3RpdmUtcGF5bWVudC1yZXF1ZXN0Lmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFn
ZS1jYWNoZS1pbnRlcmFjdGl2ZS1wYXltZW50LXJlcXVlc3QuaHR0cHMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjg1YzJmMzAwZjBiOGIwYmY4Zjk5ZGQ4MzBhMjMyM2IzZjIzMGNhZjIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2Ut
Y2FjaGUtaW50ZXJhY3RpdmUtcGF5bWVudC1yZXF1ZXN0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE4IEBACitUZXN0cyB0aGF0IGEgcGFnZSB3aXRoIGEgUGF5bWVudFJlcXVlc3QgaW4g
dGhlIEludGVyYWN0aXZlIHN0YXRlIGdvZXMgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworQ3JlYXRpbmcgYSBQYXltZW50UmVxdWVz
dCBpbiB0aGUgSW50ZXJhY3RpdmUgc3RhdGUuCitwYWdlc2hvdyAtIG5vdCBmcm9tIGNhY2hlCitw
YWdlaGlkZSAtIGVudGVyaW5nIGNhY2hlCitwYWdlc2hvdyAtIGZyb20gY2FjaGUKK1BBU1MgUGFn
ZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0b3JlZCBmcm9tIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUK
K1Rlc3RpbmcgdGhhdCB0aGUgcHJvbWlzZSByZXR1cm5lZCBieSBzaG93KCkgd2FzIHJlamVjdGVk
IHdpdGggIkFib3J0RXJyb3IiLgorUEFTUyByZXNwb25zZVByb21pc2UgcmVqZWN0ZWQgcHJvbWlz
ZSAgd2l0aCBBYm9ydEVycm9yOiBUaGUgb3BlcmF0aW9uIHdhcyBhYm9ydGVkLi4KK1Rlc3Rpbmcg
dGhhdCBQYXltZW50UmVxdWVzdCBpcyBub3cgaW4gdGhlIENsb3NlZCBzdGF0ZS4KK1BBU1MgcmVx
dWVzdC5hYm9ydCgpIHJlamVjdGVkIHByb21pc2UgIHdpdGggSW52YWxpZFN0YXRlRXJyb3I6IFRo
ZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLWludGVyYWN0aXZlLXBheW1lbnQtcmVx
dWVzdC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9w
YWdlLWNhY2hlLWludGVyYWN0aXZlLXBheW1lbnQtcmVxdWVzdC5odHRwcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmVmNWNjZGY0MDAxZDhkNTAzOGJmMGI5ZmIzYzBkNzc0NjVkYmNiOGIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L3BhZ2UtY2FjaGUt
aW50ZXJhY3RpdmUtcGF5bWVudC1yZXF1ZXN0Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw1MiBAQAor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPScvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nL2pzLXRlc3Qt
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nL3Jlc291cmNl
cy9wYXltZW50LXJlcXVlc3QuanMnPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdU
ZXN0cyB0aGF0IGEgcGFnZSB3aXRoIGEgUGF5bWVudFJlcXVlc3QgaW4gdGhlIEludGVyYWN0aXZl
IHN0YXRlIGdvZXMgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLicpOword2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNob3cnLCBh
c3luYyBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVnKCdwYWdlc2hvdyAtICcgKyAoZXZlbnQu
cGVyc2lzdGVkID8gJycgOiAnbm90ICcpICsgJ2Zyb20gY2FjaGUnKTsKKworICAgIGlmICghZXZl
bnQucGVyc2lzdGVkKQorICAgICAgICByZXR1cm47CisKKyAgICB0ZXN0UGFzc2VkKCdQYWdlIGRp
ZCBlbnRlciBhbmQgd2FzIHJlc3RvcmVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZScpOwor
CisgICAgZGVidWcoJ1Rlc3RpbmcgdGhhdCB0aGUgcHJvbWlzZSByZXR1cm5lZCBieSBzaG93KCkg
d2FzIHJlamVjdGVkIHdpdGggIkFib3J0RXJyb3IiLicpOworICAgIGF3YWl0IHNob3VsZFJlamVj
dFdpdGhFcnJvck5hbWUoJ3Jlc3BvbnNlUHJvbWlzZScsICdBYm9ydEVycm9yJyk7CisKKyAgICBk
ZWJ1ZygnVGVzdGluZyB0aGF0IFBheW1lbnRSZXF1ZXN0IGlzIG5vdyBpbiB0aGUgQ2xvc2VkIHN0
YXRlLicpOworICAgIGF3YWl0IHNob3VsZFJlamVjdFdpdGhFcnJvck5hbWUoJ3JlcXVlc3QuYWJv
cnQoKScsICdJbnZhbGlkU3RhdGVFcnJvcicpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBm
YWxzZSk7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlaGlkZScsIGZ1bmN0aW9uKGV2
ZW50KSB7CisgICAgZGVidWcoJ3BhZ2VoaWRlIC0gJyArIChldmVudC5wZXJzaXN0ZWQgPyAnJyA6
ICdub3QgJykgKyAnZW50ZXJpbmcgY2FjaGUnKTsKKworICAgIGlmIChldmVudC5wZXJzaXN0ZWQp
CisgICAgICAgIHJldHVybjsKKworICAgIHRlc3RGYWlsZWQoJ1BhZ2UgZmFpbGVkIHRvIGVudGVy
IHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmYWxz
ZSk7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7CisgICAg
VUlIZWxwZXIud2l0aFVzZXJHZXN0dXJlKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBkZWJ1
ZygnQ3JlYXRpbmcgYSBQYXltZW50UmVxdWVzdCBpbiB0aGUgSW50ZXJhY3RpdmUgc3RhdGUuJyk7
CisgICAgICAgIHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoW3ZhbGlkUGF5bWVudE1ldGhv
ZCgpXSwgdmFsaWRQYXltZW50RGV0YWlscygpKTsKKyAgICAgICAgcmVzcG9uc2VQcm9taXNlID0g
cmVxdWVzdC5zaG93KCk7CisgICAgfSk7CisKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewor
ICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcGFn
ZS1jYWNoZS1oZWxwZXIuaHRtbCc7CisgICAgfSwgMCk7Cit9LCBmYWxzZSk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5
bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1yZXRyaWVkLXBheW1lbnQtcmVzcG9uc2UuaHR0cHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNh
Y2hlLXJldHJpZWQtcGF5bWVudC1yZXNwb25zZS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYWI2NWUzNTNjNDU5NTgyMWFkNGI1MmQ1Mzk1ZjNhMjVkNGE3ZGE2NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvcGFnZS1jYWNoZS1y
ZXRyaWVkLXBheW1lbnQtcmVzcG9uc2UuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkg
QEAKK1Rlc3RzIHRoYXQgYSBwYWdlIHdpdGggYSBQYXltZW50UmVzcG9uc2UgaW4gdGhlIENvbXBs
ZXRlZCBzdGF0ZSBnb2VzIGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK0NyZWF0aW5nIGEgUGF5bWVudFJlc3BvbnNlIGluIHRoZSBD
cmVhdGVkIHN0YXRlIHdpdGggYSByZXRyeSBwcm9taXNlLgorcGFnZXNob3cgLSBub3QgZnJvbSBj
YWNoZQorcGFnZWhpZGUgLSBlbnRlcmluZyBjYWNoZQorcGFnZXNob3cgLSBmcm9tIGNhY2hlCitQ
QVNTIFBhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUgYmFjay9mb3J3YXJk
IGNhY2hlCitUZXN0aW5nIHRoYXQgdGhlIHByb21pc2UgcmV0dXJuZWQgYnkgcmV0cnkoKSB3YXMg
cmVqZWN0ZWQgd2l0aCAiQWJvcnRFcnJvciIuCitQQVNTIHJldHJ5UHJvbWlzZSByZWplY3RlZCBw
cm9taXNlICB3aXRoIEFib3J0RXJyb3I6IFRoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQuLgorVGVz
dGluZyB0aGF0IFBheW1lbnRSZXNwb25zZSBpcyBub3cgaW4gdGhlIENsb3NlZCBzdGF0ZS4KK1BB
U1MgcmVzcG9uc2UuY29tcGxldGUoKSByZWplY3RlZCBwcm9taXNlICB3aXRoIEFib3J0RXJyb3I6
IFRoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQuLgorUEFTUyByZXNwb25zZS5yZXRyeSgpIHJlamVj
dGVkIHByb21pc2UgIHdpdGggQWJvcnRFcnJvcjogVGhlIG9wZXJhdGlvbiB3YXMgYWJvcnRlZC4u
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hl
LXJldHJpZWQtcGF5bWVudC1yZXNwb25zZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wYXltZW50cmVxdWVzdC9wYWdlLWNhY2hlLXJldHJpZWQtcGF5bWVudC1yZXNwb25zZS5o
dHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjZDZiZTc1ODE5ZGEwOTlhNTcyYjViNjNiMzU0MWI0Zjhk
ZWFlNTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRy
ZXF1ZXN0L3BhZ2UtY2FjaGUtcmV0cmllZC1wYXltZW50LXJlc3BvbnNlLmh0dHBzLmh0bWwKQEAg
LTAsMCArMSw1NyBAQAorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2Fy
ZENhY2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjPScvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0nL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0nL3Jlc291cmNlcy9wYXltZW50LXJlcXVlc3QuanMnPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGF0IGEgcGFnZSB3aXRoIGEgUGF5bWVudFJlc3BvbnNlIGlu
IHRoZSBDb21wbGV0ZWQgc3RhdGUgZ29lcyBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuJyk7
Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdwYWdlc2hvdycsIGFzeW5jIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWcoJ3BhZ2VzaG93
IC0gJyArIChldmVudC5wZXJzaXN0ZWQgPyAnJyA6ICdub3QgJykgKyAnZnJvbSBjYWNoZScpOwor
CisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIHRlc3RQ
YXNzZWQoJ1BhZ2UgZGlkIGVudGVyIGFuZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUgYmFjay9mb3J3
YXJkIGNhY2hlJyk7CisKKyAgICBkZWJ1ZygnVGVzdGluZyB0aGF0IHRoZSBwcm9taXNlIHJldHVy
bmVkIGJ5IHJldHJ5KCkgd2FzIHJlamVjdGVkIHdpdGggIkFib3J0RXJyb3IiLicpOworICAgIGF3
YWl0IHNob3VsZFJlamVjdFdpdGhFcnJvck5hbWUoJ3JldHJ5UHJvbWlzZScsICdBYm9ydEVycm9y
Jyk7CisKKyAgICBkZWJ1ZygnVGVzdGluZyB0aGF0IFBheW1lbnRSZXNwb25zZSBpcyBub3cgaW4g
dGhlIENsb3NlZCBzdGF0ZS4nKTsKKyAgICBhd2FpdCBzaG91bGRSZWplY3RXaXRoRXJyb3JOYW1l
KCdyZXNwb25zZS5jb21wbGV0ZSgpJywgJ0Fib3J0RXJyb3InKTsKKyAgICBhd2FpdCBzaG91bGRS
ZWplY3RXaXRoRXJyb3JOYW1lKCdyZXNwb25zZS5yZXRyeSgpJywgJ0Fib3J0RXJyb3InKTsKKwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cigncGFnZWhpZGUnLCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVnKCdwYWdlaGlkZSAtICcg
KyAoZXZlbnQucGVyc2lzdGVkID8gJycgOiAnbm90ICcpICsgJ2VudGVyaW5nIGNhY2hlJyk7CisK
KyAgICBpZiAoZXZlbnQucGVyc2lzdGVkKQorICAgICAgICByZXR1cm47CisKKyAgICB0ZXN0RmFp
bGVkKCdQYWdlIGZhaWxlZCB0byBlbnRlciB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLicpOworICAg
IGZpbmlzaEpTVGVzdCgpOworfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bG9hZCcsIGZ1bmN0aW9uKCkgeworICAgIFVJSGVscGVyLndpdGhVc2VyR2VzdHVyZShhc3luYyBm
dW5jdGlvbigpIHsKKyAgICAgICAgZGVidWcoJ0NyZWF0aW5nIGEgUGF5bWVudFJlc3BvbnNlIGlu
IHRoZSBDcmVhdGVkIHN0YXRlIHdpdGggYSByZXRyeSBwcm9taXNlLicpOworCisgICAgICAgIGNv
bnN0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoW3ZhbGlkUGF5bWVudE1ldGhvZCgpXSwg
dmFsaWRQYXltZW50RGV0YWlscygpKTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2VQcm9taXNlID0g
cmVxdWVzdC5zaG93KCk7CisgICAgICAgIGludGVybmFscy5tb2NrUGF5bWVudENvb3JkaW5hdG9y
LmFjY2VwdFBheW1lbnQoKTsKKyAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCByZXNwb25zZVByb21p
c2U7CisgICAgICAgIHJldHJ5UHJvbWlzZSA9IHJlc3BvbnNlLnJldHJ5KCk7CisKKyAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVm
ID0gJy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9wYWdlLWNhY2hlLWhlbHBlci5odG1sJzsKKyAgICAg
ICAgfSwgMCk7CisgICAgfSk7Cit9LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy9qcy10ZXN0LmpzIGIvTGF5b3V0
VGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QuanMKaW5kZXggNjhhNDU2YTgzYzY0OTlmOTRlZmJiOTIx
NDgzODMyZDMyNWMyMTNjYi4uMWFiMjE1NTQyZTdhYzZlYTMwMGI2YTRjY2JkYjg3YTdmZGI1MmM1
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QuanMKKysrIGIvTGF5
b3V0VGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QuanMKQEAgLTcxMiw2ICs3MTIsMTEgQEAgZnVuY3Rp
b24gZXhwZWN0RXJyb3IoKQogfQogCiBmdW5jdGlvbiBzaG91bGRSZWplY3QoX2EsIF9tZXNzYWdl
KQoreworICAgIHJldHVybiBzaG91bGRSZWplY3RXaXRoRXJyb3JOYW1lKF9hLCB1bmRlZmluZWQs
IF9tZXNzYWdlKTsKK30KKworZnVuY3Rpb24gc2hvdWxkUmVqZWN0V2l0aEVycm9yTmFtZShfYSwg
X25hbWUsIF9tZXNzYWdlKQogewogICAgIHZhciBfZXhjZXB0aW9uOwogICAgIHZhciBfYXY7CkBA
IC03MjUsNyArNzMwLDExIEBAIGZ1bmN0aW9uIHNob3VsZFJlamVjdChfYSwgX21lc3NhZ2UpCiAg
ICAgcmV0dXJuIF9hdi50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgICAgICB0ZXN0RmFpbGVk
KChfbWVzc2FnZSA/IF9tZXNzYWdlIDogX2EpICsgIiBzaG91bGQgcmVqZWN0IHByb21pc2UuIFJl
c29sdmVkIHdpdGggIiArIHJlc3VsdCArICIuIik7CiAgICAgfSwgZnVuY3Rpb24oZXJyb3IpIHsK
LSAgICAgICAgdGVzdFBhc3NlZCgoX21lc3NhZ2UgPyBfbWVzc2FnZSA6IF9hKSArICIgcmVqZWN0
ZWQgcHJvbWlzZSAgd2l0aCAiICsgZXJyb3IgKyAiLiIpOworICAgICAgICBpZiAoX25hbWUgPT09
IHVuZGVmaW5lZCB8fCBlcnJvclsnbmFtZSddID09PSBfbmFtZSkgeworICAgICAgICAgICAgLy8g
RklYTUU6IFJlbW92ZSB0aGUgZXh0cmEgc3BhY2UgYW5kICcuJyAoRE9NRXhjZXB0aW9uIGRlc2Ny
aXB0aW9ucyBhbHJlYWR5IGVuZCB3aXRoIHBlcmlvZHMpIHRoZW4gcmViYXNlIHRlc3RzLgorICAg
ICAgICAgICAgdGVzdFBhc3NlZCgoX21lc3NhZ2UgPyBfbWVzc2FnZSA6IF9hKSArICIgcmVqZWN0
ZWQgcHJvbWlzZSAgd2l0aCAiICsgZXJyb3IgKyAiLiIpOworICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoKF9tZXNzYWdlID8gX21lc3NhZ2UgOiBfYSkgKyAiIHNob3VsZCBy
ZWplY3QgcHJvbWlzZSB3aXRoICIgKyBfbmFtZSArICIuIFJlamVjdGVkIHdpdGggIiArIGVycm9y
WyduYW1lJ10gKyAiIGluc3RlYWQuIik7CiAgICAgfSk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>