<?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>214205</bug_id>
          
          <creation_ts>2020-07-10 15:23:31 -0700</creation_ts>
          <short_desc>Clean up SourceProvider and add caller relative load script to jsc.cpp</short_desc>
          <delta_ts>2020-07-13 13:13:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>lmoura</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1670611</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-07-10 15:23:31 -0700</bug_when>
    <thetext>Clean up SourceProvider and add caller relative load script to jsc.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670799</commentid>
    <comment_count>1</comment_count>
      <attachid>404076</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-07-11 16:27:32 -0700</bug_when>
    <thetext>Created attachment 404076
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670801</commentid>
    <comment_count>2</comment_count>
      <attachid>404077</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-07-11 17:20:01 -0700</bug_when>
    <thetext>Created attachment 404077
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670807</commentid>
    <comment_count>3</comment_count>
      <attachid>404079</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-07-11 18:22:17 -0700</bug_when>
    <thetext>Created attachment 404079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670808</commentid>
    <comment_count>4</comment_count>
      <attachid>404080</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-07-11 18:32:41 -0700</bug_when>
    <thetext>Created attachment 404080
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670810</commentid>
    <comment_count>5</comment_count>
      <attachid>404081</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-07-11 18:36:57 -0700</bug_when>
    <thetext>Created attachment 404081
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670814</commentid>
    <comment_count>6</comment_count>
      <attachid>404083</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-07-11 19:47:36 -0700</bug_when>
    <thetext>Created attachment 404083
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670817</commentid>
    <comment_count>7</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-07-11 19:52:33 -0700</bug_when>
    <thetext>There are some Layout test failures for now because I don&apos;t know how to handle system paths in the expectations. I&apos;ll figure that out before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670837</commentid>
    <comment_count>8</comment_count>
      <attachid>404083</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-12 01:06:19 -0700</bug_when>
    <thetext>Comment on attachment 404083
Patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:268
&gt; +        * API/JSAPIGlobalObject.mm:
&gt; +        (JSC::JSAPIGlobalObject::moduleLoaderImportModule):
&gt; +        * API/JSBase.cpp:
&gt; +        (JSEvaluateScript):
&gt; +        (JSCheckScriptSyntax):
&gt; +        * API/JSObjectRef.cpp:
&gt; +        (JSObjectMakeFunction):
&gt; +        * API/JSScript.mm:
&gt; +        (-[JSScript sourceCode]):
&gt; +        * API/JSScriptRef.cpp:
&gt; +        * builtins/BuiltinExecutables.cpp:
&gt; +        (JSC::BuiltinExecutables::BuiltinExecutables):
&gt; +        * bytecode/CodeBlock.h:
&gt; +        (JSC::CodeBlock::referrerURL const):
&gt; +        * debugger/DebuggerLocation.cpp:
&gt; +        (JSC::DebuggerLocation::DebuggerLocation):
&gt; +        * debugger/DebuggerLocation.h:
&gt; +        (JSC::DebuggerLocation::DebuggerLocation):
&gt; +        * inspector/ScriptDebugServer.cpp:
&gt; +        (Inspector::ScriptDebugServer::sourceParsed):
&gt; +        * jsc.cpp:
&gt; +        (GlobalObject::moduleLoaderImportModule):
&gt; +        (jscSource):
&gt; +        (GlobalObject::moduleLoaderFetch):
&gt; +        (functionRun):
&gt; +        (functionLoad):
&gt; +        (functionCheckSyntax):
&gt; +        (functionCallerSourceOrigin):
&gt; +        (functionDollarAgentStart):
&gt; +        (functionCheckModuleSyntax):
&gt; +        (runWithOptions):
&gt; +        (runInteractive):
&gt; +        * parser/Nodes.h:
&gt; +        (JSC::ScopeNode::source const):
&gt; +        (JSC::ScopeNode::sourceURL const): Deleted.
&gt; +        * parser/SourceCode.h:
&gt; +        (JSC::makeSource):
&gt; +        * parser/SourceCodeKey.h:
&gt; +        (JSC::SourceCodeKey::host const):
&gt; +        * parser/SourceProvider.cpp:
&gt; +        (JSC::SourceProvider::SourceProvider):
&gt; +        * parser/SourceProvider.h:
&gt; +        (JSC::SourceProvider::sourceURL const):
&gt; +        (JSC::StringSourceProvider::create):
&gt; +        (JSC::StringSourceProvider::StringSourceProvider):
&gt; +        (JSC::SourceProvider::url const): Deleted.
&gt; +        * runtime/CachedTypes.cpp:
&gt; +        (JSC::CachedSourceOrigin::encode):
&gt; +        (JSC::CachedSourceOrigin::decode const):
&gt; +        (JSC::CachedSourceProviderShape::encode):
&gt; +        (JSC::CachedStringSourceProvider::decode const):
&gt; +        (JSC::CachedWebAssemblySourceProvider::decode const):
&gt; +        * runtime/Error.cpp:
&gt; +        (JSC::addErrorInfo):
&gt; +        * runtime/FunctionConstructor.cpp:
&gt; +        (JSC::constructFunctionSkippingEvalEnabledCheck):
&gt; +        * runtime/ScriptExecutable.h:
&gt; +        (JSC::ScriptExecutable::sourceURL const):
&gt; +        * runtime/SourceOrigin.h:
&gt; +        (JSC::SourceOrigin::SourceOrigin):
&gt; +        (JSC::SourceOrigin::url const):
&gt; +        (JSC::SourceOrigin::string const):
&gt; +        (JSC::SourceOrigin::isNull const): Deleted.
&gt; +        * runtime/ThrowScope.cpp:
&gt; +        (JSC::ThrowScope::throwException):
&gt; +        * runtime/ThrowScope.h:
&gt; +        (JSC::ThrowScope::throwException):
&gt; +        (JSC::throwVMException):
&gt; +        * tools/FunctionOverrides.cpp:
&gt; +        (JSC::initializeOverrideInfo):
&gt; +
&gt; +        * API/JSAPIGlobalObject.mm:
&gt; +        (JSC::computeValidImportSpecifier):
&gt; +        (JSC::JSAPIGlobalObject::moduleLoaderImportModule):
&gt; +        * API/JSBase.cpp:
&gt; +        (JSEvaluateScript):
&gt; +        (JSCheckScriptSyntax):
&gt; +        * API/JSObjectRef.cpp:
&gt; +        (JSObjectMakeFunction):
&gt; +        * API/JSScript.mm:
&gt; +        (-[JSScript sourceCode]):
&gt; +        * API/JSScriptRef.cpp:
&gt; +        * API/glib/JSCContext.cpp:
&gt; +        (jsc_context_check_syntax):
&gt; +        * builtins/BuiltinExecutables.cpp:
&gt; +        (JSC::BuiltinExecutables::BuiltinExecutables):
&gt; +        * debugger/DebuggerLocation.cpp:
&gt; +        (JSC::DebuggerLocation::DebuggerLocation):
&gt; +        * debugger/DebuggerLocation.h:
&gt; +        (JSC::DebuggerLocation::DebuggerLocation):
&gt; +        * inspector/ScriptDebugServer.cpp:
&gt; +        (Inspector::ScriptDebugServer::sourceParsed):
&gt; +        * jsc.cpp:
&gt; +        (currentWorkingDirectory):
&gt; +        (absolutePath):
&gt; +        (GlobalObject::moduleLoaderImportModule):
&gt; +        (GlobalObject::moduleLoaderResolve):
&gt; +        (jscSource):
&gt; +        (fetchModuleFromLocalFileSystem):
&gt; +        (GlobalObject::moduleLoaderFetch):
&gt; +        (functionLoad):
&gt; +        (functionCallerSourceOrigin):
&gt; +        (functionDollarAgentStart):
&gt; +        (functionCheckModuleSyntax):
&gt; +        (runWithOptions):
&gt; +        (runInteractive):
&gt; +        (ModuleName::startsWithRoot const): Deleted.
&gt; +        (ModuleName::ModuleName): Deleted.
&gt; +        (extractDirectoryName): Deleted.
&gt; +        (resolvePath): Deleted.
&gt; +        * parser/Nodes.h:
&gt; +        (JSC::ScopeNode::source const):
&gt; +        (JSC::ScopeNode::sourceURL const): Deleted.
&gt; +        * parser/SourceCode.h:
&gt; +        (JSC::makeSource):
&gt; +        * parser/SourceCodeKey.h:
&gt; +        (JSC::SourceCodeKey::host const):
&gt; +        * parser/SourceProvider.cpp:
&gt; +        (JSC::SourceProvider::SourceProvider):
&gt; +        * parser/SourceProvider.h:
&gt; +        (JSC::SourceProvider::sourceURL const):
&gt; +        (JSC::StringSourceProvider::create):
&gt; +        (JSC::StringSourceProvider::StringSourceProvider):
&gt; +        (JSC::SourceProvider::url const): Deleted.
&gt; +        * runtime/CachedTypes.cpp:
&gt; +        (JSC::CachedSourceOrigin::encode):
&gt; +        (JSC::CachedSourceOrigin::decode const):
&gt; +        (JSC::CachedSourceProviderShape::encode):
&gt; +        (JSC::CachedStringSourceProvider::decode const):
&gt; +        (JSC::CachedWebAssemblySourceProvider::decode const):
&gt; +        * runtime/Error.cpp:
&gt; +        (JSC::addErrorInfo):
&gt; +        * runtime/FunctionConstructor.cpp:
&gt; +        (JSC::constructFunctionSkippingEvalEnabledCheck):
&gt; +        * runtime/ScriptExecutable.h:
&gt; +        (JSC::ScriptExecutable::sourceURL const):
&gt; +        * runtime/SourceOrigin.h:
&gt; +        (JSC::SourceOrigin::SourceOrigin):
&gt; +        (JSC::SourceOrigin::url const):
&gt; +        (JSC::SourceOrigin::string const):
&gt; +        (JSC::SourceOrigin::isNull const):
&gt; +        * runtime/ThrowScope.cpp:
&gt; +        (JSC::ThrowScope::throwException):
&gt; +        * runtime/ThrowScope.h:
&gt; +        (JSC::ThrowScope::throwException):
&gt; +        (JSC::throwVMException):
&gt; +        * tools/FunctionOverrides.cpp:
&gt; +        (JSC::initializeOverrideInfo):
&gt; +        * tools/JSDollarVM.cpp:
&gt; +        (JSC::doPrint):
&gt; +        (JSC::functionCrash):
&gt; +
&gt; +        * API/JSAPIGlobalObject.mm:
&gt; +        (JSC::computeValidImportSpecifier):
&gt; +        (JSC::JSAPIGlobalObject::moduleLoaderImportModule):
&gt; +        * API/JSBase.cpp:
&gt; +        (JSEvaluateScript):
&gt; +        (JSCheckScriptSyntax):
&gt; +        * API/JSObjectRef.cpp:
&gt; +        (JSObjectMakeFunction):
&gt; +        * API/JSScript.mm:
&gt; +        (-[JSScript sourceCode]):
&gt; +        * API/JSScriptRef.cpp:
&gt; +        * API/glib/JSCContext.cpp:
&gt; +        (jsc_context_check_syntax):
&gt; +        * builtins/BuiltinExecutables.cpp:
&gt; +        (JSC::BuiltinExecutables::BuiltinExecutables):
&gt; +        * debugger/DebuggerLocation.cpp:
&gt; +        (JSC::DebuggerLocation::DebuggerLocation):
&gt; +        * debugger/DebuggerLocation.h:
&gt; +        (JSC::DebuggerLocation::DebuggerLocation):
&gt; +        * inspector/ScriptDebugServer.cpp:
&gt; +        (Inspector::ScriptDebugServer::sourceParsed):
&gt; +        * jsc.cpp:
&gt; +        (currentWorkingDirectory):
&gt; +        (absolutePath):
&gt; +        (GlobalObject::moduleLoaderImportModule):
&gt; +        (GlobalObject::moduleLoaderResolve):
&gt; +        (jscSource):
&gt; +        (fetchModuleFromLocalFileSystem):
&gt; +        (GlobalObject::moduleLoaderFetch):
&gt; +        (functionLoad):
&gt; +        (functionCallerSourceOrigin):
&gt; +        (functionDollarAgentStart):
&gt; +        (functionCheckModuleSyntax):
&gt; +        (runWithOptions):
&gt; +        (runInteractive):
&gt; +        (ModuleName::startsWithRoot const): Deleted.
&gt; +        (ModuleName::ModuleName): Deleted.
&gt; +        (extractDirectoryName): Deleted.
&gt; +        (resolvePath): Deleted.
&gt; +        * parser/Nodes.h:
&gt; +        (JSC::ScopeNode::source const):
&gt; +        (JSC::ScopeNode::sourceURL const): Deleted.
&gt; +        * parser/SourceCode.h:
&gt; +        (JSC::makeSource):
&gt; +        * parser/SourceCodeKey.h:
&gt; +        (JSC::SourceCodeKey::host const):
&gt; +        * parser/SourceProvider.cpp:
&gt; +        (JSC::SourceProvider::SourceProvider):
&gt; +        * parser/SourceProvider.h:
&gt; +        (JSC::SourceProvider::sourceURL const):
&gt; +        (JSC::StringSourceProvider::create):
&gt; +        (JSC::StringSourceProvider::StringSourceProvider):
&gt; +        (JSC::SourceProvider::url const): Deleted.
&gt; +        * runtime/CachedTypes.cpp:
&gt; +        (JSC::CachedSourceOrigin::encode):
&gt; +        (JSC::CachedSourceOrigin::decode const):
&gt; +        (JSC::CachedSourceProviderShape::encode):
&gt; +        (JSC::CachedStringSourceProvider::decode const):
&gt; +        (JSC::CachedWebAssemblySourceProvider::decode const):
&gt; +        * runtime/Error.cpp:
&gt; +        (JSC::addErrorInfo):
&gt; +        * runtime/FunctionConstructor.cpp:
&gt; +        (JSC::constructFunctionSkippingEvalEnabledCheck):
&gt; +        * runtime/ScriptExecutable.h:
&gt; +        (JSC::ScriptExecutable::sourceURL const):
&gt; +        * runtime/SourceOrigin.h:
&gt; +        (JSC::SourceOrigin::SourceOrigin):
&gt; +        (JSC::SourceOrigin::url const):
&gt; +        (JSC::SourceOrigin::string const):
&gt; +        (JSC::SourceOrigin::isNull const):
&gt; +        * runtime/ThrowScope.cpp:
&gt; +        (JSC::ThrowScope::throwException):
&gt; +        * runtime/ThrowScope.h:
&gt; +        (JSC::ThrowScope::throwException):
&gt; +        (JSC::throwVMException):
&gt; +        * tools/FunctionOverrides.cpp:
&gt; +        (JSC::initializeOverrideInfo):
&gt; +        * tools/JSDollarVM.cpp:
&gt; +        (JSC::doPrint):
&gt; +        (JSC::functionCrash):

Let&apos;s remove this.

&gt; Source/JavaScriptCore/API/JSAPIGlobalObject.mm:153
&gt; +    URL baseURL = sourceOrigin.url() ? sourceOrigin.url() : URL();

Is this condition necessary? Why not using `URL baseURL = sourceOrigin.url();`?

&gt; LayoutTests/ChangeLog:2
&gt; +        Clean up SourceProvider and add caller relative load script to jsc.cpp

Need space above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670951</commentid>
    <comment_count>9</comment_count>
      <attachid>404126</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-07-12 19:43:10 -0700</bug_when>
    <thetext>Created attachment 404126
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1670960</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-12 21:58:09 -0700</bug_when>
    <thetext>Found 10 new test failures: fast/dom/Document/replace-child.html, fast/visual-viewport/nonzoomed-rects.html, fast/visual-viewport/rtl-nonzoomed-rects.html, fast/visual-viewport/rtl-zoomed-rects.html, fast/visual-viewport/rubberbanding-viewport-rects-extended-background.html, fast/visual-viewport/rubberbanding-viewport-rects-header-footer.html, fast/visual-viewport/rubberbanding-viewport-rects.html, fast/visual-viewport/zoomed-fixed-header-and-footer.html, fast/visual-viewport/zoomed-fixed.html, fast/visual-viewport/zoomed-rects.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671039</commentid>
    <comment_count>11</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-07-13 08:36:47 -0700</bug_when>
    <thetext>(In reply to EWS from comment #10)
&gt; Found 10 new test failures: fast/dom/Document/replace-child.html,
&gt; fast/visual-viewport/nonzoomed-rects.html,
&gt; fast/visual-viewport/rtl-nonzoomed-rects.html,
&gt; fast/visual-viewport/rtl-zoomed-rects.html,
&gt; fast/visual-viewport/rubberbanding-viewport-rects-extended-background.html,
&gt; fast/visual-viewport/rubberbanding-viewport-rects-header-footer.html,
&gt; fast/visual-viewport/rubberbanding-viewport-rects.html,
&gt; fast/visual-viewport/zoomed-fixed-header-and-footer.html,
&gt; fast/visual-viewport/zoomed-fixed.html,
&gt; fast/visual-viewport/zoomed-rects.html

Looks like something went wrong on that test run. It doesn’t seem related to my patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671055</commentid>
    <comment_count>12</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-07-13 09:35:04 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #11)
&gt; (In reply to EWS from comment #10)
&gt; &gt; Found 10 new test failures: fast/dom/Document/replace-child.html,
&gt; &gt; fast/visual-viewport/nonzoomed-rects.html,
&gt; &gt; fast/visual-viewport/rtl-nonzoomed-rects.html,
&gt; &gt; fast/visual-viewport/rtl-zoomed-rects.html,
&gt; &gt; fast/visual-viewport/rubberbanding-viewport-rects-extended-background.html,
&gt; &gt; fast/visual-viewport/rubberbanding-viewport-rects-header-footer.html,
&gt; &gt; fast/visual-viewport/rubberbanding-viewport-rects.html,
&gt; &gt; fast/visual-viewport/zoomed-fixed-header-and-footer.html,
&gt; &gt; fast/visual-viewport/zoomed-fixed.html,
&gt; &gt; fast/visual-viewport/zoomed-rects.html
&gt; 
&gt; Looks like something went wrong on that test run. It doesn’t seem related to
&gt; my patch.

Oh weird, it looks like this was my patch. I don&apos;t know why it didn&apos;t fail the first run...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671058</commentid>
    <comment_count>13</comment_count>
      <attachid>404152</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-07-13 09:57:26 -0700</bug_when>
    <thetext>Created attachment 404152
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671071</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-13 10:35:41 -0700</bug_when>
    <thetext>Committed r264304: &lt;https://trac.webkit.org/changeset/264304&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404152.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671072</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-13 10:36:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/65485160&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671132</commentid>
    <comment_count>16</comment_count>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2020-07-13 13:13:42 -0700</bug_when>
    <thetext>Commited new baseline for inspector/controller/runtime-controller-import.html in r264314 with the new message from resolveModuleSpecifier(...).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404076</attachid>
            <date>2020-07-11 16:27:32 -0700</date>
            <delta_ts>2020-07-11 17:19:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214205-20200711162731.patch</filename>
            <type>text/plain</type>
            <size>125216</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZjRjNjYxOTE5YWQ2ZDY2YzI3YzY0ZDQ5ODkzMzE3NzAxN2QzNzc2Li42ZjAxNTRlMGIxYjU2Mjdl
NjNjYThmYjYwN2YyMjc5MTQzMmNkNDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MSBAQAorMjAyMC0wNy0xMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBDbGVhbiB1cCBTb3VyY2VQcm92aWRlciBhbmQgYWRkIGNhbGxlciBy
ZWxhdGl2ZSBsb2FkIHNjcmlwdCB0byBqc2MuY3BwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIEFQSS9KU0FQSUdsb2JhbE9iamVjdC5tbToKKyAgICAg
ICAgKEpTQzo6SlNBUElHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6Cisg
ICAgICAgICogQVBJL0pTQmFzZS5jcHA6CisgICAgICAgIChKU0V2YWx1YXRlU2NyaXB0KToKKyAg
ICAgICAgKEpTQ2hlY2tTY3JpcHRTeW50YXgpOgorICAgICAgICAqIEFQSS9KU09iamVjdFJlZi5j
cHA6CisgICAgICAgIChKU09iamVjdE1ha2VGdW5jdGlvbik6CisgICAgICAgICogQVBJL0pTU2Ny
aXB0Lm1tOgorICAgICAgICAoLVtKU1NjcmlwdCBzb3VyY2VDb2RlXSk6CisgICAgICAgICogQVBJ
L0pTU2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMu
Y3BwOgorICAgICAgICAoSlNDOjpCdWlsdGluRXhlY3V0YWJsZXM6OkJ1aWx0aW5FeGVjdXRhYmxl
cyk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChKU0M6OkNvZGVC
bG9jazo6cmVmZXJyZXJVUkwgY29uc3QpOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyTG9j
YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckxvY2F0aW9uOjpEZWJ1Z2dlckxvY2F0
aW9uKToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmg6CisgICAgICAgIChK
U0M6OkRlYnVnZ2VyTG9jYXRpb246OkRlYnVnZ2VyTG9jYXRpb24pOgorICAgICAgICAqIGluc3Bl
Y3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OlNjcmlwdERl
YnVnU2VydmVyOjpzb3VyY2VQYXJzZWQpOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChH
bG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6CisgICAgICAgIChqc2NTb3Vy
Y2UpOgorICAgICAgICAoR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAg
IChmdW5jdGlvblJ1bik6CisgICAgICAgIChmdW5jdGlvbkxvYWQpOgorICAgICAgICAoZnVuY3Rp
b25DaGVja1N5bnRheCk6CisgICAgICAgIChmdW5jdGlvbkNhbGxlclNvdXJjZU9yaWdpbik6Cisg
ICAgICAgIChmdW5jdGlvbkRvbGxhckFnZW50U3RhcnQpOgorICAgICAgICAoZnVuY3Rpb25DaGVj
a01vZHVsZVN5bnRheCk6CisgICAgICAgIChydW5XaXRoT3B0aW9ucyk6CisgICAgICAgIChydW5J
bnRlcmFjdGl2ZSk6CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6CisgICAgICAgIChKU0M6OlNj
b3BlTm9kZTo6c291cmNlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U2NvcGVOb2RlOjpzb3VyY2VV
UkwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VDb2RlLmg6CisgICAg
ICAgIChKU0M6Om1ha2VTb3VyY2UpOgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VDb2RlS2V5Lmg6
CisgICAgICAgIChKU0M6OlNvdXJjZUNvZGVLZXk6Omhvc3QgY29uc3QpOgorICAgICAgICAqIHBh
cnNlci9Tb3VyY2VQcm92aWRlci5jcHA6CisgICAgICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyOjpT
b3VyY2VQcm92aWRlcik6CisgICAgICAgICogcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmg6CisgICAg
ICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyOjpzb3VyY2VVUkwgY29uc3QpOgorICAgICAgICAoSlND
OjpTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6U3RyaW5nU291
cmNlUHJvdmlkZXI6OlN0cmluZ1NvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKEpTQzo6U291cmNl
UHJvdmlkZXI6OnVybCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9DYWNoZWRU
eXBlcy5jcHA6CisgICAgICAgIChKU0M6OkNhY2hlZFNvdXJjZU9yaWdpbjo6ZW5jb2RlKToKKyAg
ICAgICAgKEpTQzo6Q2FjaGVkU291cmNlT3JpZ2luOjpkZWNvZGUgY29uc3QpOgorICAgICAgICAo
SlNDOjpDYWNoZWRTb3VyY2VQcm92aWRlclNoYXBlOjplbmNvZGUpOgorICAgICAgICAoSlNDOjpD
YWNoZWRTdHJpbmdTb3VyY2VQcm92aWRlcjo6ZGVjb2RlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
Q2FjaGVkV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6ZGVjb2RlIGNvbnN0KToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6YWRkRXJyb3JJbmZvKToKKyAgICAg
ICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25z
dHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjayk6CisgICAgICAgICogcnVudGlt
ZS9TY3JpcHRFeGVjdXRhYmxlLmg6CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6OnNv
dXJjZVVSTCBjb25zdCk6CisgICAgICAgICogcnVudGltZS9Tb3VyY2VPcmlnaW4uaDoKKyAgICAg
ICAgKEpTQzo6U291cmNlT3JpZ2luOjpTb3VyY2VPcmlnaW4pOgorICAgICAgICAoSlNDOjpTb3Vy
Y2VPcmlnaW46OnVybCBjb25zdCk6CisgICAgICAgIChKU0M6OlNvdXJjZU9yaWdpbjo6c3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6U291cmNlT3JpZ2luOjppc051bGwgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvVGhyb3dTY29wZS5jcHA6CisgICAgICAgIChKU0M6OlRo
cm93U2NvcGU6OnRocm93RXhjZXB0aW9uKToKKyAgICAgICAgKiBydW50aW1lL1Rocm93U2NvcGUu
aDoKKyAgICAgICAgKEpTQzo6VGhyb3dTY29wZTo6dGhyb3dFeGNlcHRpb24pOgorICAgICAgICAo
SlNDOjp0aHJvd1ZNRXhjZXB0aW9uKToKKyAgICAgICAgKiB0b29scy9GdW5jdGlvbk92ZXJyaWRl
cy5jcHA6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVPdmVycmlkZUluZm8pOgorCiAyMDIwLTA3
LTA5ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04o
cjI2MjMwMik6IElUTUxLaXQgZGVidWdnYWJsZXMgaW4gbGlzdGluZ3MgYXJlIG1pc3NpbmcgYSB0
aXRsZSwgdXNlIFVVSUQgaW5zdGVhZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0FQSUdsb2JhbE9iamVjdC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNB
UElHbG9iYWxPYmplY3QubW0KaW5kZXggMDJjYjliNzMxMTA1M2E0MmM3ZGQ1NDVlZTgzOWQxYzgw
MWU0YjkxZi4uMmMwYTYzOTI3NTk3ZTE5MTc4OWQxMGNhMDFkMTE5ZWRhMzI3ZDYzNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5tbQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0Lm1tCkBAIC0xNTAs
OCArMTUwLDcgQEAgSlNJbnRlcm5hbFByb21pc2UqIEpTQVBJR2xvYmFsT2JqZWN0Ojptb2R1bGVM
b2FkZXJJbXBvcnRNb2R1bGUoSlNHbG9iYWxPYmplY3QqIGcKICAgICAgICAgcmV0dXJuIHJlamVj
dChleGNlcHRpb24tPnZhbHVlKCkpOwogICAgIH0KIAotICAgIFN0cmluZyByZWZlcnJlciA9ICFz
b3VyY2VPcmlnaW4uaXNOdWxsKCkgPyBzb3VyY2VPcmlnaW4uc3RyaW5nKCkgOiBTdHJpbmcoKTsK
LSAgICBVUkwgYmFzZVVSTChVUkwoKSwgcmVmZXJyZXIpOworICAgIFVSTCBiYXNlVVJMID0gc291
cmNlT3JpZ2luLnVybCgpID8gc291cmNlT3JpZ2luLnVybCgpIDogVVJMKCk7CiAgICAgYXV0byBy
ZXN1bHQgPSBjb21wdXRlVmFsaWRJbXBvcnRTcGVjaWZpZXIoYmFzZVVSTCwgc3BlY2lmaWVyKTsK
ICAgICBpZiAocmVzdWx0KQogICAgICAgICByZXR1cm4gaW1wb3J0KHJlc3VsdC52YWx1ZSgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcAppbmRleCAxZDA0Y2YzZjk0OTBkZGY3NTM0
YjIxMDMwMTNhYWM0ZDVmODRiNTUzLi4wOTYxYzY3ZDg5NDVlNzU2YWVkY2Q2ZWRmZDg2MjE0N2M5
MDhjMjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQmFzZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3BwCkBAIC03Myw3ICs3Myw3
IEBAIEpTVmFsdWVSZWYgSlNFdmFsdWF0ZVNjcmlwdEludGVybmFsKGNvbnN0IEpTTG9ja0hvbGRl
ciYsIEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqCiAgICAgcmV0dXJuIHRvUmVmKGdsb2JhbE9iamVj
dCwganNVbmRlZmluZWQoKSk7CiB9CiAKLUpTVmFsdWVSZWYgSlNFdmFsdWF0ZVNjcmlwdChKU0Nv
bnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBzY3JpcHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3Qs
IEpTU3RyaW5nUmVmIHNvdXJjZVVSTCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKQorSlNWYWx1ZVJlZiBKU0V2YWx1YXRlU2NyaXB0KEpTQ29udGV4dFJlZiBj
dHgsIEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgSlNTdHJpbmdS
ZWYgc291cmNlVVJMU3RyaW5nLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBKU1ZhbHVlUmVmKiBl
eGNlcHRpb24pCiB7CiAgICAgaWYgKCFjdHgpIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CkBAIC04NSwxMyArODUsMTMgQEAgSlNWYWx1ZVJlZiBKU0V2YWx1YXRlU2NyaXB0KEpTQ29u
dGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNPYmplY3RSZWYgdGgKIAogICAgIHN0
YXJ0aW5nTGluZU51bWJlciA9IHN0ZDo6bWF4KDEsIHN0YXJ0aW5nTGluZU51bWJlcik7CiAKLSAg
ICBhdXRvIHNvdXJjZVVSTFN0cmluZyA9IHNvdXJjZVVSTCA/IHNvdXJjZVVSTC0+c3RyaW5nKCkg
OiBTdHJpbmcoKTsKLSAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2Uoc2NyaXB0LT5z
dHJpbmcoKSwgU291cmNlT3JpZ2luIHsgc291cmNlVVJMU3RyaW5nIH0sIFVSTCh7IH0sIHNvdXJj
ZVVSTFN0cmluZyksIFRleHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQo
c3RhcnRpbmdMaW5lTnVtYmVyKSwgT3JkaW5hbE51bWJlcigpKSk7CisgICAgYXV0byBzb3VyY2VV
UkwgPSBzb3VyY2VVUkxTdHJpbmcgPyBVUkwoeyB9LCBzb3VyY2VVUkxTdHJpbmctPnN0cmluZygp
KSA6IFVSTCgpOworICAgIFNvdXJjZUNvZGUgc291cmNlID0gbWFrZVNvdXJjZShzY3JpcHQtPnN0
cmluZygpLCBTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkwgfSwgc291cmNlVVJMLnN0cmluZygpLCBU
ZXh0UG9zaXRpb24oT3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0YXJ0aW5nTGluZU51
bWJlciksIE9yZGluYWxOdW1iZXIoKSkpOwogCiAgICAgcmV0dXJuIEpTRXZhbHVhdGVTY3JpcHRJ
bnRlcm5hbChsb2NrZXIsIGN0eCwgdGhpc09iamVjdCwgc291cmNlLCBleGNlcHRpb24pOwogfQog
Ci1ib29sIEpTQ2hlY2tTY3JpcHRTeW50YXgoSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYg
c2NyaXB0LCBKU1N0cmluZ1JlZiBzb3VyY2VVUkwsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIEpT
VmFsdWVSZWYqIGV4Y2VwdGlvbikKK2Jvb2wgSlNDaGVja1NjcmlwdFN5bnRheChKU0NvbnRleHRS
ZWYgY3R4LCBKU1N0cmluZ1JlZiBzY3JpcHQsIEpTU3RyaW5nUmVmIHNvdXJjZVVSTFN0cmluZywg
aW50IHN0YXJ0aW5nTGluZU51bWJlciwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGlm
ICghY3R4KSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTAzLDggKzEwMyw4
IEBAIGJvb2wgSlNDaGVja1NjcmlwdFN5bnRheChKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1Jl
ZiBzY3JpcHQsIEpTU3RyaW5nUmVmIHNvdXJjCiAKICAgICBzdGFydGluZ0xpbmVOdW1iZXIgPSBz
dGQ6Om1heCgxLCBzdGFydGluZ0xpbmVOdW1iZXIpOwogCi0gICAgYXV0byBzb3VyY2VVUkxTdHJp
bmcgPSBzb3VyY2VVUkwgPyBzb3VyY2VVUkwtPnN0cmluZygpIDogU3RyaW5nKCk7Ci0gICAgU291
cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291cmNlKHNjcmlwdC0+c3RyaW5nKCksIFNvdXJjZU9yaWdp
biB7IHNvdXJjZVVSTFN0cmluZyB9LCBVUkwoeyB9LCBzb3VyY2VVUkxTdHJpbmcpLCBUZXh0UG9z
aXRpb24oT3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0YXJ0aW5nTGluZU51bWJlciks
IE9yZGluYWxOdW1iZXIoKSkpOworICAgIGF1dG8gc291cmNlVVJMID0gc291cmNlVVJMU3RyaW5n
ID8gVVJMKHsgfSwgc291cmNlVVJMU3RyaW5nLT5zdHJpbmcoKSkgOiBVUkwoKTsKKyAgICBTb3Vy
Y2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2Uoc2NyaXB0LT5zdHJpbmcoKSwgU291cmNlT3JpZ2lu
IHsgc291cmNlVVJMIH0sIHNvdXJjZVVSTC5zdHJpbmcoKSwgVGV4dFBvc2l0aW9uKE9yZGluYWxO
dW1iZXI6OmZyb21PbmVCYXNlZEludChzdGFydGluZ0xpbmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVy
KCkpKTsKICAgICAKICAgICBKU1ZhbHVlIHN5bnRheEV4Y2VwdGlvbjsKICAgICBib29sIGlzVmFs
aWRTeW50YXggPSBjaGVja1N5bnRheChnbG9iYWxPYmplY3QsIHNvdXJjZSwgJnN5bnRheEV4Y2Vw
dGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVm
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IGQ5
YWViZjdjMWMwMGQ0N2ZjOWQ2NDgwYjYzNTM2NzEzYzA1NmZlNjAuLjM2M2I4YWY0YjQ4YmI4YzA3
NDVmODFiMWNlMGQ4ZmJlNjU2ZjI4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNPYmplY3RSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNP
YmplY3RSZWYuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtl
Q29uc3RydWN0b3IoSlNDb250ZXh0UmVmIGN0eCwgSlNDbGFzc1JlZiBqc0NsYXNzLCBKU09iamUK
ICAgICByZXR1cm4gdG9SZWYoY29uc3RydWN0b3IpOwogfQogCi1KU09iamVjdFJlZiBKU09iamVj
dE1ha2VGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBuYW1lLCB1bnNpZ25l
ZCBwYXJhbWV0ZXJDb3VudCwgY29uc3QgSlNTdHJpbmdSZWYgcGFyYW1ldGVyTmFtZXNbXSwgSlNT
dHJpbmdSZWYgYm9keSwgSlNTdHJpbmdSZWYgc291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVt
YmVyLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCitKU09iamVjdFJlZiBKU09iamVjdE1ha2VGdW5j
dGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBuYW1lLCB1bnNpZ25lZCBwYXJhbWV0
ZXJDb3VudCwgY29uc3QgSlNTdHJpbmdSZWYgcGFyYW1ldGVyTmFtZXNbXSwgSlNTdHJpbmdSZWYg
Ym9keSwgSlNTdHJpbmdSZWYgc291cmNlVVJMU3RyaW5nLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVy
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKCFjdHgpIHsKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xNTEsOCArMTUxLDggQEAgSlNPYmplY3RSZWYgSlNPYmpl
Y3RNYWtlRnVuY3Rpb24oSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgbmFtZSwgdW5zaWdu
ZWQgcGEKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgYXV0byBzb3VyY2VV
UkxTdHJpbmcgPSBzb3VyY2VVUkwgPyBzb3VyY2VVUkwtPnN0cmluZygpIDogU3RyaW5nKCk7Ci0g
ICAgSlNPYmplY3QqIHJlc3VsdCA9IGNvbnN0cnVjdEZ1bmN0aW9uKGdsb2JhbE9iamVjdCwgYXJn
cywgbmFtZUlELCBTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkxTdHJpbmcgfSwgc291cmNlVVJMU3Ry
aW5nLCBUZXh0UG9zaXRpb24oT3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0YXJ0aW5n
TGluZU51bWJlciksIE9yZGluYWxOdW1iZXIoKSkpOworICAgIGF1dG8gc291cmNlVVJMID0gc291
cmNlVVJMU3RyaW5nID8gVVJMKHsgfSwgc291cmNlVVJMU3RyaW5nLT5zdHJpbmcoKSkgOiBVUkwo
KTsKKyAgICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0RnVuY3Rpb24oZ2xvYmFsT2JqZWN0
LCBhcmdzLCBuYW1lSUQsIFNvdXJjZU9yaWdpbiB7IHNvdXJjZVVSTCB9LCBzb3VyY2VVUkwuc3Ry
aW5nKCksIFRleHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRp
bmdMaW5lTnVtYmVyKSwgT3JkaW5hbE51bWJlcigpKSk7CiAgICAgaWYgKGhhbmRsZUV4Y2VwdGlv
bklmTmVlZGVkKHNjb3BlLCBjdHgsIGV4Y2VwdGlvbikgPT0gRXhjZXB0aW9uU3RhdHVzOjpEaWRU
aHJvdykKICAgICAgICAgcmVzdWx0ID0gbnVsbHB0cjsKICAgICByZXR1cm4gdG9SZWYocmVzdWx0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHQubW0gYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0Lm1tCmluZGV4IDAwYzg3NmE0ZTY0NWM0
ZDhhN2Y1YWM4ZThkYzJjN2UxYjVjMjJmMzMuLjllNDE0NTcxMjRiZjE0M2VhNDE3NjE1YzQ5ODJh
NTE5YzFkOTNhN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3Jp
cHQubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdC5tbQpAQCAtMjY3
LDkgKzI2NywxMSBAQCBzdGF0aWMgYm9vbCB2YWxpZGF0ZUJ5dGVjb2RlQ2FjaGVQYXRoKE5TVVJM
KiBjYWNoZVBhdGgsIE5TRXJyb3IqKiBlcnJvcikKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2Nr
ZXIodm0pOwogCiAgICAgVGV4dFBvc2l0aW9uIHN0YXJ0UG9zaXRpb24geyB9OwotICAgIFN0cmlu
ZyB1cmwgPSBTdHJpbmcgeyBbW3NlbGYgc291cmNlVVJMXSBhYnNvbHV0ZVN0cmluZ10gfTsKKyAg
ICBTdHJpbmcgZmlsZW5hbWUgPSBTdHJpbmcgeyBbW3NlbGYgc291cmNlVVJMXSBhYnNvbHV0ZVN0
cmluZ10gfTsKKyAgICBVUkwgdXJsID0gVVJMKHsgfSwgZmlsZW5hbWUpOwogICAgIGF1dG8gdHlw
ZSA9IG1fdHlwZSA9PSBrSlNTY3JpcHRUeXBlTW9kdWxlID8gSlNDOjpTb3VyY2VQcm92aWRlclNv
dXJjZVR5cGU6Ok1vZHVsZSA6IEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFt
OwotICAgIFJlZjxKU1NjcmlwdFNvdXJjZVByb3ZpZGVyPiBzb3VyY2VQcm92aWRlciA9IEpTU2Ny
aXB0U291cmNlUHJvdmlkZXI6OmNyZWF0ZShzZWxmLCBKU0M6OlNvdXJjZU9yaWdpbih1cmwpLCBV
UkwoeyB9LCB1cmwpLCBzdGFydFBvc2l0aW9uLCB0eXBlKTsKKyAgICBKU0M6OlNvdXJjZU9yaWdp
biBvcmlnaW4odXJsKTsKKyAgICBSZWY8SlNTY3JpcHRTb3VyY2VQcm92aWRlcj4gc291cmNlUHJv
dmlkZXIgPSBKU1NjcmlwdFNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc2VsZiwgb3JpZ2luLCBXVEZN
b3ZlKGZpbGVuYW1lKSwgc3RhcnRQb3NpdGlvbiwgdHlwZSk7CiAgICAgSlNDOjpTb3VyY2VDb2Rl
IHNvdXJjZUNvZGUoV1RGTW92ZShzb3VyY2VQcm92aWRlciksIHN0YXJ0UG9zaXRpb24ubV9saW5l
Lm9uZUJhc2VkSW50KCksIHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSk7CiAg
ICAgcmV0dXJuIHNvdXJjZUNvZGU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTU2NyaXB0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3Jp
cHRSZWYuY3BwCmluZGV4IDg0MTU5YWM1MjU3M2M3ODc0ZTNiNTJiMmE0MmUwZmVjNjNjZTdiYWEu
Ljc2MmNlYzA1ZTkyNDZjMGNiMWZhYzEyZGRhZjcyYzFhYzYxMDUwMjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwCkBAIC0zOSw5ICszOSw5IEBAIHVzaW5nIG5h
bWVzcGFjZSBKU0M7CiAKIHN0cnVjdCBPcGFxdWVKU1NjcmlwdCBmaW5hbCA6IHB1YmxpYyBTb3Vy
Y2VQcm92aWRlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFdURjo6UmVmPE9wYXF1ZUpTU2NyaXB0
PiBjcmVhdGUoVk0mIHZtLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYg
dXJsLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZSkKKyAgICBz
dGF0aWMgV1RGOjpSZWY8T3BhcXVlSlNTY3JpcHQ+IGNyZWF0ZShWTSYgdm0sIGNvbnN0IFNvdXJj
ZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJpbmcgZmlsZW5hbWUsIGludCBzdGFydGluZ0xpbmVO
dW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFdURjo6
YWRvcHRSZWYoKm5ldyBPcGFxdWVKU1NjcmlwdCh2bSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKHVy
bCksIHN0YXJ0aW5nTGluZU51bWJlciwgc291cmNlKSk7CisgICAgICAgIHJldHVybiBXVEY6OmFk
b3B0UmVmKCpuZXcgT3BhcXVlSlNTY3JpcHQodm0sIHNvdXJjZU9yaWdpbiwgV1RGTW92ZShmaWxl
bmFtZSksIHN0YXJ0aW5nTGluZU51bWJlciwgc291cmNlKSk7CiAgICAgfQogCiAgICAgdW5zaWdu
ZWQgaGFzaCgpIGNvbnN0IGZpbmFsCkBAIC01Nyw4ICs1Nyw4IEBAIHB1YmxpYzoKICAgICBWTSYg
dm0oKSBjb25zdCB7IHJldHVybiBtX3ZtOyB9CiAKIHByaXZhdGU6Ci0gICAgT3BhcXVlSlNTY3Jp
cHQoVk0mIHZtLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsLCBp
bnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZSkKLSAgICAgICAgOiBT
b3VyY2VQcm92aWRlcihzb3VyY2VPcmlnaW4sIFdURk1vdmUodXJsKSwgVGV4dFBvc2l0aW9uKE9y
ZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChzdGFydGluZ0xpbmVOdW1iZXIpLCBPcmRpbmFs
TnVtYmVyKCkpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pCisgICAgT3BhcXVl
SlNTY3JpcHQoVk0mIHZtLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5n
JiYgZmlsZW5hbWUsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNl
KQorICAgICAgICA6IFNvdXJjZVByb3ZpZGVyKHNvdXJjZU9yaWdpbiwgV1RGTW92ZShmaWxlbmFt
ZSksIFRleHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRpbmdM
aW5lTnVtYmVyKSwgT3JkaW5hbE51bWJlcigpKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQ
cm9ncmFtKQogICAgICAgICAsIG1fdm0odm0pCiAgICAgICAgICwgbV9zb3VyY2Uoc291cmNlLmlz
TnVsbCgpID8gKlN0cmluZ0ltcGw6OmVtcHR5KCkgOiAqc291cmNlLmltcGwoKSkKICAgICB7CkBA
IC04MCw3ICs4MCw3IEBAIHN0YXRpYyBib29sIHBhcnNlU2NyaXB0KFZNJiB2bSwgY29uc3QgU291
cmNlQ29kZSYgc291cmNlLCBQYXJzZXJFcnJvciYgZXJyb3IpCiAKIGV4dGVybiAiQyIgewogCi1K
U1NjcmlwdFJlZiBKU1NjcmlwdENyZWF0ZVJlZmVyZW5jaW5nSW1tb3J0YWxBU0NJSVRleHQoSlND
b250ZXh0R3JvdXBSZWYgY29udGV4dEdyb3VwLCBKU1N0cmluZ1JlZiB1cmwsIGludCBzdGFydGlu
Z0xpbmVOdW1iZXIsIGNvbnN0IGNoYXIqIHNvdXJjZSwgc2l6ZV90IGxlbmd0aCwgSlNTdHJpbmdS
ZWYqIGVycm9yTWVzc2FnZSwgaW50KiBlcnJvckxpbmUpCitKU1NjcmlwdFJlZiBKU1NjcmlwdENy
ZWF0ZVJlZmVyZW5jaW5nSW1tb3J0YWxBU0NJSVRleHQoSlNDb250ZXh0R3JvdXBSZWYgY29udGV4
dEdyb3VwLCBKU1N0cmluZ1JlZiB1cmxTdHJpbmcsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIGNv
bnN0IGNoYXIqIHNvdXJjZSwgc2l6ZV90IGxlbmd0aCwgSlNTdHJpbmdSZWYqIGVycm9yTWVzc2Fn
ZSwgaW50KiBlcnJvckxpbmUpCiB7CiAgICAgYXV0byYgdm0gPSAqdG9KUyhjb250ZXh0R3JvdXAp
OwogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIoJnZtKTsKQEAgLTkxLDggKzkxLDggQEAgSlNTY3Jp
cHRSZWYgSlNTY3JpcHRDcmVhdGVSZWZlcmVuY2luZ0ltbW9ydGFsQVNDSUlUZXh0KEpTQ29udGV4
dEdyb3VwUmVmIGNvbnRleHQKIAogICAgIHN0YXJ0aW5nTGluZU51bWJlciA9IHN0ZDo6bWF4KDEs
IHN0YXJ0aW5nTGluZU51bWJlcik7CiAKLSAgICBhdXRvIHNvdXJjZVVSTFN0cmluZyA9IHVybCA/
IHVybC0+c3RyaW5nKCkgOiBTdHJpbmcoKTsKLSAgICBhdXRvIHJlc3VsdCA9IE9wYXF1ZUpTU2Ny
aXB0OjpjcmVhdGUodm0sIFNvdXJjZU9yaWdpbiB7IHNvdXJjZVVSTFN0cmluZyB9LCBVUkwoeyB9
LCBzb3VyY2VVUkxTdHJpbmcpLCBzdGFydGluZ0xpbmVOdW1iZXIsIFN0cmluZyhTdHJpbmdJbXBs
OjpjcmVhdGVGcm9tTGl0ZXJhbChzb3VyY2UsIGxlbmd0aCkpKTsKKyAgICBhdXRvIHNvdXJjZVVS
TCA9IHVybFN0cmluZyA/IFVSTCh7IH0sIHVybFN0cmluZy0+c3RyaW5nKCkpIDogVVJMKCk7Cisg
ICAgYXV0byByZXN1bHQgPSBPcGFxdWVKU1NjcmlwdDo6Y3JlYXRlKHZtLCBTb3VyY2VPcmlnaW4g
eyBzb3VyY2VVUkwgfSwgc291cmNlVVJMLnN0cmluZygpLCBzdGFydGluZ0xpbmVOdW1iZXIsIFN0
cmluZyhTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbChzb3VyY2UsIGxlbmd0aCkpKTsKIAog
ICAgIFBhcnNlckVycm9yIGVycm9yOwogICAgIGlmICghcGFyc2VTY3JpcHQodm0sIFNvdXJjZUNv
ZGUocmVzdWx0LmNvcHlSZWYoKSksIGVycm9yKSkgewpAQCAtMTA2LDE1ICsxMDYsMTUgQEAgSlNT
Y3JpcHRSZWYgSlNTY3JpcHRDcmVhdGVSZWZlcmVuY2luZ0ltbW9ydGFsQVNDSUlUZXh0KEpTQ29u
dGV4dEdyb3VwUmVmIGNvbnRleHQKICAgICByZXR1cm4gJnJlc3VsdC5sZWFrUmVmKCk7CiB9CiAK
LUpTU2NyaXB0UmVmIEpTU2NyaXB0Q3JlYXRlRnJvbVN0cmluZyhKU0NvbnRleHRHcm91cFJlZiBj
b250ZXh0R3JvdXAsIEpTU3RyaW5nUmVmIHVybCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgSlNT
dHJpbmdSZWYgc291cmNlLCBKU1N0cmluZ1JlZiogZXJyb3JNZXNzYWdlLCBpbnQqIGVycm9yTGlu
ZSkKK0pTU2NyaXB0UmVmIEpTU2NyaXB0Q3JlYXRlRnJvbVN0cmluZyhKU0NvbnRleHRHcm91cFJl
ZiBjb250ZXh0R3JvdXAsIEpTU3RyaW5nUmVmIHVybFN0cmluZywgaW50IHN0YXJ0aW5nTGluZU51
bWJlciwgSlNTdHJpbmdSZWYgc291cmNlLCBKU1N0cmluZ1JlZiogZXJyb3JNZXNzYWdlLCBpbnQq
IGVycm9yTGluZSkKIHsKICAgICBhdXRvJiB2bSA9ICp0b0pTKGNvbnRleHRHcm91cCk7CiAgICAg
SlNMb2NrSG9sZGVyIGxvY2tlcigmdm0pOwogCiAgICAgc3RhcnRpbmdMaW5lTnVtYmVyID0gc3Rk
OjptYXgoMSwgc3RhcnRpbmdMaW5lTnVtYmVyKTsKIAotICAgIGF1dG8gc291cmNlVVJMU3RyaW5n
ID0gdXJsID8gdXJsLT5zdHJpbmcoKSA6IFN0cmluZygpOwotICAgIGF1dG8gcmVzdWx0ID0gT3Bh
cXVlSlNTY3JpcHQ6OmNyZWF0ZSh2bSwgU291cmNlT3JpZ2luIHsgc291cmNlVVJMU3RyaW5nIH0s
IFVSTCh7IH0sIHNvdXJjZVVSTFN0cmluZyksIHN0YXJ0aW5nTGluZU51bWJlciwgc291cmNlLT5z
dHJpbmcoKSk7CisgICAgYXV0byBzb3VyY2VVUkwgPSB1cmxTdHJpbmcgPyBVUkwoeyB9LCB1cmxT
dHJpbmctPnN0cmluZygpKSA6IFVSTCgpOworICAgIGF1dG8gcmVzdWx0ID0gT3BhcXVlSlNTY3Jp
cHQ6OmNyZWF0ZSh2bSwgU291cmNlT3JpZ2luIHsgc291cmNlVVJMIH0sIHNvdXJjZVVSTC5zdHJp
bmcoKSwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2UtPnN0cmluZygpKTsKIAogICAgIFBhcnNl
ckVycm9yIGVycm9yOwogICAgIGlmICghcGFyc2VTY3JpcHQodm0sIFNvdXJjZUNvZGUocmVzdWx0
LmNvcHlSZWYoKSksIGVycm9yKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcAppbmRleCBhYmFhZWYwODFmZTI0YjI5MWRi
ZjM4NzVmZWI2N2MzOTc4YWJkNDJjLi44MzA0OTQ0YmFjNDM4YmM5NzkzNGE0YTAyZDAyMTU5NTVi
NGNhY2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRp
bkV4ZWN1dGFibGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVp
bHRpbkV4ZWN1dGFibGVzLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
QnVpbHRpbkV4ZWN1dGFibGVzOjpCdWlsdGluRXhlY3V0YWJsZXMoVk0mIHZtKQogICAgIDogbV92
bSh2bSkKLSAgICAsIG1fY29tYmluZWRTb3VyY2VQcm92aWRlcihTdHJpbmdTb3VyY2VQcm92aWRl
cjo6Y3JlYXRlKFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKHNfSlNDQ29tYmluZWRDb2Rl
LCBzX0pTQ0NvbWJpbmVkQ29kZUxlbmd0aCksIHsgfSwgVVJMKCkpKQorICAgICwgbV9jb21iaW5l
ZFNvdXJjZVByb3ZpZGVyKFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoU3RyaW5nSW1wbDo6
Y3JlYXRlRnJvbUxpdGVyYWwoc19KU0NDb21iaW5lZENvZGUsIHNfSlNDQ29tYmluZWRDb2RlTGVu
Z3RoKSwgeyB9LCBTdHJpbmcoKSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suaAppbmRleCBkYjU5NmZjN2I0OWNiNDk4MWIxNWE5MjA1NWNiMDUyNWQy
YjJhMTMxLi5mZWEwYWVmNDI5MzczZjI2MWQzMmZhNDgwZTU5MGQzNjg2YTYxZjU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCkBAIC00ODcsNiArNDg3LDcg
QEAgcHVibGljOgogICAgIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJu
IG1fb3duZXJFeGVjdXRhYmxlLT5zb3VyY2UoKTsgfQogICAgIHVuc2lnbmVkIHNvdXJjZU9mZnNl
dCgpIGNvbnN0IHsgcmV0dXJuIG1fb3duZXJFeGVjdXRhYmxlLT5zb3VyY2UoKS5zdGFydE9mZnNl
dCgpOyB9CiAgICAgdW5zaWduZWQgZmlyc3RMaW5lQ29sdW1uT2Zmc2V0KCkgY29uc3QgeyByZXR1
cm4gbV9vd25lckV4ZWN1dGFibGUtPnN0YXJ0Q29sdW1uKCk7IH0KKyAgICBjb25zdCBVUkwmIHJl
ZmVycmVyVVJMKCkgY29uc3QgeyByZXR1cm4gc291cmNlKCkucHJvdmlkZXIoKS0+c291cmNlT3Jp
Z2luKCkudXJsKCk7IH0KIAogICAgIHNpemVfdCBudW1iZXJPZkp1bXBUYXJnZXRzKCkgY29uc3Qg
eyByZXR1cm4gbV91bmxpbmtlZENvZGUtPm51bWJlck9mSnVtcFRhcmdldHMoKTsgfQogICAgIHVu
c2lnbmVkIGp1bXBUYXJnZXQoaW50IGluZGV4KSBjb25zdCB7IHJldHVybiBtX3VubGlua2VkQ29k
ZS0+anVtcFRhcmdldChpbmRleCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmNwcAppbmRleCA5MmFjYTYyOTY1YThmMjdhYzQ3ZjQz
Y2EyNGEzNzBlNTRjMDNiZjJhLi4wZTE5OTk4ZjFlMzJhZTk2MmIyM2NlMzY3ZGMwOTc3ZjM3MzU0
MTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJM
b2NhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
TG9jYXRpb24uY3BwCkBAIC0zOSw5ICszOSw2IEBAIERlYnVnZ2VyTG9jYXRpb246OkRlYnVnZ2Vy
TG9jYXRpb24oU2NyaXB0RXhlY3V0YWJsZSogZXhlY3V0YWJsZSkKICAgICBzb3VyY2VJRCA9IGV4
ZWN1dGFibGUtPnNvdXJjZUlEKCk7CiAgICAgbGluZSA9IGV4ZWN1dGFibGUtPmZpcnN0TGluZSgp
OwogICAgIGNvbHVtbiA9IGV4ZWN1dGFibGUtPnN0YXJ0Q29sdW1uKCk7Ci0gICAgdXJsID0gZXhl
Y3V0YWJsZS0+c291cmNlVVJMKCk7Ci0gICAgaWYgKHVybC5pc0VtcHR5KCkpCi0gICAgICAgIHVy
bCA9IGV4ZWN1dGFibGUtPnNvdXJjZSgpLnByb3ZpZGVyKCktPnNvdXJjZVVSTERpcmVjdGl2ZSgp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJMb2NhdGlvbi5oCmluZGV4IDNlMWM0MTY2YjBhN2U5MDQxMDY3N2Q2
YjgyNmYxZDYyMWYyOTRlNTUuLmU5NDg3NzE2OGM0MDA0ZWI5Y2FkMzhlNzViOWUzOGZjMjAwNjIz
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckxv
Y2F0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyTG9j
YXRpb24uaApAQCAtMzUsMTYgKzM1LDE0IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGFibGU7CiBzdHJ1
Y3QgRGVidWdnZXJMb2NhdGlvbiB7CiAKICAgICBEZWJ1Z2dlckxvY2F0aW9uKCkgeyB9Ci0gICAg
RGVidWdnZXJMb2NhdGlvbihjb25zdCBTdHJpbmcmIHVybCwgaW50cHRyX3Qgc291cmNlSUQsIHVu
c2lnbmVkIGxpbmUsIHVuc2lnbmVkIGNvbHVtbikKLSAgICAgICAgOiB1cmwodXJsKQotICAgICAg
ICAsIHNvdXJjZUlEKHNvdXJjZUlEKQorICAgIERlYnVnZ2VyTG9jYXRpb24oaW50cHRyX3Qgc291
cmNlSUQsIHVuc2lnbmVkIGxpbmUsIHVuc2lnbmVkIGNvbHVtbikKKyAgICAgICAgOiBzb3VyY2VJ
RChzb3VyY2VJRCkKICAgICAgICAgLCBsaW5lKGxpbmUpCiAgICAgICAgICwgY29sdW1uKGNvbHVt
bikKICAgICB7IH0KIAogICAgIERlYnVnZ2VyTG9jYXRpb24oU2NyaXB0RXhlY3V0YWJsZSopOwog
Ci0gICAgU3RyaW5nIHVybDsKICAgICBpbnRwdHJfdCBzb3VyY2VJRCB7IG5vU291cmNlSUQgfTsK
ICAgICB1bnNpZ25lZCBsaW5lIHsgMCB9OwogICAgIHVuc2lnbmVkIGNvbHVtbiB7IDAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZl
ci5jcHAKaW5kZXggZmJiMDRhNDhjY2QxNzc4OTQwZDA2NDcwNmU1Mjg0MDQ4MjJmYzk2MC4uOGRl
ZDEyOTVmOTQzNjg3OGM3M2U5Y2VkYjY2MTMxMjNlNDIyMWRkZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTEz
OSwxMSArMTM5LDExIEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnNvdXJjZVBhcnNlZChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTb3VyY2VQcm92aWRlCiAgICAgICAgIHJldHVybjsK
IAogICAgIGlmIChlcnJvckxpbmUgIT0gLTEpIHsKLSAgICAgICAgYXV0byB1cmwgPSBzb3VyY2VQ
cm92aWRlci0+dXJsKCk7CisgICAgICAgIGF1dG8gc291cmNlVVJMID0gc291cmNlUHJvdmlkZXIt
PnNvdXJjZVVSTCgpOwogICAgICAgICBhdXRvIGRhdGEgPSBzb3VyY2VQcm92aWRlci0+c291cmNl
KCkudG9TdHJpbmcoKTsKICAgICAgICAgYXV0byBmaXJzdExpbmUgPSBzb3VyY2VQcm92aWRlci0+
c3RhcnRQb3NpdGlvbigpLm1fbGluZS5vbmVCYXNlZEludCgpOwogICAgICAgICBkaXNwYXRjaEZ1
bmN0aW9uVG9MaXN0ZW5lcnMoWyZdIChTY3JpcHREZWJ1Z0xpc3RlbmVyJiBsaXN0ZW5lcikgewot
ICAgICAgICAgICAgbGlzdGVuZXIuZmFpbGVkVG9QYXJzZVNvdXJjZSh1cmwuc3RyaW5nKCksIGRh
dGEsIGZpcnN0TGluZSwgZXJyb3JMaW5lLCBlcnJvck1lc3NhZ2UpOworICAgICAgICAgICAgbGlz
dGVuZXIuZmFpbGVkVG9QYXJzZVNvdXJjZShzb3VyY2VVUkwsIGRhdGEsIGZpcnN0TGluZSwgZXJy
b3JMaW5lLCBlcnJvck1lc3NhZ2UpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpzb3VyY2VQYXJz
ZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU291cmNlUHJvdmlkZQogICAgIC8vIEZJ
WE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTYyNzczPiBXZWIgSW5zcGVjdG9yOiBTaW1wbGlm
eSBTY3JpcHREZWJ1Z0xpc3RlbmVyOjpTY3JpcHQgdG8gdXNlIFNvdXJjZVByb3ZpZGVyCiAgICAg
U2NyaXB0RGVidWdMaXN0ZW5lcjo6U2NyaXB0IHNjcmlwdDsKICAgICBzY3JpcHQuc291cmNlUHJv
dmlkZXIgPSBzb3VyY2VQcm92aWRlcjsKLSAgICBzY3JpcHQudXJsID0gc291cmNlUHJvdmlkZXIt
PnVybCgpLnN0cmluZygpOworICAgIHNjcmlwdC51cmwgPSBzb3VyY2VQcm92aWRlci0+c291cmNl
VVJMKCk7CiAgICAgc2NyaXB0LnNvdXJjZSA9IHNvdXJjZVByb3ZpZGVyLT5zb3VyY2UoKS50b1N0
cmluZygpOwogICAgIHNjcmlwdC5zdGFydExpbmUgPSBzb3VyY2VQcm92aWRlci0+c3RhcnRQb3Np
dGlvbigpLm1fbGluZS56ZXJvQmFzZWRJbnQoKTsKICAgICBzY3JpcHQuc3RhcnRDb2x1bW4gPSBz
b3VyY2VQcm92aWRlci0+c3RhcnRQb3NpdGlvbigpLm1fY29sdW1uLnplcm9CYXNlZEludCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvanNjLmNwcAppbmRleCAwZjdjYjNiMmZjOTE4NjdmZjIxMTBhYzdhODc3ODJjNWI0
MDBmNTM4Li4wMjlhNTM5MTc2NWMyMjY2NWQxZTFkZDI4ZDc5NTk3NzNmZTM1YTdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvanNjLmNwcApAQCAtNjc5LDUxICs2NzksNyBAQCBzdGF0aWMgVUNoYXIgcGF0aFNlcGFy
YXRvcigpCiAjZW5kaWYKIH0KIAotc3RydWN0IERpcmVjdG9yeU5hbWUgewotICAgIC8vIEluIHVu
aXgsIGl0IGlzICIvIi4gSW4gV2luZG93cywgaXQgYmVjb21lcyBhIGRyaXZlIGxldHRlciBsaWtl
ICJDOlwiCi0gICAgU3RyaW5nIHJvb3ROYW1lOwotCi0gICAgLy8gSWYgdGhlIGRpcmVjdG9yeSBu
YW1lIGlzICIvaG9tZS9XZWJLaXQiLCB0aGlzIGJlY29tZXMgImhvbWUvV2ViS2l0Ii4gSWYgdGhl
IGRpcmVjdG9yeSBuYW1lIGlzICIvIiwgdGhpcyBiZWNvbWVzICIiLgotICAgIFN0cmluZyBxdWVy
eU5hbWU7Ci19OwotCi1zdHJ1Y3QgTW9kdWxlTmFtZSB7Ci0gICAgTW9kdWxlTmFtZShjb25zdCBT
dHJpbmcmIG1vZHVsZU5hbWUpOwotCi0gICAgYm9vbCBzdGFydHNXaXRoUm9vdCgpIGNvbnN0Ci0g
ICAgewotICAgICAgICByZXR1cm4gIXF1ZXJpZXMuaXNFbXB0eSgpICYmIHF1ZXJpZXNbMF0uaXNF
bXB0eSgpOwotICAgIH0KLQotICAgIFZlY3RvcjxTdHJpbmc+IHF1ZXJpZXM7Ci19OwotCi1Nb2R1
bGVOYW1lOjpNb2R1bGVOYW1lKGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKLXsKLSAgICAvLyBB
IG1vZHVsZSBuYW1lIGdpdmVuIGZyb20gY29kZSBpcyByZXByZXNlbnRlZCBhcyB0aGUgVU5JWCBz
dHlsZSBwYXRoLiBMaWtlLCBgLi9BL0IuanNgLgotICAgIHF1ZXJpZXMgPSBtb2R1bGVOYW1lLnNw
bGl0QWxsb3dpbmdFbXB0eUVudHJpZXMoJy8nKTsKLX0KLQotc3RhdGljIE9wdGlvbmFsPERpcmVj
dG9yeU5hbWU+IGV4dHJhY3REaXJlY3RvcnlOYW1lKGNvbnN0IFN0cmluZyYgYWJzb2x1dGVQYXRo
VG9GaWxlKQotewotICAgIHNpemVfdCBmaXJzdFNlcGFyYXRvclBvc2l0aW9uID0gYWJzb2x1dGVQ
YXRoVG9GaWxlLmZpbmQocGF0aFNlcGFyYXRvcigpKTsKLSAgICBpZiAoZmlyc3RTZXBhcmF0b3JQ
b3NpdGlvbiA9PSBub3RGb3VuZCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBE
aXJlY3RvcnlOYW1lIGRpcmVjdG9yeU5hbWU7Ci0gICAgZGlyZWN0b3J5TmFtZS5yb290TmFtZSA9
IGFic29sdXRlUGF0aFRvRmlsZS5zdWJzdHJpbmcoMCwgZmlyc3RTZXBhcmF0b3JQb3NpdGlvbiAr
IDEpOyAvLyBJbmNsdWRlIHRoZSBzZXBhcmF0b3IuCi0gICAgc2l6ZV90IGxhc3RTZXBhcmF0b3JQ
b3NpdGlvbiA9IGFic29sdXRlUGF0aFRvRmlsZS5yZXZlcnNlRmluZChwYXRoU2VwYXJhdG9yKCkp
OwotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobGFzdFNlcGFyYXRvclBvc2l0aW9uICE9IG5vdEZv
dW5kLCAiSWYgdGhlIHNlcGFyYXRvciBpcyBub3QgZm91bmQsIHRoaXMgZnVuY3Rpb24gYWxyZWFk
eSByZXR1cm5zIHdoZW4gcGVyZm9ybWluZyB0aGUgZm9yd2FyZCBzZWFyY2guIik7Ci0gICAgaWYg
KGZpcnN0U2VwYXJhdG9yUG9zaXRpb24gPT0gbGFzdFNlcGFyYXRvclBvc2l0aW9uKQotICAgICAg
ICBkaXJlY3RvcnlOYW1lLnF1ZXJ5TmFtZSA9IFN0cmluZ0ltcGw6OmVtcHR5KCk7Ci0gICAgZWxz
ZSB7Ci0gICAgICAgIHNpemVfdCBxdWVyeVN0YXJ0UG9zaXRpb24gPSBmaXJzdFNlcGFyYXRvclBv
c2l0aW9uICsgMTsKLSAgICAgICAgc2l6ZV90IHF1ZXJ5TGVuZ3RoID0gbGFzdFNlcGFyYXRvclBv
c2l0aW9uIC0gcXVlcnlTdGFydFBvc2l0aW9uOyAvLyBOb3QgaW5jbHVkZSB0aGUgbGFzdCBzZXBh
cmF0b3IuCi0gICAgICAgIGRpcmVjdG9yeU5hbWUucXVlcnlOYW1lID0gYWJzb2x1dGVQYXRoVG9G
aWxlLnN1YnN0cmluZyhxdWVyeVN0YXJ0UG9zaXRpb24sIHF1ZXJ5TGVuZ3RoKTsKLSAgICB9Ci0g
ICAgcmV0dXJuIGRpcmVjdG9yeU5hbWU7Ci19Ci0KLXN0YXRpYyBPcHRpb25hbDxEaXJlY3RvcnlO
YW1lPiBjdXJyZW50V29ya2luZ0RpcmVjdG9yeSgpCitzdGF0aWMgVVJMIGN1cnJlbnRXb3JraW5n
RGlyZWN0b3J5KCkKIHsKICNpZiBPUyhXSU5ET1dTKQogICAgIC8vIGh0dHBzOi8vbXNkbi5taWNy
b3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvd2luZG93cy9kZXNrdG9wL2FhMzY0OTM0LmFzcHgKQEAg
LTczNyw3ICs2OTMsNyBAQCBzdGF0aWMgT3B0aW9uYWw8RGlyZWN0b3J5TmFtZT4gY3VycmVudFdv
cmtpbmdEaXJlY3RvcnkoKQogICAgIC8vIEluIHRoZSBwYXRoIHV0aWxpdHkgZnVuY3Rpb25zIGlu
c2lkZSB0aGUgSlNDIHNoZWxsLCB3ZSBkb2VzIG5vdCBoYW5kbGUgdGhlIFVOQyBhbmQgVU5DVyBp
bmNsdWRpbmcgdGhlIG5ldHdvcmsgaG9zdCBuYW1lLgogICAgIERXT1JEIGJ1ZmZlckxlbmd0aCA9
IDo6R2V0Q3VycmVudERpcmVjdG9yeVcoMCwgbnVsbHB0cik7CiAgICAgaWYgKCFidWZmZXJMZW5n
dGgpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IH07CiAg
ICAgLy8gSW4gV2luZG93cywgd2NoYXJfdCBpcyB0aGUgVVRGLTE2TEUuCiAgICAgLy8gaHR0cHM6
Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9kZDM3NDA4MS5hc3B4CiAgICAgLy8g
aHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS93aW5kb3dzL2Rlc2t0b3Av
ZmYzODE0MDcuYXNweApAQCAtNzQ2LDU0ICs3MDIsMzEgQEAgc3RhdGljIE9wdGlvbmFsPERpcmVj
dG9yeU5hbWU+IGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KCkKICAgICBTdHJpbmcgZGlyZWN0b3J5
U3RyaW5nKGJ1ZmZlci5kYXRhKCksIGxlbmd0aE5vdEluY2x1ZGluZ051bGwpOwogICAgIC8vIFdl
IGRvbid0IHN1cHBvcnQgbmV0d29yayBwYXRoIGxpa2UgXFxob3N0XHNoYXJlXDxwYXRoIG5hbWU+
LgogICAgIGlmIChkaXJlY3RvcnlTdHJpbmcuc3RhcnRzV2l0aCgiXFxcXCIpKQotICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICByZXR1cm4geyB9OworCiAjZWxzZQogICAgIFZl
Y3RvcjxjaGFyPiBidWZmZXIoUEFUSF9NQVgpOwogICAgIGlmICghZ2V0Y3dkKGJ1ZmZlci5kYXRh
KCksIFBBVEhfTUFYKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgcmV0
dXJuIHsgfTsKICAgICBTdHJpbmcgZGlyZWN0b3J5U3RyaW5nID0gU3RyaW5nOjpmcm9tVVRGOChi
dWZmZXIuZGF0YSgpKTsKICNlbmRpZgogICAgIGlmIChkaXJlY3RvcnlTdHJpbmcuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgaWYgKGRpcmVjdG9yeVN0cmlu
Z1tkaXJlY3RvcnlTdHJpbmcubGVuZ3RoKCkgLSAxXSA9PSBwYXRoU2VwYXJhdG9yKCkpCi0gICAg
ICAgIHJldHVybiBleHRyYWN0RGlyZWN0b3J5TmFtZShkaXJlY3RvcnlTdHJpbmcpOwotICAgIC8v
IEFwcGVuZCB0aGUgc2VwZXJhdG9yIHRvIHJlcHJlc2VudHMgdGhlIGZpbGUgbmFtZS4gZXh0cmFj
dERpcmVjdG9yeU5hbWUgb25seSBhY2NlcHRzIHRoZSBhYnNvbHV0ZSBmaWxlIG5hbWUuCi0gICAg
cmV0dXJuIGV4dHJhY3REaXJlY3RvcnlOYW1lKG1ha2VTdHJpbmcoZGlyZWN0b3J5U3RyaW5nLCBw
YXRoU2VwYXJhdG9yKCkpKTsKLX0KLQotc3RhdGljIFN0cmluZyByZXNvbHZlUGF0aChjb25zdCBE
aXJlY3RvcnlOYW1lJiBkaXJlY3RvcnlOYW1lLCBjb25zdCBNb2R1bGVOYW1lJiBtb2R1bGVOYW1l
KQotewotICAgIFZlY3RvcjxTdHJpbmc+IGRpcmVjdG9yeVBpZWNlcyA9IGRpcmVjdG9yeU5hbWUu
cXVlcnlOYW1lLnNwbGl0KHBhdGhTZXBhcmF0b3IoKSk7CisgICAgICAgIHJldHVybiB7IH07CiAK
LSAgICAvLyBPbmx5IGZpcnN0ICcvJyBpcyByZWNvZ25pemVkIGFzIHRoZSBwYXRoIGZyb20gdGhl
IHJvb3QuCi0gICAgaWYgKG1vZHVsZU5hbWUuc3RhcnRzV2l0aFJvb3QoKSkKLSAgICAgICAgZGly
ZWN0b3J5UGllY2VzLmNsZWFyKCk7CisgICAgLy8gQWRkIGEgdHJhaWxpbmcgc2xhc2ggaWYgbmVl
ZGVkIHNvIHRoZSBVUkwgcmVzb2x2ZXMgdG8gYSBkaXJlY3RvcnkgYW5kIG5vdCBhIGZpbGUuCisg
ICAgaWYgKGRpcmVjdG9yeVN0cmluZ1tkaXJlY3RvcnlTdHJpbmcubGVuZ3RoKCkgLSAxXSAhPSBw
YXRoU2VwYXJhdG9yKCkpCisgICAgICAgIGRpcmVjdG9yeVN0cmluZyA9IG1ha2VTdHJpbmcoZGly
ZWN0b3J5U3RyaW5nLCBwYXRoU2VwYXJhdG9yKCkpOwogCi0gICAgZm9yIChjb25zdCBhdXRvJiBx
dWVyeSA6IG1vZHVsZU5hbWUucXVlcmllcykgewotICAgICAgICBpZiAocXVlcnkgPT0gU3RyaW5n
KCIuLiJfcykpIHsKLSAgICAgICAgICAgIGlmICghZGlyZWN0b3J5UGllY2VzLmlzRW1wdHkoKSkK
LSAgICAgICAgICAgICAgICBkaXJlY3RvcnlQaWVjZXMucmVtb3ZlTGFzdCgpOwotICAgICAgICB9
IGVsc2UgaWYgKCFxdWVyeS5pc0VtcHR5KCkgJiYgcXVlcnkgIT0gU3RyaW5nKCIuIl9zKSkKLSAg
ICAgICAgICAgIGRpcmVjdG9yeVBpZWNlcy5hcHBlbmQocXVlcnkpOwotICAgIH0KLQotICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZChkaXJlY3RvcnlOYW1lLnJv
b3ROYW1lKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRpcmVjdG9yeVBpZWNlcy5zaXpl
KCk7ICsraSkgewotICAgICAgICBidWlsZGVyLmFwcGVuZChkaXJlY3RvcnlQaWVjZXNbaV0pOwot
ICAgICAgICBpZiAoaSArIDEgIT0gZGlyZWN0b3J5UGllY2VzLnNpemUoKSkKLSAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKHBhdGhTZXBhcmF0b3IoKSk7Ci0gICAgfQotICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgcmV0dXJuIFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0
aChkaXJlY3RvcnlTdHJpbmcpOwogfQogCi1zdGF0aWMgU3RyaW5nIGFic29sdXRlUGF0aChjb25z
dCBTdHJpbmcmIGZpbGVOYW1lKQorc3RhdGljIFVSTCBhYnNvbHV0ZVBhdGgoY29uc3QgU3RyaW5n
JiBmaWxlTmFtZSkKIHsKICAgICBhdXRvIGRpcmVjdG9yeU5hbWUgPSBjdXJyZW50V29ya2luZ0Rp
cmVjdG9yeSgpOwogICAgIGlmICghZGlyZWN0b3J5TmFtZSkKLSAgICAgICAgcmV0dXJuIGZpbGVO
YW1lOwotICAgIHJldHVybiByZXNvbHZlUGF0aChkaXJlY3RvcnlOYW1lLnZhbHVlKCksIE1vZHVs
ZU5hbWUoZmlsZU5hbWUuaW1wbCgpKSk7CisgICAgICAgIHJldHVybiBVUkw6OmZpbGVVUkxXaXRo
RmlsZVN5c3RlbVBhdGgoZmlsZU5hbWUpOworCisgICAgcmV0dXJuIFVSTChkaXJlY3RvcnlOYW1l
LCBmaWxlTmFtZSk7CiB9CiAKIEpTSW50ZXJuYWxQcm9taXNlKiBHbG9iYWxPYmplY3Q6Om1vZHVs
ZUxvYWRlckltcG9ydE1vZHVsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU01vZHVs
ZUxvYWRlciosIEpTU3RyaW5nKiBtb2R1bGVOYW1lVmFsdWUsIEpTVmFsdWUgcGFyYW1ldGVycywg
Y29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4pCkBAIC04MTEsMjAgKzc0NCwyOCBAQCBK
U0ludGVybmFsUHJvbWlzZSogR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgICAgICByZXR1cm4gcHJvbWlzZTsKICAgICB9Owog
Ci0gICAgaWYgKHNvdXJjZU9yaWdpbi5pc051bGwoKSkKKyAgICBpZiAoIXNvdXJjZU9yaWdpbi51
cmwoKSkKICAgICAgICAgcmV0dXJuIHJlamVjdChjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsICJD
b3VsZCBub3QgcmVzb2x2ZSB0aGUgbW9kdWxlIHNwZWNpZmllci4iX3MpKTsKIAotICAgIGF1dG8g
cmVmZXJyZXIgPSBzb3VyY2VPcmlnaW4uc3RyaW5nKCk7Ci0gICAgYXV0byBtb2R1bGVOYW1lID0g
bW9kdWxlTmFtZVZhbHVlLT52YWx1ZShnbG9iYWxPYmplY3QpOworICAgIGF1dG8gcmVmZXJyZXIg
PSBzb3VyY2VPcmlnaW4udXJsKCk7CisgICAgYXV0byBzcGVjaWZpZXIgPSBtb2R1bGVOYW1lVmFs
dWUtPnZhbHVlKGdsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Nj
b3BlLCBudWxscHRyKTsKICAgICBpZiAoVU5MSUtFTFkoY2F0Y2hTY29wZS5leGNlcHRpb24oKSkp
CiAgICAgICAgIHJldHVybiByZWplY3QoY2F0Y2hTY29wZS5leGNlcHRpb24oKS0+dmFsdWUoKSk7
CiAKLSAgICBhdXRvIGRpcmVjdG9yeU5hbWUgPSBleHRyYWN0RGlyZWN0b3J5TmFtZShyZWZlcnJl
ci5pbXBsKCkpOwotICAgIGlmICghZGlyZWN0b3J5TmFtZSkKLSAgICAgICAgcmV0dXJuIHJlamVj
dChjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsIG1ha2VTdHJpbmcoIkNvdWxkIG5vdCByZXNvbHZl
IHRoZSByZWZlcnJlciBuYW1lICciLCBTdHJpbmcocmVmZXJyZXIuaW1wbCgpKSwgIicuIikpKTsK
KyAgICBpZiAoIXNwZWNpZmllci5zdGFydHNXaXRoKCcvJykgJiYgIXNwZWNpZmllci5zdGFydHNX
aXRoKCIuLyIpICYmICFzcGVjaWZpZXIuc3RhcnRzV2l0aCgiLi4vIikpIHsKKyAgICAgICAgdGhy
b3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCAiTW9kdWxlIHNwZWNpZmllciBk
b2VzIG5vdCBzdGFydCB3aXRoIFwiL1wiLCBcIi4vXCIsIG9yIFwiLi4vXCIuIl9zKTsKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKyAgICB9CisKKyAgICBpZiAoIXJlZmVycmVyLmlzTG9jYWxGaWxlKCkp
CisgICAgICAgIHJldHVybiByZWplY3QoY3JlYXRlRXJyb3IoZ2xvYmFsT2JqZWN0LCBtYWtlU3Ry
aW5nKCJDb3VsZCBub3QgcmVzb2x2ZSB0aGUgcmVmZXJyZXIncyBwYXRoICciLCByZWZlcnJlci5z
dHJpbmcoKSwgIicsIHdoaWxlIHRyeWluZyB0byByZXNvbHZlIG1vZHVsZSAnIiwgc3BlY2lmaWVy
LCAiJy4iKSkpOwogCi0gICAgYXV0byByZXN1bHQgPSBKU0M6OmltcG9ydE1vZHVsZShnbG9iYWxP
YmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlc29sdmVQYXRoKGRpcmVjdG9yeU5h
bWUudmFsdWUoKSwgTW9kdWxlTmFtZShtb2R1bGVOYW1lKSkpLCBwYXJhbWV0ZXJzLCBqc1VuZGVm
aW5lZCgpKTsKKyAgICBVUkwgbW9kdWxlVVJMKHJlZmVycmVyLCBzcGVjaWZpZXIpOworICAgIGlm
ICghbW9kdWxlVVJMLmlzTG9jYWxGaWxlKCkpCisgICAgICAgIHJldHVybiByZWplY3QoY3JlYXRl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBtYWtlU3RyaW5nKCJNb2R1bGUgdXJsLCAnIiwgbW9kdWxlVVJM
LnN0cmluZygpLCAiJyBkb2VzIG5vdCBtYXAgdG8gYSBsb2NhbCBmaWxlLiIpKSk7CisKKyAgICBh
dXRvIHJlc3VsdCA9IEpTQzo6aW1wb3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgbW9kdWxlVVJMLnN0cmluZygpKSwgcGFyYW1ldGVycywganNVbmRlZmlu
ZWQoKSk7CiAgICAgaWYgKFVOTElLRUxZKGNhdGNoU2NvcGUuZXhjZXB0aW9uKCkpKQogICAgICAg
ICByZXR1cm4gcmVqZWN0KGNhdGNoU2NvcGUuZXhjZXB0aW9uKCktPnZhbHVlKCkpOwogICAgIHJl
dHVybiByZXN1bHQ7CkBAIC04NDIsMzQgKzc4Myw0MSBAQCBJZGVudGlmaWVyIEdsb2JhbE9iamVj
dDo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU01v
ZAogICAgIGlmIChrZXkuaXNTeW1ib2woKSkKICAgICAgICAgcmV0dXJuIGtleTsKIAotICAgIGlm
IChyZWZlcnJlclZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKLSAgICAgICAgYXV0byBkaXJlY3RvcnlO
YW1lID0gY3VycmVudFdvcmtpbmdEaXJlY3RvcnkoKTsKLSAgICAgICAgaWYgKCFkaXJlY3RvcnlO
YW1lKSB7Ci0gICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBj
cmVhdGVFcnJvcihnbG9iYWxPYmplY3QsICJDb3VsZCBub3QgcmVzb2x2ZSB0aGUgY3VycmVudCB3
b3JraW5nIGRpcmVjdG9yeS4iX3MpKTsKKyAgICBTdHJpbmcgc3BlY2lmaWVyID0ga2V5LmltcGwo
KTsKKyAgICBpZiAoIXNwZWNpZmllci5zdGFydHNXaXRoKCcvJykgJiYgIXNwZWNpZmllci5zdGFy
dHNXaXRoKCIuLyIpICYmICFzcGVjaWZpZXIuc3RhcnRzV2l0aCgiLi4vIikpIHsKKyAgICAgICAg
dGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIk1vZHVsZSBzcGVjaWZpZXIgZG9l
cyBub3Qgc3RhcnQgd2l0aCBcIi9cIiwgXCIuL1wiLCBvciBcIi4uL1wiLiJfcyk7CisgICAgICAg
IHJldHVybiB7IH07CisgICAgfQorCisgICAgYXV0byByZXNvbHZlUGF0aCA9IFsmXSAoY29uc3Qg
VVJMJiBkaXJlY3RvcnlVUkwpIC0+IElkZW50aWZpZXIgeworICAgICAgICBpZiAoIWRpcmVjdG9y
eVVSTC5pc0xvY2FsRmlsZSgpKSB7CisgICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxP
YmplY3QsIHNjb3BlLCBjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsIG1ha2VTdHJpbmcoIkNvdWxk
IG5vdCByZXNvbHZlIHRoZSByZWZlcnJlcidzIHBhdGg6ICIsIGRpcmVjdG9yeVVSTC5zdHJpbmco
KSkpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlc29sdmVQYXRoKGRpcmVjdG9yeU5hbWUudmFs
dWUoKSwgTW9kdWxlTmFtZShrZXkuaW1wbCgpKSkpOwotICAgIH0KKworICAgICAgICBVUkwgcmVz
b2x2ZWRVUkwoZGlyZWN0b3J5VVJMLCBzcGVjaWZpZXIpOworICAgICAgICBpZiAoIXJlc29sdmVk
VVJMLmlzVmFsaWQoKSkgeworICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0
LCBzY29wZSwgY3JlYXRlRXJyb3IoZ2xvYmFsT2JqZWN0LCBtYWtlU3RyaW5nKCJSZXNvbHZlZCBt
b2R1bGUgdXJsIGlzIG5vdCB2YWxpZDogIiwgcmVzb2x2ZWRVUkwuc3RyaW5nKCkpKSk7CisgICAg
ICAgICAgICByZXR1cm4geyB9OworICAgICAgICB9CisgICAgICAgIEFTU0VSVChyZXNvbHZlZFVS
TC5pc0xvY2FsRmlsZSgpKTsKKworICAgICAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgcmVzb2x2ZWRVUkwuc3RyaW5nKCkpOworICAgIH07CisKKyAgICBpZiAocmVmZXJyZXJW
YWx1ZS5pc1VuZGVmaW5lZCgpKQorICAgICAgICByZXR1cm4gcmVzb2x2ZVBhdGgoY3VycmVudFdv
cmtpbmdEaXJlY3RvcnkoKSk7CiAKICAgICBjb25zdCBJZGVudGlmaWVyIHJlZmVycmVyID0gcmVm
ZXJyZXJWYWx1ZS50b1Byb3BlcnR5S2V5KGdsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKIAotICAgIGlmIChyZWZlcnJlci5pc1N5bWJvbCgpKSB7Ci0g
ICAgICAgIGF1dG8gZGlyZWN0b3J5TmFtZSA9IGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KCk7Ci0g
ICAgICAgIGlmICghZGlyZWN0b3J5TmFtZSkgewotICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24o
Z2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IoZ2xvYmFsT2JqZWN0LCAiQ291bGQgbm90
IHJlc29sdmUgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuIl9zKSk7Ci0gICAgICAgICAg
ICByZXR1cm4geyB9OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCByZXNvbHZlUGF0aChkaXJlY3RvcnlOYW1lLnZhbHVlKCksIE1vZHVsZU5hbWUo
a2V5LmltcGwoKSkpKTsKLSAgICB9CisgICAgaWYgKHJlZmVycmVyLmlzU3ltYm9sKCkpCisgICAg
ICAgIHJldHVybiByZXNvbHZlUGF0aChjdXJyZW50V29ya2luZ0RpcmVjdG9yeSgpKTsKIAotICAg
IC8vIElmIHRoZSByZWZlcnJlciBleGlzdHMsIHdlIGFzc3VtZSB0aGF0IHRoZSByZWZlcnJlciBp
cyB0aGUgY29ycmVjdCBhYnNvbHV0ZSBwYXRoLgotICAgIGF1dG8gZGlyZWN0b3J5TmFtZSA9IGV4
dHJhY3REaXJlY3RvcnlOYW1lKHJlZmVycmVyLmltcGwoKSk7Ci0gICAgaWYgKCFkaXJlY3RvcnlO
YW1lKSB7Ci0gICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0
ZUVycm9yKGdsb2JhbE9iamVjdCwgbWFrZVN0cmluZygiQ291bGQgbm90IHJlc29sdmUgdGhlIHJl
ZmVycmVyIG5hbWUgJyIsIFN0cmluZyhyZWZlcnJlci5pbXBsKCkpLCAiJy4iKSkpOwotICAgICAg
ICByZXR1cm4geyB9OwotICAgIH0KLSAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgcmVzb2x2ZVBhdGgoZGlyZWN0b3J5TmFtZS52YWx1ZSgpLCBNb2R1bGVOYW1lKGtleS5pbXBs
KCkpKSk7CisgICAgLy8gSWYgdGhlIHJlZmVycmVyIGV4aXN0cywgd2UgYXNzdW1lIHRoYXQgdGhl
IHJlZmVycmVyIGlzIHRoZSBjb3JyZWN0IGZpbGUgdXJsLgorICAgIFVSTCB1cmwgPSBVUkwoeyB9
LCByZWZlcnJlci5pbXBsKCkpOworICAgIEFTU0VSVCh1cmwuaXNMb2NhbEZpbGUoKSk7CisgICAg
cmV0dXJuIHJlc29sdmVQYXRoKHVybCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3Rvcj4K
QEAgLTk1NCw5ICs5MDIsOSBAQCBzdGF0aWMgYm9vbCBmZXRjaFNjcmlwdEZyb21Mb2NhbEZpbGVT
eXN0ZW0oY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgVmVjdG9yPGNoYXI+JgogCiBjbGFzcyBTaGVs
bFNvdXJjZVByb3ZpZGVyIGZpbmFsIDogcHVibGljIFN0cmluZ1NvdXJjZVByb3ZpZGVyIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNoZWxsU291cmNlUHJvdmlkZXI+IGNyZWF0ZShjb25zdCBT
dHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVy
bCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92aWRlclNvdXJj
ZVR5cGUgc291cmNlVHlwZSkKKyAgICBzdGF0aWMgUmVmPFNoZWxsU291cmNlUHJvdmlkZXI+IGNy
ZWF0ZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmln
aW4sIFN0cmluZyYmIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9u
LCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNoZWxsU291cmNlUHJvdmlkZXIoc291cmNlLCBzb3VyY2VPcmln
aW4sIFdURk1vdmUodXJsKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGVsbFNvdXJjZVByb3ZpZGVyKHNvdXJjZSwgc291cmNlT3Jp
Z2luLCBXVEZNb3ZlKHNvdXJjZVVSTCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpKTsKICAg
ICB9CiAKICAgICB+U2hlbGxTb3VyY2VQcm92aWRlcigpIGZpbmFsCkBAIC0xMDM3LDcgKzk4NSw3
IEBAIHByaXZhdGU6CiAgICAgICAgIGlmICghY2FjaGVFbmFibGVkKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KG51bGxwdHIpOwogICAgICAgICBjb25zdCBj
aGFyKiBjYWNoZVBhdGggPSBPcHRpb25zOjpkaXNrQ2FjaGVQYXRoKCk7Ci0gICAgICAgIFN0cmlu
ZyBmaWxlbmFtZSA9IEZpbGVTeXN0ZW06OmVuY29kZUZvckZpbGVOYW1lKEZpbGVTeXN0ZW06Omxh
c3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1RyYWlsaW5nU2xhc2goc291cmNlT3JpZ2luKCkuc3Ry
aW5nKCkpKTsKKyAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gRmlsZVN5c3RlbTo6ZW5jb2RlRm9y
RmlsZU5hbWUoRmlsZVN5c3RlbTo6bGFzdENvbXBvbmVudE9mUGF0aElnbm9yaW5nVHJhaWxpbmdT
bGFzaChzb3VyY2VPcmlnaW4oKS51cmwoKS5maWxlU3lzdGVtUGF0aCgpKSk7CiAgICAgICAgIHJl
dHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY2FjaGVQYXRoLCBtYWtl
U3RyaW5nKHNvdXJjZSgpLnRvU3RyaW5nKCkuaGFzaCgpLCAnLScsIGZpbGVuYW1lLCAiLmJ5dGVj
b2RlLWNhY2hlIikpOwogICAgIH0KIApAQCAtMTA2Nyw4ICsxMDE1LDggQEAgcHJpdmF0ZToKICAg
ICAgICAgbV9jYWNoZWRCeXRlY29kZSA9IENhY2hlZEJ5dGVjb2RlOjpjcmVhdGUoV1RGTW92ZSht
YXBwZWRGaWxlRGF0YSkpOwogICAgIH0KIAotICAgIFNoZWxsU291cmNlUHJvdmlkZXIoY29uc3Qg
U3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1
cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgU291cmNlUHJvdmlkZXJTb3Vy
Y2VUeXBlIHNvdXJjZVR5cGUpCi0gICAgICAgIDogU3RyaW5nU291cmNlUHJvdmlkZXIoc291cmNl
LCBzb3VyY2VPcmlnaW4sIFdURk1vdmUodXJsKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkK
KyAgICBTaGVsbFNvdXJjZVByb3ZpZGVyKGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTb3Vy
Y2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nJiYgc291cmNlVVJMLCBjb25zdCBUZXh0UG9z
aXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBl
KQorICAgICAgICA6IFN0cmluZ1NvdXJjZVByb3ZpZGVyKHNvdXJjZSwgc291cmNlT3JpZ2luLCBX
VEZNb3ZlKHNvdXJjZVVSTCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpCiAgICAgewogICAg
IH0KIApAQCAtMTA4MSw5ICsxMDI5LDkgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFJlZlB0cjxD
YWNoZWRCeXRlY29kZT4gbV9jYWNoZWRCeXRlY29kZTsKIH07CiAKLXN0YXRpYyBpbmxpbmUgU291
cmNlQ29kZSBqc2NTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNvdXJjZU9yaWdp
biYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwgPSBVUkwoKSwgY29uc3QgVGV4dFBvc2l0aW9uJiBz
dGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBz
b3VyY2VUeXBlID0gU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtKQorc3RhdGljIGlu
bGluZSBTb3VyY2VDb2RlIGpzY1NvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291
cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0cmluZyBzb3VyY2VVUkwgPSBTdHJpbmcoKSwgY29u
c3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uKCksIFNvdXJjZVBy
b3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlID0gU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQ
cm9ncmFtKQogewotICAgIHJldHVybiBTb3VyY2VDb2RlKFNoZWxsU291cmNlUHJvdmlkZXI6OmNy
ZWF0ZShzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpLCBzdGFydFBvc2l0aW9uLCBz
b3VyY2VUeXBlKSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJbnQoKSwgc3RhcnRQb3Np
dGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKTsKKyAgICByZXR1cm4gU291cmNlQ29kZShTaGVs
bFNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUoc291
cmNlVVJMKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSksIHN0YXJ0UG9zaXRpb24ubV9saW5l
Lm9uZUJhc2VkSW50KCksIHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSk7CiB9
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3Rvcj4KQEAgLTEwOTEsMTMgKzEwMzksMTMgQEAgc3Rh
dGljIGlubGluZSBTb3VyY2VDb2RlIGpzY1NvdXJjZShjb25zdCBWZWN0b3ImIHV0ZjgsIGNvbnN0
IFNvdXJjZU9yaWdpbiYgc291cmMKIHsKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgdXNlIGFu
IGFic29sdXRlIGZpbGUgVVJMIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTMwNzcKICAgICBTdHJpbmcgc3RyID0gc3RyaW5nRnJvbVVURih1dGY4KTsKLSAgICByZXR1
cm4ganNjU291cmNlKHN0ciwgc291cmNlT3JpZ2luLCBVUkwoeyB9LCBmaWxlbmFtZSkpOworICAg
IHJldHVybiBqc2NTb3VyY2Uoc3RyLCBzb3VyY2VPcmlnaW4sIGZpbGVuYW1lKTsKIH0KIAogdGVt
cGxhdGU8dHlwZW5hbWUgVmVjdG9yPgotc3RhdGljIGJvb2wgZmV0Y2hNb2R1bGVGcm9tTG9jYWxG
aWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIFZlY3RvciYgYnVmZmVyKQorc3RhdGlj
IGJvb2wgZmV0Y2hNb2R1bGVGcm9tTG9jYWxGaWxlU3lzdGVtKGNvbnN0IFVSTCYgZmlsZVVSTCwg
VmVjdG9yJiBidWZmZXIpCiB7Ci0gICAgLy8gV2UgYXNzdW1lIHRoYXQgZmlsZU5hbWUgaXMgYWx3
YXlzIGFuIGFic29sdXRlIHBhdGguCisgICAgU3RyaW5nIGZpbGVOYW1lID0gZmlsZVVSTC5maWxl
U3lzdGVtUGF0aCgpOwogI2lmIE9TKFdJTkRPV1MpCiAgICAgLy8gaHR0cHM6Ly9tc2RuLm1pY3Jv
c29mdC5jb20vZW4tdXMvbGlicmFyeS93aW5kb3dzL2Rlc2t0b3AvYWEzNjUyNDcuYXNweCNtYXhw
YXRoCiAgICAgLy8gVXNlIGxvbmcgVU5DIHRvIHBhc3MgdGhlIGxvbmcgcGF0aCBuYW1lIHRvIHRo
ZSBXaW5kb3dzIEFQSXMuCkBAIC0xMTQ5LDE4ICsxMDk3LDIwIEBAIEpTSW50ZXJuYWxQcm9taXNl
KiBHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckZldGNoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsCiAgICAgaWYgKFVOTElLRUxZKGNhdGNoU2NvcGUuZXhjZXB0aW9uKCkpKQogICAgICAg
ICByZXR1cm4gcmVqZWN0KGNhdGNoU2NvcGUuZXhjZXB0aW9uKCktPnZhbHVlKCkpOwogCi0gICAg
Ly8gSGVyZSwgbm93IHdlIGNvbnNpZGVyIG1vZHVsZUtleSBhcyB0aGUgZmlsZU5hbWUuCisgICAg
VVJMIG1vZHVsZVVSTCh7IH0sIG1vZHVsZUtleSk7CisgICAgQVNTRVJUKG1vZHVsZVVSTC5pc0xv
Y2FsRmlsZSgpKTsKKyAgICAvLyBTdHJpcCB0aGUgVVJJIGZyb20gb3VyIGtleSBzbyBFcnJvcnMg
cHJpbnQgY2Fub25pY2FsIHN5c3RlbSBwYXRocy4KKyAgICBtb2R1bGVLZXkgPSBtb2R1bGVVUkwu
ZmlsZVN5c3RlbVBhdGgoKTsKKwogICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXI7Ci0gICAgaWYg
KCFmZXRjaE1vZHVsZUZyb21Mb2NhbEZpbGVTeXN0ZW0obW9kdWxlS2V5LCBidWZmZXIpKQorICAg
IGlmICghZmV0Y2hNb2R1bGVGcm9tTG9jYWxGaWxlU3lzdGVtKG1vZHVsZVVSTCwgYnVmZmVyKSkK
ICAgICAgICAgcmV0dXJuIHJlamVjdChjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsIG1ha2VTdHJp
bmcoIkNvdWxkIG5vdCBvcGVuIGZpbGUgJyIsIG1vZHVsZUtleSwgIicuIikpKTsKIAotCi0gICAg
VVJMIG1vZHVsZVVSTCA9IFVSTCh7IH0sIG1vZHVsZUtleSk7CiAjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQogICAgIC8vIEZpbGVTeXN0ZW0gZG9lcyBub3QgaGF2ZSBtaW1lLXR5cGUgaGVhZGVyLiBU
aGUgSlNDIHNoZWxsIHJlY29nbml6ZXMgV2ViQXNzZW1ibHkncyBtYWdpYyBoZWFkZXIuCiAgICAg
aWYgKGJ1ZmZlci5zaXplKCkgPj0gNCkgewogICAgICAgICBpZiAoYnVmZmVyWzBdID09ICdcMCcg
JiYgYnVmZmVyWzFdID09ICdhJyAmJiBidWZmZXJbMl0gPT0gJ3MnICYmIGJ1ZmZlclszXSA9PSAn
bScpIHsKLSAgICAgICAgICAgIGF1dG8gc291cmNlID0gU291cmNlQ29kZShXZWJBc3NlbWJseVNv
dXJjZVByb3ZpZGVyOjpjcmVhdGUoV1RGTW92ZShidWZmZXIpLCBTb3VyY2VPcmlnaW4geyBtb2R1
bGVLZXkgfSwgV1RGTW92ZShtb2R1bGVVUkwpKSk7CisgICAgICAgICAgICBhdXRvIHNvdXJjZSA9
IFNvdXJjZUNvZGUoV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKFdURk1vdmUoYnVm
ZmVyKSwgU291cmNlT3JpZ2luIHsgbW9kdWxlVVJMIH0sIFdURk1vdmUobW9kdWxlS2V5KSkpOwog
ICAgICAgICAgICAgY2F0Y2hTY29wZS5yZWxlYXNlQXNzZXJ0Tm9FeGNlcHRpb24oKTsKICAgICAg
ICAgICAgIGF1dG8gc291cmNlQ29kZSA9IEpTU291cmNlQ29kZTo6Y3JlYXRlKHZtLCBXVEZNb3Zl
KHNvdXJjZSkpOwogICAgICAgICAgICAgY2F0Y2hTY29wZS5yZWxlYXNlQXNzZXJ0Tm9FeGNlcHRp
b24oKTsKQEAgLTExNzEsNyArMTEyMSw3IEBAIEpTSW50ZXJuYWxQcm9taXNlKiBHbG9iYWxPYmpl
Y3Q6Om1vZHVsZUxvYWRlckZldGNoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAg
fQogI2VuZGlmCiAKLSAgICBhdXRvIHNvdXJjZUNvZGUgPSBKU1NvdXJjZUNvZGU6OmNyZWF0ZSh2
bSwganNjU291cmNlKHN0cmluZ0Zyb21VVEYoYnVmZmVyKSwgU291cmNlT3JpZ2luIHsgbW9kdWxl
S2V5IH0sIFdURk1vdmUobW9kdWxlVVJMKSwgVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVy
U291cmNlVHlwZTo6TW9kdWxlKSk7CisgICAgYXV0byBzb3VyY2VDb2RlID0gSlNTb3VyY2VDb2Rl
OjpjcmVhdGUodm0sIGpzY1NvdXJjZShzdHJpbmdGcm9tVVRGKGJ1ZmZlciksIFNvdXJjZU9yaWdp
biB7IG1vZHVsZVVSTCB9LCBXVEZNb3ZlKG1vZHVsZUtleSksIFRleHRQb3NpdGlvbigpLCBTb3Vy
Y2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSkpOwogICAgIGNhdGNoU2NvcGUucmVsZWFzZUFz
c2VydE5vRXhjZXB0aW9uKCk7CiAgICAgcHJvbWlzZS0+cmVzb2x2ZShnbG9iYWxPYmplY3QsIHNv
dXJjZUNvZGUpOwogICAgIGNhdGNoU2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKQEAgLTE1MTUsMTQg
KzE0NjUsMjUgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkxvYWQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW0KICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
CisgICAgYm9vbCBjYWxsZXJSZWxhdGl2ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMSkuZ2V0U3Ry
aW5nKGdsb2JhbE9iamVjdCkgPT0gImNhbGxlciByZWxhdGl2ZSJfczsKKyAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKwogICAgIFN0cmluZyBmaWxlTmFt
ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKworICAgIFVS
TCBwYXRoOworICAgIGlmIChjYWxsZXJSZWxhdGl2ZSkgeworICAgICAgICBwYXRoID0gVVJMKGNh
bGxGcmFtZS0+Y2FsbGVyU291cmNlT3JpZ2luKHZtKS51cmwoKSwgZmlsZU5hbWUpOworICAgICAg
ICBpZiAoIXBhdGguaXNMb2NhbEZpbGUoKSkKKyAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNRXhj
ZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVVSSUVycm9yKGdsb2JhbE9iamVjdCwg
bWFrZVN0cmluZygiY2FsbGVyIHJlbGF0aXZlIFVSTCBwYXRoIGlzIG5vdCBhIGxvY2FsIGZpbGU6
ICIsIHBhdGguc3RyaW5nKCkpKSk7CisgICAgfSBlbHNlCisgICAgICAgIHBhdGggPSBhYnNvbHV0
ZVBhdGgoZmlsZU5hbWUpOwogICAgIFZlY3RvcjxjaGFyPiBzY3JpcHQ7Ci0gICAgaWYgKCFmZXRj
aFNjcmlwdEZyb21Mb2NhbEZpbGVTeXN0ZW0oZmlsZU5hbWUsIHNjcmlwdCkpCisgICAgaWYgKCFm
ZXRjaFNjcmlwdEZyb21Mb2NhbEZpbGVTeXN0ZW0ocGF0aC5maWxlU3lzdGVtUGF0aCgpLCBzY3Jp
cHQpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXhjZXB0aW9uKGdsb2Jh
bE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgIkNvdWxkIG5vdCBvcGVu
IGZpbGUuIl9zKSkpOwogCiAgICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBldmFsdWF0aW9uRXhjZXB0
aW9uOwotICAgIEpTVmFsdWUgcmVzdWx0ID0gZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBqc2NTb3Vy
Y2Uoc2NyaXB0LCBTb3VyY2VPcmlnaW4geyBhYnNvbHV0ZVBhdGgoZmlsZU5hbWUpIH0sIGZpbGVO
YW1lKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKKyAgICBKU1ZhbHVlIHJlc3Vs
dCA9IGV2YWx1YXRlKGdsb2JhbE9iamVjdCwganNjU291cmNlKHNjcmlwdCwgU291cmNlT3JpZ2lu
IHsgcGF0aCB9LCBmaWxlTmFtZSksIEpTVmFsdWUoKSwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7CiAg
ICAgaWYgKGV2YWx1YXRpb25FeGNlcHRpb24pCiAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2Jh
bE9iamVjdCwgc2NvcGUsIGV2YWx1YXRpb25FeGNlcHRpb24pOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKQEAgLTE2NDgsNyArMTYwOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25DYWxsZXJTb3VyY2VPcmlnaW4oSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIFNvdXJjZU9y
aWdpbiBzb3VyY2VPcmlnaW4gPSBjYWxsRnJhbWUtPmNhbGxlclNvdXJjZU9yaWdpbih2bSk7Ci0g
ICAgaWYgKHNvdXJjZU9yaWdpbi5pc051bGwoKSkKKyAgICBpZiAoIXNvdXJjZU9yaWdpbi51cmwo
KSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bGwoKSk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyh2bSwgc291cmNlT3JpZ2luLnN0cmluZygpKSk7CiB9
CkBAIC0xOTEyLDcgKzE4NzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uRG9sbGFyQWdlbnRTdGFydChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBldmFs
dWF0aW9uRXhjZXB0aW9uOwogICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdDsKLSAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBqc2NTb3Vy
Y2Uoc291cmNlQ29kZSwgU291cmNlT3JpZ2luKCJ3b3JrZXIiX3MpKSwgSlNWYWx1ZSgpLCBldmFs
dWF0aW9uRXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZXZhbHVhdGUo
Z2xvYmFsT2JqZWN0LCBqc2NTb3VyY2Uoc291cmNlQ29kZSwgU291cmNlT3JpZ2luKFVSTCh7IH0s
ICJ3b3JrZXIiX3MpKSksIEpTVmFsdWUoKSwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7CiAgICAgICAg
ICAgICAgICAgICAgIGlmIChldmFsdWF0aW9uRXhjZXB0aW9uKQogICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0ID0gZXZhbHVhdGlvbkV4Y2VwdGlvbi0+dmFsdWUoKTsKICAgICAgICAgICAg
ICAgICAgICAgY2hlY2tFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCB0cnVlLCBldmFsdWF0aW9uRXhj
ZXB0aW9uLCByZXN1bHQsIGNvbW1hbmRMaW5lLCBzdWNjZXNzKTsKQEAgLTIzMzYsNyArMjI5Nyw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DaGVja01vZHVsZVN5bnRh
eChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAgc3RvcFdhdGNoLnN0YXJ0KCk7CiAKICAg
ICBQYXJzZXJFcnJvciBlcnJvcjsKLSAgICBib29sIHZhbGlkU3ludGF4ID0gY2hlY2tNb2R1bGVT
eW50YXgoZ2xvYmFsT2JqZWN0LCBqc2NTb3VyY2Uoc291cmNlLCB7IH0sIFVSTCgpLCBUZXh0UG9z
aXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUpLCBlcnJvcik7CisgICAg
Ym9vbCB2YWxpZFN5bnRheCA9IGNoZWNrTW9kdWxlU3ludGF4KGdsb2JhbE9iamVjdCwganNjU291
cmNlKHNvdXJjZSwgeyB9LCBTdHJpbmcoKSwgVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVy
U291cmNlVHlwZTo6TW9kdWxlKSwgZXJyb3IpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIHN0b3BXYXRjaC5zdG9wKCk7CiAKQEAgLTI4MTIs
MTAgKzI3NzMsMTEgQEAgc3RhdGljIHZvaWQgcnVuV2l0aE9wdGlvbnMoR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENvbW1hbmRMaW5lJiBvcHRpb25zLCBib28KICAgICAgICAgfQogCiAgICAg
ICAgIGJvb2wgaXNMYXN0RmlsZSA9IGkgPT0gc2NyaXB0cy5zaXplKCkgLSAxOworICAgICAgICBT
b3VyY2VPcmlnaW4gc291cmNlT3JpZ2luIHsgYWJzb2x1dGVQYXRoKGZpbGVOYW1lKSB9OwogICAg
ICAgICBpZiAoaXNNb2R1bGUpIHsKICAgICAgICAgICAgIGlmICghcHJvbWlzZSkgewogICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCB1c2UgYW4gYWJzb2x1dGUgZmlsZSBVUkwg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzA3NwotICAgICAgICAg
ICAgICAgIHByb21pc2UgPSBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoZ2xvYmFsT2JqZWN0LCBqc2NT
b3VyY2Uoc3RyaW5nRnJvbVVURihzY3JpcHRCdWZmZXIpLCBTb3VyY2VPcmlnaW4geyBhYnNvbHV0
ZVBhdGgoZmlsZU5hbWUpIH0sIFVSTCh7IH0sIGZpbGVOYW1lKSwgVGV4dFBvc2l0aW9uKCksIFNv
dXJjZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlKSwganNVbmRlZmluZWQoKSk7CisgICAgICAg
ICAgICAgICAgcHJvbWlzZSA9IGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShnbG9iYWxPYmplY3QsIGpz
Y1NvdXJjZShzdHJpbmdGcm9tVVRGKHNjcmlwdEJ1ZmZlciksIHNvdXJjZU9yaWdpbiwgZmlsZU5h
bWUsIFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSksIGpz
VW5kZWZpbmVkKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc2NvcGUuY2xlYXJFeGNl
cHRpb24oKTsKIApAQCAtMjgzNCw3ICsyNzk2LDcgQEAgc3RhdGljIHZvaWQgcnVuV2l0aE9wdGlv
bnMoR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENvbW1hbmRMaW5lJiBvcHRpb25zLCBib28K
ICAgICAgICAgICAgIHZtLmRyYWluTWljcm90YXNrcygpOwogICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBldmFsdWF0aW9uRXhjZXB0aW9uOwotICAgICAg
ICAgICAgSlNWYWx1ZSByZXR1cm5WYWx1ZSA9IGV2YWx1YXRlKGdsb2JhbE9iamVjdCwganNjU291
cmNlKHNjcmlwdEJ1ZmZlciwgU291cmNlT3JpZ2luIHsgYWJzb2x1dGVQYXRoKGZpbGVOYW1lKSB9
LCBmaWxlTmFtZSksIEpTVmFsdWUoKSwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7CisgICAgICAgICAg
ICBKU1ZhbHVlIHJldHVyblZhbHVlID0gZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBqc2NTb3VyY2Uo
c2NyaXB0QnVmZmVyLCBzb3VyY2VPcmlnaW4gLCBmaWxlTmFtZSksIEpTVmFsdWUoKSwgZXZhbHVh
dGlvbkV4Y2VwdGlvbik7CiAgICAgICAgICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwog
ICAgICAgICAgICAgaWYgKGV2YWx1YXRpb25FeGNlcHRpb24pCiAgICAgICAgICAgICAgICAgcmV0
dXJuVmFsdWUgPSBldmFsdWF0aW9uRXhjZXB0aW9uLT52YWx1ZSgpOwpAQCAtMjg1NywxMCArMjgx
OSwxMCBAQCBzdGF0aWMgdm9pZCBydW5JbnRlcmFjdGl2ZShHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwogCi0gICAgT3B0aW9uYWw8RGlyZWN0b3J5TmFtZT4g
ZGlyZWN0b3J5TmFtZSA9IGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KCk7Ci0gICAgaWYgKCFkaXJl
Y3RvcnlOYW1lKQorICAgIFVSTCBkaXJlY3RvcnlOYW1lID0gY3VycmVudFdvcmtpbmdEaXJlY3Rv
cnkoKTsKKyAgICBpZiAoIWRpcmVjdG9yeU5hbWUuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47
Ci0gICAgU291cmNlT3JpZ2luIHNvdXJjZU9yaWdpbihyZXNvbHZlUGF0aChkaXJlY3RvcnlOYW1l
LnZhbHVlKCksIE1vZHVsZU5hbWUoImludGVycHJldGVyIikpKTsKKyAgICBTb3VyY2VPcmlnaW4g
c291cmNlT3JpZ2luKFVSTChkaXJlY3RvcnlOYW1lLCAiLi9pbnRlcnByZXRlciJfcykpOwogICAg
IAogICAgIGJvb2wgc2hvdWxkUXVpdCA9IGZhbHNlOwogICAgIHdoaWxlICghc2hvdWxkUXVpdCkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IDcxMDE1Y2JlOTFjNWRkNTlh
ZGMzODRkZmQ5MmFiNGRhZTVkN2MxM2QuLjlhMmVmY2FkMjg2YTMyNzMwYzc1OGFjMjYyNWExMzgx
MWE3NGIwNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAgLTE4NTgsNyAr
MTg1OCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTY29wZU5vZGUoUGFyc2VyQXJlbmEm
LCBjb25zdCBKU1Rva2VuTG9jYXRpb24mIHN0YXJ0LCBjb25zdCBKU1Rva2VuTG9jYXRpb24mIGVu
ZCwgY29uc3QgU291cmNlQ29kZSYsIFNvdXJjZUVsZW1lbnRzKiwgVmFyaWFibGVFbnZpcm9ubWVu
dCYsIEZ1bmN0aW9uU3RhY2smJiwgVmFyaWFibGVFbnZpcm9ubWVudCYsIFVuaXF1ZWRTdHJpbmdJ
bXBsUHRyU2V0JiYsIENvZGVGZWF0dXJlcywgSW5uZXJBcnJvd0Z1bmN0aW9uQ29kZUZlYXR1cmVz
LCBpbnQgbnVtQ29uc3RhbnRzKTsKIAogICAgICAgICBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2Uo
KSBjb25zdCB7IHJldHVybiBtX3NvdXJjZTsgfQotICAgICAgICBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnByb3ZpZGVyKCktPnVybCgpLnN0cmluZygp
OyB9CiAgICAgICAgIGludHB0cl90IHNvdXJjZUlEKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2Uu
cHJvdmlkZXJJRCgpOyB9CiAKICAgICAgICAgaW50IHN0YXJ0TGluZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc3RhcnRMaW5lTnVtYmVyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1NvdXJjZUNvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNl
Q29kZS5oCmluZGV4IGFhZDI4N2RkZTg3NzFiNzliMTg2MGM1ZWQ0Yjk3MDgxZWFmMmJmOTYuLjk5
MmQ4OWEyMTAzZGUzNmMwZmRkNjc1YTUzZmY4YjEzMTBjMDFmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZS5oCkBAIC05Niw5ICs5Niw5IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBPcmRpbmFsTnVtYmVyIG1fc3RhcnRDb2x1bW47CiAgICAgfTsKIAotICAg
IGlubGluZSBTb3VyY2VDb2RlIG1ha2VTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0
IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwgPSBVUkwoKSwgY29uc3QgVGV4
dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVy
U291cmNlVHlwZSBzb3VyY2VUeXBlID0gU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFt
KQorICAgIGlubGluZSBTb3VyY2VDb2RlIG1ha2VTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2Us
IGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJpbmcgZmlsZW5hbWUgPSBTdHJp
bmcoKSwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uKCks
IFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlID0gU291cmNlUHJvdmlkZXJTb3Vy
Y2VUeXBlOjpQcm9ncmFtKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFNvdXJjZUNvZGUoU3RyaW5n
U291cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwp
LCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUub25lQmFz
ZWRJbnQoKSwgc3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKTsKKyAgICAgICAg
cmV0dXJuIFNvdXJjZUNvZGUoU3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIHNv
dXJjZU9yaWdpbiwgV1RGTW92ZShmaWxlbmFtZSksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUp
LCBzdGFydFBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpLCBzdGFydFBvc2l0aW9uLm1fY29s
dW1uLm9uZUJhc2VkSW50KCkpOwogICAgIH0KICAgICAKICAgICBpbmxpbmUgU291cmNlQ29kZSBT
b3VyY2VDb2RlOjpzdWJFeHByZXNzaW9uKHVuc2lnbmVkIG9wZW5CcmFjZSwgdW5zaWduZWQgY2xv
c2VCcmFjZSwgaW50IGZpcnN0TGluZSwgaW50IHN0YXJ0Q29sdW1uKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlS2V5LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGVLZXkuaAppbmRleCA2NzhhZTlkN2QzNmI3
MDVlNTA5OWFkYjc1ZDk2ZDA1NWM2NTA0ZDMzLi42NDIzMjcwZDhhZTA5MWE3MzAxY2E4Yzg1MzU5
MGI4YTM3YmNhNDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Nv
dXJjZUNvZGVLZXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNv
ZGVLZXkuaApAQCAtMTA2LDcgKzEwNiw3IEBAIHB1YmxpYzoKICAgICAvLyBwcm92aWRlcnMgY2Fj
aGUgdGhlaXIgc3RyaW5ncyB0byBtYWtlIHRoaXMgZWZmaWNpZW50LgogICAgIFN0cmluZ1ZpZXcg
c3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VDb2RlLnZpZXcoKTsgfQogCi0gICAgU3Ry
aW5nVmlldyBob3N0KCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VDb2RlLnByb3ZpZGVyKCkudXJs
KCkuaG9zdCgpOyB9CisgICAgU3RyaW5nVmlldyBob3N0KCkgY29uc3QgeyByZXR1cm4gbV9zb3Vy
Y2VDb2RlLnByb3ZpZGVyKCkuc291cmNlT3JpZ2luKCkudXJsKCkuaG9zdCgpOyB9CiAKICAgICBi
b29sIG9wZXJhdG9yPT0oY29uc3QgU291cmNlQ29kZUtleSYgb3RoZXIpIGNvbnN0CiAgICAgewpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmNwcAppbmRl
eCBjMTQxNmYxNDk1YjY4M2FmOTVlNzc1OGVjMmExYTAzMTdlNWViOGIwLi4wM2U1NWVlM2QxZmYy
MDI1ODZhZjJiZWE4ZDc5MWQ1MTUzYTE4N2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmNwcApAQCAtMzIsMTAgKzMyLDEwIEBAIG5hbWVzcGFj
ZSBKU0MgewogCiBERUZJTkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKFN0cmluZ1Nv
dXJjZVByb3ZpZGVyKTsKIAotU291cmNlUHJvdmlkZXI6OlNvdXJjZVByb3ZpZGVyKGNvbnN0IFNv
dXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYg
c3RhcnRQb3NpdGlvbiwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUpCitTb3Vy
Y2VQcm92aWRlcjo6U291cmNlUHJvdmlkZXIoY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmln
aW4sIFN0cmluZyYmIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9u
LCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSkKICAgICA6IG1fc291cmNlVHlw
ZShzb3VyY2VUeXBlKQotICAgICwgbV91cmwoV1RGTW92ZSh1cmwpKQogICAgICwgbV9zb3VyY2VP
cmlnaW4oc291cmNlT3JpZ2luKQorICAgICwgbV9zb3VyY2VVUkwoV1RGTW92ZShzb3VyY2VVUkwp
KQogICAgICwgbV9zdGFydFBvc2l0aW9uKHN0YXJ0UG9zaXRpb24pCiB7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKaW5kZXggYjYyZjM5MzJjMjEz
MjI5OTY2OWUyZDA1Mjk5N2Y3MjViNzYwMDNjMC4uMTI5ZWU1YzQ5ZTI0N2FmY2Q5ZjA4ZDU5ZWZl
OWZiMTI4ZjlhYmJlMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9T
b3VyY2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNl
UHJvdmlkZXIuaApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlv
bktpbmQuaCIKICNpbmNsdWRlICJTb3VyY2VPcmlnaW4uaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9z
aXRpb24uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTQsNyArNTMs
NyBAQCBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOwogICAgIHB1YmxpYzoKICAgICAg
ICAgc3RhdGljIGNvbnN0IGludHB0cl90IG51bGxJRCA9IDE7CiAgICAgICAgIAotICAgICAgICBK
U19FWFBPUlRfUFJJVkFURSBTb3VyY2VQcm92aWRlcihjb25zdCBTb3VyY2VPcmlnaW4mLCBVUkwm
JiwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92aWRlclNvdXJj
ZVR5cGUpOworICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBTb3VyY2VQcm92aWRlcihjb25zdCBT
b3VyY2VPcmlnaW4mLCBTdHJpbmcmJiBzb3VyY2VVUkwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3Rh
cnRQb3NpdGlvbiwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlKTsKIAogICAgICAgICBKU19FWFBP
UlRfUFJJVkFURSB2aXJ0dWFsIH5Tb3VyY2VQcm92aWRlcigpOwogCkBAIC03MSw3ICs3MCw5IEBA
IGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7CiAgICAgICAgIH0KIAogICAgICAgICBj
b25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNl
T3JpZ2luOyB9Ci0gICAgICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7
IH0KKworICAgICAgICAvLyBUaGlzIGlzIE5PVCB0aGUgcGF0aCB0aGF0IHNob3VsZCBiZSB1c2Vk
IGZvciBjb21wdXRpbmcgcmVsYXRpdmUgcGF0aHMgZnJvbSBhIHNjcmlwdC4gVXNlIFNvdXJjZU9y
aWdpbidzIFVSTCBmb3IgdGhhdCwgdGhlIHZhbHVlcyBtYXkgb3IgbWF5IG5vdCBiZSB0aGUgc2Ft
ZS4uLgorICAgICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1f
c291cmNlVVJMOyB9CiAgICAgICAgIGNvbnN0IFN0cmluZyYgc291cmNlVVJMRGlyZWN0aXZlKCkg
Y29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkxEaXJlY3RpdmU7IH0KICAgICAgICAgY29uc3QgU3Ry
aW5nJiBzb3VyY2VNYXBwaW5nVVJMRGlyZWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VN
YXBwaW5nVVJMRGlyZWN0aXZlOyB9CiAKQEAgLTkyLDggKzkzLDggQEAgY2xhc3MgVW5saW5rZWRG
dW5jdGlvbkNvZGVCbG9jazsKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBnZXRJRCgp
OwogCiAgICAgICAgIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBtX3NvdXJjZVR5cGU7Ci0gICAg
ICAgIFVSTCBtX3VybDsKICAgICAgICAgU291cmNlT3JpZ2luIG1fc291cmNlT3JpZ2luOworICAg
ICAgICBTdHJpbmcgbV9zb3VyY2VVUkw7CiAgICAgICAgIFN0cmluZyBtX3NvdXJjZVVSTERpcmVj
dGl2ZTsKICAgICAgICAgU3RyaW5nIG1fc291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZTsKICAgICAg
ICAgVGV4dFBvc2l0aW9uIG1fc3RhcnRQb3NpdGlvbjsKQEAgLTEwNCw5ICsxMDUsOSBAQCBjbGFz
cyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOwogICAgIGNsYXNzIFN0cmluZ1NvdXJjZVByb3Zp
ZGVyIDogcHVibGljIFNvdXJjZVByb3ZpZGVyIHsKICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURURfV0lUSF9IRUFQX0lERU5USUZJRVIoU3RyaW5nU291cmNlUHJvdmlkZXIpOwogICAgIHB1
YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZjxTdHJpbmdTb3VyY2VQcm92aWRlcj4gY3JlYXRlKGNv
bnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJM
JiYgdXJsLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRpb24o
KSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUgPSBTb3VyY2VQcm92aWRlclNv
dXJjZVR5cGU6OlByb2dyYW0pCisgICAgICAgIHN0YXRpYyBSZWY8U3RyaW5nU291cmNlUHJvdmlk
ZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3Vy
Y2VPcmlnaW4sIFN0cmluZyBzb3VyY2VVUkwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3Np
dGlvbiA9IFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlw
ZSA9IFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSkKICAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RyaW5nU291cmNlUHJvdmlkZXIoc291cmNlLCBz
b3VyY2VPcmlnaW4sIFdURk1vdmUodXJsKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkpOwor
ICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RyaW5nU291cmNlUHJvdmlkZXIoc291
cmNlLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUoc291cmNlVVJMKSwgc3RhcnRQb3NpdGlvbiwgc291
cmNlVHlwZSkpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICB1bnNpZ25lZCBoYXNoKCkg
Y29uc3Qgb3ZlcnJpZGUKQEAgLTEyMCw4ICsxMjEsOCBAQCBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9u
Q29kZUJsb2NrOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIFN0cmluZ1Nv
dXJjZVByb3ZpZGVyKGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNv
dXJjZU9yaWdpbiwgVVJMJiYgdXJsLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24s
IFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlKQotICAgICAgICAgICAgOiBTb3Vy
Y2VQcm92aWRlcihzb3VyY2VPcmlnaW4sIFdURk1vdmUodXJsKSwgc3RhcnRQb3NpdGlvbiwgc291
cmNlVHlwZSkKKyAgICAgICAgU3RyaW5nU291cmNlUHJvdmlkZXIoY29uc3QgU3RyaW5nJiBzb3Vy
Y2UsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJpbmcmJiBzb3VyY2VVUkws
IGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgU291cmNlUHJvdmlkZXJTb3VyY2VU
eXBlIHNvdXJjZVR5cGUpCisgICAgICAgICAgICA6IFNvdXJjZVByb3ZpZGVyKHNvdXJjZU9yaWdp
biwgV1RGTW92ZShzb3VyY2VVUkwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKQogICAgICAg
ICAgICAgLCBtX3NvdXJjZShzb3VyY2UuaXNOdWxsKCkgPyAqU3RyaW5nSW1wbDo6ZW1wdHkoKSA6
ICpzb3VyY2UuaW1wbCgpKQogICAgICAgICB7CiAgICAgICAgIH0KQEAgLTEzMyw5ICsxMzQsOSBA
QCBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOwogI2lmIEVOQUJMRShXRUJBU1NFTUJM
WSkKICAgICBjbGFzcyBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyIGZpbmFsIDogcHVibGljIFNv
dXJjZVByb3ZpZGVyIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8V2ViQXNzZW1i
bHlTb3VyY2VQcm92aWRlcj4gY3JlYXRlKFZlY3Rvcjx1aW50OF90PiYmIGRhdGEsIGNvbnN0IFNv
dXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwpCisgICAgICAgIHN0YXRpYyBSZWY8
V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcj4gY3JlYXRlKFZlY3Rvcjx1aW50OF90PiYmIGRhdGEs
IGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJpbmcgc291cmNlVVJMKQogICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBc3NlbWJseVNvdXJj
ZVByb3ZpZGVyKFdURk1vdmUoZGF0YSksIHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpKSk7Cisg
ICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVy
KFdURk1vdmUoZGF0YSksIHNvdXJjZU9yaWdpbiwgV1RGTW92ZShzb3VyY2VVUkwpKSk7CiAgICAg
ICAgIH0KIAogICAgICAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QgZmluYWwKQEAgLTE1NCw4ICsx
NTUsOCBAQCBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOwogICAgICAgICB9CiAKICAg
ICBwcml2YXRlOgotICAgICAgICBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyKFZlY3Rvcjx1aW50
OF90PiYmIGRhdGEsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwp
Ci0gICAgICAgICAgICA6IFNvdXJjZVByb3ZpZGVyKHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwp
LCBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpXZWJBc3NlbWJseSkK
KyAgICAgICAgV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcihWZWN0b3I8dWludDhfdD4mJiBkYXRh
LCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nJiYgc291cmNlVVJMKQor
ICAgICAgICAgICAgOiBTb3VyY2VQcm92aWRlcihzb3VyY2VPcmlnaW4sIFdURk1vdmUoc291cmNl
VVJMKSwgVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6V2ViQXNzZW1i
bHkpCiAgICAgICAgICAgICAsIG1fc291cmNlKCJbV2ViQXNzZW1ibHkgc291cmNlXSIpCiAgICAg
ICAgICAgICAsIG1fZGF0YShXVEZNb3ZlKGRhdGEpKQogICAgICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAKaW5kZXggM2QyNTA2NGRkOTIzNzEz
YTE0NGQ4MWZmY2ViODIyNTI1MTJiNGIyYS4uMjJmNzE2NGUwOWY3YjM2NTA0ZmY4ODhiZmM5ZjFj
M2Q0NDRmM2QzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2Fj
aGVkVHlwZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5
cGVzLmNwcApAQCAtMTUxMCwxMiArMTUxMCwxMiBAQCBjbGFzcyBDYWNoZWRTb3VyY2VPcmlnaW4g
OiBwdWJsaWMgQ2FjaGVkT2JqZWN0PFNvdXJjZU9yaWdpbj4gewogcHVibGljOgogICAgIHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2lu
KQogICAgIHsKLSAgICAgICAgbV9zdHJpbmcuZW5jb2RlKGVuY29kZXIsIHNvdXJjZU9yaWdpbi5z
dHJpbmcoKSk7CisgICAgICAgIG1fc3RyaW5nLmVuY29kZShlbmNvZGVyLCBzb3VyY2VPcmlnaW4u
dXJsKCkuc3RyaW5nKCkpOwogICAgIH0KIAogICAgIFNvdXJjZU9yaWdpbiBkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBTb3VyY2VPcmlnaW4geyBt
X3N0cmluZy5kZWNvZGUoZGVjb2RlcikgfTsKKyAgICAgICAgcmV0dXJuIFNvdXJjZU9yaWdpbiB7
IFVSTCh7IH0sIG1fc3RyaW5nLmRlY29kZShkZWNvZGVyKSkgfTsKICAgICB9CiAKIHByaXZhdGU6
CkBAIC0xNTQ2LDcgKzE1NDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgU291cmNlUHJvdmlkZXImIHNvdXJjZVByb3ZpZGVyKQogICAgIHsKICAg
ICAgICAgbV9zb3VyY2VPcmlnaW4uZW5jb2RlKGVuY29kZXIsIHNvdXJjZVByb3ZpZGVyLnNvdXJj
ZU9yaWdpbigpKTsKLSAgICAgICAgbV91cmwuZW5jb2RlKGVuY29kZXIsIHNvdXJjZVByb3ZpZGVy
LnVybCgpLnN0cmluZygpKTsKKyAgICAgICAgbV9zb3VyY2VVUkwuZW5jb2RlKGVuY29kZXIsIHNv
dXJjZVByb3ZpZGVyLnNvdXJjZVVSTCgpKTsKICAgICAgICAgbV9zb3VyY2VVUkxEaXJlY3RpdmUu
ZW5jb2RlKGVuY29kZXIsIHNvdXJjZVByb3ZpZGVyLnNvdXJjZVVSTERpcmVjdGl2ZSgpKTsKICAg
ICAgICAgbV9zb3VyY2VNYXBwaW5nVVJMRGlyZWN0aXZlLmVuY29kZShlbmNvZGVyLCBzb3VyY2VQ
cm92aWRlci5zb3VyY2VNYXBwaW5nVVJMRGlyZWN0aXZlKCkpOwogICAgICAgICBtX3N0YXJ0UG9z
aXRpb24uZW5jb2RlKGVuY29kZXIsIHNvdXJjZVByb3ZpZGVyLnN0YXJ0UG9zaXRpb24oKSk7CkBA
IC0xNTYwLDcgKzE1NjAsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBDYWNoZWRTb3Vy
Y2VPcmlnaW4gbV9zb3VyY2VPcmlnaW47Ci0gICAgQ2FjaGVkU3RyaW5nIG1fdXJsOworICAgIENh
Y2hlZFN0cmluZyBtX3NvdXJjZVVSTDsKICAgICBDYWNoZWRTdHJpbmcgbV9zb3VyY2VVUkxEaXJl
Y3RpdmU7CiAgICAgQ2FjaGVkU3RyaW5nIG1fc291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZTsKICAg
ICBDYWNoZWRUZXh0UG9zaXRpb24gbV9zdGFydFBvc2l0aW9uOwpAQCAtMTU4MCwxMCArMTU4MCwx
MCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBTdHJpbmcgZGVjb2RlZFNvdXJjZSA9IG1fc291
cmNlLmRlY29kZShkZWNvZGVyKTsKICAgICAgICAgU291cmNlT3JpZ2luIGRlY29kZWRTb3VyY2VP
cmlnaW4gPSBtX3NvdXJjZU9yaWdpbi5kZWNvZGUoZGVjb2Rlcik7Ci0gICAgICAgIFN0cmluZyBk
ZWNvZGVkVVJMID0gbV91cmwuZGVjb2RlKGRlY29kZXIpOworICAgICAgICBTdHJpbmcgZGVjb2Rl
ZFNvdXJjZVVSTCA9IG1fc291cmNlVVJMLmRlY29kZShkZWNvZGVyKTsKICAgICAgICAgVGV4dFBv
c2l0aW9uIGRlY29kZWRTdGFydFBvc2l0aW9uID0gbV9zdGFydFBvc2l0aW9uLmRlY29kZShkZWNv
ZGVyKTsKIAotICAgICAgICBSZWY8U3RyaW5nU291cmNlUHJvdmlkZXI+IHNvdXJjZVByb3ZpZGVy
ID0gU3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShkZWNvZGVkU291cmNlLCBkZWNvZGVkU291
cmNlT3JpZ2luLCBVUkwoVVJMKCksIGRlY29kZWRVUkwpLCBkZWNvZGVkU3RhcnRQb3NpdGlvbiwg
c291cmNlVHlwZSk7CisgICAgICAgIFJlZjxTdHJpbmdTb3VyY2VQcm92aWRlcj4gc291cmNlUHJv
dmlkZXIgPSBTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKGRlY29kZWRTb3VyY2UsIGRlY29k
ZWRTb3VyY2VPcmlnaW4sIGRlY29kZWRTb3VyY2VVUkwsIGRlY29kZWRTdGFydFBvc2l0aW9uLCBz
b3VyY2VUeXBlKTsKICAgICAgICAgQmFzZTo6ZGVjb2RlKGRlY29kZXIsIHNvdXJjZVByb3ZpZGVy
LmdldCgpKTsKICAgICAgICAgcmV0dXJuICZzb3VyY2VQcm92aWRlci5sZWFrUmVmKCk7CiAgICAg
fQpAQCAtMTYwNywxMSArMTYwNywxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBWZWN0b3I8
dWludDhfdD4gZGVjb2RlZERhdGE7CiAgICAgICAgIFNvdXJjZU9yaWdpbiBkZWNvZGVkU291cmNl
T3JpZ2luID0gbV9zb3VyY2VPcmlnaW4uZGVjb2RlKGRlY29kZXIpOwotICAgICAgICBTdHJpbmcg
ZGVjb2RlZFVSTCA9IG1fdXJsLmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgU3RyaW5nIGRlY29k
ZWRTb3VyY2VVUkwgPSBtX3NvdXJjZVVSTC5kZWNvZGUoZGVjb2Rlcik7CiAKICAgICAgICAgbV9k
YXRhLmRlY29kZShkZWNvZGVyLCBkZWNvZGVkRGF0YSk7CiAKLSAgICAgICAgUmVmPFdlYkFzc2Vt
Ymx5U291cmNlUHJvdmlkZXI+IHNvdXJjZVByb3ZpZGVyID0gV2ViQXNzZW1ibHlTb3VyY2VQcm92
aWRlcjo6Y3JlYXRlKFdURk1vdmUoZGVjb2RlZERhdGEpLCBkZWNvZGVkU291cmNlT3JpZ2luLCBV
UkwoVVJMKCksIGRlY29kZWRVUkwpKTsKKyAgICAgICAgUmVmPFdlYkFzc2VtYmx5U291cmNlUHJv
dmlkZXI+IHNvdXJjZVByb3ZpZGVyID0gV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6Y3JlYXRl
KFdURk1vdmUoZGVjb2RlZERhdGEpLCBkZWNvZGVkU291cmNlT3JpZ2luLCBkZWNvZGVkU291cmNl
VVJMKTsKICAgICAgICAgQmFzZTo6ZGVjb2RlKGRlY29kZXIsIHNvdXJjZVByb3ZpZGVyLmdldCgp
KTsKIAogICAgICAgICByZXR1cm4gJnNvdXJjZVByb3ZpZGVyLmxlYWtSZWYoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAppbmRleCAxNWNjYTk1MTYyMzM5ZTJkOGY1NzQ5
NzhiYWMzN2Y1NDY2ZDY3OGRkLi5mNDczYjgxODFlYzJmMDJhMGNjNzhhMjZjMGMyMGRjOTYzMWZk
Yzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCkBAIC0yMzAsNyAr
MjMwLDcgQEAgdm9pZCBhZGRFcnJvckluZm8oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNPYmplY3QqIG9iaiwgYm9vbCB1c2VDdXJyZW50RnIKIAogSlNPYmplY3QqIGFkZEVycm9ySW5m
byhWTSYgdm0sIEpTT2JqZWN0KiBlcnJvciwgaW50IGxpbmUsIGNvbnN0IFNvdXJjZUNvZGUmIHNv
dXJjZSkKIHsKLSAgICBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCA9IHNvdXJjZS5wcm92aWRlcigp
LT51cmwoKS5zdHJpbmcoKTsKKyAgICBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCA9IHNvdXJjZS5w
cm92aWRlcigpLT5zb3VyY2VVUkwoKTsKICAgICAKICAgICAvLyBUaGUgcHV0RGlyZWN0KCkgY2Fs
bHMgYmVsb3cgc2hvdWxkIHJlYWxseSBiZSBwdXQoKSBzbyB0aGF0IHRoZXkgdHJpZ2dlciBtYXRl
cmlhbGl6YXRpb24gb2YKICAgICAvLyB0aGUgbGluZS9zb3VyY2VVUkwgcHJvcGVydGllcy4gT3Ro
ZXJ3aXNlLCB3aGF0IHdlIHNldCBoZXJlIHdpbGwganVzdCBiZSBvdmVyd3JpdHRlbiBsYXRlci4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1
Y3Rvci5jcHAKaW5kZXggMTI2MTRkZWRhMzk1NmJhNDRmMjA4MjlkZGQ0OTA2ZjBiNGYyN2Y4Yy4u
NGMxMDE2Zjg3OThkZGFjM2FjYWUxMTZkOWVjMTIxYTQ0NmZhY2E4YSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKQEAg
LTE0OCw3ICsxNDgsNyBAQCBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxF
bmFibGVkQ2hlY2soCiAgICAgICAgIHByb2dyYW0gPSBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAg
fQogCi0gICAgU291cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291cmNlKHByb2dyYW0sIHNvdXJjZU9y
aWdpbiwgVVJMKHsgfSwgc291cmNlVVJMKSwgcG9zaXRpb24pOworICAgIFNvdXJjZUNvZGUgc291
cmNlID0gbWFrZVNvdXJjZShwcm9ncmFtLCBzb3VyY2VPcmlnaW4sIHNvdXJjZVVSTCwgcG9zaXRp
b24pOwogICAgIEpTT2JqZWN0KiBleGNlcHRpb24gPSBudWxscHRyOwogICAgIEZ1bmN0aW9uRXhl
Y3V0YWJsZSogZnVuY3Rpb24gPSBGdW5jdGlvbkV4ZWN1dGFibGU6OmZyb21HbG9iYWxDb2RlKGZ1
bmN0aW9uTmFtZSwgZ2xvYmFsT2JqZWN0LCBzb3VyY2UsIGV4Y2VwdGlvbiwgb3ZlcnJpZGVMaW5l
TnVtYmVyLCBmdW5jdGlvbkNvbnN0cnVjdG9yUGFyYW1ldGVyc0VuZFBvc2l0aW9uKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWZ1bmN0aW9uKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oCmluZGV4IGY0YjQyNWJjZmIwMjRjZDg3YjZlZDJjMTc4
ODA3Y2FmMDFjYmQ5MDYuLjUyZDkyMTkwZDAyNDE4MzU1NTAwNmQ2ZGUxYTcwNWEwMTUzYmZhMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFi
bGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRFeGVjdXRhYmxl
LmgKQEAgLTQ3LDcgKzQ3LDggQEAgcHVibGljOgogICAgIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJj
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9CiAgICAgaW50cHRyX3Qgc291cmNlSUQoKSBj
b25zdCB7IHJldHVybiBtX3NvdXJjZS5wcm92aWRlcklEKCk7IH0KICAgICBjb25zdCBTb3VyY2VP
cmlnaW4mIHNvdXJjZU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnByb3ZpZGVyKCkt
PnNvdXJjZU9yaWdpbigpOyB9Ci0gICAgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwoKSBjb25zdCB7
IHJldHVybiBtX3NvdXJjZS5wcm92aWRlcigpLT51cmwoKS5zdHJpbmcoKTsgfQorICAgIC8vIFRo
aXMgaXMgTk9UIHRoZSBwYXRoIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIGNvbXB1dGluZyByZWxh
dGl2ZSBwYXRocyBmcm9tIGEgc2NyaXB0LiBVc2UgU291cmNlT3JpZ2luJ3MgVVJMIGZvciB0aGF0
LCB0aGUgdmFsdWVzIG1heSBvciBtYXkgbm90IGJlIHRoZSBzYW1lLi4uIFRoaXMgc2hvdWxkIG9u
bHkgYmUgdXNlZCBmb3IgYGVycm9yLnNvdXJjZVVSTGAgYW5kIHN0YWNrIHRyYWNlcy4KKyAgICBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnByb3ZpZGVy
KCktPnNvdXJjZVVSTCgpOyB9CiAgICAgaW50IGZpcnN0TGluZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c291cmNlLmZpcnN0TGluZSgpLm9uZUJhc2VkSW50KCk7IH0KICAgICBKU19FWFBPUlRfUFJJVkFU
RSBpbnQgbGFzdExpbmUoKSBjb25zdDsKICAgICB1bnNpZ25lZCBzdGFydENvbHVtbigpIGNvbnN0
IHsgcmV0dXJuIG1fc291cmNlLnN0YXJ0Q29sdW1uKCkub25lQmFzZWRJbnQoKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU291cmNlT3JpZ2luLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Tb3VyY2VPcmlnaW4uaAppbmRleCA3YzNjZGViN2M5
YWRiMjFiODUyOTZhNDNjYzY3OTk1MDAxOGI3MmJkLi4yM2RkNzlkODFjM2Y0MGQ3ZDk1ZTFlM2Ew
OGEyNmJkNGFlZjI3NmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Tb3VyY2VPcmlnaW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Tb3Vy
Y2VPcmlnaW4uaApAQCAtMjYsMzIgKzI2LDMyIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
IlNjcmlwdEZldGNoZXIuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNs
dWRlIDx3dGYvVVJMLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBTb3VyY2VPcmlnaW4g
ewogcHVibGljOgotICAgIGV4cGxpY2l0IFNvdXJjZU9yaWdpbihjb25zdCBTdHJpbmcmIHN0cmlu
ZykKLSAgICAgICAgOiBtX3N0cmluZyhzdHJpbmcpCisgICAgZXhwbGljaXQgU291cmNlT3JpZ2lu
KGNvbnN0IFVSTCYgdXJsKQorICAgICAgICA6IG1fdXJsKHVybCkKICAgICB7CiAgICAgfQogCi0g
ICAgZXhwbGljaXQgU291cmNlT3JpZ2luKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBSZWY8U2NyaXB0
RmV0Y2hlcj4mJiBmZXRjaGVyKQotICAgICAgICA6IG1fc3RyaW5nKHN0cmluZykKKyAgICBleHBs
aWNpdCBTb3VyY2VPcmlnaW4oY29uc3QgVVJMJiB1cmwsIFJlZjxTY3JpcHRGZXRjaGVyPiYmIGZl
dGNoZXIpCisgICAgICAgIDogbV91cmwodXJsKQogICAgICAgICAsIG1fZmV0Y2hlcihXVEZNb3Zl
KGZldGNoZXIpKQogICAgIHsKICAgICB9CiAKICAgICBTb3VyY2VPcmlnaW4oKSA9IGRlZmF1bHQ7
CiAKLSAgICBjb25zdCBTdHJpbmcmIHN0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5nOyB9
Ci0gICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiBtX3N0cmluZy5pc051bGwoKTsgfQor
ICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KKyAgICBTdHJpbmcg
c3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV91cmwuc3RyaW5nKCk7IH0KIAogICAgIFNjcmlwdEZl
dGNoZXIqIGZldGNoZXIoKSBjb25zdCB7IHJldHVybiBtX2ZldGNoZXIuZ2V0KCk7IH0KIAogcHJp
dmF0ZToKLSAgICBTdHJpbmcgbV9zdHJpbmc7CisgICAgVVJMIG1fdXJsOwogICAgIFJlZlB0cjxT
Y3JpcHRGZXRjaGVyPiBtX2ZldGNoZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9UaHJvd1Njb3BlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Rocm93U2NvcGUuY3BwCmluZGV4IGEzMWNlOWRkM2IwNDIyODNkZjdkY2Q4NTVkYThl
ZjBhMjY0OTc1MDguLmRlYzY5YTQ4MzE2ZTE2YWU1MzdiNTgxNWQwNmUwY2JiNzRmYTE5NTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rocm93U2NvcGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rocm93U2NvcGUuY3BwCkBAIC04MCwx
OCArODAsMTIgQEAgRXhjZXB0aW9uKiBUaHJvd1Njb3BlOjp0aHJvd0V4Y2VwdGlvbihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGNlcHRpb24qIGUKIAogRXhjZXB0aW9uKiBUaHJvd1Nj
b3BlOjp0aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IGVycm9yKQogewotICAgIGlmICghZXJyb3IuaXNDZWxsKCkgfHwgIWpzRHluYW1pY0Nhc3Q8RXhj
ZXB0aW9uKj4obV92bSwgZXJyb3IuYXNDZWxsKCkpKQorICAgIGlmICghZXJyb3IuaXNDZWxsKCkg
fHwgZXJyb3IuaXNPYmplY3QoKSB8fCAhanNEeW5hbWljQ2FzdDxFeGNlcHRpb24qPihtX3ZtLCBl
cnJvci5hc0NlbGwoKSkpCiAgICAgICAgIG1fdm0udmVyaWZ5RXhjZXB0aW9uQ2hlY2tOZWVkSXNT
YXRpc2ZpZWQobV9yZWN1cnNpb25EZXB0aCwgbV9sb2NhdGlvbik7CiAgICAgCiAgICAgcmV0dXJu
IG1fdm0udGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBlcnJvcik7CiB9CiAKLUV4Y2VwdGlv
biogVGhyb3dTY29wZTo6dGhyb3dFeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNPYmplY3QqIG9iaikKLXsKLSAgICBtX3ZtLnZlcmlmeUV4Y2VwdGlvbkNoZWNrTmVlZElz
U2F0aXNmaWVkKG1fcmVjdXJzaW9uRGVwdGgsIG1fbG9jYXRpb24pOwotICAgIHJldHVybiBtX3Zt
LnRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgb2JqKTsKLX0KLQogdm9pZCBUaHJvd1Njb3Bl
OjpzaW11bGF0ZVRocm93KCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChtX3ZtLm1fdG9wRXhjZXB0
aW9uU2NvcGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGhy
b3dTY29wZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGhyb3dTY29wZS5oCmlu
ZGV4IDY5MzIxOTdlODA1OGI5ZDY4MjllMTY2NmFhZDAwNzQxNjQzMTYxYTQuLmNmMzM2ZmMyNDNi
NjA0YThlN2Q1ZjE0YTgxYjYzMTgyZjM4ODc4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Rocm93U2NvcGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9UaHJvd1Njb3BlLmgKQEAgLTQ5LDcgKzQ5LDYgQEAgcHVibGljOgogCiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgRXhjZXB0aW9uKiB0aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCos
IEV4Y2VwdGlvbiopOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIEV4Y2VwdGlvbiogdGhyb3dFeGNl
cHRpb24oSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSBF
eGNlcHRpb24qIHRocm93RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqKTsKIAog
ICAgIHZvaWQgcmVsZWFzZSgpIHsgbV9pc1JlbGVhc2VkID0gdHJ1ZTsgfQogCkBAIC03OSw3ICs3
OCw2IEBAIHB1YmxpYzoKIAogICAgIEFMV0FZU19JTkxJTkUgRXhjZXB0aW9uKiB0aHJvd0V4Y2Vw
dGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGNlcHRpb24qIGV4Y2VwdGlvbikg
eyByZXR1cm4gbV92bS50aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIGV4Y2VwdGlvbik7IH0K
ICAgICBBTFdBWVNfSU5MSU5FIEV4Y2VwdGlvbiogdGhyb3dFeGNlcHRpb24oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkgeyByZXR1cm4gbV92bS50aHJvd0V4Y2Vw
dGlvbihnbG9iYWxPYmplY3QsIHZhbHVlKTsgfQotICAgIEFMV0FZU19JTkxJTkUgRXhjZXB0aW9u
KiB0aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCog
b2JqKSB7IHJldHVybiBtX3ZtLnRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgb2JqKTsgfQog
CiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHJlbGVhc2UoKSB7IH0KIH07CkBAIC05OSw5ICs5Nywx
NiBAQCBBTFdBWVNfSU5MSU5FIEV4Y2VwdGlvbiogdGhyb3dFeGNlcHRpb24oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZQogICAgIHJldHVybiBzY29wZS50aHJvd0V4Y2Vw
dGlvbihnbG9iYWxPYmplY3QsIHZhbHVlKTsKIH0KIAotQUxXQVlTX0lOTElORSBFeGNlcHRpb24q
IHRocm93RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRocm93U2NvcGUm
IHNjb3BlLCBKU09iamVjdCogb2JqKQorQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSB0aHJv
d1ZNRXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRocm93U2NvcGUmIHNj
b3BlLCBFeGNlcHRpb24qIGV4Y2VwdGlvbikKIHsKLSAgICByZXR1cm4gc2NvcGUudGhyb3dFeGNl
cHRpb24oZ2xvYmFsT2JqZWN0LCBvYmopOworICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVj
dCwgc2NvcGUsIGV4Y2VwdGlvbik7CisgICAgcmV0dXJuIGVuY29kZWRKU1ZhbHVlKCk7Cit9CisK
K0FMV0FZU19JTkxJTkUgRW5jb2RlZEpTVmFsdWUgdGhyb3dWTUV4Y2VwdGlvbihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSwgSlNWYWx1ZSB2YWx1ZSkKK3sK
KyAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCB2YWx1ZSk7CisgICAgcmV0
dXJuIGVuY29kZWRKU1ZhbHVlKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHAKaW5kZXggZTA5
Mzk2Zjc0MmVlZDc1M2I2ZGJlYTRjZDlhNzhlZjY2NTdkZDQ4NS4uNDhiMmRhNWUyZjI2MWZjOWUw
NmJlYWI3ZDk0ZmY3MTk0MGVmN2ZkNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwCkBAIC0xMzcsNyArMTM3LDkgQEAgc3RhdGljIHZv
aWQgaW5pdGlhbGl6ZU92ZXJyaWRlSW5mbyhjb25zdCBTb3VyY2VDb2RlJiBvcmlnQ29kZSwgY29u
c3QgU3RyaW5nJiBuZXcKICAgICBuZXdQcm92aWRlclN0ci5hcHBlbmQob3JpZ0hlYWRlcik7CiAg
ICAgbmV3UHJvdmlkZXJTdHIuYXBwZW5kKG5ld0JvZHkpOwogCi0gICAgUmVmPFNvdXJjZVByb3Zp
ZGVyPiBuZXdQcm92aWRlciA9IFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUobmV3UHJvdmlk
ZXJTdHIsIFNvdXJjZU9yaWdpbiB7ICI8b3ZlcnJpZGRlbj4iIH0sIFVSTCh7IH0sICI8b3ZlcnJp
ZGRlbj4iKSk7CisgICAgYXV0byBvdmVycmlkZGVuID0gIjxvdmVycmlkZGVuPiJfczsKKyAgICBV
UkwgdXJsKHsgfSwgb3ZlcnJpZGRlbik7CisgICAgUmVmPFNvdXJjZVByb3ZpZGVyPiBuZXdQcm92
aWRlciA9IFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUobmV3UHJvdmlkZXJTdHIsIFNvdXJj
ZU9yaWdpbiB7IHVybCB9LCBvdmVycmlkZGVuKTsKIAogICAgIGluZm8uZmlyc3RMaW5lID0gMTsK
ICAgICBpbmZvLmxpbmVDb3VudCA9IDE7IC8vIEZha2luZyBpdC4gVGhpcyBkb2Vzbid0IHJlYWxs
eSBtYXR0ZXIgZm9yIG5vdy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29s
cy9KU0RvbGxhclZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZN
LmNwcAppbmRleCBlMTJmNDgxNmMzZTE0NDI1NWMxYTRmNTMyYTI4Njc3ZGRiM2QyNTU2Li44ZDY3
ZjUzMTdjNjY0NTU1NDZmYWZiNzdlYWRiMjdmMjVhNTQ1ZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCkBAIC0xNjQ4LDExICsxNjQ4LDQ3IEBAIG5hbWVz
cGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gSlNEb2xsYXJWTTo6c19pbmZvID0geyAiRG9s
bGFyVk0iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKEpTRG9sbGFyVk0pIH07CiAKLS8vIFRyaWdnZXJzIGEgY3Jhc2ggaW1tZWRpYXRlbHkuCi0v
LyBVc2FnZTogJHZtLmNyYXNoKCkKLXN0YXRpYyBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmFzaChKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZG9QcmludChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgYm9vbCBhZGRMaW5lRmVlZCkKIHsK
ICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOworICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9iamVjdC0+dm0oKSk7CisgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKKyAgICAgICAg
SlNWYWx1ZSBhcmcgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KGkpOworICAgICAgICBp
ZiAoYXJnLmlzQ2VsbCgpCisgICAgICAgICAgICAmJiAhYXJnLmlzT2JqZWN0KCkKKyAgICAgICAg
ICAgICYmICFhcmcuaXNTdHJpbmcoKQorICAgICAgICAgICAgJiYgIWFyZy5pc0JpZ0ludCgpKSB7
CisgICAgICAgICAgICBkYXRhTG9nKGFyZyk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgfQorICAgICAgICBTdHJpbmcgYXJnU3RyID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVu
dChpKS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICAgICAgZGF0YUxvZyhhcmdTdHIpOwor
ICAgIH0KKyAgICBpZiAoYWRkTGluZUZlZWQpCisgICAgICAgIGRhdGFMb2coIlxuIik7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30KKworLy8gVHJpZ2dlcnMg
YSBjcmFzaCBhZnRlciBkdW1waW5nIGFueSBwYXJhbWF0ZXIgcGFzc2VkIHRvIGl0LgorLy8gVXNh
Z2U6ICR2bS5jcmFzaCguLi4pCitzdGF0aWMgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3Jhc2goSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7CisgICAgRG9sbGFyVk1Bc3NlcnRTY29w
ZSBhc3NlcnRTY29wZTsKKworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisgICAgaWYgKGNhbGxGcmFtZS0+
YXJndW1lbnRDb3VudCgpKSB7CisgICAgICAgIGRhdGFMb2dMbigiRHVtcGluZyAiLCBjYWxsRnJh
bWUtPmFyZ3VtZW50Q291bnQoKSwgIiB2YWx1ZXMgYmVmb3JlIGNyYXNoaW5nOiIpOworICAgICAg
ICBjb25zdCBib29sIGFkZExpbmVGZWVkID0gdHJ1ZTsKKyAgICAgICAgZG9QcmludChnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSwgYWRkTGluZUZlZWQpOworICAgICAgICBpZiAoc2NvcGUuZXhjZXB0
aW9uKCkpIHsKKyAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBzY29wZS5leGNlcHRpb24oKS0+
dmFsdWUoKTsKKyAgICAgICAgICAgIHNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7CisgICAgICAgICAg
ICBkYXRhTG9nTG4oIkVycm9yIHRocm93biB3aGlsZSBjcmFzaGluZzogIiwgdmFsdWUudG9XVEZT
dHJpbmcoZ2xvYmFsT2JqZWN0KSk7CisgICAgICAgIH0KKyAgICB9CisKICAgICBDUkFTSCgpOwog
fQogCkBAIC0yMDI4LDI4ICsyMDY0LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25EdW1wQnl0ZWNvZGVGb3IoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgZG9QcmludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgYm9vbCBhZGRMaW5lRmVlZCkKLXsKLSAgICBEb2xsYXJWTUFzc2VydFNjb3Bl
IGFzc2VydFNjb3BlOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGdsb2Jh
bE9iamVjdC0+dm0oKSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNhbGxGcmFtZS0+
YXJndW1lbnRDb3VudCgpOyArK2kpIHsKLSAgICAgICAgSlNWYWx1ZSBhcmcgPSBjYWxsRnJhbWUt
PnVuY2hlY2tlZEFyZ3VtZW50KGkpOwotICAgICAgICBpZiAoYXJnLmlzQ2VsbCgpCi0gICAgICAg
ICAgICAmJiAhYXJnLmlzT2JqZWN0KCkKLSAgICAgICAgICAgICYmICFhcmcuaXNTdHJpbmcoKQot
ICAgICAgICAgICAgJiYgIWFyZy5pc0JpZ0ludCgpKSB7Ci0gICAgICAgICAgICBkYXRhTG9nKGFy
Zyk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBTdHJpbmcgYXJn
U3RyID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudChpKS50b1dURlN0cmluZyhnbG9iYWxP
YmplY3QpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKLSAgICAgICAgZGF0YUxvZyhhcmdTdHIpOwotICAgIH0KLSAgICBpZiAoYWRkTGluZUZl
ZWQpCi0gICAgICAgIGRhdGFMb2coIlxuIik7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKLX0KLQogLy8gUHJpbnRzIGEgc2VyaWVzIG9mIGNvbW1hIHNlcGFyYXRl
IHN0cmluZ3Mgd2l0aG91dCBhcHBlbmRpbmcgYSBuZXdsaW5lLgogLy8gVXNhZ2U6ICR2bS5kYXRh
TG9nKHN0cjEsIHN0cjIsIHN0cjMpCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkRhdGFMb2coSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwIGIvU291cmNl
L1dURi93dGYvVVJMLmNwcAppbmRleCBmZTI5Y2E3Nzc2YzUzOGJmODAzZDZiYzYxYmFlNzkxZjIz
YzRjYWZiLi4xZDMxNGJmOGQwNGNjNGVlOWE1YTlkMWQ1NmY4ZTZjYTJlYjBmNGJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1VSTC5jcHAK
QEAgLTIxMyw3ICsyMTMsMTEgQEAgU3RyaW5nIFVSTDo6ZmlsZVN5c3RlbVBhdGgoKSBjb25zdAog
ICAgIGlmICghaXNMb2NhbEZpbGUoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVy
biBkZWNvZGVFc2NhcGVTZXF1ZW5jZXNGcm9tUGFyc2VkVVJMKHBhdGgoKSk7CisgICAgYXV0byBy
ZXN1bHQgPSBkZWNvZGVFc2NhcGVTZXF1ZW5jZXNGcm9tUGFyc2VkVVJMKHBhdGgoKSk7CisjaWYg
UExBVEZPUk0oV0lOKQorICAgIHJlc3VsdCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihyZXN1
bHQpOworI2VuZGlmCisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDgwZWYzNTIwOGE0
YzVmMjlmNDgzYzgwODU2ODRmYTVkZjAzYTQ2MjQuLjI4ODZjOTIyNjg2NmE3Y2M0MDE4Y2VhOWEx
ZmZjZTk2OTQ1MWI4NjUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTAgQEAKKzIwMjAtMDctMTAgIEtlaXRoIE1pbGxlciAg
PGtlaXRoX21pbGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgU291cmNlUHJvdmlk
ZXIgYW5kIGFkZCBjYWxsZXIgcmVsYXRpdmUgbG9hZCBzY3JpcHQgdG8ganNjLmNwcAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MjA1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvZ2xvYmFs
LWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy0yLmpzOgorICAgICAgICAqIHN0cmVzcy9nbG9i
YWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTMuanM6CisgICAgICAgICogc3RyZXNzL2ds
b2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNC5qczoKKyAgICAgICAgKiBzdHJlc3Mv
Z2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy01LmpzOgorICAgICAgICAqIHN0cmVz
cy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLmpzOgorICAgICAgICAqIHN0cmVz
cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUuanM6CisgICAgICAgICogc3RyZXNz
L2dsb2JhbC1sZXhpY2FsLXJlZGVmaW5lLWNvbnN0LmpzOgorICAgICAgICAqIHN0cmVzcy9nbG9i
YWwtbGV4aWNhbC12YXJpYWJsZS10ZHouanM6CisgICAgICAgICogc3RyZXNzL2dsb2JhbC1sZXhp
Y2FsLXZhcmlhYmxlLXVucmVzb2x2ZWQtcHJvcGVydHkuanM6CisgICAgICAgICogc3RyZXNzL2ds
b2JhbC1wcm9wZXJ0eS1pbnRvLXZhcmlhYmxlLWdldC1mcm9tLXNjb3BlLmpzOgorICAgICAgICAq
IHN0cmVzcy9qc29ucC1saXRlcmFsLXBhcnNlci1zZW1pY29sb24taXMtbm90LWFzc2lnbm1lbnQu
anM6CisgICAgICAgICogc3RyZXNzL29wX2FkZC5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfYml0
YW5kLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9iaXRvci5qczoKKyAgICAgICAgKiBzdHJlc3Mv
b3BfYml0eG9yLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9kaXYtQ29uc3RWYXIuanM6CisgICAg
ICAgICogc3RyZXNzL29wX2Rpdi1WYXJDb25zdC5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfZGl2
LVZhclZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfbHNoaWZ0LUNvbnN0VmFyLmpzOgorICAg
ICAgICAqIHN0cmVzcy9vcF9sc2hpZnQtVmFyQ29uc3QuanM6CisgICAgICAgICogc3RyZXNzL29w
X2xzaGlmdC1WYXJWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX21vZC1Db25zdFZhci5qczoK
KyAgICAgICAgKiBzdHJlc3Mvb3BfbW9kLVZhckNvbnN0LmpzOgorICAgICAgICAqIHN0cmVzcy9v
cF9tb2QtVmFyVmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9tdWwtQ29uc3RWYXIuanM6Cisg
ICAgICAgICogc3RyZXNzL29wX211bC1WYXJDb25zdC5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3Bf
bXVsLVZhclZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfbmVnYXRlLmpzOgorICAgICAgICAq
IHN0cmVzcy9vcF9wb3N0ZGVjLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9wb3N0aW5jLmpzOgor
ICAgICAgICAqIHN0cmVzcy9vcF9wcmVkZWMuanM6CisgICAgICAgICogc3RyZXNzL29wX3ByZWlu
Yy5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfcnNoaWZ0LUNvbnN0VmFyLmpzOgorICAgICAgICAq
IHN0cmVzcy9vcF9yc2hpZnQtVmFyQ29uc3QuanM6CisgICAgICAgICogc3RyZXNzL29wX3JzaGlm
dC1WYXJWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX3N1Yi1Db25zdFZhci5qczoKKyAgICAg
ICAgKiBzdHJlc3Mvb3Bfc3ViLVZhckNvbnN0LmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9zdWIt
VmFyVmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF91cnNoaWZ0LUNvbnN0VmFyLmpzOgorICAg
ICAgICAqIHN0cmVzcy9vcF91cnNoaWZ0LVZhckNvbnN0LmpzOgorICAgICAgICAqIHN0cmVzcy9v
cF91cnNoaWZ0LVZhclZhci5qczoKKyAgICAgICAgKiBzdHJlc3MvcmVncmVzcy0xNTk3NzktMS5q
czoKKyAgICAgICAgKG1ha2VVc2VSZWdyZXNzaW9uVGVzdCk6CisgICAgICAgICogc3RyZXNzL3Jl
Z3Jlc3MtMTU5Nzc5LTIuanM6CisgICAgICAgIChtYWtlVXNlUmVncmVzc2lvblRlc3QpOgorICAg
ICAgICAqIHN0cmVzcy9yZXNvdXJjZXMvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVu
Y3Rpb25zLmpzOgorICAgICAgICAqIHN0cmVzcy9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhl
bHBlci1mdW5jdGlvbnMuanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWFu
b255bW91cy1mdW5jdGlvbi5qczoKKyAgICAgICAgKiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXIt
YmFzaWMuanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWJvdW5kLWZ1bmN0
aW9uLW5hbWUuanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWRlZXAtc3Rh
Y2suanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWRpc3BsYXktbmFtZS5q
czoKKyAgICAgICAgKiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItaW50ZXJuYWwtZnVuY3Rpb24t
bmFtZS5qczoKKyAgICAgICAgKiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItbWljcm90YXNrcy5q
czoKKyAgICAgICAgKiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24u
anM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanM6CisgICAgICAg
ICogc3RyZXNzL3NoYWRvdy1jaGlja2VuLWRpc2FibGVkLmpzOgorICAgICAgICAqIHN0cmVzcy9z
aGFkb3ctY2hpY2tlbi1lbmFibGVkLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWNv
bnN0cnVjdG9yLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWNvcHlXaXRoaW4uanM6
CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktZXZlcnkuanM6CisgICAgICAgICogc3RyZXNz
L3R5cGVkYXJyYXktZmlsbC5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1maWx0ZXIu
anM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktZmluZC5qczoKKyAgICAgICAgKiBzdHJl
c3MvdHlwZWRhcnJheS1maW5kSW5kZXguanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXkt
Zm9yRWFjaC5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1mcm9tLmpzOgorICAgICAg
ICAqIHN0cmVzcy90eXBlZGFycmF5LWluY2x1ZGVzLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBl
ZGFycmF5LWluZGV4T2YuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktbGFzdEluZGV4
T2YuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktbWFwLmpzOgorICAgICAgICAqIHN0
cmVzcy90eXBlZGFycmF5LW9mLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LXJlZHVj
ZS5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1yZWR1Y2VSaWdodC5qczoKKyAgICAg
ICAgKiBzdHJlc3MvdHlwZWRhcnJheS1zZXQuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJy
YXktc2xpY2UuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktc29tZS5qczoKKyAgICAg
ICAgKiBzdHJlc3MvdHlwZWRhcnJheS1zb3J0LmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFy
cmF5LXN1YmFycmF5LmpzOgorCiAyMDIwLTA3LTA5ICBDYWlvIExpbWEgIDx0aWNhaW9saW1hQGdt
YWlsLmNvbT4KIAogICAgICAgICBbSlNDXVszMi1iaXRzXSBUZXN0IGdhcmRlbmluZyBKdWx5IDl0
aApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24t
c2V0dGluZy0yLmpzIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24t
c2V0dGluZy0yLmpzCmluZGV4IGZjZmRkZjQ5NDk3M2M2NjQ1MzZiMDcxNWU5MTBiNTY2NmM5ZDMz
MWQuLmEyMGFjNTczY2M3ZGYxZmQwODkyOGY2MTA1MzNhZGNlYzY4ZTBhNDAgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMi5qcwor
KysgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTIu
anMKQEAgLTgsOCArOCw4IEBAIGZ1bmN0aW9uIGFzc2VydChiKSB7CiBzZXRHbG9iYWxDb25zdFJl
ZGVjbGFyYXRpb25TaG91bGROb3RUaHJvdygpOyAvLyBBbGxvdyBkdXBsaWNhdGUgY29uc3QgZGVj
bGFyYXRpb25zIGF0IHRoZSBnbG9iYWwgbGV2ZWwuCiAKIGZvciAobGV0IGkgPSAwOyBpIDwgMTAw
OyBpKyspIHsKLSAgICBsb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcv
Zmlyc3QuanMiKTsKKyAgICBsb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRp
bmcvZmlyc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAgICAgYXNzZXJ0KGZvbyA9PT0gMjAp
OwotICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9zZWNvbmQu
anMiKTsKKyAgICBsb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvc2Vj
b25kLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogICAgIGFzc2VydChmb28gPT09IDQwKTsKIH0K
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNl
dHRpbmctMy5qcyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNl
dHRpbmctMy5qcwppbmRleCAxMTc3Y2I5NTgxMTMwN2JiNjY3ZDM5MGM2OWFjZGU3MjJmNzFlNDRi
Li4xMDI0MDk2Y2UxYjM1YmYyMjBmMGE1YTE5MGExMTkyNTlmNDk2NzE4IDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTMuanMKKysr
IGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy0zLmpz
CkBAIC03LDExICs3LDExIEBAIGZ1bmN0aW9uIGFzc2VydChiKSB7CiAKIHNldEdsb2JhbENvbnN0
UmVkZWNsYXJhdGlvblNob3VsZE5vdFRocm93KCk7IC8vIEFsbG93IGR1cGxpY2F0ZSBjb25zdCBk
ZWNsYXJhdGlvbnMgYXQgdGhlIGdsb2JhbCBsZXZlbC4KIAotbG9hZCgiLi9nbG9iYWwtY29uc3Qt
cmVkZWNsYXJhdGlvbi1zZXR0aW5nL2ZpcnN0LmpzIik7Citsb2FkKCIuL2dsb2JhbC1jb25zdC1y
ZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBhc3Nl
cnQoZm9vID09PSAyMCk7CiBsZXQgdGhyZXcgPSBmYWxzZTsKIHRyeSB7Ci0gICAgbG9hZCgiLi9n
bG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL3N0cmljdC5qcyIpOyAvLyBXZSBpZ25v
cmUgdGhlIHNldHRpbmcgYW5kIGFsd2F5cyB0aHJvdyBhbiBlcnJvciB3aGVuIGluIHN0cmljdCBt
b2RlIQorICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9zdHJp
Y3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7IC8vIFdlIGlnbm9yZSB0aGUgc2V0dGluZyBhbmQg
YWx3YXlzIHRocm93IGFuIGVycm9yIHdoZW4gaW4gc3RyaWN0IG1vZGUhCiB9IGNhdGNoKGUpIHsK
ICAgICB0aHJldyA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwt
Y29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTQuanMgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwt
Y29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTQuanMKaW5kZXggZDk2YTNkNmUyZTUzYTE2YzIy
Nzk5MWJhZjNlNmY3ZjRlMTI1YTEzMi4uMWZmN2Q3NmIyNzkyMmYyMmVmZWM3MGZjMGU5MmE1MTA2
NTUyYTczMCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFy
YXRpb24tc2V0dGluZy00LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRl
Y2xhcmF0aW9uLXNldHRpbmctNC5qcwpAQCAtNywxMSArNywxMSBAQCBmdW5jdGlvbiBhc3NlcnQo
YikgewogCiBzZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGROb3RUaHJvdygpOyAvLyBB
bGxvdyBkdXBsaWNhdGUgY29uc3QgZGVjbGFyYXRpb25zIGF0IHRoZSBnbG9iYWwgbGV2ZWwuCiAK
LWxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9maXJzdC5qcyIpOwor
bG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2ZpcnN0LmpzIiwgImNh
bGxlciByZWxhdGl2ZSIpOwogYXNzZXJ0KGZvbyA9PT0gMjApOwogbGV0IHRocmV3ID0gZmFsc2U7
CiB0cnkgewotICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9s
ZXQuanMiKTsgLy8gUmVkZWNsYXJhdGlvbiBhICdsZXQnIHZhcmlhYmxlIHNob3VsZCB0aHJvdyBi
ZWNhdXNlIHRoaXMgZG9lc24ndCBicmVhayBiYWNrd2FyZHMgY29tcGF0LgorICAgIGxvYWQoIi4v
Z2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9sZXQuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7IC8vIFJlZGVjbGFyYXRpb24gYSAnbGV0JyB2YXJpYWJsZSBzaG91bGQgdGhyb3cgYmVj
YXVzZSB0aGlzIGRvZXNuJ3QgYnJlYWsgYmFja3dhcmRzIGNvbXBhdC4KIH0gY2F0Y2goZSkgewog
ICAgIHRocmV3ID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1j
b25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNS5qcyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1j
b25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNS5qcwppbmRleCBlM2VhMDkxODE0Y2RiYTBjYzRk
MGUzODQ0MjA3NTZjYjU2ZWJlMGRiLi5mYjEyM2Q2MjYzMGU3NzUwYTcwNTg1NWQwMGQwZTJmYWJh
MzMzNzRjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJh
dGlvbi1zZXR0aW5nLTUuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVj
bGFyYXRpb24tc2V0dGluZy01LmpzCkBAIC03LDExICs3LDExIEBAIGZ1bmN0aW9uIGFzc2VydChi
KSB7CiAKIHNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZE5vdFRocm93KCk7IC8vIEFs
bG93IGR1cGxpY2F0ZSBjb25zdCBkZWNsYXJhdGlvbnMgYXQgdGhlIGdsb2JhbCBsZXZlbC4KIAot
bG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2xldC5qcyIpOworbG9h
ZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2xldC5qcyIsICJjYWxsZXIg
cmVsYXRpdmUiKTsKIGFzc2VydChmb28gPT09IDUwKTsKIGxldCB0aHJldyA9IGZhbHNlOwogdHJ5
IHsKLSAgICBsb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3Qu
anMiKTsgLy8gUmVkZWNsYXJhdGlvbiBvZiBhICdsZXQnIHRvICdjb25zdCcgc2hvdWxkIGFsd2F5
cyB0aHJvdyBiZWNhdXNlIGl0IGlzbid0IGJyZWFraW5nIGJhY2t3YXJkcyBjb21wYXQuCisgICAg
bG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2ZpcnN0LmpzIiwgImNh
bGxlciByZWxhdGl2ZSIpOyAvLyBSZWRlY2xhcmF0aW9uIG9mIGEgJ2xldCcgdG8gJ2NvbnN0JyBz
aG91bGQgYWx3YXlzIHRocm93IGJlY2F1c2UgaXQgaXNuJ3QgYnJlYWtpbmcgYmFja3dhcmRzIGNv
bXBhdC4KIH0gY2F0Y2goZSkgewogICAgIHRocmV3ID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcuanMgYi9KU1Rl
c3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLmpzCmluZGV4IGFl
ZDFiNDFjNGFhMzY4ZWFhOTBkMjZkOTVjYzNhNDNlYzNjY2QwZTIuLjRjOTQzZGU2M2E2OGVjYjI1
ODVkZjdiYTg3YWUyNmY5NzhkODY4YzggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2Jh
bC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvZ2xv
YmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy5qcwpAQCAtNyw3ICs3LDcgQEAgZnVuY3Rp
b24gYXNzZXJ0KGIpIHsKIAogc2V0R2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uU2hvdWxkTm90VGhy
b3coKTsgLy8gQWxsb3cgZHVwbGljYXRlIGNvbnN0IGRlY2xhcmF0aW9ucyBhdCB0aGUgZ2xvYmFs
IGxldmVsLgogCi1sb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvZmly
c3QuanMiKTsKK2xvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9maXJz
dC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGFzc2VydChmb28gPT09IDIwKTsKLWxvYWQoIi4v
Z2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9zZWNvbmQuanMiKTsKK2xvYWQoIi4v
Z2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9zZWNvbmQuanMiLCAiY2FsbGVyIHJl
bGF0aXZlIik7CiBhc3NlcnQoZm9vID09PSA0MCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUuanMgYi9KU1Rlc3RzL3N0cmVzcy9n
bG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUuanMKaW5kZXggNmVjMjg3YjZkMTYwNDNm
ODhhZDFmOGVkY2I5YTk3ZDI2ZjdjNzA5ZC4uNTE2MzM4YzE2ZDkzYTk1ZWFkODRkOWNmYTUwY2Jk
NWJlMzllOGVkYSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtcmVk
ZWNsYXJlLXZhcmlhYmxlLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXJl
ZGVjbGFyZS12YXJpYWJsZS5qcwpAQCAtMzAsMzUgKzMwLDM1IEBAIGZ1bmN0aW9uIGFzc2VydFBy
b3BlckVycm9yKGUpIHsKIGFzc2VydEV4cGVjdGF0aW9ucygpOwogCiB0cnkgewotICAgIGxvYWQo
Ii4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxl
L2ZpcnN0LmpzIik7CisgICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4
aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvZmlyc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiB9
IGNhdGNoKGUpIHsKICAgICBhc3NlcnRQcm9wZXJFcnJvcihlKTsKIH0KIGFzc2VydEV4cGVjdGF0
aW9ucygpOwogCiB0cnkgewotICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFs
LWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL3NlY29uZC5qcyIpOworICAgIGxvYWQoIi4vbXVs
dGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL3NlY29u
ZC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIH0gY2F0Y2goZSkgewogICAgIGFzc2VydFByb3Bl
ckVycm9yKGUpOwogfQogYXNzZXJ0RXhwZWN0YXRpb25zKCk7CiAKIHRyeSB7Ci0gICAgbG9hZCgi
Li9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUv
dGhpcmQuanMiKTsKKyAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhp
Y2FsLXJlZGVjbGFyZS12YXJpYWJsZS90aGlyZC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIH0g
Y2F0Y2goZSkgewogICAgIGFzc2VydFByb3BlckVycm9yKGUpOwogfQogYXNzZXJ0RXhwZWN0YXRp
b25zKCk7CiAKIHRyeSB7Ci0gICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwt
bGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvZm91cnRoLmpzIik7CisgICAgbG9hZCgiLi9tdWx0
aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvZm91cnRo
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRjaChlKSB7CiAgICAgYXNzZXJ0UHJvcGVy
RXJyb3IoZSk7CiB9CiBhc3NlcnRFeHBlY3RhdGlvbnMoKTsKIAogdHJ5IHsKLSAgICBsb2FkKCIu
L211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9m
aWZ0aC5qcyIpOworICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGlj
YWwtcmVkZWNsYXJlLXZhcmlhYmxlL2ZpZnRoLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBj
YXRjaChlKSB7CiAgICAgYXNzZXJ0UHJvcGVyRXJyb3IoZSk7CiB9CkBAIC03MCw3ICs3MCw3IEBA
IGFzc2VydEV4cGVjdGF0aW9ucygpOwogdHJ5IHsKICAgICBzZW50aW5lbCA9ICJiYWQiOwogICAg
IGFzc2VydChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMsICJnbG9iYWxQcm9w
ZXJ0eSIpLmNvbmZpZ3VyYWJsZSk7Ci0gICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9n
bG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvc2l4dGguanMiKTsKKyAgICBsb2FkKCIu
L211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9z
aXh0aC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIH0gY2F0Y2goZSkgewogICAgIGFzc2VydChm
YWxzZSk7CiB9CkBAIC03OSw3ICs3OSw3IEBAIGFzc2VydEV4cGVjdGF0aW9ucygpOwogdHJ5IHsK
ICAgICBzZW50aW5lbCA9ICJiYWQiOwogICAgIGFzc2VydChPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKHRoaXMsICJBcnJheSIpLmNvbmZpZ3VyYWJsZSk7Ci0gICAgbG9hZCgiLi9tdWx0
aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvc2V2ZW50
aC5qcyIpOworICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwt
cmVkZWNsYXJlLXZhcmlhYmxlL3NldmVudGguanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiB9IGNh
dGNoKGUpIHsKICAgICBhc3NlcnQoZmFsc2UpOwogfQpAQCAtODgsNyArODgsNyBAQCBhc3NlcnRF
eHBlY3RhdGlvbnMoKTsKIHRyeSB7CiAgICAgc2VudGluZWwgPSAiYmFkIjsKICAgICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkodGhpcywgJ2ZvbycsIHt2YWx1ZTogNSwgY29uZmlndXJhYmxlOiB0cnVl
LCB3cml0YWJsZTogdHJ1ZX0pOwotICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xv
YmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL2VpZ2h0aC5qcyIpOworICAgIGxvYWQoIi4v
bXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL2Vp
Z2h0aC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIH0gY2F0Y2goZSkgewogICAgIGFzc2VydChm
YWxzZSk7CiB9CkBAIC05Niw3ICs5Niw3IEBAIGFzc2VydEV4cGVjdGF0aW9ucygpOwogCiB0cnkg
ewogICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnYmFyJywge3ZhbHVlOiA1LCBjb25m
aWd1cmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZX0pOwotICAgIGxvYWQoIi4vbXVsdGlwbGUt
ZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL25pbnRoLmpzIik7
CisgICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xh
cmUtdmFyaWFibGUvbmludGguanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiB9IGNhdGNoKGUpIHsK
ICAgICBhc3NlcnRQcm9wZXJFcnJvcihlKTsKIH0KQEAgLTEwNiw3ICsxMDYsNyBAQCBhc3NlcnQo
ZXJyb3JDb3VudCA9PT0gNik7CiAKIHRyeSB7CiAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRo
aXMsICd6b28nLCB7dmFsdWU6IHVuZGVmaW5lZCwgY29uZmlndXJhYmxlOiBmYWxzZSwgd3JpdGFi
bGU6IHRydWV9KTsKLSAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhp
Y2FsLXJlZGVjbGFyZS12YXJpYWJsZS90ZW50aC5qcyIpOworICAgIGxvYWQoIi4vbXVsdGlwbGUt
ZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL3RlbnRoLmpzIiwg
ImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRjaChlKSB7CiAgICAgYXNzZXJ0UHJvcGVyRXJyb3Io
ZSk7CiB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC1yZWRlZmlu
ZS1jb25zdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXJlZGVmaW5lLWNvbnN0
LmpzCmluZGV4IDFjNmJhZjdjMzcyMjUyY2IwYzk3YjM1ZmM4NDQ0Zjg1YzA2NmU5MWIuLjk0YWM0
YWQzOTQyNTIwODY0YjBkODYyM2U3NWNjMDkyN2M5NGJhYmQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
c3RyZXNzL2dsb2JhbC1sZXhpY2FsLXJlZGVmaW5lLWNvbnN0LmpzCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL2dsb2JhbC1sZXhpY2FsLXJlZGVmaW5lLWNvbnN0LmpzCkBAIC0xLDIgKzEsMiBAQAotbG9h
ZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlZmluZS1jb25zdC9m
aXJzdC5qcyIpOwotbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1y
ZWRlZmluZS1jb25zdC9zZWNvbmQuanMiKTsKK2xvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMv
Z2xvYmFsLWxleGljYWwtcmVkZWZpbmUtY29uc3QvZmlyc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZl
Iik7Citsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVmaW5l
LWNvbnN0L3NlY29uZC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXRkei5qcyBiL0pTVGVzdHMvc3RyZXNz
L2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXRkei5qcwppbmRleCBlODhjZmQ2YTI1NjIzN2ZlM2My
ZDU3ZmQxMWQ1MDAxNTY2MDg5YTBhLi5lMmExZTE3MWMxNzNlZjBiMWI2YWZlZDgzNmFhNGIzNTJl
ZmQ1ZWZjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC12YXJpYWJs
ZS10ZHouanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdGR6
LmpzCkBAIC0xLDIgKzEsMiBAQAotbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwt
bGV4aWNhbC12YXJpYWJsZS10ZHovZmlyc3QuanMiKTsKLWxvYWQoIi4vbXVsdGlwbGUtZmlsZXMt
dGVzdHMvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdGR6L3NlY29uZC5qcyIpOworbG9hZCgiLi9t
dWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS10ZHovZmlyc3QuanMi
LCAiY2FsbGVyIHJlbGF0aXZlIik7Citsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2Jh
bC1sZXhpY2FsLXZhcmlhYmxlLXRkei9zZWNvbmQuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS11bnJlc29s
dmVkLXByb3BlcnR5LmpzIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUt
dW5yZXNvbHZlZC1wcm9wZXJ0eS5qcwppbmRleCBkNjIyMTQ1NDQxYmEwMWRjYmVjYzU4YmZiOWQ5
ZWY4Y2IwNzYzZGRlLi5kZTE5MzhjNjBlMDkzMGYyZDJjOWU1ZmYxZDc0YjczN2FmMDIwZTg3IDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS11bnJlc29s
dmVkLXByb3BlcnR5LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlh
YmxlLXVucmVzb2x2ZWQtcHJvcGVydHkuanMKQEAgLTEsMiArMSwyIEBACi1sb2FkKCIuL211bHRp
cGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXVucmVzb2x2ZWQtcHJvcGVy
dHkvZmlyc3QuanMiKTsKLWxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGlj
YWwtdmFyaWFibGUtdW5yZXNvbHZlZC1wcm9wZXJ0eS9zZWNvbmQuanMiKTsKK2xvYWQoIi4vbXVs
dGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdW5yZXNvbHZlZC1wcm9w
ZXJ0eS9maXJzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKK2xvYWQoIi4vbXVsdGlwbGUtZmls
ZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdW5yZXNvbHZlZC1wcm9wZXJ0eS9zZWNv
bmQuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9n
bG9iYWwtcHJvcGVydHktaW50by12YXJpYWJsZS1nZXQtZnJvbS1zY29wZS5qcyBiL0pTVGVzdHMv
c3RyZXNzL2dsb2JhbC1wcm9wZXJ0eS1pbnRvLXZhcmlhYmxlLWdldC1mcm9tLXNjb3BlLmpzCmlu
ZGV4IDk0N2M0ZThmMTIyMGQ2MTg4MGY1Y2RjNDBiNmFlYzI5OWNhZGExMWEuLjQxZGVlNTk1YjYy
NDljODNkMmFlNjUyYjBkZWI0MDk1ODEzYjAyYTQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNz
L2dsb2JhbC1wcm9wZXJ0eS1pbnRvLXZhcmlhYmxlLWdldC1mcm9tLXNjb3BlLmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL2dsb2JhbC1wcm9wZXJ0eS1pbnRvLXZhcmlhYmxlLWdldC1mcm9tLXNjb3Bl
LmpzCkBAIC02LDcgKzYsNyBAQAogLy8gbm9JbmxpbmUgYXMgdGhlIGN1cnJlbnQgZ2xvYmFsIG9i
amVjdCB3b3VsZCBub3QgaGF2ZSBub0lubGluZSBhcyBhIHByb3BlcnR5CiAvLyBhdCB0aGF0IHBv
aW50IGFuZCB3ZSB3b3VsZCBhdHRlbXB0IHRvIGFjY2VzcyB0aGUgdmFsdWUgYXQgYW4gaW52YWxp
ZCBvZmZzZXQuCiAKLWxvYWQoInJlc291cmNlcy9zdGFuZGFsb25lLXByZS5qcyIpOworbG9hZCgi
cmVzb3VyY2VzL3N0YW5kYWxvbmUtcHJlLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiBub0lu
bGluZSgpOwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9pbXBvcnQtd2l0aC1lbXB0eS1z
dHJpbmcuanMgYi9KU1Rlc3RzL3N0cmVzcy9pbXBvcnQtd2l0aC1lbXB0eS1zdHJpbmcuanMKaW5k
ZXggZDE3NGVjOWVjZjUxOGMzZmQ0YjAyZTczNjQwMTJhMWE2MWRiMzg0My4uYWFhZGU5ODk2M2Iz
OGRlNTZiZGZlNTc3OWUyYTg5ZDc2MzA1M2UwNCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mv
aW1wb3J0LXdpdGgtZW1wdHktc3RyaW5nLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2ltcG9ydC13
aXRoLWVtcHR5LXN0cmluZy5qcwpAQCAtMSwyICsxLDIgQEAKLWltcG9ydCgiIikudGhlbigkdm0u
YWJvcnQsIGZ1bmN0aW9uICgpIHsKK2ltcG9ydCgiIikudGhlbigkdm0uYWJvcnQsIGZ1bmN0aW9u
IChlKSB7CiB9KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2pzb25wLWxpdGVyYWwtcGFy
c2VyLXNlbWljb2xvbi1pcy1ub3QtYXNzaWdubWVudC5qcyBiL0pTVGVzdHMvc3RyZXNzL2pzb25w
LWxpdGVyYWwtcGFyc2VyLXNlbWljb2xvbi1pcy1ub3QtYXNzaWdubWVudC5qcwppbmRleCA4MWFh
NjJhZWNiZmNmNTZiZWZkYzlhNDViYzQxMjZlMjM5MTI5NjM2Li5kYWFhZTFiYmVlOWRhOTFlZTg4
MGM4NGExMjc4YjEzZTVjN2NhZjA0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9qc29ucC1s
aXRlcmFsLXBhcnNlci1zZW1pY29sb24taXMtbm90LWFzc2lnbm1lbnQuanMKKysrIGIvSlNUZXN0
cy9zdHJlc3MvanNvbnAtbGl0ZXJhbC1wYXJzZXItc2VtaWNvbG9uLWlzLW5vdC1hc3NpZ25tZW50
LmpzCkBAIC0xLDQgKzEsNCBAQAogeCA9IHVuZGVmaW5lZDsKLWxvYWQoIi4vcmVzb3VyY2VzL2xp
dGVyYWwtcGFyc2VyLXRlc3QtY2FzZS5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvbGl0ZXJhbC1w
YXJzZXItdGVzdC1jYXNlLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogaWYgKHggIT09IHVuZGVm
aW5lZCkKICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByZXN1bHQiKTsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL29wX2FkZC5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX2FkZC5qcwppbmRleCA2
YjYxM2ZiNjY2ODg2OTM0MGJlNjZlMDQ1MzkzMmQ5MjE4YjEyM2ZiLi40ZGZiYzJkM2YzZjFiMDZk
MDVlZTJhMjk3M2RiNjAzMTNkNzU5MDg3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9h
ZGQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfYWRkLmpzCkBAIC0zLDcgKzMsNyBAQAogLy8g
SWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRs
eS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5q
cyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9i
aW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMi
LCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBj
b25maWd1cmF0aW9uIGRhdGE6CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRhbmQu
anMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRhbmQuanMKaW5kZXggNDQ1NTVmMTk2Njg5ZTRmZDNj
NTlhMzYwZjQ2Njk0NDBmMTc0OTUyMi4uZjdiZTRkYTA4ODgyOGIzZDJjYjVmZDAyYjBiOWEwMmU1
N2UwZmNlNyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfYml0YW5kLmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL29wX2JpdGFuZC5qcwpAQCAtNCw3ICs0LDcgQEAKIC8vIElmIGFsbCBnb2Vz
IHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwg
aXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVn
Z2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRl
c3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciBy
ZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlv
biBkYXRhOgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfYml0b3IuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9vcF9iaXRvci5qcwppbmRleCBjMTk4NDkwZWI0NTU1ZTcyYjQ0YmU4ZWQwMjg1NWQ5
OTA2ZjgyMzc5Li41MTQyMTcyOGNlZjg3Nzc3ZjI5OWU3ZjdmZTU5MmFmMTllMzdkNWE1IDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRvci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9v
cF9iaXRvci5qcwpAQCAtNCw3ICs0LDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVz
dCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAog
Ly8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlm
IG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQo
Ii4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAv
Lz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfYml0eG9yLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfYml0
eG9yLmpzCmluZGV4IDBmZjlmMjcyNTYzNDEzMDc4NGQ1NmFkNzgwYWQxYmU4MDc4MTc5NGMuLjE0
ZjY5NTQ2MDk1ZTNkOTU4NTFlNjc5OGE5YjUyMTMwMzI4Y2NjNjkgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvc3RyZXNzL29wX2JpdHhvci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9iaXR4b3IuanMK
QEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdp
bGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4g
U2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAK
LWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNl
cy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL29wX2Rpdi1Db25zdFZhci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX2Rpdi1Db25z
dFZhci5qcwppbmRleCA0NTA4NjU0M2FkNjEyYmM0NDc2MGJjYzM3ZTY1NDVjN2RlNzk3Zjk1Li44
YTY4NjQzMWZjOTVmNDI0NGVlOGI3YjNmMjRjOTJiOTQ2OTVjYjI5IDEwMDY0NAotLS0gYS9KU1Rl
c3RzL3N0cmVzcy9vcF9kaXYtQ29uc3RWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfZGl2
LUNvbnN0VmFyLmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0
ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50
CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMg
aWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9h
ZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAK
IC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0x
Miw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIg
b3BOYW1lID0gImRpdiI7CiB2YXIgb3AgPSAiLyI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFy
eS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMi
LCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3Rz
KHRlc3RzLCBvcE5hbWUsIG9wLCAiQ29uc3RWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFyQ29uc3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9v
cF9kaXYtVmFyQ29uc3QuanMKaW5kZXggOTFmZjJmMTRhZDg5NzdlN2QwNGU1NWFhOTEwMmI0NzZj
ZmYxMjM5Yi4uMzMzNTYxYjU2NDAzMDU1ZTdhMThiYmE4YjYyZWI2NWMxYmYxN2JjYSAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfZGl2LVZhckNvbnN0LmpzCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL29wX2Rpdi1WYXJDb25zdC5qcwpAQCAtNCw3ICs0LDcgQEAKIC8vIElmIGFsbCBnb2VzIHdl
bGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQg
d2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2lu
ZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3Qu
anMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxh
dGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBk
YXRhOgpAQCAtMTIsNyArMTIsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5q
cyIpOwogdmFyIG9wTmFtZSA9ICJkaXYiOwogdmFyIG9wID0gIi8iOwogCi1sb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3At
dmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVC
aW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhckNvbnN0IiwgdmFsdWVzLCB2YWx1ZXMp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfZGl2LVZhclZhci5qcyBiL0pTVGVzdHMv
c3RyZXNzL29wX2Rpdi1WYXJWYXIuanMKaW5kZXggODI4YTIwMzA0NWQxY2VkZWViMGU5NDQyNGRk
ZmIyZWEzODhlYTE2ZS4uNjQ5YjgwOTk1MTUyOTkyNGMyNTI5YzM1MjcyOTM4ZjA4YWYyMTA0OCAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfZGl2LVZhclZhci5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy9vcF9kaXYtVmFyVmFyLmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMg
d2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBp
dCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdn
aW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVz
dC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJl
bGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9u
IGRhdGE6CkBAIC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0
LmpzIik7CiB2YXIgb3BOYW1lID0gImRpdiI7CiB2YXIgb3AgPSAiLyI7CiAKLWxvYWQoIi4vcmVz
b3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1v
cC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0
ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyVmFyIiwgdmFsdWVzLCB2YWx1ZXMp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LUNvbnN0VmFyLmpzIGIvSlNU
ZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LUNvbnN0VmFyLmpzCmluZGV4IGMwYjM5OTRjNTk4YmQxZjlm
YjA1NjZlMDc3MjA2OTM5YzlkMmM1OTEuLjg3OTM1OTgyYzcxYWVlMjE4ZDkwN2NkODYxYjVmNjY5
YjBhY2ZhNzEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX2xzaGlmdC1Db25zdFZhci5q
cworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9sc2hpZnQtQ29uc3RWYXIuanMKQEAgLTMsNyArMyw3
IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRl
IHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1v
cC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVz
b3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3At
dGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAv
LyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAibHNoaWZ0IjsKIHZhciBv
cCA9ICI8PCI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xv
YWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7
CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAi
Q29uc3RWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9v
cF9sc2hpZnQtVmFyQ29uc3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9sc2hpZnQtVmFyQ29uc3Qu
anMKaW5kZXggMGUzMmJhNjkyZjBlYTg1MmExZDAxMDg0MWFlOTIzODg3N2FkOGQ1YS4uYmUzODVj
ZmNjZjU0YTYwNTA5NzA0MjkxMTJkMmRiYWU0OTg5YTIxOSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9z
dHJlc3Mvb3BfbHNoaWZ0LVZhckNvbnN0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX2xzaGlm
dC1WYXJDb25zdC5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMg
dGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmlu
dAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25z
IGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xv
YWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwog
CiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAt
MTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFy
IG9wTmFtZSA9ICJsc2hpZnQiOwogdmFyIG9wID0gIjw8IjsKIAotbG9hZCgiLi9yZXNvdXJjZXMv
YmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVl
cy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5
VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJDb25zdCIsIHZhbHVlcywgdmFsdWVzKTsKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX2xzaGlmdC1WYXJWYXIuanMgYi9KU1Rlc3RzL3N0
cmVzcy9vcF9sc2hpZnQtVmFyVmFyLmpzCmluZGV4IDg3MzQ5YjhmZTQ3MzkwOTg0Y2E5NDgzMGI3
NDVkODUxNzEzYzFiNDguLjUzODFmZDQyNWFmYjE0Nzk4NTQwMzk3N2QxMjA5OTFmYWZmMjQ5MWUg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX2xzaGlmdC1WYXJWYXIuanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LVZhclZhci5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFs
bCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElm
IG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9y
IGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5
LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNh
bGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmln
dXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnkt
b3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJsc2hpZnQiOwogdmFyIG9wID0gIjw8IjsKIAot
bG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJj
ZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBb
XTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJWYXIiLCB2YWx1
ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9tb2QtQ29uc3RWYXIu
anMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tb2QtQ29uc3RWYXIuanMKaW5kZXggNDg5MTg4Y2VkMWFh
NzEyNThlOWZlZDBhNDczMWZiMjI1ZmVlY2M2MS4uYmFlYTdlOGJhNzNkYTQ5ZjZmNzI3NjcxNDdh
Njc2MDk3MmE3OGQyNiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbW9kLUNvbnN0VmFy
LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX21vZC1Db25zdFZhci5qcwpAQCAtMyw3ICszLDcg
QEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUg
c2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9w
LXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10
ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8v
IFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJtb2QiOwogdmFyIG9wID0g
IiUiOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIu
L3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0
ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIkNvbnN0
VmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbW9k
LVZhckNvbnN0LmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbW9kLVZhckNvbnN0LmpzCmluZGV4IGYw
M2E0ZDQwNGFlYWY3ZjBjYjNmZWYzZGMwNmU1ZmY1MTY2YzY1NTUuLjM5MWMyMWE2NDQwN2ZhY2Yz
ZDM0MGU4ZjdhZGVhOTBlNjBkM2YxMjYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX21v
ZC1WYXJDb25zdC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tb2QtVmFyQ29uc3QuanMKQEAg
LTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwg
dGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2Vl
IGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxv
YWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9i
aW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9h
ZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAibW9kIjsK
IHZhciBvcCA9ICIlIjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIp
OworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRp
dmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwg
b3AsICJWYXJDb25zdCIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL29wX21vZC1WYXJWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tb2QtVmFyVmFyLmpzCmlu
ZGV4IDEzNDM2YTk3ZTIwNTVmNmU4NmMxYWE2ZDUyN2Q0Zjk0YzNkOGYxN2MuLmNmMDUxOTRmMzAy
M2NhNTVkZmFmYjVlNDJjYjkxOWJhODY1MzI4MDkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNz
L29wX21vZC1WYXJWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbW9kLVZhclZhci5qcwpA
QCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2ls
bCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBT
ZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAot
bG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBs
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJtb2Qi
OwogdmFyIG9wID0gIiUiOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpz
Iik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxh
dGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1l
LCBvcCwgIlZhclZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL29wX211bC1Db25zdFZhci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX211bC1Db25zdFZhci5q
cwppbmRleCAzZGUzNjRlMWZiOTk3ZjNlNDc2NDZkYWE3NzlkNGMyYWQ5MzM2OWRjLi5lY2Y5OGUy
MWEwYWU2MDhjNTc2ODQ0ZjY4OTg0NzNlOTI3ZDJhN2UzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0
cmVzcy9vcF9tdWwtQ29uc3RWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbXVsLUNvbnN0
VmFyLmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1v
ZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBl
cnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVl
ZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9y
ZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMiw3ICsx
Miw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1l
ID0gIm11bCI7CiB2YXIgb3AgPSAiKiI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12
YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2Fs
bGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3Rz
LCBvcE5hbWUsIG9wLCAiQ29uc3RWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy9vcF9tdWwtVmFyQ29uc3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwt
VmFyQ29uc3QuanMKaW5kZXggNDhlMWU3NjU0OTc2MDY2N2RhZjQ2YWMyYTFiYjE2YmQ3OTM2MDM5
Yy4uYzhmY2QwNWRmMjdkZWQ0NTBkZDgxN2FjYTA5ZmMwODAzN2U2YWM5MiAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3Mvb3BfbXVsLVZhckNvbnN0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29w
X211bC1WYXJDb25zdC5qcwpAQCAtNCw3ICs0LDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRo
aXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBw
cmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRp
b25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsK
K2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpA
QCAtMTIsNyArMTIsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwog
dmFyIG9wTmFtZSA9ICJtdWwiOwogdmFyIG9wID0gIioiOwogCi1sb2FkKCIuL3Jlc291cmNlcy9i
aW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVz
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlU
ZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhckNvbnN0IiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbXVsLVZhclZhci5qcyBiL0pTVGVzdHMvc3RyZXNz
L29wX211bC1WYXJWYXIuanMKaW5kZXggNWUxY2M1ODcyODVkZTRjNWNhMTAzZmZlMzg1MjZkMWVj
YTA0M2FlZS4uYjc3NGVjYWRiNzkzZjJhMGY5ZWJmMTMyZTQ3ODM2YTA3ZTQ1MWY5NSAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbXVsLVZhclZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVz
cy9vcF9tdWwtVmFyVmFyLmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwg
dGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxs
IHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9w
dGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIp
OworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZl
Iik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6
CkBAIC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7
CiB2YXIgb3BOYW1lID0gIm11bCI7CiB2YXIgb3AgPSAiKiI7CiAKLWxvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1
ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFy
eVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyVmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbmVnYXRlLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3Bf
bmVnYXRlLmpzCmluZGV4IGQ5OGYwNGRiYzdjMDVjMGMxZWRkYWE2ZjgwYjRhYWZhYjU4MTZlMTIu
LjU1YjAyZGZhYzgzMDNjY2JhMzgzMmZhZWIxMjk0NmEwMzA1YWM0N2YgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL29wX25lZ2F0ZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9uZWdhdGUu
anMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxl
IHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9y
cy4gU2VlIHVuYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4K
IAotbG9hZCgiLi9yZXNvdXJjZXMvdW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJj
ZXMvdW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL29wX3Bvc3RkZWMuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9wb3N0ZGVjLmpzCmlu
ZGV4IGIyZTFmYTcyOTczYzZmNTc2ZDE1YTM4ODM5OWQwZTY0MDkxMTk5OWEuLjYyOWI4NWJmZWQ0
MzQ4MTU2Yzc4NTdmNjA3MTQwN2ZlMTJmYTk3YjcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNz
L29wX3Bvc3RkZWMuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfcG9zdGRlYy5qcwpAQCAtMyw3
ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJt
aW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgdW5h
cnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIu
L3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy91bmFyeS1v
cC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
IC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
b3BfcG9zdGluYy5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX3Bvc3RpbmMuanMKaW5kZXggMDhhYTM1
ZDlkMDg4ZjA5ODQ4ZWMwYjIwNTM0ZGE3NmJkMzJiY2E5Zi4uM2RmZDJlNWJkOTBmNTljNWY0MzA5
NmZlNDE0ZDQyYjliMGJkYTRiZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfcG9zdGlu
Yy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9wb3N0aW5jLmpzCkBAIC0zLDcgKzMsNyBAQAog
Ly8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxl
bnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSB1bmFyeS1vcC10ZXN0
LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2Vz
L3VuYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3VuYXJ5LW9wLXRlc3QuanMi
LCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBj
b25maWd1cmF0aW9uIGRhdGE6CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9wcmVkZWMu
anMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9wcmVkZWMuanMKaW5kZXggYjhjNjU2MjdlYmZjM2I2ZTQx
MGQ4NTM4NzhjMWViM2FkNzgwNDQzNS4uNWE5Y2I0NmQ0YWY4ZTNjNTRlYzg4MDVlODBhYmQxYmRh
MjBjMTliZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfcHJlZGVjLmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL29wX3ByZWRlYy5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2Vz
IHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwg
aXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgdW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdn
aW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0
LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxh
dGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBk
YXRhOgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfcHJlaW5jLmpzIGIvSlNUZXN0cy9z
dHJlc3Mvb3BfcHJlaW5jLmpzCmluZGV4IDIyZmI2ZWU2MTg3YWU2NTU0ZTNlM2Y1MDg5NGRlYzMz
Y2YxNTcwNTEuLjFjNzkzZDE2M2M0NDBlMTc5ZGI3YzkzMmQzYjcyY2NmMmY0ZTA3NzUgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3ByZWluYy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9v
cF9wcmVpbmMuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRl
c3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQK
IC8vIGVycm9ycy4gU2VlIHVuYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlm
IG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvdW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgi
Li9yZXNvdXJjZXMvdW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1Db25zdFZhci5qcyBiL0pTVGVzdHMvc3RyZXNz
L29wX3JzaGlmdC1Db25zdFZhci5qcwppbmRleCBmMDU5OTMxNDliNGVlOWI0MzYwYjc2Nzc5NDIw
OTY4YWViYzdmZDdmLi5mOTk5OTAwMGNmZjIyMTBhMTY1M2Q0M2I5ZjcwYTkwODhjNGZjMDk5IDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQtQ29uc3RWYXIuanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LUNvbnN0VmFyLmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYg
YWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4g
SWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBm
b3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5h
cnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAi
Y2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25m
aWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFy
eS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gInJzaGlmdCI7CiB2YXIgb3AgPSAiPj4iOwog
Ci1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9
IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIkNvbnN0VmFyIiwg
dmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LVZh
ckNvbnN0LmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LVZhckNvbnN0LmpzCmluZGV4IDEw
MGNkOWJhZDU1ZmRkMTg5OTUzNDE2ZDU0NDBlMmQzYzMxMDI2ZmYuLmE1YWEwNTE5MWJmYTg3Zjcw
ZGYxYmRlZWU2ZjM0NzUzY2I2M2MyNGUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3Jz
aGlmdC1WYXJDb25zdC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQtVmFyQ29uc3Qu
anMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxl
IHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9y
cy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQu
CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTExLDcgKzExLDcg
QEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAi
cnNoaWZ0IjsKIHZhciBvcCA9ICI+PiI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12
YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2Fs
bGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3Rz
LCBvcE5hbWUsIG9wLCAiVmFyQ29uc3QiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQtVmFyVmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfcnNo
aWZ0LVZhclZhci5qcwppbmRleCAxMTY2NjBkNTgxZWYyNWY4YjZmNDFlYmM5ZWI2MDJiMmMxNjc2
ZjFiLi4yZmU4Zjk3YjJiMTg2N2FkZjNlNTY2ZjhiY2RhOTE3MDcwODkzNjJiIDEwMDY0NAotLS0g
YS9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQtVmFyVmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L29wX3JzaGlmdC1WYXJWYXIuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxs
LCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdp
bGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcg
b3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0Lmpz
Iik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRp
dmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0
YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMi
KTsKIHZhciBvcE5hbWUgPSAicnNoaWZ0IjsKIHZhciBvcCA9ICI+PiI7CiAKLWxvYWQoIi4vcmVz
b3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1v
cC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0
ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyVmFyIiwgdmFsdWVzLCB2YWx1ZXMp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLUNvbnN0VmFyLmpzIGIvSlNUZXN0
cy9zdHJlc3Mvb3Bfc3ViLUNvbnN0VmFyLmpzCmluZGV4IGM4ZmExZmYwZGMxOGFlNGViNGY3MDAx
NDUxMDVkNDk3NTcyYTM4NWEuLmYzMDM0MzUyODczMDQxNmYyYTA5NTM5YWM0MTQ2ZTJmYTIzMzYw
N2YgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3N1Yi1Db25zdFZhci5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy9vcF9zdWItQ29uc3RWYXIuanMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBh
bGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJ
ZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZv
ciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFy
eS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJj
YWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZp
Z3VyYXRpb24gZGF0YToKQEAgLTEyLDcgKzEyLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5
LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAic3ViIjsKIHZhciBvcCA9ICItIjsKIAotbG9h
ZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMv
YmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsK
IGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJDb25zdFZhciIsIHZhbHVl
cywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3N1Yi1WYXJDb25zdC5q
cyBiL0pTVGVzdHMvc3RyZXNzL29wX3N1Yi1WYXJDb25zdC5qcwppbmRleCA5MWU3NDU1ZjQ1NzAw
ZDgzYmNlZjVlNDY3M2MzYWRkNDlkMTZiYWMyLi5mMWU1Nzc0MjhkZTMzODkyODg0YjU3ZGZmN2Ux
ODYxMjNhZjIzNjEyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItVmFyQ29uc3Qu
anMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLVZhckNvbnN0LmpzCkBAIC00LDcgKzQsNyBA
QAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBz
aWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3At
dGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRl
c3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8g
VGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3Vy
Y2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gInN1YiI7CiB2YXIgb3AgPSAi
LSI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4v
cmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRl
c3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyQ29u
c3QiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9zdWIt
VmFyVmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLVZhclZhci5qcwppbmRleCA2YjlkMTdj
ZWY4YTAxNzlhMGU2MDM1YzVmZWRhYzFhZmExMjM2YWRmLi5kMGY4ZTllMjAwYzBkM2Q1OWY5Mjdj
NmQzODA0YTU1N2I5ODllMjljIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItVmFy
VmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX3N1Yi1WYXJWYXIuanMKQEAgLTQsNyArNCw3
IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRl
IHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1v
cC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVz
b3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3At
dGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAv
LyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTEyLDcgKzEyLDcgQEAgbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAic3ViIjsKIHZhciBvcCA9
ICItIjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgi
Li9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAog
dGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJW
YXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF91cnNo
aWZ0LUNvbnN0VmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC1Db25zdFZhci5qcwpp
bmRleCBmZGVlMGJlNmU5NTE3YzMwYWJlY2RiNTU3NmY1MWJmNzg3NTczZGJjLi5lYjUxODYwOWRk
Nzk5NDU4ZmNiYWUxMWM2ZjUwNDlhYjYyYTYzMDI0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVz
cy9vcF91cnNoaWZ0LUNvbnN0VmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX3Vyc2hpZnQt
Q29uc3RWYXIuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRl
c3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQK
IC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBp
ZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2Fk
KCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAog
Ly89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTEx
LDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBv
cE5hbWUgPSAidXJzaGlmdCI7CiB2YXIgb3AgPSAiPj4+IjsKIAotbG9hZCgiLi9yZXNvdXJjZXMv
YmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVl
cy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5
VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJDb25zdFZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3Vyc2hpZnQtVmFyQ29uc3QuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9vcF91cnNoaWZ0LVZhckNvbnN0LmpzCmluZGV4IDhiNGFjZWRhYmIzNWUxYmIyMzFi
ZjdmM2I2OTQwOTMyNzgxODg5ZGMuLjI4ZGEwNTAzZWQyOWRhMTcyYjVmMTI3ZmM2OGNlMmU5NzI4
YmI0YWQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3Vyc2hpZnQtVmFyQ29uc3QuanMK
KysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC1WYXJDb25zdC5qcwpAQCAtMyw3ICszLDcg
QEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUg
c2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9w
LXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10
ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8v
IFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJ1cnNoaWZ0IjsKIHZhciBv
cCA9ICI+Pj4iOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Cits
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwg
IlZhckNvbnN0IiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
b3BfdXJzaGlmdC1WYXJWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LVZhclZhci5q
cwppbmRleCBjYjE0YWVkZjVmZDFhNzY2ZjBiN2E5Y2NjYWUyZGFiZDkxOWYxNjRmLi5iODQwMzdh
MDJjMmI3YjgxMzVmNzQxNzJlYzA2NzY5YTI5YTNiNjViIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0
cmVzcy9vcF91cnNoaWZ0LVZhclZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0
LVZhclZhci5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVz
dCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAog
Ly8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlm
IG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQo
Ii4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAv
Lz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEs
NyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9w
TmFtZSA9ICJ1cnNoaWZ0IjsKIHZhciBvcCA9ICI+Pj4iOwogCi1sb2FkKCIuL3Jlc291cmNlcy9i
aW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVz
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlU
ZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhclZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5Nzc5LTEuanMgYi9KU1Rlc3RzL3N0cmVz
cy9yZWdyZXNzLTE1OTc3OS0xLmpzCmluZGV4IGIwNzE1MWQ1YWEyZWUyMDA1ODVlZGFhMTkyNjBh
N2NlYTI1OTIzNTcuLmVlOWZlMjA3NzQzMjBlYjRiNjE3Mzc3YzgzNTYzOWVjYjE0MDBlNTYgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5Nzc5LTEuanMKKysrIGIvSlNUZXN0
cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMS5qcwpAQCAtMTI5MCw3ICsxMjkwLDcgQEAgZnVuY3Rp
b24gbWFrZVVzZVJlZ3Jlc3Npb25UZXN0KGQsIGIpCiAgICAgICAgIGJyZWFrOwogICAgICAgZGVm
YXVsdDoKICAgICAgICAgCi0gICAgICAgIHMgKz0gIi8qIHJlZ3Jlc3Npb24tdGVzdC1sb2FkICov
ICIgKyAibG9hZCgiICsgc2ltcGxlU291cmNlKGZpbGUpICsgIik7IjsKKyAgICAgICAgcyArPSAi
LyogcmVncmVzc2lvbi10ZXN0LWxvYWQgKi8gIiArICJsb2FkKCIgKyBzaW1wbGVTb3VyY2UoZmls
ZSkgKyAiLCAiY2FsbGVyIHJlbGF0aXZlIik7IjsKICAgICAgICAgYnJlYWs7CiAgICAgICAKICAg
ICB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE1OTc3OS0yLmpzIGIvSlNU
ZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMi5qcwppbmRleCA1ODc5ZWI5MWZmNzFjNzUxZTU3
ZDQ1MjA1MDk1ZDFkNDNkM2I0ZjQ1Li44OWZiY2UwOTUyMmFkMmU1YjNhMTQwZjc4NzRlZWQyZGZi
MmRmMTFlIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE1OTc3OS0yLmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5Nzc5LTIuanMKQEAgLTEyOTAsNyArMTI5MCw3
IEBAIGZ1bmN0aW9uIG1ha2VVc2VSZWdyZXNzaW9uVGVzdChkLCBiKQogICAgICAgICBicmVhazsK
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgIAotICAgICAgICBzICs9ICIvKiByZWdyZXNzaW9uLXRl
c3QtbG9hZCAqLyAiICsgImxvYWQoIiArIHNpbXBsZVNvdXJjZShmaWxlKSArICIpOyI7CisgICAg
ICAgIHMgKz0gIi8qIHJlZ3Jlc3Npb24tdGVzdC1sb2FkICovICIgKyAibG9hZCgiICsgc2ltcGxl
U291cmNlKGZpbGUpICsgIiwgImNhbGxlciByZWxhdGl2ZSIpOyI7CiAgICAgICAgIGJyZWFrOwog
ICAgICAgCiAgICAgfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVzb3VyY2VzL3R5cGVk
YXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5qcyBiL0pTVGVzdHMvc3RyZXNzL3Jl
c291cmNlcy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLWhlbHBlci1mdW5jdGlvbnMuanMKaW5kZXgg
YmYzNGRiNGM2YWU2YWVmYzdjZjk3M2IxYjVjNjE4N2VhNjY5YjRlNy4uNzJiMDgxNDFiMTE1YmIy
MmQ1OGI2ZTg3YmY0ZGM3MjVjZjNiZmQ5YyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvcmVz
b3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVu
Y3Rpb25zLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvc3RhbmRhbG9uZS1w
cmUuanMiKTsKK2xvYWQoIi4vc3RhbmRhbG9uZS1wcmUuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7
CiAKICJ1c2Ugc3RyaWN0IjsKIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVzb3VyY2Vz
L3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVz
b3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzCmluZGV4IGM5MTViMjY5
N2M5MzFiZTgyMDFiY2EyMTNmNzJiZDZkMTgxNDc4ZWIuLjU3OWQ4MDEwNjM1NWMyMmI2ZjczZWU4
YTE2MDAyM2NmZTI5MzdmNWYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3Jlc291cmNlcy90
eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9y
ZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMKQEAgLTEsNCArMSw0
IEBACi1sb2FkKCIuL3Jlc291cmNlcy9zdGFuZGFsb25lLXByZS5qcyIpOworbG9hZCgiLi9zdGFu
ZGFsb25lLXByZS5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdmFyIHR5cGVkQXJyYXlzID0g
W0ludDhBcnJheSwgVWludDhBcnJheSwgVWludDhDbGFtcGVkQXJyYXksIEludDE2QXJyYXksIFVp
bnQxNkFycmF5LCBJbnQzMkFycmF5LCBVaW50MzJBcnJheSwgRmxvYXQzMkFycmF5LCBGbG9hdDY0
QXJyYXldOwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1h
bm9ueW1vdXMtZnVuY3Rpb24uanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1h
bm9ueW1vdXMtZnVuY3Rpb24uanMKaW5kZXggNTg3NmRmNzRjYzU2NDMzZWY2MTJkZjU1ZjEzODZh
ODdiNTNlMGY0ZC4uYTgyMWYxNzQ1NzY2MDk1NWNkOTcxMTkyYjRmNDdlY2UzZjg5ZmRjZiAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItYW5vbnltb3VzLWZ1bmN0
aW9uLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWFub255bW91cy1m
dW5jdGlvbi5qcwpAQCAtMSw1ICsxLDUgQEAKIGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQ
cm9maWxlcigpKSB7Ci0gICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2Zp
bGVyLmpzIik7CisgICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVy
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAgICAgZnVuY3Rpb24gZm9vKGYpIHsKICAgICAg
ICAgZigpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItYmFz
aWMuanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1iYXNpYy5qcwppbmRleCBj
MTIyODcwZGFkZjJhMzYxMDYwNGJlZWYzZGY2YTFhYzRjMDZiMTBmLi5hNzY3ZDBiNDcxYjcxYzkw
NTFlYzQ2MTkxY2EzOWMzNTM0MGY2ZTBhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1w
bGluZy1wcm9maWxlci1iYXNpYy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9m
aWxlci1iYXNpYy5qcwpAQCAtMSw1ICsxLDUgQEAKIGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxp
bmdQcm9maWxlcigpKSB7Ci0gICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1By
b2ZpbGVyLmpzIik7CisgICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2Zp
bGVyLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAgICAgZnVuY3Rpb24gYmFyKHkpIHsKICAg
ICAgICAgbGV0IHg7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxl
ci1ib3VuZC1mdW5jdGlvbi1uYW1lLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmls
ZXItYm91bmQtZnVuY3Rpb24tbmFtZS5qcwppbmRleCA3ZWJhYTQzM2ExMjE4YjY3N2RmOGVjNmE0
MTZkZGQxMTQ5ZTExZTJlLi5mMzc3NjI5ODk1ODU2NWQ5MDdjYjM1NjBjNmE3MzM5M2EwN2I2M2Zh
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1ib3VuZC1mdW5j
dGlvbi1uYW1lLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWJvdW5k
LWZ1bmN0aW9uLW5hbWUuanMKQEAgLTEsNSArMSw1IEBACiBpZiAocGxhdGZvcm1TdXBwb3J0c1Nh
bXBsaW5nUHJvZmlsZXIoKSkgewotICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxp
bmdQcm9maWxlci5qcyIpOworICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQ
cm9maWxlci5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogICAgIGZ1bmN0aW9uIGZvbygpIHsK
ICAgICAgICAgbGV0IG8gPSB7fTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5n
LXByb2ZpbGVyLWRlZXAtc3RhY2suanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxl
ci1kZWVwLXN0YWNrLmpzCmluZGV4IGMzMzk2OTE2Mzg4NDE3YmY5Y2NkNmY3NGNiY2M4NWFhYzk1
MDYwODMuLmIxZTM1NWE0OTQ5NTc5ODdhMjNjZmI1YzQ3NTk2ZTkwYjNiOWFkNWMgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWRlZXAtc3RhY2suanMKKysrIGIv
SlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItZGVlcC1zdGFjay5qcwpAQCAtMSw1ICsx
LDUgQEAKIGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpKSB7Ci0gICAgbG9h
ZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIik7CisgICAgbG9hZCgi
Li9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwgImNhbGxlciByZWxhdGl2
ZSIpOwogCiAgICAgZnVuY3Rpb24gZm9vKHgpIHsgCiAgICAgICAgIGxldCBvID0ge307CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1kaXNwbGF5LW5hbWUuanMg
Yi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1kaXNwbGF5LW5hbWUuanMKaW5kZXgg
ZGFiNzEwODBhNzVjYWNiNTlkNTg5ZWY4YzAxNWVhZGNlNjY1NTVmNS4uNWQ5NzljMWU2YmI3Mjc0
NDljMTRmZDA0M2U2OTQxMTViM2QzZWFjNCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2Ft
cGxpbmctcHJvZmlsZXItZGlzcGxheS1uYW1lLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBs
aW5nLXByb2ZpbGVyLWRpc3BsYXktbmFtZS5qcwpAQCAtMSw1ICsxLDUgQEAKIGlmIChwbGF0Zm9y
bVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpKSB7Ci0gICAgbG9hZCgiLi9zYW1wbGluZy1wcm9m
aWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIik7CisgICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxl
ci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAgICAgZnVuY3Rp
b24gZm9vKCkgewogICAgICAgICBsZXQgbyA9IHt9OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3Mvc2FtcGxpbmctcHJvZmlsZXItaW50ZXJuYWwtZnVuY3Rpb24tbmFtZS5qcyBiL0pTVGVzdHMv
c3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWludGVybmFsLWZ1bmN0aW9uLW5hbWUuanMKaW5kZXgg
ODg5MmNhMzUwM2M5MDQ5M2E5YWM1YWYzNGM5YTA0NmYyOTBkMTQxOS4uYWNmYzZjYmUxNjlmZTA5
NzNhYjg5Mjc5OTNjODQxNjUzYTRkN2ExNyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2Ft
cGxpbmctcHJvZmlsZXItaW50ZXJuYWwtZnVuY3Rpb24tbmFtZS5qcworKysgYi9KU1Rlc3RzL3N0
cmVzcy9zYW1wbGluZy1wcm9maWxlci1pbnRlcm5hbC1mdW5jdGlvbi1uYW1lLmpzCkBAIC0xLDUg
KzEsNSBAQAogaWYgKHBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKCkpIHsKLSAgICBs
b2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIuanMiKTsKKyAgICBsb2Fk
KCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiAKICAgICBmdW5jdGlvbiBmb28oKSB7CiAgICAgICAgIGxldCB4OwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItbWljcm90YXNrcy5qcyBiL0pTVGVz
dHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLW1pY3JvdGFza3MuanMKaW5kZXggY2UzNWQxNmFi
MWJhYjI3NjA1MTAyNTc0Y2E1MmEzNGMwYTQzNmEwMC4uOWRiMTg2NjJhNDhiNjgyY2NkN2YxMDY4
YmQzNWM4MzBlZjQyNmM5YiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJv
ZmlsZXItbWljcm90YXNrcy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxl
ci1taWNyb3Rhc2tzLmpzCkBAIC0xLDcgKzEsNyBAQAogdmFyIGFib3J0ID0gJHZtLmFib3J0Owog
CiBpZiAocGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJvZmlsZXIoKSkgewotICAgIGxvYWQoIi4v
c2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIpOworICAgIGxvYWQoIi4vc2Ft
cGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
IAogICAgIGxldCB0cmVlID0gbnVsbDsKICAgICBmdW5jdGlvbiB0ZXN0UmVzdWx0cygpIHsKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0
aW9uLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rp
b24uanMKaW5kZXggYmE5ZTU2ZTZkODUxZDRkYzBhNjJhMWNkMjYxMzJhNjBhZTYwNmM1Yy4uNTJk
NDVlMDQ3MTFiZWNlNWJlNmMwZWE5NGY1ZDBlZDQ4MzQzMTA1YiAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24uanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24uanMKQEAgLTY1
LDcgKzY1LDcgQEAgaWYgKHBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKCkgJiYgJHZt
LmlzV2FzbVN1cHBvcnRlZCgpKSB7CiAgICAgY29uc3QgaW5zdGFuY2UgPSBjb21waWxlKHdhc21G
aWxlLCBpbXBvcnRPYmplY3QpOwogICAgIGNvbnN0IHJlc3VsdCA9IGluc3RhbmNlLmV4cG9ydHMu
X3BhcnJvdCgxKTsKIAotICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9m
aWxlci5qcyIpOworICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxl
ci5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKICAgICB2YXIgd2FzbUVudHJ5ID0gZnVuY3Rpb24o
KSB7CiAgICAgICAgIHJldHVybiBpbnN0YW5jZS5leHBvcnRzLl9wYXJyb3QoMSk7CiAgICAgfTsK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMgYi9K
U1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzCmluZGV4IDdhZDY1ZDFlMmUw
MDJiOTllN2ZiMjc4NWQzZmZmNzQyNzJmZTQ4MDMuLjlmODc3ZDcxOGZkZjJkNGExMGFiOWVmZjFj
NjBhNWE2MmJmZTFlNTUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2Zp
bGVyLXdhc20uanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5q
cwpAQCAtMSw3ICsxLDcgQEAKIC8vQCBydW5EZWZhdWx0CiAKIGlmIChwbGF0Zm9ybVN1cHBvcnRz
U2FtcGxpbmdQcm9maWxlcigpICYmICR2bS5pc1dhc21TdXBwb3J0ZWQoKSkgewotICAgIGxvYWQo
Ii4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIpOworICAgIGxvYWQoIi4v
c2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIsICJjYWxsZXIgcmVsYXRpdmUi
KTsKICAgICBsZXQgYnVmID0gcmVhZCgiLi9zYW1wbGluZy1wcm9maWxlci9sb29wLndhc20iLCAi
YmluYXJ5Iik7CiAgICAgbGV0IG1vZHVsZSA9IG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYnVmKTsK
ICAgICBsZXQgaW5zdGFuY2UgPSBuZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UobW9kdWxlKTsKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NoYWRvdy1jaGlja2VuLWRpc2FibGVkLmpzIGIvSlNU
ZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4tZGlzYWJsZWQuanMKaW5kZXggYTczMTAwMzE4OGJk
NWYzYTEwMDYwZmY1ODdlMDA0ZmIxNDhlZjA0OS4uYjJjMDVjNDQzZTQ2ZjRlNTVhYWRkZGNhZWU4
YmE2ZmIwYjE2MWMwMyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4t
ZGlzYWJsZWQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4tZGlzYWJsZWQu
anMKQEAgLTMsNyArMyw3IEBACiAidXNlIHN0cmljdCI7CiAKIHZhciB2ZXJib3NlID0gZmFsc2U7
Ci1sb2FkKCJyZXNvdXJjZXMvc2hhZG93LWNoaWNrZW4tc3VwcG9ydC5qcyIpOworbG9hZCgicmVz
b3VyY2VzL3NoYWRvdy1jaGlja2VuLXN1cHBvcnQuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBp
bml0aWFsaXplKCk7CiAKIChmdW5jdGlvbiB0ZXN0MSgpIHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL3NoYWRvdy1jaGlja2VuLWVuYWJsZWQuanMgYi9KU1Rlc3RzL3N0cmVzcy9zaGFkb3ct
Y2hpY2tlbi1lbmFibGVkLmpzCmluZGV4IDE5Y2Y3M2QwNDAxMTQ2MWJjMGZlNWQ4MzYyYTU0ZDQw
ZmNhMGRjODAuLmU3ZWJmOWYwYzgxMzQyODRlNGY4OTRmZGUwMmFjZDRmMDQxZDQzYzcgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NoYWRvdy1jaGlja2VuLWVuYWJsZWQuanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4tZW5hYmxlZC5qcwpAQCAtNiw3ICs2LDcgQEAgdmFy
IHNoYWRvd0NoaWNrZW5GdW5jdGlvbnNPblN0YWNrID0gJHZtLnNoYWRvd0NoaWNrZW5GdW5jdGlv
bnNPblN0YWNrOwogCiB2YXIgdmVyYm9zZSA9IGZhbHNlOwogCi1sb2FkKCJyZXNvdXJjZXMvc2hh
ZG93LWNoaWNrZW4tc3VwcG9ydC5qcyIpOworbG9hZCgicmVzb3VyY2VzL3NoYWRvdy1jaGlja2Vu
LXN1cHBvcnQuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBpbml0aWFsaXplKCk7CiAKIChmdW5j
dGlvbiB0ZXN0MSgpIHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktY29u
c3RydWN0b3IuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLmpzCmlu
ZGV4IDBlOGVhZjc0OTg4MDgyYzRiMTQwYjc1ZjA1NDMzMTExMjJjZGEyYTYuLmIyNDUzNTYyZjIw
ZjNhYWU4MGJhZDM4NDA1ZDM2OGQwMjZiZGZkNDUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktY29uc3RydWN0b3IuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJh
eS1jb25zdHJ1Y3Rvci5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVk
YXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJj
ZXMvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciBy
ZWxhdGl2ZSIpOwogCiBsZXQgVHlwZWRBcnJheSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihJbnQz
MkFycmF5KTsKIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1jb3B5V2l0
aGluLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1jb3B5V2l0aGluLmpzCmluZGV4IGU1
ZTc5YWEwZTYwOTYxYjBhYTRlNTUwMDI3NjQ3ZGVkMmFhYWRkODkuLjE2OTA4ODU2YWRhYjIzYTJm
ZmExM2ZkNjE2NDQyM2FlYmZkMjdiYjggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVk
YXJyYXktY29weVdpdGhpbi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWNvcHlX
aXRoaW4uanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRl
c3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10
ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90
eXBlLmNvcHlXaXRoaW4gZnVuY3Rpb24iKTsKIAogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy90eXBlZGFycmF5LWV2ZXJ5LmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1ldmVyeS5q
cwppbmRleCBjNGU5NzljYWI1OGFjZDMxNWYyN2RhNDAyZjM0ZjM2OTA3ZDYwYmJkLi4xZDBhYmJk
MTdkNGE4MGY5Nzc2ODkyOWUxZjU0NTMwN2JkN2QzYjVhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0
cmVzcy90eXBlZGFycmF5LWV2ZXJ5LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXkt
ZXZlcnkuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRl
c3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10
ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlv
bigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90
b3R5cGUuZXZlcnkgZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlw
ZWRhcnJheS1maWxsLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maWxsLmpzCmluZGV4
IDc1NWI0NDA0N2NhN2E0NDhkMGE5MzEyYjM1MjJiM2NiOTgzMDE0YzIuLmZkNTM3ODg0MWQ4ZGU4
ODEzODk3NjlhODczMDBiYWU4MzQ5ZThhNjQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5
cGVkYXJyYXktZmlsbC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbGwuanMK
QEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVy
LWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBl
ci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlz
IHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuZmls
bCBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZp
bHRlci5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmlsdGVyLmpzCmluZGV4IDdjZTdi
YmY2MzY3OTdiZmRlMTM1MzVhYzRmNDgxODdjNWIwYTQ1MDYuLjNhMjIzZGY0ZmY3NjY3NDk4N2Nh
NGYxNjRkYTM0YjEzOTFkNDhiNDAgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJy
YXktZmlsdGVyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmlsdGVyLmpzCkBA
IC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1m
dW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXIt
ZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0
ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLmZpbHRl
ciBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZp
bmQuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbmQuanMKaW5kZXggYjE5MDJjNDVh
MGVlODJlNWQwOWFlMmIxNzI1NTNlOGJmOTU5OTJhZS4uZTg2MDViMjIxMjA2ZjQzZjhiNGU5M2Y3
MGRhYWY3M2UyY2VjNTI4ZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1m
aW5kLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmluZC5qcwpAQCAtMSw0ICsx
LDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25z
LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9u
cy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVj
a3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5maW5kIGZ1bmN0aW9u
IgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmluZEluZGV4Lmpz
IGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maW5kSW5kZXguanMKaW5kZXggZTAxNWI3YzVh
NTI5MTlkYzUyN2FjZjFmMmY4MmFlYjU5ZmUzMWVkNy4uOTA4NjIyMjQwMTUyMGY4NTUzYjkzNjY5
MTBlMGQwMTM2NmFiMTUxNCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1m
aW5kSW5kZXguanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maW5kSW5kZXguanMK
QEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVy
LWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBl
ci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlz
IHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuZmlu
ZEluZGV4IGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJy
YXktZm9yRWFjaC5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZm9yRWFjaC5qcwppbmRl
eCAwZDY5ZmZlZDRjNDY0ODE0YWZhMTBhYjBhZmNlNzdiZTQwMDM3Mzg1Li4yYWNmMjViYzJmMzNh
NTgzYjg3MzdkZWRiMDczZDA2MzFmNmI5OGZjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90
eXBlZGFycmF5LWZvckVhY2guanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1mb3JF
YWNoLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0
LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVz
dC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24o
CiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90
eXBlLmZvckVhY2ggZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlw
ZWRhcnJheS1mcm9tLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1mcm9tLmpzCmluZGV4
IGRiYmZjOGEyZWRmYmRjODc2ZGY0Mzg5ZjA3ZTY5NjBhMGRjMWY3ZmQuLjJmZmM5YzFlMTA1YTE5
M2EzODg3Y2UwMGEyNzg4ZTJlMWY5MThhN2MgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5
cGVkYXJyYXktZnJvbS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZyb20uanMK
QEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LWNvbnN0cnVjdG9y
LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktY29u
c3RydWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2Ny
aXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5
LmZyb20gZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJh
eS1pbmNsdWRlcy5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktaW5jbHVkZXMuanMKaW5k
ZXggZDZjMDNhZjhkYTJkMzA2NGJhODg5NTQ4OTM3MWUyYmM4ZGIwNjJiNS4uZTY4MWE0ODM1NzRh
YTlmYjkzNTRiZGNjZjFkOWNiZmFiYTc1MzM4NCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mv
dHlwZWRhcnJheS1pbmNsdWRlcy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWlu
Y2x1ZGVzLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgicmVzb3VyY2VzL3R5cGVkYXJyYXktdGVz
dC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCJyZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0
LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIGZvciAoY29uc3Ry
dWN0b3Igb2YgdHlwZWRBcnJheXMpIHsKICAgICBsZXQgYSA9IG5ldyBjb25zdHJ1Y3RvcigxMCk7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWluZGV4T2YuanMgYi9KU1Rl
c3RzL3N0cmVzcy90eXBlZGFycmF5LWluZGV4T2YuanMKaW5kZXggN2RkNWYwMDFhYTZhNDU4ZWUw
ZTFkMWNmNGMyMzRjNzY2YTUyMTRkYS4uMDMyMWFiYTU1ZTMxNTgzMDBiNGY2ZGRlZDBkYjAzNjE3
ZjE5YmI3ZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1pbmRleE9mLmpz
CisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktaW5kZXhPZi5qcwpAQCAtMSw0ICsxLDQg
QEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpz
Iik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5q
cyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3Mg
dGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5pbmRleE9mIGZ1bmN0aW9u
IgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktbGFzdEluZGV4T2Yu
anMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWxhc3RJbmRleE9mLmpzCmluZGV4IGM3NDAw
NDMyNDJjMDY3ZThhZGIxZmQ5NjJjYzQxYWE2MWYzY2Y2MDUuLjNiYTZjZWM1MjAxZTA0YmMyMjdm
YWNhNmMxMzE3YTcyYjNiM2QxNjUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJy
YXktbGFzdEluZGV4T2YuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1sYXN0SW5k
ZXhPZi5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVz
dC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRl
c3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9u
KAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3Rv
dHlwZS5sYXN0SW5kZXhPZiBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy90eXBlZGFycmF5LW1hcC5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktbWFwLmpzCmlu
ZGV4IDhkYWQyMjJjY2Y1MDE5YTNhZjA5Mzg2NmFmOTNhZGQ2N2MwNjVjMTIuLjlhMTZhZjMyYTE0
NDU1MWJkOGM0MTExMDg5NWVmNGYxOGZlZjEyOTYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktbWFwLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktbWFwLmpz
CkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBl
ci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxw
ZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhp
cyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLm1h
cCBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LW9m
LmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1vZi5qcwppbmRleCAwZTg1MmRkOGM4Y2Fm
YzgzZDBiMzg5MGE2YjNiNDQ0MTYyODY4ODBlLi4zNjc0MzI3YTRkODk3OTNhMzIxZWIyYjBjNjRi
MGViMzJmOGFjMDZiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LW9mLmpz
CisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktb2YuanMKQEAgLTEsNCArMSw0IEBACi1s
b2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLWhlbHBlci1mdW5jdGlvbnMu
anMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1
bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVz
dCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5Lm9mIGZ1bmN0aW9uIgogKTsK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktcmVkdWNlLmpzIGIvSlNUZXN0
cy9zdHJlc3MvdHlwZWRhcnJheS1yZWR1Y2UuanMKaW5kZXggMzlhNmRhMzFhNDZlZDhiNzNlMmYw
NTcwZDIzNDkwMTRmNDBhMGU1Ni4uZTE5ZTUwNGUxZTYxNzczOGJmY2NlOGFhOGE2MWUyNDQzMTM3
ODc2NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1yZWR1Y2UuanMKKysr
IGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1yZWR1Y2UuanMKQEAgLTEsNCArMSw0IEBACi1s
b2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOwor
bG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAi
Y2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBi
ZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUucmVkdWNlIGZ1bmN0aW9uIgogKTsK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktcmVkdWNlUmlnaHQuanMgYi9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXJlZHVjZVJpZ2h0LmpzCmluZGV4IGQ1ZGIzYzdiNmUz
MmQ4YzQzNDMwN2FiZTcxYjhiMDFmOWE0NTkxOTEuLjhmOGJkYmU3ZWE0YjNmMWQ1NDg0ZWUxZDky
YWNjOWFmZTE2ZThmZDUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktcmVk
dWNlUmlnaHQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1yZWR1Y2VSaWdodC5q
cwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxw
ZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVs
cGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRo
aXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5y
ZWR1Y2VSaWdodCBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBl
ZGFycmF5LXNldC5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc2V0LmpzCmluZGV4IGZh
YzVmYzdjZWRkYzIxOTFjNzQyOTRjYzRjZTE4ZjI3YmNlNmM1OGEuLmQ4MmU1OTg3NzZjOGMwYzli
ZGM4MDZkMGQ1NGVkYjlkNzA5NmU3NDggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVk
YXJyYXktc2V0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc2V0LmpzCkBAIC0x
LDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5j
dGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVu
Y3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBj
aGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5zZXQgZnVuY3Rp
b24iKTsKIAogc2hvdWxkQmUoIkludDMyQXJyYXkucHJvdG90eXBlLnNldC5sZW5ndGgiLCAiMSIp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zbGljZS5qcyBiL0pTVGVz
dHMvc3RyZXNzL3R5cGVkYXJyYXktc2xpY2UuanMKaW5kZXggZmJjYjFmOGIxNWQ0ZDgwODRmZGU2
NDUwMWVhN2Y1MGM0ZTVhNDg5ZS4uOTVkZWQwMzk0ZWMxMTRiYzkyOWU1YTY1ZTRjODNhZjVkOWNm
YzU5MSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zbGljZS5qcworKysg
Yi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNsaWNlLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9h
ZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xv
YWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNh
bGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVo
YXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLnNsaWNlIGZ1bmN0aW9uIgogKTsKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc29tZS5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktc29tZS5qcwppbmRleCAwMTNjNDk2ODUyZGE0YzFkMjY4MzRlZGQ1MGM0
MGQ2NzBlYzNlYzVhLi5jMzhhMjg5YzY3NGYyZDlmNWUxNDU4OTA2ZjM5ODgzOGEwOTczMmY4IDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNvbWUuanMKKysrIGIvSlNUZXN0
cy9zdHJlc3MvdHlwZWRhcnJheS1zb21lLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNv
dXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVz
b3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxh
dGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2Yg
dGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLnNvbWUgZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zb3J0LmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1zb3J0LmpzCmluZGV4IDY5NDFlMGFkMjllNDBmYzdkNTk3MzExYmYzZDE5MGE0N2FhZGI0
NGUuLmYzNjMxMjcyMjNhZTlhZjA2NDY1M2QwNWQ3ZTZjYzZmNGU3NGViYzggMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc29ydC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90
eXBlZGFycmF5LXNvcnQuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBl
ZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlw
ZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBk
ZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRB
cnJheS5wcm90b3R5cGUuc29ydCBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy90eXBlZGFycmF5LXN1YmFycmF5LmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1z
dWJhcnJheS5qcwppbmRleCA4ZjMyOTVmMDFmNTIxMjliMmI4MzUxMmQyN2E0MGU4NmM3ZGU5OGY2
Li4zMGJhMjU1Yzg1ODdjNTUyZjBjMzQyNzVhODAyYTE1YTRhMWQyZTkxIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXN1YmFycmF5LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktc3ViYXJyYXkuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNl
cy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJj
ZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZl
Iik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUg
VHlwZWRBcnJheS5wcm90b3R5cGUuc3ViYXJyYXkgZnVuY3Rpb24iCiApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404077</attachid>
            <date>2020-07-11 17:20:01 -0700</date>
            <delta_ts>2020-07-11 18:22:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214205-20200711171958.patch</filename>
            <type>text/plain</type>
            <size>133157</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZjRjNjYxOTE5YWQ2ZDY2YzI3YzY0ZDQ5ODkzMzE3NzAxN2QzNzc2Li42ZjAxNTRlMGIxYjU2Mjdl
NjNjYThmYjYwN2YyMjc5MTQzMmNkNDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MSBAQAorMjAyMC0wNy0xMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBDbGVhbiB1cCBTb3VyY2VQcm92aWRlciBhbmQgYWRkIGNhbGxlciBy
ZWxhdGl2ZSBsb2FkIHNjcmlwdCB0byBqc2MuY3BwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIEFQSS9KU0FQSUdsb2JhbE9iamVjdC5tbToKKyAgICAg
ICAgKEpTQzo6SlNBUElHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6Cisg
ICAgICAgICogQVBJL0pTQmFzZS5jcHA6CisgICAgICAgIChKU0V2YWx1YXRlU2NyaXB0KToKKyAg
ICAgICAgKEpTQ2hlY2tTY3JpcHRTeW50YXgpOgorICAgICAgICAqIEFQSS9KU09iamVjdFJlZi5j
cHA6CisgICAgICAgIChKU09iamVjdE1ha2VGdW5jdGlvbik6CisgICAgICAgICogQVBJL0pTU2Ny
aXB0Lm1tOgorICAgICAgICAoLVtKU1NjcmlwdCBzb3VyY2VDb2RlXSk6CisgICAgICAgICogQVBJ
L0pTU2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMu
Y3BwOgorICAgICAgICAoSlNDOjpCdWlsdGluRXhlY3V0YWJsZXM6OkJ1aWx0aW5FeGVjdXRhYmxl
cyk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChKU0M6OkNvZGVC
bG9jazo6cmVmZXJyZXJVUkwgY29uc3QpOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyTG9j
YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckxvY2F0aW9uOjpEZWJ1Z2dlckxvY2F0
aW9uKToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmg6CisgICAgICAgIChK
U0M6OkRlYnVnZ2VyTG9jYXRpb246OkRlYnVnZ2VyTG9jYXRpb24pOgorICAgICAgICAqIGluc3Bl
Y3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OlNjcmlwdERl
YnVnU2VydmVyOjpzb3VyY2VQYXJzZWQpOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChH
bG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6CisgICAgICAgIChqc2NTb3Vy
Y2UpOgorICAgICAgICAoR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAg
IChmdW5jdGlvblJ1bik6CisgICAgICAgIChmdW5jdGlvbkxvYWQpOgorICAgICAgICAoZnVuY3Rp
b25DaGVja1N5bnRheCk6CisgICAgICAgIChmdW5jdGlvbkNhbGxlclNvdXJjZU9yaWdpbik6Cisg
ICAgICAgIChmdW5jdGlvbkRvbGxhckFnZW50U3RhcnQpOgorICAgICAgICAoZnVuY3Rpb25DaGVj
a01vZHVsZVN5bnRheCk6CisgICAgICAgIChydW5XaXRoT3B0aW9ucyk6CisgICAgICAgIChydW5J
bnRlcmFjdGl2ZSk6CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6CisgICAgICAgIChKU0M6OlNj
b3BlTm9kZTo6c291cmNlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U2NvcGVOb2RlOjpzb3VyY2VV
UkwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VDb2RlLmg6CisgICAg
ICAgIChKU0M6Om1ha2VTb3VyY2UpOgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VDb2RlS2V5Lmg6
CisgICAgICAgIChKU0M6OlNvdXJjZUNvZGVLZXk6Omhvc3QgY29uc3QpOgorICAgICAgICAqIHBh
cnNlci9Tb3VyY2VQcm92aWRlci5jcHA6CisgICAgICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyOjpT
b3VyY2VQcm92aWRlcik6CisgICAgICAgICogcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmg6CisgICAg
ICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyOjpzb3VyY2VVUkwgY29uc3QpOgorICAgICAgICAoSlND
OjpTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6U3RyaW5nU291
cmNlUHJvdmlkZXI6OlN0cmluZ1NvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKEpTQzo6U291cmNl
UHJvdmlkZXI6OnVybCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9DYWNoZWRU
eXBlcy5jcHA6CisgICAgICAgIChKU0M6OkNhY2hlZFNvdXJjZU9yaWdpbjo6ZW5jb2RlKToKKyAg
ICAgICAgKEpTQzo6Q2FjaGVkU291cmNlT3JpZ2luOjpkZWNvZGUgY29uc3QpOgorICAgICAgICAo
SlNDOjpDYWNoZWRTb3VyY2VQcm92aWRlclNoYXBlOjplbmNvZGUpOgorICAgICAgICAoSlNDOjpD
YWNoZWRTdHJpbmdTb3VyY2VQcm92aWRlcjo6ZGVjb2RlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
Q2FjaGVkV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6ZGVjb2RlIGNvbnN0KToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6YWRkRXJyb3JJbmZvKToKKyAgICAg
ICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25z
dHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjayk6CisgICAgICAgICogcnVudGlt
ZS9TY3JpcHRFeGVjdXRhYmxlLmg6CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6OnNv
dXJjZVVSTCBjb25zdCk6CisgICAgICAgICogcnVudGltZS9Tb3VyY2VPcmlnaW4uaDoKKyAgICAg
ICAgKEpTQzo6U291cmNlT3JpZ2luOjpTb3VyY2VPcmlnaW4pOgorICAgICAgICAoSlNDOjpTb3Vy
Y2VPcmlnaW46OnVybCBjb25zdCk6CisgICAgICAgIChKU0M6OlNvdXJjZU9yaWdpbjo6c3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6U291cmNlT3JpZ2luOjppc051bGwgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvVGhyb3dTY29wZS5jcHA6CisgICAgICAgIChKU0M6OlRo
cm93U2NvcGU6OnRocm93RXhjZXB0aW9uKToKKyAgICAgICAgKiBydW50aW1lL1Rocm93U2NvcGUu
aDoKKyAgICAgICAgKEpTQzo6VGhyb3dTY29wZTo6dGhyb3dFeGNlcHRpb24pOgorICAgICAgICAo
SlNDOjp0aHJvd1ZNRXhjZXB0aW9uKToKKyAgICAgICAgKiB0b29scy9GdW5jdGlvbk92ZXJyaWRl
cy5jcHA6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVPdmVycmlkZUluZm8pOgorCiAyMDIwLTA3
LTA5ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04o
cjI2MjMwMik6IElUTUxLaXQgZGVidWdnYWJsZXMgaW4gbGlzdGluZ3MgYXJlIG1pc3NpbmcgYSB0
aXRsZSwgdXNlIFVVSUQgaW5zdGVhZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0FQSUdsb2JhbE9iamVjdC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNB
UElHbG9iYWxPYmplY3QubW0KaW5kZXggMDJjYjliNzMxMTA1M2E0MmM3ZGQ1NDVlZTgzOWQxYzgw
MWU0YjkxZi4uMmMwYTYzOTI3NTk3ZTE5MTc4OWQxMGNhMDFkMTE5ZWRhMzI3ZDYzNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5tbQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0Lm1tCkBAIC0xNTAs
OCArMTUwLDcgQEAgSlNJbnRlcm5hbFByb21pc2UqIEpTQVBJR2xvYmFsT2JqZWN0Ojptb2R1bGVM
b2FkZXJJbXBvcnRNb2R1bGUoSlNHbG9iYWxPYmplY3QqIGcKICAgICAgICAgcmV0dXJuIHJlamVj
dChleGNlcHRpb24tPnZhbHVlKCkpOwogICAgIH0KIAotICAgIFN0cmluZyByZWZlcnJlciA9ICFz
b3VyY2VPcmlnaW4uaXNOdWxsKCkgPyBzb3VyY2VPcmlnaW4uc3RyaW5nKCkgOiBTdHJpbmcoKTsK
LSAgICBVUkwgYmFzZVVSTChVUkwoKSwgcmVmZXJyZXIpOworICAgIFVSTCBiYXNlVVJMID0gc291
cmNlT3JpZ2luLnVybCgpID8gc291cmNlT3JpZ2luLnVybCgpIDogVVJMKCk7CiAgICAgYXV0byBy
ZXN1bHQgPSBjb21wdXRlVmFsaWRJbXBvcnRTcGVjaWZpZXIoYmFzZVVSTCwgc3BlY2lmaWVyKTsK
ICAgICBpZiAocmVzdWx0KQogICAgICAgICByZXR1cm4gaW1wb3J0KHJlc3VsdC52YWx1ZSgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcAppbmRleCAxZDA0Y2YzZjk0OTBkZGY3NTM0
YjIxMDMwMTNhYWM0ZDVmODRiNTUzLi4wOTYxYzY3ZDg5NDVlNzU2YWVkY2Q2ZWRmZDg2MjE0N2M5
MDhjMjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQmFzZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3BwCkBAIC03Myw3ICs3Myw3
IEBAIEpTVmFsdWVSZWYgSlNFdmFsdWF0ZVNjcmlwdEludGVybmFsKGNvbnN0IEpTTG9ja0hvbGRl
ciYsIEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqCiAgICAgcmV0dXJuIHRvUmVmKGdsb2JhbE9iamVj
dCwganNVbmRlZmluZWQoKSk7CiB9CiAKLUpTVmFsdWVSZWYgSlNFdmFsdWF0ZVNjcmlwdChKU0Nv
bnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBzY3JpcHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3Qs
IEpTU3RyaW5nUmVmIHNvdXJjZVVSTCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKQorSlNWYWx1ZVJlZiBKU0V2YWx1YXRlU2NyaXB0KEpTQ29udGV4dFJlZiBj
dHgsIEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgSlNTdHJpbmdS
ZWYgc291cmNlVVJMU3RyaW5nLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBKU1ZhbHVlUmVmKiBl
eGNlcHRpb24pCiB7CiAgICAgaWYgKCFjdHgpIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CkBAIC04NSwxMyArODUsMTMgQEAgSlNWYWx1ZVJlZiBKU0V2YWx1YXRlU2NyaXB0KEpTQ29u
dGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNPYmplY3RSZWYgdGgKIAogICAgIHN0
YXJ0aW5nTGluZU51bWJlciA9IHN0ZDo6bWF4KDEsIHN0YXJ0aW5nTGluZU51bWJlcik7CiAKLSAg
ICBhdXRvIHNvdXJjZVVSTFN0cmluZyA9IHNvdXJjZVVSTCA/IHNvdXJjZVVSTC0+c3RyaW5nKCkg
OiBTdHJpbmcoKTsKLSAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2Uoc2NyaXB0LT5z
dHJpbmcoKSwgU291cmNlT3JpZ2luIHsgc291cmNlVVJMU3RyaW5nIH0sIFVSTCh7IH0sIHNvdXJj
ZVVSTFN0cmluZyksIFRleHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQo
c3RhcnRpbmdMaW5lTnVtYmVyKSwgT3JkaW5hbE51bWJlcigpKSk7CisgICAgYXV0byBzb3VyY2VV
UkwgPSBzb3VyY2VVUkxTdHJpbmcgPyBVUkwoeyB9LCBzb3VyY2VVUkxTdHJpbmctPnN0cmluZygp
KSA6IFVSTCgpOworICAgIFNvdXJjZUNvZGUgc291cmNlID0gbWFrZVNvdXJjZShzY3JpcHQtPnN0
cmluZygpLCBTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkwgfSwgc291cmNlVVJMLnN0cmluZygpLCBU
ZXh0UG9zaXRpb24oT3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0YXJ0aW5nTGluZU51
bWJlciksIE9yZGluYWxOdW1iZXIoKSkpOwogCiAgICAgcmV0dXJuIEpTRXZhbHVhdGVTY3JpcHRJ
bnRlcm5hbChsb2NrZXIsIGN0eCwgdGhpc09iamVjdCwgc291cmNlLCBleGNlcHRpb24pOwogfQog
Ci1ib29sIEpTQ2hlY2tTY3JpcHRTeW50YXgoSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYg
c2NyaXB0LCBKU1N0cmluZ1JlZiBzb3VyY2VVUkwsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIEpT
VmFsdWVSZWYqIGV4Y2VwdGlvbikKK2Jvb2wgSlNDaGVja1NjcmlwdFN5bnRheChKU0NvbnRleHRS
ZWYgY3R4LCBKU1N0cmluZ1JlZiBzY3JpcHQsIEpTU3RyaW5nUmVmIHNvdXJjZVVSTFN0cmluZywg
aW50IHN0YXJ0aW5nTGluZU51bWJlciwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGlm
ICghY3R4KSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTAzLDggKzEwMyw4
IEBAIGJvb2wgSlNDaGVja1NjcmlwdFN5bnRheChKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1Jl
ZiBzY3JpcHQsIEpTU3RyaW5nUmVmIHNvdXJjCiAKICAgICBzdGFydGluZ0xpbmVOdW1iZXIgPSBz
dGQ6Om1heCgxLCBzdGFydGluZ0xpbmVOdW1iZXIpOwogCi0gICAgYXV0byBzb3VyY2VVUkxTdHJp
bmcgPSBzb3VyY2VVUkwgPyBzb3VyY2VVUkwtPnN0cmluZygpIDogU3RyaW5nKCk7Ci0gICAgU291
cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291cmNlKHNjcmlwdC0+c3RyaW5nKCksIFNvdXJjZU9yaWdp
biB7IHNvdXJjZVVSTFN0cmluZyB9LCBVUkwoeyB9LCBzb3VyY2VVUkxTdHJpbmcpLCBUZXh0UG9z
aXRpb24oT3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0YXJ0aW5nTGluZU51bWJlciks
IE9yZGluYWxOdW1iZXIoKSkpOworICAgIGF1dG8gc291cmNlVVJMID0gc291cmNlVVJMU3RyaW5n
ID8gVVJMKHsgfSwgc291cmNlVVJMU3RyaW5nLT5zdHJpbmcoKSkgOiBVUkwoKTsKKyAgICBTb3Vy
Y2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2Uoc2NyaXB0LT5zdHJpbmcoKSwgU291cmNlT3JpZ2lu
IHsgc291cmNlVVJMIH0sIHNvdXJjZVVSTC5zdHJpbmcoKSwgVGV4dFBvc2l0aW9uKE9yZGluYWxO
dW1iZXI6OmZyb21PbmVCYXNlZEludChzdGFydGluZ0xpbmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVy
KCkpKTsKICAgICAKICAgICBKU1ZhbHVlIHN5bnRheEV4Y2VwdGlvbjsKICAgICBib29sIGlzVmFs
aWRTeW50YXggPSBjaGVja1N5bnRheChnbG9iYWxPYmplY3QsIHNvdXJjZSwgJnN5bnRheEV4Y2Vw
dGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVm
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IGQ5
YWViZjdjMWMwMGQ0N2ZjOWQ2NDgwYjYzNTM2NzEzYzA1NmZlNjAuLjM2M2I4YWY0YjQ4YmI4YzA3
NDVmODFiMWNlMGQ4ZmJlNjU2ZjI4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNPYmplY3RSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNP
YmplY3RSZWYuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtl
Q29uc3RydWN0b3IoSlNDb250ZXh0UmVmIGN0eCwgSlNDbGFzc1JlZiBqc0NsYXNzLCBKU09iamUK
ICAgICByZXR1cm4gdG9SZWYoY29uc3RydWN0b3IpOwogfQogCi1KU09iamVjdFJlZiBKU09iamVj
dE1ha2VGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBuYW1lLCB1bnNpZ25l
ZCBwYXJhbWV0ZXJDb3VudCwgY29uc3QgSlNTdHJpbmdSZWYgcGFyYW1ldGVyTmFtZXNbXSwgSlNT
dHJpbmdSZWYgYm9keSwgSlNTdHJpbmdSZWYgc291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVt
YmVyLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCitKU09iamVjdFJlZiBKU09iamVjdE1ha2VGdW5j
dGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBuYW1lLCB1bnNpZ25lZCBwYXJhbWV0
ZXJDb3VudCwgY29uc3QgSlNTdHJpbmdSZWYgcGFyYW1ldGVyTmFtZXNbXSwgSlNTdHJpbmdSZWYg
Ym9keSwgSlNTdHJpbmdSZWYgc291cmNlVVJMU3RyaW5nLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVy
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKCFjdHgpIHsKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xNTEsOCArMTUxLDggQEAgSlNPYmplY3RSZWYgSlNPYmpl
Y3RNYWtlRnVuY3Rpb24oSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgbmFtZSwgdW5zaWdu
ZWQgcGEKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgYXV0byBzb3VyY2VV
UkxTdHJpbmcgPSBzb3VyY2VVUkwgPyBzb3VyY2VVUkwtPnN0cmluZygpIDogU3RyaW5nKCk7Ci0g
ICAgSlNPYmplY3QqIHJlc3VsdCA9IGNvbnN0cnVjdEZ1bmN0aW9uKGdsb2JhbE9iamVjdCwgYXJn
cywgbmFtZUlELCBTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkxTdHJpbmcgfSwgc291cmNlVVJMU3Ry
aW5nLCBUZXh0UG9zaXRpb24oT3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0YXJ0aW5n
TGluZU51bWJlciksIE9yZGluYWxOdW1iZXIoKSkpOworICAgIGF1dG8gc291cmNlVVJMID0gc291
cmNlVVJMU3RyaW5nID8gVVJMKHsgfSwgc291cmNlVVJMU3RyaW5nLT5zdHJpbmcoKSkgOiBVUkwo
KTsKKyAgICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0RnVuY3Rpb24oZ2xvYmFsT2JqZWN0
LCBhcmdzLCBuYW1lSUQsIFNvdXJjZU9yaWdpbiB7IHNvdXJjZVVSTCB9LCBzb3VyY2VVUkwuc3Ry
aW5nKCksIFRleHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRp
bmdMaW5lTnVtYmVyKSwgT3JkaW5hbE51bWJlcigpKSk7CiAgICAgaWYgKGhhbmRsZUV4Y2VwdGlv
bklmTmVlZGVkKHNjb3BlLCBjdHgsIGV4Y2VwdGlvbikgPT0gRXhjZXB0aW9uU3RhdHVzOjpEaWRU
aHJvdykKICAgICAgICAgcmVzdWx0ID0gbnVsbHB0cjsKICAgICByZXR1cm4gdG9SZWYocmVzdWx0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHQubW0gYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0Lm1tCmluZGV4IDAwYzg3NmE0ZTY0NWM0
ZDhhN2Y1YWM4ZThkYzJjN2UxYjVjMjJmMzMuLjllNDE0NTcxMjRiZjE0M2VhNDE3NjE1YzQ5ODJh
NTE5YzFkOTNhN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3Jp
cHQubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdC5tbQpAQCAtMjY3
LDkgKzI2NywxMSBAQCBzdGF0aWMgYm9vbCB2YWxpZGF0ZUJ5dGVjb2RlQ2FjaGVQYXRoKE5TVVJM
KiBjYWNoZVBhdGgsIE5TRXJyb3IqKiBlcnJvcikKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2Nr
ZXIodm0pOwogCiAgICAgVGV4dFBvc2l0aW9uIHN0YXJ0UG9zaXRpb24geyB9OwotICAgIFN0cmlu
ZyB1cmwgPSBTdHJpbmcgeyBbW3NlbGYgc291cmNlVVJMXSBhYnNvbHV0ZVN0cmluZ10gfTsKKyAg
ICBTdHJpbmcgZmlsZW5hbWUgPSBTdHJpbmcgeyBbW3NlbGYgc291cmNlVVJMXSBhYnNvbHV0ZVN0
cmluZ10gfTsKKyAgICBVUkwgdXJsID0gVVJMKHsgfSwgZmlsZW5hbWUpOwogICAgIGF1dG8gdHlw
ZSA9IG1fdHlwZSA9PSBrSlNTY3JpcHRUeXBlTW9kdWxlID8gSlNDOjpTb3VyY2VQcm92aWRlclNv
dXJjZVR5cGU6Ok1vZHVsZSA6IEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFt
OwotICAgIFJlZjxKU1NjcmlwdFNvdXJjZVByb3ZpZGVyPiBzb3VyY2VQcm92aWRlciA9IEpTU2Ny
aXB0U291cmNlUHJvdmlkZXI6OmNyZWF0ZShzZWxmLCBKU0M6OlNvdXJjZU9yaWdpbih1cmwpLCBV
UkwoeyB9LCB1cmwpLCBzdGFydFBvc2l0aW9uLCB0eXBlKTsKKyAgICBKU0M6OlNvdXJjZU9yaWdp
biBvcmlnaW4odXJsKTsKKyAgICBSZWY8SlNTY3JpcHRTb3VyY2VQcm92aWRlcj4gc291cmNlUHJv
dmlkZXIgPSBKU1NjcmlwdFNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc2VsZiwgb3JpZ2luLCBXVEZN
b3ZlKGZpbGVuYW1lKSwgc3RhcnRQb3NpdGlvbiwgdHlwZSk7CiAgICAgSlNDOjpTb3VyY2VDb2Rl
IHNvdXJjZUNvZGUoV1RGTW92ZShzb3VyY2VQcm92aWRlciksIHN0YXJ0UG9zaXRpb24ubV9saW5l
Lm9uZUJhc2VkSW50KCksIHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSk7CiAg
ICAgcmV0dXJuIHNvdXJjZUNvZGU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTU2NyaXB0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3Jp
cHRSZWYuY3BwCmluZGV4IDg0MTU5YWM1MjU3M2M3ODc0ZTNiNTJiMmE0MmUwZmVjNjNjZTdiYWEu
Ljc2MmNlYzA1ZTkyNDZjMGNiMWZhYzEyZGRhZjcyYzFhYzYxMDUwMjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwCkBAIC0zOSw5ICszOSw5IEBAIHVzaW5nIG5h
bWVzcGFjZSBKU0M7CiAKIHN0cnVjdCBPcGFxdWVKU1NjcmlwdCBmaW5hbCA6IHB1YmxpYyBTb3Vy
Y2VQcm92aWRlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFdURjo6UmVmPE9wYXF1ZUpTU2NyaXB0
PiBjcmVhdGUoVk0mIHZtLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYg
dXJsLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZSkKKyAgICBz
dGF0aWMgV1RGOjpSZWY8T3BhcXVlSlNTY3JpcHQ+IGNyZWF0ZShWTSYgdm0sIGNvbnN0IFNvdXJj
ZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJpbmcgZmlsZW5hbWUsIGludCBzdGFydGluZ0xpbmVO
dW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFdURjo6
YWRvcHRSZWYoKm5ldyBPcGFxdWVKU1NjcmlwdCh2bSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKHVy
bCksIHN0YXJ0aW5nTGluZU51bWJlciwgc291cmNlKSk7CisgICAgICAgIHJldHVybiBXVEY6OmFk
b3B0UmVmKCpuZXcgT3BhcXVlSlNTY3JpcHQodm0sIHNvdXJjZU9yaWdpbiwgV1RGTW92ZShmaWxl
bmFtZSksIHN0YXJ0aW5nTGluZU51bWJlciwgc291cmNlKSk7CiAgICAgfQogCiAgICAgdW5zaWdu
ZWQgaGFzaCgpIGNvbnN0IGZpbmFsCkBAIC01Nyw4ICs1Nyw4IEBAIHB1YmxpYzoKICAgICBWTSYg
dm0oKSBjb25zdCB7IHJldHVybiBtX3ZtOyB9CiAKIHByaXZhdGU6Ci0gICAgT3BhcXVlSlNTY3Jp
cHQoVk0mIHZtLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsLCBp
bnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZSkKLSAgICAgICAgOiBT
b3VyY2VQcm92aWRlcihzb3VyY2VPcmlnaW4sIFdURk1vdmUodXJsKSwgVGV4dFBvc2l0aW9uKE9y
ZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChzdGFydGluZ0xpbmVOdW1iZXIpLCBPcmRpbmFs
TnVtYmVyKCkpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pCisgICAgT3BhcXVl
SlNTY3JpcHQoVk0mIHZtLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5n
JiYgZmlsZW5hbWUsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNl
KQorICAgICAgICA6IFNvdXJjZVByb3ZpZGVyKHNvdXJjZU9yaWdpbiwgV1RGTW92ZShmaWxlbmFt
ZSksIFRleHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRpbmdM
aW5lTnVtYmVyKSwgT3JkaW5hbE51bWJlcigpKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQ
cm9ncmFtKQogICAgICAgICAsIG1fdm0odm0pCiAgICAgICAgICwgbV9zb3VyY2Uoc291cmNlLmlz
TnVsbCgpID8gKlN0cmluZ0ltcGw6OmVtcHR5KCkgOiAqc291cmNlLmltcGwoKSkKICAgICB7CkBA
IC04MCw3ICs4MCw3IEBAIHN0YXRpYyBib29sIHBhcnNlU2NyaXB0KFZNJiB2bSwgY29uc3QgU291
cmNlQ29kZSYgc291cmNlLCBQYXJzZXJFcnJvciYgZXJyb3IpCiAKIGV4dGVybiAiQyIgewogCi1K
U1NjcmlwdFJlZiBKU1NjcmlwdENyZWF0ZVJlZmVyZW5jaW5nSW1tb3J0YWxBU0NJSVRleHQoSlND
b250ZXh0R3JvdXBSZWYgY29udGV4dEdyb3VwLCBKU1N0cmluZ1JlZiB1cmwsIGludCBzdGFydGlu
Z0xpbmVOdW1iZXIsIGNvbnN0IGNoYXIqIHNvdXJjZSwgc2l6ZV90IGxlbmd0aCwgSlNTdHJpbmdS
ZWYqIGVycm9yTWVzc2FnZSwgaW50KiBlcnJvckxpbmUpCitKU1NjcmlwdFJlZiBKU1NjcmlwdENy
ZWF0ZVJlZmVyZW5jaW5nSW1tb3J0YWxBU0NJSVRleHQoSlNDb250ZXh0R3JvdXBSZWYgY29udGV4
dEdyb3VwLCBKU1N0cmluZ1JlZiB1cmxTdHJpbmcsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIGNv
bnN0IGNoYXIqIHNvdXJjZSwgc2l6ZV90IGxlbmd0aCwgSlNTdHJpbmdSZWYqIGVycm9yTWVzc2Fn
ZSwgaW50KiBlcnJvckxpbmUpCiB7CiAgICAgYXV0byYgdm0gPSAqdG9KUyhjb250ZXh0R3JvdXAp
OwogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIoJnZtKTsKQEAgLTkxLDggKzkxLDggQEAgSlNTY3Jp
cHRSZWYgSlNTY3JpcHRDcmVhdGVSZWZlcmVuY2luZ0ltbW9ydGFsQVNDSUlUZXh0KEpTQ29udGV4
dEdyb3VwUmVmIGNvbnRleHQKIAogICAgIHN0YXJ0aW5nTGluZU51bWJlciA9IHN0ZDo6bWF4KDEs
IHN0YXJ0aW5nTGluZU51bWJlcik7CiAKLSAgICBhdXRvIHNvdXJjZVVSTFN0cmluZyA9IHVybCA/
IHVybC0+c3RyaW5nKCkgOiBTdHJpbmcoKTsKLSAgICBhdXRvIHJlc3VsdCA9IE9wYXF1ZUpTU2Ny
aXB0OjpjcmVhdGUodm0sIFNvdXJjZU9yaWdpbiB7IHNvdXJjZVVSTFN0cmluZyB9LCBVUkwoeyB9
LCBzb3VyY2VVUkxTdHJpbmcpLCBzdGFydGluZ0xpbmVOdW1iZXIsIFN0cmluZyhTdHJpbmdJbXBs
OjpjcmVhdGVGcm9tTGl0ZXJhbChzb3VyY2UsIGxlbmd0aCkpKTsKKyAgICBhdXRvIHNvdXJjZVVS
TCA9IHVybFN0cmluZyA/IFVSTCh7IH0sIHVybFN0cmluZy0+c3RyaW5nKCkpIDogVVJMKCk7Cisg
ICAgYXV0byByZXN1bHQgPSBPcGFxdWVKU1NjcmlwdDo6Y3JlYXRlKHZtLCBTb3VyY2VPcmlnaW4g
eyBzb3VyY2VVUkwgfSwgc291cmNlVVJMLnN0cmluZygpLCBzdGFydGluZ0xpbmVOdW1iZXIsIFN0
cmluZyhTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbChzb3VyY2UsIGxlbmd0aCkpKTsKIAog
ICAgIFBhcnNlckVycm9yIGVycm9yOwogICAgIGlmICghcGFyc2VTY3JpcHQodm0sIFNvdXJjZUNv
ZGUocmVzdWx0LmNvcHlSZWYoKSksIGVycm9yKSkgewpAQCAtMTA2LDE1ICsxMDYsMTUgQEAgSlNT
Y3JpcHRSZWYgSlNTY3JpcHRDcmVhdGVSZWZlcmVuY2luZ0ltbW9ydGFsQVNDSUlUZXh0KEpTQ29u
dGV4dEdyb3VwUmVmIGNvbnRleHQKICAgICByZXR1cm4gJnJlc3VsdC5sZWFrUmVmKCk7CiB9CiAK
LUpTU2NyaXB0UmVmIEpTU2NyaXB0Q3JlYXRlRnJvbVN0cmluZyhKU0NvbnRleHRHcm91cFJlZiBj
b250ZXh0R3JvdXAsIEpTU3RyaW5nUmVmIHVybCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgSlNT
dHJpbmdSZWYgc291cmNlLCBKU1N0cmluZ1JlZiogZXJyb3JNZXNzYWdlLCBpbnQqIGVycm9yTGlu
ZSkKK0pTU2NyaXB0UmVmIEpTU2NyaXB0Q3JlYXRlRnJvbVN0cmluZyhKU0NvbnRleHRHcm91cFJl
ZiBjb250ZXh0R3JvdXAsIEpTU3RyaW5nUmVmIHVybFN0cmluZywgaW50IHN0YXJ0aW5nTGluZU51
bWJlciwgSlNTdHJpbmdSZWYgc291cmNlLCBKU1N0cmluZ1JlZiogZXJyb3JNZXNzYWdlLCBpbnQq
IGVycm9yTGluZSkKIHsKICAgICBhdXRvJiB2bSA9ICp0b0pTKGNvbnRleHRHcm91cCk7CiAgICAg
SlNMb2NrSG9sZGVyIGxvY2tlcigmdm0pOwogCiAgICAgc3RhcnRpbmdMaW5lTnVtYmVyID0gc3Rk
OjptYXgoMSwgc3RhcnRpbmdMaW5lTnVtYmVyKTsKIAotICAgIGF1dG8gc291cmNlVVJMU3RyaW5n
ID0gdXJsID8gdXJsLT5zdHJpbmcoKSA6IFN0cmluZygpOwotICAgIGF1dG8gcmVzdWx0ID0gT3Bh
cXVlSlNTY3JpcHQ6OmNyZWF0ZSh2bSwgU291cmNlT3JpZ2luIHsgc291cmNlVVJMU3RyaW5nIH0s
IFVSTCh7IH0sIHNvdXJjZVVSTFN0cmluZyksIHN0YXJ0aW5nTGluZU51bWJlciwgc291cmNlLT5z
dHJpbmcoKSk7CisgICAgYXV0byBzb3VyY2VVUkwgPSB1cmxTdHJpbmcgPyBVUkwoeyB9LCB1cmxT
dHJpbmctPnN0cmluZygpKSA6IFVSTCgpOworICAgIGF1dG8gcmVzdWx0ID0gT3BhcXVlSlNTY3Jp
cHQ6OmNyZWF0ZSh2bSwgU291cmNlT3JpZ2luIHsgc291cmNlVVJMIH0sIHNvdXJjZVVSTC5zdHJp
bmcoKSwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2UtPnN0cmluZygpKTsKIAogICAgIFBhcnNl
ckVycm9yIGVycm9yOwogICAgIGlmICghcGFyc2VTY3JpcHQodm0sIFNvdXJjZUNvZGUocmVzdWx0
LmNvcHlSZWYoKSksIGVycm9yKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcAppbmRleCBhYmFhZWYwODFmZTI0YjI5MWRi
ZjM4NzVmZWI2N2MzOTc4YWJkNDJjLi44MzA0OTQ0YmFjNDM4YmM5NzkzNGE0YTAyZDAyMTU5NTVi
NGNhY2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRp
bkV4ZWN1dGFibGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVp
bHRpbkV4ZWN1dGFibGVzLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
QnVpbHRpbkV4ZWN1dGFibGVzOjpCdWlsdGluRXhlY3V0YWJsZXMoVk0mIHZtKQogICAgIDogbV92
bSh2bSkKLSAgICAsIG1fY29tYmluZWRTb3VyY2VQcm92aWRlcihTdHJpbmdTb3VyY2VQcm92aWRl
cjo6Y3JlYXRlKFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKHNfSlNDQ29tYmluZWRDb2Rl
LCBzX0pTQ0NvbWJpbmVkQ29kZUxlbmd0aCksIHsgfSwgVVJMKCkpKQorICAgICwgbV9jb21iaW5l
ZFNvdXJjZVByb3ZpZGVyKFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoU3RyaW5nSW1wbDo6
Y3JlYXRlRnJvbUxpdGVyYWwoc19KU0NDb21iaW5lZENvZGUsIHNfSlNDQ29tYmluZWRDb2RlTGVu
Z3RoKSwgeyB9LCBTdHJpbmcoKSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmNwcAppbmRleCA5MmFjYTYyOTY1YThmMjdh
YzQ3ZjQzY2EyNGEzNzBlNTRjMDNiZjJhLi4wZTE5OTk4ZjFlMzJhZTk2MmIyM2NlMzY3ZGMwOTc3
ZjM3MzU0MTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXJMb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0Rl
YnVnZ2VyTG9jYXRpb24uY3BwCkBAIC0zOSw5ICszOSw2IEBAIERlYnVnZ2VyTG9jYXRpb246OkRl
YnVnZ2VyTG9jYXRpb24oU2NyaXB0RXhlY3V0YWJsZSogZXhlY3V0YWJsZSkKICAgICBzb3VyY2VJ
RCA9IGV4ZWN1dGFibGUtPnNvdXJjZUlEKCk7CiAgICAgbGluZSA9IGV4ZWN1dGFibGUtPmZpcnN0
TGluZSgpOwogICAgIGNvbHVtbiA9IGV4ZWN1dGFibGUtPnN0YXJ0Q29sdW1uKCk7Ci0gICAgdXJs
ID0gZXhlY3V0YWJsZS0+c291cmNlVVJMKCk7Ci0gICAgaWYgKHVybC5pc0VtcHR5KCkpCi0gICAg
ICAgIHVybCA9IGV4ZWN1dGFibGUtPnNvdXJjZSgpLnByb3ZpZGVyKCktPnNvdXJjZVVSTERpcmVj
dGl2ZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXJMb2NhdGlvbi5oCmluZGV4IDNlMWM0MTY2YjBhN2U5MDQx
MDY3N2Q2YjgyNmYxZDYyMWYyOTRlNTUuLmU5NDg3NzE2OGM0MDA0ZWI5Y2FkMzhlNzViOWUzOGZj
MjAwNjIzMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1
Z2dlckxvY2F0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyTG9jYXRpb24uaApAQCAtMzUsMTYgKzM1LDE0IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGFibGU7
CiBzdHJ1Y3QgRGVidWdnZXJMb2NhdGlvbiB7CiAKICAgICBEZWJ1Z2dlckxvY2F0aW9uKCkgeyB9
Ci0gICAgRGVidWdnZXJMb2NhdGlvbihjb25zdCBTdHJpbmcmIHVybCwgaW50cHRyX3Qgc291cmNl
SUQsIHVuc2lnbmVkIGxpbmUsIHVuc2lnbmVkIGNvbHVtbikKLSAgICAgICAgOiB1cmwodXJsKQot
ICAgICAgICAsIHNvdXJjZUlEKHNvdXJjZUlEKQorICAgIERlYnVnZ2VyTG9jYXRpb24oaW50cHRy
X3Qgc291cmNlSUQsIHVuc2lnbmVkIGxpbmUsIHVuc2lnbmVkIGNvbHVtbikKKyAgICAgICAgOiBz
b3VyY2VJRChzb3VyY2VJRCkKICAgICAgICAgLCBsaW5lKGxpbmUpCiAgICAgICAgICwgY29sdW1u
KGNvbHVtbikKICAgICB7IH0KIAogICAgIERlYnVnZ2VyTG9jYXRpb24oU2NyaXB0RXhlY3V0YWJs
ZSopOwogCi0gICAgU3RyaW5nIHVybDsKICAgICBpbnRwdHJfdCBzb3VyY2VJRCB7IG5vU291cmNl
SUQgfTsKICAgICB1bnNpZ25lZCBsaW5lIHsgMCB9OwogICAgIHVuc2lnbmVkIGNvbHVtbiB7IDAg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0RGVi
dWdTZXJ2ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1
Z1NlcnZlci5jcHAKaW5kZXggZmJiMDRhNDhjY2QxNzc4OTQwZDA2NDcwNmU1Mjg0MDQ4MjJmYzk2
MC4uOGRlZDEyOTVmOTQzNjg3OGM3M2U5Y2VkYjY2MTMxMjNlNDIyMWRkZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAK
QEAgLTEzOSwxMSArMTM5LDExIEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnNvdXJjZVBhcnNl
ZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTb3VyY2VQcm92aWRlCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGlmIChlcnJvckxpbmUgIT0gLTEpIHsKLSAgICAgICAgYXV0byB1cmwgPSBz
b3VyY2VQcm92aWRlci0+dXJsKCk7CisgICAgICAgIGF1dG8gc291cmNlVVJMID0gc291cmNlUHJv
dmlkZXItPnNvdXJjZVVSTCgpOwogICAgICAgICBhdXRvIGRhdGEgPSBzb3VyY2VQcm92aWRlci0+
c291cmNlKCkudG9TdHJpbmcoKTsKICAgICAgICAgYXV0byBmaXJzdExpbmUgPSBzb3VyY2VQcm92
aWRlci0+c3RhcnRQb3NpdGlvbigpLm1fbGluZS5vbmVCYXNlZEludCgpOwogICAgICAgICBkaXNw
YXRjaEZ1bmN0aW9uVG9MaXN0ZW5lcnMoWyZdIChTY3JpcHREZWJ1Z0xpc3RlbmVyJiBsaXN0ZW5l
cikgewotICAgICAgICAgICAgbGlzdGVuZXIuZmFpbGVkVG9QYXJzZVNvdXJjZSh1cmwuc3RyaW5n
KCksIGRhdGEsIGZpcnN0TGluZSwgZXJyb3JMaW5lLCBlcnJvck1lc3NhZ2UpOworICAgICAgICAg
ICAgbGlzdGVuZXIuZmFpbGVkVG9QYXJzZVNvdXJjZShzb3VyY2VVUkwsIGRhdGEsIGZpcnN0TGlu
ZSwgZXJyb3JMaW5lLCBlcnJvck1lc3NhZ2UpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpzb3Vy
Y2VQYXJzZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU291cmNlUHJvdmlkZQogICAg
IC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTYyNzczPiBXZWIgSW5zcGVjdG9yOiBT
aW1wbGlmeSBTY3JpcHREZWJ1Z0xpc3RlbmVyOjpTY3JpcHQgdG8gdXNlIFNvdXJjZVByb3ZpZGVy
CiAgICAgU2NyaXB0RGVidWdMaXN0ZW5lcjo6U2NyaXB0IHNjcmlwdDsKICAgICBzY3JpcHQuc291
cmNlUHJvdmlkZXIgPSBzb3VyY2VQcm92aWRlcjsKLSAgICBzY3JpcHQudXJsID0gc291cmNlUHJv
dmlkZXItPnVybCgpLnN0cmluZygpOworICAgIHNjcmlwdC51cmwgPSBzb3VyY2VQcm92aWRlci0+
c291cmNlVVJMKCk7CiAgICAgc2NyaXB0LnNvdXJjZSA9IHNvdXJjZVByb3ZpZGVyLT5zb3VyY2Uo
KS50b1N0cmluZygpOwogICAgIHNjcmlwdC5zdGFydExpbmUgPSBzb3VyY2VQcm92aWRlci0+c3Rh
cnRQb3NpdGlvbigpLm1fbGluZS56ZXJvQmFzZWRJbnQoKTsKICAgICBzY3JpcHQuc3RhcnRDb2x1
bW4gPSBzb3VyY2VQcm92aWRlci0+c3RhcnRQb3NpdGlvbigpLm1fY29sdW1uLnplcm9CYXNlZElu
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCAwZjdjYjNiMmZjOTE4NjdmZjIxMTBhYzdhODc3
ODJjNWI0MDBmNTM4Li5mN2JhNTc3YTQ4NWQxMzE1ODczMDdkMjIxNTU0NzRjZDgzMmIyYjY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcApAQCAtNjc5LDUxICs2NzksNyBAQCBzdGF0aWMgVUNoYXIgcGF0
aFNlcGFyYXRvcigpCiAjZW5kaWYKIH0KIAotc3RydWN0IERpcmVjdG9yeU5hbWUgewotICAgIC8v
IEluIHVuaXgsIGl0IGlzICIvIi4gSW4gV2luZG93cywgaXQgYmVjb21lcyBhIGRyaXZlIGxldHRl
ciBsaWtlICJDOlwiCi0gICAgU3RyaW5nIHJvb3ROYW1lOwotCi0gICAgLy8gSWYgdGhlIGRpcmVj
dG9yeSBuYW1lIGlzICIvaG9tZS9XZWJLaXQiLCB0aGlzIGJlY29tZXMgImhvbWUvV2ViS2l0Ii4g
SWYgdGhlIGRpcmVjdG9yeSBuYW1lIGlzICIvIiwgdGhpcyBiZWNvbWVzICIiLgotICAgIFN0cmlu
ZyBxdWVyeU5hbWU7Ci19OwotCi1zdHJ1Y3QgTW9kdWxlTmFtZSB7Ci0gICAgTW9kdWxlTmFtZShj
b25zdCBTdHJpbmcmIG1vZHVsZU5hbWUpOwotCi0gICAgYm9vbCBzdGFydHNXaXRoUm9vdCgpIGNv
bnN0Ci0gICAgewotICAgICAgICByZXR1cm4gIXF1ZXJpZXMuaXNFbXB0eSgpICYmIHF1ZXJpZXNb
MF0uaXNFbXB0eSgpOwotICAgIH0KLQotICAgIFZlY3RvcjxTdHJpbmc+IHF1ZXJpZXM7Ci19Owot
Ci1Nb2R1bGVOYW1lOjpNb2R1bGVOYW1lKGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKLXsKLSAg
ICAvLyBBIG1vZHVsZSBuYW1lIGdpdmVuIGZyb20gY29kZSBpcyByZXByZXNlbnRlZCBhcyB0aGUg
VU5JWCBzdHlsZSBwYXRoLiBMaWtlLCBgLi9BL0IuanNgLgotICAgIHF1ZXJpZXMgPSBtb2R1bGVO
YW1lLnNwbGl0QWxsb3dpbmdFbXB0eUVudHJpZXMoJy8nKTsKLX0KLQotc3RhdGljIE9wdGlvbmFs
PERpcmVjdG9yeU5hbWU+IGV4dHJhY3REaXJlY3RvcnlOYW1lKGNvbnN0IFN0cmluZyYgYWJzb2x1
dGVQYXRoVG9GaWxlKQotewotICAgIHNpemVfdCBmaXJzdFNlcGFyYXRvclBvc2l0aW9uID0gYWJz
b2x1dGVQYXRoVG9GaWxlLmZpbmQocGF0aFNlcGFyYXRvcigpKTsKLSAgICBpZiAoZmlyc3RTZXBh
cmF0b3JQb3NpdGlvbiA9PSBub3RGb3VuZCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
LSAgICBEaXJlY3RvcnlOYW1lIGRpcmVjdG9yeU5hbWU7Ci0gICAgZGlyZWN0b3J5TmFtZS5yb290
TmFtZSA9IGFic29sdXRlUGF0aFRvRmlsZS5zdWJzdHJpbmcoMCwgZmlyc3RTZXBhcmF0b3JQb3Np
dGlvbiArIDEpOyAvLyBJbmNsdWRlIHRoZSBzZXBhcmF0b3IuCi0gICAgc2l6ZV90IGxhc3RTZXBh
cmF0b3JQb3NpdGlvbiA9IGFic29sdXRlUGF0aFRvRmlsZS5yZXZlcnNlRmluZChwYXRoU2VwYXJh
dG9yKCkpOwotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobGFzdFNlcGFyYXRvclBvc2l0aW9uICE9
IG5vdEZvdW5kLCAiSWYgdGhlIHNlcGFyYXRvciBpcyBub3QgZm91bmQsIHRoaXMgZnVuY3Rpb24g
YWxyZWFkeSByZXR1cm5zIHdoZW4gcGVyZm9ybWluZyB0aGUgZm9yd2FyZCBzZWFyY2guIik7Ci0g
ICAgaWYgKGZpcnN0U2VwYXJhdG9yUG9zaXRpb24gPT0gbGFzdFNlcGFyYXRvclBvc2l0aW9uKQot
ICAgICAgICBkaXJlY3RvcnlOYW1lLnF1ZXJ5TmFtZSA9IFN0cmluZ0ltcGw6OmVtcHR5KCk7Ci0g
ICAgZWxzZSB7Ci0gICAgICAgIHNpemVfdCBxdWVyeVN0YXJ0UG9zaXRpb24gPSBmaXJzdFNlcGFy
YXRvclBvc2l0aW9uICsgMTsKLSAgICAgICAgc2l6ZV90IHF1ZXJ5TGVuZ3RoID0gbGFzdFNlcGFy
YXRvclBvc2l0aW9uIC0gcXVlcnlTdGFydFBvc2l0aW9uOyAvLyBOb3QgaW5jbHVkZSB0aGUgbGFz
dCBzZXBhcmF0b3IuCi0gICAgICAgIGRpcmVjdG9yeU5hbWUucXVlcnlOYW1lID0gYWJzb2x1dGVQ
YXRoVG9GaWxlLnN1YnN0cmluZyhxdWVyeVN0YXJ0UG9zaXRpb24sIHF1ZXJ5TGVuZ3RoKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIGRpcmVjdG9yeU5hbWU7Ci19Ci0KLXN0YXRpYyBPcHRpb25hbDxEaXJl
Y3RvcnlOYW1lPiBjdXJyZW50V29ya2luZ0RpcmVjdG9yeSgpCitzdGF0aWMgVVJMIGN1cnJlbnRX
b3JraW5nRGlyZWN0b3J5KCkKIHsKICNpZiBPUyhXSU5ET1dTKQogICAgIC8vIGh0dHBzOi8vbXNk
bi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvd2luZG93cy9kZXNrdG9wL2FhMzY0OTM0LmFz
cHgKQEAgLTczNyw3ICs2OTMsNyBAQCBzdGF0aWMgT3B0aW9uYWw8RGlyZWN0b3J5TmFtZT4gY3Vy
cmVudFdvcmtpbmdEaXJlY3RvcnkoKQogICAgIC8vIEluIHRoZSBwYXRoIHV0aWxpdHkgZnVuY3Rp
b25zIGluc2lkZSB0aGUgSlNDIHNoZWxsLCB3ZSBkb2VzIG5vdCBoYW5kbGUgdGhlIFVOQyBhbmQg
VU5DVyBpbmNsdWRpbmcgdGhlIG5ldHdvcmsgaG9zdCBuYW1lLgogICAgIERXT1JEIGJ1ZmZlckxl
bmd0aCA9IDo6R2V0Q3VycmVudERpcmVjdG9yeVcoMCwgbnVsbHB0cik7CiAgICAgaWYgKCFidWZm
ZXJMZW5ndGgpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7
IH07CiAgICAgLy8gSW4gV2luZG93cywgd2NoYXJfdCBpcyB0aGUgVVRGLTE2TEUuCiAgICAgLy8g
aHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9kZDM3NDA4MS5hc3B4CiAg
ICAgLy8gaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS93aW5kb3dzL2Rl
c2t0b3AvZmYzODE0MDcuYXNweApAQCAtNzQ2LDU0ICs3MDIsMzEgQEAgc3RhdGljIE9wdGlvbmFs
PERpcmVjdG9yeU5hbWU+IGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KCkKICAgICBTdHJpbmcgZGly
ZWN0b3J5U3RyaW5nKGJ1ZmZlci5kYXRhKCksIGxlbmd0aE5vdEluY2x1ZGluZ051bGwpOwogICAg
IC8vIFdlIGRvbid0IHN1cHBvcnQgbmV0d29yayBwYXRoIGxpa2UgXFxob3N0XHNoYXJlXDxwYXRo
IG5hbWU+LgogICAgIGlmIChkaXJlY3RvcnlTdHJpbmcuc3RhcnRzV2l0aCgiXFxcXCIpKQotICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICByZXR1cm4geyB9OworCiAjZWxzZQog
ICAgIFZlY3RvcjxjaGFyPiBidWZmZXIoUEFUSF9NQVgpOwogICAgIGlmICghZ2V0Y3dkKGJ1ZmZl
ci5kYXRhKCksIFBBVEhfTUFYKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAg
ICAgcmV0dXJuIHsgfTsKICAgICBTdHJpbmcgZGlyZWN0b3J5U3RyaW5nID0gU3RyaW5nOjpmcm9t
VVRGOChidWZmZXIuZGF0YSgpKTsKICNlbmRpZgogICAgIGlmIChkaXJlY3RvcnlTdHJpbmcuaXNF
bXB0eSgpKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgaWYgKGRpcmVjdG9y
eVN0cmluZ1tkaXJlY3RvcnlTdHJpbmcubGVuZ3RoKCkgLSAxXSA9PSBwYXRoU2VwYXJhdG9yKCkp
Ci0gICAgICAgIHJldHVybiBleHRyYWN0RGlyZWN0b3J5TmFtZShkaXJlY3RvcnlTdHJpbmcpOwot
ICAgIC8vIEFwcGVuZCB0aGUgc2VwZXJhdG9yIHRvIHJlcHJlc2VudHMgdGhlIGZpbGUgbmFtZS4g
ZXh0cmFjdERpcmVjdG9yeU5hbWUgb25seSBhY2NlcHRzIHRoZSBhYnNvbHV0ZSBmaWxlIG5hbWUu
Ci0gICAgcmV0dXJuIGV4dHJhY3REaXJlY3RvcnlOYW1lKG1ha2VTdHJpbmcoZGlyZWN0b3J5U3Ry
aW5nLCBwYXRoU2VwYXJhdG9yKCkpKTsKLX0KLQotc3RhdGljIFN0cmluZyByZXNvbHZlUGF0aChj
b25zdCBEaXJlY3RvcnlOYW1lJiBkaXJlY3RvcnlOYW1lLCBjb25zdCBNb2R1bGVOYW1lJiBtb2R1
bGVOYW1lKQotewotICAgIFZlY3RvcjxTdHJpbmc+IGRpcmVjdG9yeVBpZWNlcyA9IGRpcmVjdG9y
eU5hbWUucXVlcnlOYW1lLnNwbGl0KHBhdGhTZXBhcmF0b3IoKSk7Ci0KLSAgICAvLyBPbmx5IGZp
cnN0ICcvJyBpcyByZWNvZ25pemVkIGFzIHRoZSBwYXRoIGZyb20gdGhlIHJvb3QuCi0gICAgaWYg
KG1vZHVsZU5hbWUuc3RhcnRzV2l0aFJvb3QoKSkKLSAgICAgICAgZGlyZWN0b3J5UGllY2VzLmNs
ZWFyKCk7CisgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBmb3IgKGNvbnN0IGF1dG8mIHF1ZXJ5
IDogbW9kdWxlTmFtZS5xdWVyaWVzKSB7Ci0gICAgICAgIGlmIChxdWVyeSA9PSBTdHJpbmcoIi4u
Il9zKSkgewotICAgICAgICAgICAgaWYgKCFkaXJlY3RvcnlQaWVjZXMuaXNFbXB0eSgpKQotICAg
ICAgICAgICAgICAgIGRpcmVjdG9yeVBpZWNlcy5yZW1vdmVMYXN0KCk7Ci0gICAgICAgIH0gZWxz
ZSBpZiAoIXF1ZXJ5LmlzRW1wdHkoKSAmJiBxdWVyeSAhPSBTdHJpbmcoIi4iX3MpKQotICAgICAg
ICAgICAgZGlyZWN0b3J5UGllY2VzLmFwcGVuZChxdWVyeSk7Ci0gICAgfQorICAgIC8vIEFkZCBh
IHRyYWlsaW5nIHNsYXNoIGlmIG5lZWRlZCBzbyB0aGUgVVJMIHJlc29sdmVzIHRvIGEgZGlyZWN0
b3J5IGFuZCBub3QgYSBmaWxlLgorICAgIGlmIChkaXJlY3RvcnlTdHJpbmdbZGlyZWN0b3J5U3Ry
aW5nLmxlbmd0aCgpIC0gMV0gIT0gcGF0aFNlcGFyYXRvcigpKQorICAgICAgICBkaXJlY3RvcnlT
dHJpbmcgPSBtYWtlU3RyaW5nKGRpcmVjdG9yeVN0cmluZywgcGF0aFNlcGFyYXRvcigpKTsKIAot
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZChkaXJlY3RvcnlO
YW1lLnJvb3ROYW1lKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRpcmVjdG9yeVBpZWNl
cy5zaXplKCk7ICsraSkgewotICAgICAgICBidWlsZGVyLmFwcGVuZChkaXJlY3RvcnlQaWVjZXNb
aV0pOwotICAgICAgICBpZiAoaSArIDEgIT0gZGlyZWN0b3J5UGllY2VzLnNpemUoKSkKLSAgICAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKHBhdGhTZXBhcmF0b3IoKSk7Ci0gICAgfQotICAgIHJldHVy
biBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgcmV0dXJuIFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lz
dGVtUGF0aChkaXJlY3RvcnlTdHJpbmcpOwogfQogCi1zdGF0aWMgU3RyaW5nIGFic29sdXRlUGF0
aChjb25zdCBTdHJpbmcmIGZpbGVOYW1lKQorc3RhdGljIFVSTCBhYnNvbHV0ZVBhdGgoY29uc3Qg
U3RyaW5nJiBmaWxlTmFtZSkKIHsKICAgICBhdXRvIGRpcmVjdG9yeU5hbWUgPSBjdXJyZW50V29y
a2luZ0RpcmVjdG9yeSgpOwotICAgIGlmICghZGlyZWN0b3J5TmFtZSkKLSAgICAgICAgcmV0dXJu
IGZpbGVOYW1lOwotICAgIHJldHVybiByZXNvbHZlUGF0aChkaXJlY3RvcnlOYW1lLnZhbHVlKCks
IE1vZHVsZU5hbWUoZmlsZU5hbWUuaW1wbCgpKSk7CisgICAgaWYgKCFkaXJlY3RvcnlOYW1lLmlz
VmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChm
aWxlTmFtZSk7CisKKyAgICByZXR1cm4gVVJMKGRpcmVjdG9yeU5hbWUsIGZpbGVOYW1lKTsKIH0K
IAogSlNJbnRlcm5hbFByb21pc2UqIEdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVySW1wb3J0TW9k
dWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTTW9kdWxlTG9hZGVyKiwgSlNTdHJp
bmcqIG1vZHVsZU5hbWVWYWx1ZSwgSlNWYWx1ZSBwYXJhbWV0ZXJzLCBjb25zdCBTb3VyY2VPcmln
aW4mIHNvdXJjZU9yaWdpbikKQEAgLTgxMSwyMCArNzQ0LDI4IEBAIEpTSW50ZXJuYWxQcm9taXNl
KiBHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsCiAgICAgICAgIHJldHVybiBwcm9taXNlOwogICAgIH07CiAKLSAgICBpZiAoc291cmNl
T3JpZ2luLmlzTnVsbCgpKQorICAgIGlmICghc291cmNlT3JpZ2luLnVybCgpKQogICAgICAgICBy
ZXR1cm4gcmVqZWN0KGNyZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgIkNvdWxkIG5vdCByZXNvbHZl
IHRoZSBtb2R1bGUgc3BlY2lmaWVyLiJfcykpOwogCi0gICAgYXV0byByZWZlcnJlciA9IHNvdXJj
ZU9yaWdpbi5zdHJpbmcoKTsKLSAgICBhdXRvIG1vZHVsZU5hbWUgPSBtb2R1bGVOYW1lVmFsdWUt
PnZhbHVlKGdsb2JhbE9iamVjdCk7CisgICAgYXV0byByZWZlcnJlciA9IHNvdXJjZU9yaWdpbi51
cmwoKTsKKyAgICBhdXRvIHNwZWNpZmllciA9IG1vZHVsZU5hbWVWYWx1ZS0+dmFsdWUoZ2xvYmFs
T2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIpOwog
ICAgIGlmIChVTkxJS0VMWShjYXRjaFNjb3BlLmV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJu
IHJlamVjdChjYXRjaFNjb3BlLmV4Y2VwdGlvbigpLT52YWx1ZSgpKTsKIAotICAgIGF1dG8gZGly
ZWN0b3J5TmFtZSA9IGV4dHJhY3REaXJlY3RvcnlOYW1lKHJlZmVycmVyLmltcGwoKSk7Ci0gICAg
aWYgKCFkaXJlY3RvcnlOYW1lKQotICAgICAgICByZXR1cm4gcmVqZWN0KGNyZWF0ZUVycm9yKGds
b2JhbE9iamVjdCwgbWFrZVN0cmluZygiQ291bGQgbm90IHJlc29sdmUgdGhlIHJlZmVycmVyIG5h
bWUgJyIsIFN0cmluZyhyZWZlcnJlci5pbXBsKCkpLCAiJy4iKSkpOworICAgIGlmICghc3BlY2lm
aWVyLnN0YXJ0c1dpdGgoJy8nKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4vIikgJiYgIXNw
ZWNpZmllci5zdGFydHNXaXRoKCIuLi8iKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsICJNb2R1bGUgc3BlY2lmaWVyIGRvZXMgbm90IHN0YXJ0IHdp
dGggXCIvXCIsIFwiLi9cIiwgb3IgXCIuLi9cIi4iX3MpOworICAgICAgICByZXR1cm4geyB9Owor
ICAgIH0KKworICAgIGlmICghcmVmZXJyZXIuaXNMb2NhbEZpbGUoKSkKKyAgICAgICAgcmV0dXJu
IHJlamVjdChjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsIG1ha2VTdHJpbmcoIkNvdWxkIG5vdCBy
ZXNvbHZlIHRoZSByZWZlcnJlcidzIHBhdGggJyIsIHJlZmVycmVyLnN0cmluZygpLCAiJywgd2hp
bGUgdHJ5aW5nIHRvIHJlc29sdmUgbW9kdWxlICciLCBzcGVjaWZpZXIsICInLiIpKSk7CiAKLSAg
ICBhdXRvIHJlc3VsdCA9IEpTQzo6aW1wb3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgcmVzb2x2ZVBhdGgoZGlyZWN0b3J5TmFtZS52YWx1ZSgpLCBNb2R1
bGVOYW1lKG1vZHVsZU5hbWUpKSksIHBhcmFtZXRlcnMsIGpzVW5kZWZpbmVkKCkpOworICAgIFVS
TCBtb2R1bGVVUkwocmVmZXJyZXIsIHNwZWNpZmllcik7CisgICAgaWYgKCFtb2R1bGVVUkwuaXNM
b2NhbEZpbGUoKSkKKyAgICAgICAgcmV0dXJuIHJlamVjdChjcmVhdGVFcnJvcihnbG9iYWxPYmpl
Y3QsIG1ha2VTdHJpbmcoIk1vZHVsZSB1cmwsICciLCBtb2R1bGVVUkwuc3RyaW5nKCksICInIGRv
ZXMgbm90IG1hcCB0byBhIGxvY2FsIGZpbGUuIikpKTsKKworICAgIGF1dG8gcmVzdWx0ID0gSlND
OjppbXBvcnRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBt
b2R1bGVVUkwuc3RyaW5nKCkpLCBwYXJhbWV0ZXJzLCBqc1VuZGVmaW5lZCgpKTsKICAgICBpZiAo
VU5MSUtFTFkoY2F0Y2hTY29wZS5leGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiByZWplY3Qo
Y2F0Y2hTY29wZS5leGNlcHRpb24oKS0+dmFsdWUoKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAg
LTg0MiwzNCArNzgzLDQxIEBAIElkZW50aWZpZXIgR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJS
ZXNvbHZlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTTW9kCiAgICAgaWYgKGtleS5p
c1N5bWJvbCgpKQogICAgICAgICByZXR1cm4ga2V5OwogCi0gICAgaWYgKHJlZmVycmVyVmFsdWUu
aXNVbmRlZmluZWQoKSkgewotICAgICAgICBhdXRvIGRpcmVjdG9yeU5hbWUgPSBjdXJyZW50V29y
a2luZ0RpcmVjdG9yeSgpOwotICAgICAgICBpZiAoIWRpcmVjdG9yeU5hbWUpIHsKLSAgICAgICAg
ICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVycm9yKGdsb2Jh
bE9iamVjdCwgIkNvdWxkIG5vdCByZXNvbHZlIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5
LiJfcykpOworICAgIFN0cmluZyBzcGVjaWZpZXIgPSBrZXkuaW1wbCgpOworICAgIGlmICghc3Bl
Y2lmaWVyLnN0YXJ0c1dpdGgoJy8nKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4vIikgJiYg
IXNwZWNpZmllci5zdGFydHNXaXRoKCIuLi8iKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlLCAiTW9kdWxlIHNwZWNpZmllciBkb2VzIG5vdCBzdGFydCB3aXRo
IFwiL1wiLCBcIi4vXCIsIG9yIFwiLi4vXCIuIl9zKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAg
ICB9CisKKyAgICBhdXRvIHJlc29sdmVQYXRoID0gWyZdIChjb25zdCBVUkwmIGRpcmVjdG9yeVVS
TCkgLT4gSWRlbnRpZmllciB7CisgICAgICAgIGlmICghZGlyZWN0b3J5VVJMLmlzTG9jYWxGaWxl
KCkpIHsKKyAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNy
ZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgbWFrZVN0cmluZygiQ291bGQgbm90IHJlc29sdmUgdGhl
IHJlZmVycmVyJ3MgcGF0aDogIiwgZGlyZWN0b3J5VVJMLnN0cmluZygpKSkpOwogICAgICAgICAg
ICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgcmVzb2x2ZVBhdGgoZGlyZWN0b3J5TmFtZS52YWx1ZSgpLCBNb2R1bGVOYW1l
KGtleS5pbXBsKCkpKSk7Ci0gICAgfQorCisgICAgICAgIFVSTCByZXNvbHZlZFVSTChkaXJlY3Rv
cnlVUkwsIHNwZWNpZmllcik7CisgICAgICAgIGlmICghcmVzb2x2ZWRVUkwuaXNWYWxpZCgpKSB7
CisgICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVF
cnJvcihnbG9iYWxPYmplY3QsIG1ha2VTdHJpbmcoIlJlc29sdmVkIG1vZHVsZSB1cmwgaXMgbm90
IHZhbGlkOiAiLCByZXNvbHZlZFVSTC5zdHJpbmcoKSkpKTsKKyAgICAgICAgICAgIHJldHVybiB7
IH07CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUKHJlc29sdmVkVVJMLmlzTG9jYWxGaWxlKCkp
OworCisgICAgICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZXNvbHZlZFVS
TC5zdHJpbmcoKSk7CisgICAgfTsKKworICAgIGlmIChyZWZlcnJlclZhbHVlLmlzVW5kZWZpbmVk
KCkpCisgICAgICAgIHJldHVybiByZXNvbHZlUGF0aChjdXJyZW50V29ya2luZ0RpcmVjdG9yeSgp
KTsKIAogICAgIGNvbnN0IElkZW50aWZpZXIgcmVmZXJyZXIgPSByZWZlcnJlclZhbHVlLnRvUHJv
cGVydHlLZXkoZ2xvYmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOwogCi0gICAgaWYgKHJlZmVycmVyLmlzU3ltYm9sKCkpIHsKLSAgICAgICAgYXV0byBkaXJl
Y3RvcnlOYW1lID0gY3VycmVudFdvcmtpbmdEaXJlY3RvcnkoKTsKLSAgICAgICAgaWYgKCFkaXJl
Y3RvcnlOYW1lKSB7Ci0gICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNj
b3BlLCBjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsICJDb3VsZCBub3QgcmVzb2x2ZSB0aGUgY3Vy
cmVudCB3b3JraW5nIGRpcmVjdG9yeS4iX3MpKTsKLSAgICAgICAgICAgIHJldHVybiB7IH07Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlc29s
dmVQYXRoKGRpcmVjdG9yeU5hbWUudmFsdWUoKSwgTW9kdWxlTmFtZShrZXkuaW1wbCgpKSkpOwot
ICAgIH0KKyAgICBpZiAocmVmZXJyZXIuaXNTeW1ib2woKSkKKyAgICAgICAgcmV0dXJuIHJlc29s
dmVQYXRoKGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KCkpOwogCi0gICAgLy8gSWYgdGhlIHJlZmVy
cmVyIGV4aXN0cywgd2UgYXNzdW1lIHRoYXQgdGhlIHJlZmVycmVyIGlzIHRoZSBjb3JyZWN0IGFi
c29sdXRlIHBhdGguCi0gICAgYXV0byBkaXJlY3RvcnlOYW1lID0gZXh0cmFjdERpcmVjdG9yeU5h
bWUocmVmZXJyZXIuaW1wbCgpKTsKLSAgICBpZiAoIWRpcmVjdG9yeU5hbWUpIHsKLSAgICAgICAg
dGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCBtYWtlU3RyaW5nKCJDb3VsZCBub3QgcmVzb2x2ZSB0aGUgcmVmZXJyZXIgbmFtZSAnIiwg
U3RyaW5nKHJlZmVycmVyLmltcGwoKSksICInLiIpKSk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0g
ICAgfQotICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZXNvbHZlUGF0aChk
aXJlY3RvcnlOYW1lLnZhbHVlKCksIE1vZHVsZU5hbWUoa2V5LmltcGwoKSkpKTsKKyAgICAvLyBJ
ZiB0aGUgcmVmZXJyZXIgZXhpc3RzLCB3ZSBhc3N1bWUgdGhhdCB0aGUgcmVmZXJyZXIgaXMgdGhl
IGNvcnJlY3QgZmlsZSB1cmwuCisgICAgVVJMIHVybCA9IFVSTCh7IH0sIHJlZmVycmVyLmltcGwo
KSk7CisgICAgQVNTRVJUKHVybC5pc0xvY2FsRmlsZSgpKTsKKyAgICByZXR1cm4gcmVzb2x2ZVBh
dGgodXJsKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yPgpAQCAtOTU0LDkgKzkwMiw5
IEBAIHN0YXRpYyBib29sIGZldGNoU2NyaXB0RnJvbUxvY2FsRmlsZVN5c3RlbShjb25zdCBTdHJp
bmcmIGZpbGVOYW1lLCBWZWN0b3I8Y2hhcj4mCiAKIGNsYXNzIFNoZWxsU291cmNlUHJvdmlkZXIg
ZmluYWwgOiBwdWJsaWMgU3RyaW5nU291cmNlUHJvdmlkZXIgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8U2hlbGxTb3VyY2VQcm92aWRlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgc291cmNlLCBj
b25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsLCBjb25zdCBUZXh0UG9z
aXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBl
KQorICAgIHN0YXRpYyBSZWY8U2hlbGxTb3VyY2VQcm92aWRlcj4gY3JlYXRlKGNvbnN0IFN0cmlu
ZyYgc291cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nJiYgc291
cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVy
U291cmNlVHlwZSBzb3VyY2VUeXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU2hlbGxTb3VyY2VQcm92aWRlcihzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwp
LCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNoZWxsU291cmNlUHJvdmlkZXIoc291cmNlLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUoc291
cmNlVVJMKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkpOwogICAgIH0KIAogICAgIH5TaGVs
bFNvdXJjZVByb3ZpZGVyKCkgZmluYWwKQEAgLTEwMzcsNyArOTg1LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgaWYgKCFjYWNoZUVuYWJsZWQoKSkKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxjb25zdCBjaGFyKj4obnVsbHB0cik7CiAgICAgICAgIGNvbnN0IGNoYXIqIGNhY2hlUGF0aCA9
IE9wdGlvbnM6OmRpc2tDYWNoZVBhdGgoKTsKLSAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gRmls
ZVN5c3RlbTo6ZW5jb2RlRm9yRmlsZU5hbWUoRmlsZVN5c3RlbTo6bGFzdENvbXBvbmVudE9mUGF0
aElnbm9yaW5nVHJhaWxpbmdTbGFzaChzb3VyY2VPcmlnaW4oKS5zdHJpbmcoKSkpOworICAgICAg
ICBTdHJpbmcgZmlsZW5hbWUgPSBGaWxlU3lzdGVtOjplbmNvZGVGb3JGaWxlTmFtZShGaWxlU3lz
dGVtOjpsYXN0Q29tcG9uZW50T2ZQYXRoSWdub3JpbmdUcmFpbGluZ1NsYXNoKHNvdXJjZU9yaWdp
bigpLnVybCgpLmZpbGVTeXN0ZW1QYXRoKCkpKTsKICAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW06
OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjYWNoZVBhdGgsIG1ha2VTdHJpbmcoc291cmNlKCku
dG9TdHJpbmcoKS5oYXNoKCksICctJywgZmlsZW5hbWUsICIuYnl0ZWNvZGUtY2FjaGUiKSk7CiAg
ICAgfQogCkBAIC0xMDY3LDggKzEwMTUsOCBAQCBwcml2YXRlOgogICAgICAgICBtX2NhY2hlZEJ5
dGVjb2RlID0gQ2FjaGVkQnl0ZWNvZGU6OmNyZWF0ZShXVEZNb3ZlKG1hcHBlZEZpbGVEYXRhKSk7
CiAgICAgfQogCi0gICAgU2hlbGxTb3VyY2VQcm92aWRlcihjb25zdCBTdHJpbmcmIHNvdXJjZSwg
Y29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVybCwgY29uc3QgVGV4dFBv
c2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlw
ZSkKLSAgICAgICAgOiBTdHJpbmdTb3VyY2VQcm92aWRlcihzb3VyY2UsIHNvdXJjZU9yaWdpbiwg
V1RGTW92ZSh1cmwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKQorICAgIFNoZWxsU291cmNl
UHJvdmlkZXIoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNl
T3JpZ2luLCBTdHJpbmcmJiBzb3VyY2VVUkwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3Np
dGlvbiwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUpCisgICAgICAgIDogU3Ry
aW5nU291cmNlUHJvdmlkZXIoc291cmNlLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUoc291cmNlVVJM
KSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkKICAgICB7CiAgICAgfQogCkBAIC0xMDgxLDkg
KzEwMjksOSBAQCBwcml2YXRlOgogICAgIG11dGFibGUgUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBt
X2NhY2hlZEJ5dGVjb2RlOwogfTsKIAotc3RhdGljIGlubGluZSBTb3VyY2VDb2RlIGpzY1NvdXJj
ZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4s
IFVSTCYmIHVybCA9IFVSTCgpLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24gPSBU
ZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUgPSBTb3Vy
Y2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pCitzdGF0aWMgaW5saW5lIFNvdXJjZUNvZGUg
anNjU291cmNlKGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJj
ZU9yaWdpbiwgU3RyaW5nIHNvdXJjZVVSTCA9IFN0cmluZygpLCBjb25zdCBUZXh0UG9zaXRpb24m
IHN0YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBl
IHNvdXJjZVR5cGUgPSBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pCiB7Ci0gICAg
cmV0dXJuIFNvdXJjZUNvZGUoU2hlbGxTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgc291
cmNlT3JpZ2luLCBXVEZNb3ZlKHVybCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpLCBzdGFy
dFBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpLCBzdGFydFBvc2l0aW9uLm1fY29sdW1uLm9u
ZUJhc2VkSW50KCkpOworICAgIHJldHVybiBTb3VyY2VDb2RlKFNoZWxsU291cmNlUHJvdmlkZXI6
OmNyZWF0ZShzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZShzb3VyY2VVUkwpLCBzdGFydFBv
c2l0aW9uLCBzb3VyY2VUeXBlKSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJbnQoKSwg
c3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKTsKIH0KIAogdGVtcGxhdGU8dHlw
ZW5hbWUgVmVjdG9yPgpAQCAtMTA5MSwxMyArMTAzOSwxMyBAQCBzdGF0aWMgaW5saW5lIFNvdXJj
ZUNvZGUganNjU291cmNlKGNvbnN0IFZlY3RvciYgdXRmOCwgY29uc3QgU291cmNlT3JpZ2luJiBz
b3VyYwogewogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCB1c2UgYW4gYWJzb2x1dGUgZmlsZSBV
UkwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzA3NwogICAgIFN0
cmluZyBzdHIgPSBzdHJpbmdGcm9tVVRGKHV0ZjgpOwotICAgIHJldHVybiBqc2NTb3VyY2Uoc3Ry
LCBzb3VyY2VPcmlnaW4sIFVSTCh7IH0sIGZpbGVuYW1lKSk7CisgICAgcmV0dXJuIGpzY1NvdXJj
ZShzdHIsIHNvdXJjZU9yaWdpbiwgZmlsZW5hbWUpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBW
ZWN0b3I+Ci1zdGF0aWMgYm9vbCBmZXRjaE1vZHVsZUZyb21Mb2NhbEZpbGVTeXN0ZW0oY29uc3Qg
U3RyaW5nJiBmaWxlTmFtZSwgVmVjdG9yJiBidWZmZXIpCitzdGF0aWMgYm9vbCBmZXRjaE1vZHVs
ZUZyb21Mb2NhbEZpbGVTeXN0ZW0oY29uc3QgVVJMJiBmaWxlVVJMLCBWZWN0b3ImIGJ1ZmZlcikK
IHsKLSAgICAvLyBXZSBhc3N1bWUgdGhhdCBmaWxlTmFtZSBpcyBhbHdheXMgYW4gYWJzb2x1dGUg
cGF0aC4KKyAgICBTdHJpbmcgZmlsZU5hbWUgPSBmaWxlVVJMLmZpbGVTeXN0ZW1QYXRoKCk7CiAj
aWYgT1MoV0lORE9XUykKICAgICAvLyBodHRwczovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9s
aWJyYXJ5L3dpbmRvd3MvZGVza3RvcC9hYTM2NTI0Ny5hc3B4I21heHBhdGgKICAgICAvLyBVc2Ug
bG9uZyBVTkMgdG8gcGFzcyB0aGUgbG9uZyBwYXRoIG5hbWUgdG8gdGhlIFdpbmRvd3MgQVBJcy4K
QEAgLTExNDksMTggKzEwOTcsMjAgQEAgSlNJbnRlcm5hbFByb21pc2UqIEdsb2JhbE9iamVjdDo6
bW9kdWxlTG9hZGVyRmV0Y2goSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBpZiAo
VU5MSUtFTFkoY2F0Y2hTY29wZS5leGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiByZWplY3Qo
Y2F0Y2hTY29wZS5leGNlcHRpb24oKS0+dmFsdWUoKSk7CiAKLSAgICAvLyBIZXJlLCBub3cgd2Ug
Y29uc2lkZXIgbW9kdWxlS2V5IGFzIHRoZSBmaWxlTmFtZS4KKyAgICBVUkwgbW9kdWxlVVJMKHsg
fSwgbW9kdWxlS2V5KTsKKyAgICBBU1NFUlQobW9kdWxlVVJMLmlzTG9jYWxGaWxlKCkpOworICAg
IC8vIFN0cmlwIHRoZSBVUkkgZnJvbSBvdXIga2V5IHNvIEVycm9ycyBwcmludCBjYW5vbmljYWwg
c3lzdGVtIHBhdGhzLgorICAgIG1vZHVsZUtleSA9IG1vZHVsZVVSTC5maWxlU3lzdGVtUGF0aCgp
OworCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKLSAgICBpZiAoIWZldGNoTW9kdWxlRnJv
bUxvY2FsRmlsZVN5c3RlbShtb2R1bGVLZXksIGJ1ZmZlcikpCisgICAgaWYgKCFmZXRjaE1vZHVs
ZUZyb21Mb2NhbEZpbGVTeXN0ZW0obW9kdWxlVVJMLCBidWZmZXIpKQogICAgICAgICByZXR1cm4g
cmVqZWN0KGNyZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgbWFrZVN0cmluZygiQ291bGQgbm90IG9w
ZW4gZmlsZSAnIiwgbW9kdWxlS2V5LCAiJy4iKSkpOwogCi0KLSAgICBVUkwgbW9kdWxlVVJMID0g
VVJMKHsgfSwgbW9kdWxlS2V5KTsKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgLy8gRmls
ZVN5c3RlbSBkb2VzIG5vdCBoYXZlIG1pbWUtdHlwZSBoZWFkZXIuIFRoZSBKU0Mgc2hlbGwgcmVj
b2duaXplcyBXZWJBc3NlbWJseSdzIG1hZ2ljIGhlYWRlci4KICAgICBpZiAoYnVmZmVyLnNpemUo
KSA+PSA0KSB7CiAgICAgICAgIGlmIChidWZmZXJbMF0gPT0gJ1wwJyAmJiBidWZmZXJbMV0gPT0g
J2EnICYmIGJ1ZmZlclsyXSA9PSAncycgJiYgYnVmZmVyWzNdID09ICdtJykgewotICAgICAgICAg
ICAgYXV0byBzb3VyY2UgPSBTb3VyY2VDb2RlKFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI6OmNy
ZWF0ZShXVEZNb3ZlKGJ1ZmZlciksIFNvdXJjZU9yaWdpbiB7IG1vZHVsZUtleSB9LCBXVEZNb3Zl
KG1vZHVsZVVSTCkpKTsKKyAgICAgICAgICAgIGF1dG8gc291cmNlID0gU291cmNlQ29kZShXZWJB
c3NlbWJseVNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoV1RGTW92ZShidWZmZXIpLCBTb3VyY2VPcmln
aW4geyBtb2R1bGVVUkwgfSwgV1RGTW92ZShtb2R1bGVLZXkpKSk7CiAgICAgICAgICAgICBjYXRj
aFNjb3BlLnJlbGVhc2VBc3NlcnROb0V4Y2VwdGlvbigpOwogICAgICAgICAgICAgYXV0byBzb3Vy
Y2VDb2RlID0gSlNTb3VyY2VDb2RlOjpjcmVhdGUodm0sIFdURk1vdmUoc291cmNlKSk7CiAgICAg
ICAgICAgICBjYXRjaFNjb3BlLnJlbGVhc2VBc3NlcnROb0V4Y2VwdGlvbigpOwpAQCAtMTE3MSw3
ICsxMTIxLDcgQEAgSlNJbnRlcm5hbFByb21pc2UqIEdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVy
RmV0Y2goSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICB9CiAjZW5kaWYKIAotICAg
IGF1dG8gc291cmNlQ29kZSA9IEpTU291cmNlQ29kZTo6Y3JlYXRlKHZtLCBqc2NTb3VyY2Uoc3Ry
aW5nRnJvbVVURihidWZmZXIpLCBTb3VyY2VPcmlnaW4geyBtb2R1bGVLZXkgfSwgV1RGTW92ZSht
b2R1bGVVUkwpLCBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1
bGUpKTsKKyAgICBhdXRvIHNvdXJjZUNvZGUgPSBKU1NvdXJjZUNvZGU6OmNyZWF0ZSh2bSwganNj
U291cmNlKHN0cmluZ0Zyb21VVEYoYnVmZmVyKSwgU291cmNlT3JpZ2luIHsgbW9kdWxlVVJMIH0s
IFdURk1vdmUobW9kdWxlS2V5KSwgVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNl
VHlwZTo6TW9kdWxlKSk7CiAgICAgY2F0Y2hTY29wZS5yZWxlYXNlQXNzZXJ0Tm9FeGNlcHRpb24o
KTsKICAgICBwcm9taXNlLT5yZXNvbHZlKGdsb2JhbE9iamVjdCwgc291cmNlQ29kZSk7CiAgICAg
Y2F0Y2hTY29wZS5jbGVhckV4Y2VwdGlvbigpOwpAQCAtMTUxNSwxNCArMTQ2NSwyNSBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTG9hZChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbQogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKKyAgICBib29sIGNhbGxl
clJlbGF0aXZlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgxKS5nZXRTdHJpbmcoZ2xvYmFsT2JqZWN0
KSA9PSAiY2FsbGVyIHJlbGF0aXZlIl9zOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGVuY29kZWRKU1ZhbHVlKCkpOworCiAgICAgU3RyaW5nIGZpbGVOYW1lID0gY2FsbEZyYW1lLT5h
cmd1bWVudCgwKS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOwogICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworCisgICAgVVJMIHBhdGg7CisgICAgaWYg
KGNhbGxlclJlbGF0aXZlKSB7CisgICAgICAgIHBhdGggPSBVUkwoY2FsbEZyYW1lLT5jYWxsZXJT
b3VyY2VPcmlnaW4odm0pLnVybCgpLCBmaWxlTmFtZSk7CisgICAgICAgIGlmICghcGF0aC5pc0xv
Y2FsRmlsZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1FeGNlcHRpb24oZ2xvYmFsT2Jq
ZWN0LCBzY29wZSwgY3JlYXRlVVJJRXJyb3IoZ2xvYmFsT2JqZWN0LCBtYWtlU3RyaW5nKCJjYWxs
ZXIgcmVsYXRpdmUgVVJMIHBhdGggaXMgbm90IGEgbG9jYWwgZmlsZTogIiwgcGF0aC5zdHJpbmco
KSkpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgcGF0aCA9IGFic29sdXRlUGF0aChmaWxlTmFtZSk7
CiAgICAgVmVjdG9yPGNoYXI+IHNjcmlwdDsKLSAgICBpZiAoIWZldGNoU2NyaXB0RnJvbUxvY2Fs
RmlsZVN5c3RlbShmaWxlTmFtZSwgc2NyaXB0KSkKKyAgICBpZiAoIWZldGNoU2NyaXB0RnJvbUxv
Y2FsRmlsZVN5c3RlbShwYXRoLmZpbGVTeXN0ZW1QYXRoKCksIHNjcmlwdCkpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwg
Y3JlYXRlRXJyb3IoZ2xvYmFsT2JqZWN0LCAiQ291bGQgbm90IG9wZW4gZmlsZS4iX3MpKSk7CiAK
ICAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV2YWx1YXRpb25FeGNlcHRpb247Ci0gICAgSlNWYWx1
ZSByZXN1bHQgPSBldmFsdWF0ZShnbG9iYWxPYmplY3QsIGpzY1NvdXJjZShzY3JpcHQsIFNvdXJj
ZU9yaWdpbiB7IGFic29sdXRlUGF0aChmaWxlTmFtZSkgfSwgZmlsZU5hbWUpLCBKU1ZhbHVlKCks
IGV2YWx1YXRpb25FeGNlcHRpb24pOworICAgIEpTVmFsdWUgcmVzdWx0ID0gZXZhbHVhdGUoZ2xv
YmFsT2JqZWN0LCBqc2NTb3VyY2Uoc2NyaXB0LCBTb3VyY2VPcmlnaW4geyBwYXRoIH0sIGZpbGVO
YW1lKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKICAgICBpZiAoZXZhbHVhdGlv
bkV4Y2VwdGlvbikKICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwg
ZXZhbHVhdGlvbkV4Y2VwdGlvbik7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQp
OwpAQCAtMTY0OCw3ICsxNjA5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkNhbGxlclNvdXJjZU9yaWdpbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgU291cmNlT3JpZ2luIHNvdXJjZU9yaWdp
biA9IGNhbGxGcmFtZS0+Y2FsbGVyU291cmNlT3JpZ2luKHZtKTsKLSAgICBpZiAoc291cmNlT3Jp
Z2luLmlzTnVsbCgpKQorICAgIGlmIChzb3VyY2VPcmlnaW4udXJsKCkuaXNOdWxsKCkpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNTdHJpbmcodm0sIHNvdXJjZU9yaWdpbi5zdHJpbmcoKSkpOwogfQpAQCAtMTkx
Miw3ICsxODczLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxh
ckFnZW50U3RhcnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXZhbHVhdGlvbkV4
Y2VwdGlvbjsKICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZSByZXN1bHQ7Ci0gICAgICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IGV2YWx1YXRlKGdsb2JhbE9iamVjdCwganNjU291cmNlKHNvdXJj
ZUNvZGUsIFNvdXJjZU9yaWdpbigid29ya2VyIl9zKSksIEpTVmFsdWUoKSwgZXZhbHVhdGlvbkV4
Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGV2YWx1YXRlKGdsb2JhbE9i
amVjdCwganNjU291cmNlKHNvdXJjZUNvZGUsIFNvdXJjZU9yaWdpbihVUkwoeyB9LCAid29ya2Vy
Il9zKSkpLCBKU1ZhbHVlKCksIGV2YWx1YXRpb25FeGNlcHRpb24pOwogICAgICAgICAgICAgICAg
ICAgICBpZiAoZXZhbHVhdGlvbkV4Y2VwdGlvbikKICAgICAgICAgICAgICAgICAgICAgICAgIHJl
c3VsdCA9IGV2YWx1YXRpb25FeGNlcHRpb24tPnZhbHVlKCk7CiAgICAgICAgICAgICAgICAgICAg
IGNoZWNrRXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgdHJ1ZSwgZXZhbHVhdGlvbkV4Y2VwdGlvbiwg
cmVzdWx0LCBjb21tYW5kTGluZSwgc3VjY2Vzcyk7CkBAIC0yMzM2LDcgKzIyOTcsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ2hlY2tNb2R1bGVTeW50YXgoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iagogICAgIHN0b3BXYXRjaC5zdGFydCgpOwogCiAgICAgUGFyc2Vy
RXJyb3IgZXJyb3I7Ci0gICAgYm9vbCB2YWxpZFN5bnRheCA9IGNoZWNrTW9kdWxlU3ludGF4KGds
b2JhbE9iamVjdCwganNjU291cmNlKHNvdXJjZSwgeyB9LCBVUkwoKSwgVGV4dFBvc2l0aW9uKCks
IFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlKSwgZXJyb3IpOworICAgIGJvb2wgdmFs
aWRTeW50YXggPSBjaGVja01vZHVsZVN5bnRheChnbG9iYWxPYmplY3QsIGpzY1NvdXJjZShzb3Vy
Y2UsIHsgfSwgU3RyaW5nKCksIFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5
cGU6Ok1vZHVsZSksIGVycm9yKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNv
ZGVkSlNWYWx1ZSgpKTsKICAgICBzdG9wV2F0Y2guc3RvcCgpOwogCkBAIC0yNzk2LDYgKzI3NTcs
NyBAQCBzdGF0aWMgdm9pZCBydW5XaXRoT3B0aW9ucyhHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ29tbWFuZExpbmUmIG9wdGlvbnMsIGJvbwogICAgICAgICAgICAgICAgIHNjcmlwdEJ1ZmZl
ci5hcHBlbmQoIlwidXNlIHN0cmljdFwiO1xuIiwgc3RybGVuKCJcInVzZSBzdHJpY3RcIjtcbiIp
KTsKIAogICAgICAgICAgICAgaWYgKGlzTW9kdWxlKSB7CisgICAgICAgICAgICAgICAgZmlsZU5h
bWUgPSBmaWxlTmFtZS5zdGFydHNXaXRoKCcvJykgPyBmaWxlTmFtZSA6IG1ha2VTdHJpbmcoIi4v
IiwgZmlsZU5hbWUpOwogICAgICAgICAgICAgICAgIHByb21pc2UgPSBsb2FkQW5kRXZhbHVhdGVN
b2R1bGUoZ2xvYmFsT2JqZWN0LCBmaWxlTmFtZSwganNVbmRlZmluZWQoKSwganNVbmRlZmluZWQo
KSk7CiAgICAgICAgICAgICAgICAgc2NvcGUucmVsZWFzZUFzc2VydE5vRXhjZXB0aW9uKCk7CiAg
ICAgICAgICAgICB9IGVsc2UgewpAQCAtMjgxMiwxMCArMjc3NCwxMSBAQCBzdGF0aWMgdm9pZCBy
dW5XaXRoT3B0aW9ucyhHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29tbWFuZExpbmUmIG9w
dGlvbnMsIGJvbwogICAgICAgICB9CiAKICAgICAgICAgYm9vbCBpc0xhc3RGaWxlID0gaSA9PSBz
Y3JpcHRzLnNpemUoKSAtIDE7CisgICAgICAgIFNvdXJjZU9yaWdpbiBzb3VyY2VPcmlnaW4geyBh
YnNvbHV0ZVBhdGgoZmlsZU5hbWUpIH07CiAgICAgICAgIGlmIChpc01vZHVsZSkgewogICAgICAg
ICAgICAgaWYgKCFwcm9taXNlKSB7CiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIHVzZSBhbiBhYnNvbHV0ZSBmaWxlIFVSTCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkzMDc3Ci0gICAgICAgICAgICAgICAgcHJvbWlzZSA9IGxvYWRBbmRFdmFs
dWF0ZU1vZHVsZShnbG9iYWxPYmplY3QsIGpzY1NvdXJjZShzdHJpbmdGcm9tVVRGKHNjcmlwdEJ1
ZmZlciksIFNvdXJjZU9yaWdpbiB7IGFic29sdXRlUGF0aChmaWxlTmFtZSkgfSwgVVJMKHsgfSwg
ZmlsZU5hbWUpLCBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1
bGUpLCBqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgICAgICAgICBwcm9taXNlID0gbG9hZEFuZEV2
YWx1YXRlTW9kdWxlKGdsb2JhbE9iamVjdCwganNjU291cmNlKHN0cmluZ0Zyb21VVEYoc2NyaXB0
QnVmZmVyKSwgc291cmNlT3JpZ2luLCBmaWxlTmFtZSwgVGV4dFBvc2l0aW9uKCksIFNvdXJjZVBy
b3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlKSwganNVbmRlZmluZWQoKSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBzY29wZS5jbGVhckV4Y2VwdGlvbigpOwogCkBAIC0yODM0LDcgKzI3OTcs
NyBAQCBzdGF0aWMgdm9pZCBydW5XaXRoT3B0aW9ucyhHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ29tbWFuZExpbmUmIG9wdGlvbnMsIGJvbwogICAgICAgICAgICAgdm0uZHJhaW5NaWNyb3Rh
c2tzKCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBOYWtlZFB0cjxFeGNlcHRpb24+
IGV2YWx1YXRpb25FeGNlcHRpb247Ci0gICAgICAgICAgICBKU1ZhbHVlIHJldHVyblZhbHVlID0g
ZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBqc2NTb3VyY2Uoc2NyaXB0QnVmZmVyLCBTb3VyY2VPcmln
aW4geyBhYnNvbHV0ZVBhdGgoZmlsZU5hbWUpIH0sIGZpbGVOYW1lKSwgSlNWYWx1ZSgpLCBldmFs
dWF0aW9uRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIEpTVmFsdWUgcmV0dXJuVmFsdWUgPSBldmFs
dWF0ZShnbG9iYWxPYmplY3QsIGpzY1NvdXJjZShzY3JpcHRCdWZmZXIsIHNvdXJjZU9yaWdpbiAs
IGZpbGVOYW1lKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKICAgICAgICAgICAg
IHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgICAgICAgICBpZiAoZXZhbHVhdGlvbkV4
Y2VwdGlvbikKICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IGV2YWx1YXRpb25FeGNlcHRp
b24tPnZhbHVlKCk7CkBAIC0yODU3LDEwICsyODIwLDEwIEBAIHN0YXRpYyB2b2lkIHJ1bkludGVy
YWN0aXZlKEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAK
LSAgICBPcHRpb25hbDxEaXJlY3RvcnlOYW1lPiBkaXJlY3RvcnlOYW1lID0gY3VycmVudFdvcmtp
bmdEaXJlY3RvcnkoKTsKLSAgICBpZiAoIWRpcmVjdG9yeU5hbWUpCisgICAgVVJMIGRpcmVjdG9y
eU5hbWUgPSBjdXJyZW50V29ya2luZ0RpcmVjdG9yeSgpOworICAgIGlmICghZGlyZWN0b3J5TmFt
ZS5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBTb3VyY2VPcmlnaW4gc291cmNlT3Jp
Z2luKHJlc29sdmVQYXRoKGRpcmVjdG9yeU5hbWUudmFsdWUoKSwgTW9kdWxlTmFtZSgiaW50ZXJw
cmV0ZXIiKSkpOworICAgIFNvdXJjZU9yaWdpbiBzb3VyY2VPcmlnaW4oVVJMKGRpcmVjdG9yeU5h
bWUsICIuL2ludGVycHJldGVyIl9zKSk7CiAgICAgCiAgICAgYm9vbCBzaG91bGRRdWl0ID0gZmFs
c2U7CiAgICAgd2hpbGUgKCFzaG91bGRRdWl0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05v
ZGVzLmgKaW5kZXggNzEwMTVjYmU5MWM1ZGQ1OWFkYzM4NGRmZDkyYWI0ZGFlNWQ3YzEzZC4uOWEy
ZWZjYWQyODZhMzI3MzBjNzU4YWMyNjI1YTEzODExYTc0YjA1NCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvTm9kZXMuaApAQCAtMTg1OCw3ICsxODU4LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIFNjb3BlTm9kZShQYXJzZXJBcmVuYSYsIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgc3Rh
cnQsIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgZW5kLCBjb25zdCBTb3VyY2VDb2RlJiwgU291cmNl
RWxlbWVudHMqLCBWYXJpYWJsZUVudmlyb25tZW50JiwgRnVuY3Rpb25TdGFjayYmLCBWYXJpYWJs
ZUVudmlyb25tZW50JiwgVW5pcXVlZFN0cmluZ0ltcGxQdHJTZXQmJiwgQ29kZUZlYXR1cmVzLCBJ
bm5lckFycm93RnVuY3Rpb25Db2RlRmVhdHVyZXMsIGludCBudW1Db25zdGFudHMpOwogCiAgICAg
ICAgIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9
Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3Vy
Y2UucHJvdmlkZXIoKS0+dXJsKCkuc3RyaW5nKCk7IH0KICAgICAgICAgaW50cHRyX3Qgc291cmNl
SUQoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5wcm92aWRlcklEKCk7IH0KIAogICAgICAgICBp
bnQgc3RhcnRMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydExpbmVOdW1iZXI7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlLmgKaW5kZXggYWFkMjg3ZGRlODc3MWI3
OWIxODYwYzVlZDRiOTcwODFlYWYyYmY5Ni4uOTkyZDg5YTIxMDNkZTM2YzBmZGQ2NzVhNTNmZjhi
MTMxMGMwMWYzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3Vy
Y2VDb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlLmgK
QEAgLTk2LDkgKzk2LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE9yZGluYWxOdW1iZXIg
bV9zdGFydENvbHVtbjsKICAgICB9OwogCi0gICAgaW5saW5lIFNvdXJjZUNvZGUgbWFrZVNvdXJj
ZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4s
IFVSTCYmIHVybCA9IFVSTCgpLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24gPSBU
ZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUgPSBTb3Vy
Y2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pCisgICAgaW5saW5lIFNvdXJjZUNvZGUgbWFr
ZVNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VP
cmlnaW4sIFN0cmluZyBmaWxlbmFtZSA9IFN0cmluZygpLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0
YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNv
dXJjZVR5cGUgPSBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pCiAgICAgewotICAg
ICAgICByZXR1cm4gU291cmNlQ29kZShTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJj
ZSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKHVybCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUp
LCBzdGFydFBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpLCBzdGFydFBvc2l0aW9uLm1fY29s
dW1uLm9uZUJhc2VkSW50KCkpOworICAgICAgICByZXR1cm4gU291cmNlQ29kZShTdHJpbmdTb3Vy
Y2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKGZpbGVuYW1l
KSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSksIHN0YXJ0UG9zaXRpb24ubV9saW5lLm9uZUJh
c2VkSW50KCksIHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSk7CiAgICAgfQog
ICAgIAogICAgIGlubGluZSBTb3VyY2VDb2RlIFNvdXJjZUNvZGU6OnN1YkV4cHJlc3Npb24odW5z
aWduZWQgb3BlbkJyYWNlLCB1bnNpZ25lZCBjbG9zZUJyYWNlLCBpbnQgZmlyc3RMaW5lLCBpbnQg
c3RhcnRDb2x1bW4pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1NvdXJjZUNvZGVLZXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNl
Q29kZUtleS5oCmluZGV4IDY3OGFlOWQ3ZDM2YjcwNWU1MDk5YWRiNzVkOTZkMDU1YzY1MDRkMzMu
LjY0MjMyNzBkOGFlMDkxYTczMDFjYThjODUzNTkwYjhhMzdiY2E0NjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZUtleS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZUtleS5oCkBAIC0xMDYsNyArMTA2LDcgQEAg
cHVibGljOgogICAgIC8vIHByb3ZpZGVycyBjYWNoZSB0aGVpciBzdHJpbmdzIHRvIG1ha2UgdGhp
cyBlZmZpY2llbnQuCiAgICAgU3RyaW5nVmlldyBzdHJpbmcoKSBjb25zdCB7IHJldHVybiBtX3Nv
dXJjZUNvZGUudmlldygpOyB9CiAKLSAgICBTdHJpbmdWaWV3IGhvc3QoKSBjb25zdCB7IHJldHVy
biBtX3NvdXJjZUNvZGUucHJvdmlkZXIoKS51cmwoKS5ob3N0KCk7IH0KKyAgICBTdHJpbmdWaWV3
IGhvc3QoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUNvZGUucHJvdmlkZXIoKS5zb3VyY2VPcmln
aW4oKS51cmwoKS5ob3N0KCk7IH0KIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTb3VyY2VD
b2RlS2V5JiBvdGhlcikgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvU291cmNlUHJvdmlkZXIuY3BwCmluZGV4IGMxNDE2ZjE0OTViNjgzYWY5NWU3NzU4ZWMy
YTFhMDMxN2U1ZWI4YjAuLjAzZTU1ZWUzZDFmZjIwMjU4NmFmMmJlYThkNzkxZDUxNTNhMTg3YjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuY3Bw
CkBAIC0zMiwxMCArMzIsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIERFRklORV9BTExPQ0FUT1Jf
V0lUSF9IRUFQX0lERU5USUZJRVIoU3RyaW5nU291cmNlUHJvdmlkZXIpOwogCi1Tb3VyY2VQcm92
aWRlcjo6U291cmNlUHJvdmlkZXIoY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVS
TCYmIHVybCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92aWRl
clNvdXJjZVR5cGUgc291cmNlVHlwZSkKK1NvdXJjZVByb3ZpZGVyOjpTb3VyY2VQcm92aWRlcihj
b25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nJiYgc291cmNlVVJMLCBjb25z
dCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBz
b3VyY2VUeXBlKQogICAgIDogbV9zb3VyY2VUeXBlKHNvdXJjZVR5cGUpCi0gICAgLCBtX3VybChX
VEZNb3ZlKHVybCkpCiAgICAgLCBtX3NvdXJjZU9yaWdpbihzb3VyY2VPcmlnaW4pCisgICAgLCBt
X3NvdXJjZVVSTChXVEZNb3ZlKHNvdXJjZVVSTCkpCiAgICAgLCBtX3N0YXJ0UG9zaXRpb24oc3Rh
cnRQb3NpdGlvbikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvU291cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNl
UHJvdmlkZXIuaAppbmRleCBiNjJmMzkzMmMyMTMyMjk5NjY5ZTJkMDUyOTk3ZjcyNWI3NjAwM2Mw
Li4xMjllZTVjNDllMjQ3YWZjZDlmMDhkNTllZmU5ZmIxMjhmOWFiYmUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCkBAIC0zMiw3ICszMiw2IEBA
CiAjaW5jbHVkZSAiQ29kZVNwZWNpYWxpemF0aW9uS2luZC5oIgogI2luY2x1ZGUgIlNvdXJjZU9y
aWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1VSTC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCkBAIC01NCw3ICs1Myw3IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25D
b2RlQmxvY2s7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgY29uc3QgaW50cHRyX3QgbnVs
bElEID0gMTsKICAgICAgICAgCi0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIFNvdXJjZVByb3Zp
ZGVyKGNvbnN0IFNvdXJjZU9yaWdpbiYsIFVSTCYmLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0
UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSk7CisgICAgICAgIEpTX0VYUE9SVF9Q
UklWQVRFIFNvdXJjZVByb3ZpZGVyKGNvbnN0IFNvdXJjZU9yaWdpbiYsIFN0cmluZyYmIHNvdXJj
ZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92aWRlclNv
dXJjZVR5cGUpOwogCiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgflNvdXJjZVBy
b3ZpZGVyKCk7CiAKQEAgLTcxLDcgKzcwLDkgQEAgY2xhc3MgVW5saW5rZWRGdW5jdGlvbkNvZGVC
bG9jazsKICAgICAgICAgfQogCiAgICAgICAgIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3Jp
Z2luKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VPcmlnaW47IH0KLSAgICAgICAgY29uc3QgVVJM
JiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQorCisgICAgICAgIC8vIFRoaXMgaXMgTk9U
IHRoZSBwYXRoIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIGNvbXB1dGluZyByZWxhdGl2ZSBwYXRo
cyBmcm9tIGEgc2NyaXB0LiBVc2UgU291cmNlT3JpZ2luJ3MgVVJMIGZvciB0aGF0LCB0aGUgdmFs
dWVzIG1heSBvciBtYXkgbm90IGJlIHRoZSBzYW1lLi4uCisgICAgICAgIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0KICAgICAgICAgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkxEaXJlY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVVSTERp
cmVjdGl2ZTsgfQogICAgICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZU1hcHBpbmdVUkxEaXJlY3Rp
dmUoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmU7IH0KIApAQCAt
OTIsOCArOTMsOCBAQCBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOwogICAgICAgICBK
U19FWFBPUlRfUFJJVkFURSB2b2lkIGdldElEKCk7CiAKICAgICAgICAgU291cmNlUHJvdmlkZXJT
b3VyY2VUeXBlIG1fc291cmNlVHlwZTsKLSAgICAgICAgVVJMIG1fdXJsOwogICAgICAgICBTb3Vy
Y2VPcmlnaW4gbV9zb3VyY2VPcmlnaW47CisgICAgICAgIFN0cmluZyBtX3NvdXJjZVVSTDsKICAg
ICAgICAgU3RyaW5nIG1fc291cmNlVVJMRGlyZWN0aXZlOwogICAgICAgICBTdHJpbmcgbV9zb3Vy
Y2VNYXBwaW5nVVJMRGlyZWN0aXZlOwogICAgICAgICBUZXh0UG9zaXRpb24gbV9zdGFydFBvc2l0
aW9uOwpAQCAtMTA0LDkgKzEwNSw5IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7
CiAgICAgY2xhc3MgU3RyaW5nU291cmNlUHJvdmlkZXIgOiBwdWJsaWMgU291cmNlUHJvdmlkZXIg
ewogICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRF9XSVRIX0hFQVBfSURFTlRJRklFUihT
dHJpbmdTb3VyY2VQcm92aWRlcik7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPFN0
cmluZ1NvdXJjZVByb3ZpZGVyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNv
dXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYg
c3RhcnRQb3NpdGlvbiA9IFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUg
c291cmNlVHlwZSA9IFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSkKKyAgICAgICAg
c3RhdGljIFJlZjxTdHJpbmdTb3VyY2VQcm92aWRlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgc291
cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nIHNvdXJjZVVSTCwg
Y29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uKCksIFNvdXJj
ZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlID0gU291cmNlUHJvdmlkZXJTb3VyY2VUeXBl
OjpQcm9ncmFtKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
dHJpbmdTb3VyY2VQcm92aWRlcihzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpLCBz
dGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTdHJpbmdTb3VyY2VQcm92aWRlcihzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZShz
b3VyY2VVUkwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSk7CiAgICAgICAgIH0KICAgICAg
ICAgCiAgICAgICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdCBvdmVycmlkZQpAQCAtMTIwLDggKzEy
MSw4IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7CiAgICAgICAgIH0KIAogICAg
IHByb3RlY3RlZDoKLSAgICAgICAgU3RyaW5nU291cmNlUHJvdmlkZXIoY29uc3QgU3RyaW5nJiBz
b3VyY2UsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwsIGNvbnN0
IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNv
dXJjZVR5cGUpCi0gICAgICAgICAgICA6IFNvdXJjZVByb3ZpZGVyKHNvdXJjZU9yaWdpbiwgV1RG
TW92ZSh1cmwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKQorICAgICAgICBTdHJpbmdTb3Vy
Y2VQcm92aWRlcihjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3Vy
Y2VPcmlnaW4sIFN0cmluZyYmIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBv
c2l0aW9uLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSkKKyAgICAgICAgICAg
IDogU291cmNlUHJvdmlkZXIoc291cmNlT3JpZ2luLCBXVEZNb3ZlKHNvdXJjZVVSTCksIHN0YXJ0
UG9zaXRpb24sIHNvdXJjZVR5cGUpCiAgICAgICAgICAgICAsIG1fc291cmNlKHNvdXJjZS5pc051
bGwoKSA/ICpTdHJpbmdJbXBsOjplbXB0eSgpIDogKnNvdXJjZS5pbXBsKCkpCiAgICAgICAgIHsK
ICAgICAgICAgfQpAQCAtMTMzLDkgKzEzNCw5IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2Rl
QmxvY2s7CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIGNsYXNzIFdlYkFzc2VtYmx5U291
cmNlUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgU291cmNlUHJvdmlkZXIgewogICAgIHB1YmxpYzoK
LSAgICAgICAgc3RhdGljIFJlZjxXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyPiBjcmVhdGUoVmVj
dG9yPHVpbnQ4X3Q+JiYgZGF0YSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVS
TCYmIHVybCkKKyAgICAgICAgc3RhdGljIFJlZjxXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyPiBj
cmVhdGUoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VP
cmlnaW4sIFN0cmluZyBzb3VyY2VVUkwpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIoV1RGTW92ZShkYXRhKSwgc291
cmNlT3JpZ2luLCBXVEZNb3ZlKHVybCkpKTsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIoV1RGTW92ZShkYXRhKSwgc291cmNlT3JpZ2lu
LCBXVEZNb3ZlKHNvdXJjZVVSTCkpKTsKICAgICAgICAgfQogCiAgICAgICAgIHVuc2lnbmVkIGhh
c2goKSBjb25zdCBmaW5hbApAQCAtMTU0LDggKzE1NSw4IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rp
b25Db2RlQmxvY2s7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFdlYkFzc2Vt
Ymx5U291cmNlUHJvdmlkZXIoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSwgY29uc3QgU291cmNlT3Jp
Z2luJiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVybCkKLSAgICAgICAgICAgIDogU291cmNlUHJvdmlk
ZXIoc291cmNlT3JpZ2luLCBXVEZNb3ZlKHVybCksIFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92
aWRlclNvdXJjZVR5cGU6OldlYkFzc2VtYmx5KQorICAgICAgICBXZWJBc3NlbWJseVNvdXJjZVBy
b3ZpZGVyKFZlY3Rvcjx1aW50OF90PiYmIGRhdGEsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNl
T3JpZ2luLCBTdHJpbmcmJiBzb3VyY2VVUkwpCisgICAgICAgICAgICA6IFNvdXJjZVByb3ZpZGVy
KHNvdXJjZU9yaWdpbiwgV1RGTW92ZShzb3VyY2VVUkwpLCBUZXh0UG9zaXRpb24oKSwgU291cmNl
UHJvdmlkZXJTb3VyY2VUeXBlOjpXZWJBc3NlbWJseSkKICAgICAgICAgICAgICwgbV9zb3VyY2Uo
IltXZWJBc3NlbWJseSBzb3VyY2VdIikKICAgICAgICAgICAgICwgbV9kYXRhKFdURk1vdmUoZGF0
YSkpCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NhY2hlZFR5cGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5
cGVzLmNwcAppbmRleCAzZDI1MDY0ZGQ5MjM3MTNhMTQ0ZDgxZmZjZWI4MjI1MjUxMmI0YjJhLi4y
MmY3MTY0ZTA5ZjdiMzY1MDRmZjg4OGJmYzlmMWMzZDQ0NGYzZDM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlwZXMuY3BwCkBAIC0xNTEwLDEyICsxNTEwLDEy
IEBAIGNsYXNzIENhY2hlZFNvdXJjZU9yaWdpbiA6IHB1YmxpYyBDYWNoZWRPYmplY3Q8U291cmNl
T3JpZ2luPiB7CiBwdWJsaWM6CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4pCiAgICAgewotICAgICAgICBtX3N0cmluZy5l
bmNvZGUoZW5jb2Rlciwgc291cmNlT3JpZ2luLnN0cmluZygpKTsKKyAgICAgICAgbV9zdHJpbmcu
ZW5jb2RlKGVuY29kZXIsIHNvdXJjZU9yaWdpbi51cmwoKS5zdHJpbmcoKSk7CiAgICAgfQogCiAg
ICAgU291cmNlT3JpZ2luIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKSBjb25zdAogICAgIHsKLSAg
ICAgICAgcmV0dXJuIFNvdXJjZU9yaWdpbiB7IG1fc3RyaW5nLmRlY29kZShkZWNvZGVyKSB9Owor
ICAgICAgICByZXR1cm4gU291cmNlT3JpZ2luIHsgVVJMKHsgfSwgbV9zdHJpbmcuZGVjb2RlKGRl
Y29kZXIpKSB9OwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTE1NDYsNyArMTU0Niw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTb3VyY2VQcm92aWRl
ciYgc291cmNlUHJvdmlkZXIpCiAgICAgewogICAgICAgICBtX3NvdXJjZU9yaWdpbi5lbmNvZGUo
ZW5jb2Rlciwgc291cmNlUHJvdmlkZXIuc291cmNlT3JpZ2luKCkpOwotICAgICAgICBtX3VybC5l
bmNvZGUoZW5jb2Rlciwgc291cmNlUHJvdmlkZXIudXJsKCkuc3RyaW5nKCkpOworICAgICAgICBt
X3NvdXJjZVVSTC5lbmNvZGUoZW5jb2Rlciwgc291cmNlUHJvdmlkZXIuc291cmNlVVJMKCkpOwog
ICAgICAgICBtX3NvdXJjZVVSTERpcmVjdGl2ZS5lbmNvZGUoZW5jb2Rlciwgc291cmNlUHJvdmlk
ZXIuc291cmNlVVJMRGlyZWN0aXZlKCkpOwogICAgICAgICBtX3NvdXJjZU1hcHBpbmdVUkxEaXJl
Y3RpdmUuZW5jb2RlKGVuY29kZXIsIHNvdXJjZVByb3ZpZGVyLnNvdXJjZU1hcHBpbmdVUkxEaXJl
Y3RpdmUoKSk7CiAgICAgICAgIG1fc3RhcnRQb3NpdGlvbi5lbmNvZGUoZW5jb2Rlciwgc291cmNl
UHJvdmlkZXIuc3RhcnRQb3NpdGlvbigpKTsKQEAgLTE1NjAsNyArMTU2MCw3IEBAIHB1YmxpYzoK
IAogcHJvdGVjdGVkOgogICAgIENhY2hlZFNvdXJjZU9yaWdpbiBtX3NvdXJjZU9yaWdpbjsKLSAg
ICBDYWNoZWRTdHJpbmcgbV91cmw7CisgICAgQ2FjaGVkU3RyaW5nIG1fc291cmNlVVJMOwogICAg
IENhY2hlZFN0cmluZyBtX3NvdXJjZVVSTERpcmVjdGl2ZTsKICAgICBDYWNoZWRTdHJpbmcgbV9z
b3VyY2VNYXBwaW5nVVJMRGlyZWN0aXZlOwogICAgIENhY2hlZFRleHRQb3NpdGlvbiBtX3N0YXJ0
UG9zaXRpb247CkBAIC0xNTgwLDEwICsxNTgwLDEwIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAg
IFN0cmluZyBkZWNvZGVkU291cmNlID0gbV9zb3VyY2UuZGVjb2RlKGRlY29kZXIpOwogICAgICAg
ICBTb3VyY2VPcmlnaW4gZGVjb2RlZFNvdXJjZU9yaWdpbiA9IG1fc291cmNlT3JpZ2luLmRlY29k
ZShkZWNvZGVyKTsKLSAgICAgICAgU3RyaW5nIGRlY29kZWRVUkwgPSBtX3VybC5kZWNvZGUoZGVj
b2Rlcik7CisgICAgICAgIFN0cmluZyBkZWNvZGVkU291cmNlVVJMID0gbV9zb3VyY2VVUkwuZGVj
b2RlKGRlY29kZXIpOwogICAgICAgICBUZXh0UG9zaXRpb24gZGVjb2RlZFN0YXJ0UG9zaXRpb24g
PSBtX3N0YXJ0UG9zaXRpb24uZGVjb2RlKGRlY29kZXIpOwogCi0gICAgICAgIFJlZjxTdHJpbmdT
b3VyY2VQcm92aWRlcj4gc291cmNlUHJvdmlkZXIgPSBTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3Jl
YXRlKGRlY29kZWRTb3VyY2UsIGRlY29kZWRTb3VyY2VPcmlnaW4sIFVSTChVUkwoKSwgZGVjb2Rl
ZFVSTCksIGRlY29kZWRTdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKTsKKyAgICAgICAgUmVmPFN0
cmluZ1NvdXJjZVByb3ZpZGVyPiBzb3VyY2VQcm92aWRlciA9IFN0cmluZ1NvdXJjZVByb3ZpZGVy
OjpjcmVhdGUoZGVjb2RlZFNvdXJjZSwgZGVjb2RlZFNvdXJjZU9yaWdpbiwgZGVjb2RlZFNvdXJj
ZVVSTCwgZGVjb2RlZFN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpOwogICAgICAgICBCYXNlOjpk
ZWNvZGUoZGVjb2Rlciwgc291cmNlUHJvdmlkZXIuZ2V0KCkpOwogICAgICAgICByZXR1cm4gJnNv
dXJjZVByb3ZpZGVyLmxlYWtSZWYoKTsKICAgICB9CkBAIC0xNjA3LDExICsxNjA3LDExIEBAIHB1
YmxpYzoKICAgICB7CiAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBkZWNvZGVkRGF0YTsKICAgICAg
ICAgU291cmNlT3JpZ2luIGRlY29kZWRTb3VyY2VPcmlnaW4gPSBtX3NvdXJjZU9yaWdpbi5kZWNv
ZGUoZGVjb2Rlcik7Ci0gICAgICAgIFN0cmluZyBkZWNvZGVkVVJMID0gbV91cmwuZGVjb2RlKGRl
Y29kZXIpOworICAgICAgICBTdHJpbmcgZGVjb2RlZFNvdXJjZVVSTCA9IG1fc291cmNlVVJMLmRl
Y29kZShkZWNvZGVyKTsKIAogICAgICAgICBtX2RhdGEuZGVjb2RlKGRlY29kZXIsIGRlY29kZWRE
YXRhKTsKIAotICAgICAgICBSZWY8V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcj4gc291cmNlUHJv
dmlkZXIgPSBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoV1RGTW92ZShkZWNvZGVk
RGF0YSksIGRlY29kZWRTb3VyY2VPcmlnaW4sIFVSTChVUkwoKSwgZGVjb2RlZFVSTCkpOworICAg
ICAgICBSZWY8V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcj4gc291cmNlUHJvdmlkZXIgPSBXZWJB
c3NlbWJseVNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoV1RGTW92ZShkZWNvZGVkRGF0YSksIGRlY29k
ZWRTb3VyY2VPcmlnaW4sIGRlY29kZWRTb3VyY2VVUkwpOwogICAgICAgICBCYXNlOjpkZWNvZGUo
ZGVjb2Rlciwgc291cmNlUHJvdmlkZXIuZ2V0KCkpOwogCiAgICAgICAgIHJldHVybiAmc291cmNl
UHJvdmlkZXIubGVha1JlZigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3Bw
CmluZGV4IDE1Y2NhOTUxNjIzMzllMmQ4ZjU3NDk3OGJhYzM3ZjU0NjZkNjc4ZGQuLmY0NzNiODE4
MWVjMmYwMmEwY2M3OGEyNmMwYzIwZGM5NjMxZmRjNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvci5jcHAKQEAgLTIzMCw3ICsyMzAsNyBAQCB2b2lkIGFkZEVycm9ySW5mbyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqLCBib29sIHVzZUN1cnJl
bnRGcgogCiBKU09iamVjdCogYWRkRXJyb3JJbmZvKFZNJiB2bSwgSlNPYmplY3QqIGVycm9yLCBp
bnQgbGluZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlKQogewotICAgIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMID0gc291cmNlLnByb3ZpZGVyKCktPnVybCgpLnN0cmluZygpOworICAgIGNvbnN0
IFN0cmluZyYgc291cmNlVVJMID0gc291cmNlLnByb3ZpZGVyKCktPnNvdXJjZVVSTCgpOwogICAg
IAogICAgIC8vIFRoZSBwdXREaXJlY3QoKSBjYWxscyBiZWxvdyBzaG91bGQgcmVhbGx5IGJlIHB1
dCgpIHNvIHRoYXQgdGhleSB0cmlnZ2VyIG1hdGVyaWFsaXphdGlvbiBvZgogICAgIC8vIHRoZSBs
aW5lL3NvdXJjZVVSTCBwcm9wZXJ0aWVzLiBPdGhlcndpc2UsIHdoYXQgd2Ugc2V0IGhlcmUgd2ls
bCBqdXN0IGJlIG92ZXJ3cml0dGVuIGxhdGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCAxMjYxNGRlZGEzOTU2
YmE0NGYyMDgyOWRkZDQ5MDZmMGI0ZjI3ZjhjLi40YzEwMTZmODc5OGRkYWMzYWNhZTExNmQ5ZWMx
MjFhNDQ2ZmFjYThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9G
dW5jdGlvbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMTQ4LDcgKzE0OCw3IEBAIEpTT2JqZWN0KiBj
b25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjaygKICAgICAgICAgcHJvZ3Jh
bSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICB9CiAKLSAgICBTb3VyY2VDb2RlIHNvdXJjZSA9
IG1ha2VTb3VyY2UocHJvZ3JhbSwgc291cmNlT3JpZ2luLCBVUkwoeyB9LCBzb3VyY2VVUkwpLCBw
b3NpdGlvbik7CisgICAgU291cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291cmNlKHByb2dyYW0sIHNv
dXJjZU9yaWdpbiwgc291cmNlVVJMLCBwb3NpdGlvbik7CiAgICAgSlNPYmplY3QqIGV4Y2VwdGlv
biA9IG51bGxwdHI7CiAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbiA9IEZ1bmN0aW9u
RXhlY3V0YWJsZTo6ZnJvbUdsb2JhbENvZGUoZnVuY3Rpb25OYW1lLCBnbG9iYWxPYmplY3QsIHNv
dXJjZSwgZXhjZXB0aW9uLCBvdmVycmlkZUxpbmVOdW1iZXIsIGZ1bmN0aW9uQ29uc3RydWN0b3JQ
YXJhbWV0ZXJzRW5kUG9zaXRpb24pOwogICAgIGlmIChVTkxJS0VMWSghZnVuY3Rpb24pKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRFeGVjdXRhYmxl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmgKaW5k
ZXggZjRiNDI1YmNmYjAyNGNkODdiNmVkMmMxNzg4MDdjYWYwMWNiZDkwNi4uNTJkOTIxOTBkMDI0
MTgzNTU1MDA2ZDZkZTFhNzA1YTAxNTNiZmEwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaApAQCAtNDcsNyArNDcsOCBAQCBwdWJsaWM6
CiAgICAgY29uc3QgU291cmNlQ29kZSYgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2U7
IH0KICAgICBpbnRwdHJfdCBzb3VyY2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnByb3Zp
ZGVySUQoKTsgfQogICAgIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2UucHJvdmlkZXIoKS0+c291cmNlT3JpZ2luKCk7IH0KLSAgICBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnByb3ZpZGVyKCkt
PnVybCgpLnN0cmluZygpOyB9CisgICAgLy8gVGhpcyBpcyBOT1QgdGhlIHBhdGggdGhhdCBzaG91
bGQgYmUgdXNlZCBmb3IgY29tcHV0aW5nIHJlbGF0aXZlIHBhdGhzIGZyb20gYSBzY3JpcHQuIFVz
ZSBTb3VyY2VPcmlnaW4ncyBVUkwgZm9yIHRoYXQsIHRoZSB2YWx1ZXMgbWF5IG9yIG1heSBub3Qg
YmUgdGhlIHNhbWUuLi4gVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIGZvciBgZXJyb3Iuc291cmNl
VVJMYCBhbmQgc3RhY2sgdHJhY2VzLgorICAgIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKCkgY29u
c3QgeyByZXR1cm4gbV9zb3VyY2UucHJvdmlkZXIoKS0+c291cmNlVVJMKCk7IH0KICAgICBpbnQg
Zmlyc3RMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UuZmlyc3RMaW5lKCkub25lQmFzZWRJ
bnQoKTsgfQogICAgIEpTX0VYUE9SVF9QUklWQVRFIGludCBsYXN0TGluZSgpIGNvbnN0OwogICAg
IHVuc2lnbmVkIHN0YXJ0Q29sdW1uKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2Uuc3RhcnRDb2x1
bW4oKS5vbmVCYXNlZEludCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Tb3VyY2VPcmlnaW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nv
dXJjZU9yaWdpbi5oCmluZGV4IDdjM2NkZWI3YzlhZGIyMWI4NTI5NmE0M2NjNjc5OTUwMDE4Yjcy
YmQuLjIzZGQ3OWQ4MWMzZjQwZDdkOTVlMWUzYTA4YTI2YmQ0YWVmMjc2YzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NvdXJjZU9yaWdpbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NvdXJjZU9yaWdpbi5oCkBAIC0yNiwzMiArMjYsMzIg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU2NyaXB0RmV0Y2hlci5oIgotI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KIAogbmFtZXNwYWNl
IEpTQyB7CiAKIGNsYXNzIFNvdXJjZU9yaWdpbiB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgU291
cmNlT3JpZ2luKGNvbnN0IFN0cmluZyYgc3RyaW5nKQotICAgICAgICA6IG1fc3RyaW5nKHN0cmlu
ZykKKyAgICBleHBsaWNpdCBTb3VyY2VPcmlnaW4oY29uc3QgVVJMJiB1cmwpCisgICAgICAgIDog
bV91cmwodXJsKQogICAgIHsKICAgICB9CiAKLSAgICBleHBsaWNpdCBTb3VyY2VPcmlnaW4oY29u
c3QgU3RyaW5nJiBzdHJpbmcsIFJlZjxTY3JpcHRGZXRjaGVyPiYmIGZldGNoZXIpCi0gICAgICAg
IDogbV9zdHJpbmcoc3RyaW5nKQorICAgIGV4cGxpY2l0IFNvdXJjZU9yaWdpbihjb25zdCBVUkwm
IHVybCwgUmVmPFNjcmlwdEZldGNoZXI+JiYgZmV0Y2hlcikKKyAgICAgICAgOiBtX3VybCh1cmwp
CiAgICAgICAgICwgbV9mZXRjaGVyKFdURk1vdmUoZmV0Y2hlcikpCiAgICAgewogICAgIH0KIAog
ICAgIFNvdXJjZU9yaWdpbigpID0gZGVmYXVsdDsKIAotICAgIGNvbnN0IFN0cmluZyYgc3RyaW5n
KCkgY29uc3QgeyByZXR1cm4gbV9zdHJpbmc7IH0KLSAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsg
cmV0dXJuIG1fc3RyaW5nLmlzTnVsbCgpOyB9CisgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7
IHJldHVybiBtX3VybDsgfQorICAgIFN0cmluZyBzdHJpbmcoKSBjb25zdCB7IHJldHVybiBtX3Vy
bC5zdHJpbmcoKTsgfQogCiAgICAgU2NyaXB0RmV0Y2hlciogZmV0Y2hlcigpIGNvbnN0IHsgcmV0
dXJuIG1fZmV0Y2hlci5nZXQoKTsgfQogCiBwcml2YXRlOgotICAgIFN0cmluZyBtX3N0cmluZzsK
KyAgICBVUkwgbV91cmw7CiAgICAgUmVmUHRyPFNjcmlwdEZldGNoZXI+IG1fZmV0Y2hlcjsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rocm93U2NvcGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGhyb3dTY29wZS5jcHAKaW5kZXgg
YTMxY2U5ZGQzYjA0MjI4M2RmN2RjZDg1NWRhOGVmMGEyNjQ5NzUwOC4uZGVjNjlhNDgzMTZlMTZh
ZTUzN2I1ODE1ZDA2ZTBjYmI3NGZhMTk1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVGhyb3dTY29wZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVGhyb3dTY29wZS5jcHAKQEAgLTgwLDE4ICs4MCwxMiBAQCBFeGNlcHRpb24qIFRocm93
U2NvcGU6OnRocm93RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEV4Y2Vw
dGlvbiogZQogCiBFeGNlcHRpb24qIFRocm93U2NvcGU6OnRocm93RXhjZXB0aW9uKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgZXJyb3IpCiB7Ci0gICAgaWYgKCFlcnJvci5p
c0NlbGwoKSB8fCAhanNEeW5hbWljQ2FzdDxFeGNlcHRpb24qPihtX3ZtLCBlcnJvci5hc0NlbGwo
KSkpCisgICAgaWYgKCFlcnJvci5pc0NlbGwoKSB8fCBlcnJvci5pc09iamVjdCgpIHx8ICFqc0R5
bmFtaWNDYXN0PEV4Y2VwdGlvbio+KG1fdm0sIGVycm9yLmFzQ2VsbCgpKSkKICAgICAgICAgbV92
bS52ZXJpZnlFeGNlcHRpb25DaGVja05lZWRJc1NhdGlzZmllZChtX3JlY3Vyc2lvbkRlcHRoLCBt
X2xvY2F0aW9uKTsKICAgICAKICAgICByZXR1cm4gbV92bS50aHJvd0V4Y2VwdGlvbihnbG9iYWxP
YmplY3QsIGVycm9yKTsKIH0KIAotRXhjZXB0aW9uKiBUaHJvd1Njb3BlOjp0aHJvd0V4Y2VwdGlv
bihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqKQotewotICAgIG1f
dm0udmVyaWZ5RXhjZXB0aW9uQ2hlY2tOZWVkSXNTYXRpc2ZpZWQobV9yZWN1cnNpb25EZXB0aCwg
bV9sb2NhdGlvbik7Ci0gICAgcmV0dXJuIG1fdm0udGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0
LCBvYmopOwotfQotCiB2b2lkIFRocm93U2NvcGU6OnNpbXVsYXRlVGhyb3coKQogewogICAgIFJF
TEVBU0VfQVNTRVJUKG1fdm0ubV90b3BFeGNlcHRpb25TY29wZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UaHJvd1Njb3BlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9UaHJvd1Njb3BlLmgKaW5kZXggNjkzMjE5N2U4MDU4YjlkNjgyOWUxNjY2
YWFkMDA3NDE2NDMxNjFhNC4uY2YzMzZmYzI0M2I2MDRhOGU3ZDVmMTRhODFiNjMxODJmMzg4Nzhh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGhyb3dTY29wZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rocm93U2NvcGUuaApAQCAtNDks
NyArNDksNiBAQCBwdWJsaWM6CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBFeGNlcHRpb24qIHRo
cm93RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiwgRXhjZXB0aW9uKik7CiAgICAgSlNfRVhQT1JU
X1BSSVZBVEUgRXhjZXB0aW9uKiB0aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCosIEpTVmFs
dWUpOwotICAgIEpTX0VYUE9SVF9QUklWQVRFIEV4Y2VwdGlvbiogdGhyb3dFeGNlcHRpb24oSlNH
bG9iYWxPYmplY3QqLCBKU09iamVjdCopOwogCiAgICAgdm9pZCByZWxlYXNlKCkgeyBtX2lzUmVs
ZWFzZWQgPSB0cnVlOyB9CiAKQEAgLTc5LDcgKzc4LDYgQEAgcHVibGljOgogCiAgICAgQUxXQVlT
X0lOTElORSBFeGNlcHRpb24qIHRocm93RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEV4Y2VwdGlvbiogZXhjZXB0aW9uKSB7IHJldHVybiBtX3ZtLnRocm93RXhjZXB0aW9u
KGdsb2JhbE9iamVjdCwgZXhjZXB0aW9uKTsgfQogICAgIEFMV0FZU19JTkxJTkUgRXhjZXB0aW9u
KiB0aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZh
bHVlKSB7IHJldHVybiBtX3ZtLnRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgdmFsdWUpOyB9
Ci0gICAgQUxXQVlTX0lOTElORSBFeGNlcHRpb24qIHRocm93RXhjZXB0aW9uKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmopIHsgcmV0dXJuIG1fdm0udGhyb3dFeGNl
cHRpb24oZ2xvYmFsT2JqZWN0LCBvYmopOyB9CiAKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgcmVs
ZWFzZSgpIHsgfQogfTsKQEAgLTk5LDkgKzk3LDE2IEBAIEFMV0FZU19JTkxJTkUgRXhjZXB0aW9u
KiB0aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Njb3Bl
CiAgICAgcmV0dXJuIHNjb3BlLnRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgdmFsdWUpOwog
fQogCi1BTFdBWVNfSU5MSU5FIEV4Y2VwdGlvbiogdGhyb3dFeGNlcHRpb24oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIEpTT2JqZWN0KiBvYmopCitBTFdB
WVNfSU5MSU5FIEVuY29kZWRKU1ZhbHVlIHRocm93Vk1FeGNlcHRpb24oSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIEV4Y2VwdGlvbiogZXhjZXB0aW9uKQog
ewotICAgIHJldHVybiBzY29wZS50aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIG9iaik7Cisg
ICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgZXhjZXB0aW9uKTsKKyAgICBy
ZXR1cm4gZW5jb2RlZEpTVmFsdWUoKTsKK30KKworQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1
ZSB0aHJvd1ZNRXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRocm93U2Nv
cGUmIHNjb3BlLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9i
amVjdCwgc2NvcGUsIHZhbHVlKTsKKyAgICByZXR1cm4gZW5jb2RlZEpTVmFsdWUoKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9v
bHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1
bmN0aW9uT3ZlcnJpZGVzLmNwcAppbmRleCBlMDkzOTZmNzQyZWVkNzUzYjZkYmVhNGNkOWE3OGVm
NjY1N2RkNDg1Li40OGIyZGE1ZTJmMjYxZmM5ZTA2YmVhYjdkOTRmZjcxOTQwZWY3ZmQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHAK
QEAgLTEzNyw3ICsxMzcsOSBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplT3ZlcnJpZGVJbmZvKGNv
bnN0IFNvdXJjZUNvZGUmIG9yaWdDb2RlLCBjb25zdCBTdHJpbmcmIG5ldwogICAgIG5ld1Byb3Zp
ZGVyU3RyLmFwcGVuZChvcmlnSGVhZGVyKTsKICAgICBuZXdQcm92aWRlclN0ci5hcHBlbmQobmV3
Qm9keSk7CiAKLSAgICBSZWY8U291cmNlUHJvdmlkZXI+IG5ld1Byb3ZpZGVyID0gU3RyaW5nU291
cmNlUHJvdmlkZXI6OmNyZWF0ZShuZXdQcm92aWRlclN0ciwgU291cmNlT3JpZ2luIHsgIjxvdmVy
cmlkZGVuPiIgfSwgVVJMKHsgfSwgIjxvdmVycmlkZGVuPiIpKTsKKyAgICBhdXRvIG92ZXJyaWRk
ZW4gPSAiPG92ZXJyaWRkZW4+Il9zOworICAgIFVSTCB1cmwoeyB9LCBvdmVycmlkZGVuKTsKKyAg
ICBSZWY8U291cmNlUHJvdmlkZXI+IG5ld1Byb3ZpZGVyID0gU3RyaW5nU291cmNlUHJvdmlkZXI6
OmNyZWF0ZShuZXdQcm92aWRlclN0ciwgU291cmNlT3JpZ2luIHsgdXJsIH0sIG92ZXJyaWRkZW4p
OwogCiAgICAgaW5mby5maXJzdExpbmUgPSAxOwogICAgIGluZm8ubGluZUNvdW50ID0gMTsgLy8g
RmFraW5nIGl0LiBUaGlzIGRvZXNuJ3QgcmVhbGx5IG1hdHRlciBmb3Igbm93LgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCmluZGV4IGUxMmY0ODE2YzNlMTQ0MjU1
YzFhNGY1MzJhMjg2NzdkZGIzZDI1NTYuLjhkNjdmNTMxN2M2NjQ1NTU0NmZhZmI3N2VhZGIyN2Yy
NWE1NDVmOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxh
clZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAK
QEAgLTE2NDgsMTEgKzE2NDgsNDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5m
byBKU0RvbGxhclZNOjpzX2luZm8gPSB7ICJEb2xsYXJWTSIsICZCYXNlOjpzX2luZm8sIG51bGxw
dHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNEb2xsYXJWTSkgfTsKIAotLy8gVHJp
Z2dlcnMgYSBjcmFzaCBpbW1lZGlhdGVseS4KLS8vIFVzYWdlOiAkdm0uY3Jhc2goKQotc3RhdGlj
IE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkNyYXNoKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK3N0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBkb1ByaW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lLCBib29sIGFkZExpbmVGZWVkKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNz
ZXJ0U2NvcGU7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZ2xvYmFsT2Jq
ZWN0LT52bSgpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY2FsbEZyYW1lLT5hcmd1
bWVudENvdW50KCk7ICsraSkgeworICAgICAgICBKU1ZhbHVlIGFyZyA9IGNhbGxGcmFtZS0+dW5j
aGVja2VkQXJndW1lbnQoaSk7CisgICAgICAgIGlmIChhcmcuaXNDZWxsKCkKKyAgICAgICAgICAg
ICYmICFhcmcuaXNPYmplY3QoKQorICAgICAgICAgICAgJiYgIWFyZy5pc1N0cmluZygpCisgICAg
ICAgICAgICAmJiAhYXJnLmlzQmlnSW50KCkpIHsKKyAgICAgICAgICAgIGRhdGFMb2coYXJnKTsK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBhcmdTdHIg
PSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KGkpLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVj
dCk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkp
OworICAgICAgICBkYXRhTG9nKGFyZ1N0cik7CisgICAgfQorICAgIGlmIChhZGRMaW5lRmVlZCkK
KyAgICAgICAgZGF0YUxvZygiXG4iKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOworfQorCisvLyBUcmlnZ2VycyBhIGNyYXNoIGFmdGVyIGR1bXBpbmcgYW55IHBh
cmFtYXRlciBwYXNzZWQgdG8gaXQuCisvLyBVc2FnZTogJHZtLmNyYXNoKC4uLikKK3N0YXRpYyBO
T19SRVRVUk5fRFVFX1RPX0NSQVNIIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25DcmFzaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK3sKKyAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOworCisgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1ND
T1BFKHZtKTsKKyAgICBpZiAoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkpIHsKKyAgICAgICAg
ZGF0YUxvZ0xuKCJEdW1waW5nICIsIGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpLCAiIHZhbHVl
cyBiZWZvcmUgY3Jhc2hpbmc6Iik7CisgICAgICAgIGNvbnN0IGJvb2wgYWRkTGluZUZlZWQgPSB0
cnVlOworICAgICAgICBkb1ByaW50KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBhZGRMaW5lRmVl
ZCk7CisgICAgICAgIGlmIChzY29wZS5leGNlcHRpb24oKSkgeworICAgICAgICAgICAgSlNWYWx1
ZSB2YWx1ZSA9IHNjb3BlLmV4Y2VwdGlvbigpLT52YWx1ZSgpOworICAgICAgICAgICAgc2NvcGUu
Y2xlYXJFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIGRhdGFMb2dMbigiRXJyb3IgdGhyb3duIHdo
aWxlIGNyYXNoaW5nOiAiLCB2YWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpKTsKKyAgICAg
ICAgfQorICAgIH0KKwogICAgIENSQVNIKCk7CiB9CiAKQEAgLTIwMjgsMjggKzIwNjQsNiBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBCeXRlY29kZUZv
cihKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBkb1ByaW50KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBib29sIGFkZExpbmVGZWVk
KQotewotICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7Ci0gICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZ2xvYmFsT2JqZWN0LT52bSgpKTsKLSAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCk7ICsraSkgewotICAg
ICAgICBKU1ZhbHVlIGFyZyA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoaSk7Ci0gICAg
ICAgIGlmIChhcmcuaXNDZWxsKCkKLSAgICAgICAgICAgICYmICFhcmcuaXNPYmplY3QoKQotICAg
ICAgICAgICAgJiYgIWFyZy5pc1N0cmluZygpCi0gICAgICAgICAgICAmJiAhYXJnLmlzQmlnSW50
KCkpIHsKLSAgICAgICAgICAgIGRhdGFMb2coYXJnKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICB9Ci0gICAgICAgIFN0cmluZyBhcmdTdHIgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFy
Z3VtZW50KGkpLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgICAgICBkYXRhTG9nKGFyZ1N0
cik7Ci0gICAgfQotICAgIGlmIChhZGRMaW5lRmVlZCkKLSAgICAgICAgZGF0YUxvZygiXG4iKTsK
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotfQotCiAvLyBQcmlu
dHMgYSBzZXJpZXMgb2YgY29tbWEgc2VwYXJhdGUgc3RyaW5ncyB3aXRob3V0IGFwcGVuZGluZyBh
IG5ld2xpbmUuCiAvLyBVc2FnZTogJHZtLmRhdGFMb2coc3RyMSwgc3RyMiwgc3RyMykKIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRGF0YUxvZyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1VSTC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwCmluZGV4IGZlMjlj
YTc3NzZjNTM4YmY4MDNkNmJjNjFiYWU3OTFmMjNjNGNhZmIuLjFkMzE0YmY4ZDA0Y2M0ZWU5YTVh
OWQxZDU2ZjhlNmNhMmViMGY0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1VSTC5jcHAK
KysrIGIvU291cmNlL1dURi93dGYvVVJMLmNwcApAQCAtMjEzLDcgKzIxMywxMSBAQCBTdHJpbmcg
VVJMOjpmaWxlU3lzdGVtUGF0aCgpIGNvbnN0CiAgICAgaWYgKCFpc0xvY2FsRmlsZSgpKQogICAg
ICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIGRlY29kZUVzY2FwZVNlcXVlbmNlc0Zyb21Q
YXJzZWRVUkwocGF0aCgpKTsKKyAgICBhdXRvIHJlc3VsdCA9IGRlY29kZUVzY2FwZVNlcXVlbmNl
c0Zyb21QYXJzZWRVUkwocGF0aCgpKTsKKyNpZiBQTEFURk9STShXSU4pCisgICAgcmVzdWx0ID0g
ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHJlc3VsdCk7CisjZW5kaWYKKyAgICByZXR1cm4gcmVz
dWx0OwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1VSTC5oIGIvU291
cmNlL1dURi93dGYvVVJMLmgKaW5kZXggOGIyMmUxNmM2Y2E0MDEyNWMwMmY2ODgxMjMwMjQ5NTZl
MGY0NDc5Ni4uMmM0NGZhZDA3ZTM1Mzk1OTFiNDk3MGYyY2ZlYWNhNzJhZDZlMzZjMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvVVJMLmgKKysrIGIvU291cmNlL1dURi93dGYvVVJMLmgKQEAg
LTc3LDYgKzc3LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogICAgIGJv
b2wgaXNWYWxpZCgpIGNvbnN0OwogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCA9IHZvaWQ+Cisg
ICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIHsgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWVf
djxULCB2b2lkPiwgIlVzaW5nIHVybCBpbiBhbiBpZiBzdGF0ZW1lbnQgaXMgZGlzYWxsb3dlZC4i
KTsgfQorCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHlvdSBjYW4gc2V0IHRoZSBob3N0IGFuZCBw
b3J0IGZvciB0aGUgVVJMLgogICAgIC8vIE5vbi1oaWVyYXJjaGljYWwgVVJMcyBkb24ndCBoYXZl
IGEgaG9zdCBhbmQgcG9ydC4KICAgICBib29sIGNhblNldEhvc3RPclBvcnQoKSBjb25zdCB7IHJl
dHVybiBpc0hpZXJhcmNoaWNhbCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaAppbmRleCAwZTgwMWZjYzk4ODI0
Nzc1YTZkNWIyMDI1Y2YyYjc0ZTk2YjhhNzY3Li5mZjZjMjBmZGJhYWMxMjcyYTQ0ZDcyMDFjMWI1
N2NkNzk1YWQzYjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNo
ZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgog
CiBwcml2YXRlOgogICAgIENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyKENhY2hlZFNjcmlwdCog
Y2FjaGVkU2NyaXB0LCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlLCBS
ZWY8Q2FjaGVkU2NyaXB0RmV0Y2hlcj4mJiBzY3JpcHRGZXRjaGVyKQotICAgICAgICA6IFNvdXJj
ZVByb3ZpZGVyKEpTQzo6U291cmNlT3JpZ2luIHsgY2FjaGVkU2NyaXB0LT5yZXNwb25zZSgpLnVy
bCgpLnN0cmluZygpLCBXVEZNb3ZlKHNjcmlwdEZldGNoZXIpIH0sIFVSTChjYWNoZWRTY3JpcHQt
PnJlc3BvbnNlKCkudXJsKCkpLCBUZXh0UG9zaXRpb24oKSwgc291cmNlVHlwZSkKKyAgICAgICAg
OiBTb3VyY2VQcm92aWRlcihKU0M6OlNvdXJjZU9yaWdpbiB7IGNhY2hlZFNjcmlwdC0+cmVzcG9u
c2UoKS51cmwoKSwgV1RGTW92ZShzY3JpcHRGZXRjaGVyKSB9LCBTdHJpbmcoY2FjaGVkU2NyaXB0
LT5yZXNwb25zZSgpLnVybCgpLnN0cmluZygpKSwgVGV4dFBvc2l0aW9uKCksIHNvdXJjZVR5cGUp
CiAgICAgICAgICwgbV9jYWNoZWRTY3JpcHQoY2FjaGVkU2NyaXB0KQogICAgIHsKICAgICAgICAg
bV9jYWNoZWRTY3JpcHQtPmFkZENsaWVudCgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oCmluZGV4IGQ1MTUzYWYxMjU1ZDM1ZGNkZTRhNjI3ZmZi
MThlNTAxY2YyNGUzMjMuLjUwY2NjZTYxMTc3YTcyYWY2ZjYyMDY4NzIzZWY1ZDQyMDU1MGRkMjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oCkBAIC01
NSw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICBKU0M6OkpTT2JqZWN0KiBqc0Z1bmN0aW9uKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9qc0Z1bmN0aW9uLmdldCgpOyB9CiAgICAgSlNDOjpKU09iamVj
dCogd3JhcHBlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fd3JhcHBlci5nZXQoKTsgfQogCi0g
ICAgdmlydHVhbCBTdHJpbmcgc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0K
KyAgICB2aXJ0dWFsIFVSTCBzb3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQog
ICAgIHZpcnR1YWwgVGV4dFBvc2l0aW9uIHNvdXJjZVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4g
VGV4dFBvc2l0aW9uKCk7IH0KIAogICAgIFN0cmluZyBmdW5jdGlvbk5hbWUoKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAK
aW5kZXggMWI0YjIxZWRhZDUxMzQ5M2Q4YjUxYmYyYTVmNzFlYmJhMTczMWZkZC4uZGJjZTliOTg1
YWM5OGM5MGVmYmU0YWFlYzQ0NjZkODdmNjRjZWY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTY2LDcgKzY2LDcgQEAg
c3RhdGljIFRleHRQb3NpdGlvbiBjb252ZXJ0WmVyb1RvT25lKGNvbnN0IFRleHRQb3NpdGlvbiYg
cG9zaXRpb24pCiAgICAgcmV0dXJuIHBvc2l0aW9uOwogfQogCi1KU0xhenlFdmVudExpc3RlbmVy
OjpKU0xhenlFdmVudExpc3RlbmVyKENyZWF0aW9uQXJndW1lbnRzJiYgYXJndW1lbnRzLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzb3VyY2VQb3NpdGlvbikK
K0pTTGF6eUV2ZW50TGlzdGVuZXI6OkpTTGF6eUV2ZW50TGlzdGVuZXIoQ3JlYXRpb25Bcmd1bWVu
dHMmJiBhcmd1bWVudHMsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRpb24m
IHNvdXJjZVBvc2l0aW9uKQogICAgIDogSlNFdmVudExpc3RlbmVyKG51bGxwdHIsIGFyZ3VtZW50
cy53cmFwcGVyLCB0cnVlLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSkKICAgICAsIG1fZnVuY3Rp
b25OYW1lKGFyZ3VtZW50cy5hdHRyaWJ1dGVOYW1lLmxvY2FsTmFtZSgpLnN0cmluZygpKQogICAg
ICwgbV9ldmVudFBhcmFtZXRlck5hbWUoZXZlbnRQYXJhbWV0ZXJOYW1lKGFyZ3VtZW50cy5zaG91
bGRVc2VTVkdFdmVudE5hbWUpKQpAQCAtMTk2LDcgKzE5Niw3IEBAIFJlZlB0cjxKU0xhenlFdmVu
dExpc3RlbmVyPiBKU0xhenlFdmVudExpc3RlbmVyOjpjcmVhdGUoQ3JlYXRpb25Bcmd1bWVudHMm
JiBhcmd1CiAgICAgICAgIGlmICghZnJhbWUtPnNjcmlwdCgpLmNhbkV4ZWN1dGVTY3JpcHRzKEFi
b3V0VG9DcmVhdGVFdmVudExpc3RlbmVyKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgICAgICBwb3NpdGlvbiA9IGZyYW1lLT5zY3JpcHQoKS5ldmVudEhhbmRsZXJQb3NpdGlvbigp
OwotICAgICAgICBzb3VyY2VVUkwgPSBhcmd1bWVudHMuZG9jdW1lbnQudXJsKCkuc3RyaW5nKCk7
CisgICAgICAgIHNvdXJjZVVSTCA9IGFyZ3VtZW50cy5kb2N1bWVudC51cmwoKTsKICAgICB9CiAK
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU0xhenlFdmVudExpc3RlbmVyKFdURk1vdmUoYXJn
dW1lbnRzKSwgc291cmNlVVJMLCBwb3NpdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5oCmluZGV4IDE3OWViNDM3OGRjZDI4YTRiNDNi
ZWU3MGIzM2U1N2JlYTllOGI1MTMuLjcyODg2OWRkYmRkYjA5MzAyNTc5YWJkZTFlNjRmNjAyMGU3
YjIyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50
TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExp
c3RlbmVyLmgKQEAgLTM5LDEzICszOSwxMyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5KU0xh
enlFdmVudExpc3RlbmVyKCk7CiAKLSAgICBTdHJpbmcgc291cmNlVVJMKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9zb3VyY2VVUkw7IH0KKyAgICBVUkwgc291cmNlVVJMKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9zb3VyY2VVUkw7IH0KICAgICBUZXh0UG9zaXRpb24gc291cmNlUG9zaXRpb24o
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NvdXJjZVBvc2l0aW9uOyB9CiAKIHByaXZhdGU6CiAg
ICAgc3RydWN0IENyZWF0aW9uQXJndW1lbnRzOwogICAgIHN0YXRpYyBSZWZQdHI8SlNMYXp5RXZl
bnRMaXN0ZW5lcj4gY3JlYXRlKENyZWF0aW9uQXJndW1lbnRzJiYpOwotICAgIEpTTGF6eUV2ZW50
TGlzdGVuZXIoQ3JlYXRpb25Bcmd1bWVudHMmJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGNv
bnN0IFRleHRQb3NpdGlvbiYpOworICAgIEpTTGF6eUV2ZW50TGlzdGVuZXIoQ3JlYXRpb25Bcmd1
bWVudHMmJiwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIGNvbnN0IFRleHRQb3NpdGlvbiYpOwogCiAj
aWYgQVNTRVJUX0VOQUJMRUQKICAgICB2b2lkIGNoZWNrVmFsaWRpdHlGb3JFdmVudFRhcmdldChF
dmVudFRhcmdldCYpIGZpbmFsOwpAQCAtNTcsNyArNTcsNyBAQCBwcml2YXRlOgogICAgIFN0cmlu
ZyBtX2Z1bmN0aW9uTmFtZTsKICAgICBjb25zdCBTdHJpbmcmIG1fZXZlbnRQYXJhbWV0ZXJOYW1l
OwogICAgIFN0cmluZyBtX2NvZGU7Ci0gICAgU3RyaW5nIG1fc291cmNlVVJMOworICAgIFVSTCBt
X3NvdXJjZVVSTDsKICAgICBUZXh0UG9zaXRpb24gbV9zb3VyY2VQb3NpdGlvbjsKICAgICBXZWFr
UHRyPENvbnRhaW5lck5vZGU+IG1fb3JpZ2luYWxOb2RlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggY2MyMDEyMTdiZjEwNmQ3
Y2FjMTFlY2NmN2YzZTI2M2RmOGFhYjY3Ni4uNzc1ZWQxYWQ4NDczOTU4MzE4YmRkZWI2MmRmZmM2
NmY2YzVhYTQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5jcHAKQEAgLTEyNSw3ICsxMjUsNyBAQCBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlwdENv
bnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyYwog
ICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOwogCiAgICAgY29uc3QgU291cmNlQ29k
ZSYganNTb3VyY2VDb2RlID0gc291cmNlQ29kZS5qc1NvdXJjZUNvZGUoKTsKLSAgICBTdHJpbmcg
c291cmNlVVJMID0ganNTb3VyY2VDb2RlLnByb3ZpZGVyKCktPnVybCgpLnN0cmluZygpOworICAg
IFN0cmluZyBzb3VyY2VVUkwgPSBqc1NvdXJjZUNvZGUucHJvdmlkZXIoKS0+c291cmNlT3JpZ2lu
KCkudXJsKCk7CiAKICAgICAvLyBldmFsdWF0ZSBjb2RlLiBSZXR1cm5zIHRoZSBKUyByZXR1cm4g
dmFsdWUgb3IgMAogICAgIC8vIGlmIHRoZXJlIHdhcyBub25lLCBhbiBlcnJvciBvY2N1cnJlZCBv
ciB0aGUgdHlwZSBjb3VsZG4ndCBiZSBjb252ZXJ0ZWQuCkBAIC02NDksNyArNjQ5LDcgQEAgVmFs
dWVPckV4Y2VwdGlvbiBTY3JpcHRDb250cm9sbGVyOjpjYWxsSW5Xb3JsZChSdW5KYXZhU2NyaXB0
UGFyYW1ldGVycyYmIHBhcmFtZXQKICAgICBhdXRvIHNvdXJjZUNvZGUgPSBTY3JpcHRTb3VyY2VD
b2RlIHsgZnVuY3Rpb25TdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCksIFdURk1vdmUocGFyYW1ldGVy
cy5zb3VyY2VVUkwpLCBUZXh0UG9zaXRpb24oKSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5
cGU6OlByb2dyYW0sIENhY2hlZFNjcmlwdEZldGNoZXI6OmNyZWF0ZShtX2ZyYW1lLmRvY3VtZW50
KCktPmNoYXJzZXQoKSkgfTsKICAgICBjb25zdCBhdXRvJiBqc1NvdXJjZUNvZGUgPSBzb3VyY2VD
b2RlLmpzU291cmNlQ29kZSgpOwogCi0gICAgU3RyaW5nIHNvdXJjZVVSTCA9IGpzU291cmNlQ29k
ZS5wcm92aWRlcigpLT51cmwoKS5zdHJpbmcoKTsKKyAgICBTdHJpbmcgc291cmNlVVJMID0ganNT
b3VyY2VDb2RlLnByb3ZpZGVyKCktPnNvdXJjZU9yaWdpbigpLnVybCgpOwogICAgIGNvbnN0IFN0
cmluZyogc2F2ZWRTb3VyY2VVUkwgPSBtX3NvdXJjZVVSTDsKICAgICBtX3NvdXJjZVVSTCA9ICZz
b3VyY2VVUkw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dFNvdXJjZUNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNv
ZGUuaAppbmRleCBmY2E1NzRjZmRhYWM0OWJhZGY0ZDgyOWYxOTIwMDIxMTE0MzcxOThiLi5jNzA0
NjI2ZmI3MzNkYjQ3MmJkYTUwMjM2MjQxYTZlNzQwZTI3ODJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGUgewogcHVibGljOgogICAgIFNj
cmlwdFNvdXJjZUNvZGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIFVSTCYmIHVybCA9IFVSTCgpLCBj
b25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRpb24oKSwgSlNDOjpT
b3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSA9IEpTQzo6U291cmNlUHJvdmlkZXJT
b3VyY2VUeXBlOjpQcm9ncmFtKQotICAgICAgICA6IG1fcHJvdmlkZXIoSlNDOjpTdHJpbmdTb3Vy
Y2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgSlNDOjpTb3VyY2VPcmlnaW4geyB1cmwuc3RyaW5n
KCkgfSwgV1RGTW92ZSh1cmwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSkKKyAgICAgICAg
OiBtX3Byb3ZpZGVyKEpTQzo6U3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIEpT
Qzo6U291cmNlT3JpZ2luIHsgdXJsIH0sIHVybC5zdHJpbmcoKSwgc3RhcnRQb3NpdGlvbiwgc291
cmNlVHlwZSkpCiAgICAgICAgICwgbV9jb2RlKG1fcHJvdmlkZXIuY29weVJlZigpLCBzdGFydFBv
c2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpLCBzdGFydFBvc2l0aW9uLm1fY29sdW1uLm9uZUJh
c2VkSW50KCkpCiAgICAgewogICAgIH0KQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIH0K
IAogICAgIFNjcmlwdFNvdXJjZUNvZGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIFVSTCYmIHVybCwg
Y29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBKU0M6OlNvdXJjZVByb3ZpZGVyU291
cmNlVHlwZSBzb3VyY2VUeXBlLCBSZWY8Q2FjaGVkU2NyaXB0RmV0Y2hlcj4mJiBzY3JpcHRGZXRj
aGVyKQotICAgICAgICA6IG1fcHJvdmlkZXIoSlNDOjpTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3Jl
YXRlKHNvdXJjZSwgSlNDOjpTb3VyY2VPcmlnaW4geyB1cmwuc3RyaW5nKCksIFdURk1vdmUoc2Ny
aXB0RmV0Y2hlcikgfSwgV1RGTW92ZSh1cmwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSkK
KyAgICAgICAgOiBtX3Byb3ZpZGVyKEpTQzo6U3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShz
b3VyY2UsIEpTQzo6U291cmNlT3JpZ2luIHsgdXJsLCBXVEZNb3ZlKHNjcmlwdEZldGNoZXIpIH0s
IHVybC5zdHJpbmcoKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkpCiAgICAgICAgICwgbV9j
b2RlKG1fcHJvdmlkZXIuY29weVJlZigpLCBzdGFydFBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZElu
dCgpLCBzdGFydFBvc2l0aW9uLm1fY29sdW1uLm9uZUJhc2VkSW50KCkpCiAgICAgewogICAgIH0K
QEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogCiAgICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3Jp
cHQoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFNjcmlwdC5nZXQoKTsgfQogCi0gICAgY29uc3Qg
VVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3Byb3ZpZGVyLT51cmwoKTsgfQorICAgIGNvbnN0
IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV9wcm92aWRlci0+c291cmNlT3JpZ2luKCkudXJs
KCk7IH0KICAgICAKIHByaXZhdGU6CiAgICAgUmVmPEpTQzo6U291cmNlUHJvdmlkZXI+IG1fcHJv
dmlkZXI7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDgwZWYzNTIwOGE0YzVmMjlmNDgzYzgwODU2ODRmYTVkZjAzYTQ2MjQuLjI4ODZjOTIy
Njg2NmE3Y2M0MDE4Y2VhOWExZmZjZTk2OTQ1MWI4NjUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTAgQEAKKzIwMjAtMDct
MTAgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xl
YW4gdXAgU291cmNlUHJvdmlkZXIgYW5kIGFkZCBjYWxsZXIgcmVsYXRpdmUgbG9hZCBzY3JpcHQg
dG8ganNjLmNwcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE0MjA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBzdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy0yLmpzOgorICAg
ICAgICAqIHN0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTMuanM6Cisg
ICAgICAgICogc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNC5qczoK
KyAgICAgICAgKiBzdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy01Lmpz
OgorICAgICAgICAqIHN0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLmpz
OgorICAgICAgICAqIHN0cmVzcy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUuanM6
CisgICAgICAgICogc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXJlZGVmaW5lLWNvbnN0LmpzOgorICAg
ICAgICAqIHN0cmVzcy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS10ZHouanM6CisgICAgICAgICog
c3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXVucmVzb2x2ZWQtcHJvcGVydHkuanM6Cisg
ICAgICAgICogc3RyZXNzL2dsb2JhbC1wcm9wZXJ0eS1pbnRvLXZhcmlhYmxlLWdldC1mcm9tLXNj
b3BlLmpzOgorICAgICAgICAqIHN0cmVzcy9qc29ucC1saXRlcmFsLXBhcnNlci1zZW1pY29sb24t
aXMtbm90LWFzc2lnbm1lbnQuanM6CisgICAgICAgICogc3RyZXNzL29wX2FkZC5qczoKKyAgICAg
ICAgKiBzdHJlc3Mvb3BfYml0YW5kLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9iaXRvci5qczoK
KyAgICAgICAgKiBzdHJlc3Mvb3BfYml0eG9yLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9kaXYt
Q29uc3RWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX2Rpdi1WYXJDb25zdC5qczoKKyAgICAg
ICAgKiBzdHJlc3Mvb3BfZGl2LVZhclZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfbHNoaWZ0
LUNvbnN0VmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9sc2hpZnQtVmFyQ29uc3QuanM6Cisg
ICAgICAgICogc3RyZXNzL29wX2xzaGlmdC1WYXJWYXIuanM6CisgICAgICAgICogc3RyZXNzL29w
X21vZC1Db25zdFZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfbW9kLVZhckNvbnN0LmpzOgor
ICAgICAgICAqIHN0cmVzcy9vcF9tb2QtVmFyVmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9t
dWwtQ29uc3RWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX211bC1WYXJDb25zdC5qczoKKyAg
ICAgICAgKiBzdHJlc3Mvb3BfbXVsLVZhclZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfbmVn
YXRlLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9wb3N0ZGVjLmpzOgorICAgICAgICAqIHN0cmVz
cy9vcF9wb3N0aW5jLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9wcmVkZWMuanM6CisgICAgICAg
ICogc3RyZXNzL29wX3ByZWluYy5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfcnNoaWZ0LUNvbnN0
VmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9yc2hpZnQtVmFyQ29uc3QuanM6CisgICAgICAg
ICogc3RyZXNzL29wX3JzaGlmdC1WYXJWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX3N1Yi1D
b25zdFZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3Bfc3ViLVZhckNvbnN0LmpzOgorICAgICAg
ICAqIHN0cmVzcy9vcF9zdWItVmFyVmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF91cnNoaWZ0
LUNvbnN0VmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF91cnNoaWZ0LVZhckNvbnN0LmpzOgor
ICAgICAgICAqIHN0cmVzcy9vcF91cnNoaWZ0LVZhclZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mv
cmVncmVzcy0xNTk3NzktMS5qczoKKyAgICAgICAgKG1ha2VVc2VSZWdyZXNzaW9uVGVzdCk6Cisg
ICAgICAgICogc3RyZXNzL3JlZ3Jlc3MtMTU5Nzc5LTIuanM6CisgICAgICAgIChtYWtlVXNlUmVn
cmVzc2lvblRlc3QpOgorICAgICAgICAqIHN0cmVzcy9yZXNvdXJjZXMvdHlwZWRhcnJheS1jb25z
dHJ1Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzOgorICAgICAgICAqIHN0cmVzcy9yZXNvdXJjZXMv
dHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanM6CisgICAgICAgICogc3RyZXNzL3Nh
bXBsaW5nLXByb2ZpbGVyLWFub255bW91cy1mdW5jdGlvbi5qczoKKyAgICAgICAgKiBzdHJlc3Mv
c2FtcGxpbmctcHJvZmlsZXItYmFzaWMuanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXBy
b2ZpbGVyLWJvdW5kLWZ1bmN0aW9uLW5hbWUuanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5n
LXByb2ZpbGVyLWRlZXAtc3RhY2suanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2Zp
bGVyLWRpc3BsYXktbmFtZS5qczoKKyAgICAgICAgKiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXIt
aW50ZXJuYWwtZnVuY3Rpb24tbmFtZS5qczoKKyAgICAgICAgKiBzdHJlc3Mvc2FtcGxpbmctcHJv
ZmlsZXItbWljcm90YXNrcy5qczoKKyAgICAgICAgKiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXIt
d2FzbS1uYW1lLXNlY3Rpb24uanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVy
LXdhc20uanM6CisgICAgICAgICogc3RyZXNzL3NoYWRvdy1jaGlja2VuLWRpc2FibGVkLmpzOgor
ICAgICAgICAqIHN0cmVzcy9zaGFkb3ctY2hpY2tlbi1lbmFibGVkLmpzOgorICAgICAgICAqIHN0
cmVzcy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFy
cmF5LWNvcHlXaXRoaW4uanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktZXZlcnkuanM6
CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktZmlsbC5qczoKKyAgICAgICAgKiBzdHJlc3Mv
dHlwZWRhcnJheS1maWx0ZXIuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktZmluZC5q
czoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1maW5kSW5kZXguanM6CisgICAgICAgICog
c3RyZXNzL3R5cGVkYXJyYXktZm9yRWFjaC5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJh
eS1mcm9tLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWluY2x1ZGVzLmpzOgorICAg
ICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWluZGV4T2YuanM6CisgICAgICAgICogc3RyZXNzL3R5
cGVkYXJyYXktbGFzdEluZGV4T2YuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktbWFw
LmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LW9mLmpzOgorICAgICAgICAqIHN0cmVz
cy90eXBlZGFycmF5LXJlZHVjZS5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1yZWR1
Y2VSaWdodC5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1zZXQuanM6CisgICAgICAg
ICogc3RyZXNzL3R5cGVkYXJyYXktc2xpY2UuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJy
YXktc29tZS5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1zb3J0LmpzOgorICAgICAg
ICAqIHN0cmVzcy90eXBlZGFycmF5LXN1YmFycmF5LmpzOgorCiAyMDIwLTA3LTA5ICBDYWlvIExp
bWEgIDx0aWNhaW9saW1hQGdtYWlsLmNvbT4KIAogICAgICAgICBbSlNDXVszMi1iaXRzXSBUZXN0
IGdhcmRlbmluZyBKdWx5IDl0aApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNv
bnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy0yLmpzIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNv
bnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy0yLmpzCmluZGV4IGZjZmRkZjQ5NDk3M2M2NjQ1MzZi
MDcxNWU5MTBiNTY2NmM5ZDMzMWQuLmEyMGFjNTczY2M3ZGYxZmQwODkyOGY2MTA1MzNhZGNlYzY4
ZTBhNDAgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0
aW9uLXNldHRpbmctMi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNs
YXJhdGlvbi1zZXR0aW5nLTIuanMKQEAgLTgsOCArOCw4IEBAIGZ1bmN0aW9uIGFzc2VydChiKSB7
CiBzZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGROb3RUaHJvdygpOyAvLyBBbGxvdyBk
dXBsaWNhdGUgY29uc3QgZGVjbGFyYXRpb25zIGF0IHRoZSBnbG9iYWwgbGV2ZWwuCiAKIGZvciAo
bGV0IGkgPSAwOyBpIDwgMTAwOyBpKyspIHsKLSAgICBsb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRl
Y2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiKTsKKyAgICBsb2FkKCIuL2dsb2JhbC1jb25zdC1y
ZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAgICAg
YXNzZXJ0KGZvbyA9PT0gMjApOwotICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRp
b24tc2V0dGluZy9zZWNvbmQuanMiKTsKKyAgICBsb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xh
cmF0aW9uLXNldHRpbmcvc2Vjb25kLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogICAgIGFzc2Vy
dChmb28gPT09IDQwKTsKIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25z
dC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMy5qcyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25z
dC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMy5qcwppbmRleCAxMTc3Y2I5NTgxMTMwN2JiNjY3ZDM5
MGM2OWFjZGU3MjJmNzFlNDRiLi4xMDI0MDk2Y2UxYjM1YmYyMjBmMGE1YTE5MGExMTkyNTlmNDk2
NzE4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlv
bi1zZXR0aW5nLTMuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFy
YXRpb24tc2V0dGluZy0zLmpzCkBAIC03LDExICs3LDExIEBAIGZ1bmN0aW9uIGFzc2VydChiKSB7
CiAKIHNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZE5vdFRocm93KCk7IC8vIEFsbG93
IGR1cGxpY2F0ZSBjb25zdCBkZWNsYXJhdGlvbnMgYXQgdGhlIGdsb2JhbCBsZXZlbC4KIAotbG9h
ZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2ZpcnN0LmpzIik7Citsb2Fk
KCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiLCAiY2FsbGVy
IHJlbGF0aXZlIik7CiBhc3NlcnQoZm9vID09PSAyMCk7CiBsZXQgdGhyZXcgPSBmYWxzZTsKIHRy
eSB7Ci0gICAgbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL3N0cmlj
dC5qcyIpOyAvLyBXZSBpZ25vcmUgdGhlIHNldHRpbmcgYW5kIGFsd2F5cyB0aHJvdyBhbiBlcnJv
ciB3aGVuIGluIHN0cmljdCBtb2RlIQorICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFy
YXRpb24tc2V0dGluZy9zdHJpY3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7IC8vIFdlIGlnbm9y
ZSB0aGUgc2V0dGluZyBhbmQgYWx3YXlzIHRocm93IGFuIGVycm9yIHdoZW4gaW4gc3RyaWN0IG1v
ZGUhCiB9IGNhdGNoKGUpIHsKICAgICB0aHJldyA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTQuanMgYi9KU1Rl
c3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTQuanMKaW5kZXgg
ZDk2YTNkNmUyZTUzYTE2YzIyNzk5MWJhZjNlNmY3ZjRlMTI1YTEzMi4uMWZmN2Q3NmIyNzkyMmYy
MmVmZWM3MGZjMGU5MmE1MTA2NTUyYTczMCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvZ2xv
YmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy00LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNC5qcwpAQCAtNywxMSArNywxMSBA
QCBmdW5jdGlvbiBhc3NlcnQoYikgewogCiBzZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91
bGROb3RUaHJvdygpOyAvLyBBbGxvdyBkdXBsaWNhdGUgY29uc3QgZGVjbGFyYXRpb25zIGF0IHRo
ZSBnbG9iYWwgbGV2ZWwuCiAKLWxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0
dGluZy9maXJzdC5qcyIpOworbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0
aW5nL2ZpcnN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogYXNzZXJ0KGZvbyA9PT0gMjApOwog
bGV0IHRocmV3ID0gZmFsc2U7CiB0cnkgewotICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVj
bGFyYXRpb24tc2V0dGluZy9sZXQuanMiKTsgLy8gUmVkZWNsYXJhdGlvbiBhICdsZXQnIHZhcmlh
YmxlIHNob3VsZCB0aHJvdyBiZWNhdXNlIHRoaXMgZG9lc24ndCBicmVhayBiYWNrd2FyZHMgY29t
cGF0LgorICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9sZXQu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7IC8vIFJlZGVjbGFyYXRpb24gYSAnbGV0JyB2YXJpYWJs
ZSBzaG91bGQgdGhyb3cgYmVjYXVzZSB0aGlzIGRvZXNuJ3QgYnJlYWsgYmFja3dhcmRzIGNvbXBh
dC4KIH0gY2F0Y2goZSkgewogICAgIHRocmV3ID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNS5qcyBiL0pTVGVz
dHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNS5qcwppbmRleCBl
M2VhMDkxODE0Y2RiYTBjYzRkMGUzODQ0MjA3NTZjYjU2ZWJlMGRiLi5mYjEyM2Q2MjYzMGU3NzUw
YTcwNTg1NWQwMGQwZTJmYWJhMzMzNzRjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9nbG9i
YWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTUuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mv
Z2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy01LmpzCkBAIC03LDExICs3LDExIEBA
IGZ1bmN0aW9uIGFzc2VydChiKSB7CiAKIHNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3Vs
ZE5vdFRocm93KCk7IC8vIEFsbG93IGR1cGxpY2F0ZSBjb25zdCBkZWNsYXJhdGlvbnMgYXQgdGhl
IGdsb2JhbCBsZXZlbC4KIAotbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0
aW5nL2xldC5qcyIpOworbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5n
L2xldC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGFzc2VydChmb28gPT09IDUwKTsKIGxldCB0
aHJldyA9IGZhbHNlOwogdHJ5IHsKLSAgICBsb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0
aW9uLXNldHRpbmcvZmlyc3QuanMiKTsgLy8gUmVkZWNsYXJhdGlvbiBvZiBhICdsZXQnIHRvICdj
b25zdCcgc2hvdWxkIGFsd2F5cyB0aHJvdyBiZWNhdXNlIGl0IGlzbid0IGJyZWFraW5nIGJhY2t3
YXJkcyBjb21wYXQuCisgICAgbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0
aW5nL2ZpcnN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOyAvLyBSZWRlY2xhcmF0aW9uIG9mIGEg
J2xldCcgdG8gJ2NvbnN0JyBzaG91bGQgYWx3YXlzIHRocm93IGJlY2F1c2UgaXQgaXNuJ3QgYnJl
YWtpbmcgYmFja3dhcmRzIGNvbXBhdC4KIH0gY2F0Y2goZSkgewogICAgIHRocmV3ID0gdHJ1ZTsK
IH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9u
LXNldHRpbmcuanMgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1z
ZXR0aW5nLmpzCmluZGV4IGFlZDFiNDFjNGFhMzY4ZWFhOTBkMjZkOTVjYzNhNDNlYzNjY2QwZTIu
LjRjOTQzZGU2M2E2OGVjYjI1ODVkZjdiYTg3YWUyNmY5NzhkODY4YzggMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcuanMKKysrIGIv
SlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy5qcwpAQCAt
Nyw3ICs3LDcgQEAgZnVuY3Rpb24gYXNzZXJ0KGIpIHsKIAogc2V0R2xvYmFsQ29uc3RSZWRlY2xh
cmF0aW9uU2hvdWxkTm90VGhyb3coKTsgLy8gQWxsb3cgZHVwbGljYXRlIGNvbnN0IGRlY2xhcmF0
aW9ucyBhdCB0aGUgZ2xvYmFsIGxldmVsLgogCi1sb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xh
cmF0aW9uLXNldHRpbmcvZmlyc3QuanMiKTsKK2xvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFy
YXRpb24tc2V0dGluZy9maXJzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGFzc2VydChmb28g
PT09IDIwKTsKLWxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9zZWNv
bmQuanMiKTsKK2xvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9zZWNv
bmQuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBhc3NlcnQoZm9vID09PSA0MCk7CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUuanMg
Yi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUuanMKaW5k
ZXggNmVjMjg3YjZkMTYwNDNmODhhZDFmOGVkY2I5YTk3ZDI2ZjdjNzA5ZC4uNTE2MzM4YzE2ZDkz
YTk1ZWFkODRkOWNmYTUwY2JkNWJlMzllOGVkYSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mv
Z2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS5qcwpAQCAtMzAsMzUgKzMwLDM1IEBA
IGZ1bmN0aW9uIGFzc2VydFByb3BlckVycm9yKGUpIHsKIGFzc2VydEV4cGVjdGF0aW9ucygpOwog
CiB0cnkgewotICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwt
cmVkZWNsYXJlLXZhcmlhYmxlL2ZpcnN0LmpzIik7CisgICAgbG9hZCgiLi9tdWx0aXBsZS1maWxl
cy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvZmlyc3QuanMiLCAiY2Fs
bGVyIHJlbGF0aXZlIik7CiB9IGNhdGNoKGUpIHsKICAgICBhc3NlcnRQcm9wZXJFcnJvcihlKTsK
IH0KIGFzc2VydEV4cGVjdGF0aW9ucygpOwogCiB0cnkgewotICAgIGxvYWQoIi4vbXVsdGlwbGUt
ZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL3NlY29uZC5qcyIp
OworICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNs
YXJlLXZhcmlhYmxlL3NlY29uZC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIH0gY2F0Y2goZSkg
ewogICAgIGFzc2VydFByb3BlckVycm9yKGUpOwogfQogYXNzZXJ0RXhwZWN0YXRpb25zKCk7CiAK
IHRyeSB7Ci0gICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1y
ZWRlY2xhcmUtdmFyaWFibGUvdGhpcmQuanMiKTsKKyAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVz
LXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS90aGlyZC5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKIH0gY2F0Y2goZSkgewogICAgIGFzc2VydFByb3BlckVycm9yKGUpOwog
fQogYXNzZXJ0RXhwZWN0YXRpb25zKCk7CiAKIHRyeSB7Ci0gICAgbG9hZCgiLi9tdWx0aXBsZS1m
aWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvZm91cnRoLmpzIik7
CisgICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xh
cmUtdmFyaWFibGUvZm91cnRoLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRjaChlKSB7
CiAgICAgYXNzZXJ0UHJvcGVyRXJyb3IoZSk7CiB9CiBhc3NlcnRFeHBlY3RhdGlvbnMoKTsKIAog
dHJ5IHsKLSAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJl
ZGVjbGFyZS12YXJpYWJsZS9maWZ0aC5qcyIpOworICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMt
dGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL2ZpZnRoLmpzIiwgImNhbGxl
ciByZWxhdGl2ZSIpOwogfSBjYXRjaChlKSB7CiAgICAgYXNzZXJ0UHJvcGVyRXJyb3IoZSk7CiB9
CkBAIC03MCw3ICs3MCw3IEBAIGFzc2VydEV4cGVjdGF0aW9ucygpOwogdHJ5IHsKICAgICBzZW50
aW5lbCA9ICJiYWQiOwogICAgIGFzc2VydChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KHRoaXMsICJnbG9iYWxQcm9wZXJ0eSIpLmNvbmZpZ3VyYWJsZSk7Ci0gICAgbG9hZCgiLi9tdWx0
aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvc2l4dGgu
anMiKTsKKyAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJl
ZGVjbGFyZS12YXJpYWJsZS9zaXh0aC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIH0gY2F0Y2go
ZSkgewogICAgIGFzc2VydChmYWxzZSk7CiB9CkBAIC03OSw3ICs3OSw3IEBAIGFzc2VydEV4cGVj
dGF0aW9ucygpOwogdHJ5IHsKICAgICBzZW50aW5lbCA9ICJiYWQiOwogICAgIGFzc2VydChPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMsICJBcnJheSIpLmNvbmZpZ3VyYWJsZSk7
Ci0gICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xh
cmUtdmFyaWFibGUvc2V2ZW50aC5qcyIpOworICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVz
dHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL3NldmVudGguanMiLCAiY2FsbGVy
IHJlbGF0aXZlIik7CiB9IGNhdGNoKGUpIHsKICAgICBhc3NlcnQoZmFsc2UpOwogfQpAQCAtODgs
NyArODgsNyBAQCBhc3NlcnRFeHBlY3RhdGlvbnMoKTsKIHRyeSB7CiAgICAgc2VudGluZWwgPSAi
YmFkIjsKICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2ZvbycsIHt2YWx1ZTogNSwg
Y29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZX0pOwotICAgIGxvYWQoIi4vbXVsdGlw
bGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL2VpZ2h0aC5q
cyIpOworICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVk
ZWNsYXJlLXZhcmlhYmxlL2VpZ2h0aC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIH0gY2F0Y2go
ZSkgewogICAgIGFzc2VydChmYWxzZSk7CiB9CkBAIC05Niw3ICs5Niw3IEBAIGFzc2VydEV4cGVj
dGF0aW9ucygpOwogCiB0cnkgewogICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnYmFy
Jywge3ZhbHVlOiA1LCBjb25maWd1cmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZX0pOwotICAg
IGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZh
cmlhYmxlL25pbnRoLmpzIik7CisgICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9i
YWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvbmludGguanMiLCAiY2FsbGVyIHJlbGF0aXZl
Iik7CiB9IGNhdGNoKGUpIHsKICAgICBhc3NlcnRQcm9wZXJFcnJvcihlKTsKIH0KQEAgLTEwNiw3
ICsxMDYsNyBAQCBhc3NlcnQoZXJyb3JDb3VudCA9PT0gNik7CiAKIHRyeSB7CiAgICAgT2JqZWN0
LmRlZmluZVByb3BlcnR5KHRoaXMsICd6b28nLCB7dmFsdWU6IHVuZGVmaW5lZCwgY29uZmlndXJh
YmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWV9KTsKLSAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVz
LXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS90ZW50aC5qcyIpOworICAg
IGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZh
cmlhYmxlL3RlbnRoLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRjaChlKSB7CiAgICAg
YXNzZXJ0UHJvcGVyRXJyb3IoZSk7CiB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nbG9i
YWwtbGV4aWNhbC1yZWRlZmluZS1jb25zdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhp
Y2FsLXJlZGVmaW5lLWNvbnN0LmpzCmluZGV4IDFjNmJhZjdjMzcyMjUyY2IwYzk3YjM1ZmM4NDQ0
Zjg1YzA2NmU5MWIuLjk0YWM0YWQzOTQyNTIwODY0YjBkODYyM2U3NWNjMDkyN2M5NGJhYmQgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXJlZGVmaW5lLWNvbnN0Lmpz
CisrKyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXJlZGVmaW5lLWNvbnN0LmpzCkBA
IC0xLDIgKzEsMiBAQAotbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNh
bC1yZWRlZmluZS1jb25zdC9maXJzdC5qcyIpOwotbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0
cy9nbG9iYWwtbGV4aWNhbC1yZWRlZmluZS1jb25zdC9zZWNvbmQuanMiKTsKK2xvYWQoIi4vbXVs
dGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWZpbmUtY29uc3QvZmlyc3QuanMi
LCAiY2FsbGVyIHJlbGF0aXZlIik7Citsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2Jh
bC1sZXhpY2FsLXJlZGVmaW5lLWNvbnN0L3NlY29uZC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXRkei5q
cyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXRkei5qcwppbmRleCBl
ODhjZmQ2YTI1NjIzN2ZlM2MyZDU3ZmQxMWQ1MDAxNTY2MDg5YTBhLi5lMmExZTE3MWMxNzNlZjBi
MWI2YWZlZDgzNmFhNGIzNTJlZmQ1ZWZjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9nbG9i
YWwtbGV4aWNhbC12YXJpYWJsZS10ZHouanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWxl
eGljYWwtdmFyaWFibGUtdGR6LmpzCkBAIC0xLDIgKzEsMiBAQAotbG9hZCgiLi9tdWx0aXBsZS1m
aWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS10ZHovZmlyc3QuanMiKTsKLWxvYWQo
Ii4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdGR6L3NlY29u
ZC5qcyIpOworbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC12YXJp
YWJsZS10ZHovZmlyc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7Citsb2FkKCIuL211bHRpcGxl
LWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXRkei9zZWNvbmQuanMiLCAiY2Fs
bGVyIHJlbGF0aXZlIik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNh
bC12YXJpYWJsZS11bnJlc29sdmVkLXByb3BlcnR5LmpzIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFs
LWxleGljYWwtdmFyaWFibGUtdW5yZXNvbHZlZC1wcm9wZXJ0eS5qcwppbmRleCBkNjIyMTQ1NDQx
YmEwMWRjYmVjYzU4YmZiOWQ5ZWY4Y2IwNzYzZGRlLi5kZTE5MzhjNjBlMDkzMGYyZDJjOWU1ZmYx
ZDc0YjczN2FmMDIwZTg3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNh
bC12YXJpYWJsZS11bnJlc29sdmVkLXByb3BlcnR5LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2ds
b2JhbC1sZXhpY2FsLXZhcmlhYmxlLXVucmVzb2x2ZWQtcHJvcGVydHkuanMKQEAgLTEsMiArMSwy
IEBACi1sb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxl
LXVucmVzb2x2ZWQtcHJvcGVydHkvZmlyc3QuanMiKTsKLWxvYWQoIi4vbXVsdGlwbGUtZmlsZXMt
dGVzdHMvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdW5yZXNvbHZlZC1wcm9wZXJ0eS9zZWNvbmQu
anMiKTsKK2xvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtdmFyaWFi
bGUtdW5yZXNvbHZlZC1wcm9wZXJ0eS9maXJzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKK2xv
YWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdW5yZXNv
bHZlZC1wcm9wZXJ0eS9zZWNvbmQuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtcHJvcGVydHktaW50by12YXJpYWJsZS1nZXQtZnJvbS1z
Y29wZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1wcm9wZXJ0eS1pbnRvLXZhcmlhYmxlLWdl
dC1mcm9tLXNjb3BlLmpzCmluZGV4IDk0N2M0ZThmMTIyMGQ2MTg4MGY1Y2RjNDBiNmFlYzI5OWNh
ZGExMWEuLjQxZGVlNTk1YjYyNDljODNkMmFlNjUyYjBkZWI0MDk1ODEzYjAyYTQgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1wcm9wZXJ0eS1pbnRvLXZhcmlhYmxlLWdldC1mcm9t
LXNjb3BlLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1wcm9wZXJ0eS1pbnRvLXZhcmlh
YmxlLWdldC1mcm9tLXNjb3BlLmpzCkBAIC02LDcgKzYsNyBAQAogLy8gbm9JbmxpbmUgYXMgdGhl
IGN1cnJlbnQgZ2xvYmFsIG9iamVjdCB3b3VsZCBub3QgaGF2ZSBub0lubGluZSBhcyBhIHByb3Bl
cnR5CiAvLyBhdCB0aGF0IHBvaW50IGFuZCB3ZSB3b3VsZCBhdHRlbXB0IHRvIGFjY2VzcyB0aGUg
dmFsdWUgYXQgYW4gaW52YWxpZCBvZmZzZXQuCiAKLWxvYWQoInJlc291cmNlcy9zdGFuZGFsb25l
LXByZS5qcyIpOworbG9hZCgicmVzb3VyY2VzL3N0YW5kYWxvbmUtcHJlLmpzIiwgImNhbGxlciBy
ZWxhdGl2ZSIpOwogCiBub0lubGluZSgpOwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9p
bXBvcnQtd2l0aC1lbXB0eS1zdHJpbmcuanMgYi9KU1Rlc3RzL3N0cmVzcy9pbXBvcnQtd2l0aC1l
bXB0eS1zdHJpbmcuanMKaW5kZXggZDE3NGVjOWVjZjUxOGMzZmQ0YjAyZTczNjQwMTJhMWE2MWRi
Mzg0My4uYWFhZGU5ODk2M2IzOGRlNTZiZGZlNTc3OWUyYTg5ZDc2MzA1M2UwNCAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9zdHJlc3MvaW1wb3J0LXdpdGgtZW1wdHktc3RyaW5nLmpzCisrKyBiL0pTVGVz
dHMvc3RyZXNzL2ltcG9ydC13aXRoLWVtcHR5LXN0cmluZy5qcwpAQCAtMSwyICsxLDIgQEAKLWlt
cG9ydCgiIikudGhlbigkdm0uYWJvcnQsIGZ1bmN0aW9uICgpIHsKK2ltcG9ydCgiIikudGhlbigk
dm0uYWJvcnQsIGZ1bmN0aW9uIChlKSB7CiB9KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L2pzb25wLWxpdGVyYWwtcGFyc2VyLXNlbWljb2xvbi1pcy1ub3QtYXNzaWdubWVudC5qcyBiL0pT
VGVzdHMvc3RyZXNzL2pzb25wLWxpdGVyYWwtcGFyc2VyLXNlbWljb2xvbi1pcy1ub3QtYXNzaWdu
bWVudC5qcwppbmRleCA4MWFhNjJhZWNiZmNmNTZiZWZkYzlhNDViYzQxMjZlMjM5MTI5NjM2Li5k
YWFhZTFiYmVlOWRhOTFlZTg4MGM4NGExMjc4YjEzZTVjN2NhZjA0IDEwMDY0NAotLS0gYS9KU1Rl
c3RzL3N0cmVzcy9qc29ucC1saXRlcmFsLXBhcnNlci1zZW1pY29sb24taXMtbm90LWFzc2lnbm1l
bnQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvanNvbnAtbGl0ZXJhbC1wYXJzZXItc2VtaWNvbG9u
LWlzLW5vdC1hc3NpZ25tZW50LmpzCkBAIC0xLDQgKzEsNCBAQAogeCA9IHVuZGVmaW5lZDsKLWxv
YWQoIi4vcmVzb3VyY2VzL2xpdGVyYWwtcGFyc2VyLXRlc3QtY2FzZS5qcyIpOworbG9hZCgiLi9y
ZXNvdXJjZXMvbGl0ZXJhbC1wYXJzZXItdGVzdC1jYXNlLmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogaWYgKHggIT09IHVuZGVmaW5lZCkKICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByZXN1bHQi
KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX2FkZC5qcyBiL0pTVGVzdHMvc3RyZXNz
L29wX2FkZC5qcwppbmRleCA2YjYxM2ZiNjY2ODg2OTM0MGJlNjZlMDQ1MzkzMmQ5MjE4YjEyM2Zi
Li40ZGZiYzJkM2YzZjFiMDZkMDVlZTJhMjk3M2RiNjAzMTNkNzU5MDg3IDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3N0cmVzcy9vcF9hZGQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfYWRkLmpzCkBA
IC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxs
IHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNl
ZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1s
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMv
YmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy9vcF9iaXRhbmQuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRhbmQuanMKaW5kZXgg
NDQ1NTVmMTk2Njg5ZTRmZDNjNTlhMzYwZjQ2Njk0NDBmMTc0OTUyMi4uZjdiZTRkYTA4ODgyOGIz
ZDJjYjVmZDAyYjBiOWEwMmU1N2UwZmNlNyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3Bf
Yml0YW5kLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX2JpdGFuZC5qcwpAQCAtNCw3ICs0LDcg
QEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUg
c2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9w
LXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10
ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8v
IFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3Bf
Yml0b3IuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRvci5qcwppbmRleCBjMTk4NDkwZWI0NTU1
ZTcyYjQ0YmU4ZWQwMjg1NWQ5OTA2ZjgyMzc5Li41MTQyMTcyOGNlZjg3Nzc3ZjI5OWU3ZjdmZTU5
MmFmMTllMzdkNWE1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRvci5qcworKysg
Yi9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRvci5qcwpAQCAtNCw3ICs0LDcgQEAKIC8vIElmIGFsbCBn
b2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5v
dCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRl
YnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9w
LXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxl
ciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJh
dGlvbiBkYXRhOgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfYml0eG9yLmpzIGIvSlNU
ZXN0cy9zdHJlc3Mvb3BfYml0eG9yLmpzCmluZGV4IDBmZjlmMjcyNTYzNDEzMDc4NGQ1NmFkNzgw
YWQxYmU4MDc4MTc5NGMuLjE0ZjY5NTQ2MDk1ZTNkOTU4NTFlNjc5OGE5YjUyMTMwMzI4Y2NjNjkg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX2JpdHhvci5qcworKysgYi9KU1Rlc3RzL3N0
cmVzcy9vcF9iaXR4b3IuanMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0
aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwg
cHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0
aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7
Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUi
KTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX2Rpdi1Db25zdFZhci5qcyBiL0pTVGVzdHMv
c3RyZXNzL29wX2Rpdi1Db25zdFZhci5qcwppbmRleCA0NTA4NjU0M2FkNjEyYmM0NDc2MGJjYzM3
ZTY1NDVjN2RlNzk3Zjk1Li44YTY4NjQzMWZjOTVmNDI0NGVlOGI3YjNmMjRjOTJiOTQ2OTVjYjI5
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtQ29uc3RWYXIuanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3Mvb3BfZGl2LUNvbnN0VmFyLmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxs
IGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYg
bm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3Ig
ZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnkt
b3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2Fs
bGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1
cmF0aW9uIGRhdGE6CkBAIC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1v
cC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gImRpdiI7CiB2YXIgb3AgPSAiLyI7CiAKLWxvYWQo
Ii4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2Jp
bmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBn
ZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiQ29uc3RWYXIiLCB2YWx1ZXMs
IHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFyQ29uc3QuanMg
Yi9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFyQ29uc3QuanMKaW5kZXggOTFmZjJmMTRhZDg5Nzdl
N2QwNGU1NWFhOTEwMmI0NzZjZmYxMjM5Yi4uMzMzNTYxYjU2NDAzMDU1ZTdhMThiYmE4YjYyZWI2
NWMxYmYxN2JjYSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfZGl2LVZhckNvbnN0Lmpz
CisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX2Rpdi1WYXJDb25zdC5qcwpAQCAtNCw3ICs0LDcgQEAK
IC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2ls
ZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRl
c3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJj
ZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRl
c3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTIsNyArMTIsNyBAQCBsb2FkKCIuL3Jlc291cmNl
cy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJkaXYiOwogdmFyIG9wID0gIi8i
OwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jl
c291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0
cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhckNvbnN0
IiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfZGl2LVZh
clZhci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX2Rpdi1WYXJWYXIuanMKaW5kZXggODI4YTIwMzA0
NWQxY2VkZWViMGU5NDQyNGRkZmIyZWEzODhlYTE2ZS4uNjQ5YjgwOTk1MTUyOTkyNGMyNTI5YzM1
MjcyOTM4ZjA4YWYyMTA0OCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfZGl2LVZhclZh
ci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFyVmFyLmpzCkBAIC00LDcgKzQsNyBA
QAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBz
aWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3At
dGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRl
c3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8g
VGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3Vy
Y2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gImRpdiI7CiB2YXIgb3AgPSAi
LyI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4v
cmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRl
c3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyVmFy
IiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0
LUNvbnN0VmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LUNvbnN0VmFyLmpzCmluZGV4
IGMwYjM5OTRjNTk4YmQxZjlmYjA1NjZlMDc3MjA2OTM5YzlkMmM1OTEuLjg3OTM1OTgyYzcxYWVl
MjE4ZDkwN2NkODYxYjVmNjY5YjBhY2ZhNzEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29w
X2xzaGlmdC1Db25zdFZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9sc2hpZnQtQ29uc3RW
YXIuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9k
dWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVy
cm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVk
ZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jl
c291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTExLDcgKzEx
LDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUg
PSAibHNoaWZ0IjsKIHZhciBvcCA9ICI8PCI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1v
cC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAi
Y2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRl
c3RzLCBvcE5hbWUsIG9wLCAiQ29uc3RWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9vcF9sc2hpZnQtVmFyQ29uc3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9v
cF9sc2hpZnQtVmFyQ29uc3QuanMKaW5kZXggMGUzMmJhNjkyZjBlYTg1MmExZDAxMDg0MWFlOTIz
ODg3N2FkOGQ1YS4uYmUzODVjZmNjZjU0YTYwNTA5NzA0MjkxMTJkMmRiYWU0OTg5YTIxOSAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LVZhckNvbnN0LmpzCisrKyBiL0pTVGVz
dHMvc3RyZXNzL29wX2xzaGlmdC1WYXJDb25zdC5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFs
bCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElm
IG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9y
IGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5
LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNh
bGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmln
dXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnkt
b3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJsc2hpZnQiOwogdmFyIG9wID0gIjw8IjsKIAot
bG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJj
ZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBb
XTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJDb25zdCIsIHZh
bHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX2xzaGlmdC1WYXJW
YXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9sc2hpZnQtVmFyVmFyLmpzCmluZGV4IDg3MzQ5Yjhm
ZTQ3MzkwOTg0Y2E5NDgzMGI3NDVkODUxNzEzYzFiNDguLjUzODFmZDQyNWFmYjE0Nzk4NTQwMzk3
N2QxMjA5OTFmYWZmMjQ5MWUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX2xzaGlmdC1W
YXJWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LVZhclZhci5qcwpAQCAtMyw3
ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJt
aW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmlu
YXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgi
Li9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFy
eS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBsb2FkKCIu
L3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJsc2hpZnQiOwog
dmFyIG9wID0gIjw8IjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIp
OworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRp
dmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwg
b3AsICJWYXJWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9vcF9tb2QtQ29uc3RWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tb2QtQ29uc3RWYXIuanMK
aW5kZXggNDg5MTg4Y2VkMWFhNzEyNThlOWZlZDBhNDczMWZiMjI1ZmVlY2M2MS4uYmFlYTdlOGJh
NzNkYTQ5ZjZmNzI3NjcxNDdhNjc2MDk3MmE3OGQyNiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJl
c3Mvb3BfbW9kLUNvbnN0VmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX21vZC1Db25zdFZh
ci5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1
bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJy
b3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRl
ZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVz
b3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEs
NyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9
ICJtb2QiOwogdmFyIG9wID0gIiUiOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFs
dWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxl
ciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywg
b3BOYW1lLCBvcCwgIkNvbnN0VmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3Mvb3BfbW9kLVZhckNvbnN0LmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbW9kLVZh
ckNvbnN0LmpzCmluZGV4IGYwM2E0ZDQwNGFlYWY3ZjBjYjNmZWYzZGMwNmU1ZmY1MTY2YzY1NTUu
LjM5MWMyMWE2NDQwN2ZhY2YzZDM0MGU4ZjdhZGVhOTBlNjBkM2YxMjYgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL29wX21vZC1WYXJDb25zdC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9t
b2QtVmFyQ29uc3QuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlz
IHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJp
bnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9u
cyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Cits
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
IAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAg
LTExLDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZh
ciBvcE5hbWUgPSAibW9kIjsKIHZhciBvcCA9ICIlIjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmlu
YXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5q
cyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVz
dHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJDb25zdCIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX21vZC1WYXJWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9v
cF9tb2QtVmFyVmFyLmpzCmluZGV4IDEzNDM2YTk3ZTIwNTVmNmU4NmMxYWE2ZDUyN2Q0Zjk0YzNk
OGYxN2MuLmNmMDUxOTRmMzAyM2NhNTVkZmFmYjVlNDJjYjkxOWJhODY1MzI4MDkgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL29wX21vZC1WYXJWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mv
b3BfbW9kLVZhclZhci5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRo
aXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBw
cmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRp
b25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsK
K2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpA
QCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwog
dmFyIG9wTmFtZSA9ICJtb2QiOwogdmFyIG9wID0gIiUiOwogCi1sb2FkKCIuL3Jlc291cmNlcy9i
aW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVz
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlU
ZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhclZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX211bC1Db25zdFZhci5qcyBiL0pTVGVzdHMvc3RyZXNz
L29wX211bC1Db25zdFZhci5qcwppbmRleCAzZGUzNjRlMWZiOTk3ZjNlNDc2NDZkYWE3NzlkNGMy
YWQ5MzM2OWRjLi5lY2Y5OGUyMWEwYWU2MDhjNTc2ODQ0ZjY4OTg0NzNlOTI3ZDJhN2UzIDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtQ29uc3RWYXIuanMKKysrIGIvSlNUZXN0cy9z
dHJlc3Mvb3BfbXVsLUNvbnN0VmFyLmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMg
d2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBp
dCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdn
aW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVz
dC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJl
bGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9u
IGRhdGE6CkBAIC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0
LmpzIik7CiB2YXIgb3BOYW1lID0gIm11bCI7CiB2YXIgb3AgPSAiKiI7CiAKLWxvYWQoIi4vcmVz
b3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1v
cC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0
ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiQ29uc3RWYXIiLCB2YWx1ZXMsIHZhbHVl
cyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtVmFyQ29uc3QuanMgYi9KU1Rl
c3RzL3N0cmVzcy9vcF9tdWwtVmFyQ29uc3QuanMKaW5kZXggNDhlMWU3NjU0OTc2MDY2N2RhZjQ2
YWMyYTFiYjE2YmQ3OTM2MDM5Yy4uYzhmY2QwNWRmMjdkZWQ0NTBkZDgxN2FjYTA5ZmMwODAzN2U2
YWM5MiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbXVsLVZhckNvbnN0LmpzCisrKyBi
L0pTVGVzdHMvc3RyZXNzL29wX211bC1WYXJDb25zdC5qcwpAQCAtNCw3ICs0LDcgQEAKIC8vIElm
IGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHku
IElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMg
Zm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmlu
YXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwg
ImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29u
ZmlndXJhdGlvbiBkYXRhOgpAQCAtMTIsNyArMTIsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5h
cnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJtdWwiOwogdmFyIG9wID0gIioiOwogCi1s
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNl
cy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtd
OwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhckNvbnN0IiwgdmFs
dWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbXVsLVZhclZhci5q
cyBiL0pTVGVzdHMvc3RyZXNzL29wX211bC1WYXJWYXIuanMKaW5kZXggNWUxY2M1ODcyODVkZTRj
NWNhMTAzZmZlMzg1MjZkMWVjYTA0M2FlZS4uYjc3NGVjYWRiNzkzZjJhMGY5ZWJmMTMyZTQ3ODM2
YTA3ZTQ1MWY5NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbXVsLVZhclZhci5qcwor
KysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtVmFyVmFyLmpzCkBAIC00LDcgKzQsNyBAQAogLy8g
SWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRs
eS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5q
cyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9i
aW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMi
LCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBj
b25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2Jp
bmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gIm11bCI7CiB2YXIgb3AgPSAiKiI7CiAK
LWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3Vy
Y2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0g
W107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyVmFyIiwgdmFs
dWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbmVnYXRlLmpzIGIv
SlNUZXN0cy9zdHJlc3Mvb3BfbmVnYXRlLmpzCmluZGV4IGQ5OGYwNGRiYzdjMDVjMGMxZWRkYWE2
ZjgwYjRhYWZhYjU4MTZlMTIuLjU1YjAyZGZhYzgzMDNjY2JhMzgzMmZhZWIxMjk0NmEwMzA1YWM0
N2YgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX25lZ2F0ZS5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy9vcF9uZWdhdGUuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxs
LCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdp
bGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIHVuYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBv
cHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvdW5hcnktb3AtdGVzdC5qcyIp
OworbG9hZCgiLi9yZXNvdXJjZXMvdW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUi
KTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3Bvc3RkZWMuanMgYi9KU1Rlc3RzL3N0cmVz
cy9vcF9wb3N0ZGVjLmpzCmluZGV4IGIyZTFmYTcyOTczYzZmNTc2ZDE1YTM4ODM5OWQwZTY0MDkx
MTk5OWEuLjYyOWI4NWJmZWQ0MzQ4MTU2Yzc4NTdmNjA3MTQwN2ZlMTJmYTk3YjcgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL29wX3Bvc3RkZWMuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3Bf
cG9zdGRlYy5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVz
dCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAog
Ly8gZXJyb3JzLiBTZWUgdW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYg
bmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIu
L3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3Mvb3BfcG9zdGluYy5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX3Bvc3Rp
bmMuanMKaW5kZXggMDhhYTM1ZDlkMDg4ZjA5ODQ4ZWMwYjIwNTM0ZGE3NmJkMzJiY2E5Zi4uM2Rm
ZDJlNWJkOTBmNTljNWY0MzA5NmZlNDE0ZDQyYjliMGJkYTRiZiAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9zdHJlc3Mvb3BfcG9zdGluYy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9wb3N0aW5jLmpz
CkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3
aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMu
IFNlZSB1bmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAK
LWxvYWQoIi4vcmVzb3VyY2VzL3VuYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2Vz
L3VuYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy9vcF9wcmVkZWMuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9wcmVkZWMuanMKaW5kZXgg
YjhjNjU2MjdlYmZjM2I2ZTQxMGQ4NTM4NzhjMWViM2FkNzgwNDQzNS4uNWE5Y2I0NmQ0YWY4ZTNj
NTRlYzg4MDVlODBhYmQxYmRhMjBjMTliZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3Bf
cHJlZGVjLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX3ByZWRlYy5qcwpAQCAtMyw3ICszLDcg
QEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUg
c2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgdW5hcnktb3At
dGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291
cmNlcy91bmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRl
c3QgY29uZmlndXJhdGlvbiBkYXRhOgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfcHJl
aW5jLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfcHJlaW5jLmpzCmluZGV4IDIyZmI2ZWU2MTg3YWU2
NTU0ZTNlM2Y1MDg5NGRlYzMzY2YxNTcwNTEuLjFjNzkzZDE2M2M0NDBlMTc5ZGI3YzkzMmQzYjcy
Y2NmMmY0ZTA3NzUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3ByZWluYy5qcworKysg
Yi9KU1Rlc3RzL3N0cmVzcy9vcF9wcmVpbmMuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwg
Z29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBu
b3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIHVuYXJ5LW9wLXRlc3QuanMgZm9yIGRl
YnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvdW5hcnktb3At
dGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIg
cmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRp
b24gZGF0YToKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1Db25zdFZhci5q
cyBiL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1Db25zdFZhci5qcwppbmRleCBmMDU5OTMxNDli
NGVlOWI0MzYwYjc2Nzc5NDIwOTY4YWViYzdmZDdmLi5mOTk5OTAwMGNmZjIyMTBhMTY1M2Q0M2I5
ZjcwYTkwODhjNGZjMDk5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQtQ29u
c3RWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LUNvbnN0VmFyLmpzCkBAIC0z
LDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRl
cm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBi
aW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2Fk
KCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmlu
YXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3IEBAIGxvYWQo
Ii4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gInJzaGlmdCI7
CiB2YXIgb3AgPSAiPj4iOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpz
Iik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxh
dGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1l
LCBvcCwgIkNvbnN0VmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3Mvb3BfcnNoaWZ0LVZhckNvbnN0LmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LVZh
ckNvbnN0LmpzCmluZGV4IDEwMGNkOWJhZDU1ZmRkMTg5OTUzNDE2ZDU0NDBlMmQzYzMxMDI2ZmYu
LmE1YWEwNTE5MWJmYTg3ZjcwZGYxYmRlZWU2ZjM0NzUzY2I2M2MyNGUgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL29wX3JzaGlmdC1WYXJDb25zdC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9v
cF9yc2hpZnQtVmFyQ29uc3QuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxs
LCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdp
bGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcg
b3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0Lmpz
Iik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRp
dmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0
YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMi
KTsKIHZhciBvcE5hbWUgPSAicnNoaWZ0IjsKIHZhciBvcCA9ICI+PiI7CiAKLWxvYWQoIi4vcmVz
b3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1v
cC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0
ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyQ29uc3QiLCB2YWx1ZXMsIHZhbHVl
cyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQtVmFyVmFyLmpzIGIvSlNU
ZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LVZhclZhci5qcwppbmRleCAxMTY2NjBkNTgxZWYyNWY4YjZm
NDFlYmM5ZWI2MDJiMmMxNjc2ZjFiLi4yZmU4Zjk3YjJiMTg2N2FkZjNlNTY2ZjhiY2RhOTE3MDcw
ODkzNjJiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQtVmFyVmFyLmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1WYXJWYXIuanMKQEAgLTMsNyArMyw3IEBACiAv
LyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVu
dGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0
LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5q
cyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0
IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMv
YmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAicnNoaWZ0IjsKIHZhciBvcCA9ICI+
PiI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4v
cmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRl
c3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyVmFy
IiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLUNv
bnN0VmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLUNvbnN0VmFyLmpzCmluZGV4IGM4ZmEx
ZmYwZGMxOGFlNGViNGY3MDAxNDUxMDVkNDk3NTcyYTM4NWEuLmYzMDM0MzUyODczMDQxNmYyYTA5
NTM5YWM0MTQ2ZTJmYTIzMzYwN2YgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3N1Yi1D
b25zdFZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItQ29uc3RWYXIuanMKQEAgLTQs
NyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVy
bWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJp
bmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQo
Ii4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5h
cnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTEyLDcgKzEyLDcgQEAgbG9hZCgi
Li9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAic3ViIjsKIHZh
ciBvcCA9ICItIjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOwor
bG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUi
KTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3As
ICJDb25zdFZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L29wX3N1Yi1WYXJDb25zdC5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX3N1Yi1WYXJDb25zdC5qcwpp
bmRleCA5MWU3NDU1ZjQ1NzAwZDgzYmNlZjVlNDY3M2MzYWRkNDlkMTZiYWMyLi5mMWU1Nzc0Mjhk
ZTMzODkyODg0YjU3ZGZmN2UxODYxMjNhZjIzNjEyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVz
cy9vcF9zdWItVmFyQ29uc3QuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLVZhckNvbnN0
LmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVs
ZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJv
cnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVk
LgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMiw3ICsxMiw3
IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0g
InN1YiI7CiB2YXIgb3AgPSAiLSI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1
ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVy
IHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBv
cE5hbWUsIG9wLCAiVmFyQ29uc3QiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9vcF9zdWItVmFyVmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLVZhclZh
ci5qcwppbmRleCA2YjlkMTdjZWY4YTAxNzlhMGU2MDM1YzVmZWRhYzFhZmExMjM2YWRmLi5kMGY4
ZTllMjAwYzBkM2Q1OWY5MjdjNmQzODA0YTU1N2I5ODllMjljIDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3N0cmVzcy9vcF9zdWItVmFyVmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX3N1Yi1WYXJW
YXIuanMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9k
dWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVy
cm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVk
ZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jl
c291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTEyLDcgKzEy
LDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUg
PSAic3ViIjsKIHZhciBvcCA9ICItIjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZh
bHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMs
IG9wTmFtZSwgb3AsICJWYXJWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9vcF91cnNoaWZ0LUNvbnN0VmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfdXJz
aGlmdC1Db25zdFZhci5qcwppbmRleCBmZGVlMGJlNmU5NTE3YzMwYWJlY2RiNTU3NmY1MWJmNzg3
NTczZGJjLi5lYjUxODYwOWRkNzk5NDU4ZmNiYWUxMWM2ZjUwNDlhYjYyYTYzMDI0IDEwMDY0NAot
LS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LUNvbnN0VmFyLmpzCisrKyBiL0pTVGVzdHMv
c3RyZXNzL29wX3Vyc2hpZnQtQ29uc3RWYXIuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwg
Z29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBu
b3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBk
ZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1v
cC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3Vy
YXRpb24gZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9w
LXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAidXJzaGlmdCI7CiB2YXIgb3AgPSAiPj4+IjsKIAot
bG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJj
ZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBb
XTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJDb25zdFZhciIsIHZh
bHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3Vyc2hpZnQtVmFy
Q29uc3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LVZhckNvbnN0LmpzCmluZGV4IDhi
NGFjZWRhYmIzNWUxYmIyMzFiZjdmM2I2OTQwOTMyNzgxODg5ZGMuLjI4ZGEwNTAzZWQyOWRhMTcy
YjVmMTI3ZmM2OGNlMmU5NzI4YmI0YWQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3Vy
c2hpZnQtVmFyQ29uc3QuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC1WYXJDb25z
dC5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1
bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJy
b3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRl
ZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVz
b3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEs
NyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9
ICJ1cnNoaWZ0IjsKIHZhciBvcCA9ICI+Pj4iOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnkt
b3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwg
ImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0
ZXN0cywgb3BOYW1lLCBvcCwgIlZhckNvbnN0IiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC1WYXJWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9v
cF91cnNoaWZ0LVZhclZhci5qcwppbmRleCBjYjE0YWVkZjVmZDFhNzY2ZjBiN2E5Y2NjYWUyZGFi
ZDkxOWYxNjRmLi5iODQwMzdhMDJjMmI3YjgxMzVmNzQxNzJlYzA2NzY5YTI5YTNiNjViIDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LVZhclZhci5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy9vcF91cnNoaWZ0LVZhclZhci5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBn
b2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5v
dCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRl
YnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9w
LXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxl
ciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJh
dGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3At
dGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJ1cnNoaWZ0IjsKIHZhciBvcCA9ICI+Pj4iOwogCi1s
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNl
cy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtd
OwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhclZhciIsIHZhbHVl
cywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5Nzc5LTEu
anMgYi9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE1OTc3OS0xLmpzCmluZGV4IGIwNzE1MWQ1YWEy
ZWUyMDA1ODVlZGFhMTkyNjBhN2NlYTI1OTIzNTcuLmVlOWZlMjA3NzQzMjBlYjRiNjE3Mzc3Yzgz
NTYzOWVjYjE0MDBlNTYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5Nzc5
LTEuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMS5qcwpAQCAtMTI5MCw3
ICsxMjkwLDcgQEAgZnVuY3Rpb24gbWFrZVVzZVJlZ3Jlc3Npb25UZXN0KGQsIGIpCiAgICAgICAg
IGJyZWFrOwogICAgICAgZGVmYXVsdDoKICAgICAgICAgCi0gICAgICAgIHMgKz0gIi8qIHJlZ3Jl
c3Npb24tdGVzdC1sb2FkICovICIgKyAibG9hZCgiICsgc2ltcGxlU291cmNlKGZpbGUpICsgIik7
IjsKKyAgICAgICAgcyArPSAiLyogcmVncmVzc2lvbi10ZXN0LWxvYWQgKi8gIiArICJsb2FkKCIg
KyBzaW1wbGVTb3VyY2UoZmlsZSkgKyAiLCAiY2FsbGVyIHJlbGF0aXZlIik7IjsKICAgICAgICAg
YnJlYWs7CiAgICAgICAKICAgICB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNz
LTE1OTc3OS0yLmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMi5qcwppbmRleCA1
ODc5ZWI5MWZmNzFjNzUxZTU3ZDQ1MjA1MDk1ZDFkNDNkM2I0ZjQ1Li44OWZiY2UwOTUyMmFkMmU1
YjNhMTQwZjc4NzRlZWQyZGZiMmRmMTFlIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9yZWdy
ZXNzLTE1OTc3OS0yLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5Nzc5LTIuanMK
QEAgLTEyOTAsNyArMTI5MCw3IEBAIGZ1bmN0aW9uIG1ha2VVc2VSZWdyZXNzaW9uVGVzdChkLCBi
KQogICAgICAgICBicmVhazsKICAgICAgIGRlZmF1bHQ6CiAgICAgICAgIAotICAgICAgICBzICs9
ICIvKiByZWdyZXNzaW9uLXRlc3QtbG9hZCAqLyAiICsgImxvYWQoIiArIHNpbXBsZVNvdXJjZShm
aWxlKSArICIpOyI7CisgICAgICAgIHMgKz0gIi8qIHJlZ3Jlc3Npb24tdGVzdC1sb2FkICovICIg
KyAibG9hZCgiICsgc2ltcGxlU291cmNlKGZpbGUpICsgIiwgImNhbGxlciByZWxhdGl2ZSIpOyI7
CiAgICAgICAgIGJyZWFrOwogICAgICAgCiAgICAgfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3MvcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5qcyBi
L0pTVGVzdHMvc3RyZXNzL3Jlc291cmNlcy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLWhlbHBlci1m
dW5jdGlvbnMuanMKaW5kZXggYmYzNGRiNGM2YWU2YWVmYzdjZjk3M2IxYjVjNjE4N2VhNjY5YjRl
Ny4uNzJiMDgxNDFiMTE1YmIyMmQ1OGI2ZTg3YmY0ZGM3MjVjZjNiZmQ5YyAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3MvcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1
bmN0aW9ucy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvdHlwZWRhcnJheS1jb25z
dHJ1Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNv
dXJjZXMvc3RhbmRhbG9uZS1wcmUuanMiKTsKK2xvYWQoIi4vc3RhbmRhbG9uZS1wcmUuanMiLCAi
Y2FsbGVyIHJlbGF0aXZlIik7CiAKICJ1c2Ugc3RyaWN0IjsKIApkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIGIv
SlNUZXN0cy9zdHJlc3MvcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25z
LmpzCmluZGV4IGM5MTViMjY5N2M5MzFiZTgyMDFiY2EyMTNmNzJiZDZkMTgxNDc4ZWIuLjU3OWQ4
MDEwNjM1NWMyMmI2ZjczZWU4YTE2MDAyM2NmZTI5MzdmNWYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
c3RyZXNzL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcworKysg
Yi9KU1Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlv
bnMuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy9zdGFuZGFsb25lLXByZS5q
cyIpOworbG9hZCgiLi9zdGFuZGFsb25lLXByZS5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAog
dmFyIHR5cGVkQXJyYXlzID0gW0ludDhBcnJheSwgVWludDhBcnJheSwgVWludDhDbGFtcGVkQXJy
YXksIEludDE2QXJyYXksIFVpbnQxNkFycmF5LCBJbnQzMkFycmF5LCBVaW50MzJBcnJheSwgRmxv
YXQzMkFycmF5LCBGbG9hdDY0QXJyYXldOwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9z
YW1wbGluZy1wcm9maWxlci1hbm9ueW1vdXMtZnVuY3Rpb24uanMgYi9KU1Rlc3RzL3N0cmVzcy9z
YW1wbGluZy1wcm9maWxlci1hbm9ueW1vdXMtZnVuY3Rpb24uanMKaW5kZXggNTg3NmRmNzRjYzU2
NDMzZWY2MTJkZjU1ZjEzODZhODdiNTNlMGY0ZC4uYTgyMWYxNzQ1NzY2MDk1NWNkOTcxMTkyYjRm
NDdlY2UzZjg5ZmRjZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmls
ZXItYW5vbnltb3VzLWZ1bmN0aW9uLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXBy
b2ZpbGVyLWFub255bW91cy1mdW5jdGlvbi5qcwpAQCAtMSw1ICsxLDUgQEAKIGlmIChwbGF0Zm9y
bVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpKSB7Ci0gICAgbG9hZCgiLi9zYW1wbGluZy1wcm9m
aWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIik7CisgICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxl
ci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAgICAgZnVuY3Rp
b24gZm9vKGYpIHsKICAgICAgICAgZigpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2Ft
cGxpbmctcHJvZmlsZXItYmFzaWMuanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxl
ci1iYXNpYy5qcwppbmRleCBjMTIyODcwZGFkZjJhMzYxMDYwNGJlZWYzZGY2YTFhYzRjMDZiMTBm
Li5hNzY3ZDBiNDcxYjcxYzkwNTFlYzQ2MTkxY2EzOWMzNTM0MGY2ZTBhIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1iYXNpYy5qcworKysgYi9KU1Rlc3RzL3N0
cmVzcy9zYW1wbGluZy1wcm9maWxlci1iYXNpYy5qcwpAQCAtMSw1ICsxLDUgQEAKIGlmIChwbGF0
Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpKSB7Ci0gICAgbG9hZCgiLi9zYW1wbGluZy1w
cm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIik7CisgICAgbG9hZCgiLi9zYW1wbGluZy1wcm9m
aWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAgICAgZnVu
Y3Rpb24gYmFyKHkpIHsKICAgICAgICAgbGV0IHg7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9zYW1wbGluZy1wcm9maWxlci1ib3VuZC1mdW5jdGlvbi1uYW1lLmpzIGIvSlNUZXN0cy9zdHJl
c3Mvc2FtcGxpbmctcHJvZmlsZXItYm91bmQtZnVuY3Rpb24tbmFtZS5qcwppbmRleCA3ZWJhYTQz
M2ExMjE4YjY3N2RmOGVjNmE0MTZkZGQxMTQ5ZTExZTJlLi5mMzc3NjI5ODk1ODU2NWQ5MDdjYjM1
NjBjNmE3MzM5M2EwN2I2M2ZhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1w
cm9maWxlci1ib3VuZC1mdW5jdGlvbi1uYW1lLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBs
aW5nLXByb2ZpbGVyLWJvdW5kLWZ1bmN0aW9uLW5hbWUuanMKQEAgLTEsNSArMSw1IEBACiBpZiAo
cGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJvZmlsZXIoKSkgewotICAgIGxvYWQoIi4vc2FtcGxp
bmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIpOworICAgIGxvYWQoIi4vc2FtcGxpbmct
cHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogICAg
IGZ1bmN0aW9uIGZvbygpIHsKICAgICAgICAgbGV0IG8gPSB7fTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWRlZXAtc3RhY2suanMgYi9KU1Rlc3RzL3N0cmVz
cy9zYW1wbGluZy1wcm9maWxlci1kZWVwLXN0YWNrLmpzCmluZGV4IGMzMzk2OTE2Mzg4NDE3YmY5
Y2NkNmY3NGNiY2M4NWFhYzk1MDYwODMuLmIxZTM1NWE0OTQ5NTc5ODdhMjNjZmI1YzQ3NTk2ZTkw
YjNiOWFkNWMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWRl
ZXAtc3RhY2suanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItZGVlcC1z
dGFjay5qcwpAQCAtMSw1ICsxLDUgQEAKIGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9m
aWxlcigpKSB7Ci0gICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVy
LmpzIik7CisgICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpz
IiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAgICAgZnVuY3Rpb24gZm9vKHgpIHsgCiAgICAgICAg
IGxldCBvID0ge307CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxl
ci1kaXNwbGF5LW5hbWUuanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1kaXNw
bGF5LW5hbWUuanMKaW5kZXggZGFiNzEwODBhNzVjYWNiNTlkNTg5ZWY4YzAxNWVhZGNlNjY1NTVm
NS4uNWQ5NzljMWU2YmI3Mjc0NDljMTRmZDA0M2U2OTQxMTViM2QzZWFjNCAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItZGlzcGxheS1uYW1lLmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWRpc3BsYXktbmFtZS5qcwpAQCAtMSw1ICsx
LDUgQEAKIGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpKSB7Ci0gICAgbG9h
ZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIik7CisgICAgbG9hZCgi
Li9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwgImNhbGxlciByZWxhdGl2
ZSIpOwogCiAgICAgZnVuY3Rpb24gZm9vKCkgewogICAgICAgICBsZXQgbyA9IHt9OwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItaW50ZXJuYWwtZnVuY3Rpb24t
bmFtZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWludGVybmFsLWZ1bmN0
aW9uLW5hbWUuanMKaW5kZXggODg5MmNhMzUwM2M5MDQ5M2E5YWM1YWYzNGM5YTA0NmYyOTBkMTQx
OS4uYWNmYzZjYmUxNjlmZTA5NzNhYjg5Mjc5OTNjODQxNjUzYTRkN2ExNyAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItaW50ZXJuYWwtZnVuY3Rpb24tbmFtZS5q
cworKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1pbnRlcm5hbC1mdW5jdGlv
bi1uYW1lLmpzCkBAIC0xLDUgKzEsNSBAQAogaWYgKHBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1By
b2ZpbGVyKCkpIHsKLSAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmls
ZXIuanMiKTsKKyAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKICAgICBmdW5jdGlvbiBmb28oKSB7CiAgICAgICAg
IGxldCB4OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItbWlj
cm90YXNrcy5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLW1pY3JvdGFza3Mu
anMKaW5kZXggY2UzNWQxNmFiMWJhYjI3NjA1MTAyNTc0Y2E1MmEzNGMwYTQzNmEwMC4uOWRiMTg2
NjJhNDhiNjgyY2NkN2YxMDY4YmQzNWM4MzBlZjQyNmM5YiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9z
dHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItbWljcm90YXNrcy5qcworKysgYi9KU1Rlc3RzL3N0cmVz
cy9zYW1wbGluZy1wcm9maWxlci1taWNyb3Rhc2tzLmpzCkBAIC0xLDcgKzEsNyBAQAogdmFyIGFi
b3J0ID0gJHZtLmFib3J0OwogCiBpZiAocGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJvZmlsZXIo
KSkgewotICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIp
OworICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIsICJj
YWxsZXIgcmVsYXRpdmUiKTsKIAogICAgIGxldCB0cmVlID0gbnVsbDsKICAgICBmdW5jdGlvbiB0
ZXN0UmVzdWx0cygpIHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2Zp
bGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmls
ZXItd2FzbS1uYW1lLXNlY3Rpb24uanMKaW5kZXggYmE5ZTU2ZTZkODUxZDRkYzBhNjJhMWNkMjYx
MzJhNjBhZTYwNmM1Yy4uNTJkNDVlMDQ3MTFiZWNlNWJlNmMwZWE5NGY1ZDBlZDQ4MzQzMTA1YiAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNl
Y3Rpb24uanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS1uYW1l
LXNlY3Rpb24uanMKQEAgLTY1LDcgKzY1LDcgQEAgaWYgKHBsYXRmb3JtU3VwcG9ydHNTYW1wbGlu
Z1Byb2ZpbGVyKCkgJiYgJHZtLmlzV2FzbVN1cHBvcnRlZCgpKSB7CiAgICAgY29uc3QgaW5zdGFu
Y2UgPSBjb21waWxlKHdhc21GaWxlLCBpbXBvcnRPYmplY3QpOwogICAgIGNvbnN0IHJlc3VsdCA9
IGluc3RhbmNlLmV4cG9ydHMuX3BhcnJvdCgxKTsKIAotICAgIGxvYWQoIi4vc2FtcGxpbmctcHJv
ZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIpOworICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmls
ZXIvc2FtcGxpbmdQcm9maWxlci5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKICAgICB2YXIgd2Fz
bUVudHJ5ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIHJldHVybiBpbnN0YW5jZS5leHBvcnRzLl9w
YXJyb3QoMSk7CiAgICAgfTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXBy
b2ZpbGVyLXdhc20uanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpz
CmluZGV4IDdhZDY1ZDFlMmUwMDJiOTllN2ZiMjc4NWQzZmZmNzQyNzJmZTQ4MDMuLjlmODc3ZDcx
OGZkZjJkNGExMGFiOWVmZjFjNjBhNWE2MmJmZTFlNTUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxp
bmctcHJvZmlsZXItd2FzbS5qcwpAQCAtMSw3ICsxLDcgQEAKIC8vQCBydW5EZWZhdWx0CiAKIGlm
IChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpICYmICR2bS5pc1dhc21TdXBwb3J0
ZWQoKSkgewotICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5q
cyIpOworICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIs
ICJjYWxsZXIgcmVsYXRpdmUiKTsKICAgICBsZXQgYnVmID0gcmVhZCgiLi9zYW1wbGluZy1wcm9m
aWxlci9sb29wLndhc20iLCAiYmluYXJ5Iik7CiAgICAgbGV0IG1vZHVsZSA9IG5ldyBXZWJBc3Nl
bWJseS5Nb2R1bGUoYnVmKTsKICAgICBsZXQgaW5zdGFuY2UgPSBuZXcgV2ViQXNzZW1ibHkuSW5z
dGFuY2UobW9kdWxlKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NoYWRvdy1jaGlja2Vu
LWRpc2FibGVkLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4tZGlzYWJsZWQuanMK
aW5kZXggYTczMTAwMzE4OGJkNWYzYTEwMDYwZmY1ODdlMDA0ZmIxNDhlZjA0OS4uYjJjMDVjNDQz
ZTQ2ZjRlNTVhYWRkZGNhZWU4YmE2ZmIwYjE2MWMwMyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJl
c3Mvc2hhZG93LWNoaWNrZW4tZGlzYWJsZWQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2hhZG93
LWNoaWNrZW4tZGlzYWJsZWQuanMKQEAgLTMsNyArMyw3IEBACiAidXNlIHN0cmljdCI7CiAKIHZh
ciB2ZXJib3NlID0gZmFsc2U7Ci1sb2FkKCJyZXNvdXJjZXMvc2hhZG93LWNoaWNrZW4tc3VwcG9y
dC5qcyIpOworbG9hZCgicmVzb3VyY2VzL3NoYWRvdy1jaGlja2VuLXN1cHBvcnQuanMiLCAiY2Fs
bGVyIHJlbGF0aXZlIik7CiBpbml0aWFsaXplKCk7CiAKIChmdW5jdGlvbiB0ZXN0MSgpIHsKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NoYWRvdy1jaGlja2VuLWVuYWJsZWQuanMgYi9KU1Rl
c3RzL3N0cmVzcy9zaGFkb3ctY2hpY2tlbi1lbmFibGVkLmpzCmluZGV4IDE5Y2Y3M2QwNDAxMTQ2
MWJjMGZlNWQ4MzYyYTU0ZDQwZmNhMGRjODAuLmU3ZWJmOWYwYzgxMzQyODRlNGY4OTRmZGUwMmFj
ZDRmMDQxZDQzYzcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NoYWRvdy1jaGlja2VuLWVu
YWJsZWQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4tZW5hYmxlZC5qcwpA
QCAtNiw3ICs2LDcgQEAgdmFyIHNoYWRvd0NoaWNrZW5GdW5jdGlvbnNPblN0YWNrID0gJHZtLnNo
YWRvd0NoaWNrZW5GdW5jdGlvbnNPblN0YWNrOwogCiB2YXIgdmVyYm9zZSA9IGZhbHNlOwogCi1s
b2FkKCJyZXNvdXJjZXMvc2hhZG93LWNoaWNrZW4tc3VwcG9ydC5qcyIpOworbG9hZCgicmVzb3Vy
Y2VzL3NoYWRvdy1jaGlja2VuLXN1cHBvcnQuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBpbml0
aWFsaXplKCk7CiAKIChmdW5jdGlvbiB0ZXN0MSgpIHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktY29uc3RydWN0b3IuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5
LWNvbnN0cnVjdG9yLmpzCmluZGV4IDBlOGVhZjc0OTg4MDgyYzRiMTQwYjc1ZjA1NDMzMTExMjJj
ZGEyYTYuLmIyNDUzNTYyZjIwZjNhYWU4MGJhZDM4NDA1ZDM2OGQwMjZiZGZkNDUgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktY29uc3RydWN0b3IuanMKKysrIGIvSlNUZXN0
cy9zdHJlc3MvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQo
Ii4vcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5qcyIp
OworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVuY3Rp
b25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiBsZXQgVHlwZWRBcnJheSA9IE9iamVjdC5n
ZXRQcm90b3R5cGVPZihJbnQzMkFycmF5KTsKIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
dHlwZWRhcnJheS1jb3B5V2l0aGluLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1jb3B5
V2l0aGluLmpzCmluZGV4IGU1ZTc5YWEwZTYwOTYxYjBhYTRlNTUwMDI3NjQ3ZGVkMmFhYWRkODku
LjE2OTA4ODU2YWRhYjIzYTJmZmExM2ZkNjE2NDQyM2FlYmZkMjdiYjggMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktY29weVdpdGhpbi5qcworKysgYi9KU1Rlc3RzL3N0cmVz
cy90eXBlZGFycmF5LWNvcHlXaXRoaW4uanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291
cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNv
dXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhl
IFR5cGVkQXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4gZnVuY3Rpb24iKTsKIAogCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWV2ZXJ5LmpzIGIvSlNUZXN0cy9zdHJlc3Mv
dHlwZWRhcnJheS1ldmVyeS5qcwppbmRleCBjNGU5NzljYWI1OGFjZDMxNWYyN2RhNDAyZjM0ZjM2
OTA3ZDYwYmJkLi4xZDBhYmJkMTdkNGE4MGY5Nzc2ODkyOWUxZjU0NTMwN2JkN2QzYjVhIDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWV2ZXJ5LmpzCisrKyBiL0pTVGVzdHMv
c3RyZXNzL3R5cGVkYXJyYXktZXZlcnkuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291
cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNv
dXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0
aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuZXZlcnkgZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maWxsLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1maWxsLmpzCmluZGV4IDc1NWI0NDA0N2NhN2E0NDhkMGE5MzEyYjM1MjJiM2NiOTgzMDE0
YzIuLmZkNTM3ODg0MWQ4ZGU4ODEzODk3NjlhODczMDBiYWU4MzQ5ZThhNjQgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmlsbC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90
eXBlZGFycmF5LWZpbGwuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBl
ZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlw
ZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBk
ZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRB
cnJheS5wcm90b3R5cGUuZmlsbCBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy90eXBlZGFycmF5LWZpbHRlci5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmls
dGVyLmpzCmluZGV4IDdjZTdiYmY2MzY3OTdiZmRlMTM1MzVhYzRmNDgxODdjNWIwYTQ1MDYuLjNh
MjIzZGY0ZmY3NjY3NDk4N2NhNGYxNjRkYTM0YjEzOTFkNDhiNDAgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvc3RyZXNzL3R5cGVkYXJyYXktZmlsdGVyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVk
YXJyYXktZmlsdGVyLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRh
cnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVk
YXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVz
Y3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJy
YXkucHJvdG90eXBlLmZpbHRlciBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy90eXBlZGFycmF5LWZpbmQuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbmQu
anMKaW5kZXggYjE5MDJjNDVhMGVlODJlNWQwOWFlMmIxNzI1NTNlOGJmOTU5OTJhZS4uZTg2MDVi
MjIxMjA2ZjQzZjhiNGU5M2Y3MGRhYWY3M2UyY2VjNTI4ZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9z
dHJlc3MvdHlwZWRhcnJheS1maW5kLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXkt
ZmluZC5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVz
dC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRl
c3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9u
KAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3Rv
dHlwZS5maW5kIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVk
YXJyYXktZmluZEluZGV4LmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maW5kSW5kZXgu
anMKaW5kZXggZTAxNWI3YzVhNTI5MTlkYzUyN2FjZjFmMmY4MmFlYjU5ZmUzMWVkNy4uOTA4NjIy
MjQwMTUyMGY4NTUzYjkzNjY5MTBlMGQwMTM2NmFiMTUxNCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9z
dHJlc3MvdHlwZWRhcnJheS1maW5kSW5kZXguanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1maW5kSW5kZXguanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBl
ZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlw
ZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBk
ZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRB
cnJheS5wcm90b3R5cGUuZmluZEluZGV4IGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL3R5cGVkYXJyYXktZm9yRWFjaC5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJy
YXktZm9yRWFjaC5qcwppbmRleCAwZDY5ZmZlZDRjNDY0ODE0YWZhMTBhYjBhZmNlNzdiZTQwMDM3
Mzg1Li4yYWNmMjViYzJmMzNhNTgzYjg3MzdkZWRiMDczZDA2MzFmNmI5OGZjIDEwMDY0NAotLS0g
YS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZvckVhY2guanMKKysrIGIvSlNUZXN0cy9zdHJl
c3MvdHlwZWRhcnJheS1mb3JFYWNoLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJj
ZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3Vy
Y2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2
ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhl
IFR5cGVkQXJyYXkucHJvdG90eXBlLmZvckVhY2ggZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1mcm9tLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1mcm9tLmpzCmluZGV4IGRiYmZjOGEyZWRmYmRjODc2ZGY0Mzg5ZjA3ZTY5NjBhMGRjMWY3
ZmQuLjJmZmM5YzFlMTA1YTE5M2EzODg3Y2UwMGEyNzg4ZTJlMWY5MThhN2MgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZnJvbS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90
eXBlZGFycmF5LWZyb20uanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBl
ZGFycmF5LWNvbnN0cnVjdG9yLWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3Vy
Y2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIg
cmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9y
IG9mIHRoZSBUeXBlZEFycmF5LmZyb20gZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvdHlwZWRhcnJheS1pbmNsdWRlcy5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJy
YXktaW5jbHVkZXMuanMKaW5kZXggZDZjMDNhZjhkYTJkMzA2NGJhODg5NTQ4OTM3MWUyYmM4ZGIw
NjJiNS4uZTY4MWE0ODM1NzRhYTlmYjkzNTRiZGNjZjFkOWNiZmFiYTc1MzM4NCAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1pbmNsdWRlcy5qcworKysgYi9KU1Rlc3RzL3N0
cmVzcy90eXBlZGFycmF5LWluY2x1ZGVzLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgicmVzb3Vy
Y2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCJyZXNvdXJj
ZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZl
Iik7CiAKIGZvciAoY29uc3RydWN0b3Igb2YgdHlwZWRBcnJheXMpIHsKICAgICBsZXQgYSA9IG5l
dyBjb25zdHJ1Y3RvcigxMCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5
LWluZGV4T2YuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWluZGV4T2YuanMKaW5kZXgg
N2RkNWYwMDFhYTZhNDU4ZWUwZTFkMWNmNGMyMzRjNzY2YTUyMTRkYS4uMDMyMWFiYTU1ZTMxNTgz
MDBiNGY2ZGRlZDBkYjAzNjE3ZjE5YmI3ZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlw
ZWRhcnJheS1pbmRleE9mLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktaW5kZXhP
Zi5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1o
ZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3Qt
aGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAog
IlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlw
ZS5pbmRleE9mIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVk
YXJyYXktbGFzdEluZGV4T2YuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWxhc3RJbmRl
eE9mLmpzCmluZGV4IGM3NDAwNDMyNDJjMDY3ZThhZGIxZmQ5NjJjYzQxYWE2MWYzY2Y2MDUuLjNi
YTZjZWM1MjAxZTA0YmMyMjdmYWNhNmMxMzE3YTcyYjNiM2QxNjUgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvc3RyZXNzL3R5cGVkYXJyYXktbGFzdEluZGV4T2YuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mv
dHlwZWRhcnJheS1sYXN0SW5kZXhPZi5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3Vy
Y2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291
cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRp
dmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRo
ZSBUeXBlZEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiBmdW5jdGlvbiIKICk7CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LW1hcC5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5
cGVkYXJyYXktbWFwLmpzCmluZGV4IDhkYWQyMjJjY2Y1MDE5YTNhZjA5Mzg2NmFmOTNhZGQ2N2Mw
NjVjMTIuLjlhMTZhZjMyYTE0NDU1MWJkOGM0MTExMDg5NWVmNGYxOGZlZjEyOTYgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktbWFwLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktbWFwLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlw
ZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5
cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwog
ZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVk
QXJyYXkucHJvdG90eXBlLm1hcCBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy90eXBlZGFycmF5LW9mLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1vZi5qcwpp
bmRleCAwZTg1MmRkOGM4Y2FmYzgzZDBiMzg5MGE2YjNiNDQ0MTYyODY4ODBlLi4zNjc0MzI3YTRk
ODk3OTNhMzIxZWIyYjBjNjRiMGViMzJmOGFjMDZiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVz
cy90eXBlZGFycmF5LW9mLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktb2YuanMK
QEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LWNvbnN0cnVjdG9y
LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktY29u
c3RydWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2Ny
aXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5
Lm9mIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXkt
cmVkdWNlLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1yZWR1Y2UuanMKaW5kZXggMzlh
NmRhMzFhNDZlZDhiNzNlMmYwNTcwZDIzNDkwMTRmNDBhMGU1Ni4uZTE5ZTUwNGUxZTYxNzczOGJm
Y2NlOGFhOGE2MWUyNDQzMTM3ODc2NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1yZWR1Y2UuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1yZWR1Y2UuanMK
QEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVy
LWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBl
ci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlz
IHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUucmVk
dWNlIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXkt
cmVkdWNlUmlnaHQuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXJlZHVjZVJpZ2h0Lmpz
CmluZGV4IGQ1ZGIzYzdiNmUzMmQ4YzQzNDMwN2FiZTcxYjhiMDFmOWE0NTkxOTEuLjhmOGJkYmU3
ZWE0YjNmMWQ1NDg0ZWUxZDkyYWNjOWFmZTE2ZThmZDUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktcmVkdWNlUmlnaHQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1yZWR1Y2VSaWdodC5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5
cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90
eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
IGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBl
ZEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNldC5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJy
YXktc2V0LmpzCmluZGV4IGZhYzVmYzdjZWRkYzIxOTFjNzQyOTRjYzRjZTE4ZjI3YmNlNmM1OGEu
LmQ4MmU1OTg3NzZjOGMwYzliZGM4MDZkMGQ1NGVkYjlkNzA5NmU3NDggMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc2V0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVk
YXJyYXktc2V0LmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJh
eS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJy
YXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3Jp
cHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnBy
b3RvdHlwZS5zZXQgZnVuY3Rpb24iKTsKIAogc2hvdWxkQmUoIkludDMyQXJyYXkucHJvdG90eXBl
LnNldC5sZW5ndGgiLCAiMSIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJh
eS1zbGljZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc2xpY2UuanMKaW5kZXggZmJj
YjFmOGIxNWQ0ZDgwODRmZGU2NDUwMWVhN2Y1MGM0ZTVhNDg5ZS4uOTVkZWQwMzk0ZWMxMTRiYzky
OWU1YTY1ZTRjODNhZjVkOWNmYzU5MSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1zbGljZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNsaWNlLmpzCkBA
IC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1m
dW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXIt
ZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0
ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLnNsaWNl
IGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc29t
ZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc29tZS5qcwppbmRleCAwMTNjNDk2ODUy
ZGE0YzFkMjY4MzRlZGQ1MGM0MGQ2NzBlYzNlYzVhLi5jMzhhMjg5YzY3NGYyZDlmNWUxNDU4OTA2
ZjM5ODgzOGEwOTczMmY4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNv
bWUuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zb21lLmpzCkBAIC0xLDQgKzEs
NCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMu
anMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25z
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNr
cyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLnNvbWUgZnVuY3Rpb24i
CiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zb3J0LmpzIGIvSlNU
ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zb3J0LmpzCmluZGV4IDY5NDFlMGFkMjllNDBmYzdkNTk3
MzExYmYzZDE5MGE0N2FhZGI0NGUuLmYzNjMxMjcyMjNhZTlhZjA2NDY1M2QwNWQ3ZTZjYzZmNGU3
NGViYzggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc29ydC5qcworKysg
Yi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNvcnQuanMKQEAgLTEsNCArMSw0IEBACi1sb2Fk
KCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9h
ZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2Fs
bGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhh
dmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuc29ydCBmdW5jdGlvbiIKICk7CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXN1YmFycmF5LmpzIGIvSlNUZXN0cy9z
dHJlc3MvdHlwZWRhcnJheS1zdWJhcnJheS5qcwppbmRleCA4ZjMyOTVmMDFmNTIxMjliMmI4MzUx
MmQyN2E0MGU4NmM3ZGU5OGY2Li4zMGJhMjU1Yzg1ODdjNTUyZjBjMzQyNzVhODAyYTE1YTRhMWQy
ZTkxIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXN1YmFycmF5LmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc3ViYXJyYXkuanMKQEAgLTEsNCArMSw0IEBA
Ci1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIp
OworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMi
LCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRo
ZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuc3ViYXJyYXkgZnVuY3Rpb24i
CiApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404079</attachid>
            <date>2020-07-11 18:22:17 -0700</date>
            <delta_ts>2020-07-11 18:32:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214205-20200711182216.patch</filename>
            <type>text/plain</type>
            <size>150968</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZjRjNjYxOTE5YWQ2ZDY2YzI3YzY0ZDQ5ODkzMzE3NzAxN2QzNzc2Li42ZjAxNTRlMGIxYjU2Mjdl
NjNjYThmYjYwN2YyMjc5MTQzMmNkNDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MSBAQAorMjAyMC0wNy0xMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBDbGVhbiB1cCBTb3VyY2VQcm92aWRlciBhbmQgYWRkIGNhbGxlciBy
ZWxhdGl2ZSBsb2FkIHNjcmlwdCB0byBqc2MuY3BwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIEFQSS9KU0FQSUdsb2JhbE9iamVjdC5tbToKKyAgICAg
ICAgKEpTQzo6SlNBUElHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6Cisg
ICAgICAgICogQVBJL0pTQmFzZS5jcHA6CisgICAgICAgIChKU0V2YWx1YXRlU2NyaXB0KToKKyAg
ICAgICAgKEpTQ2hlY2tTY3JpcHRTeW50YXgpOgorICAgICAgICAqIEFQSS9KU09iamVjdFJlZi5j
cHA6CisgICAgICAgIChKU09iamVjdE1ha2VGdW5jdGlvbik6CisgICAgICAgICogQVBJL0pTU2Ny
aXB0Lm1tOgorICAgICAgICAoLVtKU1NjcmlwdCBzb3VyY2VDb2RlXSk6CisgICAgICAgICogQVBJ
L0pTU2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMu
Y3BwOgorICAgICAgICAoSlNDOjpCdWlsdGluRXhlY3V0YWJsZXM6OkJ1aWx0aW5FeGVjdXRhYmxl
cyk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChKU0M6OkNvZGVC
bG9jazo6cmVmZXJyZXJVUkwgY29uc3QpOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyTG9j
YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckxvY2F0aW9uOjpEZWJ1Z2dlckxvY2F0
aW9uKToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmg6CisgICAgICAgIChK
U0M6OkRlYnVnZ2VyTG9jYXRpb246OkRlYnVnZ2VyTG9jYXRpb24pOgorICAgICAgICAqIGluc3Bl
Y3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OlNjcmlwdERl
YnVnU2VydmVyOjpzb3VyY2VQYXJzZWQpOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChH
bG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6CisgICAgICAgIChqc2NTb3Vy
Y2UpOgorICAgICAgICAoR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAg
IChmdW5jdGlvblJ1bik6CisgICAgICAgIChmdW5jdGlvbkxvYWQpOgorICAgICAgICAoZnVuY3Rp
b25DaGVja1N5bnRheCk6CisgICAgICAgIChmdW5jdGlvbkNhbGxlclNvdXJjZU9yaWdpbik6Cisg
ICAgICAgIChmdW5jdGlvbkRvbGxhckFnZW50U3RhcnQpOgorICAgICAgICAoZnVuY3Rpb25DaGVj
a01vZHVsZVN5bnRheCk6CisgICAgICAgIChydW5XaXRoT3B0aW9ucyk6CisgICAgICAgIChydW5J
bnRlcmFjdGl2ZSk6CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6CisgICAgICAgIChKU0M6OlNj
b3BlTm9kZTo6c291cmNlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U2NvcGVOb2RlOjpzb3VyY2VV
UkwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VDb2RlLmg6CisgICAg
ICAgIChKU0M6Om1ha2VTb3VyY2UpOgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VDb2RlS2V5Lmg6
CisgICAgICAgIChKU0M6OlNvdXJjZUNvZGVLZXk6Omhvc3QgY29uc3QpOgorICAgICAgICAqIHBh
cnNlci9Tb3VyY2VQcm92aWRlci5jcHA6CisgICAgICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyOjpT
b3VyY2VQcm92aWRlcik6CisgICAgICAgICogcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmg6CisgICAg
ICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyOjpzb3VyY2VVUkwgY29uc3QpOgorICAgICAgICAoSlND
OjpTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6U3RyaW5nU291
cmNlUHJvdmlkZXI6OlN0cmluZ1NvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKEpTQzo6U291cmNl
UHJvdmlkZXI6OnVybCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9DYWNoZWRU
eXBlcy5jcHA6CisgICAgICAgIChKU0M6OkNhY2hlZFNvdXJjZU9yaWdpbjo6ZW5jb2RlKToKKyAg
ICAgICAgKEpTQzo6Q2FjaGVkU291cmNlT3JpZ2luOjpkZWNvZGUgY29uc3QpOgorICAgICAgICAo
SlNDOjpDYWNoZWRTb3VyY2VQcm92aWRlclNoYXBlOjplbmNvZGUpOgorICAgICAgICAoSlNDOjpD
YWNoZWRTdHJpbmdTb3VyY2VQcm92aWRlcjo6ZGVjb2RlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
Q2FjaGVkV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6ZGVjb2RlIGNvbnN0KToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6YWRkRXJyb3JJbmZvKToKKyAgICAg
ICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25z
dHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjayk6CisgICAgICAgICogcnVudGlt
ZS9TY3JpcHRFeGVjdXRhYmxlLmg6CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6OnNv
dXJjZVVSTCBjb25zdCk6CisgICAgICAgICogcnVudGltZS9Tb3VyY2VPcmlnaW4uaDoKKyAgICAg
ICAgKEpTQzo6U291cmNlT3JpZ2luOjpTb3VyY2VPcmlnaW4pOgorICAgICAgICAoSlNDOjpTb3Vy
Y2VPcmlnaW46OnVybCBjb25zdCk6CisgICAgICAgIChKU0M6OlNvdXJjZU9yaWdpbjo6c3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6U291cmNlT3JpZ2luOjppc051bGwgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvVGhyb3dTY29wZS5jcHA6CisgICAgICAgIChKU0M6OlRo
cm93U2NvcGU6OnRocm93RXhjZXB0aW9uKToKKyAgICAgICAgKiBydW50aW1lL1Rocm93U2NvcGUu
aDoKKyAgICAgICAgKEpTQzo6VGhyb3dTY29wZTo6dGhyb3dFeGNlcHRpb24pOgorICAgICAgICAo
SlNDOjp0aHJvd1ZNRXhjZXB0aW9uKToKKyAgICAgICAgKiB0b29scy9GdW5jdGlvbk92ZXJyaWRl
cy5jcHA6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVPdmVycmlkZUluZm8pOgorCiAyMDIwLTA3
LTA5ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04o
cjI2MjMwMik6IElUTUxLaXQgZGVidWdnYWJsZXMgaW4gbGlzdGluZ3MgYXJlIG1pc3NpbmcgYSB0
aXRsZSwgdXNlIFVVSUQgaW5zdGVhZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0FQSUdsb2JhbE9iamVjdC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNB
UElHbG9iYWxPYmplY3QubW0KaW5kZXggMDJjYjliNzMxMTA1M2E0MmM3ZGQ1NDVlZTgzOWQxYzgw
MWU0YjkxZi4uZjU4YzIwNjQ4ODZkOWVhN2JjOTAyNWFhNTU1NzlkZjQxM2JjMzZkYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5tbQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0Lm1tCkBAIC03Niw3
ICs3Niw3IEBAIHN0YXRpYyBFeHBlY3RlZDxVUkwsIFN0cmluZz4gY29tcHV0ZVZhbGlkSW1wb3J0
U3BlY2lmaWVyKGNvbnN0IFVSTCYgYmFzZSwgY29uc3QKICAgICAgICAgcmV0dXJuIGFic29sdXRl
VVJMOwogCiAgICAgaWYgKCFzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLycpICYmICFzcGVjaWZpZXIu
c3RhcnRzV2l0aCgiLi8iKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4uLyIpKQotICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiTW9kdWxlIHNwZWNpZmllcjogIl9z
LCBzcGVjaWZpZXIsICIgZG9lcyBub3Qgc3RhcnQgd2l0aCBcIi9cIiwgXCIuL1wiLCBvciBcIi4u
L1wiLiJfcykpOworICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiTW9k
dWxlIHNwZWNpZmllcjogIl9zLCBzcGVjaWZpZXIsICIgZG9lcyBub3Qgc3RhcnQgd2l0aCBcIi9c
IiwgXCIuL1wiLCBvciBcIi4uL1wiLiBSZWZlcmVuY2VkIGZyb206ICJfcywgYmFzZS5zdHJpbmco
KSkpOwogCiAgICAgaWYgKHNwZWNpZmllci5zdGFydHNXaXRoKCcvJykpIHsKICAgICAgICAgYWJz
b2x1dGVVUkwgPSBVUkwoVVJMKHsgfSwgImZpbGU6Ly8iKSwgc3BlY2lmaWVyKTsKQEAgLTE1MCw4
ICsxNTAsNyBAQCBKU0ludGVybmFsUHJvbWlzZSogSlNBUElHbG9iYWxPYmplY3Q6Om1vZHVsZUxv
YWRlckltcG9ydE1vZHVsZShKU0dsb2JhbE9iamVjdCogZwogICAgICAgICByZXR1cm4gcmVqZWN0
KGV4Y2VwdGlvbi0+dmFsdWUoKSk7CiAgICAgfQogCi0gICAgU3RyaW5nIHJlZmVycmVyID0gIXNv
dXJjZU9yaWdpbi5pc051bGwoKSA/IHNvdXJjZU9yaWdpbi5zdHJpbmcoKSA6IFN0cmluZygpOwot
ICAgIFVSTCBiYXNlVVJMKFVSTCgpLCByZWZlcnJlcik7CisgICAgVVJMIGJhc2VVUkwgPSBzb3Vy
Y2VPcmlnaW4udXJsKCkgPyBzb3VyY2VPcmlnaW4udXJsKCkgOiBVUkwoKTsKICAgICBhdXRvIHJl
c3VsdCA9IGNvbXB1dGVWYWxpZEltcG9ydFNwZWNpZmllcihiYXNlVVJMLCBzcGVjaWZpZXIpOwog
ICAgIGlmIChyZXN1bHQpCiAgICAgICAgIHJldHVybiBpbXBvcnQocmVzdWx0LnZhbHVlKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3BwCmluZGV4IDFkMDRjZjNmOTQ5MGRkZjc1MzRi
MjEwMzAxM2FhYzRkNWY4NGI1NTMuLjA5NjFjNjdkODk0NWU3NTZhZWRjZDZlZGZkODYyMTQ3Yzkw
OGMyMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQmFzZS5jcHAKQEAgLTczLDcgKzczLDcg
QEAgSlNWYWx1ZVJlZiBKU0V2YWx1YXRlU2NyaXB0SW50ZXJuYWwoY29uc3QgSlNMb2NrSG9sZGVy
JiwgSlNDb250ZXh0UmVmIGN0eCwgSlNPYmoKICAgICByZXR1cm4gdG9SZWYoZ2xvYmFsT2JqZWN0
LCBqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNWYWx1ZVJlZiBKU0V2YWx1YXRlU2NyaXB0KEpTQ29u
dGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
SlNTdHJpbmdSZWYgc291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCitKU1ZhbHVlUmVmIEpTRXZhbHVhdGVTY3JpcHQoSlNDb250ZXh0UmVmIGN0
eCwgSlNTdHJpbmdSZWYgc2NyaXB0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1Jl
ZiBzb3VyY2VVUkxTdHJpbmcsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKIHsKICAgICBpZiAoIWN0eCkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKQEAgLTg1LDEzICs4NSwxMyBAQCBKU1ZhbHVlUmVmIEpTRXZhbHVhdGVTY3JpcHQoSlNDb250
ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgc2NyaXB0LCBKU09iamVjdFJlZiB0aAogCiAgICAgc3Rh
cnRpbmdMaW5lTnVtYmVyID0gc3RkOjptYXgoMSwgc3RhcnRpbmdMaW5lTnVtYmVyKTsKIAotICAg
IGF1dG8gc291cmNlVVJMU3RyaW5nID0gc291cmNlVVJMID8gc291cmNlVVJMLT5zdHJpbmcoKSA6
IFN0cmluZygpOwotICAgIFNvdXJjZUNvZGUgc291cmNlID0gbWFrZVNvdXJjZShzY3JpcHQtPnN0
cmluZygpLCBTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkxTdHJpbmcgfSwgVVJMKHsgfSwgc291cmNl
VVJMU3RyaW5nKSwgVGV4dFBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChz
dGFydGluZ0xpbmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVyKCkpKTsKKyAgICBhdXRvIHNvdXJjZVVS
TCA9IHNvdXJjZVVSTFN0cmluZyA/IFVSTCh7IH0sIHNvdXJjZVVSTFN0cmluZy0+c3RyaW5nKCkp
IDogVVJMKCk7CisgICAgU291cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291cmNlKHNjcmlwdC0+c3Ry
aW5nKCksIFNvdXJjZU9yaWdpbiB7IHNvdXJjZVVSTCB9LCBzb3VyY2VVUkwuc3RyaW5nKCksIFRl
eHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRpbmdMaW5lTnVt
YmVyKSwgT3JkaW5hbE51bWJlcigpKSk7CiAKICAgICByZXR1cm4gSlNFdmFsdWF0ZVNjcmlwdElu
dGVybmFsKGxvY2tlciwgY3R4LCB0aGlzT2JqZWN0LCBzb3VyY2UsIGV4Y2VwdGlvbik7CiB9CiAK
LWJvb2wgSlNDaGVja1NjcmlwdFN5bnRheChKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBz
Y3JpcHQsIEpTU3RyaW5nUmVmIHNvdXJjZVVSTCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQorYm9vbCBKU0NoZWNrU2NyaXB0U3ludGF4KEpTQ29udGV4dFJl
ZiBjdHgsIEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNTdHJpbmdSZWYgc291cmNlVVJMU3RyaW5nLCBp
bnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYg
KCFjdHgpIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMDMsOCArMTAzLDgg
QEAgYm9vbCBKU0NoZWNrU2NyaXB0U3ludGF4KEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVm
IHNjcmlwdCwgSlNTdHJpbmdSZWYgc291cmMKIAogICAgIHN0YXJ0aW5nTGluZU51bWJlciA9IHN0
ZDo6bWF4KDEsIHN0YXJ0aW5nTGluZU51bWJlcik7CiAKLSAgICBhdXRvIHNvdXJjZVVSTFN0cmlu
ZyA9IHNvdXJjZVVSTCA/IHNvdXJjZVVSTC0+c3RyaW5nKCkgOiBTdHJpbmcoKTsKLSAgICBTb3Vy
Y2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2Uoc2NyaXB0LT5zdHJpbmcoKSwgU291cmNlT3JpZ2lu
IHsgc291cmNlVVJMU3RyaW5nIH0sIFVSTCh7IH0sIHNvdXJjZVVSTFN0cmluZyksIFRleHRQb3Np
dGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRpbmdMaW5lTnVtYmVyKSwg
T3JkaW5hbE51bWJlcigpKSk7CisgICAgYXV0byBzb3VyY2VVUkwgPSBzb3VyY2VVUkxTdHJpbmcg
PyBVUkwoeyB9LCBzb3VyY2VVUkxTdHJpbmctPnN0cmluZygpKSA6IFVSTCgpOworICAgIFNvdXJj
ZUNvZGUgc291cmNlID0gbWFrZVNvdXJjZShzY3JpcHQtPnN0cmluZygpLCBTb3VyY2VPcmlnaW4g
eyBzb3VyY2VVUkwgfSwgc291cmNlVVJMLnN0cmluZygpLCBUZXh0UG9zaXRpb24oT3JkaW5hbE51
bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0YXJ0aW5nTGluZU51bWJlciksIE9yZGluYWxOdW1iZXIo
KSkpOwogICAgIAogICAgIEpTVmFsdWUgc3ludGF4RXhjZXB0aW9uOwogICAgIGJvb2wgaXNWYWxp
ZFN5bnRheCA9IGNoZWNrU3ludGF4KGdsb2JhbE9iamVjdCwgc291cmNlLCAmc3ludGF4RXhjZXB0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKaW5kZXggZDlh
ZWJmN2MxYzAwZDQ3ZmM5ZDY0ODBiNjM1MzY3MTNjMDU2ZmU2MC4uMzYzYjhhZjRiNDhiYjhjMDc0
NWY4MWIxY2UwZDhmYmU2NTZmMjhhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU09iamVjdFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09i
amVjdFJlZi5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VD
b25zdHJ1Y3RvcihKU0NvbnRleHRSZWYgY3R4LCBKU0NsYXNzUmVmIGpzQ2xhc3MsIEpTT2JqZQog
ICAgIHJldHVybiB0b1JlZihjb25zdHJ1Y3Rvcik7CiB9CiAKLUpTT2JqZWN0UmVmIEpTT2JqZWN0
TWFrZUZ1bmN0aW9uKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIG5hbWUsIHVuc2lnbmVk
IHBhcmFtZXRlckNvdW50LCBjb25zdCBKU1N0cmluZ1JlZiBwYXJhbWV0ZXJOYW1lc1tdLCBKU1N0
cmluZ1JlZiBib2R5LCBKU1N0cmluZ1JlZiBzb3VyY2VVUkwsIGludCBzdGFydGluZ0xpbmVOdW1i
ZXIsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK0pTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZUZ1bmN0
aW9uKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIG5hbWUsIHVuc2lnbmVkIHBhcmFtZXRl
ckNvdW50LCBjb25zdCBKU1N0cmluZ1JlZiBwYXJhbWV0ZXJOYW1lc1tdLCBKU1N0cmluZ1JlZiBi
b2R5LCBKU1N0cmluZ1JlZiBzb3VyY2VVUkxTdHJpbmcsIGludCBzdGFydGluZ0xpbmVOdW1iZXIs
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBpZiAoIWN0eCkgewogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE1MSw4ICsxNTEsOCBAQCBKU09iamVjdFJlZiBKU09iamVj
dE1ha2VGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBuYW1lLCB1bnNpZ25l
ZCBwYQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBhdXRvIHNvdXJjZVVS
TFN0cmluZyA9IHNvdXJjZVVSTCA/IHNvdXJjZVVSTC0+c3RyaW5nKCkgOiBTdHJpbmcoKTsKLSAg
ICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0RnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBhcmdz
LCBuYW1lSUQsIFNvdXJjZU9yaWdpbiB7IHNvdXJjZVVSTFN0cmluZyB9LCBzb3VyY2VVUkxTdHJp
bmcsIFRleHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRpbmdM
aW5lTnVtYmVyKSwgT3JkaW5hbE51bWJlcigpKSk7CisgICAgYXV0byBzb3VyY2VVUkwgPSBzb3Vy
Y2VVUkxTdHJpbmcgPyBVUkwoeyB9LCBzb3VyY2VVUkxTdHJpbmctPnN0cmluZygpKSA6IFVSTCgp
OworICAgIEpTT2JqZWN0KiByZXN1bHQgPSBjb25zdHJ1Y3RGdW5jdGlvbihnbG9iYWxPYmplY3Qs
IGFyZ3MsIG5hbWVJRCwgU291cmNlT3JpZ2luIHsgc291cmNlVVJMIH0sIHNvdXJjZVVSTC5zdHJp
bmcoKSwgVGV4dFBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChzdGFydGlu
Z0xpbmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVyKCkpKTsKICAgICBpZiAoaGFuZGxlRXhjZXB0aW9u
SWZOZWVkZWQoc2NvcGUsIGN0eCwgZXhjZXB0aW9uKSA9PSBFeGNlcHRpb25TdGF0dXM6OkRpZFRo
cm93KQogICAgICAgICByZXN1bHQgPSBudWxscHRyOwogICAgIHJldHVybiB0b1JlZihyZXN1bHQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdC5tbSBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHQubW0KaW5kZXggMDBjODc2YTRlNjQ1YzRk
OGE3ZjVhYzhlOGRjMmM3ZTFiNWMyMmYzMy4uOWU0MTQ1NzEyNGJmMTQzZWE0MTc2MTVjNDk4MmE1
MTljMWQ5M2E3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Njcmlw
dC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0Lm1tCkBAIC0yNjcs
OSArMjY3LDExIEBAIHN0YXRpYyBib29sIHZhbGlkYXRlQnl0ZWNvZGVDYWNoZVBhdGgoTlNVUkwq
IGNhY2hlUGF0aCwgTlNFcnJvcioqIGVycm9yKQogICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2tl
cih2bSk7CiAKICAgICBUZXh0UG9zaXRpb24gc3RhcnRQb3NpdGlvbiB7IH07Ci0gICAgU3RyaW5n
IHVybCA9IFN0cmluZyB7IFtbc2VsZiBzb3VyY2VVUkxdIGFic29sdXRlU3RyaW5nXSB9OworICAg
IFN0cmluZyBmaWxlbmFtZSA9IFN0cmluZyB7IFtbc2VsZiBzb3VyY2VVUkxdIGFic29sdXRlU3Ry
aW5nXSB9OworICAgIFVSTCB1cmwgPSBVUkwoeyB9LCBmaWxlbmFtZSk7CiAgICAgYXV0byB0eXBl
ID0gbV90eXBlID09IGtKU1NjcmlwdFR5cGVNb2R1bGUgPyBKU0M6OlNvdXJjZVByb3ZpZGVyU291
cmNlVHlwZTo6TW9kdWxlIDogSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW07
Ci0gICAgUmVmPEpTU2NyaXB0U291cmNlUHJvdmlkZXI+IHNvdXJjZVByb3ZpZGVyID0gSlNTY3Jp
cHRTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNlbGYsIEpTQzo6U291cmNlT3JpZ2luKHVybCksIFVS
TCh7IH0sIHVybCksIHN0YXJ0UG9zaXRpb24sIHR5cGUpOworICAgIEpTQzo6U291cmNlT3JpZ2lu
IG9yaWdpbih1cmwpOworICAgIFJlZjxKU1NjcmlwdFNvdXJjZVByb3ZpZGVyPiBzb3VyY2VQcm92
aWRlciA9IEpTU2NyaXB0U291cmNlUHJvdmlkZXI6OmNyZWF0ZShzZWxmLCBvcmlnaW4sIFdURk1v
dmUoZmlsZW5hbWUpLCBzdGFydFBvc2l0aW9uLCB0eXBlKTsKICAgICBKU0M6OlNvdXJjZUNvZGUg
c291cmNlQ29kZShXVEZNb3ZlKHNvdXJjZVByb3ZpZGVyKSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUu
b25lQmFzZWRJbnQoKSwgc3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKTsKICAg
ICByZXR1cm4gc291cmNlQ29kZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNTY3JpcHRSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Njcmlw
dFJlZi5jcHAKaW5kZXggODQxNTlhYzUyNTczYzc4NzRlM2I1MmIyYTQyZTBmZWM2M2NlN2JhYS4u
NzYyY2VjMDVlOTI0NmMwY2IxZmFjMTJkZGFmNzJjMWFjNjEwNTAyMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAKQEAgLTM5LDkgKzM5LDkgQEAgdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKIAogc3RydWN0IE9wYXF1ZUpTU2NyaXB0IGZpbmFsIDogcHVibGljIFNvdXJj
ZVByb3ZpZGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgV1RGOjpSZWY8T3BhcXVlSlNTY3JpcHQ+
IGNyZWF0ZShWTSYgdm0sIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1
cmwsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlKQorICAgIHN0
YXRpYyBXVEY6OlJlZjxPcGFxdWVKU1NjcmlwdD4gY3JlYXRlKFZNJiB2bSwgY29uc3QgU291cmNl
T3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0cmluZyBmaWxlbmFtZSwgaW50IHN0YXJ0aW5nTGluZU51
bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2UpCiAgICAgewotICAgICAgICByZXR1cm4gV1RGOjph
ZG9wdFJlZigqbmV3IE9wYXF1ZUpTU2NyaXB0KHZtLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUodXJs
KSwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2UpKTsKKyAgICAgICAgcmV0dXJuIFdURjo6YWRv
cHRSZWYoKm5ldyBPcGFxdWVKU1NjcmlwdCh2bSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKGZpbGVu
YW1lKSwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2UpKTsKICAgICB9CiAKICAgICB1bnNpZ25l
ZCBoYXNoKCkgY29uc3QgZmluYWwKQEAgLTU3LDggKzU3LDggQEAgcHVibGljOgogICAgIFZNJiB2
bSgpIGNvbnN0IHsgcmV0dXJuIG1fdm07IH0KIAogcHJpdmF0ZToKLSAgICBPcGFxdWVKU1Njcmlw
dChWTSYgdm0sIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwsIGlu
dCBzdGFydGluZ0xpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlKQotICAgICAgICA6IFNv
dXJjZVByb3ZpZGVyKHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpLCBUZXh0UG9zaXRpb24oT3Jk
aW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0YXJ0aW5nTGluZU51bWJlciksIE9yZGluYWxO
dW1iZXIoKSksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSkKKyAgICBPcGFxdWVK
U1NjcmlwdChWTSYgdm0sIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJpbmcm
JiBmaWxlbmFtZSwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2Up
CisgICAgICAgIDogU291cmNlUHJvdmlkZXIoc291cmNlT3JpZ2luLCBXVEZNb3ZlKGZpbGVuYW1l
KSwgVGV4dFBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChzdGFydGluZ0xp
bmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVyKCkpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlBy
b2dyYW0pCiAgICAgICAgICwgbV92bSh2bSkKICAgICAgICAgLCBtX3NvdXJjZShzb3VyY2UuaXNO
dWxsKCkgPyAqU3RyaW5nSW1wbDo6ZW1wdHkoKSA6ICpzb3VyY2UuaW1wbCgpKQogICAgIHsKQEAg
LTgwLDcgKzgwLDcgQEAgc3RhdGljIGJvb2wgcGFyc2VTY3JpcHQoVk0mIHZtLCBjb25zdCBTb3Vy
Y2VDb2RlJiBzb3VyY2UsIFBhcnNlckVycm9yJiBlcnJvcikKIAogZXh0ZXJuICJDIiB7CiAKLUpT
U2NyaXB0UmVmIEpTU2NyaXB0Q3JlYXRlUmVmZXJlbmNpbmdJbW1vcnRhbEFTQ0lJVGV4dChKU0Nv
bnRleHRHcm91cFJlZiBjb250ZXh0R3JvdXAsIEpTU3RyaW5nUmVmIHVybCwgaW50IHN0YXJ0aW5n
TGluZU51bWJlciwgY29uc3QgY2hhciogc291cmNlLCBzaXplX3QgbGVuZ3RoLCBKU1N0cmluZ1Jl
ZiogZXJyb3JNZXNzYWdlLCBpbnQqIGVycm9yTGluZSkKK0pTU2NyaXB0UmVmIEpTU2NyaXB0Q3Jl
YXRlUmVmZXJlbmNpbmdJbW1vcnRhbEFTQ0lJVGV4dChKU0NvbnRleHRHcm91cFJlZiBjb250ZXh0
R3JvdXAsIEpTU3RyaW5nUmVmIHVybFN0cmluZywgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgY29u
c3QgY2hhciogc291cmNlLCBzaXplX3QgbGVuZ3RoLCBKU1N0cmluZ1JlZiogZXJyb3JNZXNzYWdl
LCBpbnQqIGVycm9yTGluZSkKIHsKICAgICBhdXRvJiB2bSA9ICp0b0pTKGNvbnRleHRHcm91cCk7
CiAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcigmdm0pOwpAQCAtOTEsOCArOTEsOCBAQCBKU1Njcmlw
dFJlZiBKU1NjcmlwdENyZWF0ZVJlZmVyZW5jaW5nSW1tb3J0YWxBU0NJSVRleHQoSlNDb250ZXh0
R3JvdXBSZWYgY29udGV4dAogCiAgICAgc3RhcnRpbmdMaW5lTnVtYmVyID0gc3RkOjptYXgoMSwg
c3RhcnRpbmdMaW5lTnVtYmVyKTsKIAotICAgIGF1dG8gc291cmNlVVJMU3RyaW5nID0gdXJsID8g
dXJsLT5zdHJpbmcoKSA6IFN0cmluZygpOwotICAgIGF1dG8gcmVzdWx0ID0gT3BhcXVlSlNTY3Jp
cHQ6OmNyZWF0ZSh2bSwgU291cmNlT3JpZ2luIHsgc291cmNlVVJMU3RyaW5nIH0sIFVSTCh7IH0s
IHNvdXJjZVVSTFN0cmluZyksIHN0YXJ0aW5nTGluZU51bWJlciwgU3RyaW5nKFN0cmluZ0ltcGw6
OmNyZWF0ZUZyb21MaXRlcmFsKHNvdXJjZSwgbGVuZ3RoKSkpOworICAgIGF1dG8gc291cmNlVVJM
ID0gdXJsU3RyaW5nID8gVVJMKHsgfSwgdXJsU3RyaW5nLT5zdHJpbmcoKSkgOiBVUkwoKTsKKyAg
ICBhdXRvIHJlc3VsdCA9IE9wYXF1ZUpTU2NyaXB0OjpjcmVhdGUodm0sIFNvdXJjZU9yaWdpbiB7
IHNvdXJjZVVSTCB9LCBzb3VyY2VVUkwuc3RyaW5nKCksIHN0YXJ0aW5nTGluZU51bWJlciwgU3Ry
aW5nKFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKHNvdXJjZSwgbGVuZ3RoKSkpOwogCiAg
ICAgUGFyc2VyRXJyb3IgZXJyb3I7CiAgICAgaWYgKCFwYXJzZVNjcmlwdCh2bSwgU291cmNlQ29k
ZShyZXN1bHQuY29weVJlZigpKSwgZXJyb3IpKSB7CkBAIC0xMDYsMTUgKzEwNiwxNSBAQCBKU1Nj
cmlwdFJlZiBKU1NjcmlwdENyZWF0ZVJlZmVyZW5jaW5nSW1tb3J0YWxBU0NJSVRleHQoSlNDb250
ZXh0R3JvdXBSZWYgY29udGV4dAogICAgIHJldHVybiAmcmVzdWx0LmxlYWtSZWYoKTsKIH0KIAot
SlNTY3JpcHRSZWYgSlNTY3JpcHRDcmVhdGVGcm9tU3RyaW5nKEpTQ29udGV4dEdyb3VwUmVmIGNv
bnRleHRHcm91cCwgSlNTdHJpbmdSZWYgdXJsLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBKU1N0
cmluZ1JlZiBzb3VyY2UsIEpTU3RyaW5nUmVmKiBlcnJvck1lc3NhZ2UsIGludCogZXJyb3JMaW5l
KQorSlNTY3JpcHRSZWYgSlNTY3JpcHRDcmVhdGVGcm9tU3RyaW5nKEpTQ29udGV4dEdyb3VwUmVm
IGNvbnRleHRHcm91cCwgSlNTdHJpbmdSZWYgdXJsU3RyaW5nLCBpbnQgc3RhcnRpbmdMaW5lTnVt
YmVyLCBKU1N0cmluZ1JlZiBzb3VyY2UsIEpTU3RyaW5nUmVmKiBlcnJvck1lc3NhZ2UsIGludCog
ZXJyb3JMaW5lKQogewogICAgIGF1dG8mIHZtID0gKnRvSlMoY29udGV4dEdyb3VwKTsKICAgICBK
U0xvY2tIb2xkZXIgbG9ja2VyKCZ2bSk7CiAKICAgICBzdGFydGluZ0xpbmVOdW1iZXIgPSBzdGQ6
Om1heCgxLCBzdGFydGluZ0xpbmVOdW1iZXIpOwogCi0gICAgYXV0byBzb3VyY2VVUkxTdHJpbmcg
PSB1cmwgPyB1cmwtPnN0cmluZygpIDogU3RyaW5nKCk7Ci0gICAgYXV0byByZXN1bHQgPSBPcGFx
dWVKU1NjcmlwdDo6Y3JlYXRlKHZtLCBTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkxTdHJpbmcgfSwg
VVJMKHsgfSwgc291cmNlVVJMU3RyaW5nKSwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2UtPnN0
cmluZygpKTsKKyAgICBhdXRvIHNvdXJjZVVSTCA9IHVybFN0cmluZyA/IFVSTCh7IH0sIHVybFN0
cmluZy0+c3RyaW5nKCkpIDogVVJMKCk7CisgICAgYXV0byByZXN1bHQgPSBPcGFxdWVKU1Njcmlw
dDo6Y3JlYXRlKHZtLCBTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkwgfSwgc291cmNlVVJMLnN0cmlu
ZygpLCBzdGFydGluZ0xpbmVOdW1iZXIsIHNvdXJjZS0+c3RyaW5nKCkpOwogCiAgICAgUGFyc2Vy
RXJyb3IgZXJyb3I7CiAgICAgaWYgKCFwYXJzZVNjcmlwdCh2bSwgU291cmNlQ29kZShyZXN1bHQu
Y29weVJlZigpKSwgZXJyb3IpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwCmluZGV4IGFiYWFlZjA4MWZlMjRiMjkxZGJm
Mzg3NWZlYjY3YzM5NzhhYmQ0MmMuLjgzMDQ5NDRiYWM0MzhiYzk3OTM0YTRhMDJkMDIxNTk1NWI0
Y2FjZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGlu
RXhlY3V0YWJsZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWls
dGluRXhlY3V0YWJsZXMuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBC
dWlsdGluRXhlY3V0YWJsZXM6OkJ1aWx0aW5FeGVjdXRhYmxlcyhWTSYgdm0pCiAgICAgOiBtX3Zt
KHZtKQotICAgICwgbV9jb21iaW5lZFNvdXJjZVByb3ZpZGVyKFN0cmluZ1NvdXJjZVByb3ZpZGVy
OjpjcmVhdGUoU3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwoc19KU0NDb21iaW5lZENvZGUs
IHNfSlNDQ29tYmluZWRDb2RlTGVuZ3RoKSwgeyB9LCBVUkwoKSkpCisgICAgLCBtX2NvbWJpbmVk
U291cmNlUHJvdmlkZXIoU3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShTdHJpbmdJbXBsOjpj
cmVhdGVGcm9tTGl0ZXJhbChzX0pTQ0NvbWJpbmVkQ29kZSwgc19KU0NDb21iaW5lZENvZGVMZW5n
dGgpLCB7IH0sIFN0cmluZygpKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uY3BwCmluZGV4IDkyYWNhNjI5NjVhOGYyN2Fj
NDdmNDNjYTI0YTM3MGU1NGMwM2JmMmEuLjBlMTk5OThmMWUzMmFlOTYyYjIzY2UzNjdkYzA5Nzdm
MzczNTQxMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1
Z2dlckxvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXJMb2NhdGlvbi5jcHAKQEAgLTM5LDkgKzM5LDYgQEAgRGVidWdnZXJMb2NhdGlvbjo6RGVi
dWdnZXJMb2NhdGlvbihTY3JpcHRFeGVjdXRhYmxlKiBleGVjdXRhYmxlKQogICAgIHNvdXJjZUlE
ID0gZXhlY3V0YWJsZS0+c291cmNlSUQoKTsKICAgICBsaW5lID0gZXhlY3V0YWJsZS0+Zmlyc3RM
aW5lKCk7CiAgICAgY29sdW1uID0gZXhlY3V0YWJsZS0+c3RhcnRDb2x1bW4oKTsKLSAgICB1cmwg
PSBleGVjdXRhYmxlLT5zb3VyY2VVUkwoKTsKLSAgICBpZiAodXJsLmlzRW1wdHkoKSkKLSAgICAg
ICAgdXJsID0gZXhlY3V0YWJsZS0+c291cmNlKCkucHJvdmlkZXIoKS0+c291cmNlVVJMRGlyZWN0
aXZlKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmgKaW5kZXggM2UxYzQxNjZiMGE3ZTkwNDEw
Njc3ZDZiODI2ZjFkNjIxZjI5NGU1NS4uZTk0ODc3MTY4YzQwMDRlYjljYWQzOGU3NWI5ZTM4ZmMy
MDA2MjMwYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyTG9jYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJMb2NhdGlvbi5oCkBAIC0zNSwxNiArMzUsMTQgQEAgY2xhc3MgU2NyaXB0RXhlY3V0YWJsZTsK
IHN0cnVjdCBEZWJ1Z2dlckxvY2F0aW9uIHsKIAogICAgIERlYnVnZ2VyTG9jYXRpb24oKSB7IH0K
LSAgICBEZWJ1Z2dlckxvY2F0aW9uKGNvbnN0IFN0cmluZyYgdXJsLCBpbnRwdHJfdCBzb3VyY2VJ
RCwgdW5zaWduZWQgbGluZSwgdW5zaWduZWQgY29sdW1uKQotICAgICAgICA6IHVybCh1cmwpCi0g
ICAgICAgICwgc291cmNlSUQoc291cmNlSUQpCisgICAgRGVidWdnZXJMb2NhdGlvbihpbnRwdHJf
dCBzb3VyY2VJRCwgdW5zaWduZWQgbGluZSwgdW5zaWduZWQgY29sdW1uKQorICAgICAgICA6IHNv
dXJjZUlEKHNvdXJjZUlEKQogICAgICAgICAsIGxpbmUobGluZSkKICAgICAgICAgLCBjb2x1bW4o
Y29sdW1uKQogICAgIHsgfQogCiAgICAgRGVidWdnZXJMb2NhdGlvbihTY3JpcHRFeGVjdXRhYmxl
Kik7CiAKLSAgICBTdHJpbmcgdXJsOwogICAgIGludHB0cl90IHNvdXJjZUlEIHsgbm9Tb3VyY2VJ
RCB9OwogICAgIHVuc2lnbmVkIGxpbmUgeyAwIH07CiAgICAgdW5zaWduZWQgY29sdW1uIHsgMCB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1
Z1NlcnZlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVn
U2VydmVyLmNwcAppbmRleCBmYmIwNGE0OGNjZDE3Nzg5NDBkMDY0NzA2ZTUyODQwNDgyMmZjOTYw
Li44ZGVkMTI5NWY5NDM2ODc4YzczZTljZWRiNjYxMzEyM2U0MjIxZGRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmNwcApA
QCAtMTM5LDExICsxMzksMTEgQEAgdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6c291cmNlUGFyc2Vk
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFNvdXJjZVByb3ZpZGUKICAgICAgICAgcmV0
dXJuOwogCiAgICAgaWYgKGVycm9yTGluZSAhPSAtMSkgewotICAgICAgICBhdXRvIHVybCA9IHNv
dXJjZVByb3ZpZGVyLT51cmwoKTsKKyAgICAgICAgYXV0byBzb3VyY2VVUkwgPSBzb3VyY2VQcm92
aWRlci0+c291cmNlVVJMKCk7CiAgICAgICAgIGF1dG8gZGF0YSA9IHNvdXJjZVByb3ZpZGVyLT5z
b3VyY2UoKS50b1N0cmluZygpOwogICAgICAgICBhdXRvIGZpcnN0TGluZSA9IHNvdXJjZVByb3Zp
ZGVyLT5zdGFydFBvc2l0aW9uKCkubV9saW5lLm9uZUJhc2VkSW50KCk7CiAgICAgICAgIGRpc3Bh
dGNoRnVuY3Rpb25Ub0xpc3RlbmVycyhbJl0gKFNjcmlwdERlYnVnTGlzdGVuZXImIGxpc3RlbmVy
KSB7Ci0gICAgICAgICAgICBsaXN0ZW5lci5mYWlsZWRUb1BhcnNlU291cmNlKHVybC5zdHJpbmco
KSwgZGF0YSwgZmlyc3RMaW5lLCBlcnJvckxpbmUsIGVycm9yTWVzc2FnZSk7CisgICAgICAgICAg
ICBsaXN0ZW5lci5mYWlsZWRUb1BhcnNlU291cmNlKHNvdXJjZVVSTCwgZGF0YSwgZmlyc3RMaW5l
LCBlcnJvckxpbmUsIGVycm9yTWVzc2FnZSk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtMTUzLDcgKzE1Myw3IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnNvdXJj
ZVBhcnNlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTb3VyY2VQcm92aWRlCiAgICAg
Ly8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNjI3NzM+IFdlYiBJbnNwZWN0b3I6IFNp
bXBsaWZ5IFNjcmlwdERlYnVnTGlzdGVuZXI6OlNjcmlwdCB0byB1c2UgU291cmNlUHJvdmlkZXIK
ICAgICBTY3JpcHREZWJ1Z0xpc3RlbmVyOjpTY3JpcHQgc2NyaXB0OwogICAgIHNjcmlwdC5zb3Vy
Y2VQcm92aWRlciA9IHNvdXJjZVByb3ZpZGVyOwotICAgIHNjcmlwdC51cmwgPSBzb3VyY2VQcm92
aWRlci0+dXJsKCkuc3RyaW5nKCk7CisgICAgc2NyaXB0LnVybCA9IHNvdXJjZVByb3ZpZGVyLT5z
b3VyY2VVUkwoKTsKICAgICBzY3JpcHQuc291cmNlID0gc291cmNlUHJvdmlkZXItPnNvdXJjZSgp
LnRvU3RyaW5nKCk7CiAgICAgc2NyaXB0LnN0YXJ0TGluZSA9IHNvdXJjZVByb3ZpZGVyLT5zdGFy
dFBvc2l0aW9uKCkubV9saW5lLnplcm9CYXNlZEludCgpOwogICAgIHNjcmlwdC5zdGFydENvbHVt
biA9IHNvdXJjZVByb3ZpZGVyLT5zdGFydFBvc2l0aW9uKCkubV9jb2x1bW4uemVyb0Jhc2VkSW50
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDBmN2NiM2IyZmM5MTg2N2ZmMjExMGFjN2E4Nzc4
MmM1YjQwMGY1MzguLmUyMWUxZTRmZmMxYzE2NGQ4Yzc2NmU3OTVmZGE4MzRjMjAyODQwOTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwCkBAIC02NzksNTEgKzY3OSw3IEBAIHN0YXRpYyBVQ2hhciBwYXRo
U2VwYXJhdG9yKCkKICNlbmRpZgogfQogCi1zdHJ1Y3QgRGlyZWN0b3J5TmFtZSB7Ci0gICAgLy8g
SW4gdW5peCwgaXQgaXMgIi8iLiBJbiBXaW5kb3dzLCBpdCBiZWNvbWVzIGEgZHJpdmUgbGV0dGVy
IGxpa2UgIkM6XCIKLSAgICBTdHJpbmcgcm9vdE5hbWU7Ci0KLSAgICAvLyBJZiB0aGUgZGlyZWN0
b3J5IG5hbWUgaXMgIi9ob21lL1dlYktpdCIsIHRoaXMgYmVjb21lcyAiaG9tZS9XZWJLaXQiLiBJ
ZiB0aGUgZGlyZWN0b3J5IG5hbWUgaXMgIi8iLCB0aGlzIGJlY29tZXMgIiIuCi0gICAgU3RyaW5n
IHF1ZXJ5TmFtZTsKLX07Ci0KLXN0cnVjdCBNb2R1bGVOYW1lIHsKLSAgICBNb2R1bGVOYW1lKGNv
bnN0IFN0cmluZyYgbW9kdWxlTmFtZSk7Ci0KLSAgICBib29sIHN0YXJ0c1dpdGhSb290KCkgY29u
c3QKLSAgICB7Ci0gICAgICAgIHJldHVybiAhcXVlcmllcy5pc0VtcHR5KCkgJiYgcXVlcmllc1sw
XS5pc0VtcHR5KCk7Ci0gICAgfQotCi0gICAgVmVjdG9yPFN0cmluZz4gcXVlcmllczsKLX07Ci0K
LU1vZHVsZU5hbWU6Ok1vZHVsZU5hbWUoY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lKQotewotICAg
IC8vIEEgbW9kdWxlIG5hbWUgZ2l2ZW4gZnJvbSBjb2RlIGlzIHJlcHJlc2VudGVkIGFzIHRoZSBV
TklYIHN0eWxlIHBhdGguIExpa2UsIGAuL0EvQi5qc2AuCi0gICAgcXVlcmllcyA9IG1vZHVsZU5h
bWUuc3BsaXRBbGxvd2luZ0VtcHR5RW50cmllcygnLycpOwotfQotCi1zdGF0aWMgT3B0aW9uYWw8
RGlyZWN0b3J5TmFtZT4gZXh0cmFjdERpcmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJiBhYnNvbHV0
ZVBhdGhUb0ZpbGUpCi17Ci0gICAgc2l6ZV90IGZpcnN0U2VwYXJhdG9yUG9zaXRpb24gPSBhYnNv
bHV0ZVBhdGhUb0ZpbGUuZmluZChwYXRoU2VwYXJhdG9yKCkpOwotICAgIGlmIChmaXJzdFNlcGFy
YXRvclBvc2l0aW9uID09IG5vdEZvdW5kKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owot
ICAgIERpcmVjdG9yeU5hbWUgZGlyZWN0b3J5TmFtZTsKLSAgICBkaXJlY3RvcnlOYW1lLnJvb3RO
YW1lID0gYWJzb2x1dGVQYXRoVG9GaWxlLnN1YnN0cmluZygwLCBmaXJzdFNlcGFyYXRvclBvc2l0
aW9uICsgMSk7IC8vIEluY2x1ZGUgdGhlIHNlcGFyYXRvci4KLSAgICBzaXplX3QgbGFzdFNlcGFy
YXRvclBvc2l0aW9uID0gYWJzb2x1dGVQYXRoVG9GaWxlLnJldmVyc2VGaW5kKHBhdGhTZXBhcmF0
b3IoKSk7Ci0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRShsYXN0U2VwYXJhdG9yUG9zaXRpb24gIT0g
bm90Rm91bmQsICJJZiB0aGUgc2VwYXJhdG9yIGlzIG5vdCBmb3VuZCwgdGhpcyBmdW5jdGlvbiBh
bHJlYWR5IHJldHVybnMgd2hlbiBwZXJmb3JtaW5nIHRoZSBmb3J3YXJkIHNlYXJjaC4iKTsKLSAg
ICBpZiAoZmlyc3RTZXBhcmF0b3JQb3NpdGlvbiA9PSBsYXN0U2VwYXJhdG9yUG9zaXRpb24pCi0g
ICAgICAgIGRpcmVjdG9yeU5hbWUucXVlcnlOYW1lID0gU3RyaW5nSW1wbDo6ZW1wdHkoKTsKLSAg
ICBlbHNlIHsKLSAgICAgICAgc2l6ZV90IHF1ZXJ5U3RhcnRQb3NpdGlvbiA9IGZpcnN0U2VwYXJh
dG9yUG9zaXRpb24gKyAxOwotICAgICAgICBzaXplX3QgcXVlcnlMZW5ndGggPSBsYXN0U2VwYXJh
dG9yUG9zaXRpb24gLSBxdWVyeVN0YXJ0UG9zaXRpb247IC8vIE5vdCBpbmNsdWRlIHRoZSBsYXN0
IHNlcGFyYXRvci4KLSAgICAgICAgZGlyZWN0b3J5TmFtZS5xdWVyeU5hbWUgPSBhYnNvbHV0ZVBh
dGhUb0ZpbGUuc3Vic3RyaW5nKHF1ZXJ5U3RhcnRQb3NpdGlvbiwgcXVlcnlMZW5ndGgpOwotICAg
IH0KLSAgICByZXR1cm4gZGlyZWN0b3J5TmFtZTsKLX0KLQotc3RhdGljIE9wdGlvbmFsPERpcmVj
dG9yeU5hbWU+IGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KCkKK3N0YXRpYyBVUkwgY3VycmVudFdv
cmtpbmdEaXJlY3RvcnkoKQogewogI2lmIE9TKFdJTkRPV1MpCiAgICAgLy8gaHR0cHM6Ly9tc2Ru
Lm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS93aW5kb3dzL2Rlc2t0b3AvYWEzNjQ5MzQuYXNw
eApAQCAtNzM3LDcgKzY5Myw3IEBAIHN0YXRpYyBPcHRpb25hbDxEaXJlY3RvcnlOYW1lPiBjdXJy
ZW50V29ya2luZ0RpcmVjdG9yeSgpCiAgICAgLy8gSW4gdGhlIHBhdGggdXRpbGl0eSBmdW5jdGlv
bnMgaW5zaWRlIHRoZSBKU0Mgc2hlbGwsIHdlIGRvZXMgbm90IGhhbmRsZSB0aGUgVU5DIGFuZCBV
TkNXIGluY2x1ZGluZyB0aGUgbmV0d29yayBob3N0IG5hbWUuCiAgICAgRFdPUkQgYnVmZmVyTGVu
Z3RoID0gOjpHZXRDdXJyZW50RGlyZWN0b3J5VygwLCBudWxscHRyKTsKICAgICBpZiAoIWJ1ZmZl
ckxlbmd0aCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsg
fTsKICAgICAvLyBJbiBXaW5kb3dzLCB3Y2hhcl90IGlzIHRoZSBVVEYtMTZMRS4KICAgICAvLyBo
dHRwczovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L2RkMzc0MDgxLmFzcHgKICAg
ICAvLyBodHRwczovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3dpbmRvd3MvZGVz
a3RvcC9mZjM4MTQwNy5hc3B4CkBAIC03NDYsNTQgKzcwMiwzMSBAQCBzdGF0aWMgT3B0aW9uYWw8
RGlyZWN0b3J5TmFtZT4gY3VycmVudFdvcmtpbmdEaXJlY3RvcnkoKQogICAgIFN0cmluZyBkaXJl
Y3RvcnlTdHJpbmcoYnVmZmVyLmRhdGEoKSwgbGVuZ3RoTm90SW5jbHVkaW5nTnVsbCk7CiAgICAg
Ly8gV2UgZG9uJ3Qgc3VwcG9ydCBuZXR3b3JrIHBhdGggbGlrZSBcXGhvc3Rcc2hhcmVcPHBhdGgg
bmFtZT4uCiAgICAgaWYgKGRpcmVjdG9yeVN0cmluZy5zdGFydHNXaXRoKCJcXFxcIikpCi0gICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IH07CisKICNlbHNlCiAg
ICAgVmVjdG9yPGNoYXI+IGJ1ZmZlcihQQVRIX01BWCk7CiAgICAgaWYgKCFnZXRjd2QoYnVmZmVy
LmRhdGEoKSwgUEFUSF9NQVgpKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAg
ICByZXR1cm4geyB9OwogICAgIFN0cmluZyBkaXJlY3RvcnlTdHJpbmcgPSBTdHJpbmc6OmZyb21V
VEY4KGJ1ZmZlci5kYXRhKCkpOwogI2VuZGlmCiAgICAgaWYgKGRpcmVjdG9yeVN0cmluZy5pc0Vt
cHR5KCkpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICBpZiAoZGlyZWN0b3J5
U3RyaW5nW2RpcmVjdG9yeVN0cmluZy5sZW5ndGgoKSAtIDFdID09IHBhdGhTZXBhcmF0b3IoKSkK
LSAgICAgICAgcmV0dXJuIGV4dHJhY3REaXJlY3RvcnlOYW1lKGRpcmVjdG9yeVN0cmluZyk7Ci0g
ICAgLy8gQXBwZW5kIHRoZSBzZXBlcmF0b3IgdG8gcmVwcmVzZW50cyB0aGUgZmlsZSBuYW1lLiBl
eHRyYWN0RGlyZWN0b3J5TmFtZSBvbmx5IGFjY2VwdHMgdGhlIGFic29sdXRlIGZpbGUgbmFtZS4K
LSAgICByZXR1cm4gZXh0cmFjdERpcmVjdG9yeU5hbWUobWFrZVN0cmluZyhkaXJlY3RvcnlTdHJp
bmcsIHBhdGhTZXBhcmF0b3IoKSkpOwotfQotCi1zdGF0aWMgU3RyaW5nIHJlc29sdmVQYXRoKGNv
bnN0IERpcmVjdG9yeU5hbWUmIGRpcmVjdG9yeU5hbWUsIGNvbnN0IE1vZHVsZU5hbWUmIG1vZHVs
ZU5hbWUpCi17Ci0gICAgVmVjdG9yPFN0cmluZz4gZGlyZWN0b3J5UGllY2VzID0gZGlyZWN0b3J5
TmFtZS5xdWVyeU5hbWUuc3BsaXQocGF0aFNlcGFyYXRvcigpKTsKLQotICAgIC8vIE9ubHkgZmly
c3QgJy8nIGlzIHJlY29nbml6ZWQgYXMgdGhlIHBhdGggZnJvbSB0aGUgcm9vdC4KLSAgICBpZiAo
bW9kdWxlTmFtZS5zdGFydHNXaXRoUm9vdCgpKQotICAgICAgICBkaXJlY3RvcnlQaWVjZXMuY2xl
YXIoKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGZvciAoY29uc3QgYXV0byYgcXVlcnkg
OiBtb2R1bGVOYW1lLnF1ZXJpZXMpIHsKLSAgICAgICAgaWYgKHF1ZXJ5ID09IFN0cmluZygiLi4i
X3MpKSB7Ci0gICAgICAgICAgICBpZiAoIWRpcmVjdG9yeVBpZWNlcy5pc0VtcHR5KCkpCi0gICAg
ICAgICAgICAgICAgZGlyZWN0b3J5UGllY2VzLnJlbW92ZUxhc3QoKTsKLSAgICAgICAgfSBlbHNl
IGlmICghcXVlcnkuaXNFbXB0eSgpICYmIHF1ZXJ5ICE9IFN0cmluZygiLiJfcykpCi0gICAgICAg
ICAgICBkaXJlY3RvcnlQaWVjZXMuYXBwZW5kKHF1ZXJ5KTsKLSAgICB9CisgICAgLy8gQWRkIGEg
dHJhaWxpbmcgc2xhc2ggaWYgbmVlZGVkIHNvIHRoZSBVUkwgcmVzb2x2ZXMgdG8gYSBkaXJlY3Rv
cnkgYW5kIG5vdCBhIGZpbGUuCisgICAgaWYgKGRpcmVjdG9yeVN0cmluZ1tkaXJlY3RvcnlTdHJp
bmcubGVuZ3RoKCkgLSAxXSAhPSBwYXRoU2VwYXJhdG9yKCkpCisgICAgICAgIGRpcmVjdG9yeVN0
cmluZyA9IG1ha2VTdHJpbmcoZGlyZWN0b3J5U3RyaW5nLCBwYXRoU2VwYXJhdG9yKCkpOwogCi0g
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKGRpcmVjdG9yeU5h
bWUucm9vdE5hbWUpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZGlyZWN0b3J5UGllY2Vz
LnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGRpcmVjdG9yeVBpZWNlc1tp
XSk7Ci0gICAgICAgIGlmIChpICsgMSAhPSBkaXJlY3RvcnlQaWVjZXMuc2l6ZSgpKQotICAgICAg
ICAgICAgYnVpbGRlci5hcHBlbmQocGF0aFNlcGFyYXRvcigpKTsKLSAgICB9Ci0gICAgcmV0dXJu
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICByZXR1cm4gVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0
ZW1QYXRoKGRpcmVjdG9yeVN0cmluZyk7CiB9CiAKLXN0YXRpYyBTdHJpbmcgYWJzb2x1dGVQYXRo
KGNvbnN0IFN0cmluZyYgZmlsZU5hbWUpCitzdGF0aWMgVVJMIGFic29sdXRlUGF0aChjb25zdCBT
dHJpbmcmIGZpbGVOYW1lKQogewogICAgIGF1dG8gZGlyZWN0b3J5TmFtZSA9IGN1cnJlbnRXb3Jr
aW5nRGlyZWN0b3J5KCk7Ci0gICAgaWYgKCFkaXJlY3RvcnlOYW1lKQotICAgICAgICByZXR1cm4g
ZmlsZU5hbWU7Ci0gICAgcmV0dXJuIHJlc29sdmVQYXRoKGRpcmVjdG9yeU5hbWUudmFsdWUoKSwg
TW9kdWxlTmFtZShmaWxlTmFtZS5pbXBsKCkpKTsKKyAgICBpZiAoIWRpcmVjdG9yeU5hbWUuaXNW
YWxpZCgpKQorICAgICAgICByZXR1cm4gVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRoKGZp
bGVOYW1lKTsKKworICAgIHJldHVybiBVUkwoZGlyZWN0b3J5TmFtZSwgZmlsZU5hbWUpOwogfQog
CiBKU0ludGVybmFsUHJvbWlzZSogR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1
bGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNNb2R1bGVMb2FkZXIqLCBKU1N0cmlu
ZyogbW9kdWxlTmFtZVZhbHVlLCBKU1ZhbHVlIHBhcmFtZXRlcnMsIGNvbnN0IFNvdXJjZU9yaWdp
biYgc291cmNlT3JpZ2luKQpAQCAtODExLDIwICs3NDQsMjYgQEAgSlNJbnRlcm5hbFByb21pc2Uq
IEdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWwKICAgICAgICAgcmV0dXJuIHByb21pc2U7CiAgICAgfTsKIAotICAgIGlmIChzb3VyY2VP
cmlnaW4uaXNOdWxsKCkpCisgICAgaWYgKCFzb3VyY2VPcmlnaW4udXJsKCkpCiAgICAgICAgIHJl
dHVybiByZWplY3QoY3JlYXRlRXJyb3IoZ2xvYmFsT2JqZWN0LCAiQ291bGQgbm90IHJlc29sdmUg
dGhlIG1vZHVsZSBzcGVjaWZpZXIuIl9zKSk7CiAKLSAgICBhdXRvIHJlZmVycmVyID0gc291cmNl
T3JpZ2luLnN0cmluZygpOwotICAgIGF1dG8gbW9kdWxlTmFtZSA9IG1vZHVsZU5hbWVWYWx1ZS0+
dmFsdWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBhdXRvIHJlZmVycmVyID0gc291cmNlT3JpZ2luLnVy
bCgpOworICAgIGF1dG8gc3BlY2lmaWVyID0gbW9kdWxlTmFtZVZhbHVlLT52YWx1ZShnbG9iYWxP
YmplY3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgbnVsbHB0cik7CiAg
ICAgaWYgKFVOTElLRUxZKGNhdGNoU2NvcGUuZXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4g
cmVqZWN0KGNhdGNoU2NvcGUuZXhjZXB0aW9uKCktPnZhbHVlKCkpOwogCi0gICAgYXV0byBkaXJl
Y3RvcnlOYW1lID0gZXh0cmFjdERpcmVjdG9yeU5hbWUocmVmZXJyZXIuaW1wbCgpKTsKLSAgICBp
ZiAoIWRpcmVjdG9yeU5hbWUpCi0gICAgICAgIHJldHVybiByZWplY3QoY3JlYXRlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBtYWtlU3RyaW5nKCJDb3VsZCBub3QgcmVzb2x2ZSB0aGUgcmVmZXJyZXIgbmFt
ZSAnIiwgU3RyaW5nKHJlZmVycmVyLmltcGwoKSksICInLiIpKSk7CisgICAgaWYgKCFyZWZlcnJl
ci5pc0xvY2FsRmlsZSgpKQorICAgICAgICByZXR1cm4gcmVqZWN0KGNyZWF0ZUVycm9yKGdsb2Jh
bE9iamVjdCwgbWFrZVN0cmluZygiQ291bGQgbm90IHJlc29sdmUgdGhlIHJlZmVycmVyJ3MgcGF0
aCAnIiwgcmVmZXJyZXIuc3RyaW5nKCksICInLCB3aGlsZSB0cnlpbmcgdG8gcmVzb2x2ZSBtb2R1
bGUgJyIsIHNwZWNpZmllciwgIicuIikpKTsKKworICAgIGlmICghc3BlY2lmaWVyLnN0YXJ0c1dp
dGgoJy8nKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4vIikgJiYgIXNwZWNpZmllci5zdGFy
dHNXaXRoKCIuLi8iKSkKKyAgICAgICAgcmV0dXJuIHJlamVjdChjcmVhdGVUeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBtYWtlU3RyaW5nKCJNb2R1bGUgc3BlY2lmaWVyLCAnIl9zLCBzcGVjaWZpZXIs
ICInIGRvZXMgbm90IHN0YXJ0IHdpdGggXCIvXCIsIFwiLi9cIiwgb3IgXCIuLi9cIi4gUmVmZXJl
bmNlZCBmcm9tOiAiX3MsIHJlZmVycmVyLmZpbGVTeXN0ZW1QYXRoKCkpKSk7CisKKyAgICBVUkwg
bW9kdWxlVVJMKHJlZmVycmVyLCBzcGVjaWZpZXIpOworICAgIGlmICghbW9kdWxlVVJMLmlzTG9j
YWxGaWxlKCkpCisgICAgICAgIHJldHVybiByZWplY3QoY3JlYXRlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBtYWtlU3RyaW5nKCJNb2R1bGUgdXJsLCAnIiwgbW9kdWxlVVJMLnN0cmluZygpLCAiJyBkb2Vz
IG5vdCBtYXAgdG8gYSBsb2NhbCBmaWxlLiIpKSk7CiAKLSAgICBhdXRvIHJlc3VsdCA9IEpTQzo6
aW1wb3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVz
b2x2ZVBhdGgoZGlyZWN0b3J5TmFtZS52YWx1ZSgpLCBNb2R1bGVOYW1lKG1vZHVsZU5hbWUpKSks
IHBhcmFtZXRlcnMsIGpzVW5kZWZpbmVkKCkpOworICAgIGF1dG8gcmVzdWx0ID0gSlNDOjppbXBv
cnRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBtb2R1bGVV
Ukwuc3RyaW5nKCkpLCBwYXJhbWV0ZXJzLCBqc1VuZGVmaW5lZCgpKTsKICAgICBpZiAoVU5MSUtF
TFkoY2F0Y2hTY29wZS5leGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiByZWplY3QoY2F0Y2hT
Y29wZS5leGNlcHRpb24oKS0+dmFsdWUoKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTg0Miwz
NCArNzgxLDQxIEBAIElkZW50aWZpZXIgR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJSZXNvbHZl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTTW9kCiAgICAgaWYgKGtleS5pc1N5bWJv
bCgpKQogICAgICAgICByZXR1cm4ga2V5OwogCi0gICAgaWYgKHJlZmVycmVyVmFsdWUuaXNVbmRl
ZmluZWQoKSkgewotICAgICAgICBhdXRvIGRpcmVjdG9yeU5hbWUgPSBjdXJyZW50V29ya2luZ0Rp
cmVjdG9yeSgpOwotICAgICAgICBpZiAoIWRpcmVjdG9yeU5hbWUpIHsKLSAgICAgICAgICAgIHRo
cm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVycm9yKGdsb2JhbE9iamVj
dCwgIkNvdWxkIG5vdCByZXNvbHZlIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiJfcykp
OworICAgIGF1dG8gcmVzb2x2ZVBhdGggPSBbJl0gKGNvbnN0IFVSTCYgZGlyZWN0b3J5VVJMKSAt
PiBJZGVudGlmaWVyIHsKKyAgICAgICAgU3RyaW5nIHNwZWNpZmllciA9IGtleS5pbXBsKCk7Cisg
ICAgICAgIGlmICghc3BlY2lmaWVyLnN0YXJ0c1dpdGgoJy8nKSAmJiAhc3BlY2lmaWVyLnN0YXJ0
c1dpdGgoIi4vIikgJiYgIXNwZWNpZmllci5zdGFydHNXaXRoKCIuLi8iKSkgeworICAgICAgICAg
ICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgbWFrZVN0cmluZygiTW9kdWxl
IHNwZWNpZmllciwgJyJfcywgc3BlY2lmaWVyLCAiJyBkb2VzIG5vdCBzdGFydCB3aXRoIFwiL1wi
LCBcIi4vXCIsIG9yIFwiLi4vXCIuIFJlZmVyZW5jZWQgZnJvbTogIl9zLCBkaXJlY3RvcnlVUkwu
ZmlsZVN5c3RlbVBhdGgoKSkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQot
ICAgICAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVzb2x2ZVBhdGgoZGly
ZWN0b3J5TmFtZS52YWx1ZSgpLCBNb2R1bGVOYW1lKGtleS5pbXBsKCkpKSk7Ci0gICAgfQogCi0g
ICAgY29uc3QgSWRlbnRpZmllciByZWZlcnJlciA9IHJlZmVycmVyVmFsdWUudG9Qcm9wZXJ0eUtl
eShnbG9iYWxPYmplY3QpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Cisg
ICAgICAgIGlmICghZGlyZWN0b3J5VVJMLmlzTG9jYWxGaWxlKCkpIHsKKyAgICAgICAgICAgIHRo
cm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVycm9yKGdsb2JhbE9iamVj
dCwgbWFrZVN0cmluZygiQ291bGQgbm90IHJlc29sdmUgdGhlIHJlZmVycmVyJ3MgcGF0aDogIiwg
ZGlyZWN0b3J5VVJMLnN0cmluZygpKSkpOworICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAg
ICAgfQogCi0gICAgaWYgKHJlZmVycmVyLmlzU3ltYm9sKCkpIHsKLSAgICAgICAgYXV0byBkaXJl
Y3RvcnlOYW1lID0gY3VycmVudFdvcmtpbmdEaXJlY3RvcnkoKTsKLSAgICAgICAgaWYgKCFkaXJl
Y3RvcnlOYW1lKSB7Ci0gICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNj
b3BlLCBjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsICJDb3VsZCBub3QgcmVzb2x2ZSB0aGUgY3Vy
cmVudCB3b3JraW5nIGRpcmVjdG9yeS4iX3MpKTsKKyAgICAgICAgVVJMIHJlc29sdmVkVVJMKGRp
cmVjdG9yeVVSTCwgc3BlY2lmaWVyKTsKKyAgICAgICAgaWYgKCFyZXNvbHZlZFVSTC5pc1ZhbGlk
KCkpIHsKKyAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNy
ZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgbWFrZVN0cmluZygiUmVzb2x2ZWQgbW9kdWxlIHVybCBp
cyBub3QgdmFsaWQ6ICIsIHJlc29sdmVkVVJMLnN0cmluZygpKSkpOwogICAgICAgICAgICAgcmV0
dXJuIHsgfTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgcmVzb2x2ZVBhdGgoZGlyZWN0b3J5TmFtZS52YWx1ZSgpLCBNb2R1bGVOYW1lKGtleS5p
bXBsKCkpKSk7Ci0gICAgfQorICAgICAgICBBU1NFUlQocmVzb2x2ZWRVUkwuaXNMb2NhbEZpbGUo
KSk7CiAKLSAgICAvLyBJZiB0aGUgcmVmZXJyZXIgZXhpc3RzLCB3ZSBhc3N1bWUgdGhhdCB0aGUg
cmVmZXJyZXIgaXMgdGhlIGNvcnJlY3QgYWJzb2x1dGUgcGF0aC4KLSAgICBhdXRvIGRpcmVjdG9y
eU5hbWUgPSBleHRyYWN0RGlyZWN0b3J5TmFtZShyZWZlcnJlci5pbXBsKCkpOwotICAgIGlmICgh
ZGlyZWN0b3J5TmFtZSkgewotICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNj
b3BlLCBjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsIG1ha2VTdHJpbmcoIkNvdWxkIG5vdCByZXNv
bHZlIHRoZSByZWZlcnJlciBuYW1lICciLCBTdHJpbmcocmVmZXJyZXIuaW1wbCgpKSwgIicuIikp
KTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0gICAgcmV0dXJuIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sIHJlc29sdmVQYXRoKGRpcmVjdG9yeU5hbWUudmFsdWUoKSwgTW9kdWxlTmFt
ZShrZXkuaW1wbCgpKSkpOworICAgICAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgcmVzb2x2ZWRVUkwuc3RyaW5nKCkpOworICAgIH07CisKKyAgICBpZiAocmVmZXJyZXJWYWx1
ZS5pc1VuZGVmaW5lZCgpKQorICAgICAgICByZXR1cm4gcmVzb2x2ZVBhdGgoY3VycmVudFdvcmtp
bmdEaXJlY3RvcnkoKSk7CisKKyAgICBjb25zdCBJZGVudGlmaWVyIHJlZmVycmVyID0gcmVmZXJy
ZXJWYWx1ZS50b1Byb3BlcnR5S2V5KGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgeyB9KTsKKworICAgIGlmIChyZWZlcnJlci5pc1N5bWJvbCgpKQorICAgICAg
ICByZXR1cm4gcmVzb2x2ZVBhdGgoY3VycmVudFdvcmtpbmdEaXJlY3RvcnkoKSk7CisKKyAgICAv
LyBJZiB0aGUgcmVmZXJyZXIgZXhpc3RzLCB3ZSBhc3N1bWUgdGhhdCB0aGUgcmVmZXJyZXIgaXMg
dGhlIGNvcnJlY3QgZmlsZSB1cmwuCisgICAgVVJMIHVybCA9IFVSTCh7IH0sIHJlZmVycmVyLmlt
cGwoKSk7CisgICAgQVNTRVJUKHVybC5pc0xvY2FsRmlsZSgpKTsKKyAgICByZXR1cm4gcmVzb2x2
ZVBhdGgodXJsKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yPgpAQCAtOTU0LDkgKzkw
MCw5IEBAIHN0YXRpYyBib29sIGZldGNoU2NyaXB0RnJvbUxvY2FsRmlsZVN5c3RlbShjb25zdCBT
dHJpbmcmIGZpbGVOYW1lLCBWZWN0b3I8Y2hhcj4mCiAKIGNsYXNzIFNoZWxsU291cmNlUHJvdmlk
ZXIgZmluYWwgOiBwdWJsaWMgU3RyaW5nU291cmNlUHJvdmlkZXIgewogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8U2hlbGxTb3VyY2VQcm92aWRlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgc291cmNl
LCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsLCBjb25zdCBUZXh0
UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VU
eXBlKQorICAgIHN0YXRpYyBSZWY8U2hlbGxTb3VyY2VQcm92aWRlcj4gY3JlYXRlKGNvbnN0IFN0
cmluZyYgc291cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nJiYg
c291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3Zp
ZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU2hlbGxTb3VyY2VQcm92aWRlcihzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1
cmwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNoZWxsU291cmNlUHJvdmlkZXIoc291cmNlLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUo
c291cmNlVVJMKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkpOwogICAgIH0KIAogICAgIH5T
aGVsbFNvdXJjZVByb3ZpZGVyKCkgZmluYWwKQEAgLTEwMzcsNyArOTgzLDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgaWYgKCFjYWNoZUVuYWJsZWQoKSkKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxjb25zdCBjaGFyKj4obnVsbHB0cik7CiAgICAgICAgIGNvbnN0IGNoYXIqIGNhY2hlUGF0
aCA9IE9wdGlvbnM6OmRpc2tDYWNoZVBhdGgoKTsKLSAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0g
RmlsZVN5c3RlbTo6ZW5jb2RlRm9yRmlsZU5hbWUoRmlsZVN5c3RlbTo6bGFzdENvbXBvbmVudE9m
UGF0aElnbm9yaW5nVHJhaWxpbmdTbGFzaChzb3VyY2VPcmlnaW4oKS5zdHJpbmcoKSkpOworICAg
ICAgICBTdHJpbmcgZmlsZW5hbWUgPSBGaWxlU3lzdGVtOjplbmNvZGVGb3JGaWxlTmFtZShGaWxl
U3lzdGVtOjpsYXN0Q29tcG9uZW50T2ZQYXRoSWdub3JpbmdUcmFpbGluZ1NsYXNoKHNvdXJjZU9y
aWdpbigpLnVybCgpLmZpbGVTeXN0ZW1QYXRoKCkpKTsKICAgICAgICAgcmV0dXJuIEZpbGVTeXN0
ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjYWNoZVBhdGgsIG1ha2VTdHJpbmcoc291cmNl
KCkudG9TdHJpbmcoKS5oYXNoKCksICctJywgZmlsZW5hbWUsICIuYnl0ZWNvZGUtY2FjaGUiKSk7
CiAgICAgfQogCkBAIC0xMDY3LDggKzEwMTMsOCBAQCBwcml2YXRlOgogICAgICAgICBtX2NhY2hl
ZEJ5dGVjb2RlID0gQ2FjaGVkQnl0ZWNvZGU6OmNyZWF0ZShXVEZNb3ZlKG1hcHBlZEZpbGVEYXRh
KSk7CiAgICAgfQogCi0gICAgU2hlbGxTb3VyY2VQcm92aWRlcihjb25zdCBTdHJpbmcmIHNvdXJj
ZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVybCwgY29uc3QgVGV4
dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNl
VHlwZSkKLSAgICAgICAgOiBTdHJpbmdTb3VyY2VQcm92aWRlcihzb3VyY2UsIHNvdXJjZU9yaWdp
biwgV1RGTW92ZSh1cmwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKQorICAgIFNoZWxsU291
cmNlUHJvdmlkZXIoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291
cmNlT3JpZ2luLCBTdHJpbmcmJiBzb3VyY2VVUkwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQ
b3NpdGlvbiwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUpCisgICAgICAgIDog
U3RyaW5nU291cmNlUHJvdmlkZXIoc291cmNlLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUoc291cmNl
VVJMKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkKICAgICB7CiAgICAgfQogCkBAIC0xMDgx
LDkgKzEwMjcsOSBAQCBwcml2YXRlOgogICAgIG11dGFibGUgUmVmUHRyPENhY2hlZEJ5dGVjb2Rl
PiBtX2NhY2hlZEJ5dGVjb2RlOwogfTsKIAotc3RhdGljIGlubGluZSBTb3VyY2VDb2RlIGpzY1Nv
dXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmln
aW4sIFVSTCYmIHVybCA9IFVSTCgpLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24g
PSBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUgPSBT
b3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pCitzdGF0aWMgaW5saW5lIFNvdXJjZUNv
ZGUganNjU291cmNlKGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNv
dXJjZU9yaWdpbiwgU3RyaW5nIHNvdXJjZVVSTCA9IFN0cmluZygpLCBjb25zdCBUZXh0UG9zaXRp
b24mIHN0YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VU
eXBlIHNvdXJjZVR5cGUgPSBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pCiB7Ci0g
ICAgcmV0dXJuIFNvdXJjZUNvZGUoU2hlbGxTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwg
c291cmNlT3JpZ2luLCBXVEZNb3ZlKHVybCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpLCBz
dGFydFBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpLCBzdGFydFBvc2l0aW9uLm1fY29sdW1u
Lm9uZUJhc2VkSW50KCkpOworICAgIHJldHVybiBTb3VyY2VDb2RlKFNoZWxsU291cmNlUHJvdmlk
ZXI6OmNyZWF0ZShzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZShzb3VyY2VVUkwpLCBzdGFy
dFBvc2l0aW9uLCBzb3VyY2VUeXBlKSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJbnQo
KSwgc3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKTsKIH0KIAogdGVtcGxhdGU8
dHlwZW5hbWUgVmVjdG9yPgpAQCAtMTA5MSwxMyArMTAzNywxMyBAQCBzdGF0aWMgaW5saW5lIFNv
dXJjZUNvZGUganNjU291cmNlKGNvbnN0IFZlY3RvciYgdXRmOCwgY29uc3QgU291cmNlT3JpZ2lu
JiBzb3VyYwogewogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCB1c2UgYW4gYWJzb2x1dGUgZmls
ZSBVUkwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzA3NwogICAg
IFN0cmluZyBzdHIgPSBzdHJpbmdGcm9tVVRGKHV0ZjgpOwotICAgIHJldHVybiBqc2NTb3VyY2Uo
c3RyLCBzb3VyY2VPcmlnaW4sIFVSTCh7IH0sIGZpbGVuYW1lKSk7CisgICAgcmV0dXJuIGpzY1Nv
dXJjZShzdHIsIHNvdXJjZU9yaWdpbiwgZmlsZW5hbWUpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBWZWN0b3I+Ci1zdGF0aWMgYm9vbCBmZXRjaE1vZHVsZUZyb21Mb2NhbEZpbGVTeXN0ZW0oY29u
c3QgU3RyaW5nJiBmaWxlTmFtZSwgVmVjdG9yJiBidWZmZXIpCitzdGF0aWMgYm9vbCBmZXRjaE1v
ZHVsZUZyb21Mb2NhbEZpbGVTeXN0ZW0oY29uc3QgVVJMJiBmaWxlVVJMLCBWZWN0b3ImIGJ1ZmZl
cikKIHsKLSAgICAvLyBXZSBhc3N1bWUgdGhhdCBmaWxlTmFtZSBpcyBhbHdheXMgYW4gYWJzb2x1
dGUgcGF0aC4KKyAgICBTdHJpbmcgZmlsZU5hbWUgPSBmaWxlVVJMLmZpbGVTeXN0ZW1QYXRoKCk7
CiAjaWYgT1MoV0lORE9XUykKICAgICAvLyBodHRwczovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11
cy9saWJyYXJ5L3dpbmRvd3MvZGVza3RvcC9hYTM2NTI0Ny5hc3B4I21heHBhdGgKICAgICAvLyBV
c2UgbG9uZyBVTkMgdG8gcGFzcyB0aGUgbG9uZyBwYXRoIG5hbWUgdG8gdGhlIFdpbmRvd3MgQVBJ
cy4KQEAgLTExNDksMTggKzEwOTUsMjAgQEAgSlNJbnRlcm5hbFByb21pc2UqIEdsb2JhbE9iamVj
dDo6bW9kdWxlTG9hZGVyRmV0Y2goSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBp
ZiAoVU5MSUtFTFkoY2F0Y2hTY29wZS5leGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiByZWpl
Y3QoY2F0Y2hTY29wZS5leGNlcHRpb24oKS0+dmFsdWUoKSk7CiAKLSAgICAvLyBIZXJlLCBub3cg
d2UgY29uc2lkZXIgbW9kdWxlS2V5IGFzIHRoZSBmaWxlTmFtZS4KKyAgICBVUkwgbW9kdWxlVVJM
KHsgfSwgbW9kdWxlS2V5KTsKKyAgICBBU1NFUlQobW9kdWxlVVJMLmlzTG9jYWxGaWxlKCkpOwor
ICAgIC8vIFN0cmlwIHRoZSBVUkkgZnJvbSBvdXIga2V5IHNvIEVycm9ycyBwcmludCBjYW5vbmlj
YWwgc3lzdGVtIHBhdGhzLgorICAgIG1vZHVsZUtleSA9IG1vZHVsZVVSTC5maWxlU3lzdGVtUGF0
aCgpOworCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKLSAgICBpZiAoIWZldGNoTW9kdWxl
RnJvbUxvY2FsRmlsZVN5c3RlbShtb2R1bGVLZXksIGJ1ZmZlcikpCisgICAgaWYgKCFmZXRjaE1v
ZHVsZUZyb21Mb2NhbEZpbGVTeXN0ZW0obW9kdWxlVVJMLCBidWZmZXIpKQogICAgICAgICByZXR1
cm4gcmVqZWN0KGNyZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgbWFrZVN0cmluZygiQ291bGQgbm90
IG9wZW4gZmlsZSAnIiwgbW9kdWxlS2V5LCAiJy4iKSkpOwogCi0KLSAgICBVUkwgbW9kdWxlVVJM
ID0gVVJMKHsgfSwgbW9kdWxlS2V5KTsKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgLy8g
RmlsZVN5c3RlbSBkb2VzIG5vdCBoYXZlIG1pbWUtdHlwZSBoZWFkZXIuIFRoZSBKU0Mgc2hlbGwg
cmVjb2duaXplcyBXZWJBc3NlbWJseSdzIG1hZ2ljIGhlYWRlci4KICAgICBpZiAoYnVmZmVyLnNp
emUoKSA+PSA0KSB7CiAgICAgICAgIGlmIChidWZmZXJbMF0gPT0gJ1wwJyAmJiBidWZmZXJbMV0g
PT0gJ2EnICYmIGJ1ZmZlclsyXSA9PSAncycgJiYgYnVmZmVyWzNdID09ICdtJykgewotICAgICAg
ICAgICAgYXV0byBzb3VyY2UgPSBTb3VyY2VDb2RlKFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI6
OmNyZWF0ZShXVEZNb3ZlKGJ1ZmZlciksIFNvdXJjZU9yaWdpbiB7IG1vZHVsZUtleSB9LCBXVEZN
b3ZlKG1vZHVsZVVSTCkpKTsKKyAgICAgICAgICAgIGF1dG8gc291cmNlID0gU291cmNlQ29kZShX
ZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoV1RGTW92ZShidWZmZXIpLCBTb3VyY2VP
cmlnaW4geyBtb2R1bGVVUkwgfSwgV1RGTW92ZShtb2R1bGVLZXkpKSk7CiAgICAgICAgICAgICBj
YXRjaFNjb3BlLnJlbGVhc2VBc3NlcnROb0V4Y2VwdGlvbigpOwogICAgICAgICAgICAgYXV0byBz
b3VyY2VDb2RlID0gSlNTb3VyY2VDb2RlOjpjcmVhdGUodm0sIFdURk1vdmUoc291cmNlKSk7CiAg
ICAgICAgICAgICBjYXRjaFNjb3BlLnJlbGVhc2VBc3NlcnROb0V4Y2VwdGlvbigpOwpAQCAtMTE3
MSw3ICsxMTE5LDcgQEAgSlNJbnRlcm5hbFByb21pc2UqIEdsb2JhbE9iamVjdDo6bW9kdWxlTG9h
ZGVyRmV0Y2goSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICB9CiAjZW5kaWYKIAot
ICAgIGF1dG8gc291cmNlQ29kZSA9IEpTU291cmNlQ29kZTo6Y3JlYXRlKHZtLCBqc2NTb3VyY2Uo
c3RyaW5nRnJvbVVURihidWZmZXIpLCBTb3VyY2VPcmlnaW4geyBtb2R1bGVLZXkgfSwgV1RGTW92
ZShtb2R1bGVVUkwpLCBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpN
b2R1bGUpKTsKKyAgICBhdXRvIHNvdXJjZUNvZGUgPSBKU1NvdXJjZUNvZGU6OmNyZWF0ZSh2bSwg
anNjU291cmNlKHN0cmluZ0Zyb21VVEYoYnVmZmVyKSwgU291cmNlT3JpZ2luIHsgbW9kdWxlVVJM
IH0sIFdURk1vdmUobW9kdWxlS2V5KSwgVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291
cmNlVHlwZTo6TW9kdWxlKSk7CiAgICAgY2F0Y2hTY29wZS5yZWxlYXNlQXNzZXJ0Tm9FeGNlcHRp
b24oKTsKICAgICBwcm9taXNlLT5yZXNvbHZlKGdsb2JhbE9iamVjdCwgc291cmNlQ29kZSk7CiAg
ICAgY2F0Y2hTY29wZS5jbGVhckV4Y2VwdGlvbigpOwpAQCAtMTUxNSwxNCArMTQ2MywyNSBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTG9hZChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbQogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKKyAgICBib29sIGNh
bGxlclJlbGF0aXZlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgxKS5nZXRTdHJpbmcoZ2xvYmFsT2Jq
ZWN0KSA9PSAiY2FsbGVyIHJlbGF0aXZlIl9zOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIGVuY29kZWRKU1ZhbHVlKCkpOworCiAgICAgU3RyaW5nIGZpbGVOYW1lID0gY2FsbEZyYW1l
LT5hcmd1bWVudCgwKS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOwogICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworCisgICAgVVJMIHBhdGg7CisgICAg
aWYgKGNhbGxlclJlbGF0aXZlKSB7CisgICAgICAgIHBhdGggPSBVUkwoY2FsbEZyYW1lLT5jYWxs
ZXJTb3VyY2VPcmlnaW4odm0pLnVybCgpLCBmaWxlTmFtZSk7CisgICAgICAgIGlmICghcGF0aC5p
c0xvY2FsRmlsZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1FeGNlcHRpb24oZ2xvYmFs
T2JqZWN0LCBzY29wZSwgY3JlYXRlVVJJRXJyb3IoZ2xvYmFsT2JqZWN0LCBtYWtlU3RyaW5nKCJj
YWxsZXIgcmVsYXRpdmUgVVJMIHBhdGggaXMgbm90IGEgbG9jYWwgZmlsZTogIiwgcGF0aC5zdHJp
bmcoKSkpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgcGF0aCA9IGFic29sdXRlUGF0aChmaWxlTmFt
ZSk7CiAgICAgVmVjdG9yPGNoYXI+IHNjcmlwdDsKLSAgICBpZiAoIWZldGNoU2NyaXB0RnJvbUxv
Y2FsRmlsZVN5c3RlbShmaWxlTmFtZSwgc2NyaXB0KSkKKyAgICBpZiAoIWZldGNoU2NyaXB0RnJv
bUxvY2FsRmlsZVN5c3RlbShwYXRoLmZpbGVTeXN0ZW1QYXRoKCksIHNjcmlwdCkpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29w
ZSwgY3JlYXRlRXJyb3IoZ2xvYmFsT2JqZWN0LCAiQ291bGQgbm90IG9wZW4gZmlsZS4iX3MpKSk7
CiAKICAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV2YWx1YXRpb25FeGNlcHRpb247Ci0gICAgSlNW
YWx1ZSByZXN1bHQgPSBldmFsdWF0ZShnbG9iYWxPYmplY3QsIGpzY1NvdXJjZShzY3JpcHQsIFNv
dXJjZU9yaWdpbiB7IGFic29sdXRlUGF0aChmaWxlTmFtZSkgfSwgZmlsZU5hbWUpLCBKU1ZhbHVl
KCksIGV2YWx1YXRpb25FeGNlcHRpb24pOworICAgIEpTVmFsdWUgcmVzdWx0ID0gZXZhbHVhdGUo
Z2xvYmFsT2JqZWN0LCBqc2NTb3VyY2Uoc2NyaXB0LCBTb3VyY2VPcmlnaW4geyBwYXRoIH0sIGZp
bGVOYW1lKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKICAgICBpZiAoZXZhbHVh
dGlvbkV4Y2VwdGlvbikKICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29w
ZSwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOwpAQCAtMTY0OCw3ICsxNjA3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkNhbGxlclNvdXJjZU9yaWdpbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgU291cmNlT3JpZ2luIHNvdXJjZU9y
aWdpbiA9IGNhbGxGcmFtZS0+Y2FsbGVyU291cmNlT3JpZ2luKHZtKTsKLSAgICBpZiAoc291cmNl
T3JpZ2luLmlzTnVsbCgpKQorICAgIGlmIChzb3VyY2VPcmlnaW4udXJsKCkuaXNOdWxsKCkpCiAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNTdHJpbmcodm0sIHNvdXJjZU9yaWdpbi5zdHJpbmcoKSkpOwogfQpAQCAt
MTkxMiw3ICsxODcxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRv
bGxhckFnZW50U3RhcnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXZhbHVhdGlv
bkV4Y2VwdGlvbjsKICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZSByZXN1bHQ7Ci0gICAgICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IGV2YWx1YXRlKGdsb2JhbE9iamVjdCwganNjU291cmNlKHNv
dXJjZUNvZGUsIFNvdXJjZU9yaWdpbigid29ya2VyIl9zKSksIEpTVmFsdWUoKSwgZXZhbHVhdGlv
bkV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGV2YWx1YXRlKGdsb2Jh
bE9iamVjdCwganNjU291cmNlKHNvdXJjZUNvZGUsIFNvdXJjZU9yaWdpbihVUkwoeyB9LCAid29y
a2VyIl9zKSkpLCBKU1ZhbHVlKCksIGV2YWx1YXRpb25FeGNlcHRpb24pOwogICAgICAgICAgICAg
ICAgICAgICBpZiAoZXZhbHVhdGlvbkV4Y2VwdGlvbikKICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc3VsdCA9IGV2YWx1YXRpb25FeGNlcHRpb24tPnZhbHVlKCk7CiAgICAgICAgICAgICAgICAg
ICAgIGNoZWNrRXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgdHJ1ZSwgZXZhbHVhdGlvbkV4Y2VwdGlv
biwgcmVzdWx0LCBjb21tYW5kTGluZSwgc3VjY2Vzcyk7CkBAIC0yMzM2LDcgKzIyOTUsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ2hlY2tNb2R1bGVTeW50YXgoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iagogICAgIHN0b3BXYXRjaC5zdGFydCgpOwogCiAgICAgUGFy
c2VyRXJyb3IgZXJyb3I7Ci0gICAgYm9vbCB2YWxpZFN5bnRheCA9IGNoZWNrTW9kdWxlU3ludGF4
KGdsb2JhbE9iamVjdCwganNjU291cmNlKHNvdXJjZSwgeyB9LCBVUkwoKSwgVGV4dFBvc2l0aW9u
KCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlKSwgZXJyb3IpOworICAgIGJvb2wg
dmFsaWRTeW50YXggPSBjaGVja01vZHVsZVN5bnRheChnbG9iYWxPYmplY3QsIGpzY1NvdXJjZShz
b3VyY2UsIHsgfSwgU3RyaW5nKCksIFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJj
ZVR5cGU6Ok1vZHVsZSksIGVycm9yKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBl
bmNvZGVkSlNWYWx1ZSgpKTsKICAgICBzdG9wV2F0Y2guc3RvcCgpOwogCkBAIC0yNzk2LDYgKzI3
NTUsOCBAQCBzdGF0aWMgdm9pZCBydW5XaXRoT3B0aW9ucyhHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ29tbWFuZExpbmUmIG9wdGlvbnMsIGJvbwogICAgICAgICAgICAgICAgIHNjcmlwdEJ1
ZmZlci5hcHBlbmQoIlwidXNlIHN0cmljdFwiO1xuIiwgc3RybGVuKCJcInVzZSBzdHJpY3RcIjtc
biIpKTsKIAogICAgICAgICAgICAgaWYgKGlzTW9kdWxlKSB7CisgICAgICAgICAgICAgICAgLy8g
SWYgdGhlIHBhc3NlZCBmaWxlIGlzbid0IGFuIGFic29sdXRlIHBhdGggYXBwZW5kICIuLyIgc28g
dGhlIG1vZHVsZSBsb2FkZXIgZG9lc24ndCB0aGluayB0aGlzIGlzIGEgYmFyZS1uYW1lIHNwZWNp
Zmllci4KKyAgICAgICAgICAgICAgICBmaWxlTmFtZSA9IGZpbGVOYW1lLnN0YXJ0c1dpdGgoJy8n
KSA/IGZpbGVOYW1lIDogbWFrZVN0cmluZygiLi8iLCBmaWxlTmFtZSk7CiAgICAgICAgICAgICAg
ICAgcHJvbWlzZSA9IGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShnbG9iYWxPYmplY3QsIGZpbGVOYW1l
LCBqc1VuZGVmaW5lZCgpLCBqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgICAgICAgICBzY29wZS5y
ZWxlYXNlQXNzZXJ0Tm9FeGNlcHRpb24oKTsKICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC0yODEy
LDEwICsyNzczLDExIEBAIHN0YXRpYyB2b2lkIHJ1bldpdGhPcHRpb25zKEdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDb21tYW5kTGluZSYgb3B0aW9ucywgYm9vCiAgICAgICAgIH0KIAogICAg
ICAgICBib29sIGlzTGFzdEZpbGUgPSBpID09IHNjcmlwdHMuc2l6ZSgpIC0gMTsKKyAgICAgICAg
U291cmNlT3JpZ2luIHNvdXJjZU9yaWdpbiB7IGFic29sdXRlUGF0aChmaWxlTmFtZSkgfTsKICAg
ICAgICAgaWYgKGlzTW9kdWxlKSB7CiAgICAgICAgICAgICBpZiAoIXByb21pc2UpIHsKICAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgdXNlIGFuIGFic29sdXRlIGZpbGUgVVJM
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTMwNzcKLSAgICAgICAg
ICAgICAgICBwcm9taXNlID0gbG9hZEFuZEV2YWx1YXRlTW9kdWxlKGdsb2JhbE9iamVjdCwganNj
U291cmNlKHN0cmluZ0Zyb21VVEYoc2NyaXB0QnVmZmVyKSwgU291cmNlT3JpZ2luIHsgYWJzb2x1
dGVQYXRoKGZpbGVOYW1lKSB9LCBVUkwoeyB9LCBmaWxlTmFtZSksIFRleHRQb3NpdGlvbigpLCBT
b3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSksIGpzVW5kZWZpbmVkKCkpOworICAgICAg
ICAgICAgICAgIHByb21pc2UgPSBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoZ2xvYmFsT2JqZWN0LCBq
c2NTb3VyY2Uoc3RyaW5nRnJvbVVURihzY3JpcHRCdWZmZXIpLCBzb3VyY2VPcmlnaW4sIGZpbGVO
YW1lLCBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUpLCBq
c1VuZGVmaW5lZCgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHNjb3BlLmNsZWFyRXhj
ZXB0aW9uKCk7CiAKQEAgLTI4MzQsNyArMjc5Niw3IEBAIHN0YXRpYyB2b2lkIHJ1bldpdGhPcHRp
b25zKEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb21tYW5kTGluZSYgb3B0aW9ucywgYm9v
CiAgICAgICAgICAgICB2bS5kcmFpbk1pY3JvdGFza3MoKTsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXZhbHVhdGlvbkV4Y2VwdGlvbjsKLSAgICAg
ICAgICAgIEpTVmFsdWUgcmV0dXJuVmFsdWUgPSBldmFsdWF0ZShnbG9iYWxPYmplY3QsIGpzY1Nv
dXJjZShzY3JpcHRCdWZmZXIsIFNvdXJjZU9yaWdpbiB7IGFic29sdXRlUGF0aChmaWxlTmFtZSkg
fSwgZmlsZU5hbWUpLCBKU1ZhbHVlKCksIGV2YWx1YXRpb25FeGNlcHRpb24pOworICAgICAgICAg
ICAgSlNWYWx1ZSByZXR1cm5WYWx1ZSA9IGV2YWx1YXRlKGdsb2JhbE9iamVjdCwganNjU291cmNl
KHNjcmlwdEJ1ZmZlciwgc291cmNlT3JpZ2luICwgZmlsZU5hbWUpLCBKU1ZhbHVlKCksIGV2YWx1
YXRpb25FeGNlcHRpb24pOwogICAgICAgICAgICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsK
ICAgICAgICAgICAgIGlmIChldmFsdWF0aW9uRXhjZXB0aW9uKQogICAgICAgICAgICAgICAgIHJl
dHVyblZhbHVlID0gZXZhbHVhdGlvbkV4Y2VwdGlvbi0+dmFsdWUoKTsKQEAgLTI4NTcsMTAgKzI4
MTksMTAgQEAgc3RhdGljIHZvaWQgcnVuSW50ZXJhY3RpdmUoR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKIAotICAgIE9wdGlvbmFsPERpcmVjdG9yeU5hbWU+
IGRpcmVjdG9yeU5hbWUgPSBjdXJyZW50V29ya2luZ0RpcmVjdG9yeSgpOwotICAgIGlmICghZGly
ZWN0b3J5TmFtZSkKKyAgICBVUkwgZGlyZWN0b3J5TmFtZSA9IGN1cnJlbnRXb3JraW5nRGlyZWN0
b3J5KCk7CisgICAgaWYgKCFkaXJlY3RvcnlOYW1lLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
OwotICAgIFNvdXJjZU9yaWdpbiBzb3VyY2VPcmlnaW4ocmVzb2x2ZVBhdGgoZGlyZWN0b3J5TmFt
ZS52YWx1ZSgpLCBNb2R1bGVOYW1lKCJpbnRlcnByZXRlciIpKSk7CisgICAgU291cmNlT3JpZ2lu
IHNvdXJjZU9yaWdpbihVUkwoZGlyZWN0b3J5TmFtZSwgIi4vaW50ZXJwcmV0ZXIiX3MpKTsKICAg
ICAKICAgICBib29sIHNob3VsZFF1aXQgPSBmYWxzZTsKICAgICB3aGlsZSAoIXNob3VsZFF1aXQp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCA3MTAxNWNiZTkxYzVkZDU5
YWRjMzg0ZGZkOTJhYjRkYWU1ZDdjMTNkLi45YTJlZmNhZDI4NmEzMjczMGM3NThhYzI2MjVhMTM4
MTFhNzRiMDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCkBAIC0xODU4LDcg
KzE4NTgsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU2NvcGVOb2RlKFBhcnNlckFyZW5h
JiwgY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBzdGFydCwgY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBl
bmQsIGNvbnN0IFNvdXJjZUNvZGUmLCBTb3VyY2VFbGVtZW50cyosIFZhcmlhYmxlRW52aXJvbm1l
bnQmLCBGdW5jdGlvblN0YWNrJiYsIFZhcmlhYmxlRW52aXJvbm1lbnQmLCBVbmlxdWVkU3RyaW5n
SW1wbFB0clNldCYmLCBDb2RlRmVhdHVyZXMsIElubmVyQXJyb3dGdW5jdGlvbkNvZGVGZWF0dXJl
cywgaW50IG51bUNvbnN0YW50cyk7CiAKICAgICAgICAgY29uc3QgU291cmNlQ29kZSYgc291cmNl
KCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2U7IH0KLSAgICAgICAgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5wcm92aWRlcigpLT51cmwoKS5zdHJpbmco
KTsgfQogICAgICAgICBpbnRwdHJfdCBzb3VyY2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNl
LnByb3ZpZGVySUQoKTsgfQogCiAgICAgICAgIGludCBzdGFydExpbmUoKSBjb25zdCB7IHJldHVy
biBtX3N0YXJ0TGluZU51bWJlcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Tb3VyY2VDb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJj
ZUNvZGUuaAppbmRleCBhYWQyODdkZGU4NzcxYjc5YjE4NjBjNWVkNGI5NzA4MWVhZjJiZjk2Li45
OTJkODlhMjEwM2RlMzZjMGZkZDY3NWE1M2ZmOGIxMzEwYzAxZjM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGUuaApAQCAtOTYsOSArOTYsOSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgT3JkaW5hbE51bWJlciBtX3N0YXJ0Q29sdW1uOwogICAgIH07CiAKLSAg
ICBpbmxpbmUgU291cmNlQ29kZSBtYWtlU291cmNlKGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25z
dCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsID0gVVJMKCksIGNvbnN0IFRl
eHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiA9IFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRl
clNvdXJjZVR5cGUgc291cmNlVHlwZSA9IFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3Jh
bSkKKyAgICBpbmxpbmUgU291cmNlQ29kZSBtYWtlU291cmNlKGNvbnN0IFN0cmluZyYgc291cmNl
LCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nIGZpbGVuYW1lID0gU3Ry
aW5nKCksIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiA9IFRleHRQb3NpdGlvbigp
LCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSA9IFNvdXJjZVByb3ZpZGVyU291
cmNlVHlwZTo6UHJvZ3JhbSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTb3VyY2VDb2RlKFN0cmlu
Z1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUodXJs
KSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSksIHN0YXJ0UG9zaXRpb24ubV9saW5lLm9uZUJh
c2VkSW50KCksIHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSk7CisgICAgICAg
IHJldHVybiBTb3VyY2VDb2RlKFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCBz
b3VyY2VPcmlnaW4sIFdURk1vdmUoZmlsZW5hbWUpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBl
KSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJbnQoKSwgc3RhcnRQb3NpdGlvbi5tX2Nv
bHVtbi5vbmVCYXNlZEludCgpKTsKICAgICB9CiAgICAgCiAgICAgaW5saW5lIFNvdXJjZUNvZGUg
U291cmNlQ29kZTo6c3ViRXhwcmVzc2lvbih1bnNpZ25lZCBvcGVuQnJhY2UsIHVuc2lnbmVkIGNs
b3NlQnJhY2UsIGludCBmaXJzdExpbmUsIGludCBzdGFydENvbHVtbikgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZUtleS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlS2V5LmgKaW5kZXggNjc4YWU5ZDdkMzZi
NzA1ZTUwOTlhZGI3NWQ5NmQwNTVjNjUwNGQzMy4uNjQyMzI3MGQ4YWUwOTFhNzMwMWNhOGM4NTM1
OTBiOGEzN2JjYTQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9T
b3VyY2VDb2RlS2V5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VD
b2RlS2V5LmgKQEAgLTEwNiw3ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgLy8gcHJvdmlkZXJzIGNh
Y2hlIHRoZWlyIHN0cmluZ3MgdG8gbWFrZSB0aGlzIGVmZmljaWVudC4KICAgICBTdHJpbmdWaWV3
IHN0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlQ29kZS52aWV3KCk7IH0KIAotICAgIFN0
cmluZ1ZpZXcgaG9zdCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlQ29kZS5wcm92aWRlcigpLnVy
bCgpLmhvc3QoKTsgfQorICAgIFN0cmluZ1ZpZXcgaG9zdCgpIGNvbnN0IHsgcmV0dXJuIG1fc291
cmNlQ29kZS5wcm92aWRlcigpLnNvdXJjZU9yaWdpbigpLnVybCgpLmhvc3QoKTsgfQogCiAgICAg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IFNvdXJjZUNvZGVLZXkmIG90aGVyKSBjb25zdAogICAgIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAKaW5k
ZXggYzE0MTZmMTQ5NWI2ODNhZjk1ZTc3NThlYzJhMWEwMzE3ZTVlYjhiMC4uMDNlNTVlZTNkMWZm
MjAyNTg2YWYyYmVhOGQ3OTFkNTE1M2ExODdiMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAKQEAgLTMyLDEwICszMiwxMCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogREVGSU5FX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihTdHJpbmdT
b3VyY2VQcm92aWRlcik7CiAKLVNvdXJjZVByb3ZpZGVyOjpTb3VyY2VQcm92aWRlcihjb25zdCBT
b3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsLCBjb25zdCBUZXh0UG9zaXRpb24m
IHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlKQorU291
cmNlUHJvdmlkZXI6OlNvdXJjZVByb3ZpZGVyKGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3Jp
Z2luLCBTdHJpbmcmJiBzb3VyY2VVUkwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlv
biwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUpCiAgICAgOiBtX3NvdXJjZVR5
cGUoc291cmNlVHlwZSkKLSAgICAsIG1fdXJsKFdURk1vdmUodXJsKSkKICAgICAsIG1fc291cmNl
T3JpZ2luKHNvdXJjZU9yaWdpbikKKyAgICAsIG1fc291cmNlVVJMKFdURk1vdmUoc291cmNlVVJM
KSkKICAgICAsIG1fc3RhcnRQb3NpdGlvbihzdGFydFBvc2l0aW9uKQogewogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCmluZGV4IGI2MmYzOTMyYzIx
MzIyOTk2NjllMmQwNTI5OTdmNzI1Yjc2MDAzYzAuLjEyOWVlNWM0OWUyNDdhZmNkOWYwOGQ1OWVm
ZTlmYjEyOGY5YWJiZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
U291cmNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJj
ZVByb3ZpZGVyLmgKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJDb2RlU3BlY2lhbGl6YXRp
b25LaW5kLmgiCiAjaW5jbHVkZSAiU291cmNlT3JpZ2luLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFBv
c2l0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTU0LDcgKzUz
LDcgQEAgY2xhc3MgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jazsKICAgICBwdWJsaWM6CiAgICAg
ICAgIHN0YXRpYyBjb25zdCBpbnRwdHJfdCBudWxsSUQgPSAxOwogICAgICAgICAKLSAgICAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgU291cmNlUHJvdmlkZXIoY29uc3QgU291cmNlT3JpZ2luJiwgVVJM
JiYsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgU291cmNlUHJvdmlkZXJTb3Vy
Y2VUeXBlKTsKKyAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgU291cmNlUHJvdmlkZXIoY29uc3Qg
U291cmNlT3JpZ2luJiwgU3RyaW5nJiYgc291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0
YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSk7CiAKICAgICAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgdmlydHVhbCB+U291cmNlUHJvdmlkZXIoKTsKIApAQCAtNzEsNyArNzAsOSBA
QCBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOwogICAgICAgICB9CiAKICAgICAgICAg
Y29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX3NvdXJj
ZU9yaWdpbjsgfQotICAgICAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJs
OyB9CisKKyAgICAgICAgLy8gVGhpcyBpcyBOT1QgdGhlIHBhdGggdGhhdCBzaG91bGQgYmUgdXNl
ZCBmb3IgY29tcHV0aW5nIHJlbGF0aXZlIHBhdGhzIGZyb20gYSBzY3JpcHQuIFVzZSBTb3VyY2VP
cmlnaW4ncyBVUkwgZm9yIHRoYXQsIHRoZSB2YWx1ZXMgbWF5IG9yIG1heSBub3QgYmUgdGhlIHNh
bWUuLi4KKyAgICAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiBt
X3NvdXJjZVVSTDsgfQogICAgICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTERpcmVjdGl2ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc291cmNlVVJMRGlyZWN0aXZlOyB9CiAgICAgICAgIGNvbnN0IFN0
cmluZyYgc291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNl
TWFwcGluZ1VSTERpcmVjdGl2ZTsgfQogCkBAIC05Miw4ICs5Myw4IEBAIGNsYXNzIFVubGlua2Vk
RnVuY3Rpb25Db2RlQmxvY2s7CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZ2V0SUQo
KTsKIAogICAgICAgICBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgbV9zb3VyY2VUeXBlOwotICAg
ICAgICBVUkwgbV91cmw7CiAgICAgICAgIFNvdXJjZU9yaWdpbiBtX3NvdXJjZU9yaWdpbjsKKyAg
ICAgICAgU3RyaW5nIG1fc291cmNlVVJMOwogICAgICAgICBTdHJpbmcgbV9zb3VyY2VVUkxEaXJl
Y3RpdmU7CiAgICAgICAgIFN0cmluZyBtX3NvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmU7CiAgICAg
ICAgIFRleHRQb3NpdGlvbiBtX3N0YXJ0UG9zaXRpb247CkBAIC0xMDQsOSArMTA1LDkgQEAgY2xh
c3MgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jazsKICAgICBjbGFzcyBTdHJpbmdTb3VyY2VQcm92
aWRlciA6IHB1YmxpYyBTb3VyY2VQcm92aWRlciB7CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEX1dJVEhfSEVBUF9JREVOVElGSUVSKFN0cmluZ1NvdXJjZVByb3ZpZGVyKTsKICAgICBw
dWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8U3RyaW5nU291cmNlUHJvdmlkZXI+IGNyZWF0ZShj
b25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVS
TCYmIHVybCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9u
KCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlID0gU291cmNlUHJvdmlkZXJT
b3VyY2VUeXBlOjpQcm9ncmFtKQorICAgICAgICBzdGF0aWMgUmVmPFN0cmluZ1NvdXJjZVByb3Zp
ZGVyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291
cmNlT3JpZ2luLCBTdHJpbmcgc291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9z
aXRpb24gPSBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5
cGUgPSBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0cmluZ1NvdXJjZVByb3ZpZGVyKHNvdXJjZSwg
c291cmNlT3JpZ2luLCBXVEZNb3ZlKHVybCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpKTsK
KyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0cmluZ1NvdXJjZVByb3ZpZGVyKHNv
dXJjZSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKHNvdXJjZVVSTCksIHN0YXJ0UG9zaXRpb24sIHNv
dXJjZVR5cGUpKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgdW5zaWduZWQgaGFzaCgp
IGNvbnN0IG92ZXJyaWRlCkBAIC0xMjAsOCArMTIxLDggQEAgY2xhc3MgVW5saW5rZWRGdW5jdGlv
bkNvZGVCbG9jazsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBTdHJpbmdT
b3VyY2VQcm92aWRlcihjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBz
b3VyY2VPcmlnaW4sIFVSTCYmIHVybCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9u
LCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSkKLSAgICAgICAgICAgIDogU291
cmNlUHJvdmlkZXIoc291cmNlT3JpZ2luLCBXVEZNb3ZlKHVybCksIHN0YXJ0UG9zaXRpb24sIHNv
dXJjZVR5cGUpCisgICAgICAgIFN0cmluZ1NvdXJjZVByb3ZpZGVyKGNvbnN0IFN0cmluZyYgc291
cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nJiYgc291cmNlVVJM
LCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNl
VHlwZSBzb3VyY2VUeXBlKQorICAgICAgICAgICAgOiBTb3VyY2VQcm92aWRlcihzb3VyY2VPcmln
aW4sIFdURk1vdmUoc291cmNlVVJMKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkKICAgICAg
ICAgICAgICwgbV9zb3VyY2Uoc291cmNlLmlzTnVsbCgpID8gKlN0cmluZ0ltcGw6OmVtcHR5KCkg
OiAqc291cmNlLmltcGwoKSkKICAgICAgICAgewogICAgICAgICB9CkBAIC0xMzMsOSArMTM0LDkg
QEAgY2xhc3MgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jazsKICNpZiBFTkFCTEUoV0VCQVNTRU1C
TFkpCiAgICAgY2xhc3MgV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBT
b3VyY2VQcm92aWRlciB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPFdlYkFzc2Vt
Ymx5U291cmNlUHJvdmlkZXI+IGNyZWF0ZShWZWN0b3I8dWludDhfdD4mJiBkYXRhLCBjb25zdCBT
b3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsKQorICAgICAgICBzdGF0aWMgUmVm
PFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI+IGNyZWF0ZShWZWN0b3I8dWludDhfdD4mJiBkYXRh
LCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nIHNvdXJjZVVSTCkKICAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQXNzZW1ibHlTb3Vy
Y2VQcm92aWRlcihXVEZNb3ZlKGRhdGEpLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUodXJsKSkpOwor
ICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRl
cihXVEZNb3ZlKGRhdGEpLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUoc291cmNlVVJMKSkpOwogICAg
ICAgICB9CiAKICAgICAgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0IGZpbmFsCkBAIC0xNTQsOCAr
MTU1LDggQEAgY2xhc3MgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jazsKICAgICAgICAgfQogCiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcihWZWN0b3I8dWlu
dDhfdD4mJiBkYXRhLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJs
KQotICAgICAgICAgICAgOiBTb3VyY2VQcm92aWRlcihzb3VyY2VPcmlnaW4sIFdURk1vdmUodXJs
KSwgVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6V2ViQXNzZW1ibHkp
CisgICAgICAgIFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0
YSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0cmluZyYmIHNvdXJjZVVSTCkK
KyAgICAgICAgICAgIDogU291cmNlUHJvdmlkZXIoc291cmNlT3JpZ2luLCBXVEZNb3ZlKHNvdXJj
ZVVSTCksIFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OldlYkFzc2Vt
Ymx5KQogICAgICAgICAgICAgLCBtX3NvdXJjZSgiW1dlYkFzc2VtYmx5IHNvdXJjZV0iKQogICAg
ICAgICAgICAgLCBtX2RhdGEoV1RGTW92ZShkYXRhKSkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlwZXMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlwZXMuY3BwCmluZGV4IDNkMjUwNjRkZDkyMzcx
M2ExNDRkODFmZmNlYjgyMjUyNTEyYjRiMmEuLjIyZjcxNjRlMDlmN2IzNjUwNGZmODg4YmZjOWYx
YzNkNDQ0ZjNkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nh
Y2hlZFR5cGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRU
eXBlcy5jcHAKQEAgLTE1MTAsMTIgKzE1MTAsMTIgQEAgY2xhc3MgQ2FjaGVkU291cmNlT3JpZ2lu
IDogcHVibGljIENhY2hlZE9iamVjdDxTb3VyY2VPcmlnaW4+IHsKIHB1YmxpYzoKICAgICB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdp
bikKICAgICB7Ci0gICAgICAgIG1fc3RyaW5nLmVuY29kZShlbmNvZGVyLCBzb3VyY2VPcmlnaW4u
c3RyaW5nKCkpOworICAgICAgICBtX3N0cmluZy5lbmNvZGUoZW5jb2Rlciwgc291cmNlT3JpZ2lu
LnVybCgpLnN0cmluZygpKTsKICAgICB9CiAKICAgICBTb3VyY2VPcmlnaW4gZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gU291cmNlT3JpZ2luIHsg
bV9zdHJpbmcuZGVjb2RlKGRlY29kZXIpIH07CisgICAgICAgIHJldHVybiBTb3VyY2VPcmlnaW4g
eyBVUkwoeyB9LCBtX3N0cmluZy5kZWNvZGUoZGVjb2RlcikpIH07CiAgICAgfQogCiBwcml2YXRl
OgpAQCAtMTU0Niw3ICsxNTQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IFNvdXJjZVByb3ZpZGVyJiBzb3VyY2VQcm92aWRlcikKICAgICB7CiAg
ICAgICAgIG1fc291cmNlT3JpZ2luLmVuY29kZShlbmNvZGVyLCBzb3VyY2VQcm92aWRlci5zb3Vy
Y2VPcmlnaW4oKSk7Ci0gICAgICAgIG1fdXJsLmVuY29kZShlbmNvZGVyLCBzb3VyY2VQcm92aWRl
ci51cmwoKS5zdHJpbmcoKSk7CisgICAgICAgIG1fc291cmNlVVJMLmVuY29kZShlbmNvZGVyLCBz
b3VyY2VQcm92aWRlci5zb3VyY2VVUkwoKSk7CiAgICAgICAgIG1fc291cmNlVVJMRGlyZWN0aXZl
LmVuY29kZShlbmNvZGVyLCBzb3VyY2VQcm92aWRlci5zb3VyY2VVUkxEaXJlY3RpdmUoKSk7CiAg
ICAgICAgIG1fc291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZS5lbmNvZGUoZW5jb2Rlciwgc291cmNl
UHJvdmlkZXIuc291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZSgpKTsKICAgICAgICAgbV9zdGFydFBv
c2l0aW9uLmVuY29kZShlbmNvZGVyLCBzb3VyY2VQcm92aWRlci5zdGFydFBvc2l0aW9uKCkpOwpA
QCAtMTU2MCw3ICsxNTYwLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgQ2FjaGVkU291
cmNlT3JpZ2luIG1fc291cmNlT3JpZ2luOwotICAgIENhY2hlZFN0cmluZyBtX3VybDsKKyAgICBD
YWNoZWRTdHJpbmcgbV9zb3VyY2VVUkw7CiAgICAgQ2FjaGVkU3RyaW5nIG1fc291cmNlVVJMRGly
ZWN0aXZlOwogICAgIENhY2hlZFN0cmluZyBtX3NvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmU7CiAg
ICAgQ2FjaGVkVGV4dFBvc2l0aW9uIG1fc3RhcnRQb3NpdGlvbjsKQEAgLTE1ODAsMTAgKzE1ODAs
MTAgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgU3RyaW5nIGRlY29kZWRTb3VyY2UgPSBtX3Nv
dXJjZS5kZWNvZGUoZGVjb2Rlcik7CiAgICAgICAgIFNvdXJjZU9yaWdpbiBkZWNvZGVkU291cmNl
T3JpZ2luID0gbV9zb3VyY2VPcmlnaW4uZGVjb2RlKGRlY29kZXIpOwotICAgICAgICBTdHJpbmcg
ZGVjb2RlZFVSTCA9IG1fdXJsLmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgU3RyaW5nIGRlY29k
ZWRTb3VyY2VVUkwgPSBtX3NvdXJjZVVSTC5kZWNvZGUoZGVjb2Rlcik7CiAgICAgICAgIFRleHRQ
b3NpdGlvbiBkZWNvZGVkU3RhcnRQb3NpdGlvbiA9IG1fc3RhcnRQb3NpdGlvbi5kZWNvZGUoZGVj
b2Rlcik7CiAKLSAgICAgICAgUmVmPFN0cmluZ1NvdXJjZVByb3ZpZGVyPiBzb3VyY2VQcm92aWRl
ciA9IFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoZGVjb2RlZFNvdXJjZSwgZGVjb2RlZFNv
dXJjZU9yaWdpbiwgVVJMKFVSTCgpLCBkZWNvZGVkVVJMKSwgZGVjb2RlZFN0YXJ0UG9zaXRpb24s
IHNvdXJjZVR5cGUpOworICAgICAgICBSZWY8U3RyaW5nU291cmNlUHJvdmlkZXI+IHNvdXJjZVBy
b3ZpZGVyID0gU3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShkZWNvZGVkU291cmNlLCBkZWNv
ZGVkU291cmNlT3JpZ2luLCBkZWNvZGVkU291cmNlVVJMLCBkZWNvZGVkU3RhcnRQb3NpdGlvbiwg
c291cmNlVHlwZSk7CiAgICAgICAgIEJhc2U6OmRlY29kZShkZWNvZGVyLCBzb3VyY2VQcm92aWRl
ci5nZXQoKSk7CiAgICAgICAgIHJldHVybiAmc291cmNlUHJvdmlkZXIubGVha1JlZigpOwogICAg
IH0KQEAgLTE2MDcsMTEgKzE2MDcsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgVmVjdG9y
PHVpbnQ4X3Q+IGRlY29kZWREYXRhOwogICAgICAgICBTb3VyY2VPcmlnaW4gZGVjb2RlZFNvdXJj
ZU9yaWdpbiA9IG1fc291cmNlT3JpZ2luLmRlY29kZShkZWNvZGVyKTsKLSAgICAgICAgU3RyaW5n
IGRlY29kZWRVUkwgPSBtX3VybC5kZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIFN0cmluZyBkZWNv
ZGVkU291cmNlVVJMID0gbV9zb3VyY2VVUkwuZGVjb2RlKGRlY29kZXIpOwogCiAgICAgICAgIG1f
ZGF0YS5kZWNvZGUoZGVjb2RlciwgZGVjb2RlZERhdGEpOwogCi0gICAgICAgIFJlZjxXZWJBc3Nl
bWJseVNvdXJjZVByb3ZpZGVyPiBzb3VyY2VQcm92aWRlciA9IFdlYkFzc2VtYmx5U291cmNlUHJv
dmlkZXI6OmNyZWF0ZShXVEZNb3ZlKGRlY29kZWREYXRhKSwgZGVjb2RlZFNvdXJjZU9yaWdpbiwg
VVJMKFVSTCgpLCBkZWNvZGVkVVJMKSk7CisgICAgICAgIFJlZjxXZWJBc3NlbWJseVNvdXJjZVBy
b3ZpZGVyPiBzb3VyY2VQcm92aWRlciA9IFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI6OmNyZWF0
ZShXVEZNb3ZlKGRlY29kZWREYXRhKSwgZGVjb2RlZFNvdXJjZU9yaWdpbiwgZGVjb2RlZFNvdXJj
ZVVSTCk7CiAgICAgICAgIEJhc2U6OmRlY29kZShkZWNvZGVyLCBzb3VyY2VQcm92aWRlci5nZXQo
KSk7CiAKICAgICAgICAgcmV0dXJuICZzb3VyY2VQcm92aWRlci5sZWFrUmVmKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAKaW5kZXggMTVjY2E5NTE2MjMzOWUyZDhmNTc0
OTc4YmFjMzdmNTQ2NmQ2NzhkZC4uZjQ3M2I4MTgxZWMyZjAyYTBjYzc4YTI2YzBjMjBkYzk2MzFm
ZGM3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcApAQCAtMjMwLDcg
KzIzMCw3IEBAIHZvaWQgYWRkRXJyb3JJbmZvKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTT2JqZWN0KiBvYmosIGJvb2wgdXNlQ3VycmVudEZyCiAKIEpTT2JqZWN0KiBhZGRFcnJvcklu
Zm8oVk0mIHZtLCBKU09iamVjdCogZXJyb3IsIGludCBsaW5lLCBjb25zdCBTb3VyY2VDb2RlJiBz
b3VyY2UpCiB7Ci0gICAgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwgPSBzb3VyY2UucHJvdmlkZXIo
KS0+dXJsKCkuc3RyaW5nKCk7CisgICAgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwgPSBzb3VyY2Uu
cHJvdmlkZXIoKS0+c291cmNlVVJMKCk7CiAgICAgCiAgICAgLy8gVGhlIHB1dERpcmVjdCgpIGNh
bGxzIGJlbG93IHNob3VsZCByZWFsbHkgYmUgcHV0KCkgc28gdGhhdCB0aGV5IHRyaWdnZXIgbWF0
ZXJpYWxpemF0aW9uIG9mCiAgICAgLy8gdGhlIGxpbmUvc291cmNlVVJMIHByb3BlcnRpZXMuIE90
aGVyd2lzZSwgd2hhdCB3ZSBzZXQgaGVyZSB3aWxsIGp1c3QgYmUgb3ZlcndyaXR0ZW4gbGF0ZXIu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3Ry
dWN0b3IuY3BwCmluZGV4IDEyNjE0ZGVkYTM5NTZiYTQ0ZjIwODI5ZGRkNDkwNmYwYjRmMjdmOGMu
LjRjMTAxNmY4Nzk4ZGRhYzNhY2FlMTE2ZDllYzEyMWE0NDZmYWNhOGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCkBA
IC0xNDgsNyArMTQ4LDcgQEAgSlNPYmplY3QqIGNvbnN0cnVjdEZ1bmN0aW9uU2tpcHBpbmdFdmFs
RW5hYmxlZENoZWNrKAogICAgICAgICBwcm9ncmFtID0gYnVpbGRlci50b1N0cmluZygpOwogICAg
IH0KIAotICAgIFNvdXJjZUNvZGUgc291cmNlID0gbWFrZVNvdXJjZShwcm9ncmFtLCBzb3VyY2VP
cmlnaW4sIFVSTCh7IH0sIHNvdXJjZVVSTCksIHBvc2l0aW9uKTsKKyAgICBTb3VyY2VDb2RlIHNv
dXJjZSA9IG1ha2VTb3VyY2UocHJvZ3JhbSwgc291cmNlT3JpZ2luLCBzb3VyY2VVUkwsIHBvc2l0
aW9uKTsKICAgICBKU09iamVjdCogZXhjZXB0aW9uID0gbnVsbHB0cjsKICAgICBGdW5jdGlvbkV4
ZWN1dGFibGUqIGZ1bmN0aW9uID0gRnVuY3Rpb25FeGVjdXRhYmxlOjpmcm9tR2xvYmFsQ29kZShm
dW5jdGlvbk5hbWUsIGdsb2JhbE9iamVjdCwgc291cmNlLCBleGNlcHRpb24sIG92ZXJyaWRlTGlu
ZU51bWJlciwgZnVuY3Rpb25Db25zdHJ1Y3RvclBhcmFtZXRlcnNFbmRQb3NpdGlvbik7CiAgICAg
aWYgKFVOTElLRUxZKCFmdW5jdGlvbikpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaAppbmRleCBmNGI0MjViY2ZiMDI0Y2Q4N2I2ZWQyYzE3
ODgwN2NhZjAxY2JkOTA2Li41MmQ5MjE5MGQwMjQxODM1NTUwMDZkNmRlMWE3MDVhMDE1M2JmYTAy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRFeGVjdXRh
YmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJs
ZS5oCkBAIC00Nyw3ICs0Nyw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBTb3VyY2VDb2RlJiBzb3Vy
Y2UoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZTsgfQogICAgIGludHB0cl90IHNvdXJjZUlEKCkg
Y29uc3QgeyByZXR1cm4gbV9zb3VyY2UucHJvdmlkZXJJRCgpOyB9CiAgICAgY29uc3QgU291cmNl
T3JpZ2luJiBzb3VyY2VPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5wcm92aWRlcigp
LT5zb3VyY2VPcmlnaW4oKTsgfQotICAgIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2UucHJvdmlkZXIoKS0+dXJsKCkuc3RyaW5nKCk7IH0KKyAgICAvLyBU
aGlzIGlzIE5PVCB0aGUgcGF0aCB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciBjb21wdXRpbmcgcmVs
YXRpdmUgcGF0aHMgZnJvbSBhIHNjcmlwdC4gVXNlIFNvdXJjZU9yaWdpbidzIFVSTCBmb3IgdGhh
dCwgdGhlIHZhbHVlcyBtYXkgb3IgbWF5IG5vdCBiZSB0aGUgc2FtZS4uLiBUaGlzIHNob3VsZCBv
bmx5IGJlIHVzZWQgZm9yIGBlcnJvci5zb3VyY2VVUkxgIGFuZCBzdGFjayB0cmFjZXMuCisgICAg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5wcm92aWRl
cigpLT5zb3VyY2VVUkwoKTsgfQogICAgIGludCBmaXJzdExpbmUoKSBjb25zdCB7IHJldHVybiBt
X3NvdXJjZS5maXJzdExpbmUoKS5vbmVCYXNlZEludCgpOyB9CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgaW50IGxhc3RMaW5lKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgc3RhcnRDb2x1bW4oKSBjb25z
dCB7IHJldHVybiBtX3NvdXJjZS5zdGFydENvbHVtbigpLm9uZUJhc2VkSW50KCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NvdXJjZU9yaWdpbi5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU291cmNlT3JpZ2luLmgKaW5kZXggN2MzY2RlYjdj
OWFkYjIxYjg1Mjk2YTQzY2M2Nzk5NTAwMThiNzJiZC4uOGU3YTA5MDUzM2U3NWJhMzg1ZThiYTU2
MGFmNWFmNWJiZjJhODFhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU291cmNlT3JpZ2luLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU291
cmNlT3JpZ2luLmgKQEAgLTI2LDMyICsyNiwzMyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJTY3JpcHRGZXRjaGVyLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5j
bHVkZSA8d3RmL1VSTC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgU291cmNlT3JpZ2lu
IHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBTb3VyY2VPcmlnaW4oY29uc3QgU3RyaW5nJiBzdHJp
bmcpCi0gICAgICAgIDogbV9zdHJpbmcoc3RyaW5nKQorICAgIGV4cGxpY2l0IFNvdXJjZU9yaWdp
bihjb25zdCBVUkwmIHVybCkKKyAgICAgICAgOiBtX3VybCh1cmwpCiAgICAgewogICAgIH0KIAot
ICAgIGV4cGxpY2l0IFNvdXJjZU9yaWdpbihjb25zdCBTdHJpbmcmIHN0cmluZywgUmVmPFNjcmlw
dEZldGNoZXI+JiYgZmV0Y2hlcikKLSAgICAgICAgOiBtX3N0cmluZyhzdHJpbmcpCisgICAgZXhw
bGljaXQgU291cmNlT3JpZ2luKGNvbnN0IFVSTCYgdXJsLCBSZWY8U2NyaXB0RmV0Y2hlcj4mJiBm
ZXRjaGVyKQorICAgICAgICA6IG1fdXJsKHVybCkKICAgICAgICAgLCBtX2ZldGNoZXIoV1RGTW92
ZShmZXRjaGVyKSkKICAgICB7CiAgICAgfQogCiAgICAgU291cmNlT3JpZ2luKCkgPSBkZWZhdWx0
OwogCi0gICAgY29uc3QgU3RyaW5nJiBzdHJpbmcoKSBjb25zdCB7IHJldHVybiBtX3N0cmluZzsg
fQotICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gbV9zdHJpbmcuaXNOdWxsKCk7IH0K
KyAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CisgICAgY29uc3Qg
U3RyaW5nJiBzdHJpbmcoKSBjb25zdCB7IHJldHVybiBtX3VybC5zdHJpbmcoKTsgfQorICAgIGJv
b2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gdXJsKCkuaXNOdWxsKCk7IH0KIAogICAgIFNjcmlw
dEZldGNoZXIqIGZldGNoZXIoKSBjb25zdCB7IHJldHVybiBtX2ZldGNoZXIuZ2V0KCk7IH0KIAog
cHJpdmF0ZToKLSAgICBTdHJpbmcgbV9zdHJpbmc7CisgICAgVVJMIG1fdXJsOwogICAgIFJlZlB0
cjxTY3JpcHRGZXRjaGVyPiBtX2ZldGNoZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9UaHJvd1Njb3BlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1Rocm93U2NvcGUuY3BwCmluZGV4IGEzMWNlOWRkM2IwNDIyODNkZjdkY2Q4NTVk
YThlZjBhMjY0OTc1MDguLmRlYzY5YTQ4MzE2ZTE2YWU1MzdiNTgxNWQwNmUwY2JiNzRmYTE5NTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rocm93U2NvcGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rocm93U2NvcGUuY3BwCkBAIC04
MCwxOCArODAsMTIgQEAgRXhjZXB0aW9uKiBUaHJvd1Njb3BlOjp0aHJvd0V4Y2VwdGlvbihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGNlcHRpb24qIGUKIAogRXhjZXB0aW9uKiBUaHJv
d1Njb3BlOjp0aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIGVycm9yKQogewotICAgIGlmICghZXJyb3IuaXNDZWxsKCkgfHwgIWpzRHluYW1pY0Nhc3Q8
RXhjZXB0aW9uKj4obV92bSwgZXJyb3IuYXNDZWxsKCkpKQorICAgIGlmICghZXJyb3IuaXNDZWxs
KCkgfHwgZXJyb3IuaXNPYmplY3QoKSB8fCAhanNEeW5hbWljQ2FzdDxFeGNlcHRpb24qPihtX3Zt
LCBlcnJvci5hc0NlbGwoKSkpCiAgICAgICAgIG1fdm0udmVyaWZ5RXhjZXB0aW9uQ2hlY2tOZWVk
SXNTYXRpc2ZpZWQobV9yZWN1cnNpb25EZXB0aCwgbV9sb2NhdGlvbik7CiAgICAgCiAgICAgcmV0
dXJuIG1fdm0udGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBlcnJvcik7CiB9CiAKLUV4Y2Vw
dGlvbiogVGhyb3dTY29wZTo6dGhyb3dFeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNPYmplY3QqIG9iaikKLXsKLSAgICBtX3ZtLnZlcmlmeUV4Y2VwdGlvbkNoZWNrTmVl
ZElzU2F0aXNmaWVkKG1fcmVjdXJzaW9uRGVwdGgsIG1fbG9jYXRpb24pOwotICAgIHJldHVybiBt
X3ZtLnRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgb2JqKTsKLX0KLQogdm9pZCBUaHJvd1Nj
b3BlOjpzaW11bGF0ZVRocm93KCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChtX3ZtLm1fdG9wRXhj
ZXB0aW9uU2NvcGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VGhyb3dTY29wZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGhyb3dTY29wZS5o
CmluZGV4IDY5MzIxOTdlODA1OGI5ZDY4MjllMTY2NmFhZDAwNzQxNjQzMTYxYTQuLmNmMzM2ZmMy
NDNiNjA0YThlN2Q1ZjE0YTgxYjYzMTgyZjM4ODc4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Rocm93U2NvcGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9UaHJvd1Njb3BlLmgKQEAgLTQ5LDcgKzQ5LDYgQEAgcHVibGljOgogCiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgRXhjZXB0aW9uKiB0aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVj
dCosIEV4Y2VwdGlvbiopOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIEV4Y2VwdGlvbiogdGhyb3dF
eGNlcHRpb24oSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKLSAgICBKU19FWFBPUlRfUFJJVkFU
RSBFeGNlcHRpb24qIHRocm93RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqKTsK
IAogICAgIHZvaWQgcmVsZWFzZSgpIHsgbV9pc1JlbGVhc2VkID0gdHJ1ZTsgfQogCkBAIC03OSw3
ICs3OCw2IEBAIHB1YmxpYzoKIAogICAgIEFMV0FZU19JTkxJTkUgRXhjZXB0aW9uKiB0aHJvd0V4
Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGNlcHRpb24qIGV4Y2VwdGlv
bikgeyByZXR1cm4gbV92bS50aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIGV4Y2VwdGlvbik7
IH0KICAgICBBTFdBWVNfSU5MSU5FIEV4Y2VwdGlvbiogdGhyb3dFeGNlcHRpb24oSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkgeyByZXR1cm4gbV92bS50aHJvd0V4
Y2VwdGlvbihnbG9iYWxPYmplY3QsIHZhbHVlKTsgfQotICAgIEFMV0FZU19JTkxJTkUgRXhjZXB0
aW9uKiB0aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVj
dCogb2JqKSB7IHJldHVybiBtX3ZtLnRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgb2JqKTsg
fQogCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHJlbGVhc2UoKSB7IH0KIH07CkBAIC05OSw5ICs5
NywxNiBAQCBBTFdBWVNfSU5MSU5FIEV4Y2VwdGlvbiogdGhyb3dFeGNlcHRpb24oSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZQogICAgIHJldHVybiBzY29wZS50aHJvd0V4
Y2VwdGlvbihnbG9iYWxPYmplY3QsIHZhbHVlKTsKIH0KIAotQUxXQVlTX0lOTElORSBFeGNlcHRp
b24qIHRocm93RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRocm93U2Nv
cGUmIHNjb3BlLCBKU09iamVjdCogb2JqKQorQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSB0
aHJvd1ZNRXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRocm93U2NvcGUm
IHNjb3BlLCBFeGNlcHRpb24qIGV4Y2VwdGlvbikKIHsKLSAgICByZXR1cm4gc2NvcGUudGhyb3dF
eGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBvYmopOworICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9i
amVjdCwgc2NvcGUsIGV4Y2VwdGlvbik7CisgICAgcmV0dXJuIGVuY29kZWRKU1ZhbHVlKCk7Cit9
CisKK0FMV0FZU19JTkxJTkUgRW5jb2RlZEpTVmFsdWUgdGhyb3dWTUV4Y2VwdGlvbihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSwgSlNWYWx1ZSB2YWx1ZSkK
K3sKKyAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCB2YWx1ZSk7CisgICAg
cmV0dXJuIGVuY29kZWRKU1ZhbHVlKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHAKaW5kZXgg
ZTA5Mzk2Zjc0MmVlZDc1M2I2ZGJlYTRjZDlhNzhlZjY2NTdkZDQ4NS4uNDhiMmRhNWUyZjI2MWZj
OWUwNmJlYWI3ZDk0ZmY3MTk0MGVmN2ZkNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwCkBAIC0xMzcsNyArMTM3LDkgQEAgc3RhdGlj
IHZvaWQgaW5pdGlhbGl6ZU92ZXJyaWRlSW5mbyhjb25zdCBTb3VyY2VDb2RlJiBvcmlnQ29kZSwg
Y29uc3QgU3RyaW5nJiBuZXcKICAgICBuZXdQcm92aWRlclN0ci5hcHBlbmQob3JpZ0hlYWRlcik7
CiAgICAgbmV3UHJvdmlkZXJTdHIuYXBwZW5kKG5ld0JvZHkpOwogCi0gICAgUmVmPFNvdXJjZVBy
b3ZpZGVyPiBuZXdQcm92aWRlciA9IFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUobmV3UHJv
dmlkZXJTdHIsIFNvdXJjZU9yaWdpbiB7ICI8b3ZlcnJpZGRlbj4iIH0sIFVSTCh7IH0sICI8b3Zl
cnJpZGRlbj4iKSk7CisgICAgYXV0byBvdmVycmlkZGVuID0gIjxvdmVycmlkZGVuPiJfczsKKyAg
ICBVUkwgdXJsKHsgfSwgb3ZlcnJpZGRlbik7CisgICAgUmVmPFNvdXJjZVByb3ZpZGVyPiBuZXdQ
cm92aWRlciA9IFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUobmV3UHJvdmlkZXJTdHIsIFNv
dXJjZU9yaWdpbiB7IHVybCB9LCBvdmVycmlkZGVuKTsKIAogICAgIGluZm8uZmlyc3RMaW5lID0g
MTsKICAgICBpbmZvLmxpbmVDb3VudCA9IDE7IC8vIEZha2luZyBpdC4gVGhpcyBkb2Vzbid0IHJl
YWxseSBtYXR0ZXIgZm9yIG5vdy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
b29scy9KU0RvbGxhclZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxh
clZNLmNwcAppbmRleCBlMTJmNDgxNmMzZTE0NDI1NWMxYTRmNTMyYTI4Njc3ZGRiM2QyNTU2Li44
ZDY3ZjUzMTdjNjY0NTU1NDZmYWZiNzdlYWRiMjdmMjVhNTQ1ZjkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCkBAIC0xNjQ4LDExICsxNjQ4LDQ3IEBAIG5h
bWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gSlNEb2xsYXJWTTo6c19pbmZvID0geyAi
RG9sbGFyVk0iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTRG9sbGFyVk0pIH07CiAKLS8vIFRyaWdnZXJzIGEgY3Jhc2ggaW1tZWRpYXRlbHku
Ci0vLyBVc2FnZTogJHZtLmNyYXNoKCkKLXN0YXRpYyBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmFzaChKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZG9QcmludChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgYm9vbCBhZGRMaW5lRmVlZCkK
IHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOworICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9iamVjdC0+dm0oKSk7CisgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKKyAgICAg
ICAgSlNWYWx1ZSBhcmcgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KGkpOworICAgICAg
ICBpZiAoYXJnLmlzQ2VsbCgpCisgICAgICAgICAgICAmJiAhYXJnLmlzT2JqZWN0KCkKKyAgICAg
ICAgICAgICYmICFhcmcuaXNTdHJpbmcoKQorICAgICAgICAgICAgJiYgIWFyZy5pc0JpZ0ludCgp
KSB7CisgICAgICAgICAgICBkYXRhTG9nKGFyZyk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgfQorICAgICAgICBTdHJpbmcgYXJnU3RyID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1
bWVudChpKS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOworICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICAgICAgZGF0YUxvZyhhcmdTdHIp
OworICAgIH0KKyAgICBpZiAoYWRkTGluZUZlZWQpCisgICAgICAgIGRhdGFMb2coIlxuIik7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30KKworLy8gVHJpZ2dl
cnMgYSBjcmFzaCBhZnRlciBkdW1waW5nIGFueSBwYXJhbWF0ZXIgcGFzc2VkIHRvIGl0LgorLy8g
VXNhZ2U6ICR2bS5jcmFzaCguLi4pCitzdGF0aWMgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3Jhc2goSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7CisgICAgRG9sbGFyVk1Bc3NlcnRT
Y29wZSBhc3NlcnRTY29wZTsKKworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisgICAgaWYgKGNhbGxGcmFt
ZS0+YXJndW1lbnRDb3VudCgpKSB7CisgICAgICAgIGRhdGFMb2dMbigiRHVtcGluZyAiLCBjYWxs
RnJhbWUtPmFyZ3VtZW50Q291bnQoKSwgIiB2YWx1ZXMgYmVmb3JlIGNyYXNoaW5nOiIpOworICAg
ICAgICBjb25zdCBib29sIGFkZExpbmVGZWVkID0gdHJ1ZTsKKyAgICAgICAgZG9QcmludChnbG9i
YWxPYmplY3QsIGNhbGxGcmFtZSwgYWRkTGluZUZlZWQpOworICAgICAgICBpZiAoc2NvcGUuZXhj
ZXB0aW9uKCkpIHsKKyAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBzY29wZS5leGNlcHRpb24o
KS0+dmFsdWUoKTsKKyAgICAgICAgICAgIHNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7CisgICAgICAg
ICAgICBkYXRhTG9nTG4oIkVycm9yIHRocm93biB3aGlsZSBjcmFzaGluZzogIiwgdmFsdWUudG9X
VEZTdHJpbmcoZ2xvYmFsT2JqZWN0KSk7CisgICAgICAgIH0KKyAgICB9CisKICAgICBDUkFTSCgp
OwogfQogCkBAIC0yMDI4LDI4ICsyMDY0LDYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25EdW1wQnl0ZWNvZGVGb3IoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgZG9QcmludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgYm9vbCBhZGRMaW5lRmVlZCkKLXsKLSAgICBEb2xsYXJWTUFzc2VydFNj
b3BlIGFzc2VydFNjb3BlOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGds
b2JhbE9iamVjdC0+dm0oKSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNhbGxGcmFt
ZS0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKLSAgICAgICAgSlNWYWx1ZSBhcmcgPSBjYWxsRnJh
bWUtPnVuY2hlY2tlZEFyZ3VtZW50KGkpOwotICAgICAgICBpZiAoYXJnLmlzQ2VsbCgpCi0gICAg
ICAgICAgICAmJiAhYXJnLmlzT2JqZWN0KCkKLSAgICAgICAgICAgICYmICFhcmcuaXNTdHJpbmco
KQotICAgICAgICAgICAgJiYgIWFyZy5pc0JpZ0ludCgpKSB7Ci0gICAgICAgICAgICBkYXRhTG9n
KGFyZyk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBTdHJpbmcg
YXJnU3RyID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudChpKS50b1dURlN0cmluZyhnbG9i
YWxPYmplY3QpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNW
YWx1ZSgpKTsKLSAgICAgICAgZGF0YUxvZyhhcmdTdHIpOwotICAgIH0KLSAgICBpZiAoYWRkTGlu
ZUZlZWQpCi0gICAgICAgIGRhdGFMb2coIlxuIik7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKLX0KLQogLy8gUHJpbnRzIGEgc2VyaWVzIG9mIGNvbW1hIHNlcGFy
YXRlIHN0cmluZ3Mgd2l0aG91dCBhcHBlbmRpbmcgYSBuZXdsaW5lLgogLy8gVXNhZ2U6ICR2bS5k
YXRhTG9nKHN0cjEsIHN0cjIsIHN0cjMpCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkRhdGFMb2coSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwIGIvU291
cmNlL1dURi93dGYvVVJMLmNwcAppbmRleCBmZTI5Y2E3Nzc2YzUzOGJmODAzZDZiYzYxYmFlNzkx
ZjIzYzRjYWZiLi4xZDMxNGJmOGQwNGNjNGVlOWE1YTlkMWQ1NmY4ZTZjYTJlYjBmNGJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1VSTC5j
cHAKQEAgLTIxMyw3ICsyMTMsMTEgQEAgU3RyaW5nIFVSTDo6ZmlsZVN5c3RlbVBhdGgoKSBjb25z
dAogICAgIGlmICghaXNMb2NhbEZpbGUoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJl
dHVybiBkZWNvZGVFc2NhcGVTZXF1ZW5jZXNGcm9tUGFyc2VkVVJMKHBhdGgoKSk7CisgICAgYXV0
byByZXN1bHQgPSBkZWNvZGVFc2NhcGVTZXF1ZW5jZXNGcm9tUGFyc2VkVVJMKHBhdGgoKSk7Cisj
aWYgUExBVEZPUk0oV0lOKQorICAgIHJlc3VsdCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihy
ZXN1bHQpOworI2VuZGlmCisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9VUkwuaCBiL1NvdXJjZS9XVEYvd3RmL1VSTC5oCmluZGV4IDhi
MjJlMTZjNmNhNDAxMjVjMDJmNjg4MTIzMDI0OTU2ZTBmNDQ3OTYuLjJjNDRmYWQwN2UzNTM5NTkx
YjQ5NzBmMmNmZWFjYTcyYWQ2ZTM2YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1VSTC5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1VSTC5oCkBAIC03Nyw2ICs3Nyw5IEBAIHB1YmxpYzoKICAg
ICBib29sIGlzRW1wdHkoKSBjb25zdDsKICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKIAorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQgPSB2b2lkPgorICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2wo
KSB7IHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lX3Y8VCwgdm9pZD4sICJVc2luZyB1cmwgaW4g
YW4gaWYgc3RhdGVtZW50IGlzIGRpc2FsbG93ZWQuIik7IH0KKwogICAgIC8vIFJldHVybnMgdHJ1
ZSBpZiB5b3UgY2FuIHNldCB0aGUgaG9zdCBhbmQgcG9ydCBmb3IgdGhlIFVSTC4KICAgICAvLyBO
b24taGllcmFyY2hpY2FsIFVSTHMgZG9uJ3QgaGF2ZSBhIGhvc3QgYW5kIHBvcnQuCiAgICAgYm9v
bCBjYW5TZXRIb3N0T3JQb3J0KCkgY29uc3QgeyByZXR1cm4gaXNIaWVyYXJjaGljYWwoKTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNl
UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJj
ZVByb3ZpZGVyLmgKaW5kZXggMGU4MDFmY2M5ODgyNDc3NWE2ZDViMjAyNWNmMmI3NGU5NmI4YTc2
Ny4uZmY2YzIwZmRiYWFjMTI3MmE0NGQ3MjAxYzFiNTdjZDc5NWFkM2I4MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRl
ci5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBDYWNoZWRTY3Jp
cHRTb3VyY2VQcm92aWRlcihDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCwgSlNDOjpTb3VyY2VQ
cm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSwgUmVmPENhY2hlZFNjcmlwdEZldGNoZXI+JiYg
c2NyaXB0RmV0Y2hlcikKLSAgICAgICAgOiBTb3VyY2VQcm92aWRlcihKU0M6OlNvdXJjZU9yaWdp
biB7IGNhY2hlZFNjcmlwdC0+cmVzcG9uc2UoKS51cmwoKS5zdHJpbmcoKSwgV1RGTW92ZShzY3Jp
cHRGZXRjaGVyKSB9LCBVUkwoY2FjaGVkU2NyaXB0LT5yZXNwb25zZSgpLnVybCgpKSwgVGV4dFBv
c2l0aW9uKCksIHNvdXJjZVR5cGUpCisgICAgICAgIDogU291cmNlUHJvdmlkZXIoSlNDOjpTb3Vy
Y2VPcmlnaW4geyBjYWNoZWRTY3JpcHQtPnJlc3BvbnNlKCkudXJsKCksIFdURk1vdmUoc2NyaXB0
RmV0Y2hlcikgfSwgU3RyaW5nKGNhY2hlZFNjcmlwdC0+cmVzcG9uc2UoKS51cmwoKS5zdHJpbmco
KSksIFRleHRQb3NpdGlvbigpLCBzb3VyY2VUeXBlKQogICAgICAgICAsIG1fY2FjaGVkU2NyaXB0
KGNhY2hlZFNjcmlwdCkKICAgICB7CiAgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5hZGRDbGllbnQo
KnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExp
c3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5j
cHAKaW5kZXggNDQ4YzNiYjMwNDQyY2U0MDMwZDNlOGVkODI2NTY0Y2I0MGFkODhiNS4uYmNkYWY5
NTc4OTY3OWM4ZGQ0MTZmOTg3MTRjYjZiMTU5ZjMxZmVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgdm9p
ZCBKU0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQKICAgICAgICAgSlNET01XaW5kb3cqIHdpbmRvdyA9IGpzQ2Fz
dDxKU0RPTVdpbmRvdyo+KGdsb2JhbE9iamVjdCk7CiAgICAgICAgIGlmICghd2luZG93LT53cmFw
cGVkKCkuaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIGlmICh3YXNDcmVhdGVkRnJvbU1hcmt1cCgpICYmICFzY3JpcHRFeGVjdXRpb25D
b250ZXh0LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0lubGluZUV2ZW50SGFuZGxlcnMo
c291cmNlVVJMKCksIHNvdXJjZVBvc2l0aW9uKCkubV9saW5lKSkKKyAgICAgICAgaWYgKHdhc0Ny
ZWF0ZWRGcm9tTWFya3VwKCkgJiYgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY29udGVudFNlY3Vy
aXR5UG9saWN5KCktPmFsbG93SW5saW5lRXZlbnRIYW5kbGVycyhzb3VyY2VVUkwoKS5zdHJpbmco
KSwgc291cmNlUG9zaXRpb24oKS5tX2xpbmUpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAvLyBGSVhNRTogSXMgdGhpcyBjaGVjayBuZWVkZWQgZm9yIG90aGVyIGNvbnRleHRzPwogICAg
ICAgICBTY3JpcHRDb250cm9sbGVyJiBzY3JpcHQgPSB3aW5kb3ctPndyYXBwZWQoKS5mcmFtZSgp
LT5zY3JpcHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZl
bnRMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVy
LmgKaW5kZXggZDUxNTNhZjEyNTVkMzVkY2RlNGE2MjdmZmIxOGU1MDFjZjI0ZTMyMy4uMTE5MzI3
ODQzMmZjZGNlMWEwN2RmYzQ2NmQ0NjkxYzU3NmQ1NmNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgog
ICAgIEpTQzo6SlNPYmplY3QqIGpzRnVuY3Rpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2pz
RnVuY3Rpb24uZ2V0KCk7IH0KICAgICBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV93cmFwcGVyLmdldCgpOyB9CiAKLSAgICB2aXJ0dWFsIFN0cmluZyBzb3Vy
Y2VVUkwoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQorICAgIHZpcnR1YWwgVVJMIHNvdXJj
ZVVSTCgpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQogICAgIHZpcnR1YWwgVGV4dFBvc2l0aW9uIHNv
dXJjZVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gVGV4dFBvc2l0aW9uKCk7IH0KIAogICAgIFN0
cmluZyBmdW5jdGlvbk5hbWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggMWI0YjIxZWRhZDUxMzQ5M2Q4YjUx
YmYyYTVmNzFlYmJhMTczMWZkZC4uMTVjN2ExNjQwZmZjMjE0NThiODFmZWFjMTcwYTJjNjc2NzVi
MTNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRM
aXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRM
aXN0ZW5lci5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgc3RhdGljIFRleHRQb3NpdGlvbiBjb252ZXJ0
WmVyb1RvT25lKGNvbnN0IFRleHRQb3NpdGlvbiYgcG9zaXRpb24pCiAgICAgcmV0dXJuIHBvc2l0
aW9uOwogfQogCi1KU0xhenlFdmVudExpc3RlbmVyOjpKU0xhenlFdmVudExpc3RlbmVyKENyZWF0
aW9uQXJndW1lbnRzJiYgYXJndW1lbnRzLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgY29uc3Qg
VGV4dFBvc2l0aW9uJiBzb3VyY2VQb3NpdGlvbikKK0pTTGF6eUV2ZW50TGlzdGVuZXI6OkpTTGF6
eUV2ZW50TGlzdGVuZXIoQ3JlYXRpb25Bcmd1bWVudHMmJiBhcmd1bWVudHMsIGNvbnN0IFVSTCYg
c291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRpb24mIHNvdXJjZVBvc2l0aW9uKQogICAgIDogSlNF
dmVudExpc3RlbmVyKG51bGxwdHIsIGFyZ3VtZW50cy53cmFwcGVyLCB0cnVlLCBtYWluVGhyZWFk
Tm9ybWFsV29ybGQoKSkKICAgICAsIG1fZnVuY3Rpb25OYW1lKGFyZ3VtZW50cy5hdHRyaWJ1dGVO
YW1lLmxvY2FsTmFtZSgpLnN0cmluZygpKQogICAgICwgbV9ldmVudFBhcmFtZXRlck5hbWUoZXZl
bnRQYXJhbWV0ZXJOYW1lKGFyZ3VtZW50cy5zaG91bGRVc2VTVkdFdmVudE5hbWUpKQpAQCAtMTMw
LDcgKzEzMCw3IEBAIEpTT2JqZWN0KiBKU0xhenlFdmVudExpc3RlbmVyOjppbml0aWFsaXplSlNG
dW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBleGVjCiAgICAgaWYgKCFkb2N1bWVudC5m
cmFtZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGlmICghZG9jdW1lbnQuY29u
dGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93SW5saW5lRXZlbnRIYW5kbGVycyhtX3NvdXJjZVVS
TCwgbV9zb3VyY2VQb3NpdGlvbi5tX2xpbmUpKQorICAgIGlmICghZG9jdW1lbnQuY29udGVudFNl
Y3VyaXR5UG9saWN5KCktPmFsbG93SW5saW5lRXZlbnRIYW5kbGVycyhtX3NvdXJjZVVSTC5zdHJp
bmcoKSwgbV9zb3VyY2VQb3NpdGlvbi5tX2xpbmUpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAogICAgIGF1dG8mIHNjcmlwdCA9IGRvY3VtZW50LmZyYW1lKCktPnNjcmlwdCgpOwpAQCAtMTYw
LDcgKzE2MCw3IEBAIEpTT2JqZWN0KiBKU0xhenlFdmVudExpc3RlbmVyOjppbml0aWFsaXplSlNG
dW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBleGVjCiAgICAgSlNPYmplY3QqIGpzRnVu
Y3Rpb24gPSBjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjaygKICAgICAg
ICAgbGV4aWNhbEdsb2JhbE9iamVjdCwgYXJncywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
bV9mdW5jdGlvbk5hbWUpLAogICAgICAgICBTb3VyY2VPcmlnaW4geyBtX3NvdXJjZVVSTCwgQ2Fj
aGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKGRvY3VtZW50LmNoYXJzZXQoKSkgfSwKLSAgICAgICAg
bV9zb3VyY2VVUkwsIG1fc291cmNlUG9zaXRpb24sIG92ZXJyaWRlTGluZU51bWJlcik7CisgICAg
ICAgIG1fc291cmNlVVJMLnN0cmluZygpLCBtX3NvdXJjZVBvc2l0aW9uLCBvdmVycmlkZUxpbmVO
dW1iZXIpOwogICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24oKSkpIHsKICAgICAgICAg
cmVwb3J0Q3VycmVudEV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAgICAgc2Nv
cGUuY2xlYXJFeGNlcHRpb24oKTsKQEAgLTE5MSwxMiArMTkxLDEyIEBAIFJlZlB0cjxKU0xhenlF
dmVudExpc3RlbmVyPiBKU0xhenlFdmVudExpc3RlbmVyOjpjcmVhdGUoQ3JlYXRpb25Bcmd1bWVu
dHMmJiBhcmd1CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gcHJvdmlkZSBz
b3VyY2UgaW5mb3JtYXRpb24gZm9yIGZyYW1lbGVzcyBkb2N1bWVudHMgdG9vIChlLmcuIGZvciBp
bXBvcnRpbmcgbm9kZXMgZnJvbSBYTUxIdHRwUmVxdWVzdC5yZXNwb25zZVhNTCkuCiAgICAgVGV4
dFBvc2l0aW9uIHBvc2l0aW9uOwotICAgIFN0cmluZyBzb3VyY2VVUkw7CisgICAgVVJMIHNvdXJj
ZVVSTDsKICAgICBpZiAoRnJhbWUqIGZyYW1lID0gYXJndW1lbnRzLmRvY3VtZW50LmZyYW1lKCkp
IHsKICAgICAgICAgaWYgKCFmcmFtZS0+c2NyaXB0KCkuY2FuRXhlY3V0ZVNjcmlwdHMoQWJvdXRU
b0NyZWF0ZUV2ZW50TGlzdGVuZXIpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
ICAgIHBvc2l0aW9uID0gZnJhbWUtPnNjcmlwdCgpLmV2ZW50SGFuZGxlclBvc2l0aW9uKCk7Ci0g
ICAgICAgIHNvdXJjZVVSTCA9IGFyZ3VtZW50cy5kb2N1bWVudC51cmwoKS5zdHJpbmcoKTsKKyAg
ICAgICAgc291cmNlVVJMID0gYXJndW1lbnRzLmRvY3VtZW50LnVybCgpOwogICAgIH0KIAogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEpTTGF6eUV2ZW50TGlzdGVuZXIoV1RGTW92ZShhcmd1bWVu
dHMpLCBzb3VyY2VVUkwsIHBvc2l0aW9uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmgKaW5kZXggMTc5ZWI0Mzc4ZGNkMjhhNGI0M2JlZTcw
YjMzZTU3YmVhOWU4YjUxMy4uNzI4ODY5ZGRiZGRiMDkzMDI1NzlhYmRlMWU2NGY2MDIwZTdiMjJj
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0
ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVu
ZXIuaApAQCAtMzksMTMgKzM5LDEzIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkpTTGF6eUV2
ZW50TGlzdGVuZXIoKTsKIAotICAgIFN0cmluZyBzb3VyY2VVUkwoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX3NvdXJjZVVSTDsgfQorICAgIFVSTCBzb3VyY2VVUkwoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX3NvdXJjZVVSTDsgfQogICAgIFRleHRQb3NpdGlvbiBzb3VyY2VQb3NpdGlvbigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fc291cmNlUG9zaXRpb247IH0KIAogcHJpdmF0ZToKICAgICBz
dHJ1Y3QgQ3JlYXRpb25Bcmd1bWVudHM7CiAgICAgc3RhdGljIFJlZlB0cjxKU0xhenlFdmVudExp
c3RlbmVyPiBjcmVhdGUoQ3JlYXRpb25Bcmd1bWVudHMmJik7Ci0gICAgSlNMYXp5RXZlbnRMaXN0
ZW5lcihDcmVhdGlvbkFyZ3VtZW50cyYmLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgY29uc3Qg
VGV4dFBvc2l0aW9uJik7CisgICAgSlNMYXp5RXZlbnRMaXN0ZW5lcihDcmVhdGlvbkFyZ3VtZW50
cyYmLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJik7CiAKICNpZiBB
U1NFUlRfRU5BQkxFRAogICAgIHZvaWQgY2hlY2tWYWxpZGl0eUZvckV2ZW50VGFyZ2V0KEV2ZW50
VGFyZ2V0JikgZmluYWw7CkBAIC01Nyw3ICs1Nyw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1f
ZnVuY3Rpb25OYW1lOwogICAgIGNvbnN0IFN0cmluZyYgbV9ldmVudFBhcmFtZXRlck5hbWU7CiAg
ICAgU3RyaW5nIG1fY29kZTsKLSAgICBTdHJpbmcgbV9zb3VyY2VVUkw7CisgICAgVVJMIG1fc291
cmNlVVJMOwogICAgIFRleHRQb3NpdGlvbiBtX3NvdXJjZVBvc2l0aW9uOwogICAgIFdlYWtQdHI8
Q29udGFpbmVyTm9kZT4gbV9vcmlnaW5hbE5vZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBjYzIwMTIxN2JmMTA2ZDdjYWMx
MWVjY2Y3ZjNlMjYzZGY4YWFiNjc2Li5lZDM2NDE5NzY4ODc3ODdlYWNmYjhiZjA1YjkyZWZmN2Vj
MjQyYWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29udHJv
bGxlcjo6ZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjCiAgICAg
SlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CiAKICAgICBjb25zdCBTb3VyY2VDb2RlJiBq
c1NvdXJjZUNvZGUgPSBzb3VyY2VDb2RlLmpzU291cmNlQ29kZSgpOwotICAgIFN0cmluZyBzb3Vy
Y2VVUkwgPSBqc1NvdXJjZUNvZGUucHJvdmlkZXIoKS0+dXJsKCkuc3RyaW5nKCk7CisgICAgY29u
c3QgVVJMJiBzb3VyY2VVUkwgPSBqc1NvdXJjZUNvZGUucHJvdmlkZXIoKS0+c291cmNlT3JpZ2lu
KCkudXJsKCk7CiAKICAgICAvLyBldmFsdWF0ZSBjb2RlLiBSZXR1cm5zIHRoZSBKUyByZXR1cm4g
dmFsdWUgb3IgMAogICAgIC8vIGlmIHRoZXJlIHdhcyBub25lLCBhbiBlcnJvciBvY2N1cnJlZCBv
ciB0aGUgdHlwZSBjb3VsZG4ndCBiZSBjb252ZXJ0ZWQuCkBAIC0xMzYsMTIgKzEzNiwxMSBAQCBW
YWx1ZU9yRXhjZXB0aW9uIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZChjb25zdCBT
Y3JpcHRTb3VyY2VDb2RlJiBzb3VyYwogICAgIC8vIFNlZSBzbWFydCB3aW5kb3cub3BlbiBwb2xp
Y3kgZm9yIHdoZXJlIHRoaXMgaXMgdXNlZC4KICAgICBhdXRvJiBwcm94eSA9IGpzV2luZG93UHJv
eHkod29ybGQpOwogICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICpwcm94eS53aW5kb3coKTsKLSAg
ICBjb25zdCBTdHJpbmcqIHNhdmVkU291cmNlVVJMID0gbV9zb3VyY2VVUkw7Ci0gICAgbV9zb3Vy
Y2VVUkwgPSAmc291cmNlVVJMOworICAgIFNldEZvclNjb3BlPGNvbnN0IFVSTCo+IHNvdXJjZVVS
TFNjb3BlKG1fc291cmNlVVJMLCAmc291cmNlVVJMKTsKIAogICAgIFJlZjxGcmFtZT4gcHJvdGVj
dG9yKG1fZnJhbWUpOwogCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRXZhbHVh
dGVTY3JpcHQobV9mcmFtZSwgc291cmNlVVJMLCBzb3VyY2VDb2RlLnN0YXJ0TGluZSgpLCBzb3Vy
Y2VDb2RlLnN0YXJ0Q29sdW1uKCkpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2ls
bEV2YWx1YXRlU2NyaXB0KG1fZnJhbWUsIHNvdXJjZVVSTC5zdHJpbmcoKSwgc291cmNlQ29kZS5z
dGFydExpbmUoKSwgc291cmNlQ29kZS5zdGFydENvbHVtbigpKTsKIAogICAgIE5ha2VkUHRyPEpT
Qzo6RXhjZXB0aW9uPiBldmFsdWF0aW9uRXhjZXB0aW9uOwogICAgIEpTVmFsdWUgcmV0dXJuVmFs
dWUgPSBKU0V4ZWNTdGF0ZTo6cHJvZmlsZWRFdmFsdWF0ZSgmZ2xvYmFsT2JqZWN0LCBKU0M6OlBy
b2ZpbGluZ1JlYXNvbjo6T3RoZXIsIGpzU291cmNlQ29kZSwgJnByb3h5LCBldmFsdWF0aW9uRXhj
ZXB0aW9uKTsKQEAgLTE1NSw3ICsxNTQsNiBAQCBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlwdENvbnRy
b2xsZXI6OmV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyYwogICAg
ICAgICBvcHRpb25hbERldGFpbHMgPSBXVEZNb3ZlKGRldGFpbHMpOwogICAgIH0KIAotICAgIG1f
c291cmNlVVJMID0gc2F2ZWRTb3VyY2VVUkw7CiAgICAgaWYgKG9wdGlvbmFsRGV0YWlscykKICAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKCpvcHRpb25hbERldGFpbHMpOwogCkBAIC0yMzUs
NyArMjMzLDcgQEAgSlNDOjpKU1ZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlTW9kdWxl
KGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU01vZHVsZVJlY28KIAogICAgIGF1dG8mIHByb3h5ID0g
anNXaW5kb3dQcm94eSh3b3JsZCk7CiAgICAgYXV0byYgbGV4aWNhbEdsb2JhbE9iamVjdCA9ICpw
cm94eS53aW5kb3coKTsKLSAgICBTZXRGb3JTY29wZTxjb25zdCBTdHJpbmcqPiBzb3VyY2VVUkxT
Y29wZShtX3NvdXJjZVVSTCwgJnNvdXJjZVVSTC5zdHJpbmcoKSk7CisgICAgU2V0Rm9yU2NvcGU8
Y29uc3QgVVJMKj4gc291cmNlVVJMU2NvcGUobV9zb3VyY2VVUkwsICZzb3VyY2VVUkwpOwogCiAg
ICAgUmVmPEZyYW1lPiBwcm90ZWN0b3IobV9mcmFtZSk7CiAKQEAgLTY0OSwxMyArNjQ3LDEyIEBA
IFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29udHJvbGxlcjo6Y2FsbEluV29ybGQoUnVuSmF2YVNj
cmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0CiAgICAgYXV0byBzb3VyY2VDb2RlID0gU2NyaXB0U291
cmNlQ29kZSB7IGZ1bmN0aW9uU3RyaW5nQnVpbGRlci50b1N0cmluZygpLCBXVEZNb3ZlKHBhcmFt
ZXRlcnMuc291cmNlVVJMKSwgVGV4dFBvc2l0aW9uKCksIEpTQzo6U291cmNlUHJvdmlkZXJTb3Vy
Y2VUeXBlOjpQcm9ncmFtLCBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUobV9mcmFtZS5kb2N1
bWVudCgpLT5jaGFyc2V0KCkpIH07CiAgICAgY29uc3QgYXV0byYganNTb3VyY2VDb2RlID0gc291
cmNlQ29kZS5qc1NvdXJjZUNvZGUoKTsKIAotICAgIFN0cmluZyBzb3VyY2VVUkwgPSBqc1NvdXJj
ZUNvZGUucHJvdmlkZXIoKS0+dXJsKCkuc3RyaW5nKCk7Ci0gICAgY29uc3QgU3RyaW5nKiBzYXZl
ZFNvdXJjZVVSTCA9IG1fc291cmNlVVJMOwotICAgIG1fc291cmNlVVJMID0gJnNvdXJjZVVSTDsK
KyAgICBjb25zdCBVUkwmIHNvdXJjZVVSTCA9IGpzU291cmNlQ29kZS5wcm92aWRlcigpLT5zb3Vy
Y2VPcmlnaW4oKS51cmwoKTsKKyAgICBTZXRGb3JTY29wZTxjb25zdCBVUkwqPiBzb3VyY2VVUkxT
Y29wZShtX3NvdXJjZVVSTCwgJnNvdXJjZVVSTCk7CiAKICAgICBSZWY8RnJhbWU+IHByb3RlY3Rv
cihtX2ZyYW1lKTsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEV2YWx1YXRl
U2NyaXB0KG1fZnJhbWUsIHNvdXJjZVVSTCwgc291cmNlQ29kZS5zdGFydExpbmUoKSwgc291cmNl
Q29kZS5zdGFydENvbHVtbigpKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxF
dmFsdWF0ZVNjcmlwdChtX2ZyYW1lLCBzb3VyY2VVUkwuc3RyaW5nKCksIHNvdXJjZUNvZGUuc3Rh
cnRMaW5lKCksIHNvdXJjZUNvZGUuc3RhcnRDb2x1bW4oKSk7CiAKICAgICBOYWtlZFB0cjxKU0M6
OkV4Y2VwdGlvbj4gZXZhbHVhdGlvbkV4Y2VwdGlvbjsKICAgICBPcHRpb25hbDxFeGNlcHRpb25E
ZXRhaWxzPiBvcHRpb25hbERldGFpbHM7CkBAIC02OTAsOCArNjg3LDYgQEAgVmFsdWVPckV4Y2Vw
dGlvbiBTY3JpcHRDb250cm9sbGVyOjpjYWxsSW5Xb3JsZChSdW5KYXZhU2NyaXB0UGFyYW1ldGVy
cyYmIHBhcmFtZXQKICAgICAgICAgb3B0aW9uYWxEZXRhaWxzID0gV1RGTW92ZShkZXRhaWxzKTsK
ICAgICB9CiAKLSAgICBtX3NvdXJjZVVSTCA9IHNhdmVkU291cmNlVVJMOwotCiAgICAgaWYgKG9w
dGlvbmFsRGV0YWlscykKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKCpvcHRpb25hbERl
dGFpbHMpOwogICAgIHJldHVybiByZXR1cm5WYWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAppbmRleCAyNmQ5ZmM2NjYzZGRhNDA5YWQwNmJlNWIx
Mzk3ZTJmZjRjODNmNWM4Li5jNWE2Y2MwM2RlODk2ODljYWNlYzNhMWNmZWVhYmYyZDZkM2U5Nzdj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCkBA
IC0xMzgsNyArMTM4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGF1c2VkKGJvb2wgYikgeyBt
X3BhdXNlZCA9IGI7IH0KICAgICBib29sIGlzUGF1c2VkKCkgY29uc3QgeyByZXR1cm4gbV9wYXVz
ZWQ7IH0KIAotICAgIGNvbnN0IFN0cmluZyogc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9z
b3VyY2VVUkw7IH0gLy8gMCBpZiB3ZSBhcmUgbm90IGV2YWx1YXRpbmcgYW55IHNjcmlwdAorICAg
IGNvbnN0IFVSTCogc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0gLy8g
bnVsbHB0ciBpZiB3ZSBhcmUgbm90IGV2YWx1YXRpbmcgYW55IHNjcmlwdAogCiAgICAgdm9pZCB1
cGRhdGVEb2N1bWVudCgpOwogCkBAIC0xODgsNyArMTg4LDcgQEAgcHJpdmF0ZToKICAgICBXRUJD
T1JFX0VYUE9SVCBKU1dpbmRvd1Byb3h5JiBqc1dpbmRvd1Byb3h5KERPTVdyYXBwZXJXb3JsZCYp
OwogCiAgICAgRnJhbWUmIG1fZnJhbWU7Ci0gICAgY29uc3QgU3RyaW5nKiBtX3NvdXJjZVVSTDsK
KyAgICBjb25zdCBVUkwqIG1fc291cmNlVVJMIHsgbnVsbHB0ciB9OwogCiAgICAgYm9vbCBtX3Bh
dXNlZDsKICAgICBib29sIG1fd2lsbFJlcGxhY2VXaXRoUmVzdWx0T2ZFeGVjdXRpbmdKYXZhc2Ny
aXB0VVJMIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IGM4NjY0YjEyYzUzYmMzMjdiNWM4OGFmNTY3NjI3Y2Y4
MDRmMTY1NGMuLmFhNWI4MGI1ODZiNzllMGU1NzUwMWNkNTEwNzhkZjI1YTYyNWU1ZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcApA
QCAtNjgsNyArNjgsNyBAQCBzdGF0aWMgYm9vbCBpc1Jvb3RNb2R1bGUoSlNDOjpKU1ZhbHVlIGlt
cG9ydGVyTW9kdWxlS2V5KQogICAgIHJldHVybiBpbXBvcnRlck1vZHVsZUtleS5pc1N5bWJvbCgp
IHx8IGltcG9ydGVyTW9kdWxlS2V5LmlzVW5kZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyBFeHBlY3Rl
ZDxVUkwsIEFTQ0lJTGl0ZXJhbD4gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihEb2N1bWVudCYgZG9j
dW1lbnQsIGNvbnN0IFN0cmluZyYgc3BlY2lmaWVyLCBjb25zdCBVUkwmIGJhc2VVUkwpCitzdGF0
aWMgRXhwZWN0ZWQ8VVJMLCBTdHJpbmc+IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHNwZWNpZmllciwgY29uc3QgVVJMJiBiYXNlVVJMKQog
ewogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFw
aXMuaHRtbCNyZXNvbHZlLWEtbW9kdWxlLXNwZWNpZmllcgogCkBAIC03NywxMSArNzcsMTEgQEAg
c3RhdGljIEV4cGVjdGVkPFVSTCwgQVNDSUlMaXRlcmFsPiByZXNvbHZlTW9kdWxlU3BlY2lmaWVy
KERvY3VtZW50JiBkb2N1bWVudCwgY28KICAgICAgICAgcmV0dXJuIGFic29sdXRlVVJMOwogCiAg
ICAgaWYgKCFzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLycpICYmICFzcGVjaWZpZXIuc3RhcnRzV2l0
aCgiLi8iKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4uLyIpKQotICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoIk1vZHVsZSBzcGVjaWZpZXIgZG9lcyBub3Qgc3RhcnQgd2l0aCBcIi9c
IiwgXCIuL1wiLCBvciBcIi4uL1wiLiJfcyk7CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChtYWtlU3RyaW5nKCJNb2R1bGUgc3BlY2lmaWVyLCAnIl9zLCBzcGVjaWZpZXIsICInIGRvZXMg
bm90IHN0YXJ0IHdpdGggXCIvXCIsIFwiLi9cIiwgb3IgXCIuLi9cIi4gUmVmZXJlbmNlZCBmcm9t
ICJfcywgYmFzZVVSTC5zdHJpbmcoKSkpOwogCiAgICAgYXV0byByZXN1bHQgPSBkb2N1bWVudC5j
b21wbGV0ZVVSTChzcGVjaWZpZXIsIGJhc2VVUkwpOwogICAgIGlmICghcmVzdWx0LmlzVmFsaWQo
KSkKLSAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKCJNb2R1bGUgbmFtZSBkb2VzIG5vdCBy
ZXNvbHZlIHRvIGEgdmFsaWQgVVJMLiJfcyk7CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChtYWtlU3RyaW5nKCJNb2R1bGUgbmFtZSwgJyJfcywgcmVzdWx0LnN0cmluZygpLCAiJyBkb2Vz
IG5vdCByZXNvbHZlIHRvIGEgdmFsaWQgVVJMLiJfcykpOwogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKQEAgLTIyNCw3ICsyMjQsNyBAQCBKU0M6OkpTVmFsdWUgU2NyaXB0TW9kdWxlTG9hZGVyOjpl
dmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE9iamVjdCwgSgogICAgIHJldHVy
biBKU0M6OmpzVW5kZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNl
KiByZWplY3RQcm9taXNlKEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIEV4Y2VwdGlv
bkNvZGUgZWMsIEFTQ0lJTGl0ZXJhbCBtZXNzYWdlKQorc3RhdGljIEpTQzo6SlNJbnRlcm5hbFBy
b21pc2UqIHJlamVjdFByb21pc2UoSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgRXhj
ZXB0aW9uQ29kZSBlYywgU3RyaW5nIG1lc3NhZ2UpCiB7CiAgICAgYXV0byoganNQcm9taXNlID0g
SlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKGdsb2JhbE9iamVjdC52bSgpLCBnbG9iYWxP
YmplY3QuaW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkpOwogICAgIFJFTEVBU0VfQVNTRVJUKGpz
UHJvbWlzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRT
b3VyY2VDb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2Rl
LmgKaW5kZXggZmNhNTc0Y2ZkYWFjNDliYWRmNGQ4MjlmMTkyMDAyMTExNDM3MTk4Yi4uYzcwNDYy
NmZiNzMzZGI0NzJiZGE1MDIzNjI0MWE2ZTc0MGUyNzgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlIHsKIHB1YmxpYzoKICAgICBTY3Jp
cHRTb3VyY2VDb2RlKGNvbnN0IFN0cmluZyYgc291cmNlLCBVUkwmJiB1cmwgPSBVUkwoKSwgY29u
c3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uKCksIEpTQzo6U291
cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUgPSBKU0M6OlNvdXJjZVByb3ZpZGVyU291
cmNlVHlwZTo6UHJvZ3JhbSkKLSAgICAgICAgOiBtX3Byb3ZpZGVyKEpTQzo6U3RyaW5nU291cmNl
UHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIEpTQzo6U291cmNlT3JpZ2luIHsgdXJsLnN0cmluZygp
IH0sIFdURk1vdmUodXJsKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkpCisgICAgICAgIDog
bV9wcm92aWRlcihKU0M6OlN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCBKU0M6
OlNvdXJjZU9yaWdpbiB7IHVybCB9LCB1cmwuc3RyaW5nKCksIHN0YXJ0UG9zaXRpb24sIHNvdXJj
ZVR5cGUpKQogICAgICAgICAsIG1fY29kZShtX3Byb3ZpZGVyLmNvcHlSZWYoKSwgc3RhcnRQb3Np
dGlvbi5tX2xpbmUub25lQmFzZWRJbnQoKSwgc3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNl
ZEludCgpKQogICAgIHsKICAgICB9CkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICB9CiAK
ICAgICBTY3JpcHRTb3VyY2VDb2RlKGNvbnN0IFN0cmluZyYgc291cmNlLCBVUkwmJiB1cmwsIGNv
bnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJj
ZVR5cGUgc291cmNlVHlwZSwgUmVmPENhY2hlZFNjcmlwdEZldGNoZXI+JiYgc2NyaXB0RmV0Y2hl
cikKLSAgICAgICAgOiBtX3Byb3ZpZGVyKEpTQzo6U3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0
ZShzb3VyY2UsIEpTQzo6U291cmNlT3JpZ2luIHsgdXJsLnN0cmluZygpLCBXVEZNb3ZlKHNjcmlw
dEZldGNoZXIpIH0sIFdURk1vdmUodXJsKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkpCisg
ICAgICAgIDogbV9wcm92aWRlcihKU0M6OlN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291
cmNlLCBKU0M6OlNvdXJjZU9yaWdpbiB7IHVybCwgV1RGTW92ZShzY3JpcHRGZXRjaGVyKSB9LCB1
cmwuc3RyaW5nKCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpKQogICAgICAgICAsIG1fY29k
ZShtX3Byb3ZpZGVyLmNvcHlSZWYoKSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJbnQo
KSwgc3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKQogICAgIHsKICAgICB9CkBA
IC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKIAogICAgIENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0
KCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQuZ2V0KCk7IH0KIAotICAgIGNvbnN0IFVS
TCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV9wcm92aWRlci0+dXJsKCk7IH0KKyAgICBjb25zdCBV
UkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdmlkZXItPnNvdXJjZU9yaWdpbigpLnVybCgp
OyB9CiAgICAgCiBwcml2YXRlOgogICAgIFJlZjxKU0M6OlNvdXJjZVByb3ZpZGVyPiBtX3Byb3Zp
ZGVyOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwpp
bmRleCA4MGVmMzUyMDhhNGM1ZjI5ZjQ4M2M4MDg1Njg0ZmE1ZGYwM2E0NjI0Li4yODg2YzkyMjY4
NjZhN2NjNDAxOGNlYTlhMWZmY2U5Njk0NTFiODY1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5n
ZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDIwLTA3LTEw
ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFu
IHVwIFNvdXJjZVByb3ZpZGVyIGFuZCBhZGQgY2FsbGVyIHJlbGF0aXZlIGxvYWQgc2NyaXB0IHRv
IGpzYy5jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNDIwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMi5qczoKKyAgICAg
ICAgKiBzdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy0zLmpzOgorICAg
ICAgICAqIHN0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTQuanM6Cisg
ICAgICAgICogc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNS5qczoK
KyAgICAgICAgKiBzdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy5qczoK
KyAgICAgICAgKiBzdHJlc3MvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlLmpzOgor
ICAgICAgICAqIHN0cmVzcy9nbG9iYWwtbGV4aWNhbC1yZWRlZmluZS1jb25zdC5qczoKKyAgICAg
ICAgKiBzdHJlc3MvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdGR6LmpzOgorICAgICAgICAqIHN0
cmVzcy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS11bnJlc29sdmVkLXByb3BlcnR5LmpzOgorICAg
ICAgICAqIHN0cmVzcy9nbG9iYWwtcHJvcGVydHktaW50by12YXJpYWJsZS1nZXQtZnJvbS1zY29w
ZS5qczoKKyAgICAgICAgKiBzdHJlc3MvanNvbnAtbGl0ZXJhbC1wYXJzZXItc2VtaWNvbG9uLWlz
LW5vdC1hc3NpZ25tZW50LmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9hZGQuanM6CisgICAgICAg
ICogc3RyZXNzL29wX2JpdGFuZC5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfYml0b3IuanM6Cisg
ICAgICAgICogc3RyZXNzL29wX2JpdHhvci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfZGl2LUNv
bnN0VmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9kaXYtVmFyQ29uc3QuanM6CisgICAgICAg
ICogc3RyZXNzL29wX2Rpdi1WYXJWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX2xzaGlmdC1D
b25zdFZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfbHNoaWZ0LVZhckNvbnN0LmpzOgorICAg
ICAgICAqIHN0cmVzcy9vcF9sc2hpZnQtVmFyVmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9t
b2QtQ29uc3RWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX21vZC1WYXJDb25zdC5qczoKKyAg
ICAgICAgKiBzdHJlc3Mvb3BfbW9kLVZhclZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfbXVs
LUNvbnN0VmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9tdWwtVmFyQ29uc3QuanM6CisgICAg
ICAgICogc3RyZXNzL29wX211bC1WYXJWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX25lZ2F0
ZS5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfcG9zdGRlYy5qczoKKyAgICAgICAgKiBzdHJlc3Mv
b3BfcG9zdGluYy5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfcHJlZGVjLmpzOgorICAgICAgICAq
IHN0cmVzcy9vcF9wcmVpbmMuanM6CisgICAgICAgICogc3RyZXNzL29wX3JzaGlmdC1Db25zdFZh
ci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfcnNoaWZ0LVZhckNvbnN0LmpzOgorICAgICAgICAq
IHN0cmVzcy9vcF9yc2hpZnQtVmFyVmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9zdWItQ29u
c3RWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX3N1Yi1WYXJDb25zdC5qczoKKyAgICAgICAg
KiBzdHJlc3Mvb3Bfc3ViLVZhclZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfdXJzaGlmdC1D
b25zdFZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfdXJzaGlmdC1WYXJDb25zdC5qczoKKyAg
ICAgICAgKiBzdHJlc3Mvb3BfdXJzaGlmdC1WYXJWYXIuanM6CisgICAgICAgICogc3RyZXNzL3Jl
Z3Jlc3MtMTU5Nzc5LTEuanM6CisgICAgICAgIChtYWtlVXNlUmVncmVzc2lvblRlc3QpOgorICAg
ICAgICAqIHN0cmVzcy9yZWdyZXNzLTE1OTc3OS0yLmpzOgorICAgICAgICAobWFrZVVzZVJlZ3Jl
c3Npb25UZXN0KToKKyAgICAgICAgKiBzdHJlc3MvcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3Ry
dWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5qczoKKyAgICAgICAgKiBzdHJlc3MvcmVzb3VyY2VzL3R5
cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzOgorICAgICAgICAqIHN0cmVzcy9zYW1w
bGluZy1wcm9maWxlci1hbm9ueW1vdXMtZnVuY3Rpb24uanM6CisgICAgICAgICogc3RyZXNzL3Nh
bXBsaW5nLXByb2ZpbGVyLWJhc2ljLmpzOgorICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9m
aWxlci1ib3VuZC1mdW5jdGlvbi1uYW1lLmpzOgorICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1w
cm9maWxlci1kZWVwLXN0YWNrLmpzOgorICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxl
ci1kaXNwbGF5LW5hbWUuanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWlu
dGVybmFsLWZ1bmN0aW9uLW5hbWUuanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2Zp
bGVyLW1pY3JvdGFza3MuanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdh
c20tbmFtZS1zZWN0aW9uLmpzOgorICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci13
YXNtLmpzOgorICAgICAgICAqIHN0cmVzcy9zaGFkb3ctY2hpY2tlbi1kaXNhYmxlZC5qczoKKyAg
ICAgICAgKiBzdHJlc3Mvc2hhZG93LWNoaWNrZW4tZW5hYmxlZC5qczoKKyAgICAgICAgKiBzdHJl
c3MvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJh
eS1jb3B5V2l0aGluLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWV2ZXJ5LmpzOgor
ICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWZpbGwuanM6CisgICAgICAgICogc3RyZXNzL3R5
cGVkYXJyYXktZmlsdGVyLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWZpbmQuanM6
CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktZmluZEluZGV4LmpzOgorICAgICAgICAqIHN0
cmVzcy90eXBlZGFycmF5LWZvckVhY2guanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXkt
ZnJvbS5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1pbmNsdWRlcy5qczoKKyAgICAg
ICAgKiBzdHJlc3MvdHlwZWRhcnJheS1pbmRleE9mLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBl
ZGFycmF5LWxhc3RJbmRleE9mLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LW1hcC5q
czoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1vZi5qczoKKyAgICAgICAgKiBzdHJlc3Mv
dHlwZWRhcnJheS1yZWR1Y2UuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktcmVkdWNl
UmlnaHQuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktc2V0LmpzOgorICAgICAgICAq
IHN0cmVzcy90eXBlZGFycmF5LXNsaWNlLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5
LXNvbWUuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktc29ydC5qczoKKyAgICAgICAg
KiBzdHJlc3MvdHlwZWRhcnJheS1zdWJhcnJheS5qczoKKwogMjAyMC0wNy0wOSAgQ2FpbyBMaW1h
ICA8dGljYWlvbGltYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0pTQ11bMzItYml0c10gVGVzdCBn
YXJkZW5pbmcgSnVseSA5dGgKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbW9kdWxlcy9hbGlhc2VkLW5h
bWVzLmpzIGIvSlNUZXN0cy9tb2R1bGVzL2FsaWFzZWQtbmFtZXMuanMKaW5kZXggNGM4Nzk2NTQ5
NWMwMGM2NDk2MzI5NWVkYTRkNzlkZGM5NTU3YjQzNi4uNzc3Zjc0MjViOTM3Njk2YTcyMjhlYTQ5
NWM4NGU5ZmVjNGNkYzQxNCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9tb2R1bGVzL2FsaWFzZWQtbmFt
ZXMuanMKKysrIGIvSlNUZXN0cy9tb2R1bGVzL2FsaWFzZWQtbmFtZXMuanMKQEAgLTEsNCArMSw0
IEBACi1pbXBvcnQgeyBhLCBiLCBjaGFuZ2UgfSBmcm9tICdhbGlhc2VkLW5hbWVzL21haW4uanMn
CitpbXBvcnQgeyBhLCBiLCBjaGFuZ2UgfSBmcm9tICcuL2FsaWFzZWQtbmFtZXMvbWFpbi5qcycK
IGltcG9ydCB7IHNob3VsZEJlLCBzaG91bGRUaHJvdyB9IGZyb20gIi4vcmVzb3VyY2VzL2Fzc2Vy
dC5qcyI7CiAKIHNob3VsZEJlKGEsIDQyKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbW9kdWxlcy9h
bGlhc2luZy9kcmluay5qcyBiL0pTVGVzdHMvbW9kdWxlcy9hbGlhc2luZy9kcmluay5qcwppbmRl
eCAxZGE4NGEwZjhmMGFhYTBhNDkzYzlhYjE0ZTYzODRkZWZmMzFjNjYzLi5mYzUyZTQ4ZWFkMTFi
YjZkZjg1YzY1ZGEyZWViMjMyMDBlY2YxMDJiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL21vZHVsZXMv
YWxpYXNpbmcvZHJpbmsuanMKKysrIGIvSlNUZXN0cy9tb2R1bGVzL2FsaWFzaW5nL2RyaW5rLmpz
CkBAIC0zLDUgKzMsNSBAQCBleHBvcnQgZnVuY3Rpb24gY2hhbmdlQ29jb2EodmFsdWUpIHsKICAg
ICBDb2NvYSA9IHZhbHVlOwogfQogCi1pbXBvcnQgeyBDYXBwdWNjaW5vIGFzIFN1YkRyaW5rLCBj
aGFuZ2VDYXBwdWNjaW5vIH0gZnJvbSAiZHJpbmstMi5qcyIKK2ltcG9ydCB7IENhcHB1Y2Npbm8g
YXMgU3ViRHJpbmssIGNoYW5nZUNhcHB1Y2Npbm8gfSBmcm9tICIuL2RyaW5rLTIuanMiCiBleHBv
cnQgeyBTdWJEcmluaywgY2hhbmdlQ2FwcHVjY2lubyB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21v
ZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzLmpzIGIvSlNUZXN0cy9tb2R1
bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1tYWtlLWFtYmlndW91cy5qcwppbmRleCA0MjUxM2VkMTcw
YjNkNzExMTM5NGJiMzQ5M2RiOGE2NGQ1YzJhMWUwLi41NGE0MDg4OWRiMmIxNWVjMmRiNWJjNWE2
MDVlZmUzZDUwMWI4OTkyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91
bGQtbm90LW1ha2UtYW1iaWd1b3VzLmpzCisrKyBiL0pTVGVzdHMvbW9kdWxlcy9jYWNoaW5nLXNo
b3VsZC1ub3QtbWFrZS1hbWJpZ3VvdXMuanMKQEAgLTIsNCArMiw0IEBACiAvLyAgICAgICAgICAg
ICAgICB8ICAgICAgICAgICAgICAgIHwKIC8vICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg
ICAgdgogLy8gICBALT4gKEEpICotLS0tKy0tLS0+IChCKSAtLS0+IFtDXQotaW1wb3J0IHsgQSB9
IGZyb20gImNhY2hpbmctc2hvdWxkLW5vdC1tYWtlLWFtYmlndW91cy9tYWluLmpzIgoraW1wb3J0
IHsgQSB9IGZyb20gIi4vY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzL21haW4uanMi
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21vZHVsZXMvZGVmYXVsdC1lcnJvci9tYWluLmpzIGIvSlNU
ZXN0cy9tb2R1bGVzL2RlZmF1bHQtZXJyb3IvbWFpbi5qcwppbmRleCBkYWFiMTM1OTE4MzY1NTgy
Njg4ZjU4OGMxYTllNTNiMTc1NjRiNDI2Li41ZmJlNDQ0Y2UzOTQxZTE0ZGJlOTQ2ZjYwMTQ5ZDBh
ZDJhODZjMWYyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL21vZHVsZXMvZGVmYXVsdC1lcnJvci9tYWlu
LmpzCisrKyBiL0pTVGVzdHMvbW9kdWxlcy9kZWZhdWx0LWVycm9yL21haW4uanMKQEAgLTEgKzEg
QEAKLWltcG9ydCAiQSI7CitpbXBvcnQgIi4vQSI7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21vZHVs
ZXMvZXhlY3V0aW9uLW9yZGVyLWN5Y2xpYy81LmpzIGIvSlNUZXN0cy9tb2R1bGVzL2V4ZWN1dGlv
bi1vcmRlci1jeWNsaWMvNS5qcwppbmRleCBhMWRlZWY5MmQxMmY1YWJjNjg2YTMxOGMyYmFhNDk4
YmY2NDgxZThmLi5iMmQ0NTgwNWU5N2Y0NWMyMWNmZDUwYTliZmZhZmZhNDM3MmQ3MTBiIDEwMDY0
NAotLS0gYS9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9uLW9yZGVyLWN5Y2xpYy81LmpzCisrKyBi
L0pTVGVzdHMvbW9kdWxlcy9leGVjdXRpb24tb3JkZXItY3ljbGljLzUuanMKQEAgLTEsNSArMSw1
IEBACi1pbXBvcnQgIjMuanMiCi1pbXBvcnQgIjQuanMiCitpbXBvcnQgIi4vMy5qcyIKK2ltcG9y
dCAiLi80LmpzIgogCiB2YXIgZ2xvYmFsID0gKEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKSgpOwog
aWYgKGdsb2JhbC5jb3VudCAhPT0gNCkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbW9kdWxlcy9leGVj
dXRpb24tb3JkZXItZGFnLzUuanMgYi9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9uLW9yZGVyLWRh
Zy81LmpzCmluZGV4IGEzM2I2M2NmNTRjYTdlNTkzYzNiYjcxYTA2OTdmNmI4NTk2M2JlYzUuLjdk
MTEwMjUwZWI5MjNmNTM2M2FiZGU2OWY5NDEzYWY4YWIzYzA2M2MgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvbW9kdWxlcy9leGVjdXRpb24tb3JkZXItZGFnLzUuanMKKysrIGIvSlNUZXN0cy9tb2R1bGVz
L2V4ZWN1dGlvbi1vcmRlci1kYWcvNS5qcwpAQCAtMSw1ICsxLDUgQEAKLWltcG9ydCAiNC5qcyIK
LWltcG9ydCAiMS5qcyIKK2ltcG9ydCAiLi80LmpzIgoraW1wb3J0ICIuLzEuanMiCiAKIHZhciBn
bG9iYWwgPSAoRnVuY3Rpb24oInJldHVybiB0aGlzIikpKCk7CiBpZiAoZ2xvYmFsLmNvdW50ICE9
PSA0KQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb2R1bGVzL2V4ZWN1dGlvbi1vcmRlci10cmVlLzUu
anMgYi9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9uLW9yZGVyLXRyZWUvNS5qcwppbmRleCBhMWRl
ZWY5MmQxMmY1YWJjNjg2YTMxOGMyYmFhNDk4YmY2NDgxZThmLi5iMmQ0NTgwNWU5N2Y0NWMyMWNm
ZDUwYTliZmZhZmZhNDM3MmQ3MTBiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0
aW9uLW9yZGVyLXRyZWUvNS5qcworKysgYi9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9uLW9yZGVy
LXRyZWUvNS5qcwpAQCAtMSw1ICsxLDUgQEAKLWltcG9ydCAiMy5qcyIKLWltcG9ydCAiNC5qcyIK
K2ltcG9ydCAiLi8zLmpzIgoraW1wb3J0ICIuLzQuanMiCiAKIHZhciBnbG9iYWwgPSAoRnVuY3Rp
b24oInJldHVybiB0aGlzIikpKCk7CiBpZiAoZ2xvYmFsLmNvdW50ICE9PSA0KQpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9tb2R1bGVzL2luZGlyZWN0LWV4cG9ydC1lcnJvci9pbmRpcmVjdC1leHBvcnQt
ZGVmYXVsdC0yLmpzIGIvSlNUZXN0cy9tb2R1bGVzL2luZGlyZWN0LWV4cG9ydC1lcnJvci9pbmRp
cmVjdC1leHBvcnQtZGVmYXVsdC0yLmpzCmluZGV4IGMxNzdiMTQzOTQ1MGNkMmFmMzJjZTI5ZGI2
ZjdjNzdmZWQwYzY1ZjYuLmQ1ZjUxODI3N2QwNTZiY2EyMTc2OThkYjIyZDZjYjEwNGNkOTM5ZjAg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvbW9kdWxlcy9pbmRpcmVjdC1leHBvcnQtZXJyb3IvaW5kaXJl
Y3QtZXhwb3J0LWRlZmF1bHQtMi5qcworKysgYi9KU1Rlc3RzL21vZHVsZXMvaW5kaXJlY3QtZXhw
b3J0LWVycm9yL2luZGlyZWN0LWV4cG9ydC1kZWZhdWx0LTIuanMKQEAgLTEgKzEgQEAKLWV4cG9y
dCAqIGZyb20gImluZGlyZWN0LWV4cG9ydC1kZWZhdWx0LTMuanMiCitleHBvcnQgKiBmcm9tICIu
L2luZGlyZWN0LWV4cG9ydC1kZWZhdWx0LTMuanMiCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21vZHVs
ZXMvbmFtZXNwYWNlLWFtYmlndW91cy9hbWJpZ3VvdXMtMi5qcyBiL0pTVGVzdHMvbW9kdWxlcy9u
YW1lc3BhY2UtYW1iaWd1b3VzL2FtYmlndW91cy0yLmpzCmluZGV4IDc4MDkzZDQ2NmQwYzhhNWQ4
OTI4MDgyMTI5ZWU5NGZlZmZjMTJkOTUuLmMxYzNlZDc5YWNmMThiM2YyNmM3Mjg3NzM2ZGUxYTdm
OGY0ODMyMGMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvbW9kdWxlcy9uYW1lc3BhY2UtYW1iaWd1b3Vz
L2FtYmlndW91cy0yLmpzCisrKyBiL0pTVGVzdHMvbW9kdWxlcy9uYW1lc3BhY2UtYW1iaWd1b3Vz
L2FtYmlndW91cy0yLmpzCkBAIC0xLDIgKzEsMiBAQAotZXhwb3J0ICogZnJvbSAiYW1iaWd1b3Vz
LTMuanMiCi1leHBvcnQgKiBmcm9tICJhbWJpZ3VvdXMtNC5qcyIKK2V4cG9ydCAqIGZyb20gIi4v
YW1iaWd1b3VzLTMuanMiCitleHBvcnQgKiBmcm9tICIuL2FtYmlndW91cy00LmpzIgpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9tb2R1bGVzL25hbWVzcGFjZS1hbWJpZ3VvdXMvYW1iaWd1b3VzLmpzIGIv
SlNUZXN0cy9tb2R1bGVzL25hbWVzcGFjZS1hbWJpZ3VvdXMvYW1iaWd1b3VzLmpzCmluZGV4IGQy
ODkyZWI5ZjdjNDI5Nzk1NDQ1NWU0MWFkNDA4MjlmODEwN2YyN2EuLjNmZDRmNmQ0MmZiNDcyNzlm
ZTQ5Yzg3OWYzNjYzOTY4MWM2NDgwYTEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvbW9kdWxlcy9uYW1l
c3BhY2UtYW1iaWd1b3VzL2FtYmlndW91cy5qcworKysgYi9KU1Rlc3RzL21vZHVsZXMvbmFtZXNw
YWNlLWFtYmlndW91cy9hbWJpZ3VvdXMuanMKQEAgLTEgKzEgQEAKLWltcG9ydCAqIGFzIG5hbWVz
cGFjZSBmcm9tICJhbWJpZ3VvdXMtMi5qcyIKK2ltcG9ydCAqIGFzIG5hbWVzcGFjZSBmcm9tICIu
L2FtYmlndW91cy0yLmpzIgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb2R1bGVzL25hbWVzcGFjZS1y
ZS1leHBvcnQuanMgYi9KU1Rlc3RzL21vZHVsZXMvbmFtZXNwYWNlLXJlLWV4cG9ydC5qcwppbmRl
eCA5Yzc0ZTYxMmQ0N2U3NWJkOTI3NDg2ZGFlNTExYzkwODlmYzMxZWQ1Li5iMGM3NWI1OTQ5NTBj
ZmQ2NDRhZWVlOWRmMDY5ODZmZjUzMDRmNjE3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL21vZHVsZXMv
bmFtZXNwYWNlLXJlLWV4cG9ydC5qcworKysgYi9KU1Rlc3RzL21vZHVsZXMvbmFtZXNwYWNlLXJl
LWV4cG9ydC5qcwpAQCAtMSArMSBAQAotaW1wb3J0ICJuYW1lc3BhY2UtcmUtZXhwb3J0L25hbWVz
cGFjZS1yZS1leHBvcnQuanMiOworaW1wb3J0ICIuL25hbWVzcGFjZS1yZS1leHBvcnQvbmFtZXNw
YWNlLXJlLWV4cG9ydC5qcyI7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21vZHVsZXMvdW5jYWNoZWFi
bGUtd2hlbi1zZWUtc3Rhci5qcyBiL0pTVGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNl
ZS1zdGFyLmpzCmluZGV4IDQxOTJiNTE3ZmFlODlhYzMzNTA5MGI1NTZmZGM5NWI1OTg4YzQzODYu
Ljc1MDI5NjRhODBhNzdiY2M4MzQ3ZmQ3NzY1NjI2YjExZmM4MWZjZWMgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyLmpzCisrKyBiL0pTVGVzdHMv
bW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyLmpzCkBAIC05LDUgKzksNSBAQAogLy8g
ICAgICAgICAgICAgICAgIHwKIC8vICAgICAgICAgICAgICAgICBACiAKLWltcG9ydCAidW5jYWNo
ZWFibGUtd2hlbi1zZWUtc3Rhci9tYWluMS5qcyIKLWltcG9ydCAidW5jYWNoZWFibGUtd2hlbi1z
ZWUtc3Rhci9tYWluMi5qcyIKK2ltcG9ydCAiLi91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL21h
aW4xLmpzIgoraW1wb3J0ICIuL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvbWFpbjIuanMiCmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0
aW5nLTIuanMgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0
aW5nLTIuanMKaW5kZXggZmNmZGRmNDk0OTczYzY2NDUzNmIwNzE1ZTkxMGI1NjY2YzlkMzMxZC4u
YTIwYWM1NzNjYzdkZjFmZDA4OTI4ZjYxMDUzM2FkY2VjNjhlMGE0MCAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy0yLmpzCisrKyBi
L0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMi5qcwpA
QCAtOCw4ICs4LDggQEAgZnVuY3Rpb24gYXNzZXJ0KGIpIHsKIHNldEdsb2JhbENvbnN0UmVkZWNs
YXJhdGlvblNob3VsZE5vdFRocm93KCk7IC8vIEFsbG93IGR1cGxpY2F0ZSBjb25zdCBkZWNsYXJh
dGlvbnMgYXQgdGhlIGdsb2JhbCBsZXZlbC4KIAogZm9yIChsZXQgaSA9IDA7IGkgPCAxMDA7IGkr
KykgewotICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9maXJz
dC5qcyIpOworICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9m
aXJzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKICAgICBhc3NlcnQoZm9vID09PSAyMCk7Ci0g
ICAgbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL3NlY29uZC5qcyIp
OworICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9zZWNvbmQu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAgICAgYXNzZXJ0KGZvbyA9PT0gNDApOwogfQpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGlu
Zy0zLmpzIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGlu
Zy0zLmpzCmluZGV4IDExNzdjYjk1ODExMzA3YmI2NjdkMzkwYzY5YWNkZTcyMmY3MWU0NGIuLjEw
MjQwOTZjZTFiMzViZjIyMGYwYTVhMTkwYTExOTI1OWY0OTY3MTggMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMy5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTMuanMKQEAg
LTcsMTEgKzcsMTEgQEAgZnVuY3Rpb24gYXNzZXJ0KGIpIHsKIAogc2V0R2xvYmFsQ29uc3RSZWRl
Y2xhcmF0aW9uU2hvdWxkTm90VGhyb3coKTsgLy8gQWxsb3cgZHVwbGljYXRlIGNvbnN0IGRlY2xh
cmF0aW9ucyBhdCB0aGUgZ2xvYmFsIGxldmVsLgogCi1sb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRl
Y2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiKTsKK2xvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVj
bGFyYXRpb24tc2V0dGluZy9maXJzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGFzc2VydChm
b28gPT09IDIwKTsKIGxldCB0aHJldyA9IGZhbHNlOwogdHJ5IHsKLSAgICBsb2FkKCIuL2dsb2Jh
bC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvc3RyaWN0LmpzIik7IC8vIFdlIGlnbm9yZSB0
aGUgc2V0dGluZyBhbmQgYWx3YXlzIHRocm93IGFuIGVycm9yIHdoZW4gaW4gc3RyaWN0IG1vZGUh
CisgICAgbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL3N0cmljdC5q
cyIsICJjYWxsZXIgcmVsYXRpdmUiKTsgLy8gV2UgaWdub3JlIHRoZSBzZXR0aW5nIGFuZCBhbHdh
eXMgdGhyb3cgYW4gZXJyb3Igd2hlbiBpbiBzdHJpY3QgbW9kZSEKIH0gY2F0Y2goZSkgewogICAg
IHRocmV3ID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25z
dC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNC5qcyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25z
dC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNC5qcwppbmRleCBkOTZhM2Q2ZTJlNTNhMTZjMjI3OTkx
YmFmM2U2ZjdmNGUxMjVhMTMyLi4xZmY3ZDc2YjI3OTIyZjIyZWZlYzcwZmMwZTkyYTUxMDY1NTJh
NzMwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlv
bi1zZXR0aW5nLTQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFy
YXRpb24tc2V0dGluZy00LmpzCkBAIC03LDExICs3LDExIEBAIGZ1bmN0aW9uIGFzc2VydChiKSB7
CiAKIHNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZE5vdFRocm93KCk7IC8vIEFsbG93
IGR1cGxpY2F0ZSBjb25zdCBkZWNsYXJhdGlvbnMgYXQgdGhlIGdsb2JhbCBsZXZlbC4KIAotbG9h
ZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2ZpcnN0LmpzIik7Citsb2Fk
KCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiLCAiY2FsbGVy
IHJlbGF0aXZlIik7CiBhc3NlcnQoZm9vID09PSAyMCk7CiBsZXQgdGhyZXcgPSBmYWxzZTsKIHRy
eSB7Ci0gICAgbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2xldC5q
cyIpOyAvLyBSZWRlY2xhcmF0aW9uIGEgJ2xldCcgdmFyaWFibGUgc2hvdWxkIHRocm93IGJlY2F1
c2UgdGhpcyBkb2Vzbid0IGJyZWFrIGJhY2t3YXJkcyBjb21wYXQuCisgICAgbG9hZCgiLi9nbG9i
YWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2xldC5qcyIsICJjYWxsZXIgcmVsYXRpdmUi
KTsgLy8gUmVkZWNsYXJhdGlvbiBhICdsZXQnIHZhcmlhYmxlIHNob3VsZCB0aHJvdyBiZWNhdXNl
IHRoaXMgZG9lc24ndCBicmVhayBiYWNrd2FyZHMgY29tcGF0LgogfSBjYXRjaChlKSB7CiAgICAg
dGhyZXcgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0
LXJlZGVjbGFyYXRpb24tc2V0dGluZy01LmpzIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0
LXJlZGVjbGFyYXRpb24tc2V0dGluZy01LmpzCmluZGV4IGUzZWEwOTE4MTRjZGJhMGNjNGQwZTM4
NDQyMDc1NmNiNTZlYmUwZGIuLmZiMTIzZDYyNjMwZTc3NTBhNzA1ODU1ZDAwZDBlMmZhYmEzMzM3
NGMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9u
LXNldHRpbmctNS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJh
dGlvbi1zZXR0aW5nLTUuanMKQEAgLTcsMTEgKzcsMTEgQEAgZnVuY3Rpb24gYXNzZXJ0KGIpIHsK
IAogc2V0R2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uU2hvdWxkTm90VGhyb3coKTsgLy8gQWxsb3cg
ZHVwbGljYXRlIGNvbnN0IGRlY2xhcmF0aW9ucyBhdCB0aGUgZ2xvYmFsIGxldmVsLgogCi1sb2Fk
KCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvbGV0LmpzIik7Citsb2FkKCIu
L2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvbGV0LmpzIiwgImNhbGxlciByZWxh
dGl2ZSIpOwogYXNzZXJ0KGZvbyA9PT0gNTApOwogbGV0IHRocmV3ID0gZmFsc2U7CiB0cnkgewot
ICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9maXJzdC5qcyIp
OyAvLyBSZWRlY2xhcmF0aW9uIG9mIGEgJ2xldCcgdG8gJ2NvbnN0JyBzaG91bGQgYWx3YXlzIHRo
cm93IGJlY2F1c2UgaXQgaXNuJ3QgYnJlYWtpbmcgYmFja3dhcmRzIGNvbXBhdC4KKyAgICBsb2Fk
KCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiLCAiY2FsbGVy
IHJlbGF0aXZlIik7IC8vIFJlZGVjbGFyYXRpb24gb2YgYSAnbGV0JyB0byAnY29uc3QnIHNob3Vs
ZCBhbHdheXMgdGhyb3cgYmVjYXVzZSBpdCBpc24ndCBicmVha2luZyBiYWNrd2FyZHMgY29tcGF0
LgogfSBjYXRjaChlKSB7CiAgICAgdGhyZXcgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy5qcyBiL0pTVGVzdHMv
c3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcuanMKaW5kZXggYWVkMWI0
MWM0YWEzNjhlYWE5MGQyNmQ5NWNjM2E0M2VjM2NjZDBlMi4uNGM5NDNkZTYzYTY4ZWNiMjU4NWRm
N2JhODdhZTI2Zjk3OGQ4NjhjOCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNv
bnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwt
Y29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLmpzCkBAIC03LDcgKzcsNyBAQCBmdW5jdGlvbiBh
c3NlcnQoYikgewogCiBzZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGROb3RUaHJvdygp
OyAvLyBBbGxvdyBkdXBsaWNhdGUgY29uc3QgZGVjbGFyYXRpb25zIGF0IHRoZSBnbG9iYWwgbGV2
ZWwuCiAKLWxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9maXJzdC5q
cyIpOworbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2ZpcnN0Lmpz
IiwgImNhbGxlciByZWxhdGl2ZSIpOwogYXNzZXJ0KGZvbyA9PT0gMjApOwotbG9hZCgiLi9nbG9i
YWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL3NlY29uZC5qcyIpOworbG9hZCgiLi9nbG9i
YWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL3NlY29uZC5qcyIsICJjYWxsZXIgcmVsYXRp
dmUiKTsKIGFzc2VydChmb28gPT09IDQwKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2ds
b2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2dsb2Jh
bC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS5qcwppbmRleCA2ZWMyODdiNmQxNjA0M2Y4OGFk
MWY4ZWRjYjlhOTdkMjZmN2M3MDlkLi41MTYzMzhjMTZkOTNhOTVlYWQ4NGQ5Y2ZhNTBjYmQ1YmUz
OWU4ZWRhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xh
cmUtdmFyaWFibGUuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtcmVkZWNs
YXJlLXZhcmlhYmxlLmpzCkBAIC0zMCwzNSArMzAsMzUgQEAgZnVuY3Rpb24gYXNzZXJ0UHJvcGVy
RXJyb3IoZSkgewogYXNzZXJ0RXhwZWN0YXRpb25zKCk7CiAKIHRyeSB7Ci0gICAgbG9hZCgiLi9t
dWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvZmly
c3QuanMiKTsKKyAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2Fs
LXJlZGVjbGFyZS12YXJpYWJsZS9maXJzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIH0gY2F0
Y2goZSkgewogICAgIGFzc2VydFByb3BlckVycm9yKGUpOwogfQogYXNzZXJ0RXhwZWN0YXRpb25z
KCk7CiAKIHRyeSB7Ci0gICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4
aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvc2Vjb25kLmpzIik7CisgICAgbG9hZCgiLi9tdWx0aXBs
ZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvc2Vjb25kLmpz
IiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRjaChlKSB7CiAgICAgYXNzZXJ0UHJvcGVyRXJy
b3IoZSk7CiB9CiBhc3NlcnRFeHBlY3RhdGlvbnMoKTsKIAogdHJ5IHsKLSAgICBsb2FkKCIuL211
bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS90aGly
ZC5qcyIpOworICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwt
cmVkZWNsYXJlLXZhcmlhYmxlL3RoaXJkLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRj
aChlKSB7CiAgICAgYXNzZXJ0UHJvcGVyRXJyb3IoZSk7CiB9CiBhc3NlcnRFeHBlY3RhdGlvbnMo
KTsKIAogdHJ5IHsKLSAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhp
Y2FsLXJlZGVjbGFyZS12YXJpYWJsZS9mb3VydGguanMiKTsKKyAgICBsb2FkKCIuL211bHRpcGxl
LWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9mb3VydGguanMi
LCAiY2FsbGVyIHJlbGF0aXZlIik7CiB9IGNhdGNoKGUpIHsKICAgICBhc3NlcnRQcm9wZXJFcnJv
cihlKTsKIH0KIGFzc2VydEV4cGVjdGF0aW9ucygpOwogCiB0cnkgewotICAgIGxvYWQoIi4vbXVs
dGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL2ZpZnRo
LmpzIik7CisgICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1y
ZWRlY2xhcmUtdmFyaWFibGUvZmlmdGguanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiB9IGNhdGNo
KGUpIHsKICAgICBhc3NlcnRQcm9wZXJFcnJvcihlKTsKIH0KQEAgLTcwLDcgKzcwLDcgQEAgYXNz
ZXJ0RXhwZWN0YXRpb25zKCk7CiB0cnkgewogICAgIHNlbnRpbmVsID0gImJhZCI7CiAgICAgYXNz
ZXJ0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcywgImdsb2JhbFByb3BlcnR5
IikuY29uZmlndXJhYmxlKTsKLSAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2Jh
bC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9zaXh0aC5qcyIpOworICAgIGxvYWQoIi4vbXVs
dGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL3NpeHRo
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRjaChlKSB7CiAgICAgYXNzZXJ0KGZhbHNl
KTsKIH0KQEAgLTc5LDcgKzc5LDcgQEAgYXNzZXJ0RXhwZWN0YXRpb25zKCk7CiB0cnkgewogICAg
IHNlbnRpbmVsID0gImJhZCI7CiAgICAgYXNzZXJ0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IodGhpcywgIkFycmF5IikuY29uZmlndXJhYmxlKTsKLSAgICBsb2FkKCIuL211bHRpcGxl
LWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9zZXZlbnRoLmpz
Iik7CisgICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRl
Y2xhcmUtdmFyaWFibGUvc2V2ZW50aC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIH0gY2F0Y2go
ZSkgewogICAgIGFzc2VydChmYWxzZSk7CiB9CkBAIC04OCw3ICs4OCw3IEBAIGFzc2VydEV4cGVj
dGF0aW9ucygpOwogdHJ5IHsKICAgICBzZW50aW5lbCA9ICJiYWQiOwogICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh0aGlzLCAnZm9vJywge3ZhbHVlOiA1LCBjb25maWd1cmFibGU6IHRydWUsIHdy
aXRhYmxlOiB0cnVlfSk7Ci0gICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwt
bGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvZWlnaHRoLmpzIik7CisgICAgbG9hZCgiLi9tdWx0
aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvZWlnaHRo
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRjaChlKSB7CiAgICAgYXNzZXJ0KGZhbHNl
KTsKIH0KQEAgLTk2LDcgKzk2LDcgQEAgYXNzZXJ0RXhwZWN0YXRpb25zKCk7CiAKIHRyeSB7CiAg
ICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdiYXInLCB7dmFsdWU6IDUsIGNvbmZpZ3Vy
YWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlfSk7Ci0gICAgbG9hZCgiLi9tdWx0aXBsZS1maWxl
cy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvbmludGguanMiKTsKKyAg
ICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12
YXJpYWJsZS9uaW50aC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIH0gY2F0Y2goZSkgewogICAg
IGFzc2VydFByb3BlckVycm9yKGUpOwogfQpAQCAtMTA2LDcgKzEwNiw3IEBAIGFzc2VydChlcnJv
ckNvdW50ID09PSA2KTsKIAogdHJ5IHsKICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywg
J3pvbycsIHt2YWx1ZTogdW5kZWZpbmVkLCBjb25maWd1cmFibGU6IGZhbHNlLCB3cml0YWJsZTog
dHJ1ZX0pOwotICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwt
cmVkZWNsYXJlLXZhcmlhYmxlL3RlbnRoLmpzIik7CisgICAgbG9hZCgiLi9tdWx0aXBsZS1maWxl
cy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvdGVudGguanMiLCAiY2Fs
bGVyIHJlbGF0aXZlIik7CiB9IGNhdGNoKGUpIHsKICAgICBhc3NlcnRQcm9wZXJFcnJvcihlKTsK
IH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXJlZGVmaW5lLWNv
bnN0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtcmVkZWZpbmUtY29uc3QuanMK
aW5kZXggMWM2YmFmN2MzNzIyNTJjYjBjOTdiMzVmYzg0NDRmODVjMDY2ZTkxYi4uOTRhYzRhZDM5
NDI1MjA4NjRiMGQ4NjIzZTc1Y2MwOTI3Yzk0YmFiZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJl
c3MvZ2xvYmFsLWxleGljYWwtcmVkZWZpbmUtY29uc3QuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mv
Z2xvYmFsLWxleGljYWwtcmVkZWZpbmUtY29uc3QuanMKQEAgLTEsMiArMSwyIEBACi1sb2FkKCIu
L211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVmaW5lLWNvbnN0L2ZpcnN0
LmpzIik7Ci1sb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVm
aW5lLWNvbnN0L3NlY29uZC5qcyIpOworbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9i
YWwtbGV4aWNhbC1yZWRlZmluZS1jb25zdC9maXJzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
K2xvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWZpbmUtY29u
c3Qvc2Vjb25kLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3MvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdGR6LmpzIGIvSlNUZXN0cy9zdHJlc3MvZ2xv
YmFsLWxleGljYWwtdmFyaWFibGUtdGR6LmpzCmluZGV4IGU4OGNmZDZhMjU2MjM3ZmUzYzJkNTdm
ZDExZDUwMDE1NjYwODlhMGEuLmUyYTFlMTcxYzE3M2VmMGIxYjZhZmVkODM2YWE0YjM1MmVmZDVl
ZmMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXRk
ei5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS10ZHouanMK
QEAgLTEsMiArMSwyIEBACi1sb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhp
Y2FsLXZhcmlhYmxlLXRkei9maXJzdC5qcyIpOwotbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0
cy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS10ZHovc2Vjb25kLmpzIik7Citsb2FkKCIuL211bHRp
cGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXRkei9maXJzdC5qcyIsICJj
YWxsZXIgcmVsYXRpdmUiKTsKK2xvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxl
eGljYWwtdmFyaWFibGUtdGR6L3NlY29uZC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXVucmVzb2x2ZWQt
cHJvcGVydHkuanMgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS11bnJl
c29sdmVkLXByb3BlcnR5LmpzCmluZGV4IGQ2MjIxNDU0NDFiYTAxZGNiZWNjNThiZmI5ZDllZjhj
YjA3NjNkZGUuLmRlMTkzOGM2MGUwOTMwZjJkMmM5ZTVmZjFkNzRiNzM3YWYwMjBlODcgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXVucmVzb2x2ZWQt
cHJvcGVydHkuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUt
dW5yZXNvbHZlZC1wcm9wZXJ0eS5qcwpAQCAtMSwyICsxLDIgQEAKLWxvYWQoIi4vbXVsdGlwbGUt
ZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdW5yZXNvbHZlZC1wcm9wZXJ0eS9m
aXJzdC5qcyIpOwotbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC12
YXJpYWJsZS11bnJlc29sdmVkLXByb3BlcnR5L3NlY29uZC5qcyIpOworbG9hZCgiLi9tdWx0aXBs
ZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS11bnJlc29sdmVkLXByb3BlcnR5
L2ZpcnN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOworbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10
ZXN0cy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS11bnJlc29sdmVkLXByb3BlcnR5L3NlY29uZC5q
cyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dsb2Jh
bC1wcm9wZXJ0eS1pbnRvLXZhcmlhYmxlLWdldC1mcm9tLXNjb3BlLmpzIGIvSlNUZXN0cy9zdHJl
c3MvZ2xvYmFsLXByb3BlcnR5LWludG8tdmFyaWFibGUtZ2V0LWZyb20tc2NvcGUuanMKaW5kZXgg
OTQ3YzRlOGYxMjIwZDYxODgwZjVjZGM0MGI2YWVjMjk5Y2FkYTExYS4uNDFkZWU1OTViNjI0OWM4
M2QyYWU2NTJiMGRlYjQwOTU4MTNiMDJhNCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvZ2xv
YmFsLXByb3BlcnR5LWludG8tdmFyaWFibGUtZ2V0LWZyb20tc2NvcGUuanMKKysrIGIvSlNUZXN0
cy9zdHJlc3MvZ2xvYmFsLXByb3BlcnR5LWludG8tdmFyaWFibGUtZ2V0LWZyb20tc2NvcGUuanMK
QEAgLTYsNyArNiw3IEBACiAvLyBub0lubGluZSBhcyB0aGUgY3VycmVudCBnbG9iYWwgb2JqZWN0
IHdvdWxkIG5vdCBoYXZlIG5vSW5saW5lIGFzIGEgcHJvcGVydHkKIC8vIGF0IHRoYXQgcG9pbnQg
YW5kIHdlIHdvdWxkIGF0dGVtcHQgdG8gYWNjZXNzIHRoZSB2YWx1ZSBhdCBhbiBpbnZhbGlkIG9m
ZnNldC4KIAotbG9hZCgicmVzb3VyY2VzL3N0YW5kYWxvbmUtcHJlLmpzIik7Citsb2FkKCJyZXNv
dXJjZXMvc3RhbmRhbG9uZS1wcmUuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIG5vSW5saW5l
KCk7CiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2ltcG9ydC13aXRoLWVtcHR5LXN0cmlu
Zy5qcyBiL0pTVGVzdHMvc3RyZXNzL2ltcG9ydC13aXRoLWVtcHR5LXN0cmluZy5qcwppbmRleCBk
MTc0ZWM5ZWNmNTE4YzNmZDRiMDJlNzM2NDAxMmExYTYxZGIzODQzLi5hYWFkZTk4OTYzYjM4ZGU1
NmJkZmU1Nzc5ZTJhODlkNzYzMDUzZTA0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9pbXBv
cnQtd2l0aC1lbXB0eS1zdHJpbmcuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvaW1wb3J0LXdpdGgt
ZW1wdHktc3RyaW5nLmpzCkBAIC0xLDIgKzEsMiBAQAotaW1wb3J0KCIiKS50aGVuKCR2bS5hYm9y
dCwgZnVuY3Rpb24gKCkgeworaW1wb3J0KCIiKS50aGVuKCR2bS5hYm9ydCwgZnVuY3Rpb24gKGUp
IHsKIH0pOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvanNvbnAtbGl0ZXJhbC1wYXJzZXIt
c2VtaWNvbG9uLWlzLW5vdC1hc3NpZ25tZW50LmpzIGIvSlNUZXN0cy9zdHJlc3MvanNvbnAtbGl0
ZXJhbC1wYXJzZXItc2VtaWNvbG9uLWlzLW5vdC1hc3NpZ25tZW50LmpzCmluZGV4IDgxYWE2MmFl
Y2JmY2Y1NmJlZmRjOWE0NWJjNDEyNmUyMzkxMjk2MzYuLmRhYWFlMWJiZWU5ZGE5MWVlODgwYzg0
YTEyNzhiMTNlNWM3Y2FmMDQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2pzb25wLWxpdGVy
YWwtcGFyc2VyLXNlbWljb2xvbi1pcy1ub3QtYXNzaWdubWVudC5qcworKysgYi9KU1Rlc3RzL3N0
cmVzcy9qc29ucC1saXRlcmFsLXBhcnNlci1zZW1pY29sb24taXMtbm90LWFzc2lnbm1lbnQuanMK
QEAgLTEsNCArMSw0IEBACiB4ID0gdW5kZWZpbmVkOwotbG9hZCgiLi9yZXNvdXJjZXMvbGl0ZXJh
bC1wYXJzZXItdGVzdC1jYXNlLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9saXRlcmFsLXBhcnNl
ci10ZXN0LWNhc2UuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBpZiAoeCAhPT0gdW5kZWZpbmVk
KQogICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJlc3VsdCIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3Mvb3BfYWRkLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfYWRkLmpzCmluZGV4IDZiNjEz
ZmI2NjY4ODY5MzQwYmU2NmUwNDUzOTMyZDkyMThiMTIzZmIuLjRkZmJjMmQzZjNmMWIwNmQwNWVl
MmEyOTczZGI2MDMxM2Q3NTkwODcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX2FkZC5q
cworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9hZGQuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBh
bGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJ
ZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZv
ciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFy
eS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJj
YWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZp
Z3VyYXRpb24gZGF0YToKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX2JpdGFuZC5qcyBi
L0pTVGVzdHMvc3RyZXNzL29wX2JpdGFuZC5qcwppbmRleCA0NDU1NWYxOTY2ODllNGZkM2M1OWEz
NjBmNDY2OTQ0MGYxNzQ5NTIyLi5mN2JlNGRhMDg4ODI4YjNkMmNiNWZkMDJiMGI5YTAyZTU3ZTBm
Y2U3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRhbmQuanMKKysrIGIvSlNUZXN0
cy9zdHJlc3Mvb3BfYml0YW5kLmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2Vs
bCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3
aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5n
IG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5q
cyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRh
dGE6CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRvci5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL29wX2JpdG9yLmpzCmluZGV4IGMxOTg0OTBlYjQ1NTVlNzJiNDRiZThlZDAyODU1ZDk5MDZm
ODIzNzkuLjUxNDIxNzI4Y2VmODc3NzdmMjk5ZTdmN2ZlNTkyYWYxOWUzN2Q1YTUgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL29wX2JpdG9yLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX2Jp
dG9yLmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1v
ZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBl
cnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVl
ZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9y
ZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9vcF9iaXR4b3IuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9iaXR4b3Iu
anMKaW5kZXggMGZmOWYyNzI1NjM0MTMwNzg0ZDU2YWQ3ODBhZDFiZTgwNzgxNzk0Yy4uMTRmNjk1
NDYwOTVlM2Q5NTg1MWU2Nzk4YTliNTIxMzAzMjhjY2M2OSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9z
dHJlc3Mvb3BfYml0eG9yLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX2JpdHhvci5qcwpAQCAt
NCw3ICs0LDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0
ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUg
YmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9h
ZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2Jp
bmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3Mvb3BfZGl2LUNvbnN0VmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfZGl2LUNvbnN0VmFy
LmpzCmluZGV4IDQ1MDg2NTQzYWQ2MTJiYzQ0NzYwYmNjMzdlNjU0NWM3ZGU3OTdmOTUuLjhhNjg2
NDMxZmM5NWY0MjQ0ZWU4YjdiM2YyNGM5MmI5NDY5NWNiMjkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
c3RyZXNzL29wX2Rpdi1Db25zdFZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtQ29u
c3RWYXIuanMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3Qg
bW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8v
IGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBu
ZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIu
L3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTEyLDcg
KzEyLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5h
bWUgPSAiZGl2IjsKIHZhciBvcCA9ICIvIjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9w
LXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJj
YWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVz
dHMsIG9wTmFtZSwgb3AsICJDb25zdFZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL29wX2Rpdi1WYXJDb25zdC5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX2Rp
di1WYXJDb25zdC5qcwppbmRleCA5MWZmMmYxNGFkODk3N2U3ZDA0ZTU1YWE5MTAyYjQ3NmNmZjEy
MzliLi4zMzM1NjFiNTY0MDMwNTVlN2ExOGJiYThiNjJlYjY1YzFiZjE3YmNhIDEwMDY0NAotLS0g
YS9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFyQ29uc3QuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mv
b3BfZGl2LVZhckNvbnN0LmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwg
dGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxs
IHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9w
dGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIp
OworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZl
Iik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6
CkBAIC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7
CiB2YXIgb3BOYW1lID0gImRpdiI7CiB2YXIgb3AgPSAiLyI7CiAKLWxvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1
ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFy
eVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyQ29uc3QiLCB2YWx1ZXMsIHZhbHVlcyk7CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFyVmFyLmpzIGIvSlNUZXN0cy9zdHJl
c3Mvb3BfZGl2LVZhclZhci5qcwppbmRleCA4MjhhMjAzMDQ1ZDFjZWRlZWIwZTk0NDI0ZGRmYjJl
YTM4OGVhMTZlLi42NDliODA5OTUxNTI5OTI0YzI1MjljMzUyNzI5MzhmMDhhZjIxMDQ4IDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFyVmFyLmpzCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL29wX2Rpdi1WYXJWYXIuanMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxs
LCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdp
bGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcg
b3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0Lmpz
Iik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRp
dmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0
YToKQEAgLTEyLDcgKzEyLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMi
KTsKIHZhciBvcE5hbWUgPSAiZGl2IjsKIHZhciBvcCA9ICIvIjsKIAotbG9hZCgiLi9yZXNvdXJj
ZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZh
bHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmlu
YXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9sc2hpZnQtQ29uc3RWYXIuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9vcF9sc2hpZnQtQ29uc3RWYXIuanMKaW5kZXggYzBiMzk5NGM1OThiZDFmOWZiMDU2
NmUwNzcyMDY5MzljOWQyYzU5MS4uODc5MzU5ODJjNzFhZWUyMThkOTA3Y2Q4NjFiNWY2NjliMGFj
ZmE3MSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LUNvbnN0VmFyLmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL29wX2xzaGlmdC1Db25zdFZhci5qcwpAQCAtMyw3ICszLDcgQEAK
IC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2ls
ZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRl
c3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJj
ZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRl
c3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNl
cy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJsc2hpZnQiOwogdmFyIG9wID0g
Ijw8IjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgi
Li9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAog
dGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJDb25z
dFZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX2xz
aGlmdC1WYXJDb25zdC5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX2xzaGlmdC1WYXJDb25zdC5qcwpp
bmRleCAwZTMyYmE2OTJmMGVhODUyYTFkMDEwODQxYWU5MjM4ODc3YWQ4ZDVhLi5iZTM4NWNmY2Nm
NTRhNjA1MDk3MDQyOTExMmQyZGJhZTQ5ODlhMjE5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVz
cy9vcF9sc2hpZnQtVmFyQ29uc3QuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LVZh
ckNvbnN0LmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0
IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAv
LyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYg
bmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgi
Li9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8v
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3
ICsxMSw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BO
YW1lID0gImxzaGlmdCI7CiB2YXIgb3AgPSAiPDwiOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5h
cnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpz
IiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0
cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhckNvbnN0IiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LVZhclZhci5qcyBiL0pTVGVzdHMvc3RyZXNz
L29wX2xzaGlmdC1WYXJWYXIuanMKaW5kZXggODczNDliOGZlNDczOTA5ODRjYTk0ODMwYjc0NWQ4
NTE3MTNjMWI0OC4uNTM4MWZkNDI1YWZiMTQ3OTg1NDAzOTc3ZDEyMDk5MWZhZmYyNDkxZSAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LVZhclZhci5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy9vcF9sc2hpZnQtVmFyVmFyLmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdv
ZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90
LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVi
dWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3At
dGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVy
IHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0
aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10
ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gImxzaGlmdCI7CiB2YXIgb3AgPSAiPDwiOwogCi1sb2Fk
KCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9i
aW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwog
Z2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhclZhciIsIHZhbHVlcywg
dmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX21vZC1Db25zdFZhci5qcyBi
L0pTVGVzdHMvc3RyZXNzL29wX21vZC1Db25zdFZhci5qcwppbmRleCA0ODkxODhjZWQxYWE3MTI1
OGU5ZmVkMGE0NzMxZmIyMjVmZWVjYzYxLi5iYWVhN2U4YmE3M2RhNDlmNmY3Mjc2NzE0N2E2NzYw
OTcyYTc4ZDI2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9tb2QtQ29uc3RWYXIuanMK
KysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbW9kLUNvbnN0VmFyLmpzCkBAIC0zLDcgKzMsNyBAQAog
Ly8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxl
bnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVz
dC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNl
cy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3Qu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVz
dCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3IEBAIGxvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gIm1vZCI7CiB2YXIgb3AgPSAiJSI7
CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVz
b3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3Rz
ID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiQ29uc3RWYXIi
LCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9tb2QtVmFy
Q29uc3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tb2QtVmFyQ29uc3QuanMKaW5kZXggZjAzYTRk
NDA0YWVhZjdmMGNiM2ZlZjNkYzA2ZTVmZjUxNjZjNjU1NS4uMzkxYzIxYTY0NDA3ZmFjZjNkMzQw
ZThmN2FkZWE5MGU2MGQzZjEyNiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbW9kLVZh
ckNvbnN0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX21vZC1WYXJDb25zdC5qcwpAQCAtMyw3
ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJt
aW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmlu
YXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgi
Li9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFy
eS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBsb2FkKCIu
L3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJtb2QiOwogdmFy
IG9wID0gIiUiOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Cits
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwg
IlZhckNvbnN0IiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
b3BfbW9kLVZhclZhci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX21vZC1WYXJWYXIuanMKaW5kZXgg
MTM0MzZhOTdlMjA1NWY2ZTg2YzFhYTZkNTI3ZDRmOTRjM2Q4ZjE3Yy4uY2YwNTE5NGYzMDIzY2E1
NWRmYWZiNWU0MmNiOTE5YmE4NjUzMjgwOSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3Bf
bW9kLVZhclZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tb2QtVmFyVmFyLmpzCkBAIC0z
LDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRl
cm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBi
aW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2Fk
KCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmlu
YXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3IEBAIGxvYWQo
Ii4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gIm1vZCI7CiB2
YXIgb3AgPSAiJSI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsK
K2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZl
Iik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9w
LCAiVmFyVmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
b3BfbXVsLUNvbnN0VmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbXVsLUNvbnN0VmFyLmpzCmlu
ZGV4IDNkZTM2NGUxZmI5OTdmM2U0NzY0NmRhYTc3OWQ0YzJhZDkzMzY5ZGMuLmVjZjk4ZTIxYTBh
ZTYwOGM1NzY4NDRmNjg5ODQ3M2U5MjdkMmE3ZTMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNz
L29wX211bC1Db25zdFZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtQ29uc3RWYXIu
anMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxl
IHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9y
cy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQu
CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTEyLDcgKzEyLDcg
QEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAi
bXVsIjsKIHZhciBvcCA9ICIqIjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVl
cy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIg
cmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9w
TmFtZSwgb3AsICJDb25zdFZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL29wX211bC1WYXJDb25zdC5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX211bC1WYXJD
b25zdC5qcwppbmRleCA0OGUxZTc2NTQ5NzYwNjY3ZGFmNDZhYzJhMWJiMTZiZDc5MzYwMzljLi5j
OGZjZDA1ZGYyN2RlZDQ1MGRkODE3YWNhMDlmYzA4MDM3ZTZhYzkyIDEwMDY0NAotLS0gYS9KU1Rl
c3RzL3N0cmVzcy9vcF9tdWwtVmFyQ29uc3QuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbXVs
LVZhckNvbnN0LmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0
ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50
CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMg
aWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9h
ZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAK
IC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0x
Miw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIg
b3BOYW1lID0gIm11bCI7CiB2YXIgb3AgPSAiKiI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFy
eS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMi
LCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3Rz
KHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyQ29uc3QiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtVmFyVmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3Bf
bXVsLVZhclZhci5qcwppbmRleCA1ZTFjYzU4NzI4NWRlNGM1Y2ExMDNmZmUzODUyNmQxZWNhMDQz
YWVlLi5iNzc0ZWNhZGI3OTNmMmEwZjllYmYxMzJlNDc4MzZhMDdlNDUxZjk1IDEwMDY0NAotLS0g
YS9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtVmFyVmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29w
X211bC1WYXJWYXIuanMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlz
IHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJp
bnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9u
cyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Cits
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
IAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAg
LTEyLDcgKzEyLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZh
ciBvcE5hbWUgPSAibXVsIjsKIHZhciBvcCA9ICIqIjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmlu
YXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5q
cyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVz
dHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9uZWdhdGUuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9uZWdh
dGUuanMKaW5kZXggZDk4ZjA0ZGJjN2MwNWMwYzFlZGRhYTZmODBiNGFhZmFiNTgxNmUxMi4uNTVi
MDJkZmFjODMwM2NjYmEzODMyZmFlYjEyOTQ2YTAzMDVhYzQ3ZiAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9zdHJlc3Mvb3BfbmVnYXRlLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX25lZ2F0ZS5qcwpA
QCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2ls
bCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBT
ZWUgdW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1s
b2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy91
bmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3Mvb3BfcG9zdGRlYy5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX3Bvc3RkZWMuanMKaW5kZXgg
YjJlMWZhNzI5NzNjNmY1NzZkMTVhMzg4Mzk5ZDBlNjQwOTExOTk5YS4uNjI5Yjg1YmZlZDQzNDgx
NTZjNzg1N2Y2MDcxNDA3ZmUxMmZhOTdiNyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3Bf
cG9zdGRlYy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9wb3N0ZGVjLmpzCkBAIC0zLDcgKzMs
NyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0
ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSB1bmFyeS1v
cC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVz
b3VyY2VzL3VuYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3VuYXJ5LW9wLXRl
c3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8g
VGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9w
b3N0aW5jLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfcG9zdGluYy5qcwppbmRleCAwOGFhMzVkOWQw
ODhmMDk4NDhlYzBiMjA1MzRkYTc2YmQzMmJjYTlmLi4zZGZkMmU1YmQ5MGY1OWM1ZjQzMDk2ZmU0
MTRkNDJiOWIwYmRhNGJmIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9wb3N0aW5jLmpz
CisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX3Bvc3RpbmMuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJ
ZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5
LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIHVuYXJ5LW9wLXRlc3QuanMg
Zm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvdW5h
cnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdW5hcnktb3AtdGVzdC5qcyIsICJj
YWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZp
Z3VyYXRpb24gZGF0YToKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3ByZWRlYy5qcyBi
L0pTVGVzdHMvc3RyZXNzL29wX3ByZWRlYy5qcwppbmRleCBiOGM2NTYyN2ViZmMzYjZlNDEwZDg1
Mzg3OGMxZWIzYWQ3ODA0NDM1Li41YTljYjQ2ZDRhZjhlM2M1NGVjODgwNWU4MGFiZDFiZGEyMGMx
OWJlIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9wcmVkZWMuanMKKysrIGIvSlNUZXN0
cy9zdHJlc3Mvb3BfcHJlZGVjLmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2Vs
bCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3
aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSB1bmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcg
b3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL3VuYXJ5LW9wLXRlc3QuanMi
KTsKK2xvYWQoIi4vcmVzb3VyY2VzL3VuYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZl
Iik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9wcmVpbmMuanMgYi9KU1Rlc3RzL3N0cmVz
cy9vcF9wcmVpbmMuanMKaW5kZXggMjJmYjZlZTYxODdhZTY1NTRlM2UzZjUwODk0ZGVjMzNjZjE1
NzA1MS4uMWM3OTNkMTYzYzQ0MGUxNzlkYjdjOTMyZDNiNzJjY2YyZjRlMDc3NSAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9zdHJlc3Mvb3BfcHJlaW5jLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX3By
ZWluYy5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBt
b2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8g
ZXJyb3JzLiBTZWUgdW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVl
ZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jl
c291cmNlcy91bmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LUNvbnN0VmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3Bf
cnNoaWZ0LUNvbnN0VmFyLmpzCmluZGV4IGYwNTk5MzE0OWI0ZWU5YjQzNjBiNzY3Nzk0MjA5Njhh
ZWJjN2ZkN2YuLmY5OTk5MDAwY2ZmMjIxMGExNjUzZDQzYjlmNzBhOTA4OGM0ZmMwOTkgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1Db25zdFZhci5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy9vcF9yc2hpZnQtQ29uc3RWYXIuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwg
Z29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBu
b3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBk
ZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1v
cC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3Vy
YXRpb24gZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9w
LXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAicnNoaWZ0IjsKIHZhciBvcCA9ICI+PiI7CiAKLWxv
YWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107
CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiQ29uc3RWYXIiLCB2YWx1
ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQtVmFyQ29u
c3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQtVmFyQ29uc3QuanMKaW5kZXggMTAwY2Q5
YmFkNTVmZGQxODk5NTM0MTZkNTQ0MGUyZDNjMzEwMjZmZi4uYTVhYTA1MTkxYmZhODdmNzBkZjFi
ZGVlZTZmMzQ3NTNjYjYzYzI0ZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0
LVZhckNvbnN0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1WYXJDb25zdC5qcwpA
QCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2ls
bCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBT
ZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAot
bG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBs
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJyc2hp
ZnQiOwogdmFyIG9wID0gIj4+IjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVl
cy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIg
cmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9w
TmFtZSwgb3AsICJWYXJDb25zdCIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL29wX3JzaGlmdC1WYXJWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQt
VmFyVmFyLmpzCmluZGV4IDExNjY2MGQ1ODFlZjI1ZjhiNmY0MWViYzllYjYwMmIyYzE2NzZmMWIu
LjJmZThmOTdiMmIxODY3YWRmM2U1NjZmOGJjZGE5MTcwNzA4OTM2MmIgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL29wX3JzaGlmdC1WYXJWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3Bf
cnNoaWZ0LVZhclZhci5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRo
aXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBw
cmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRp
b25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsK
K2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpA
QCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwog
dmFyIG9wTmFtZSA9ICJyc2hpZnQiOwogdmFyIG9wID0gIj4+IjsKIAotbG9hZCgiLi9yZXNvdXJj
ZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZh
bHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmlu
YXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItQ29uc3RWYXIuanMgYi9KU1Rlc3RzL3N0
cmVzcy9vcF9zdWItQ29uc3RWYXIuanMKaW5kZXggYzhmYTFmZjBkYzE4YWU0ZWI0ZjcwMDE0NTEw
NWQ0OTc1NzJhMzg1YS4uZjMwMzQzNTI4NzMwNDE2ZjJhMDk1MzlhYzQxNDZlMmZhMjMzNjA3ZiAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLUNvbnN0VmFyLmpzCisrKyBiL0pTVGVz
dHMvc3RyZXNzL29wX3N1Yi1Db25zdFZhci5qcwpAQCAtNCw3ICs0LDcgQEAKIC8vIElmIGFsbCBn
b2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5v
dCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRl
YnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9w
LXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxl
ciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJh
dGlvbiBkYXRhOgpAQCAtMTIsNyArMTIsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3At
dGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJzdWIiOwogdmFyIG9wID0gIi0iOwogCi1sb2FkKCIu
L3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5h
cnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2Vu
ZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIkNvbnN0VmFyIiwgdmFsdWVzLCB2
YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLVZhckNvbnN0LmpzIGIv
SlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLVZhckNvbnN0LmpzCmluZGV4IDkxZTc0NTVmNDU3MDBkODNi
Y2VmNWU0NjczYzNhZGQ0OWQxNmJhYzIuLmYxZTU3NzQyOGRlMzM4OTI4ODRiNTdkZmY3ZTE4NjEy
M2FmMjM2MTIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3N1Yi1WYXJDb25zdC5qcwor
KysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItVmFyQ29uc3QuanMKQEAgLTQsNyArNCw3IEBACiAv
LyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVu
dGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0
LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5q
cyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0
IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTEyLDcgKzEyLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMv
YmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAic3ViIjsKIHZhciBvcCA9ICItIjsK
IAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMg
PSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJDb25zdCIs
IHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3N1Yi1WYXJW
YXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItVmFyVmFyLmpzCmluZGV4IDZiOWQxN2NlZjhh
MDE3OWEwZTYwMzVjNWZlZGFjMWFmYTEyMzZhZGYuLmQwZjhlOWUyMDBjMGQzZDU5ZjkyN2M2ZDM4
MDRhNTU3Yjk4OWUyOWMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3N1Yi1WYXJWYXIu
anMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLVZhclZhci5qcwpAQCAtNCw3ICs0LDcgQEAK
IC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2ls
ZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRl
c3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJj
ZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRl
c3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTIsNyArMTIsNyBAQCBsb2FkKCIuL3Jlc291cmNl
cy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJzdWIiOwogdmFyIG9wID0gIi0i
OwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jl
c291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0
cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhclZhciIs
IHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3Vyc2hpZnQt
Q29uc3RWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LUNvbnN0VmFyLmpzCmluZGV4
IGZkZWUwYmU2ZTk1MTdjMzBhYmVjZGI1NTc2ZjUxYmY3ODc1NzNkYmMuLmViNTE4NjA5ZGQ3OTk0
NThmY2JhZTExYzZmNTA0OWFiNjJhNjMwMjQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29w
X3Vyc2hpZnQtQ29uc3RWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC1Db25z
dFZhci5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBt
b2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8g
ZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5l
ZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4v
cmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyAr
MTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFt
ZSA9ICJ1cnNoaWZ0IjsKIHZhciBvcCA9ICI+Pj4iOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5h
cnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpz
IiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0
cyh0ZXN0cywgb3BOYW1lLCBvcCwgIkNvbnN0VmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC1WYXJDb25zdC5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL29wX3Vyc2hpZnQtVmFyQ29uc3QuanMKaW5kZXggOGI0YWNlZGFiYjM1ZTFiYjIzMWJmN2Yz
YjY5NDA5MzI3ODE4ODlkYy4uMjhkYTA1MDNlZDI5ZGExNzJiNWYxMjdmYzY4Y2UyZTk3MjhiYjRh
ZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC1WYXJDb25zdC5qcworKysg
Yi9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LVZhckNvbnN0LmpzCkBAIC0zLDcgKzMsNyBAQAog
Ly8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxl
bnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVz
dC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNl
cy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3Qu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVz
dCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3IEBAIGxvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gInVyc2hpZnQiOwogdmFyIG9wID0g
Ij4+PiI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQo
Ii4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAK
IHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFy
Q29uc3QiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF91
cnNoaWZ0LVZhclZhci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX3Vyc2hpZnQtVmFyVmFyLmpzCmlu
ZGV4IGNiMTRhZWRmNWZkMWE3NjZmMGI3YTljY2NhZTJkYWJkOTE5ZjE2NGYuLmI4NDAzN2EwMmMy
YjdiODEzNWY3NDE3MmVjMDY3NjlhMjlhM2I2NWIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNz
L29wX3Vyc2hpZnQtVmFyVmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX3Vyc2hpZnQtVmFy
VmFyLmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1v
ZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBl
cnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVl
ZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9y
ZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsx
MSw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1l
ID0gInVyc2hpZnQiOwogdmFyIG9wID0gIj4+PiI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFy
eS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMi
LCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3Rz
KHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyVmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMS5qcyBiL0pTVGVzdHMvc3RyZXNzL3Jl
Z3Jlc3MtMTU5Nzc5LTEuanMKaW5kZXggYjA3MTUxZDVhYTJlZTIwMDU4NWVkYWExOTI2MGE3Y2Vh
MjU5MjM1Ny4uZWU5ZmUyMDc3NDMyMGViNGI2MTczNzdjODM1NjM5ZWNiMTQwMGU1NiAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMS5qcworKysgYi9KU1Rlc3RzL3N0
cmVzcy9yZWdyZXNzLTE1OTc3OS0xLmpzCkBAIC0xMjkwLDcgKzEyOTAsNyBAQCBmdW5jdGlvbiBt
YWtlVXNlUmVncmVzc2lvblRlc3QoZCwgYikKICAgICAgICAgYnJlYWs7CiAgICAgICBkZWZhdWx0
OgogICAgICAgICAKLSAgICAgICAgcyArPSAiLyogcmVncmVzc2lvbi10ZXN0LWxvYWQgKi8gIiAr
ICJsb2FkKCIgKyBzaW1wbGVTb3VyY2UoZmlsZSkgKyAiKTsiOworICAgICAgICBzICs9ICIvKiBy
ZWdyZXNzaW9uLXRlc3QtbG9hZCAqLyAiICsgImxvYWQoIiArIHNpbXBsZVNvdXJjZShmaWxlKSAr
ICIsICJjYWxsZXIgcmVsYXRpdmUiKTsiOwogICAgICAgICBicmVhazsKICAgICAgIAogICAgIH0K
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5Nzc5LTIuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9yZWdyZXNzLTE1OTc3OS0yLmpzCmluZGV4IDU4NzllYjkxZmY3MWM3NTFlNTdkNDUy
MDUwOTVkMWQ0M2QzYjRmNDUuLjg5ZmJjZTA5NTIyYWQyZTViM2ExNDBmNzg3NGVlZDJkZmIyZGYx
MWUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5Nzc5LTIuanMKKysrIGIv
SlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMi5qcwpAQCAtMTI5MCw3ICsxMjkwLDcgQEAg
ZnVuY3Rpb24gbWFrZVVzZVJlZ3Jlc3Npb25UZXN0KGQsIGIpCiAgICAgICAgIGJyZWFrOwogICAg
ICAgZGVmYXVsdDoKICAgICAgICAgCi0gICAgICAgIHMgKz0gIi8qIHJlZ3Jlc3Npb24tdGVzdC1s
b2FkICovICIgKyAibG9hZCgiICsgc2ltcGxlU291cmNlKGZpbGUpICsgIik7IjsKKyAgICAgICAg
cyArPSAiLyogcmVncmVzc2lvbi10ZXN0LWxvYWQgKi8gIiArICJsb2FkKCIgKyBzaW1wbGVTb3Vy
Y2UoZmlsZSkgKyAiLCAiY2FsbGVyIHJlbGF0aXZlIik7IjsKICAgICAgICAgYnJlYWs7CiAgICAg
ICAKICAgICB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvdHlwZWRhcnJh
eS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVzb3Vy
Y2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5qcwppbmRleCBiZjM0
ZGI0YzZhZTZhZWZjN2NmOTczYjFiNWM2MTg3ZWE2NjliNGU3Li43MmIwODE0MWIxMTViYjIyZDU4
YjZlODdiZjRkYzcyNWNmM2JmZDljIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9yZXNvdXJj
ZXMvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzCisrKyBiL0pTVGVz
dHMvc3RyZXNzL3Jlc291cmNlcy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLWhlbHBlci1mdW5jdGlv
bnMuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy9zdGFuZGFsb25lLXByZS5q
cyIpOworbG9hZCgiLi9zdGFuZGFsb25lLXByZS5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAog
InVzZSBzdHJpY3QiOwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvdHlw
ZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMgYi9KU1Rlc3RzL3N0cmVzcy9yZXNvdXJj
ZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMKaW5kZXggYzkxNWIyNjk3Yzkz
MWJlODIwMWJjYTIxM2Y3MmJkNmQxODE0NzhlYi4uNTc5ZDgwMTA2MzU1YzIyYjZmNzNlZThhMTYw
MDIzY2ZlMjkzN2Y1ZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvcmVzb3VyY2VzL3R5cGVk
YXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3Jlc291
cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcwpAQCAtMSw0ICsxLDQgQEAK
LWxvYWQoIi4vcmVzb3VyY2VzL3N0YW5kYWxvbmUtcHJlLmpzIik7Citsb2FkKCIuL3N0YW5kYWxv
bmUtcHJlLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB2YXIgdHlwZWRBcnJheXMgPSBbSW50
OEFycmF5LCBVaW50OEFycmF5LCBVaW50OENsYW1wZWRBcnJheSwgSW50MTZBcnJheSwgVWludDE2
QXJyYXksIEludDMyQXJyYXksIFVpbnQzMkFycmF5LCBGbG9hdDMyQXJyYXksIEZsb2F0NjRBcnJh
eV07CiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWFub255
bW91cy1mdW5jdGlvbi5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWFub255
bW91cy1mdW5jdGlvbi5qcwppbmRleCA1ODc2ZGY3NGNjNTY0MzNlZjYxMmRmNTVmMTM4NmE4N2I1
M2UwZjRkLi5hODIxZjE3NDU3NjYwOTU1Y2Q5NzExOTJiNGY0N2VjZTNmODlmZGNmIDEwMDY0NAot
LS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1hbm9ueW1vdXMtZnVuY3Rpb24u
anMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItYW5vbnltb3VzLWZ1bmN0
aW9uLmpzCkBAIC0xLDUgKzEsNSBAQAogaWYgKHBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2Zp
bGVyKCkpIHsKLSAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIu
anMiKTsKKyAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIuanMi
LCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKICAgICBmdW5jdGlvbiBmb28oZikgewogICAgICAgICBm
KCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1iYXNpYy5q
cyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWJhc2ljLmpzCmluZGV4IGMxMjI4
NzBkYWRmMmEzNjEwNjA0YmVlZjNkZjZhMWFjNGMwNmIxMGYuLmE3NjdkMGI0NzFiNzFjOTA1MWVj
NDYxOTFjYTM5YzM1MzQwZjZlMGEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5n
LXByb2ZpbGVyLWJhc2ljLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVy
LWJhc2ljLmpzCkBAIC0xLDUgKzEsNSBAQAogaWYgKHBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1By
b2ZpbGVyKCkpIHsKLSAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmls
ZXIuanMiKTsKKyAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKICAgICBmdW5jdGlvbiBiYXIoeSkgewogICAgICAg
ICBsZXQgeDsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWJv
dW5kLWZ1bmN0aW9uLW5hbWUuanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1i
b3VuZC1mdW5jdGlvbi1uYW1lLmpzCmluZGV4IDdlYmFhNDMzYTEyMThiNjc3ZGY4ZWM2YTQxNmRk
ZDExNDllMTFlMmUuLmYzNzc2Mjk4OTU4NTY1ZDkwN2NiMzU2MGM2YTczMzkzYTA3YjYzZmEgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWJvdW5kLWZ1bmN0aW9u
LW5hbWUuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItYm91bmQtZnVu
Y3Rpb24tbmFtZS5qcwpAQCAtMSw1ICsxLDUgQEAKIGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxp
bmdQcm9maWxlcigpKSB7Ci0gICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1By
b2ZpbGVyLmpzIik7CisgICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2Zp
bGVyLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAgICAgZnVuY3Rpb24gZm9vKCkgewogICAg
ICAgICBsZXQgbyA9IHt9OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJv
ZmlsZXItZGVlcC1zdGFjay5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWRl
ZXAtc3RhY2suanMKaW5kZXggYzMzOTY5MTYzODg0MTdiZjljY2Q2Zjc0Y2JjYzg1YWFjOTUwNjA4
My4uYjFlMzU1YTQ5NDk1Nzk4N2EyM2NmYjVjNDc1OTZlOTBiM2I5YWQ1YyAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItZGVlcC1zdGFjay5qcworKysgYi9KU1Rl
c3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1kZWVwLXN0YWNrLmpzCkBAIC0xLDUgKzEsNSBA
QAogaWYgKHBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKCkpIHsKLSAgICBsb2FkKCIu
L3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIuanMiKTsKKyAgICBsb2FkKCIuL3Nh
bXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7
CiAKICAgICBmdW5jdGlvbiBmb28oeCkgeyAKICAgICAgICAgbGV0IG8gPSB7fTsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWRpc3BsYXktbmFtZS5qcyBiL0pT
VGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWRpc3BsYXktbmFtZS5qcwppbmRleCBkYWI3
MTA4MGE3NWNhY2I1OWQ1ODllZjhjMDE1ZWFkY2U2NjU1NWY1Li41ZDk3OWMxZTZiYjcyNzQ0OWMx
NGZkMDQzZTY5NDExNWIzZDNlYWM0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGlu
Zy1wcm9maWxlci1kaXNwbGF5LW5hbWUuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmct
cHJvZmlsZXItZGlzcGxheS1uYW1lLmpzCkBAIC0xLDUgKzEsNSBAQAogaWYgKHBsYXRmb3JtU3Vw
cG9ydHNTYW1wbGluZ1Byb2ZpbGVyKCkpIHsKLSAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVy
L3NhbXBsaW5nUHJvZmlsZXIuanMiKTsKKyAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3Nh
bXBsaW5nUHJvZmlsZXIuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKICAgICBmdW5jdGlvbiBm
b28oKSB7CiAgICAgICAgIGxldCBvID0ge307CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9z
YW1wbGluZy1wcm9maWxlci1pbnRlcm5hbC1mdW5jdGlvbi1uYW1lLmpzIGIvSlNUZXN0cy9zdHJl
c3Mvc2FtcGxpbmctcHJvZmlsZXItaW50ZXJuYWwtZnVuY3Rpb24tbmFtZS5qcwppbmRleCA4ODky
Y2EzNTAzYzkwNDkzYTlhYzVhZjM0YzlhMDQ2ZjI5MGQxNDE5Li5hY2ZjNmNiZTE2OWZlMDk3M2Fi
ODkyNzk5M2M4NDE2NTNhNGQ3YTE3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGlu
Zy1wcm9maWxlci1pbnRlcm5hbC1mdW5jdGlvbi1uYW1lLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L3NhbXBsaW5nLXByb2ZpbGVyLWludGVybmFsLWZ1bmN0aW9uLW5hbWUuanMKQEAgLTEsNSArMSw1
IEBACiBpZiAocGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJvZmlsZXIoKSkgewotICAgIGxvYWQo
Ii4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIpOworICAgIGxvYWQoIi4v
c2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIsICJjYWxsZXIgcmVsYXRpdmUi
KTsKIAogICAgIGZ1bmN0aW9uIGZvbygpIHsKICAgICAgICAgbGV0IHg7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1taWNyb3Rhc2tzLmpzIGIvSlNUZXN0cy9z
dHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItbWljcm90YXNrcy5qcwppbmRleCBjZTM1ZDE2YWIxYmFi
Mjc2MDUxMDI1NzRjYTUyYTM0YzBhNDM2YTAwLi45ZGIxODY2MmE0OGI2ODJjY2Q3ZjEwNjhiZDM1
YzgzMGVmNDI2YzliIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxl
ci1taWNyb3Rhc2tzLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLW1p
Y3JvdGFza3MuanMKQEAgLTEsNyArMSw3IEBACiB2YXIgYWJvcnQgPSAkdm0uYWJvcnQ7CiAKIGlm
IChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpKSB7Ci0gICAgbG9hZCgiLi9zYW1w
bGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIik7CisgICAgbG9hZCgiLi9zYW1wbGlu
Zy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAg
ICAgbGV0IHRyZWUgPSBudWxsOwogICAgIGZ1bmN0aW9uIHRlc3RSZXN1bHRzKCkgewpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24u
anMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5q
cwppbmRleCBiYTllNTZlNmQ4NTFkNGRjMGE2MmExY2QyNjEzMmE2MGFlNjA2YzVjLi41MmQ0NWUw
NDcxMWJlY2U1YmU2YzBlYTk0ZjVkMGVkNDgzNDMxMDViIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0
cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qcwpAQCAtNjUsNyAr
NjUsNyBAQCBpZiAocGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJvZmlsZXIoKSAmJiAkdm0uaXNX
YXNtU3VwcG9ydGVkKCkpIHsKICAgICBjb25zdCBpbnN0YW5jZSA9IGNvbXBpbGUod2FzbUZpbGUs
IGltcG9ydE9iamVjdCk7CiAgICAgY29uc3QgcmVzdWx0ID0gaW5zdGFuY2UuZXhwb3J0cy5fcGFy
cm90KDEpOwogCi0gICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVy
LmpzIik7CisgICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpz
IiwgImNhbGxlciByZWxhdGl2ZSIpOwogICAgIHZhciB3YXNtRW50cnkgPSBmdW5jdGlvbigpIHsK
ICAgICAgICAgcmV0dXJuIGluc3RhbmNlLmV4cG9ydHMuX3BhcnJvdCgxKTsKICAgICB9OwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qcyBiL0pTVGVz
dHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMKaW5kZXggN2FkNjVkMWUyZTAwMmI5
OWU3ZmIyNzg1ZDNmZmY3NDI3MmZlNDgwMy4uOWY4NzdkNzE4ZmRmMmQ0YTEwYWI5ZWZmMWM2MGE1
YTYyYmZlMWU1NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXIt
d2FzbS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzCkBA
IC0xLDcgKzEsNyBAQAogLy9AIHJ1bkRlZmF1bHQKIAogaWYgKHBsYXRmb3JtU3VwcG9ydHNTYW1w
bGluZ1Byb2ZpbGVyKCkgJiYgJHZtLmlzV2FzbVN1cHBvcnRlZCgpKSB7Ci0gICAgbG9hZCgiLi9z
YW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIik7CisgICAgbG9hZCgiLi9zYW1w
bGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwog
ICAgIGxldCBidWYgPSByZWFkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL2xvb3Aud2FzbSIsICJiaW5h
cnkiKTsKICAgICBsZXQgbW9kdWxlID0gbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShidWYpOwogICAg
IGxldCBpbnN0YW5jZSA9IG5ldyBXZWJBc3NlbWJseS5JbnN0YW5jZShtb2R1bGUpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4tZGlzYWJsZWQuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9zaGFkb3ctY2hpY2tlbi1kaXNhYmxlZC5qcwppbmRleCBhNzMxMDAzMTg4YmQ1ZjNh
MTAwNjBmZjU4N2UwMDRmYjE0OGVmMDQ5Li5iMmMwNWM0NDNlNDZmNGU1NWFhZGRkY2FlZThiYTZm
YjBiMTYxYzAzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zaGFkb3ctY2hpY2tlbi1kaXNh
YmxlZC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zaGFkb3ctY2hpY2tlbi1kaXNhYmxlZC5qcwpA
QCAtMyw3ICszLDcgQEAKICJ1c2Ugc3RyaWN0IjsKIAogdmFyIHZlcmJvc2UgPSBmYWxzZTsKLWxv
YWQoInJlc291cmNlcy9zaGFkb3ctY2hpY2tlbi1zdXBwb3J0LmpzIik7Citsb2FkKCJyZXNvdXJj
ZXMvc2hhZG93LWNoaWNrZW4tc3VwcG9ydC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGluaXRp
YWxpemUoKTsKIAogKGZ1bmN0aW9uIHRlc3QxKCkgewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3Mvc2hhZG93LWNoaWNrZW4tZW5hYmxlZC5qcyBiL0pTVGVzdHMvc3RyZXNzL3NoYWRvdy1jaGlj
a2VuLWVuYWJsZWQuanMKaW5kZXggMTljZjczZDA0MDExNDYxYmMwZmU1ZDgzNjJhNTRkNDBmY2Ew
ZGM4MC4uZTdlYmY5ZjBjODEzNDI4NGU0Zjg5NGZkZTAyYWNkNGYwNDFkNDNjNyAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4tZW5hYmxlZC5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy9zaGFkb3ctY2hpY2tlbi1lbmFibGVkLmpzCkBAIC02LDcgKzYsNyBAQCB2YXIgc2hh
ZG93Q2hpY2tlbkZ1bmN0aW9uc09uU3RhY2sgPSAkdm0uc2hhZG93Q2hpY2tlbkZ1bmN0aW9uc09u
U3RhY2s7CiAKIHZhciB2ZXJib3NlID0gZmFsc2U7CiAKLWxvYWQoInJlc291cmNlcy9zaGFkb3ct
Y2hpY2tlbi1zdXBwb3J0LmpzIik7Citsb2FkKCJyZXNvdXJjZXMvc2hhZG93LWNoaWNrZW4tc3Vw
cG9ydC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGluaXRpYWxpemUoKTsKIAogKGZ1bmN0aW9u
IHRlc3QxKCkgewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1jb25zdHJ1
Y3Rvci5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktY29uc3RydWN0b3IuanMKaW5kZXgg
MGU4ZWFmNzQ5ODgwODJjNGIxNDBiNzVmMDU0MzMxMTEyMmNkYTJhNi4uYjI0NTM1NjJmMjBmM2Fh
ZTgwYmFkMzg0MDVkMzY4ZDAyNmJkZmQ0NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlw
ZWRhcnJheS1jb25zdHJ1Y3Rvci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWNv
bnN0cnVjdG9yLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJh
eS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90
eXBlZGFycmF5LWNvbnN0cnVjdG9yLWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiAKIGxldCBUeXBlZEFycmF5ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKEludDMyQXJy
YXkpOwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWNvcHlXaXRoaW4u
anMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWNvcHlXaXRoaW4uanMKaW5kZXggZTVlNzlh
YTBlNjA5NjFiMGFhNGU1NTAwMjc2NDdkZWQyYWFhZGQ4OS4uMTY5MDg4NTZhZGFiMjNhMmZmYTEz
ZmQ2MTY0NDIzYWViZmQyN2JiOCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJh
eS1jb3B5V2l0aGluLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktY29weVdpdGhp
bi5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1o
ZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3Qt
aGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKCJU
aGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUu
Y29weVdpdGhpbiBmdW5jdGlvbiIpOwogCiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5
cGVkYXJyYXktZXZlcnkuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWV2ZXJ5LmpzCmlu
ZGV4IGM0ZTk3OWNhYjU4YWNkMzE1ZjI3ZGE0MDJmMzRmMzY5MDdkNjBiYmQuLjFkMGFiYmQxN2Q0
YTgwZjk3NzY4OTI5ZTFmNTQ1MzA3YmQ3ZDNiNWEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktZXZlcnkuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1ldmVy
eS5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1o
ZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3Qt
aGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAog
IlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlw
ZS5ldmVyeSBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFy
cmF5LWZpbGwuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbGwuanMKaW5kZXggNzU1
YjQ0MDQ3Y2E3YTQ0OGQwYTkzMTJiMzUyMmIzY2I5ODMwMTRjMi4uZmQ1Mzc4ODQxZDhkZTg4MTM4
OTc2OWE4NzMwMGJhZTgzNDllOGE2NCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1maWxsLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmlsbC5qcwpAQCAt
MSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVu
Y3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1
bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVz
dCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5maWxsIGZ1
bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmlsdGVy
LmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maWx0ZXIuanMKaW5kZXggN2NlN2JiZjYz
Njc5N2JmZGUxMzUzNWFjNGY0ODE4N2M1YjBhNDUwNi4uM2EyMjNkZjRmZjc2Njc0OTg3Y2E0ZjE2
NGRhMzRiMTM5MWQ0OGI0MCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1m
aWx0ZXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maWx0ZXIuanMKQEAgLTEs
NCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0
aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5j
dGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3Qg
Y2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuZmlsdGVyIGZ1
bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmluZC5q
cyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmluZC5qcwppbmRleCBiMTkwMmM0NWEwZWU4
MmU1ZDA5YWUyYjE3MjU1M2U4YmY5NTk5MmFlLi5lODYwNWIyMjEyMDZmNDNmOGI0ZTkzZjcwZGFh
ZjczZTJjZWM1MjhkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbmQu
anMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maW5kLmpzCkBAIC0xLDQgKzEsNCBA
QAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMi
KTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpz
IiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0
aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLmZpbmQgZnVuY3Rpb24iCiAp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maW5kSW5kZXguanMgYi9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbmRJbmRleC5qcwppbmRleCBlMDE1YjdjNWE1Mjkx
OWRjNTI3YWNmMWYyZjgyYWViNTlmZTMxZWQ3Li45MDg2MjIyNDAxNTIwZjg1NTNiOTM2NjkxMGUw
ZDAxMzY2YWIxNTE0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbmRJ
bmRleC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbmRJbmRleC5qcwpAQCAt
MSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVu
Y3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1
bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVz
dCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5maW5kSW5k
ZXggZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1m
b3JFYWNoLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1mb3JFYWNoLmpzCmluZGV4IDBk
NjlmZmVkNGM0NjQ4MTRhZmExMGFiMGFmY2U3N2JlNDAwMzczODUuLjJhY2YyNWJjMmYzM2E1ODNi
ODczN2RlZGIwNzNkMDYzMWY2Yjk4ZmMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVk
YXJyYXktZm9yRWFjaC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZvckVhY2gu
anMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVs
cGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhl
bHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJU
aGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUu
Zm9yRWFjaCBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFy
cmF5LWZyb20uanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZyb20uanMKaW5kZXggZGJi
ZmM4YTJlZGZiZGM4NzZkZjQzODlmMDdlNjk2MGEwZGMxZjdmZC4uMmZmYzljMWUxMDVhMTkzYTM4
ODdjZTAwYTI3ODhlMmUxZjkxOGE3YyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1mcm9tLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZnJvbS5qcwpAQCAt
MSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVs
cGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS1jb25zdHJ1
Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRp
b24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkuZnJv
bSBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWlu
Y2x1ZGVzLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1pbmNsdWRlcy5qcwppbmRleCBk
NmMwM2FmOGRhMmQzMDY0YmE4ODk1NDg5MzcxZTJiYzhkYjA2MmI1Li5lNjgxYTQ4MzU3NGFhOWZi
OTM1NGJkY2NmMWQ5Y2JmYWJhNzUzMzg0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBl
ZGFycmF5LWluY2x1ZGVzLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktaW5jbHVk
ZXMuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCJyZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhl
bHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoInJlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVs
cGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogZm9yIChjb25zdHJ1Y3Rv
ciBvZiB0eXBlZEFycmF5cykgewogICAgIGxldCBhID0gbmV3IGNvbnN0cnVjdG9yKDEwKTsKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktaW5kZXhPZi5qcyBiL0pTVGVzdHMv
c3RyZXNzL3R5cGVkYXJyYXktaW5kZXhPZi5qcwppbmRleCA3ZGQ1ZjAwMWFhNmE0NThlZTBlMWQx
Y2Y0YzIzNGM3NjZhNTIxNGRhLi4wMzIxYWJhNTVlMzE1ODMwMGI0ZjZkZGVkMGRiMDM2MTdmMTli
YjdlIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWluZGV4T2YuanMKKysr
IGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1pbmRleE9mLmpzCkBAIC0xLDQgKzEsNCBAQAot
bG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsK
K2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwg
ImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUg
YmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLmluZGV4T2YgZnVuY3Rpb24iCiAp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1sYXN0SW5kZXhPZi5qcyBi
L0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktbGFzdEluZGV4T2YuanMKaW5kZXggYzc0MDA0MzI0
MmMwNjdlOGFkYjFmZDk2MmNjNDFhYTYxZjNjZjYwNS4uM2JhNmNlYzUyMDFlMDRiYzIyN2ZhY2E2
YzEzMTdhNzJiM2IzZDE2NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1s
YXN0SW5kZXhPZi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWxhc3RJbmRleE9m
LmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhl
bHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1o
ZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAi
VGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBl
Lmxhc3RJbmRleE9mIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5
cGVkYXJyYXktbWFwLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1tYXAuanMKaW5kZXgg
OGRhZDIyMmNjZjUwMTlhM2FmMDkzODY2YWY5M2FkZDY3YzA2NWMxMi4uOWExNmFmMzJhMTQ0NTUx
YmQ4YzQxMTEwODk1ZWY0ZjE4ZmVmMTI5NiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlw
ZWRhcnJheS1tYXAuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1tYXAuanMKQEAg
LTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1
bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1m
dW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRl
c3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUubWFwIGZ1
bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktb2YuanMg
Yi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LW9mLmpzCmluZGV4IDBlODUyZGQ4YzhjYWZjODNk
MGIzODkwYTZiM2I0NDQxNjI4Njg4MGUuLjM2NzQzMjdhNGQ4OTc5M2EzMjFlYjJiMGM2NGIwZWIz
MmY4YWMwNmIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktb2YuanMKKysr
IGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1vZi5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQo
Ii4vcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5qcyIp
OworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVuY3Rp
b25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNo
ZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkub2YgZnVuY3Rpb24iCiApOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1yZWR1Y2UuanMgYi9KU1Rlc3RzL3N0
cmVzcy90eXBlZGFycmF5LXJlZHVjZS5qcwppbmRleCAzOWE2ZGEzMWE0NmVkOGI3M2UyZjA1NzBk
MjM0OTAxNGY0MGEwZTU2Li5lMTllNTA0ZTFlNjE3NzM4YmZjY2U4YWE4YTYxZTI0NDMxMzc4NzY1
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXJlZHVjZS5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXJlZHVjZS5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQo
Ii4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2Fk
KCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2
aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5yZWR1Y2UgZnVuY3Rpb24iCiApOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1yZWR1Y2VSaWdodC5qcyBiL0pTVGVz
dHMvc3RyZXNzL3R5cGVkYXJyYXktcmVkdWNlUmlnaHQuanMKaW5kZXggZDVkYjNjN2I2ZTMyZDhj
NDM0MzA3YWJlNzFiOGIwMWY5YTQ1OTE5MS4uOGY4YmRiZTdlYTRiM2YxZDU0ODRlZTFkOTJhY2M5
YWZlMTZlOGZkNSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1yZWR1Y2VS
aWdodC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXJlZHVjZVJpZ2h0LmpzCkBA
IC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1m
dW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXIt
ZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0
ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLnJlZHVj
ZVJpZ2h0IGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJy
YXktc2V0LmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zZXQuanMKaW5kZXggZmFjNWZj
N2NlZGRjMjE5MWM3NDI5NGNjNGNlMThmMjdiY2U2YzU4YS4uZDgyZTU5ODc3NmM4YzBjOWJkYzgw
NmQwZDU0ZWRiOWQ3MDk2ZTc0OCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJh
eS1zZXQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zZXQuanMKQEAgLTEsNCAr
MSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9u
cy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlv
bnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNr
cyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLnNldCBmdW5jdGlvbiIp
OwogCiBzaG91bGRCZSgiSW50MzJBcnJheS5wcm90b3R5cGUuc2V0Lmxlbmd0aCIsICIxIik7CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNsaWNlLmpzIGIvSlNUZXN0cy9z
dHJlc3MvdHlwZWRhcnJheS1zbGljZS5qcwppbmRleCBmYmNiMWY4YjE1ZDRkODA4NGZkZTY0NTAx
ZWE3ZjUwYzRlNWE0ODllLi45NWRlZDAzOTRlYzExNGJjOTI5ZTVhNjVlNGM4M2FmNWQ5Y2ZjNTkx
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNsaWNlLmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc2xpY2UuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIu
L3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgi
Li9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVy
IHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlv
ciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuc2xpY2UgZnVuY3Rpb24iCiApOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zb21lLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
dHlwZWRhcnJheS1zb21lLmpzCmluZGV4IDAxM2M0OTY4NTJkYTRjMWQyNjgzNGVkZDUwYzQwZDY3
MGVjM2VjNWEuLmMzOGEyODljNjc0ZjJkOWY1ZTE0NTg5MDZmMzk4ODM4YTA5NzMyZjggMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc29tZS5qcworKysgYi9KU1Rlc3RzL3N0
cmVzcy90eXBlZGFycmF5LXNvbWUuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNl
cy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJj
ZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZl
Iik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUg
VHlwZWRBcnJheS5wcm90b3R5cGUuc29tZSBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy90eXBlZGFycmF5LXNvcnQuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5
LXNvcnQuanMKaW5kZXggNjk0MWUwYWQyOWU0MGZjN2Q1OTczMTFiZjNkMTkwYTQ3YWFkYjQ0ZS4u
ZjM2MzEyNzIyM2FlOWFmMDY0NjUzZDA1ZDdlNmNjNmY0ZTc0ZWJjOCAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zb3J0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVk
YXJyYXktc29ydC5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJy
YXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFy
cmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2Ny
aXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5
LnByb3RvdHlwZS5zb3J0IGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktc3ViYXJyYXkuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXN1YmFy
cmF5LmpzCmluZGV4IDhmMzI5NWYwMWY1MjEyOWIyYjgzNTEyZDI3YTQwZTg2YzdkZTk4ZjYuLjMw
YmEyNTVjODU4N2M1NTJmMGMzNDI3NWE4MDJhMTVhNGExZDJlOTEgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvc3RyZXNzL3R5cGVkYXJyYXktc3ViYXJyYXkuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlw
ZWRhcnJheS1zdWJhcnJheS5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5
cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90
eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
IGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBl
ZEFycmF5LnByb3RvdHlwZS5zdWJhcnJheSBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3dhc20vQnVpbGRlci5qcyBiL0pTVGVzdHMvd2FzbS9CdWlsZGVyLmpzCmluZGV4IDk3NjM3
N2Y3YjNkOTEzZDRiOGRiMWY4YTc1OTZlNzNkMjc5MWNiNDcuLmM3ODgzZjRmNDM1ZGM1ZGY0MTI0
NjAzNjNhODNmODI0NjllMWJlOGMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9CdWlsZGVyLmpz
CisrKyBiL0pTVGVzdHMvd2FzbS9CdWlsZGVyLmpzCkBAIC0yMywxMSArMjMsMTEgQEAKICAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAotaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydC5qcyc7Ci1p
bXBvcnQgKiBhcyBCdWlsZFdlYkFzc2VtYmx5IGZyb20gJ0J1aWxkZXJfV2ViQXNzZW1ibHlCaW5h
cnkuanMnOwotaW1wb3J0ICogYXMgTExCIGZyb20gJ0xvd0xldmVsQmluYXJ5LmpzJzsKLWltcG9y
dCAqIGFzIFdBU00gZnJvbSAnV0FTTS5qcyc7Ci1pbXBvcnQgKiBhcyB1dGlsIGZyb20gJ3V0aWxp
dGllcy5qcyc7CitpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnLi9hc3NlcnQuanMnOworaW1wb3J0
ICogYXMgQnVpbGRXZWJBc3NlbWJseSBmcm9tICcuL0J1aWxkZXJfV2ViQXNzZW1ibHlCaW5hcnku
anMnOworaW1wb3J0ICogYXMgTExCIGZyb20gJy4vTG93TGV2ZWxCaW5hcnkuanMnOworaW1wb3J0
ICogYXMgV0FTTSBmcm9tICcuL1dBU00uanMnOworaW1wb3J0ICogYXMgdXRpbCBmcm9tICcuL3V0
aWxpdGllcy5qcyc7CiAKIGNvbnN0IF9pc1ZhbGlkVmFsdWUgPSAodmFsdWUsIHR5cGUpID0+IHsK
ICAgICBzd2l0Y2ggKHR5cGUpIHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9CdWlsZGVyX1dl
YkFzc2VtYmx5QmluYXJ5LmpzIGIvSlNUZXN0cy93YXNtL0J1aWxkZXJfV2ViQXNzZW1ibHlCaW5h
cnkuanMKaW5kZXggODYzMzhkMzQ1ZGM4OTk2ZDEzYTQwMDEyYjM1ZDU0MTcyOWFlNjVkYS4uMTNj
NTg2MjIxZTM2Yjk1YzViZTMyMmEzYzYzNjkxMjYxODkzNzcyNyAxMDA2NDQKLS0tIGEvSlNUZXN0
cy93YXNtL0J1aWxkZXJfV2ViQXNzZW1ibHlCaW5hcnkuanMKKysrIGIvSlNUZXN0cy93YXNtL0J1
aWxkZXJfV2ViQXNzZW1ibHlCaW5hcnkuanMKQEAgLTIzLDkgKzIzLDkgQEAKICAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIAotaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydC5qcyc7Ci1pbXBvcnQg
TG93TGV2ZWxCaW5hcnkgZnJvbSAnTG93TGV2ZWxCaW5hcnkuanMnOwotaW1wb3J0ICogYXMgV0FT
TSBmcm9tICdXQVNNLmpzJzsKK2ltcG9ydCAqIGFzIGFzc2VydCBmcm9tICcuL2Fzc2VydC5qcyc7
CitpbXBvcnQgTG93TGV2ZWxCaW5hcnkgZnJvbSAnLi9Mb3dMZXZlbEJpbmFyeS5qcyc7CitpbXBv
cnQgKiBhcyBXQVNNIGZyb20gJy4vV0FTTS5qcyc7CiAKIGNvbnN0IHB1dCA9IChiaW4sIHR5cGUs
IHZhbHVlKSA9PiBiaW5bdHlwZV0odmFsdWUpOwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20v
TG93TGV2ZWxCaW5hcnkuanMgYi9KU1Rlc3RzL3dhc20vTG93TGV2ZWxCaW5hcnkuanMKaW5kZXgg
ZjliYzhhMzcwNjU3NGFkNDQ1M2ExMGU5MWE5NGYyYzExMjUwNzg3Ni4uZWRjMGJlY2ZkZTNhM2Iz
OTczZGRjODdlNzEwZTczNzU1MWE1ZmI1MyAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL0xvd0xl
dmVsQmluYXJ5LmpzCisrKyBiL0pTVGVzdHMvd2FzbS9Mb3dMZXZlbEJpbmFyeS5qcwpAQCAtMjMs
OCArMjMsOCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1pbXBvcnQgKiBhcyBhc3NlcnQgZnJv
bSAnYXNzZXJ0LmpzJzsKLWltcG9ydCAqIGFzIFdBU00gZnJvbSAnV0FTTS5qcyc7CitpbXBvcnQg
KiBhcyBhc3NlcnQgZnJvbSAnLi9hc3NlcnQuanMnOworaW1wb3J0ICogYXMgV0FTTSBmcm9tICcu
L1dBU00uanMnOwogCiBjb25zdCBfaW5pdGlhbEFsbG9jYXRpb25TaXplID0gMTAyNDsKIGNvbnN0
IF9ncm93QWxsb2NhdGlvblNpemUgPSBhbGxvY2F0ZWQgPT4gYWxsb2NhdGVkICogMjsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvd2FzbS9SRUFETUUubWQgYi9KU1Rlc3RzL3dhc20vUkVBRE1FLm1kCmlu
ZGV4IDA2NTE1NzU1ZmI2MmQxNDdlZDM1MzgwZTUzMmMwMzcyZDI5NjFjOTguLjI1NTg5YzEyMWI1
ZjFhZmUwMTNmNzBiZjYzMzExMTEzNDQxZDg4OGMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9S
RUFETUUubWQKKysrIGIvSlNUZXN0cy93YXNtL1JFQURNRS5tZApAQCAtMjksNyArMjksNyBAQCBj
cmVhdGUgYSBzY29wZSBjYW4gYmUgbmVzdGVkIHVzaW5nIGEgbGFtYmRhLgogQSBzaW1wbGUgZXhh
bXBsZToKIAogYGBgamF2YXNjcmlwdAotaW1wb3J0IEJ1aWxkZXIgZnJvbSAnQnVpbGRlci5qcyc7
CitpbXBvcnQgQnVpbGRlciBmcm9tICcuL0J1aWxkZXIuanMnOwogCiBjb25zdCBidWlsZGVyID0g
bmV3IEJ1aWxkZXIoKTsKIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL1dBU00uanMgYi9KU1Rl
c3RzL3dhc20vV0FTTS5qcwppbmRleCAzYzlkZjY4NzE0YTJhNDJmODE3YmVlYjFiOWU2ZmE4YTJl
YjRmZGU3Li4wOTc1NTZjY2U2OWY2ZDU5ODE4YWU5OGIwOGRiZDA1ZTExNmI1ZTk1IDEwMDY0NAot
LS0gYS9KU1Rlc3RzL3dhc20vV0FTTS5qcworKysgYi9KU1Rlc3RzL3dhc20vV0FTTS5qcwpAQCAt
MjMsNyArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1pbXBvcnQgKiBhcyB1dGlsaXRp
ZXMgZnJvbSAndXRpbGl0aWVzLmpzJzsKK2ltcG9ydCAqIGFzIHV0aWxpdGllcyBmcm9tICcuL3V0
aWxpdGllcy5qcyc7CiAKIGNvbnN0IF9tYXBWYWx1ZXMgPSBmcm9tID0+IHsKICAgICBsZXQgdmFs
dWVzID0ge307CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vcmVncmVzcy9zZWxlY3RmNjQuanMg
Yi9KU1Rlc3RzL3dhc20vcmVncmVzcy9zZWxlY3RmNjQuanMKaW5kZXggZGQ0OTZjOTg5YTVhZTFm
YTMxNTFlYWY3N2I2ZDk3OGQ3NjAxMzUxNy4uMGE0MGNkYjg4ZjMzNTY3ZWQzNTZhMWRhZTFhODA1
M2I5NjZjMzkzZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL3JlZ3Jlc3Mvc2VsZWN0ZjY0Lmpz
CisrKyBiL0pTVGVzdHMvd2FzbS9yZWdyZXNzL3NlbGVjdGY2NC5qcwpAQCAtMSw0ICsxLDQgQEAK
LWltcG9ydCB7IHRlc3QgfSBmcm9tICdzZWxlY3RmNjQud2FzbScKK2ltcG9ydCB7IHRlc3QgfSBm
cm9tICcuL3NlbGVjdGY2NC53YXNtJwogaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJy4uL2Fzc2Vy
dC5qcyc7CiAKIGFzc2VydC5lcSh0ZXN0KCksIDQzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404080</attachid>
            <date>2020-07-11 18:32:41 -0700</date>
            <delta_ts>2020-07-11 18:36:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214205-20200711183240.patch</filename>
            <type>text/plain</type>
            <size>152339</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZjRjNjYxOTE5YWQ2ZDY2YzI3YzY0ZDQ5ODkzMzE3NzAxN2QzNzc2Li42ZjAxNTRlMGIxYjU2Mjdl
NjNjYThmYjYwN2YyMjc5MTQzMmNkNDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MSBAQAorMjAyMC0wNy0xMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBDbGVhbiB1cCBTb3VyY2VQcm92aWRlciBhbmQgYWRkIGNhbGxlciBy
ZWxhdGl2ZSBsb2FkIHNjcmlwdCB0byBqc2MuY3BwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIEFQSS9KU0FQSUdsb2JhbE9iamVjdC5tbToKKyAgICAg
ICAgKEpTQzo6SlNBUElHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6Cisg
ICAgICAgICogQVBJL0pTQmFzZS5jcHA6CisgICAgICAgIChKU0V2YWx1YXRlU2NyaXB0KToKKyAg
ICAgICAgKEpTQ2hlY2tTY3JpcHRTeW50YXgpOgorICAgICAgICAqIEFQSS9KU09iamVjdFJlZi5j
cHA6CisgICAgICAgIChKU09iamVjdE1ha2VGdW5jdGlvbik6CisgICAgICAgICogQVBJL0pTU2Ny
aXB0Lm1tOgorICAgICAgICAoLVtKU1NjcmlwdCBzb3VyY2VDb2RlXSk6CisgICAgICAgICogQVBJ
L0pTU2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMu
Y3BwOgorICAgICAgICAoSlNDOjpCdWlsdGluRXhlY3V0YWJsZXM6OkJ1aWx0aW5FeGVjdXRhYmxl
cyk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChKU0M6OkNvZGVC
bG9jazo6cmVmZXJyZXJVUkwgY29uc3QpOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyTG9j
YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckxvY2F0aW9uOjpEZWJ1Z2dlckxvY2F0
aW9uKToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmg6CisgICAgICAgIChK
U0M6OkRlYnVnZ2VyTG9jYXRpb246OkRlYnVnZ2VyTG9jYXRpb24pOgorICAgICAgICAqIGluc3Bl
Y3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OlNjcmlwdERl
YnVnU2VydmVyOjpzb3VyY2VQYXJzZWQpOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChH
bG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6CisgICAgICAgIChqc2NTb3Vy
Y2UpOgorICAgICAgICAoR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAg
IChmdW5jdGlvblJ1bik6CisgICAgICAgIChmdW5jdGlvbkxvYWQpOgorICAgICAgICAoZnVuY3Rp
b25DaGVja1N5bnRheCk6CisgICAgICAgIChmdW5jdGlvbkNhbGxlclNvdXJjZU9yaWdpbik6Cisg
ICAgICAgIChmdW5jdGlvbkRvbGxhckFnZW50U3RhcnQpOgorICAgICAgICAoZnVuY3Rpb25DaGVj
a01vZHVsZVN5bnRheCk6CisgICAgICAgIChydW5XaXRoT3B0aW9ucyk6CisgICAgICAgIChydW5J
bnRlcmFjdGl2ZSk6CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6CisgICAgICAgIChKU0M6OlNj
b3BlTm9kZTo6c291cmNlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U2NvcGVOb2RlOjpzb3VyY2VV
UkwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VDb2RlLmg6CisgICAg
ICAgIChKU0M6Om1ha2VTb3VyY2UpOgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VDb2RlS2V5Lmg6
CisgICAgICAgIChKU0M6OlNvdXJjZUNvZGVLZXk6Omhvc3QgY29uc3QpOgorICAgICAgICAqIHBh
cnNlci9Tb3VyY2VQcm92aWRlci5jcHA6CisgICAgICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyOjpT
b3VyY2VQcm92aWRlcik6CisgICAgICAgICogcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmg6CisgICAg
ICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyOjpzb3VyY2VVUkwgY29uc3QpOgorICAgICAgICAoSlND
OjpTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6U3RyaW5nU291
cmNlUHJvdmlkZXI6OlN0cmluZ1NvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKEpTQzo6U291cmNl
UHJvdmlkZXI6OnVybCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9DYWNoZWRU
eXBlcy5jcHA6CisgICAgICAgIChKU0M6OkNhY2hlZFNvdXJjZU9yaWdpbjo6ZW5jb2RlKToKKyAg
ICAgICAgKEpTQzo6Q2FjaGVkU291cmNlT3JpZ2luOjpkZWNvZGUgY29uc3QpOgorICAgICAgICAo
SlNDOjpDYWNoZWRTb3VyY2VQcm92aWRlclNoYXBlOjplbmNvZGUpOgorICAgICAgICAoSlNDOjpD
YWNoZWRTdHJpbmdTb3VyY2VQcm92aWRlcjo6ZGVjb2RlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
Q2FjaGVkV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6ZGVjb2RlIGNvbnN0KToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6YWRkRXJyb3JJbmZvKToKKyAgICAg
ICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25z
dHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjayk6CisgICAgICAgICogcnVudGlt
ZS9TY3JpcHRFeGVjdXRhYmxlLmg6CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6OnNv
dXJjZVVSTCBjb25zdCk6CisgICAgICAgICogcnVudGltZS9Tb3VyY2VPcmlnaW4uaDoKKyAgICAg
ICAgKEpTQzo6U291cmNlT3JpZ2luOjpTb3VyY2VPcmlnaW4pOgorICAgICAgICAoSlNDOjpTb3Vy
Y2VPcmlnaW46OnVybCBjb25zdCk6CisgICAgICAgIChKU0M6OlNvdXJjZU9yaWdpbjo6c3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6U291cmNlT3JpZ2luOjppc051bGwgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvVGhyb3dTY29wZS5jcHA6CisgICAgICAgIChKU0M6OlRo
cm93U2NvcGU6OnRocm93RXhjZXB0aW9uKToKKyAgICAgICAgKiBydW50aW1lL1Rocm93U2NvcGUu
aDoKKyAgICAgICAgKEpTQzo6VGhyb3dTY29wZTo6dGhyb3dFeGNlcHRpb24pOgorICAgICAgICAo
SlNDOjp0aHJvd1ZNRXhjZXB0aW9uKToKKyAgICAgICAgKiB0b29scy9GdW5jdGlvbk92ZXJyaWRl
cy5jcHA6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVPdmVycmlkZUluZm8pOgorCiAyMDIwLTA3
LTA5ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04o
cjI2MjMwMik6IElUTUxLaXQgZGVidWdnYWJsZXMgaW4gbGlzdGluZ3MgYXJlIG1pc3NpbmcgYSB0
aXRsZSwgdXNlIFVVSUQgaW5zdGVhZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0FQSUdsb2JhbE9iamVjdC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNB
UElHbG9iYWxPYmplY3QubW0KaW5kZXggMDJjYjliNzMxMTA1M2E0MmM3ZGQ1NDVlZTgzOWQxYzgw
MWU0YjkxZi4uZjU4YzIwNjQ4ODZkOWVhN2JjOTAyNWFhNTU1NzlkZjQxM2JjMzZkYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5tbQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0Lm1tCkBAIC03Niw3
ICs3Niw3IEBAIHN0YXRpYyBFeHBlY3RlZDxVUkwsIFN0cmluZz4gY29tcHV0ZVZhbGlkSW1wb3J0
U3BlY2lmaWVyKGNvbnN0IFVSTCYgYmFzZSwgY29uc3QKICAgICAgICAgcmV0dXJuIGFic29sdXRl
VVJMOwogCiAgICAgaWYgKCFzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLycpICYmICFzcGVjaWZpZXIu
c3RhcnRzV2l0aCgiLi8iKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4uLyIpKQotICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiTW9kdWxlIHNwZWNpZmllcjogIl9z
LCBzcGVjaWZpZXIsICIgZG9lcyBub3Qgc3RhcnQgd2l0aCBcIi9cIiwgXCIuL1wiLCBvciBcIi4u
L1wiLiJfcykpOworICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiTW9k
dWxlIHNwZWNpZmllcjogIl9zLCBzcGVjaWZpZXIsICIgZG9lcyBub3Qgc3RhcnQgd2l0aCBcIi9c
IiwgXCIuL1wiLCBvciBcIi4uL1wiLiBSZWZlcmVuY2VkIGZyb206ICJfcywgYmFzZS5zdHJpbmco
KSkpOwogCiAgICAgaWYgKHNwZWNpZmllci5zdGFydHNXaXRoKCcvJykpIHsKICAgICAgICAgYWJz
b2x1dGVVUkwgPSBVUkwoVVJMKHsgfSwgImZpbGU6Ly8iKSwgc3BlY2lmaWVyKTsKQEAgLTE1MCw4
ICsxNTAsNyBAQCBKU0ludGVybmFsUHJvbWlzZSogSlNBUElHbG9iYWxPYmplY3Q6Om1vZHVsZUxv
YWRlckltcG9ydE1vZHVsZShKU0dsb2JhbE9iamVjdCogZwogICAgICAgICByZXR1cm4gcmVqZWN0
KGV4Y2VwdGlvbi0+dmFsdWUoKSk7CiAgICAgfQogCi0gICAgU3RyaW5nIHJlZmVycmVyID0gIXNv
dXJjZU9yaWdpbi5pc051bGwoKSA/IHNvdXJjZU9yaWdpbi5zdHJpbmcoKSA6IFN0cmluZygpOwot
ICAgIFVSTCBiYXNlVVJMKFVSTCgpLCByZWZlcnJlcik7CisgICAgVVJMIGJhc2VVUkwgPSBzb3Vy
Y2VPcmlnaW4udXJsKCkgPyBzb3VyY2VPcmlnaW4udXJsKCkgOiBVUkwoKTsKICAgICBhdXRvIHJl
c3VsdCA9IGNvbXB1dGVWYWxpZEltcG9ydFNwZWNpZmllcihiYXNlVVJMLCBzcGVjaWZpZXIpOwog
ICAgIGlmIChyZXN1bHQpCiAgICAgICAgIHJldHVybiBpbXBvcnQocmVzdWx0LnZhbHVlKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3BwCmluZGV4IDFkMDRjZjNmOTQ5MGRkZjc1MzRi
MjEwMzAxM2FhYzRkNWY4NGI1NTMuLjA5NjFjNjdkODk0NWU3NTZhZWRjZDZlZGZkODYyMTQ3Yzkw
OGMyMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQmFzZS5jcHAKQEAgLTczLDcgKzczLDcg
QEAgSlNWYWx1ZVJlZiBKU0V2YWx1YXRlU2NyaXB0SW50ZXJuYWwoY29uc3QgSlNMb2NrSG9sZGVy
JiwgSlNDb250ZXh0UmVmIGN0eCwgSlNPYmoKICAgICByZXR1cm4gdG9SZWYoZ2xvYmFsT2JqZWN0
LCBqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNWYWx1ZVJlZiBKU0V2YWx1YXRlU2NyaXB0KEpTQ29u
dGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
SlNTdHJpbmdSZWYgc291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCitKU1ZhbHVlUmVmIEpTRXZhbHVhdGVTY3JpcHQoSlNDb250ZXh0UmVmIGN0
eCwgSlNTdHJpbmdSZWYgc2NyaXB0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1Jl
ZiBzb3VyY2VVUkxTdHJpbmcsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKIHsKICAgICBpZiAoIWN0eCkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKQEAgLTg1LDEzICs4NSwxMyBAQCBKU1ZhbHVlUmVmIEpTRXZhbHVhdGVTY3JpcHQoSlNDb250
ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgc2NyaXB0LCBKU09iamVjdFJlZiB0aAogCiAgICAgc3Rh
cnRpbmdMaW5lTnVtYmVyID0gc3RkOjptYXgoMSwgc3RhcnRpbmdMaW5lTnVtYmVyKTsKIAotICAg
IGF1dG8gc291cmNlVVJMU3RyaW5nID0gc291cmNlVVJMID8gc291cmNlVVJMLT5zdHJpbmcoKSA6
IFN0cmluZygpOwotICAgIFNvdXJjZUNvZGUgc291cmNlID0gbWFrZVNvdXJjZShzY3JpcHQtPnN0
cmluZygpLCBTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkxTdHJpbmcgfSwgVVJMKHsgfSwgc291cmNl
VVJMU3RyaW5nKSwgVGV4dFBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChz
dGFydGluZ0xpbmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVyKCkpKTsKKyAgICBhdXRvIHNvdXJjZVVS
TCA9IHNvdXJjZVVSTFN0cmluZyA/IFVSTCh7IH0sIHNvdXJjZVVSTFN0cmluZy0+c3RyaW5nKCkp
IDogVVJMKCk7CisgICAgU291cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291cmNlKHNjcmlwdC0+c3Ry
aW5nKCksIFNvdXJjZU9yaWdpbiB7IHNvdXJjZVVSTCB9LCBzb3VyY2VVUkwuc3RyaW5nKCksIFRl
eHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRpbmdMaW5lTnVt
YmVyKSwgT3JkaW5hbE51bWJlcigpKSk7CiAKICAgICByZXR1cm4gSlNFdmFsdWF0ZVNjcmlwdElu
dGVybmFsKGxvY2tlciwgY3R4LCB0aGlzT2JqZWN0LCBzb3VyY2UsIGV4Y2VwdGlvbik7CiB9CiAK
LWJvb2wgSlNDaGVja1NjcmlwdFN5bnRheChKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBz
Y3JpcHQsIEpTU3RyaW5nUmVmIHNvdXJjZVVSTCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQorYm9vbCBKU0NoZWNrU2NyaXB0U3ludGF4KEpTQ29udGV4dFJl
ZiBjdHgsIEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNTdHJpbmdSZWYgc291cmNlVVJMU3RyaW5nLCBp
bnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYg
KCFjdHgpIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMDMsOCArMTAzLDgg
QEAgYm9vbCBKU0NoZWNrU2NyaXB0U3ludGF4KEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVm
IHNjcmlwdCwgSlNTdHJpbmdSZWYgc291cmMKIAogICAgIHN0YXJ0aW5nTGluZU51bWJlciA9IHN0
ZDo6bWF4KDEsIHN0YXJ0aW5nTGluZU51bWJlcik7CiAKLSAgICBhdXRvIHNvdXJjZVVSTFN0cmlu
ZyA9IHNvdXJjZVVSTCA/IHNvdXJjZVVSTC0+c3RyaW5nKCkgOiBTdHJpbmcoKTsKLSAgICBTb3Vy
Y2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2Uoc2NyaXB0LT5zdHJpbmcoKSwgU291cmNlT3JpZ2lu
IHsgc291cmNlVVJMU3RyaW5nIH0sIFVSTCh7IH0sIHNvdXJjZVVSTFN0cmluZyksIFRleHRQb3Np
dGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRpbmdMaW5lTnVtYmVyKSwg
T3JkaW5hbE51bWJlcigpKSk7CisgICAgYXV0byBzb3VyY2VVUkwgPSBzb3VyY2VVUkxTdHJpbmcg
PyBVUkwoeyB9LCBzb3VyY2VVUkxTdHJpbmctPnN0cmluZygpKSA6IFVSTCgpOworICAgIFNvdXJj
ZUNvZGUgc291cmNlID0gbWFrZVNvdXJjZShzY3JpcHQtPnN0cmluZygpLCBTb3VyY2VPcmlnaW4g
eyBzb3VyY2VVUkwgfSwgc291cmNlVVJMLnN0cmluZygpLCBUZXh0UG9zaXRpb24oT3JkaW5hbE51
bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0YXJ0aW5nTGluZU51bWJlciksIE9yZGluYWxOdW1iZXIo
KSkpOwogICAgIAogICAgIEpTVmFsdWUgc3ludGF4RXhjZXB0aW9uOwogICAgIGJvb2wgaXNWYWxp
ZFN5bnRheCA9IGNoZWNrU3ludGF4KGdsb2JhbE9iamVjdCwgc291cmNlLCAmc3ludGF4RXhjZXB0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKaW5kZXggZDlh
ZWJmN2MxYzAwZDQ3ZmM5ZDY0ODBiNjM1MzY3MTNjMDU2ZmU2MC4uMzYzYjhhZjRiNDhiYjhjMDc0
NWY4MWIxY2UwZDhmYmU2NTZmMjhhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU09iamVjdFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09i
amVjdFJlZi5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VD
b25zdHJ1Y3RvcihKU0NvbnRleHRSZWYgY3R4LCBKU0NsYXNzUmVmIGpzQ2xhc3MsIEpTT2JqZQog
ICAgIHJldHVybiB0b1JlZihjb25zdHJ1Y3Rvcik7CiB9CiAKLUpTT2JqZWN0UmVmIEpTT2JqZWN0
TWFrZUZ1bmN0aW9uKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIG5hbWUsIHVuc2lnbmVk
IHBhcmFtZXRlckNvdW50LCBjb25zdCBKU1N0cmluZ1JlZiBwYXJhbWV0ZXJOYW1lc1tdLCBKU1N0
cmluZ1JlZiBib2R5LCBKU1N0cmluZ1JlZiBzb3VyY2VVUkwsIGludCBzdGFydGluZ0xpbmVOdW1i
ZXIsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK0pTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZUZ1bmN0
aW9uKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIG5hbWUsIHVuc2lnbmVkIHBhcmFtZXRl
ckNvdW50LCBjb25zdCBKU1N0cmluZ1JlZiBwYXJhbWV0ZXJOYW1lc1tdLCBKU1N0cmluZ1JlZiBi
b2R5LCBKU1N0cmluZ1JlZiBzb3VyY2VVUkxTdHJpbmcsIGludCBzdGFydGluZ0xpbmVOdW1iZXIs
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBpZiAoIWN0eCkgewogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE1MSw4ICsxNTEsOCBAQCBKU09iamVjdFJlZiBKU09iamVj
dE1ha2VGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBuYW1lLCB1bnNpZ25l
ZCBwYQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBhdXRvIHNvdXJjZVVS
TFN0cmluZyA9IHNvdXJjZVVSTCA/IHNvdXJjZVVSTC0+c3RyaW5nKCkgOiBTdHJpbmcoKTsKLSAg
ICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0RnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBhcmdz
LCBuYW1lSUQsIFNvdXJjZU9yaWdpbiB7IHNvdXJjZVVSTFN0cmluZyB9LCBzb3VyY2VVUkxTdHJp
bmcsIFRleHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRpbmdM
aW5lTnVtYmVyKSwgT3JkaW5hbE51bWJlcigpKSk7CisgICAgYXV0byBzb3VyY2VVUkwgPSBzb3Vy
Y2VVUkxTdHJpbmcgPyBVUkwoeyB9LCBzb3VyY2VVUkxTdHJpbmctPnN0cmluZygpKSA6IFVSTCgp
OworICAgIEpTT2JqZWN0KiByZXN1bHQgPSBjb25zdHJ1Y3RGdW5jdGlvbihnbG9iYWxPYmplY3Qs
IGFyZ3MsIG5hbWVJRCwgU291cmNlT3JpZ2luIHsgc291cmNlVVJMIH0sIHNvdXJjZVVSTC5zdHJp
bmcoKSwgVGV4dFBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChzdGFydGlu
Z0xpbmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVyKCkpKTsKICAgICBpZiAoaGFuZGxlRXhjZXB0aW9u
SWZOZWVkZWQoc2NvcGUsIGN0eCwgZXhjZXB0aW9uKSA9PSBFeGNlcHRpb25TdGF0dXM6OkRpZFRo
cm93KQogICAgICAgICByZXN1bHQgPSBudWxscHRyOwogICAgIHJldHVybiB0b1JlZihyZXN1bHQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdC5tbSBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHQubW0KaW5kZXggMDBjODc2YTRlNjQ1YzRk
OGE3ZjVhYzhlOGRjMmM3ZTFiNWMyMmYzMy4uOWU0MTQ1NzEyNGJmMTQzZWE0MTc2MTVjNDk4MmE1
MTljMWQ5M2E3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Njcmlw
dC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0Lm1tCkBAIC0yNjcs
OSArMjY3LDExIEBAIHN0YXRpYyBib29sIHZhbGlkYXRlQnl0ZWNvZGVDYWNoZVBhdGgoTlNVUkwq
IGNhY2hlUGF0aCwgTlNFcnJvcioqIGVycm9yKQogICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2tl
cih2bSk7CiAKICAgICBUZXh0UG9zaXRpb24gc3RhcnRQb3NpdGlvbiB7IH07Ci0gICAgU3RyaW5n
IHVybCA9IFN0cmluZyB7IFtbc2VsZiBzb3VyY2VVUkxdIGFic29sdXRlU3RyaW5nXSB9OworICAg
IFN0cmluZyBmaWxlbmFtZSA9IFN0cmluZyB7IFtbc2VsZiBzb3VyY2VVUkxdIGFic29sdXRlU3Ry
aW5nXSB9OworICAgIFVSTCB1cmwgPSBVUkwoeyB9LCBmaWxlbmFtZSk7CiAgICAgYXV0byB0eXBl
ID0gbV90eXBlID09IGtKU1NjcmlwdFR5cGVNb2R1bGUgPyBKU0M6OlNvdXJjZVByb3ZpZGVyU291
cmNlVHlwZTo6TW9kdWxlIDogSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW07
Ci0gICAgUmVmPEpTU2NyaXB0U291cmNlUHJvdmlkZXI+IHNvdXJjZVByb3ZpZGVyID0gSlNTY3Jp
cHRTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNlbGYsIEpTQzo6U291cmNlT3JpZ2luKHVybCksIFVS
TCh7IH0sIHVybCksIHN0YXJ0UG9zaXRpb24sIHR5cGUpOworICAgIEpTQzo6U291cmNlT3JpZ2lu
IG9yaWdpbih1cmwpOworICAgIFJlZjxKU1NjcmlwdFNvdXJjZVByb3ZpZGVyPiBzb3VyY2VQcm92
aWRlciA9IEpTU2NyaXB0U291cmNlUHJvdmlkZXI6OmNyZWF0ZShzZWxmLCBvcmlnaW4sIFdURk1v
dmUoZmlsZW5hbWUpLCBzdGFydFBvc2l0aW9uLCB0eXBlKTsKICAgICBKU0M6OlNvdXJjZUNvZGUg
c291cmNlQ29kZShXVEZNb3ZlKHNvdXJjZVByb3ZpZGVyKSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUu
b25lQmFzZWRJbnQoKSwgc3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKTsKICAg
ICByZXR1cm4gc291cmNlQ29kZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNTY3JpcHRSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Njcmlw
dFJlZi5jcHAKaW5kZXggODQxNTlhYzUyNTczYzc4NzRlM2I1MmIyYTQyZTBmZWM2M2NlN2JhYS4u
NzYyY2VjMDVlOTI0NmMwY2IxZmFjMTJkZGFmNzJjMWFjNjEwNTAyMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAKQEAgLTM5LDkgKzM5LDkgQEAgdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKIAogc3RydWN0IE9wYXF1ZUpTU2NyaXB0IGZpbmFsIDogcHVibGljIFNvdXJj
ZVByb3ZpZGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgV1RGOjpSZWY8T3BhcXVlSlNTY3JpcHQ+
IGNyZWF0ZShWTSYgdm0sIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1
cmwsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlKQorICAgIHN0
YXRpYyBXVEY6OlJlZjxPcGFxdWVKU1NjcmlwdD4gY3JlYXRlKFZNJiB2bSwgY29uc3QgU291cmNl
T3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0cmluZyBmaWxlbmFtZSwgaW50IHN0YXJ0aW5nTGluZU51
bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2UpCiAgICAgewotICAgICAgICByZXR1cm4gV1RGOjph
ZG9wdFJlZigqbmV3IE9wYXF1ZUpTU2NyaXB0KHZtLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUodXJs
KSwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2UpKTsKKyAgICAgICAgcmV0dXJuIFdURjo6YWRv
cHRSZWYoKm5ldyBPcGFxdWVKU1NjcmlwdCh2bSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKGZpbGVu
YW1lKSwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2UpKTsKICAgICB9CiAKICAgICB1bnNpZ25l
ZCBoYXNoKCkgY29uc3QgZmluYWwKQEAgLTU3LDggKzU3LDggQEAgcHVibGljOgogICAgIFZNJiB2
bSgpIGNvbnN0IHsgcmV0dXJuIG1fdm07IH0KIAogcHJpdmF0ZToKLSAgICBPcGFxdWVKU1Njcmlw
dChWTSYgdm0sIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwsIGlu
dCBzdGFydGluZ0xpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlKQotICAgICAgICA6IFNv
dXJjZVByb3ZpZGVyKHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpLCBUZXh0UG9zaXRpb24oT3Jk
aW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0YXJ0aW5nTGluZU51bWJlciksIE9yZGluYWxO
dW1iZXIoKSksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSkKKyAgICBPcGFxdWVK
U1NjcmlwdChWTSYgdm0sIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJpbmcm
JiBmaWxlbmFtZSwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2Up
CisgICAgICAgIDogU291cmNlUHJvdmlkZXIoc291cmNlT3JpZ2luLCBXVEZNb3ZlKGZpbGVuYW1l
KSwgVGV4dFBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChzdGFydGluZ0xp
bmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVyKCkpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlBy
b2dyYW0pCiAgICAgICAgICwgbV92bSh2bSkKICAgICAgICAgLCBtX3NvdXJjZShzb3VyY2UuaXNO
dWxsKCkgPyAqU3RyaW5nSW1wbDo6ZW1wdHkoKSA6ICpzb3VyY2UuaW1wbCgpKQogICAgIHsKQEAg
LTgwLDcgKzgwLDcgQEAgc3RhdGljIGJvb2wgcGFyc2VTY3JpcHQoVk0mIHZtLCBjb25zdCBTb3Vy
Y2VDb2RlJiBzb3VyY2UsIFBhcnNlckVycm9yJiBlcnJvcikKIAogZXh0ZXJuICJDIiB7CiAKLUpT
U2NyaXB0UmVmIEpTU2NyaXB0Q3JlYXRlUmVmZXJlbmNpbmdJbW1vcnRhbEFTQ0lJVGV4dChKU0Nv
bnRleHRHcm91cFJlZiBjb250ZXh0R3JvdXAsIEpTU3RyaW5nUmVmIHVybCwgaW50IHN0YXJ0aW5n
TGluZU51bWJlciwgY29uc3QgY2hhciogc291cmNlLCBzaXplX3QgbGVuZ3RoLCBKU1N0cmluZ1Jl
ZiogZXJyb3JNZXNzYWdlLCBpbnQqIGVycm9yTGluZSkKK0pTU2NyaXB0UmVmIEpTU2NyaXB0Q3Jl
YXRlUmVmZXJlbmNpbmdJbW1vcnRhbEFTQ0lJVGV4dChKU0NvbnRleHRHcm91cFJlZiBjb250ZXh0
R3JvdXAsIEpTU3RyaW5nUmVmIHVybFN0cmluZywgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgY29u
c3QgY2hhciogc291cmNlLCBzaXplX3QgbGVuZ3RoLCBKU1N0cmluZ1JlZiogZXJyb3JNZXNzYWdl
LCBpbnQqIGVycm9yTGluZSkKIHsKICAgICBhdXRvJiB2bSA9ICp0b0pTKGNvbnRleHRHcm91cCk7
CiAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcigmdm0pOwpAQCAtOTEsOCArOTEsOCBAQCBKU1Njcmlw
dFJlZiBKU1NjcmlwdENyZWF0ZVJlZmVyZW5jaW5nSW1tb3J0YWxBU0NJSVRleHQoSlNDb250ZXh0
R3JvdXBSZWYgY29udGV4dAogCiAgICAgc3RhcnRpbmdMaW5lTnVtYmVyID0gc3RkOjptYXgoMSwg
c3RhcnRpbmdMaW5lTnVtYmVyKTsKIAotICAgIGF1dG8gc291cmNlVVJMU3RyaW5nID0gdXJsID8g
dXJsLT5zdHJpbmcoKSA6IFN0cmluZygpOwotICAgIGF1dG8gcmVzdWx0ID0gT3BhcXVlSlNTY3Jp
cHQ6OmNyZWF0ZSh2bSwgU291cmNlT3JpZ2luIHsgc291cmNlVVJMU3RyaW5nIH0sIFVSTCh7IH0s
IHNvdXJjZVVSTFN0cmluZyksIHN0YXJ0aW5nTGluZU51bWJlciwgU3RyaW5nKFN0cmluZ0ltcGw6
OmNyZWF0ZUZyb21MaXRlcmFsKHNvdXJjZSwgbGVuZ3RoKSkpOworICAgIGF1dG8gc291cmNlVVJM
ID0gdXJsU3RyaW5nID8gVVJMKHsgfSwgdXJsU3RyaW5nLT5zdHJpbmcoKSkgOiBVUkwoKTsKKyAg
ICBhdXRvIHJlc3VsdCA9IE9wYXF1ZUpTU2NyaXB0OjpjcmVhdGUodm0sIFNvdXJjZU9yaWdpbiB7
IHNvdXJjZVVSTCB9LCBzb3VyY2VVUkwuc3RyaW5nKCksIHN0YXJ0aW5nTGluZU51bWJlciwgU3Ry
aW5nKFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKHNvdXJjZSwgbGVuZ3RoKSkpOwogCiAg
ICAgUGFyc2VyRXJyb3IgZXJyb3I7CiAgICAgaWYgKCFwYXJzZVNjcmlwdCh2bSwgU291cmNlQ29k
ZShyZXN1bHQuY29weVJlZigpKSwgZXJyb3IpKSB7CkBAIC0xMDYsMTUgKzEwNiwxNSBAQCBKU1Nj
cmlwdFJlZiBKU1NjcmlwdENyZWF0ZVJlZmVyZW5jaW5nSW1tb3J0YWxBU0NJSVRleHQoSlNDb250
ZXh0R3JvdXBSZWYgY29udGV4dAogICAgIHJldHVybiAmcmVzdWx0LmxlYWtSZWYoKTsKIH0KIAot
SlNTY3JpcHRSZWYgSlNTY3JpcHRDcmVhdGVGcm9tU3RyaW5nKEpTQ29udGV4dEdyb3VwUmVmIGNv
bnRleHRHcm91cCwgSlNTdHJpbmdSZWYgdXJsLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBKU1N0
cmluZ1JlZiBzb3VyY2UsIEpTU3RyaW5nUmVmKiBlcnJvck1lc3NhZ2UsIGludCogZXJyb3JMaW5l
KQorSlNTY3JpcHRSZWYgSlNTY3JpcHRDcmVhdGVGcm9tU3RyaW5nKEpTQ29udGV4dEdyb3VwUmVm
IGNvbnRleHRHcm91cCwgSlNTdHJpbmdSZWYgdXJsU3RyaW5nLCBpbnQgc3RhcnRpbmdMaW5lTnVt
YmVyLCBKU1N0cmluZ1JlZiBzb3VyY2UsIEpTU3RyaW5nUmVmKiBlcnJvck1lc3NhZ2UsIGludCog
ZXJyb3JMaW5lKQogewogICAgIGF1dG8mIHZtID0gKnRvSlMoY29udGV4dEdyb3VwKTsKICAgICBK
U0xvY2tIb2xkZXIgbG9ja2VyKCZ2bSk7CiAKICAgICBzdGFydGluZ0xpbmVOdW1iZXIgPSBzdGQ6
Om1heCgxLCBzdGFydGluZ0xpbmVOdW1iZXIpOwogCi0gICAgYXV0byBzb3VyY2VVUkxTdHJpbmcg
PSB1cmwgPyB1cmwtPnN0cmluZygpIDogU3RyaW5nKCk7Ci0gICAgYXV0byByZXN1bHQgPSBPcGFx
dWVKU1NjcmlwdDo6Y3JlYXRlKHZtLCBTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkxTdHJpbmcgfSwg
VVJMKHsgfSwgc291cmNlVVJMU3RyaW5nKSwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2UtPnN0
cmluZygpKTsKKyAgICBhdXRvIHNvdXJjZVVSTCA9IHVybFN0cmluZyA/IFVSTCh7IH0sIHVybFN0
cmluZy0+c3RyaW5nKCkpIDogVVJMKCk7CisgICAgYXV0byByZXN1bHQgPSBPcGFxdWVKU1Njcmlw
dDo6Y3JlYXRlKHZtLCBTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkwgfSwgc291cmNlVVJMLnN0cmlu
ZygpLCBzdGFydGluZ0xpbmVOdW1iZXIsIHNvdXJjZS0+c3RyaW5nKCkpOwogCiAgICAgUGFyc2Vy
RXJyb3IgZXJyb3I7CiAgICAgaWYgKCFwYXJzZVNjcmlwdCh2bSwgU291cmNlQ29kZShyZXN1bHQu
Y29weVJlZigpKSwgZXJyb3IpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL2dsaWIvSlNDQ29udGV4dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIv
SlNDQ29udGV4dC5jcHAKaW5kZXggYWI4MDlkZDcxZjAxNzdjNThkMzMzY2RkZjlkZmI2MmU1ZWU5
MGJiMy4uMjJiMzFhYzcyMGJiM2UyYTRiNDk1MDZkZGI3NzI1ZDM3NGQ2NTIxNyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDb250ZXh0LmNwcApAQCAtOTU2LDkgKzk1
Niw5IEBAIEpTQ0NoZWNrU3ludGF4UmVzdWx0IGpzY19jb250ZXh0X2NoZWNrX3N5bnRheChKU0ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBjaGFyKiBjCiAgICAgSlNDOjpWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9ja2VyKHZtKTsKIAotICAgIFN0
cmluZyBzb3VyY2VVUkxTdHJpbmcgPSB1cmkgPyBTdHJpbmc6OmZyb21VVEY4KHVyaSkgOiBTdHJp
bmcoKTsKLSAgICBKU0M6OlNvdXJjZUNvZGUgc291cmNlID0gSlNDOjptYWtlU291cmNlKFN0cmlu
Zzo6ZnJvbVVURjgoY29kZSwgbGVuZ3RoIDwgMCA/IHN0cmxlbihjb2RlKSA6IGxlbmd0aCksIEpT
Qzo6U291cmNlT3JpZ2luIHsgc291cmNlVVJMU3RyaW5nIH0sCi0gICAgICAgIFVSTCh7IH0sIHNv
dXJjZVVSTFN0cmluZyksIFRleHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJ
bnQobGluZU51bWJlciksIE9yZGluYWxOdW1iZXIoKSkpOworICAgIFVSTCBzb3VyY2VVUkwgPSB1
cmkgPyBVUkwoeyB9LCB1cmkpIDogVVJMKCk7CisgICAgSlNDOjpTb3VyY2VDb2RlIHNvdXJjZSA9
IEpTQzo6bWFrZVNvdXJjZShTdHJpbmc6OmZyb21VVEY4KGNvZGUsIGxlbmd0aCA8IDAgPyBzdHJs
ZW4oY29kZSkgOiBsZW5ndGgpLCBKU0M6OlNvdXJjZU9yaWdpbiB7IHNvdXJjZVVSTCB9LAorICAg
ICAgICBzb3VyY2VVUkwuc3RyaW5nKCkgLCBUZXh0UG9zaXRpb24oT3JkaW5hbE51bWJlcjo6ZnJv
bU9uZUJhc2VkSW50KGxpbmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVyKCkpKTsKICAgICBib29sIHN1
Y2Nlc3MgPSBmYWxzZTsKICAgICBKU0M6OlBhcnNlckVycm9yIGVycm9yOwogICAgIHN3aXRjaCAo
bW9kZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0
aW5FeGVjdXRhYmxlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRp
bkV4ZWN1dGFibGVzLmNwcAppbmRleCBhYmFhZWYwODFmZTI0YjI5MWRiZjM4NzVmZWI2N2MzOTc4
YWJkNDJjLi44MzA0OTQ0YmFjNDM4YmM5NzkzNGE0YTAyZDAyMTU5NTViNGNhY2ZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVz
LmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogQnVpbHRpbkV4ZWN1dGFi
bGVzOjpCdWlsdGluRXhlY3V0YWJsZXMoVk0mIHZtKQogICAgIDogbV92bSh2bSkKLSAgICAsIG1f
Y29tYmluZWRTb3VyY2VQcm92aWRlcihTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKFN0cmlu
Z0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKHNfSlNDQ29tYmluZWRDb2RlLCBzX0pTQ0NvbWJpbmVk
Q29kZUxlbmd0aCksIHsgfSwgVVJMKCkpKQorICAgICwgbV9jb21iaW5lZFNvdXJjZVByb3ZpZGVy
KFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoU3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVy
YWwoc19KU0NDb21iaW5lZENvZGUsIHNfSlNDQ29tYmluZWRDb2RlTGVuZ3RoKSwgeyB9LCBTdHJp
bmcoKSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlckxvY2F0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlckxvY2F0aW9uLmNwcAppbmRleCA5MmFjYTYyOTY1YThmMjdhYzQ3ZjQzY2EyNGEzNzBl
NTRjMDNiZjJhLi4wZTE5OTk4ZjFlMzJhZTk2MmIyM2NlMzY3ZGMwOTc3ZjM3MzU0MTBjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJMb2NhdGlvbi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24u
Y3BwCkBAIC0zOSw5ICszOSw2IEBAIERlYnVnZ2VyTG9jYXRpb246OkRlYnVnZ2VyTG9jYXRpb24o
U2NyaXB0RXhlY3V0YWJsZSogZXhlY3V0YWJsZSkKICAgICBzb3VyY2VJRCA9IGV4ZWN1dGFibGUt
PnNvdXJjZUlEKCk7CiAgICAgbGluZSA9IGV4ZWN1dGFibGUtPmZpcnN0TGluZSgpOwogICAgIGNv
bHVtbiA9IGV4ZWN1dGFibGUtPnN0YXJ0Q29sdW1uKCk7Ci0gICAgdXJsID0gZXhlY3V0YWJsZS0+
c291cmNlVVJMKCk7Ci0gICAgaWYgKHVybC5pc0VtcHR5KCkpCi0gICAgICAgIHVybCA9IGV4ZWN1
dGFibGUtPnNvdXJjZSgpLnByb3ZpZGVyKCktPnNvdXJjZVVSTERpcmVjdGl2ZSgpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIv
RGVidWdnZXJMb2NhdGlvbi5oCmluZGV4IDNlMWM0MTY2YjBhN2U5MDQxMDY3N2Q2YjgyNmYxZDYy
MWYyOTRlNTUuLmU5NDg3NzE2OGM0MDA0ZWI5Y2FkMzhlNzViOWUzOGZjMjAwNjIzMGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uaApA
QCAtMzUsMTYgKzM1LDE0IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGFibGU7CiBzdHJ1Y3QgRGVidWdn
ZXJMb2NhdGlvbiB7CiAKICAgICBEZWJ1Z2dlckxvY2F0aW9uKCkgeyB9Ci0gICAgRGVidWdnZXJM
b2NhdGlvbihjb25zdCBTdHJpbmcmIHVybCwgaW50cHRyX3Qgc291cmNlSUQsIHVuc2lnbmVkIGxp
bmUsIHVuc2lnbmVkIGNvbHVtbikKLSAgICAgICAgOiB1cmwodXJsKQotICAgICAgICAsIHNvdXJj
ZUlEKHNvdXJjZUlEKQorICAgIERlYnVnZ2VyTG9jYXRpb24oaW50cHRyX3Qgc291cmNlSUQsIHVu
c2lnbmVkIGxpbmUsIHVuc2lnbmVkIGNvbHVtbikKKyAgICAgICAgOiBzb3VyY2VJRChzb3VyY2VJ
RCkKICAgICAgICAgLCBsaW5lKGxpbmUpCiAgICAgICAgICwgY29sdW1uKGNvbHVtbikKICAgICB7
IH0KIAogICAgIERlYnVnZ2VyTG9jYXRpb24oU2NyaXB0RXhlY3V0YWJsZSopOwogCi0gICAgU3Ry
aW5nIHVybDsKICAgICBpbnRwdHJfdCBzb3VyY2VJRCB7IG5vU291cmNlSUQgfTsKICAgICB1bnNp
Z25lZCBsaW5lIHsgMCB9OwogICAgIHVuc2lnbmVkIGNvbHVtbiB7IDAgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5k
ZXggZmJiMDRhNDhjY2QxNzc4OTQwZDA2NDcwNmU1Mjg0MDQ4MjJmYzk2MC4uOGRlZDEyOTVmOTQz
Njg3OGM3M2U5Y2VkYjY2MTMxMjNlNDIyMWRkZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTEzOSwxMSArMTM5
LDExIEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnNvdXJjZVBhcnNlZChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTb3VyY2VQcm92aWRlCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
IChlcnJvckxpbmUgIT0gLTEpIHsKLSAgICAgICAgYXV0byB1cmwgPSBzb3VyY2VQcm92aWRlci0+
dXJsKCk7CisgICAgICAgIGF1dG8gc291cmNlVVJMID0gc291cmNlUHJvdmlkZXItPnNvdXJjZVVS
TCgpOwogICAgICAgICBhdXRvIGRhdGEgPSBzb3VyY2VQcm92aWRlci0+c291cmNlKCkudG9TdHJp
bmcoKTsKICAgICAgICAgYXV0byBmaXJzdExpbmUgPSBzb3VyY2VQcm92aWRlci0+c3RhcnRQb3Np
dGlvbigpLm1fbGluZS5vbmVCYXNlZEludCgpOwogICAgICAgICBkaXNwYXRjaEZ1bmN0aW9uVG9M
aXN0ZW5lcnMoWyZdIChTY3JpcHREZWJ1Z0xpc3RlbmVyJiBsaXN0ZW5lcikgewotICAgICAgICAg
ICAgbGlzdGVuZXIuZmFpbGVkVG9QYXJzZVNvdXJjZSh1cmwuc3RyaW5nKCksIGRhdGEsIGZpcnN0
TGluZSwgZXJyb3JMaW5lLCBlcnJvck1lc3NhZ2UpOworICAgICAgICAgICAgbGlzdGVuZXIuZmFp
bGVkVG9QYXJzZVNvdXJjZShzb3VyY2VVUkwsIGRhdGEsIGZpcnN0TGluZSwgZXJyb3JMaW5lLCBl
cnJvck1lc3NhZ2UpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE1
Myw3ICsxNTMsNyBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpzb3VyY2VQYXJzZWQoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU291cmNlUHJvdmlkZQogICAgIC8vIEZJWE1FOiA8aHR0
cHM6Ly93ZWJraXQub3JnL2IvMTYyNzczPiBXZWIgSW5zcGVjdG9yOiBTaW1wbGlmeSBTY3JpcHRE
ZWJ1Z0xpc3RlbmVyOjpTY3JpcHQgdG8gdXNlIFNvdXJjZVByb3ZpZGVyCiAgICAgU2NyaXB0RGVi
dWdMaXN0ZW5lcjo6U2NyaXB0IHNjcmlwdDsKICAgICBzY3JpcHQuc291cmNlUHJvdmlkZXIgPSBz
b3VyY2VQcm92aWRlcjsKLSAgICBzY3JpcHQudXJsID0gc291cmNlUHJvdmlkZXItPnVybCgpLnN0
cmluZygpOworICAgIHNjcmlwdC51cmwgPSBzb3VyY2VQcm92aWRlci0+c291cmNlVVJMKCk7CiAg
ICAgc2NyaXB0LnNvdXJjZSA9IHNvdXJjZVByb3ZpZGVyLT5zb3VyY2UoKS50b1N0cmluZygpOwog
ICAgIHNjcmlwdC5zdGFydExpbmUgPSBzb3VyY2VQcm92aWRlci0+c3RhcnRQb3NpdGlvbigpLm1f
bGluZS56ZXJvQmFzZWRJbnQoKTsKICAgICBzY3JpcHQuc3RhcnRDb2x1bW4gPSBzb3VyY2VQcm92
aWRlci0+c3RhcnRQb3NpdGlvbigpLm1fY29sdW1uLnplcm9CYXNlZEludCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
anNjLmNwcAppbmRleCAwZjdjYjNiMmZjOTE4NjdmZjIxMTBhYzdhODc3ODJjNWI0MDBmNTM4Li5l
MjFlMWU0ZmZjMWMxNjRkOGM3NjZlNzk1ZmRhODM0YzIwMjg0MDkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNj
LmNwcApAQCAtNjc5LDUxICs2NzksNyBAQCBzdGF0aWMgVUNoYXIgcGF0aFNlcGFyYXRvcigpCiAj
ZW5kaWYKIH0KIAotc3RydWN0IERpcmVjdG9yeU5hbWUgewotICAgIC8vIEluIHVuaXgsIGl0IGlz
ICIvIi4gSW4gV2luZG93cywgaXQgYmVjb21lcyBhIGRyaXZlIGxldHRlciBsaWtlICJDOlwiCi0g
ICAgU3RyaW5nIHJvb3ROYW1lOwotCi0gICAgLy8gSWYgdGhlIGRpcmVjdG9yeSBuYW1lIGlzICIv
aG9tZS9XZWJLaXQiLCB0aGlzIGJlY29tZXMgImhvbWUvV2ViS2l0Ii4gSWYgdGhlIGRpcmVjdG9y
eSBuYW1lIGlzICIvIiwgdGhpcyBiZWNvbWVzICIiLgotICAgIFN0cmluZyBxdWVyeU5hbWU7Ci19
OwotCi1zdHJ1Y3QgTW9kdWxlTmFtZSB7Ci0gICAgTW9kdWxlTmFtZShjb25zdCBTdHJpbmcmIG1v
ZHVsZU5hbWUpOwotCi0gICAgYm9vbCBzdGFydHNXaXRoUm9vdCgpIGNvbnN0Ci0gICAgewotICAg
ICAgICByZXR1cm4gIXF1ZXJpZXMuaXNFbXB0eSgpICYmIHF1ZXJpZXNbMF0uaXNFbXB0eSgpOwot
ICAgIH0KLQotICAgIFZlY3RvcjxTdHJpbmc+IHF1ZXJpZXM7Ci19OwotCi1Nb2R1bGVOYW1lOjpN
b2R1bGVOYW1lKGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKLXsKLSAgICAvLyBBIG1vZHVsZSBu
YW1lIGdpdmVuIGZyb20gY29kZSBpcyByZXByZXNlbnRlZCBhcyB0aGUgVU5JWCBzdHlsZSBwYXRo
LiBMaWtlLCBgLi9BL0IuanNgLgotICAgIHF1ZXJpZXMgPSBtb2R1bGVOYW1lLnNwbGl0QWxsb3dp
bmdFbXB0eUVudHJpZXMoJy8nKTsKLX0KLQotc3RhdGljIE9wdGlvbmFsPERpcmVjdG9yeU5hbWU+
IGV4dHJhY3REaXJlY3RvcnlOYW1lKGNvbnN0IFN0cmluZyYgYWJzb2x1dGVQYXRoVG9GaWxlKQot
ewotICAgIHNpemVfdCBmaXJzdFNlcGFyYXRvclBvc2l0aW9uID0gYWJzb2x1dGVQYXRoVG9GaWxl
LmZpbmQocGF0aFNlcGFyYXRvcigpKTsKLSAgICBpZiAoZmlyc3RTZXBhcmF0b3JQb3NpdGlvbiA9
PSBub3RGb3VuZCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBEaXJlY3RvcnlO
YW1lIGRpcmVjdG9yeU5hbWU7Ci0gICAgZGlyZWN0b3J5TmFtZS5yb290TmFtZSA9IGFic29sdXRl
UGF0aFRvRmlsZS5zdWJzdHJpbmcoMCwgZmlyc3RTZXBhcmF0b3JQb3NpdGlvbiArIDEpOyAvLyBJ
bmNsdWRlIHRoZSBzZXBhcmF0b3IuCi0gICAgc2l6ZV90IGxhc3RTZXBhcmF0b3JQb3NpdGlvbiA9
IGFic29sdXRlUGF0aFRvRmlsZS5yZXZlcnNlRmluZChwYXRoU2VwYXJhdG9yKCkpOwotICAgIEFT
U0VSVF9XSVRIX01FU1NBR0UobGFzdFNlcGFyYXRvclBvc2l0aW9uICE9IG5vdEZvdW5kLCAiSWYg
dGhlIHNlcGFyYXRvciBpcyBub3QgZm91bmQsIHRoaXMgZnVuY3Rpb24gYWxyZWFkeSByZXR1cm5z
IHdoZW4gcGVyZm9ybWluZyB0aGUgZm9yd2FyZCBzZWFyY2guIik7Ci0gICAgaWYgKGZpcnN0U2Vw
YXJhdG9yUG9zaXRpb24gPT0gbGFzdFNlcGFyYXRvclBvc2l0aW9uKQotICAgICAgICBkaXJlY3Rv
cnlOYW1lLnF1ZXJ5TmFtZSA9IFN0cmluZ0ltcGw6OmVtcHR5KCk7Ci0gICAgZWxzZSB7Ci0gICAg
ICAgIHNpemVfdCBxdWVyeVN0YXJ0UG9zaXRpb24gPSBmaXJzdFNlcGFyYXRvclBvc2l0aW9uICsg
MTsKLSAgICAgICAgc2l6ZV90IHF1ZXJ5TGVuZ3RoID0gbGFzdFNlcGFyYXRvclBvc2l0aW9uIC0g
cXVlcnlTdGFydFBvc2l0aW9uOyAvLyBOb3QgaW5jbHVkZSB0aGUgbGFzdCBzZXBhcmF0b3IuCi0g
ICAgICAgIGRpcmVjdG9yeU5hbWUucXVlcnlOYW1lID0gYWJzb2x1dGVQYXRoVG9GaWxlLnN1YnN0
cmluZyhxdWVyeVN0YXJ0UG9zaXRpb24sIHF1ZXJ5TGVuZ3RoKTsKLSAgICB9Ci0gICAgcmV0dXJu
IGRpcmVjdG9yeU5hbWU7Ci19Ci0KLXN0YXRpYyBPcHRpb25hbDxEaXJlY3RvcnlOYW1lPiBjdXJy
ZW50V29ya2luZ0RpcmVjdG9yeSgpCitzdGF0aWMgVVJMIGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5
KCkKIHsKICNpZiBPUyhXSU5ET1dTKQogICAgIC8vIGh0dHBzOi8vbXNkbi5taWNyb3NvZnQuY29t
L2VuLXVzL2xpYnJhcnkvd2luZG93cy9kZXNrdG9wL2FhMzY0OTM0LmFzcHgKQEAgLTczNyw3ICs2
OTMsNyBAQCBzdGF0aWMgT3B0aW9uYWw8RGlyZWN0b3J5TmFtZT4gY3VycmVudFdvcmtpbmdEaXJl
Y3RvcnkoKQogICAgIC8vIEluIHRoZSBwYXRoIHV0aWxpdHkgZnVuY3Rpb25zIGluc2lkZSB0aGUg
SlNDIHNoZWxsLCB3ZSBkb2VzIG5vdCBoYW5kbGUgdGhlIFVOQyBhbmQgVU5DVyBpbmNsdWRpbmcg
dGhlIG5ldHdvcmsgaG9zdCBuYW1lLgogICAgIERXT1JEIGJ1ZmZlckxlbmd0aCA9IDo6R2V0Q3Vy
cmVudERpcmVjdG9yeVcoMCwgbnVsbHB0cik7CiAgICAgaWYgKCFidWZmZXJMZW5ndGgpCi0gICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IH07CiAgICAgLy8gSW4g
V2luZG93cywgd2NoYXJfdCBpcyB0aGUgVVRGLTE2TEUuCiAgICAgLy8gaHR0cHM6Ly9tc2RuLm1p
Y3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9kZDM3NDA4MS5hc3B4CiAgICAgLy8gaHR0cHM6Ly9t
c2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS93aW5kb3dzL2Rlc2t0b3AvZmYzODE0MDcu
YXNweApAQCAtNzQ2LDU0ICs3MDIsMzEgQEAgc3RhdGljIE9wdGlvbmFsPERpcmVjdG9yeU5hbWU+
IGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KCkKICAgICBTdHJpbmcgZGlyZWN0b3J5U3RyaW5nKGJ1
ZmZlci5kYXRhKCksIGxlbmd0aE5vdEluY2x1ZGluZ051bGwpOwogICAgIC8vIFdlIGRvbid0IHN1
cHBvcnQgbmV0d29yayBwYXRoIGxpa2UgXFxob3N0XHNoYXJlXDxwYXRoIG5hbWU+LgogICAgIGlm
IChkaXJlY3RvcnlTdHJpbmcuc3RhcnRzV2l0aCgiXFxcXCIpKQotICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworICAgICAgICByZXR1cm4geyB9OworCiAjZWxzZQogICAgIFZlY3RvcjxjaGFy
PiBidWZmZXIoUEFUSF9NQVgpOwogICAgIGlmICghZ2V0Y3dkKGJ1ZmZlci5kYXRhKCksIFBBVEhf
TUFYKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgfTsK
ICAgICBTdHJpbmcgZGlyZWN0b3J5U3RyaW5nID0gU3RyaW5nOjpmcm9tVVRGOChidWZmZXIuZGF0
YSgpKTsKICNlbmRpZgogICAgIGlmIChkaXJlY3RvcnlTdHJpbmcuaXNFbXB0eSgpKQotICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgaWYgKGRpcmVjdG9yeVN0cmluZ1tkaXJlY3Rv
cnlTdHJpbmcubGVuZ3RoKCkgLSAxXSA9PSBwYXRoU2VwYXJhdG9yKCkpCi0gICAgICAgIHJldHVy
biBleHRyYWN0RGlyZWN0b3J5TmFtZShkaXJlY3RvcnlTdHJpbmcpOwotICAgIC8vIEFwcGVuZCB0
aGUgc2VwZXJhdG9yIHRvIHJlcHJlc2VudHMgdGhlIGZpbGUgbmFtZS4gZXh0cmFjdERpcmVjdG9y
eU5hbWUgb25seSBhY2NlcHRzIHRoZSBhYnNvbHV0ZSBmaWxlIG5hbWUuCi0gICAgcmV0dXJuIGV4
dHJhY3REaXJlY3RvcnlOYW1lKG1ha2VTdHJpbmcoZGlyZWN0b3J5U3RyaW5nLCBwYXRoU2VwYXJh
dG9yKCkpKTsKLX0KLQotc3RhdGljIFN0cmluZyByZXNvbHZlUGF0aChjb25zdCBEaXJlY3RvcnlO
YW1lJiBkaXJlY3RvcnlOYW1lLCBjb25zdCBNb2R1bGVOYW1lJiBtb2R1bGVOYW1lKQotewotICAg
IFZlY3RvcjxTdHJpbmc+IGRpcmVjdG9yeVBpZWNlcyA9IGRpcmVjdG9yeU5hbWUucXVlcnlOYW1l
LnNwbGl0KHBhdGhTZXBhcmF0b3IoKSk7Ci0KLSAgICAvLyBPbmx5IGZpcnN0ICcvJyBpcyByZWNv
Z25pemVkIGFzIHRoZSBwYXRoIGZyb20gdGhlIHJvb3QuCi0gICAgaWYgKG1vZHVsZU5hbWUuc3Rh
cnRzV2l0aFJvb3QoKSkKLSAgICAgICAgZGlyZWN0b3J5UGllY2VzLmNsZWFyKCk7CisgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICBmb3IgKGNvbnN0IGF1dG8mIHF1ZXJ5IDogbW9kdWxlTmFtZS5x
dWVyaWVzKSB7Ci0gICAgICAgIGlmIChxdWVyeSA9PSBTdHJpbmcoIi4uIl9zKSkgewotICAgICAg
ICAgICAgaWYgKCFkaXJlY3RvcnlQaWVjZXMuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIGRp
cmVjdG9yeVBpZWNlcy5yZW1vdmVMYXN0KCk7Ci0gICAgICAgIH0gZWxzZSBpZiAoIXF1ZXJ5Lmlz
RW1wdHkoKSAmJiBxdWVyeSAhPSBTdHJpbmcoIi4iX3MpKQotICAgICAgICAgICAgZGlyZWN0b3J5
UGllY2VzLmFwcGVuZChxdWVyeSk7Ci0gICAgfQorICAgIC8vIEFkZCBhIHRyYWlsaW5nIHNsYXNo
IGlmIG5lZWRlZCBzbyB0aGUgVVJMIHJlc29sdmVzIHRvIGEgZGlyZWN0b3J5IGFuZCBub3QgYSBm
aWxlLgorICAgIGlmIChkaXJlY3RvcnlTdHJpbmdbZGlyZWN0b3J5U3RyaW5nLmxlbmd0aCgpIC0g
MV0gIT0gcGF0aFNlcGFyYXRvcigpKQorICAgICAgICBkaXJlY3RvcnlTdHJpbmcgPSBtYWtlU3Ry
aW5nKGRpcmVjdG9yeVN0cmluZywgcGF0aFNlcGFyYXRvcigpKTsKIAotICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZChkaXJlY3RvcnlOYW1lLnJvb3ROYW1lKTsK
LSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRpcmVjdG9yeVBpZWNlcy5zaXplKCk7ICsraSkg
ewotICAgICAgICBidWlsZGVyLmFwcGVuZChkaXJlY3RvcnlQaWVjZXNbaV0pOwotICAgICAgICBp
ZiAoaSArIDEgIT0gZGlyZWN0b3J5UGllY2VzLnNpemUoKSkKLSAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKHBhdGhTZXBhcmF0b3IoKSk7Ci0gICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgcmV0dXJuIFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChkaXJlY3Rv
cnlTdHJpbmcpOwogfQogCi1zdGF0aWMgU3RyaW5nIGFic29sdXRlUGF0aChjb25zdCBTdHJpbmcm
IGZpbGVOYW1lKQorc3RhdGljIFVSTCBhYnNvbHV0ZVBhdGgoY29uc3QgU3RyaW5nJiBmaWxlTmFt
ZSkKIHsKICAgICBhdXRvIGRpcmVjdG9yeU5hbWUgPSBjdXJyZW50V29ya2luZ0RpcmVjdG9yeSgp
OwotICAgIGlmICghZGlyZWN0b3J5TmFtZSkKLSAgICAgICAgcmV0dXJuIGZpbGVOYW1lOwotICAg
IHJldHVybiByZXNvbHZlUGF0aChkaXJlY3RvcnlOYW1lLnZhbHVlKCksIE1vZHVsZU5hbWUoZmls
ZU5hbWUuaW1wbCgpKSk7CisgICAgaWYgKCFkaXJlY3RvcnlOYW1lLmlzVmFsaWQoKSkKKyAgICAg
ICAgcmV0dXJuIFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChmaWxlTmFtZSk7CisKKyAg
ICByZXR1cm4gVVJMKGRpcmVjdG9yeU5hbWUsIGZpbGVOYW1lKTsKIH0KIAogSlNJbnRlcm5hbFBy
b21pc2UqIEdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTTW9kdWxlTG9hZGVyKiwgSlNTdHJpbmcqIG1vZHVsZU5hbWVW
YWx1ZSwgSlNWYWx1ZSBwYXJhbWV0ZXJzLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdp
bikKQEAgLTgxMSwyMCArNzQ0LDI2IEBAIEpTSW50ZXJuYWxQcm9taXNlKiBHbG9iYWxPYmplY3Q6
Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgICAg
IHJldHVybiBwcm9taXNlOwogICAgIH07CiAKLSAgICBpZiAoc291cmNlT3JpZ2luLmlzTnVsbCgp
KQorICAgIGlmICghc291cmNlT3JpZ2luLnVybCgpKQogICAgICAgICByZXR1cm4gcmVqZWN0KGNy
ZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgIkNvdWxkIG5vdCByZXNvbHZlIHRoZSBtb2R1bGUgc3Bl
Y2lmaWVyLiJfcykpOwogCi0gICAgYXV0byByZWZlcnJlciA9IHNvdXJjZU9yaWdpbi5zdHJpbmco
KTsKLSAgICBhdXRvIG1vZHVsZU5hbWUgPSBtb2R1bGVOYW1lVmFsdWUtPnZhbHVlKGdsb2JhbE9i
amVjdCk7CisgICAgYXV0byByZWZlcnJlciA9IHNvdXJjZU9yaWdpbi51cmwoKTsKKyAgICBhdXRv
IHNwZWNpZmllciA9IG1vZHVsZU5hbWVWYWx1ZS0+dmFsdWUoZ2xvYmFsT2JqZWN0KTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIG51bGxwdHIpOwogICAgIGlmIChVTkxJS0VM
WShjYXRjaFNjb3BlLmV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIHJlamVjdChjYXRjaFNj
b3BlLmV4Y2VwdGlvbigpLT52YWx1ZSgpKTsKIAotICAgIGF1dG8gZGlyZWN0b3J5TmFtZSA9IGV4
dHJhY3REaXJlY3RvcnlOYW1lKHJlZmVycmVyLmltcGwoKSk7Ci0gICAgaWYgKCFkaXJlY3RvcnlO
YW1lKQotICAgICAgICByZXR1cm4gcmVqZWN0KGNyZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgbWFr
ZVN0cmluZygiQ291bGQgbm90IHJlc29sdmUgdGhlIHJlZmVycmVyIG5hbWUgJyIsIFN0cmluZyhy
ZWZlcnJlci5pbXBsKCkpLCAiJy4iKSkpOworICAgIGlmICghcmVmZXJyZXIuaXNMb2NhbEZpbGUo
KSkKKyAgICAgICAgcmV0dXJuIHJlamVjdChjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsIG1ha2VT
dHJpbmcoIkNvdWxkIG5vdCByZXNvbHZlIHRoZSByZWZlcnJlcidzIHBhdGggJyIsIHJlZmVycmVy
LnN0cmluZygpLCAiJywgd2hpbGUgdHJ5aW5nIHRvIHJlc29sdmUgbW9kdWxlICciLCBzcGVjaWZp
ZXIsICInLiIpKSk7CisKKyAgICBpZiAoIXNwZWNpZmllci5zdGFydHNXaXRoKCcvJykgJiYgIXNw
ZWNpZmllci5zdGFydHNXaXRoKCIuLyIpICYmICFzcGVjaWZpZXIuc3RhcnRzV2l0aCgiLi4vIikp
CisgICAgICAgIHJldHVybiByZWplY3QoY3JlYXRlVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgbWFr
ZVN0cmluZygiTW9kdWxlIHNwZWNpZmllciwgJyJfcywgc3BlY2lmaWVyLCAiJyBkb2VzIG5vdCBz
dGFydCB3aXRoIFwiL1wiLCBcIi4vXCIsIG9yIFwiLi4vXCIuIFJlZmVyZW5jZWQgZnJvbTogIl9z
LCByZWZlcnJlci5maWxlU3lzdGVtUGF0aCgpKSkpOworCisgICAgVVJMIG1vZHVsZVVSTChyZWZl
cnJlciwgc3BlY2lmaWVyKTsKKyAgICBpZiAoIW1vZHVsZVVSTC5pc0xvY2FsRmlsZSgpKQorICAg
ICAgICByZXR1cm4gcmVqZWN0KGNyZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgbWFrZVN0cmluZygi
TW9kdWxlIHVybCwgJyIsIG1vZHVsZVVSTC5zdHJpbmcoKSwgIicgZG9lcyBub3QgbWFwIHRvIGEg
bG9jYWwgZmlsZS4iKSkpOwogCi0gICAgYXV0byByZXN1bHQgPSBKU0M6OmltcG9ydE1vZHVsZShn
bG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlc29sdmVQYXRoKGRpcmVj
dG9yeU5hbWUudmFsdWUoKSwgTW9kdWxlTmFtZShtb2R1bGVOYW1lKSkpLCBwYXJhbWV0ZXJzLCBq
c1VuZGVmaW5lZCgpKTsKKyAgICBhdXRvIHJlc3VsdCA9IEpTQzo6aW1wb3J0TW9kdWxlKGdsb2Jh
bE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgbW9kdWxlVVJMLnN0cmluZygpKSwg
cGFyYW1ldGVycywganNVbmRlZmluZWQoKSk7CiAgICAgaWYgKFVOTElLRUxZKGNhdGNoU2NvcGUu
ZXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gcmVqZWN0KGNhdGNoU2NvcGUuZXhjZXB0aW9u
KCktPnZhbHVlKCkpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC04NDIsMzQgKzc4MSw0MSBAQCBJ
ZGVudGlmaWVyIEdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU01vZAogICAgIGlmIChrZXkuaXNTeW1ib2woKSkKICAgICAgICAg
cmV0dXJuIGtleTsKIAotICAgIGlmIChyZWZlcnJlclZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKLSAg
ICAgICAgYXV0byBkaXJlY3RvcnlOYW1lID0gY3VycmVudFdvcmtpbmdEaXJlY3RvcnkoKTsKLSAg
ICAgICAgaWYgKCFkaXJlY3RvcnlOYW1lKSB7Ci0gICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihn
bG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsICJDb3VsZCBub3Qg
cmVzb2x2ZSB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4iX3MpKTsKKyAgICBhdXRvIHJl
c29sdmVQYXRoID0gWyZdIChjb25zdCBVUkwmIGRpcmVjdG9yeVVSTCkgLT4gSWRlbnRpZmllciB7
CisgICAgICAgIFN0cmluZyBzcGVjaWZpZXIgPSBrZXkuaW1wbCgpOworICAgICAgICBpZiAoIXNw
ZWNpZmllci5zdGFydHNXaXRoKCcvJykgJiYgIXNwZWNpZmllci5zdGFydHNXaXRoKCIuLyIpICYm
ICFzcGVjaWZpZXIuc3RhcnRzV2l0aCgiLi4vIikpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIG1ha2VTdHJpbmcoIk1vZHVsZSBzcGVjaWZpZXIsICci
X3MsIHNwZWNpZmllciwgIicgZG9lcyBub3Qgc3RhcnQgd2l0aCBcIi9cIiwgXCIuL1wiLCBvciBc
Ii4uL1wiLiBSZWZlcmVuY2VkIGZyb206ICJfcywgZGlyZWN0b3J5VVJMLmZpbGVTeXN0ZW1QYXRo
KCkpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlc29sdmVQYXRoKGRpcmVjdG9yeU5hbWUudmFs
dWUoKSwgTW9kdWxlTmFtZShrZXkuaW1wbCgpKSkpOwotICAgIH0KIAotICAgIGNvbnN0IElkZW50
aWZpZXIgcmVmZXJyZXIgPSByZWZlcnJlclZhbHVlLnRvUHJvcGVydHlLZXkoZ2xvYmFsT2JqZWN0
KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgICAgICBpZiAoIWRp
cmVjdG9yeVVSTC5pc0xvY2FsRmlsZSgpKSB7CisgICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihn
bG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsIG1ha2VTdHJpbmco
IkNvdWxkIG5vdCByZXNvbHZlIHRoZSByZWZlcnJlcidzIHBhdGg6ICIsIGRpcmVjdG9yeVVSTC5z
dHJpbmcoKSkpKTsKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIH0KIAotICAgIGlm
IChyZWZlcnJlci5pc1N5bWJvbCgpKSB7Ci0gICAgICAgIGF1dG8gZGlyZWN0b3J5TmFtZSA9IGN1
cnJlbnRXb3JraW5nRGlyZWN0b3J5KCk7Ci0gICAgICAgIGlmICghZGlyZWN0b3J5TmFtZSkgewot
ICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJy
b3IoZ2xvYmFsT2JqZWN0LCAiQ291bGQgbm90IHJlc29sdmUgdGhlIGN1cnJlbnQgd29ya2luZyBk
aXJlY3RvcnkuIl9zKSk7CisgICAgICAgIFVSTCByZXNvbHZlZFVSTChkaXJlY3RvcnlVUkwsIHNw
ZWNpZmllcik7CisgICAgICAgIGlmICghcmVzb2x2ZWRVUkwuaXNWYWxpZCgpKSB7CisgICAgICAg
ICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVFcnJvcihnbG9i
YWxPYmplY3QsIG1ha2VTdHJpbmcoIlJlc29sdmVkIG1vZHVsZSB1cmwgaXMgbm90IHZhbGlkOiAi
LCByZXNvbHZlZFVSTC5zdHJpbmcoKSkpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlc29sdmVQ
YXRoKGRpcmVjdG9yeU5hbWUudmFsdWUoKSwgTW9kdWxlTmFtZShrZXkuaW1wbCgpKSkpOwotICAg
IH0KKyAgICAgICAgQVNTRVJUKHJlc29sdmVkVVJMLmlzTG9jYWxGaWxlKCkpOwogCi0gICAgLy8g
SWYgdGhlIHJlZmVycmVyIGV4aXN0cywgd2UgYXNzdW1lIHRoYXQgdGhlIHJlZmVycmVyIGlzIHRo
ZSBjb3JyZWN0IGFic29sdXRlIHBhdGguCi0gICAgYXV0byBkaXJlY3RvcnlOYW1lID0gZXh0cmFj
dERpcmVjdG9yeU5hbWUocmVmZXJyZXIuaW1wbCgpKTsKLSAgICBpZiAoIWRpcmVjdG9yeU5hbWUp
IHsKLSAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJy
b3IoZ2xvYmFsT2JqZWN0LCBtYWtlU3RyaW5nKCJDb3VsZCBub3QgcmVzb2x2ZSB0aGUgcmVmZXJy
ZXIgbmFtZSAnIiwgU3RyaW5nKHJlZmVycmVyLmltcGwoKSksICInLiIpKSk7Ci0gICAgICAgIHJl
dHVybiB7IH07Ci0gICAgfQotICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBy
ZXNvbHZlUGF0aChkaXJlY3RvcnlOYW1lLnZhbHVlKCksIE1vZHVsZU5hbWUoa2V5LmltcGwoKSkp
KTsKKyAgICAgICAgcmV0dXJuIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlc29sdmVkVVJM
LnN0cmluZygpKTsKKyAgICB9OworCisgICAgaWYgKHJlZmVycmVyVmFsdWUuaXNVbmRlZmluZWQo
KSkKKyAgICAgICAgcmV0dXJuIHJlc29sdmVQYXRoKGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KCkp
OworCisgICAgY29uc3QgSWRlbnRpZmllciByZWZlcnJlciA9IHJlZmVycmVyVmFsdWUudG9Qcm9w
ZXJ0eUtleShnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CisKKyAgICBpZiAocmVmZXJyZXIuaXNTeW1ib2woKSkKKyAgICAgICAgcmV0dXJuIHJlc29s
dmVQYXRoKGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KCkpOworCisgICAgLy8gSWYgdGhlIHJlZmVy
cmVyIGV4aXN0cywgd2UgYXNzdW1lIHRoYXQgdGhlIHJlZmVycmVyIGlzIHRoZSBjb3JyZWN0IGZp
bGUgdXJsLgorICAgIFVSTCB1cmwgPSBVUkwoeyB9LCByZWZlcnJlci5pbXBsKCkpOworICAgIEFT
U0VSVCh1cmwuaXNMb2NhbEZpbGUoKSk7CisgICAgcmV0dXJuIHJlc29sdmVQYXRoKHVybCk7CiB9
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3Rvcj4KQEAgLTk1NCw5ICs5MDAsOSBAQCBzdGF0aWMg
Ym9vbCBmZXRjaFNjcmlwdEZyb21Mb2NhbEZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBmaWxlTmFt
ZSwgVmVjdG9yPGNoYXI+JgogCiBjbGFzcyBTaGVsbFNvdXJjZVByb3ZpZGVyIGZpbmFsIDogcHVi
bGljIFN0cmluZ1NvdXJjZVByb3ZpZGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNoZWxs
U291cmNlUHJvdmlkZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNl
T3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVybCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFy
dFBvc2l0aW9uLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSkKKyAgICBzdGF0
aWMgUmVmPFNoZWxsU291cmNlUHJvdmlkZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHNvdXJjZSwg
Y29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0cmluZyYmIHNvdXJjZVVSTCwgY29u
c3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUg
c291cmNlVHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNoZWxsU291
cmNlUHJvdmlkZXIoc291cmNlLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUodXJsKSwgc3RhcnRQb3Np
dGlvbiwgc291cmNlVHlwZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGVsbFNv
dXJjZVByb3ZpZGVyKHNvdXJjZSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKHNvdXJjZVVSTCksIHN0
YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpKTsKICAgICB9CiAKICAgICB+U2hlbGxTb3VyY2VQcm92
aWRlcigpIGZpbmFsCkBAIC0xMDM3LDcgKzk4Myw3IEBAIHByaXZhdGU6CiAgICAgICAgIGlmICgh
Y2FjaGVFbmFibGVkKCkpCiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgY2hh
cio+KG51bGxwdHIpOwogICAgICAgICBjb25zdCBjaGFyKiBjYWNoZVBhdGggPSBPcHRpb25zOjpk
aXNrQ2FjaGVQYXRoKCk7Ci0gICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IEZpbGVTeXN0ZW06OmVu
Y29kZUZvckZpbGVOYW1lKEZpbGVTeXN0ZW06Omxhc3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1Ry
YWlsaW5nU2xhc2goc291cmNlT3JpZ2luKCkuc3RyaW5nKCkpKTsKKyAgICAgICAgU3RyaW5nIGZp
bGVuYW1lID0gRmlsZVN5c3RlbTo6ZW5jb2RlRm9yRmlsZU5hbWUoRmlsZVN5c3RlbTo6bGFzdENv
bXBvbmVudE9mUGF0aElnbm9yaW5nVHJhaWxpbmdTbGFzaChzb3VyY2VPcmlnaW4oKS51cmwoKS5m
aWxlU3lzdGVtUGF0aCgpKSk7CiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBl
bmRpbmdDb21wb25lbnQoY2FjaGVQYXRoLCBtYWtlU3RyaW5nKHNvdXJjZSgpLnRvU3RyaW5nKCku
aGFzaCgpLCAnLScsIGZpbGVuYW1lLCAiLmJ5dGVjb2RlLWNhY2hlIikpOwogICAgIH0KIApAQCAt
MTA2Nyw4ICsxMDEzLDggQEAgcHJpdmF0ZToKICAgICAgICAgbV9jYWNoZWRCeXRlY29kZSA9IENh
Y2hlZEJ5dGVjb2RlOjpjcmVhdGUoV1RGTW92ZShtYXBwZWRGaWxlRGF0YSkpOwogICAgIH0KIAot
ICAgIFNoZWxsU291cmNlUHJvdmlkZXIoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNvdXJj
ZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3Rh
cnRQb3NpdGlvbiwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUpCi0gICAgICAg
IDogU3RyaW5nU291cmNlUHJvdmlkZXIoc291cmNlLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUodXJs
KSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkKKyAgICBTaGVsbFNvdXJjZVByb3ZpZGVyKGNv
bnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3Ry
aW5nJiYgc291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJj
ZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlKQorICAgICAgICA6IFN0cmluZ1NvdXJjZVBy
b3ZpZGVyKHNvdXJjZSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKHNvdXJjZVVSTCksIHN0YXJ0UG9z
aXRpb24sIHNvdXJjZVR5cGUpCiAgICAgewogICAgIH0KIApAQCAtMTA4MSw5ICsxMDI3LDkgQEAg
cHJpdmF0ZToKICAgICBtdXRhYmxlIFJlZlB0cjxDYWNoZWRCeXRlY29kZT4gbV9jYWNoZWRCeXRl
Y29kZTsKIH07CiAKLXN0YXRpYyBpbmxpbmUgU291cmNlQ29kZSBqc2NTb3VyY2UoY29uc3QgU3Ry
aW5nJiBzb3VyY2UsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwg
PSBVUkwoKSwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9u
KCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlID0gU291cmNlUHJvdmlkZXJT
b3VyY2VUeXBlOjpQcm9ncmFtKQorc3RhdGljIGlubGluZSBTb3VyY2VDb2RlIGpzY1NvdXJjZShj
b25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0
cmluZyBzb3VyY2VVUkwgPSBTdHJpbmcoKSwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0
aW9uID0gVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBl
ID0gU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtKQogewotICAgIHJldHVybiBTb3Vy
Y2VDb2RlKFNoZWxsU291cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIHNvdXJjZU9yaWdpbiwg
V1RGTW92ZSh1cmwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSwgc3RhcnRQb3NpdGlvbi5t
X2xpbmUub25lQmFzZWRJbnQoKSwgc3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgp
KTsKKyAgICByZXR1cm4gU291cmNlQ29kZShTaGVsbFNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291
cmNlLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUoc291cmNlVVJMKSwgc3RhcnRQb3NpdGlvbiwgc291
cmNlVHlwZSksIHN0YXJ0UG9zaXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCksIHN0YXJ0UG9zaXRp
b24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3Rv
cj4KQEAgLTEwOTEsMTMgKzEwMzcsMTMgQEAgc3RhdGljIGlubGluZSBTb3VyY2VDb2RlIGpzY1Nv
dXJjZShjb25zdCBWZWN0b3ImIHV0ZjgsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmMKIHsKICAg
ICAvLyBGSVhNRTogVGhpcyBzaG91bGQgdXNlIGFuIGFic29sdXRlIGZpbGUgVVJMIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTMwNzcKICAgICBTdHJpbmcgc3RyID0g
c3RyaW5nRnJvbVVURih1dGY4KTsKLSAgICByZXR1cm4ganNjU291cmNlKHN0ciwgc291cmNlT3Jp
Z2luLCBVUkwoeyB9LCBmaWxlbmFtZSkpOworICAgIHJldHVybiBqc2NTb3VyY2Uoc3RyLCBzb3Vy
Y2VPcmlnaW4sIGZpbGVuYW1lKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yPgotc3Rh
dGljIGJvb2wgZmV0Y2hNb2R1bGVGcm9tTG9jYWxGaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgZmls
ZU5hbWUsIFZlY3RvciYgYnVmZmVyKQorc3RhdGljIGJvb2wgZmV0Y2hNb2R1bGVGcm9tTG9jYWxG
aWxlU3lzdGVtKGNvbnN0IFVSTCYgZmlsZVVSTCwgVmVjdG9yJiBidWZmZXIpCiB7Ci0gICAgLy8g
V2UgYXNzdW1lIHRoYXQgZmlsZU5hbWUgaXMgYWx3YXlzIGFuIGFic29sdXRlIHBhdGguCisgICAg
U3RyaW5nIGZpbGVOYW1lID0gZmlsZVVSTC5maWxlU3lzdGVtUGF0aCgpOwogI2lmIE9TKFdJTkRP
V1MpCiAgICAgLy8gaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS93aW5k
b3dzL2Rlc2t0b3AvYWEzNjUyNDcuYXNweCNtYXhwYXRoCiAgICAgLy8gVXNlIGxvbmcgVU5DIHRv
IHBhc3MgdGhlIGxvbmcgcGF0aCBuYW1lIHRvIHRoZSBXaW5kb3dzIEFQSXMuCkBAIC0xMTQ5LDE4
ICsxMDk1LDIwIEBAIEpTSW50ZXJuYWxQcm9taXNlKiBHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRl
ckZldGNoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgaWYgKFVOTElLRUxZKGNh
dGNoU2NvcGUuZXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gcmVqZWN0KGNhdGNoU2NvcGUu
ZXhjZXB0aW9uKCktPnZhbHVlKCkpOwogCi0gICAgLy8gSGVyZSwgbm93IHdlIGNvbnNpZGVyIG1v
ZHVsZUtleSBhcyB0aGUgZmlsZU5hbWUuCisgICAgVVJMIG1vZHVsZVVSTCh7IH0sIG1vZHVsZUtl
eSk7CisgICAgQVNTRVJUKG1vZHVsZVVSTC5pc0xvY2FsRmlsZSgpKTsKKyAgICAvLyBTdHJpcCB0
aGUgVVJJIGZyb20gb3VyIGtleSBzbyBFcnJvcnMgcHJpbnQgY2Fub25pY2FsIHN5c3RlbSBwYXRo
cy4KKyAgICBtb2R1bGVLZXkgPSBtb2R1bGVVUkwuZmlsZVN5c3RlbVBhdGgoKTsKKwogICAgIFZl
Y3Rvcjx1aW50OF90PiBidWZmZXI7Ci0gICAgaWYgKCFmZXRjaE1vZHVsZUZyb21Mb2NhbEZpbGVT
eXN0ZW0obW9kdWxlS2V5LCBidWZmZXIpKQorICAgIGlmICghZmV0Y2hNb2R1bGVGcm9tTG9jYWxG
aWxlU3lzdGVtKG1vZHVsZVVSTCwgYnVmZmVyKSkKICAgICAgICAgcmV0dXJuIHJlamVjdChjcmVh
dGVFcnJvcihnbG9iYWxPYmplY3QsIG1ha2VTdHJpbmcoIkNvdWxkIG5vdCBvcGVuIGZpbGUgJyIs
IG1vZHVsZUtleSwgIicuIikpKTsKIAotCi0gICAgVVJMIG1vZHVsZVVSTCA9IFVSTCh7IH0sIG1v
ZHVsZUtleSk7CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIC8vIEZpbGVTeXN0ZW0gZG9l
cyBub3QgaGF2ZSBtaW1lLXR5cGUgaGVhZGVyLiBUaGUgSlNDIHNoZWxsIHJlY29nbml6ZXMgV2Vi
QXNzZW1ibHkncyBtYWdpYyBoZWFkZXIuCiAgICAgaWYgKGJ1ZmZlci5zaXplKCkgPj0gNCkgewog
ICAgICAgICBpZiAoYnVmZmVyWzBdID09ICdcMCcgJiYgYnVmZmVyWzFdID09ICdhJyAmJiBidWZm
ZXJbMl0gPT0gJ3MnICYmIGJ1ZmZlclszXSA9PSAnbScpIHsKLSAgICAgICAgICAgIGF1dG8gc291
cmNlID0gU291cmNlQ29kZShXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoV1RGTW92
ZShidWZmZXIpLCBTb3VyY2VPcmlnaW4geyBtb2R1bGVLZXkgfSwgV1RGTW92ZShtb2R1bGVVUkwp
KSk7CisgICAgICAgICAgICBhdXRvIHNvdXJjZSA9IFNvdXJjZUNvZGUoV2ViQXNzZW1ibHlTb3Vy
Y2VQcm92aWRlcjo6Y3JlYXRlKFdURk1vdmUoYnVmZmVyKSwgU291cmNlT3JpZ2luIHsgbW9kdWxl
VVJMIH0sIFdURk1vdmUobW9kdWxlS2V5KSkpOwogICAgICAgICAgICAgY2F0Y2hTY29wZS5yZWxl
YXNlQXNzZXJ0Tm9FeGNlcHRpb24oKTsKICAgICAgICAgICAgIGF1dG8gc291cmNlQ29kZSA9IEpT
U291cmNlQ29kZTo6Y3JlYXRlKHZtLCBXVEZNb3ZlKHNvdXJjZSkpOwogICAgICAgICAgICAgY2F0
Y2hTY29wZS5yZWxlYXNlQXNzZXJ0Tm9FeGNlcHRpb24oKTsKQEAgLTExNzEsNyArMTExOSw3IEBA
IEpTSW50ZXJuYWxQcm9taXNlKiBHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckZldGNoKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgfQogI2VuZGlmCiAKLSAgICBhdXRvIHNvdXJj
ZUNvZGUgPSBKU1NvdXJjZUNvZGU6OmNyZWF0ZSh2bSwganNjU291cmNlKHN0cmluZ0Zyb21VVEYo
YnVmZmVyKSwgU291cmNlT3JpZ2luIHsgbW9kdWxlS2V5IH0sIFdURk1vdmUobW9kdWxlVVJMKSwg
VGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlKSk7CisgICAg
YXV0byBzb3VyY2VDb2RlID0gSlNTb3VyY2VDb2RlOjpjcmVhdGUodm0sIGpzY1NvdXJjZShzdHJp
bmdGcm9tVVRGKGJ1ZmZlciksIFNvdXJjZU9yaWdpbiB7IG1vZHVsZVVSTCB9LCBXVEZNb3ZlKG1v
ZHVsZUtleSksIFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVs
ZSkpOwogICAgIGNhdGNoU2NvcGUucmVsZWFzZUFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgcHJv
bWlzZS0+cmVzb2x2ZShnbG9iYWxPYmplY3QsIHNvdXJjZUNvZGUpOwogICAgIGNhdGNoU2NvcGUu
Y2xlYXJFeGNlcHRpb24oKTsKQEAgLTE1MTUsMTQgKzE0NjMsMjUgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkxvYWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW0KICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCisgICAgYm9vbCBjYWxsZXJSZWxhdGl2ZSA9
IGNhbGxGcmFtZS0+YXJndW1lbnQoMSkuZ2V0U3RyaW5nKGdsb2JhbE9iamVjdCkgPT0gImNhbGxl
ciByZWxhdGl2ZSJfczsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNW
YWx1ZSgpKTsKKwogICAgIFN0cmluZyBmaWxlTmFtZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCku
dG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBlbmNvZGVkSlNWYWx1ZSgpKTsKKworICAgIFVSTCBwYXRoOworICAgIGlmIChjYWxsZXJSZWxh
dGl2ZSkgeworICAgICAgICBwYXRoID0gVVJMKGNhbGxGcmFtZS0+Y2FsbGVyU291cmNlT3JpZ2lu
KHZtKS51cmwoKSwgZmlsZU5hbWUpOworICAgICAgICBpZiAoIXBhdGguaXNMb2NhbEZpbGUoKSkK
KyAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNRXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUs
IGNyZWF0ZVVSSUVycm9yKGdsb2JhbE9iamVjdCwgbWFrZVN0cmluZygiY2FsbGVyIHJlbGF0aXZl
IFVSTCBwYXRoIGlzIG5vdCBhIGxvY2FsIGZpbGU6ICIsIHBhdGguc3RyaW5nKCkpKSk7CisgICAg
fSBlbHNlCisgICAgICAgIHBhdGggPSBhYnNvbHV0ZVBhdGgoZmlsZU5hbWUpOwogICAgIFZlY3Rv
cjxjaGFyPiBzY3JpcHQ7Ci0gICAgaWYgKCFmZXRjaFNjcmlwdEZyb21Mb2NhbEZpbGVTeXN0ZW0o
ZmlsZU5hbWUsIHNjcmlwdCkpCisgICAgaWYgKCFmZXRjaFNjcmlwdEZyb21Mb2NhbEZpbGVTeXN0
ZW0ocGF0aC5maWxlU3lzdGVtUGF0aCgpLCBzY3JpcHQpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVycm9y
KGdsb2JhbE9iamVjdCwgIkNvdWxkIG5vdCBvcGVuIGZpbGUuIl9zKSkpOwogCiAgICAgTmFrZWRQ
dHI8RXhjZXB0aW9uPiBldmFsdWF0aW9uRXhjZXB0aW9uOwotICAgIEpTVmFsdWUgcmVzdWx0ID0g
ZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBqc2NTb3VyY2Uoc2NyaXB0LCBTb3VyY2VPcmlnaW4geyBh
YnNvbHV0ZVBhdGgoZmlsZU5hbWUpIH0sIGZpbGVOYW1lKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9u
RXhjZXB0aW9uKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGV2YWx1YXRlKGdsb2JhbE9iamVjdCwg
anNjU291cmNlKHNjcmlwdCwgU291cmNlT3JpZ2luIHsgcGF0aCB9LCBmaWxlTmFtZSksIEpTVmFs
dWUoKSwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7CiAgICAgaWYgKGV2YWx1YXRpb25FeGNlcHRpb24p
CiAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGV2YWx1YXRpb25F
eGNlcHRpb24pOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKQEAgLTE2NDgs
NyArMTYwNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DYWxsZXJT
b3VyY2VPcmlnaW4oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIFNvdXJjZU9yaWdpbiBzb3VyY2VPcmlnaW4gPSBjYWxsRnJh
bWUtPmNhbGxlclNvdXJjZU9yaWdpbih2bSk7Ci0gICAgaWYgKHNvdXJjZU9yaWdpbi5pc051bGwo
KSkKKyAgICBpZiAoc291cmNlT3JpZ2luLnVybCgpLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
U3RyaW5nKHZtLCBzb3VyY2VPcmlnaW4uc3RyaW5nKCkpKTsKIH0KQEAgLTE5MTIsNyArMTg3MSw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV2YWx1YXRpb25FeGNlcHRpb247CiAg
ICAgICAgICAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0OwotICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBldmFsdWF0ZShnbG9iYWxPYmplY3QsIGpzY1NvdXJjZShzb3VyY2VDb2RlLCBTb3Vy
Y2VPcmlnaW4oIndvcmtlciJfcykpLCBKU1ZhbHVlKCksIGV2YWx1YXRpb25FeGNlcHRpb24pOwor
ICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBldmFsdWF0ZShnbG9iYWxPYmplY3QsIGpzY1Nv
dXJjZShzb3VyY2VDb2RlLCBTb3VyY2VPcmlnaW4oVVJMKHsgfSwgIndvcmtlciJfcykpKSwgSlNW
YWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGV2
YWx1YXRpb25FeGNlcHRpb24pCiAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBldmFs
dWF0aW9uRXhjZXB0aW9uLT52YWx1ZSgpOwogICAgICAgICAgICAgICAgICAgICBjaGVja0V4Y2Vw
dGlvbihnbG9iYWxPYmplY3QsIHRydWUsIGV2YWx1YXRpb25FeGNlcHRpb24sIHJlc3VsdCwgY29t
bWFuZExpbmUsIHN1Y2Nlc3MpOwpAQCAtMjMzNiw3ICsyMjk1LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNoZWNrTW9kdWxlU3ludGF4KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmoKICAgICBzdG9wV2F0Y2guc3RhcnQoKTsKIAogICAgIFBhcnNlckVycm9yIGVycm9y
OwotICAgIGJvb2wgdmFsaWRTeW50YXggPSBjaGVja01vZHVsZVN5bnRheChnbG9iYWxPYmplY3Qs
IGpzY1NvdXJjZShzb3VyY2UsIHsgfSwgVVJMKCksIFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92
aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSksIGVycm9yKTsKKyAgICBib29sIHZhbGlkU3ludGF4ID0g
Y2hlY2tNb2R1bGVTeW50YXgoZ2xvYmFsT2JqZWN0LCBqc2NTb3VyY2Uoc291cmNlLCB7IH0sIFN0
cmluZygpLCBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUp
LCBlcnJvcik7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUo
KSk7CiAgICAgc3RvcFdhdGNoLnN0b3AoKTsKIApAQCAtMjc5Niw2ICsyNzU1LDggQEAgc3RhdGlj
IHZvaWQgcnVuV2l0aE9wdGlvbnMoR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENvbW1hbmRM
aW5lJiBvcHRpb25zLCBib28KICAgICAgICAgICAgICAgICBzY3JpcHRCdWZmZXIuYXBwZW5kKCJc
InVzZSBzdHJpY3RcIjtcbiIsIHN0cmxlbigiXCJ1c2Ugc3RyaWN0XCI7XG4iKSk7CiAKICAgICAg
ICAgICAgIGlmIChpc01vZHVsZSkgeworICAgICAgICAgICAgICAgIC8vIElmIHRoZSBwYXNzZWQg
ZmlsZSBpc24ndCBhbiBhYnNvbHV0ZSBwYXRoIGFwcGVuZCAiLi8iIHNvIHRoZSBtb2R1bGUgbG9h
ZGVyIGRvZXNuJ3QgdGhpbmsgdGhpcyBpcyBhIGJhcmUtbmFtZSBzcGVjaWZpZXIuCisgICAgICAg
ICAgICAgICAgZmlsZU5hbWUgPSBmaWxlTmFtZS5zdGFydHNXaXRoKCcvJykgPyBmaWxlTmFtZSA6
IG1ha2VTdHJpbmcoIi4vIiwgZmlsZU5hbWUpOwogICAgICAgICAgICAgICAgIHByb21pc2UgPSBs
b2FkQW5kRXZhbHVhdGVNb2R1bGUoZ2xvYmFsT2JqZWN0LCBmaWxlTmFtZSwganNVbmRlZmluZWQo
KSwganNVbmRlZmluZWQoKSk7CiAgICAgICAgICAgICAgICAgc2NvcGUucmVsZWFzZUFzc2VydE5v
RXhjZXB0aW9uKCk7CiAgICAgICAgICAgICB9IGVsc2UgewpAQCAtMjgxMiwxMCArMjc3MywxMSBA
QCBzdGF0aWMgdm9pZCBydW5XaXRoT3B0aW9ucyhHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q29tbWFuZExpbmUmIG9wdGlvbnMsIGJvbwogICAgICAgICB9CiAKICAgICAgICAgYm9vbCBpc0xh
c3RGaWxlID0gaSA9PSBzY3JpcHRzLnNpemUoKSAtIDE7CisgICAgICAgIFNvdXJjZU9yaWdpbiBz
b3VyY2VPcmlnaW4geyBhYnNvbHV0ZVBhdGgoZmlsZU5hbWUpIH07CiAgICAgICAgIGlmIChpc01v
ZHVsZSkgewogICAgICAgICAgICAgaWYgKCFwcm9taXNlKSB7CiAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IFRoaXMgc2hvdWxkIHVzZSBhbiBhYnNvbHV0ZSBmaWxlIFVSTCBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMDc3Ci0gICAgICAgICAgICAgICAgcHJvbWlz
ZSA9IGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShnbG9iYWxPYmplY3QsIGpzY1NvdXJjZShzdHJpbmdG
cm9tVVRGKHNjcmlwdEJ1ZmZlciksIFNvdXJjZU9yaWdpbiB7IGFic29sdXRlUGF0aChmaWxlTmFt
ZSkgfSwgVVJMKHsgfSwgZmlsZU5hbWUpLCBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJT
b3VyY2VUeXBlOjpNb2R1bGUpLCBqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgICAgICAgICBwcm9t
aXNlID0gbG9hZEFuZEV2YWx1YXRlTW9kdWxlKGdsb2JhbE9iamVjdCwganNjU291cmNlKHN0cmlu
Z0Zyb21VVEYoc2NyaXB0QnVmZmVyKSwgc291cmNlT3JpZ2luLCBmaWxlTmFtZSwgVGV4dFBvc2l0
aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlKSwganNVbmRlZmluZWQoKSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBzY29wZS5jbGVhckV4Y2VwdGlvbigpOwogCkBA
IC0yODM0LDcgKzI3OTYsNyBAQCBzdGF0aWMgdm9pZCBydW5XaXRoT3B0aW9ucyhHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ29tbWFuZExpbmUmIG9wdGlvbnMsIGJvbwogICAgICAgICAgICAg
dm0uZHJhaW5NaWNyb3Rhc2tzKCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBOYWtl
ZFB0cjxFeGNlcHRpb24+IGV2YWx1YXRpb25FeGNlcHRpb247Ci0gICAgICAgICAgICBKU1ZhbHVl
IHJldHVyblZhbHVlID0gZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBqc2NTb3VyY2Uoc2NyaXB0QnVm
ZmVyLCBTb3VyY2VPcmlnaW4geyBhYnNvbHV0ZVBhdGgoZmlsZU5hbWUpIH0sIGZpbGVOYW1lKSwg
SlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIEpTVmFsdWUgcmV0
dXJuVmFsdWUgPSBldmFsdWF0ZShnbG9iYWxPYmplY3QsIGpzY1NvdXJjZShzY3JpcHRCdWZmZXIs
IHNvdXJjZU9yaWdpbiAsIGZpbGVOYW1lKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9u
KTsKICAgICAgICAgICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgICAgICAgICBp
ZiAoZXZhbHVhdGlvbkV4Y2VwdGlvbikKICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IGV2
YWx1YXRpb25FeGNlcHRpb24tPnZhbHVlKCk7CkBAIC0yODU3LDEwICsyODE5LDEwIEBAIHN0YXRp
YyB2b2lkIHJ1bkludGVyYWN0aXZlKEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRD
SF9TQ09QRSh2bSk7CiAKLSAgICBPcHRpb25hbDxEaXJlY3RvcnlOYW1lPiBkaXJlY3RvcnlOYW1l
ID0gY3VycmVudFdvcmtpbmdEaXJlY3RvcnkoKTsKLSAgICBpZiAoIWRpcmVjdG9yeU5hbWUpCisg
ICAgVVJMIGRpcmVjdG9yeU5hbWUgPSBjdXJyZW50V29ya2luZ0RpcmVjdG9yeSgpOworICAgIGlm
ICghZGlyZWN0b3J5TmFtZS5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBTb3VyY2VP
cmlnaW4gc291cmNlT3JpZ2luKHJlc29sdmVQYXRoKGRpcmVjdG9yeU5hbWUudmFsdWUoKSwgTW9k
dWxlTmFtZSgiaW50ZXJwcmV0ZXIiKSkpOworICAgIFNvdXJjZU9yaWdpbiBzb3VyY2VPcmlnaW4o
VVJMKGRpcmVjdG9yeU5hbWUsICIuL2ludGVycHJldGVyIl9zKSk7CiAgICAgCiAgICAgYm9vbCBz
aG91bGRRdWl0ID0gZmFsc2U7CiAgICAgd2hpbGUgKCFzaG91bGRRdWl0KSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggNzEwMTVjYmU5MWM1ZGQ1OWFkYzM4NGRmZDkyYWI0
ZGFlNWQ3YzEzZC4uOWEyZWZjYWQyODZhMzI3MzBjNzU4YWMyNjI1YTEzODExYTc0YjA1NCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAtMTg1OCw3ICsxODU4LDYgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIFNjb3BlTm9kZShQYXJzZXJBcmVuYSYsIGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYgc3RhcnQsIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgZW5kLCBjb25zdCBTb3Vy
Y2VDb2RlJiwgU291cmNlRWxlbWVudHMqLCBWYXJpYWJsZUVudmlyb25tZW50JiwgRnVuY3Rpb25T
dGFjayYmLCBWYXJpYWJsZUVudmlyb25tZW50JiwgVW5pcXVlZFN0cmluZ0ltcGxQdHJTZXQmJiwg
Q29kZUZlYXR1cmVzLCBJbm5lckFycm93RnVuY3Rpb25Db2RlRmVhdHVyZXMsIGludCBudW1Db25z
dGFudHMpOwogCiAgICAgICAgIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSgpIGNvbnN0IHsgcmV0
dXJuIG1fc291cmNlOyB9Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2UucHJvdmlkZXIoKS0+dXJsKCkuc3RyaW5nKCk7IH0KICAgICAgICAg
aW50cHRyX3Qgc291cmNlSUQoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5wcm92aWRlcklEKCk7
IH0KIAogICAgICAgICBpbnQgc3RhcnRMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydExpbmVO
dW1iZXI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNl
Q29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlLmgKaW5kZXgg
YWFkMjg3ZGRlODc3MWI3OWIxODYwYzVlZDRiOTcwODFlYWYyYmY5Ni4uOTkyZDg5YTIxMDNkZTM2
YzBmZGQ2NzVhNTNmZjhiMTMxMGMwMWYzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9Tb3VyY2VDb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Tb3VyY2VDb2RlLmgKQEAgLTk2LDkgKzk2LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IE9yZGluYWxOdW1iZXIgbV9zdGFydENvbHVtbjsKICAgICB9OwogCi0gICAgaW5saW5lIFNvdXJj
ZUNvZGUgbWFrZVNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2lu
JiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVybCA9IFVSTCgpLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0
YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNv
dXJjZVR5cGUgPSBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pCisgICAgaW5saW5l
IFNvdXJjZUNvZGUgbWFrZVNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNl
T3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0cmluZyBmaWxlbmFtZSA9IFN0cmluZygpLCBjb25zdCBU
ZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlk
ZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUgPSBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dy
YW0pCiAgICAgewotICAgICAgICByZXR1cm4gU291cmNlQ29kZShTdHJpbmdTb3VyY2VQcm92aWRl
cjo6Y3JlYXRlKHNvdXJjZSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKHVybCksIHN0YXJ0UG9zaXRp
b24sIHNvdXJjZVR5cGUpLCBzdGFydFBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpLCBzdGFy
dFBvc2l0aW9uLm1fY29sdW1uLm9uZUJhc2VkSW50KCkpOworICAgICAgICByZXR1cm4gU291cmNl
Q29kZShTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgc291cmNlT3JpZ2luLCBX
VEZNb3ZlKGZpbGVuYW1lKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSksIHN0YXJ0UG9zaXRp
b24ubV9saW5lLm9uZUJhc2VkSW50KCksIHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJ
bnQoKSk7CiAgICAgfQogICAgIAogICAgIGlubGluZSBTb3VyY2VDb2RlIFNvdXJjZUNvZGU6OnN1
YkV4cHJlc3Npb24odW5zaWduZWQgb3BlbkJyYWNlLCB1bnNpZ25lZCBjbG9zZUJyYWNlLCBpbnQg
Zmlyc3RMaW5lLCBpbnQgc3RhcnRDb2x1bW4pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGVLZXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvU291cmNlQ29kZUtleS5oCmluZGV4IDY3OGFlOWQ3ZDM2YjcwNWU1MDk5YWRiNzVk
OTZkMDU1YzY1MDRkMzMuLjY0MjMyNzBkOGFlMDkxYTczMDFjYThjODUzNTkwYjhhMzdiY2E0Njkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZUtleS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZUtleS5oCkBAIC0x
MDYsNyArMTA2LDcgQEAgcHVibGljOgogICAgIC8vIHByb3ZpZGVycyBjYWNoZSB0aGVpciBzdHJp
bmdzIHRvIG1ha2UgdGhpcyBlZmZpY2llbnQuCiAgICAgU3RyaW5nVmlldyBzdHJpbmcoKSBjb25z
dCB7IHJldHVybiBtX3NvdXJjZUNvZGUudmlldygpOyB9CiAKLSAgICBTdHJpbmdWaWV3IGhvc3Qo
KSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUNvZGUucHJvdmlkZXIoKS51cmwoKS5ob3N0KCk7IH0K
KyAgICBTdHJpbmdWaWV3IGhvc3QoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUNvZGUucHJvdmlk
ZXIoKS5zb3VyY2VPcmlnaW4oKS51cmwoKS5ob3N0KCk7IH0KIAogICAgIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBTb3VyY2VDb2RlS2V5JiBvdGhlcikgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwCmluZGV4IGMxNDE2ZjE0OTVi
NjgzYWY5NWU3NzU4ZWMyYTFhMDMxN2U1ZWI4YjAuLjAzZTU1ZWUzZDFmZjIwMjU4NmFmMmJlYThk
NzkxZDUxNTNhMTg3YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
U291cmNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291
cmNlUHJvdmlkZXIuY3BwCkBAIC0zMiwxMCArMzIsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIERF
RklORV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoU3RyaW5nU291cmNlUHJvdmlkZXIp
OwogCi1Tb3VyY2VQcm92aWRlcjo6U291cmNlUHJvdmlkZXIoY29uc3QgU291cmNlT3JpZ2luJiBz
b3VyY2VPcmlnaW4sIFVSTCYmIHVybCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9u
LCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSkKK1NvdXJjZVByb3ZpZGVyOjpT
b3VyY2VQcm92aWRlcihjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nJiYg
c291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3Zp
ZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlKQogICAgIDogbV9zb3VyY2VUeXBlKHNvdXJjZVR5cGUp
Ci0gICAgLCBtX3VybChXVEZNb3ZlKHVybCkpCiAgICAgLCBtX3NvdXJjZU9yaWdpbihzb3VyY2VP
cmlnaW4pCisgICAgLCBtX3NvdXJjZVVSTChXVEZNb3ZlKHNvdXJjZVVSTCkpCiAgICAgLCBtX3N0
YXJ0UG9zaXRpb24oc3RhcnRQb3NpdGlvbikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaAppbmRleCBiNjJmMzkzMmMyMTMyMjk5NjY5ZTJkMDUy
OTk3ZjcyNWI3NjAwM2MwLi4xMjllZTVjNDllMjQ3YWZjZDlmMDhkNTllZmU5ZmIxMjhmOWFiYmUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCkBA
IC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiQ29kZVNwZWNpYWxpemF0aW9uS2luZC5oIgogI2lu
Y2x1ZGUgIlNvdXJjZU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5j
bHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01NCw3ICs1Myw3IEBAIGNsYXNzIFVu
bGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgY29u
c3QgaW50cHRyX3QgbnVsbElEID0gMTsKICAgICAgICAgCi0gICAgICAgIEpTX0VYUE9SVF9QUklW
QVRFIFNvdXJjZVByb3ZpZGVyKGNvbnN0IFNvdXJjZU9yaWdpbiYsIFVSTCYmLCBjb25zdCBUZXh0
UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSk7CisgICAg
ICAgIEpTX0VYUE9SVF9QUklWQVRFIFNvdXJjZVByb3ZpZGVyKGNvbnN0IFNvdXJjZU9yaWdpbiYs
IFN0cmluZyYmIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBT
b3VyY2VQcm92aWRlclNvdXJjZVR5cGUpOwogCiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZp
cnR1YWwgflNvdXJjZVByb3ZpZGVyKCk7CiAKQEAgLTcxLDcgKzcwLDkgQEAgY2xhc3MgVW5saW5r
ZWRGdW5jdGlvbkNvZGVCbG9jazsKICAgICAgICAgfQogCiAgICAgICAgIGNvbnN0IFNvdXJjZU9y
aWdpbiYgc291cmNlT3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VPcmlnaW47IH0KLSAg
ICAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQorCisgICAgICAg
IC8vIFRoaXMgaXMgTk9UIHRoZSBwYXRoIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIGNvbXB1dGlu
ZyByZWxhdGl2ZSBwYXRocyBmcm9tIGEgc2NyaXB0LiBVc2UgU291cmNlT3JpZ2luJ3MgVVJMIGZv
ciB0aGF0LCB0aGUgdmFsdWVzIG1heSBvciBtYXkgbm90IGJlIHRoZSBzYW1lLi4uCisgICAgICAg
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0K
ICAgICAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxEaXJlY3RpdmUoKSBjb25zdCB7IHJldHVy
biBtX3NvdXJjZVVSTERpcmVjdGl2ZTsgfQogICAgICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZU1h
cHBpbmdVUkxEaXJlY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZU1hcHBpbmdVUkxEaXJl
Y3RpdmU7IH0KIApAQCAtOTIsOCArOTMsOCBAQCBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJs
b2NrOwogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGdldElEKCk7CiAKICAgICAgICAg
U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIG1fc291cmNlVHlwZTsKLSAgICAgICAgVVJMIG1fdXJs
OwogICAgICAgICBTb3VyY2VPcmlnaW4gbV9zb3VyY2VPcmlnaW47CisgICAgICAgIFN0cmluZyBt
X3NvdXJjZVVSTDsKICAgICAgICAgU3RyaW5nIG1fc291cmNlVVJMRGlyZWN0aXZlOwogICAgICAg
ICBTdHJpbmcgbV9zb3VyY2VNYXBwaW5nVVJMRGlyZWN0aXZlOwogICAgICAgICBUZXh0UG9zaXRp
b24gbV9zdGFydFBvc2l0aW9uOwpAQCAtMTA0LDkgKzEwNSw5IEBAIGNsYXNzIFVubGlua2VkRnVu
Y3Rpb25Db2RlQmxvY2s7CiAgICAgY2xhc3MgU3RyaW5nU291cmNlUHJvdmlkZXIgOiBwdWJsaWMg
U291cmNlUHJvdmlkZXIgewogICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRF9XSVRIX0hF
QVBfSURFTlRJRklFUihTdHJpbmdTb3VyY2VQcm92aWRlcik7CiAgICAgcHVibGljOgotICAgICAg
ICBzdGF0aWMgUmVmPFN0cmluZ1NvdXJjZVByb3ZpZGVyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBz
b3VyY2UsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwsIGNvbnN0
IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiA9IFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92
aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSA9IFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJv
Z3JhbSkKKyAgICAgICAgc3RhdGljIFJlZjxTdHJpbmdTb3VyY2VQcm92aWRlcj4gY3JlYXRlKGNv
bnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3Ry
aW5nIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBv
c2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlID0gU291cmNlUHJv
dmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTdHJpbmdTb3VyY2VQcm92aWRlcihzb3VyY2UsIHNvdXJjZU9yaWdpbiwg
V1RGTW92ZSh1cmwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSk7CisgICAgICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTdHJpbmdTb3VyY2VQcm92aWRlcihzb3VyY2UsIHNvdXJjZU9y
aWdpbiwgV1RGTW92ZShzb3VyY2VVUkwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSk7CiAg
ICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdCBvdmVycmlk
ZQpAQCAtMTIwLDggKzEyMSw4IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7CiAg
ICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgU3RyaW5nU291cmNlUHJvdmlkZXIo
Y29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBV
UkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgU291cmNlUHJvdmlk
ZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUpCi0gICAgICAgICAgICA6IFNvdXJjZVByb3ZpZGVyKHNv
dXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKQorICAg
ICAgICBTdHJpbmdTb3VyY2VQcm92aWRlcihjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291
cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0cmluZyYmIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBv
c2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlw
ZSkKKyAgICAgICAgICAgIDogU291cmNlUHJvdmlkZXIoc291cmNlT3JpZ2luLCBXVEZNb3ZlKHNv
dXJjZVVSTCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpCiAgICAgICAgICAgICAsIG1fc291
cmNlKHNvdXJjZS5pc051bGwoKSA/ICpTdHJpbmdJbXBsOjplbXB0eSgpIDogKnNvdXJjZS5pbXBs
KCkpCiAgICAgICAgIHsKICAgICAgICAgfQpAQCAtMTMzLDkgKzEzNCw5IEBAIGNsYXNzIFVubGlu
a2VkRnVuY3Rpb25Db2RlQmxvY2s7CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIGNsYXNz
IFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgU291cmNlUHJvdmlkZXIg
ewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZjxXZWJBc3NlbWJseVNvdXJjZVByb3Zp
ZGVyPiBjcmVhdGUoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSwgY29uc3QgU291cmNlT3JpZ2luJiBz
b3VyY2VPcmlnaW4sIFVSTCYmIHVybCkKKyAgICAgICAgc3RhdGljIFJlZjxXZWJBc3NlbWJseVNv
dXJjZVByb3ZpZGVyPiBjcmVhdGUoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSwgY29uc3QgU291cmNl
T3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0cmluZyBzb3VyY2VVUkwpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIoV1RG
TW92ZShkYXRhKSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKHVybCkpKTsKKyAgICAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIoV1RGTW92ZShkYXRh
KSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKHNvdXJjZVVSTCkpKTsKICAgICAgICAgfQogCiAgICAg
ICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdCBmaW5hbApAQCAtMTU0LDggKzE1NSw4IEBAIGNsYXNz
IFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0g
ICAgICAgIFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSwg
Y29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVybCkKLSAgICAgICAgICAg
IDogU291cmNlUHJvdmlkZXIoc291cmNlT3JpZ2luLCBXVEZNb3ZlKHVybCksIFRleHRQb3NpdGlv
bigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OldlYkFzc2VtYmx5KQorICAgICAgICBXZWJB
c3NlbWJseVNvdXJjZVByb3ZpZGVyKFZlY3Rvcjx1aW50OF90PiYmIGRhdGEsIGNvbnN0IFNvdXJj
ZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJpbmcmJiBzb3VyY2VVUkwpCisgICAgICAgICAgICA6
IFNvdXJjZVByb3ZpZGVyKHNvdXJjZU9yaWdpbiwgV1RGTW92ZShzb3VyY2VVUkwpLCBUZXh0UG9z
aXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpXZWJBc3NlbWJseSkKICAgICAgICAg
ICAgICwgbV9zb3VyY2UoIltXZWJBc3NlbWJseSBzb3VyY2VdIikKICAgICAgICAgICAgICwgbV9k
YXRhKFdURk1vdmUoZGF0YSkpCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5cGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NhY2hlZFR5cGVzLmNwcAppbmRleCAzZDI1MDY0ZGQ5MjM3MTNhMTQ0ZDgxZmZjZWI4
MjI1MjUxMmI0YjJhLi4yMmY3MTY0ZTA5ZjdiMzY1MDRmZjg4OGJmYzlmMWMzZDQ0NGYzZDM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlwZXMuY3BwCkBAIC0x
NTEwLDEyICsxNTEwLDEyIEBAIGNsYXNzIENhY2hlZFNvdXJjZU9yaWdpbiA6IHB1YmxpYyBDYWNo
ZWRPYmplY3Q8U291cmNlT3JpZ2luPiB7CiBwdWJsaWM6CiAgICAgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4pCiAgICAgewotICAg
ICAgICBtX3N0cmluZy5lbmNvZGUoZW5jb2Rlciwgc291cmNlT3JpZ2luLnN0cmluZygpKTsKKyAg
ICAgICAgbV9zdHJpbmcuZW5jb2RlKGVuY29kZXIsIHNvdXJjZU9yaWdpbi51cmwoKS5zdHJpbmco
KSk7CiAgICAgfQogCiAgICAgU291cmNlT3JpZ2luIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKSBj
b25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIFNvdXJjZU9yaWdpbiB7IG1fc3RyaW5nLmRlY29k
ZShkZWNvZGVyKSB9OworICAgICAgICByZXR1cm4gU291cmNlT3JpZ2luIHsgVVJMKHsgfSwgbV9z
dHJpbmcuZGVjb2RlKGRlY29kZXIpKSB9OwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTE1NDYsNyAr
MTU0Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBTb3VyY2VQcm92aWRlciYgc291cmNlUHJvdmlkZXIpCiAgICAgewogICAgICAgICBtX3NvdXJj
ZU9yaWdpbi5lbmNvZGUoZW5jb2Rlciwgc291cmNlUHJvdmlkZXIuc291cmNlT3JpZ2luKCkpOwot
ICAgICAgICBtX3VybC5lbmNvZGUoZW5jb2Rlciwgc291cmNlUHJvdmlkZXIudXJsKCkuc3RyaW5n
KCkpOworICAgICAgICBtX3NvdXJjZVVSTC5lbmNvZGUoZW5jb2Rlciwgc291cmNlUHJvdmlkZXIu
c291cmNlVVJMKCkpOwogICAgICAgICBtX3NvdXJjZVVSTERpcmVjdGl2ZS5lbmNvZGUoZW5jb2Rl
ciwgc291cmNlUHJvdmlkZXIuc291cmNlVVJMRGlyZWN0aXZlKCkpOwogICAgICAgICBtX3NvdXJj
ZU1hcHBpbmdVUkxEaXJlY3RpdmUuZW5jb2RlKGVuY29kZXIsIHNvdXJjZVByb3ZpZGVyLnNvdXJj
ZU1hcHBpbmdVUkxEaXJlY3RpdmUoKSk7CiAgICAgICAgIG1fc3RhcnRQb3NpdGlvbi5lbmNvZGUo
ZW5jb2Rlciwgc291cmNlUHJvdmlkZXIuc3RhcnRQb3NpdGlvbigpKTsKQEAgLTE1NjAsNyArMTU2
MCw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIENhY2hlZFNvdXJjZU9yaWdpbiBtX3Nv
dXJjZU9yaWdpbjsKLSAgICBDYWNoZWRTdHJpbmcgbV91cmw7CisgICAgQ2FjaGVkU3RyaW5nIG1f
c291cmNlVVJMOwogICAgIENhY2hlZFN0cmluZyBtX3NvdXJjZVVSTERpcmVjdGl2ZTsKICAgICBD
YWNoZWRTdHJpbmcgbV9zb3VyY2VNYXBwaW5nVVJMRGlyZWN0aXZlOwogICAgIENhY2hlZFRleHRQ
b3NpdGlvbiBtX3N0YXJ0UG9zaXRpb247CkBAIC0xNTgwLDEwICsxNTgwLDEwIEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgICAgIFN0cmluZyBkZWNvZGVkU291cmNlID0gbV9zb3VyY2UuZGVjb2RlKGRl
Y29kZXIpOwogICAgICAgICBTb3VyY2VPcmlnaW4gZGVjb2RlZFNvdXJjZU9yaWdpbiA9IG1fc291
cmNlT3JpZ2luLmRlY29kZShkZWNvZGVyKTsKLSAgICAgICAgU3RyaW5nIGRlY29kZWRVUkwgPSBt
X3VybC5kZWNvZGUoZGVjb2Rlcik7CisgICAgICAgIFN0cmluZyBkZWNvZGVkU291cmNlVVJMID0g
bV9zb3VyY2VVUkwuZGVjb2RlKGRlY29kZXIpOwogICAgICAgICBUZXh0UG9zaXRpb24gZGVjb2Rl
ZFN0YXJ0UG9zaXRpb24gPSBtX3N0YXJ0UG9zaXRpb24uZGVjb2RlKGRlY29kZXIpOwogCi0gICAg
ICAgIFJlZjxTdHJpbmdTb3VyY2VQcm92aWRlcj4gc291cmNlUHJvdmlkZXIgPSBTdHJpbmdTb3Vy
Y2VQcm92aWRlcjo6Y3JlYXRlKGRlY29kZWRTb3VyY2UsIGRlY29kZWRTb3VyY2VPcmlnaW4sIFVS
TChVUkwoKSwgZGVjb2RlZFVSTCksIGRlY29kZWRTdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKTsK
KyAgICAgICAgUmVmPFN0cmluZ1NvdXJjZVByb3ZpZGVyPiBzb3VyY2VQcm92aWRlciA9IFN0cmlu
Z1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoZGVjb2RlZFNvdXJjZSwgZGVjb2RlZFNvdXJjZU9yaWdp
biwgZGVjb2RlZFNvdXJjZVVSTCwgZGVjb2RlZFN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpOwog
ICAgICAgICBCYXNlOjpkZWNvZGUoZGVjb2Rlciwgc291cmNlUHJvdmlkZXIuZ2V0KCkpOwogICAg
ICAgICByZXR1cm4gJnNvdXJjZVByb3ZpZGVyLmxlYWtSZWYoKTsKICAgICB9CkBAIC0xNjA3LDEx
ICsxNjA3LDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBkZWNv
ZGVkRGF0YTsKICAgICAgICAgU291cmNlT3JpZ2luIGRlY29kZWRTb3VyY2VPcmlnaW4gPSBtX3Nv
dXJjZU9yaWdpbi5kZWNvZGUoZGVjb2Rlcik7Ci0gICAgICAgIFN0cmluZyBkZWNvZGVkVVJMID0g
bV91cmwuZGVjb2RlKGRlY29kZXIpOworICAgICAgICBTdHJpbmcgZGVjb2RlZFNvdXJjZVVSTCA9
IG1fc291cmNlVVJMLmRlY29kZShkZWNvZGVyKTsKIAogICAgICAgICBtX2RhdGEuZGVjb2RlKGRl
Y29kZXIsIGRlY29kZWREYXRhKTsKIAotICAgICAgICBSZWY8V2ViQXNzZW1ibHlTb3VyY2VQcm92
aWRlcj4gc291cmNlUHJvdmlkZXIgPSBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyOjpjcmVhdGUo
V1RGTW92ZShkZWNvZGVkRGF0YSksIGRlY29kZWRTb3VyY2VPcmlnaW4sIFVSTChVUkwoKSwgZGVj
b2RlZFVSTCkpOworICAgICAgICBSZWY8V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcj4gc291cmNl
UHJvdmlkZXIgPSBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoV1RGTW92ZShkZWNv
ZGVkRGF0YSksIGRlY29kZWRTb3VyY2VPcmlnaW4sIGRlY29kZWRTb3VyY2VVUkwpOwogICAgICAg
ICBCYXNlOjpkZWNvZGUoZGVjb2Rlciwgc291cmNlUHJvdmlkZXIuZ2V0KCkpOwogCiAgICAgICAg
IHJldHVybiAmc291cmNlUHJvdmlkZXIubGVha1JlZigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3IuY3BwCmluZGV4IDE1Y2NhOTUxNjIzMzllMmQ4ZjU3NDk3OGJhYzM3ZjU0NjZk
Njc4ZGQuLmY0NzNiODE4MWVjMmYwMmEwY2M3OGEyNmMwYzIwZGM5NjMxZmRjNzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAKQEAgLTIzMCw3ICsyMzAsNyBAQCB2b2lk
IGFkZEVycm9ySW5mbyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2Jq
LCBib29sIHVzZUN1cnJlbnRGcgogCiBKU09iamVjdCogYWRkRXJyb3JJbmZvKFZNJiB2bSwgSlNP
YmplY3QqIGVycm9yLCBpbnQgbGluZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlKQogewotICAg
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMID0gc291cmNlLnByb3ZpZGVyKCktPnVybCgpLnN0cmlu
ZygpOworICAgIGNvbnN0IFN0cmluZyYgc291cmNlVVJMID0gc291cmNlLnByb3ZpZGVyKCktPnNv
dXJjZVVSTCgpOwogICAgIAogICAgIC8vIFRoZSBwdXREaXJlY3QoKSBjYWxscyBiZWxvdyBzaG91
bGQgcmVhbGx5IGJlIHB1dCgpIHNvIHRoYXQgdGhleSB0cmlnZ2VyIG1hdGVyaWFsaXphdGlvbiBv
ZgogICAgIC8vIHRoZSBsaW5lL3NvdXJjZVVSTCBwcm9wZXJ0aWVzLiBPdGhlcndpc2UsIHdoYXQg
d2Ugc2V0IGhlcmUgd2lsbCBqdXN0IGJlIG92ZXJ3cml0dGVuIGxhdGVyLgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRl
eCAxMjYxNGRlZGEzOTU2YmE0NGYyMDgyOWRkZDQ5MDZmMGI0ZjI3ZjhjLi40YzEwMTZmODc5OGRk
YWMzYWNhZTExNmQ5ZWMxMjFhNDQ2ZmFjYThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMTQ4LDcgKzE0OCw3
IEBAIEpTT2JqZWN0KiBjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjaygK
ICAgICAgICAgcHJvZ3JhbSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKICAgICB9CiAKLSAgICBTb3Vy
Y2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2UocHJvZ3JhbSwgc291cmNlT3JpZ2luLCBVUkwoeyB9
LCBzb3VyY2VVUkwpLCBwb3NpdGlvbik7CisgICAgU291cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291
cmNlKHByb2dyYW0sIHNvdXJjZU9yaWdpbiwgc291cmNlVVJMLCBwb3NpdGlvbik7CiAgICAgSlNP
YmplY3QqIGV4Y2VwdGlvbiA9IG51bGxwdHI7CiAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5j
dGlvbiA9IEZ1bmN0aW9uRXhlY3V0YWJsZTo6ZnJvbUdsb2JhbENvZGUoZnVuY3Rpb25OYW1lLCBn
bG9iYWxPYmplY3QsIHNvdXJjZSwgZXhjZXB0aW9uLCBvdmVycmlkZUxpbmVOdW1iZXIsIGZ1bmN0
aW9uQ29uc3RydWN0b3JQYXJhbWV0ZXJzRW5kUG9zaXRpb24pOwogICAgIGlmIChVTkxJS0VMWSgh
ZnVuY3Rpb24pKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
Y3JpcHRFeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRF
eGVjdXRhYmxlLmgKaW5kZXggZjRiNDI1YmNmYjAyNGNkODdiNmVkMmMxNzg4MDdjYWYwMWNiZDkw
Ni4uNTJkOTIxOTBkMDI0MTgzNTU1MDA2ZDZkZTFhNzA1YTAxNTNiZmEwMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaApAQCAtNDcsNyAr
NDcsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgU291cmNlQ29kZSYgc291cmNlKCkgY29uc3QgeyBy
ZXR1cm4gbV9zb3VyY2U7IH0KICAgICBpbnRwdHJfdCBzb3VyY2VJRCgpIGNvbnN0IHsgcmV0dXJu
IG1fc291cmNlLnByb3ZpZGVySUQoKTsgfQogICAgIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNl
T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UucHJvdmlkZXIoKS0+c291cmNlT3JpZ2lu
KCk7IH0KLSAgICBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fc291
cmNlLnByb3ZpZGVyKCktPnVybCgpLnN0cmluZygpOyB9CisgICAgLy8gVGhpcyBpcyBOT1QgdGhl
IHBhdGggdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgY29tcHV0aW5nIHJlbGF0aXZlIHBhdGhzIGZy
b20gYSBzY3JpcHQuIFVzZSBTb3VyY2VPcmlnaW4ncyBVUkwgZm9yIHRoYXQsIHRoZSB2YWx1ZXMg
bWF5IG9yIG1heSBub3QgYmUgdGhlIHNhbWUuLi4gVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIGZv
ciBgZXJyb3Iuc291cmNlVVJMYCBhbmQgc3RhY2sgdHJhY2VzLgorICAgIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UucHJvdmlkZXIoKS0+c291cmNlVVJM
KCk7IH0KICAgICBpbnQgZmlyc3RMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UuZmlyc3RM
aW5lKCkub25lQmFzZWRJbnQoKTsgfQogICAgIEpTX0VYUE9SVF9QUklWQVRFIGludCBsYXN0TGlu
ZSgpIGNvbnN0OwogICAgIHVuc2lnbmVkIHN0YXJ0Q29sdW1uKCkgY29uc3QgeyByZXR1cm4gbV9z
b3VyY2Uuc3RhcnRDb2x1bW4oKS5vbmVCYXNlZEludCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Tb3VyY2VPcmlnaW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NvdXJjZU9yaWdpbi5oCmluZGV4IDdjM2NkZWI3YzlhZGIyMWI4NTI5NmE0
M2NjNjc5OTUwMDE4YjcyYmQuLjhlN2EwOTA1MzNlNzViYTM4NWU4YmE1NjBhZjVhZjViYmYyYTgx
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NvdXJjZU9yaWdp
bi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NvdXJjZU9yaWdpbi5oCkBA
IC0yNiwzMiArMjYsMzMgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU2NyaXB0RmV0Y2hl
ci5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9VUkwu
aD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIFNvdXJjZU9yaWdpbiB7CiBwdWJsaWM6Ci0g
ICAgZXhwbGljaXQgU291cmNlT3JpZ2luKGNvbnN0IFN0cmluZyYgc3RyaW5nKQotICAgICAgICA6
IG1fc3RyaW5nKHN0cmluZykKKyAgICBleHBsaWNpdCBTb3VyY2VPcmlnaW4oY29uc3QgVVJMJiB1
cmwpCisgICAgICAgIDogbV91cmwodXJsKQogICAgIHsKICAgICB9CiAKLSAgICBleHBsaWNpdCBT
b3VyY2VPcmlnaW4oY29uc3QgU3RyaW5nJiBzdHJpbmcsIFJlZjxTY3JpcHRGZXRjaGVyPiYmIGZl
dGNoZXIpCi0gICAgICAgIDogbV9zdHJpbmcoc3RyaW5nKQorICAgIGV4cGxpY2l0IFNvdXJjZU9y
aWdpbihjb25zdCBVUkwmIHVybCwgUmVmPFNjcmlwdEZldGNoZXI+JiYgZmV0Y2hlcikKKyAgICAg
ICAgOiBtX3VybCh1cmwpCiAgICAgICAgICwgbV9mZXRjaGVyKFdURk1vdmUoZmV0Y2hlcikpCiAg
ICAgewogICAgIH0KIAogICAgIFNvdXJjZU9yaWdpbigpID0gZGVmYXVsdDsKIAotICAgIGNvbnN0
IFN0cmluZyYgc3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zdHJpbmc7IH0KLSAgICBib29sIGlz
TnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5nLmlzTnVsbCgpOyB9CisgICAgY29uc3QgVVJM
JiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQorICAgIGNvbnN0IFN0cmluZyYgc3RyaW5n
KCkgY29uc3QgeyByZXR1cm4gbV91cmwuc3RyaW5nKCk7IH0KKyAgICBib29sIGlzTnVsbCgpIGNv
bnN0IHsgcmV0dXJuIHVybCgpLmlzTnVsbCgpOyB9CiAKICAgICBTY3JpcHRGZXRjaGVyKiBmZXRj
aGVyKCkgY29uc3QgeyByZXR1cm4gbV9mZXRjaGVyLmdldCgpOyB9CiAKIHByaXZhdGU6Ci0gICAg
U3RyaW5nIG1fc3RyaW5nOworICAgIFVSTCBtX3VybDsKICAgICBSZWZQdHI8U2NyaXB0RmV0Y2hl
cj4gbV9mZXRjaGVyOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVGhyb3dTY29wZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UaHJv
d1Njb3BlLmNwcAppbmRleCBhMzFjZTlkZDNiMDQyMjgzZGY3ZGNkODU1ZGE4ZWYwYTI2NDk3NTA4
Li5kZWM2OWE0ODMxNmUxNmFlNTM3YjU4MTVkMDZlMGNiYjc0ZmExOTU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UaHJvd1Njb3BlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9UaHJvd1Njb3BlLmNwcApAQCAtODAsMTggKzgwLDEyIEBA
IEV4Y2VwdGlvbiogVGhyb3dTY29wZTo6dGhyb3dFeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgRXhjZXB0aW9uKiBlCiAKIEV4Y2VwdGlvbiogVGhyb3dTY29wZTo6dGhyb3dF
eGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBlcnJvcikKIHsK
LSAgICBpZiAoIWVycm9yLmlzQ2VsbCgpIHx8ICFqc0R5bmFtaWNDYXN0PEV4Y2VwdGlvbio+KG1f
dm0sIGVycm9yLmFzQ2VsbCgpKSkKKyAgICBpZiAoIWVycm9yLmlzQ2VsbCgpIHx8IGVycm9yLmlz
T2JqZWN0KCkgfHwgIWpzRHluYW1pY0Nhc3Q8RXhjZXB0aW9uKj4obV92bSwgZXJyb3IuYXNDZWxs
KCkpKQogICAgICAgICBtX3ZtLnZlcmlmeUV4Y2VwdGlvbkNoZWNrTmVlZElzU2F0aXNmaWVkKG1f
cmVjdXJzaW9uRGVwdGgsIG1fbG9jYXRpb24pOwogICAgIAogICAgIHJldHVybiBtX3ZtLnRocm93
RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgZXJyb3IpOwogfQogCi1FeGNlcHRpb24qIFRocm93U2Nv
cGU6OnRocm93RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0
KiBvYmopCi17Ci0gICAgbV92bS52ZXJpZnlFeGNlcHRpb25DaGVja05lZWRJc1NhdGlzZmllZCht
X3JlY3Vyc2lvbkRlcHRoLCBtX2xvY2F0aW9uKTsKLSAgICByZXR1cm4gbV92bS50aHJvd0V4Y2Vw
dGlvbihnbG9iYWxPYmplY3QsIG9iaik7Ci19Ci0KIHZvaWQgVGhyb3dTY29wZTo6c2ltdWxhdGVU
aHJvdygpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV92bS5tX3RvcEV4Y2VwdGlvblNjb3BlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rocm93U2NvcGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rocm93U2NvcGUuaAppbmRleCA2OTMyMTk3
ZTgwNThiOWQ2ODI5ZTE2NjZhYWQwMDc0MTY0MzE2MWE0Li5jZjMzNmZjMjQzYjYwNGE4ZTdkNWYx
NGE4MWI2MzE4MmYzODg3OGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9UaHJvd1Njb3BlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGhy
b3dTY29wZS5oCkBAIC00OSw3ICs0OSw2IEBAIHB1YmxpYzoKIAogICAgIEpTX0VYUE9SVF9QUklW
QVRFIEV4Y2VwdGlvbiogdGhyb3dFeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqLCBFeGNlcHRpb24q
KTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBFeGNlcHRpb24qIHRocm93RXhjZXB0aW9uKEpTR2xv
YmFsT2JqZWN0KiwgSlNWYWx1ZSk7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgRXhjZXB0aW9uKiB0
aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0Kik7CiAKICAgICB2b2lkIHJl
bGVhc2UoKSB7IG1faXNSZWxlYXNlZCA9IHRydWU7IH0KIApAQCAtNzksNyArNzgsNiBAQCBwdWJs
aWM6CiAKICAgICBBTFdBWVNfSU5MSU5FIEV4Y2VwdGlvbiogdGhyb3dFeGNlcHRpb24oSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXhjZXB0aW9uKiBleGNlcHRpb24pIHsgcmV0dXJuIG1f
dm0udGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBleGNlcHRpb24pOyB9CiAgICAgQUxXQVlT
X0lOTElORSBFeGNlcHRpb24qIHRocm93RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgdmFsdWUpIHsgcmV0dXJuIG1fdm0udGhyb3dFeGNlcHRpb24oZ2xvYmFs
T2JqZWN0LCB2YWx1ZSk7IH0KLSAgICBBTFdBWVNfSU5MSU5FIEV4Y2VwdGlvbiogdGhyb3dFeGNl
cHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iaikgeyByZXR1
cm4gbV92bS50aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIG9iaik7IH0KIAogICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCByZWxlYXNlKCkgeyB9CiB9OwpAQCAtOTksOSArOTcsMTYgQEAgQUxXQVlT
X0lOTElORSBFeGNlcHRpb24qIHRocm93RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFRocm93U2NvcGUKICAgICByZXR1cm4gc2NvcGUudGhyb3dFeGNlcHRpb24oZ2xvYmFs
T2JqZWN0LCB2YWx1ZSk7CiB9CiAKLUFMV0FZU19JTkxJTkUgRXhjZXB0aW9uKiB0aHJvd0V4Y2Vw
dGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSwgSlNP
YmplY3QqIG9iaikKK0FMV0FZU19JTkxJTkUgRW5jb2RlZEpTVmFsdWUgdGhyb3dWTUV4Y2VwdGlv
bihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSwgRXhjZXB0
aW9uKiBleGNlcHRpb24pCiB7Ci0gICAgcmV0dXJuIHNjb3BlLnRocm93RXhjZXB0aW9uKGdsb2Jh
bE9iamVjdCwgb2JqKTsKKyAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBl
eGNlcHRpb24pOworICAgIHJldHVybiBlbmNvZGVkSlNWYWx1ZSgpOworfQorCitBTFdBWVNfSU5M
SU5FIEVuY29kZWRKU1ZhbHVlIHRocm93Vk1FeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgdGhyb3dF
eGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgdmFsdWUpOworICAgIHJldHVybiBlbmNvZGVk
SlNWYWx1ZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwCmluZGV4IGUwOTM5NmY3NDJlZWQ3
NTNiNmRiZWE0Y2Q5YTc4ZWY2NjU3ZGQ0ODUuLjQ4YjJkYTVlMmYyNjFmYzllMDZiZWFiN2Q5NGZm
NzE5NDBlZjdmZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5j
dGlvbk92ZXJyaWRlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0
aW9uT3ZlcnJpZGVzLmNwcApAQCAtMTM3LDcgKzEzNyw5IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxp
emVPdmVycmlkZUluZm8oY29uc3QgU291cmNlQ29kZSYgb3JpZ0NvZGUsIGNvbnN0IFN0cmluZyYg
bmV3CiAgICAgbmV3UHJvdmlkZXJTdHIuYXBwZW5kKG9yaWdIZWFkZXIpOwogICAgIG5ld1Byb3Zp
ZGVyU3RyLmFwcGVuZChuZXdCb2R5KTsKIAotICAgIFJlZjxTb3VyY2VQcm92aWRlcj4gbmV3UHJv
dmlkZXIgPSBTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKG5ld1Byb3ZpZGVyU3RyLCBTb3Vy
Y2VPcmlnaW4geyAiPG92ZXJyaWRkZW4+IiB9LCBVUkwoeyB9LCAiPG92ZXJyaWRkZW4+IikpOwor
ICAgIGF1dG8gb3ZlcnJpZGRlbiA9ICI8b3ZlcnJpZGRlbj4iX3M7CisgICAgVVJMIHVybCh7IH0s
IG92ZXJyaWRkZW4pOworICAgIFJlZjxTb3VyY2VQcm92aWRlcj4gbmV3UHJvdmlkZXIgPSBTdHJp
bmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKG5ld1Byb3ZpZGVyU3RyLCBTb3VyY2VPcmlnaW4geyB1
cmwgfSwgb3ZlcnJpZGRlbik7CiAKICAgICBpbmZvLmZpcnN0TGluZSA9IDE7CiAgICAgaW5mby5s
aW5lQ291bnQgPSAxOyAvLyBGYWtpbmcgaXQuIFRoaXMgZG9lc24ndCByZWFsbHkgbWF0dGVyIGZv
ciBub3cuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJW
TS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKaW5kZXgg
ZTEyZjQ4MTZjM2UxNDQyNTVjMWE0ZjUzMmEyODY3N2RkYjNkMjU1Ni4uOGQ2N2Y1MzE3YzY2NDU1
NTQ2ZmFmYjc3ZWFkYjI3ZjI1YTU0NWY5MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29s
cy9KU0RvbGxhclZNLmNwcApAQCAtMTY0OCwxMSArMTY0OCw0NyBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogY29uc3QgQ2xhc3NJbmZvIEpTRG9sbGFyVk06OnNfaW5mbyA9IHsgIkRvbGxhclZNIiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0RvbGxh
clZNKSB9OwogCi0vLyBUcmlnZ2VycyBhIGNyYXNoIGltbWVkaWF0ZWx5LgotLy8gVXNhZ2U6ICR2
bS5jcmFzaCgpCi1zdGF0aWMgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3Jhc2goSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQor
c3RhdGljIEVuY29kZWRKU1ZhbHVlIGRvUHJpbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGJvb2wgYWRkTGluZUZlZWQpCiB7CiAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRShnbG9iYWxPYmplY3QtPnZtKCkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKTsgKytpKSB7CisgICAgICAgIEpTVmFsdWUgYXJn
ID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudChpKTsKKyAgICAgICAgaWYgKGFyZy5pc0Nl
bGwoKQorICAgICAgICAgICAgJiYgIWFyZy5pc09iamVjdCgpCisgICAgICAgICAgICAmJiAhYXJn
LmlzU3RyaW5nKCkKKyAgICAgICAgICAgICYmICFhcmcuaXNCaWdJbnQoKSkgeworICAgICAgICAg
ICAgZGF0YUxvZyhhcmcpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAg
ICAgU3RyaW5nIGFyZ1N0ciA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoaSkudG9XVEZT
dHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
ZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgICAgIGRhdGFMb2coYXJnU3RyKTsKKyAgICB9CisgICAg
aWYgKGFkZExpbmVGZWVkKQorICAgICAgICBkYXRhTG9nKCJcbiIpOworICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisKKy8vIFRyaWdnZXJzIGEgY3Jhc2ggYWZ0
ZXIgZHVtcGluZyBhbnkgcGFyYW1hdGVyIHBhc3NlZCB0byBpdC4KKy8vIFVzYWdlOiAkdm0uY3Jh
c2goLi4uKQorc3RhdGljIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbkNyYXNoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2Nv
cGU7CisKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAgIGlmIChjYWxsRnJhbWUtPmFyZ3VtZW50Q291
bnQoKSkgeworICAgICAgICBkYXRhTG9nTG4oIkR1bXBpbmcgIiwgY2FsbEZyYW1lLT5hcmd1bWVu
dENvdW50KCksICIgdmFsdWVzIGJlZm9yZSBjcmFzaGluZzoiKTsKKyAgICAgICAgY29uc3QgYm9v
bCBhZGRMaW5lRmVlZCA9IHRydWU7CisgICAgICAgIGRvUHJpbnQoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUsIGFkZExpbmVGZWVkKTsKKyAgICAgICAgaWYgKHNjb3BlLmV4Y2VwdGlvbigpKSB7Cisg
ICAgICAgICAgICBKU1ZhbHVlIHZhbHVlID0gc2NvcGUuZXhjZXB0aW9uKCktPnZhbHVlKCk7Cisg
ICAgICAgICAgICBzY29wZS5jbGVhckV4Y2VwdGlvbigpOworICAgICAgICAgICAgZGF0YUxvZ0xu
KCJFcnJvciB0aHJvd24gd2hpbGUgY3Jhc2hpbmc6ICIsIHZhbHVlLnRvV1RGU3RyaW5nKGdsb2Jh
bE9iamVjdCkpOworICAgICAgICB9CisgICAgfQorCiAgICAgQ1JBU0goKTsKIH0KIApAQCAtMjAy
OCwyOCArMjA2NCw2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uRHVtcEJ5dGVjb2RlRm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIGRv
UHJpbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUs
IGJvb2wgYWRkTGluZUZlZWQpCi17Ci0gICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29w
ZTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShnbG9iYWxPYmplY3QtPnZt
KCkpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjYWxsRnJhbWUtPmFyZ3VtZW50Q291
bnQoKTsgKytpKSB7Ci0gICAgICAgIEpTVmFsdWUgYXJnID0gY2FsbEZyYW1lLT51bmNoZWNrZWRB
cmd1bWVudChpKTsKLSAgICAgICAgaWYgKGFyZy5pc0NlbGwoKQotICAgICAgICAgICAgJiYgIWFy
Zy5pc09iamVjdCgpCi0gICAgICAgICAgICAmJiAhYXJnLmlzU3RyaW5nKCkKLSAgICAgICAgICAg
ICYmICFhcmcuaXNCaWdJbnQoKSkgewotICAgICAgICAgICAgZGF0YUxvZyhhcmcpOwotICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgU3RyaW5nIGFyZ1N0ciA9IGNhbGxG
cmFtZS0+dW5jaGVja2VkQXJndW1lbnQoaSkudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKLSAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAg
ICAgIGRhdGFMb2coYXJnU3RyKTsKLSAgICB9Ci0gICAgaWYgKGFkZExpbmVGZWVkKQotICAgICAg
ICBkYXRhTG9nKCJcbiIpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7Ci19Ci0KIC8vIFByaW50cyBhIHNlcmllcyBvZiBjb21tYSBzZXBhcmF0ZSBzdHJpbmdzIHdp
dGhvdXQgYXBwZW5kaW5nIGEgbmV3bGluZS4KIC8vIFVzYWdlOiAkdm0uZGF0YUxvZyhzdHIxLCBz
dHIyLCBzdHIzKQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25E
YXRhTG9nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVVJMLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1VS
TC5jcHAKaW5kZXggZmUyOWNhNzc3NmM1MzhiZjgwM2Q2YmM2MWJhZTc5MWYyM2M0Y2FmYi4uMWQz
MTRiZjhkMDRjYzRlZTlhNWE5ZDFkNTZmOGU2Y2EyZWIwZjRiZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvVVJMLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwCkBAIC0yMTMsNyAr
MjEzLDExIEBAIFN0cmluZyBVUkw6OmZpbGVTeXN0ZW1QYXRoKCkgY29uc3QKICAgICBpZiAoIWlz
TG9jYWxGaWxlKCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gZGVjb2RlRXNj
YXBlU2VxdWVuY2VzRnJvbVBhcnNlZFVSTChwYXRoKCkpOworICAgIGF1dG8gcmVzdWx0ID0gZGVj
b2RlRXNjYXBlU2VxdWVuY2VzRnJvbVBhcnNlZFVSTChwYXRoKCkpOworI2lmIFBMQVRGT1JNKFdJ
TikKKyAgICByZXN1bHQgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocmVzdWx0KTsKKyNlbmRp
ZgorICAgIHJldHVybiByZXN1bHQ7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvVVJMLmggYi9Tb3VyY2UvV1RGL3d0Zi9VUkwuaAppbmRleCA4YjIyZTE2YzZjYTQwMTI1
YzAyZjY4ODEyMzAyNDk1NmUwZjQ0Nzk2Li43MWMyMjY4ZDM3NGI3ZWRiYzJiYzE5YTcxYzIxZmNk
ZWQ3ZWRhNTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VUkwuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9VUkwuaApAQCAtNzcsNiArNzcsMTUgQEAgcHVibGljOgogICAgIGJvb2wgaXNFbXB0
eSgpIGNvbnN0OwogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwogCisgICAgLy8gU2luY2Ugd2Ug
b3ZlcmxvYWQgb3BlcmF0b3IgTlNVUkwqIHdlIGhhdmUgdGhpcyB0byBwcmV2ZW50IGFjY2lkZW50
YWxseSB1c2luZyB0aGF0IG9wZXJhdG9yCisgICAgLy8gd2hlbiBwbGFjaW5nIGEgVVJMIGluIGFu
IGlmIHN0YXRtZW50LgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQgPSB2b2lkPgorICAgIGV4cGxp
Y2l0IG9wZXJhdG9yIGJvb2woKQorICAgIHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6Omlz
X3NhbWVfdjxULCB2b2lkPiwgIlVzaW5nIHVybCBpbiBhbiBpZiBzdGF0ZW1lbnQgaXMgZGlzYWxs
b3dlZC4iKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIC8vIFJldHVybnMg
dHJ1ZSBpZiB5b3UgY2FuIHNldCB0aGUgaG9zdCBhbmQgcG9ydCBmb3IgdGhlIFVSTC4KICAgICAv
LyBOb24taGllcmFyY2hpY2FsIFVSTHMgZG9uJ3QgaGF2ZSBhIGhvc3QgYW5kIHBvcnQuCiAgICAg
Ym9vbCBjYW5TZXRIb3N0T3JQb3J0KCkgY29uc3QgeyByZXR1cm4gaXNIaWVyYXJjaGljYWwoKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291
cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNv
dXJjZVByb3ZpZGVyLmgKaW5kZXggMGU4MDFmY2M5ODgyNDc3NWE2ZDViMjAyNWNmMmI3NGU5NmI4
YTc2Ny4uZmY2YzIwZmRiYWFjMTI3MmE0NGQ3MjAxYzFiNTdjZDc5NWFkM2I4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92
aWRlci5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBDYWNoZWRT
Y3JpcHRTb3VyY2VQcm92aWRlcihDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCwgSlNDOjpTb3Vy
Y2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSwgUmVmPENhY2hlZFNjcmlwdEZldGNoZXI+
JiYgc2NyaXB0RmV0Y2hlcikKLSAgICAgICAgOiBTb3VyY2VQcm92aWRlcihKU0M6OlNvdXJjZU9y
aWdpbiB7IGNhY2hlZFNjcmlwdC0+cmVzcG9uc2UoKS51cmwoKS5zdHJpbmcoKSwgV1RGTW92ZShz
Y3JpcHRGZXRjaGVyKSB9LCBVUkwoY2FjaGVkU2NyaXB0LT5yZXNwb25zZSgpLnVybCgpKSwgVGV4
dFBvc2l0aW9uKCksIHNvdXJjZVR5cGUpCisgICAgICAgIDogU291cmNlUHJvdmlkZXIoSlNDOjpT
b3VyY2VPcmlnaW4geyBjYWNoZWRTY3JpcHQtPnJlc3BvbnNlKCkudXJsKCksIFdURk1vdmUoc2Ny
aXB0RmV0Y2hlcikgfSwgU3RyaW5nKGNhY2hlZFNjcmlwdC0+cmVzcG9uc2UoKS51cmwoKS5zdHJp
bmcoKSksIFRleHRQb3NpdGlvbigpLCBzb3VyY2VUeXBlKQogICAgICAgICAsIG1fY2FjaGVkU2Ny
aXB0KGNhY2hlZFNjcmlwdCkKICAgICB7CiAgICAgICAgIG1fY2FjaGVkU2NyaXB0LT5hZGRDbGll
bnQoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVu
dExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5l
ci5jcHAKaW5kZXggNDQ4YzNiYjMwNDQyY2U0MDMwZDNlOGVkODI2NTY0Y2I0MGFkODhiNS4uYmNk
YWY5NTc4OTY3OWM4ZGQ0MTZmOTg3MTRjYjZiMTU5ZjMxZmVkYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAg
dm9pZCBKU0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKICAgICAgICAgSlNET01XaW5kb3cqIHdpbmRvdyA9IGpz
Q2FzdDxKU0RPTVdpbmRvdyo+KGdsb2JhbE9iamVjdCk7CiAgICAgICAgIGlmICghd2luZG93LT53
cmFwcGVkKCkuaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIGlmICh3YXNDcmVhdGVkRnJvbU1hcmt1cCgpICYmICFzY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0lubGluZUV2ZW50SGFuZGxl
cnMoc291cmNlVVJMKCksIHNvdXJjZVBvc2l0aW9uKCkubV9saW5lKSkKKyAgICAgICAgaWYgKHdh
c0NyZWF0ZWRGcm9tTWFya3VwKCkgJiYgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY29udGVudFNl
Y3VyaXR5UG9saWN5KCktPmFsbG93SW5saW5lRXZlbnRIYW5kbGVycyhzb3VyY2VVUkwoKS5zdHJp
bmcoKSwgc291cmNlUG9zaXRpb24oKS5tX2xpbmUpKQogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAvLyBGSVhNRTogSXMgdGhpcyBjaGVjayBuZWVkZWQgZm9yIG90aGVyIGNvbnRleHRzPwog
ICAgICAgICBTY3JpcHRDb250cm9sbGVyJiBzY3JpcHQgPSB3aW5kb3ctPndyYXBwZWQoKS5mcmFt
ZSgpLT5zY3JpcHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RXZlbnRMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3Rl
bmVyLmgKaW5kZXggZDUxNTNhZjEyNTVkMzVkY2RlNGE2MjdmZmIxOGU1MDFjZjI0ZTMyMy4uMTE5
MzI3ODQzMmZjZGNlMWEwN2RmYzQ2NmQ0NjkxYzU3NmQ1NmNiNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGlj
OgogICAgIEpTQzo6SlNPYmplY3QqIGpzRnVuY3Rpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2pzRnVuY3Rpb24uZ2V0KCk7IH0KICAgICBKU0M6OkpTT2JqZWN0KiB3cmFwcGVyKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV93cmFwcGVyLmdldCgpOyB9CiAKLSAgICB2aXJ0dWFsIFN0cmluZyBz
b3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQorICAgIHZpcnR1YWwgVVJMIHNv
dXJjZVVSTCgpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQogICAgIHZpcnR1YWwgVGV4dFBvc2l0aW9u
IHNvdXJjZVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gVGV4dFBvc2l0aW9uKCk7IH0KIAogICAg
IFN0cmluZyBmdW5jdGlvbk5hbWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggMWI0YjIxZWRhZDUxMzQ5M2Q4
YjUxYmYyYTVmNzFlYmJhMTczMWZkZC4uMTVjN2ExNjQwZmZjMjE0NThiODFmZWFjMTcwYTJjNjc2
NzViMTNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZl
bnRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZl
bnRMaXN0ZW5lci5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgc3RhdGljIFRleHRQb3NpdGlvbiBjb252
ZXJ0WmVyb1RvT25lKGNvbnN0IFRleHRQb3NpdGlvbiYgcG9zaXRpb24pCiAgICAgcmV0dXJuIHBv
c2l0aW9uOwogfQogCi1KU0xhenlFdmVudExpc3RlbmVyOjpKU0xhenlFdmVudExpc3RlbmVyKENy
ZWF0aW9uQXJndW1lbnRzJiYgYXJndW1lbnRzLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgY29u
c3QgVGV4dFBvc2l0aW9uJiBzb3VyY2VQb3NpdGlvbikKK0pTTGF6eUV2ZW50TGlzdGVuZXI6OkpT
TGF6eUV2ZW50TGlzdGVuZXIoQ3JlYXRpb25Bcmd1bWVudHMmJiBhcmd1bWVudHMsIGNvbnN0IFVS
TCYgc291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRpb24mIHNvdXJjZVBvc2l0aW9uKQogICAgIDog
SlNFdmVudExpc3RlbmVyKG51bGxwdHIsIGFyZ3VtZW50cy53cmFwcGVyLCB0cnVlLCBtYWluVGhy
ZWFkTm9ybWFsV29ybGQoKSkKICAgICAsIG1fZnVuY3Rpb25OYW1lKGFyZ3VtZW50cy5hdHRyaWJ1
dGVOYW1lLmxvY2FsTmFtZSgpLnN0cmluZygpKQogICAgICwgbV9ldmVudFBhcmFtZXRlck5hbWUo
ZXZlbnRQYXJhbWV0ZXJOYW1lKGFyZ3VtZW50cy5zaG91bGRVc2VTVkdFdmVudE5hbWUpKQpAQCAt
MTMwLDcgKzEzMCw3IEBAIEpTT2JqZWN0KiBKU0xhenlFdmVudExpc3RlbmVyOjppbml0aWFsaXpl
SlNGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBleGVjCiAgICAgaWYgKCFkb2N1bWVu
dC5mcmFtZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGlmICghZG9jdW1lbnQu
Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93SW5saW5lRXZlbnRIYW5kbGVycyhtX3NvdXJj
ZVVSTCwgbV9zb3VyY2VQb3NpdGlvbi5tX2xpbmUpKQorICAgIGlmICghZG9jdW1lbnQuY29udGVu
dFNlY3VyaXR5UG9saWN5KCktPmFsbG93SW5saW5lRXZlbnRIYW5kbGVycyhtX3NvdXJjZVVSTC5z
dHJpbmcoKSwgbV9zb3VyY2VQb3NpdGlvbi5tX2xpbmUpKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgIGF1dG8mIHNjcmlwdCA9IGRvY3VtZW50LmZyYW1lKCktPnNjcmlwdCgpOwpAQCAt
MTYwLDcgKzE2MCw3IEBAIEpTT2JqZWN0KiBKU0xhenlFdmVudExpc3RlbmVyOjppbml0aWFsaXpl
SlNGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBleGVjCiAgICAgSlNPYmplY3QqIGpz
RnVuY3Rpb24gPSBjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjaygKICAg
ICAgICAgbGV4aWNhbEdsb2JhbE9iamVjdCwgYXJncywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgbV9mdW5jdGlvbk5hbWUpLAogICAgICAgICBTb3VyY2VPcmlnaW4geyBtX3NvdXJjZVVSTCwg
Q2FjaGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKGRvY3VtZW50LmNoYXJzZXQoKSkgfSwKLSAgICAg
ICAgbV9zb3VyY2VVUkwsIG1fc291cmNlUG9zaXRpb24sIG92ZXJyaWRlTGluZU51bWJlcik7Cisg
ICAgICAgIG1fc291cmNlVVJMLnN0cmluZygpLCBtX3NvdXJjZVBvc2l0aW9uLCBvdmVycmlkZUxp
bmVOdW1iZXIpOwogICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24oKSkpIHsKICAgICAg
ICAgcmVwb3J0Q3VycmVudEV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAgICAg
c2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKQEAgLTE5MSwxMiArMTkxLDEyIEBAIFJlZlB0cjxKU0xh
enlFdmVudExpc3RlbmVyPiBKU0xhenlFdmVudExpc3RlbmVyOjpjcmVhdGUoQ3JlYXRpb25Bcmd1
bWVudHMmJiBhcmd1CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gcHJvdmlk
ZSBzb3VyY2UgaW5mb3JtYXRpb24gZm9yIGZyYW1lbGVzcyBkb2N1bWVudHMgdG9vIChlLmcuIGZv
ciBpbXBvcnRpbmcgbm9kZXMgZnJvbSBYTUxIdHRwUmVxdWVzdC5yZXNwb25zZVhNTCkuCiAgICAg
VGV4dFBvc2l0aW9uIHBvc2l0aW9uOwotICAgIFN0cmluZyBzb3VyY2VVUkw7CisgICAgVVJMIHNv
dXJjZVVSTDsKICAgICBpZiAoRnJhbWUqIGZyYW1lID0gYXJndW1lbnRzLmRvY3VtZW50LmZyYW1l
KCkpIHsKICAgICAgICAgaWYgKCFmcmFtZS0+c2NyaXB0KCkuY2FuRXhlY3V0ZVNjcmlwdHMoQWJv
dXRUb0NyZWF0ZUV2ZW50TGlzdGVuZXIpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgICAgIHBvc2l0aW9uID0gZnJhbWUtPnNjcmlwdCgpLmV2ZW50SGFuZGxlclBvc2l0aW9uKCk7
Ci0gICAgICAgIHNvdXJjZVVSTCA9IGFyZ3VtZW50cy5kb2N1bWVudC51cmwoKS5zdHJpbmcoKTsK
KyAgICAgICAgc291cmNlVVJMID0gYXJndW1lbnRzLmRvY3VtZW50LnVybCgpOwogICAgIH0KIAog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEpTTGF6eUV2ZW50TGlzdGVuZXIoV1RGTW92ZShhcmd1
bWVudHMpLCBzb3VyY2VVUkwsIHBvc2l0aW9uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmgKaW5kZXggMTc5ZWI0Mzc4ZGNkMjhhNGI0M2Jl
ZTcwYjMzZTU3YmVhOWU4YjUxMy4uNzI4ODY5ZGRiZGRiMDkzMDI1NzlhYmRlMWU2NGY2MDIwZTdi
MjJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRM
aXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlz
dGVuZXIuaApAQCAtMzksMTMgKzM5LDEzIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkpTTGF6
eUV2ZW50TGlzdGVuZXIoKTsKIAotICAgIFN0cmluZyBzb3VyY2VVUkwoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX3NvdXJjZVVSTDsgfQorICAgIFVSTCBzb3VyY2VVUkwoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX3NvdXJjZVVSTDsgfQogICAgIFRleHRQb3NpdGlvbiBzb3VyY2VQb3NpdGlvbigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc291cmNlUG9zaXRpb247IH0KIAogcHJpdmF0ZToKICAg
ICBzdHJ1Y3QgQ3JlYXRpb25Bcmd1bWVudHM7CiAgICAgc3RhdGljIFJlZlB0cjxKU0xhenlFdmVu
dExpc3RlbmVyPiBjcmVhdGUoQ3JlYXRpb25Bcmd1bWVudHMmJik7Ci0gICAgSlNMYXp5RXZlbnRM
aXN0ZW5lcihDcmVhdGlvbkFyZ3VtZW50cyYmLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgY29u
c3QgVGV4dFBvc2l0aW9uJik7CisgICAgSlNMYXp5RXZlbnRMaXN0ZW5lcihDcmVhdGlvbkFyZ3Vt
ZW50cyYmLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJik7CiAKICNp
ZiBBU1NFUlRfRU5BQkxFRAogICAgIHZvaWQgY2hlY2tWYWxpZGl0eUZvckV2ZW50VGFyZ2V0KEV2
ZW50VGFyZ2V0JikgZmluYWw7CkBAIC01Nyw3ICs1Nyw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5n
IG1fZnVuY3Rpb25OYW1lOwogICAgIGNvbnN0IFN0cmluZyYgbV9ldmVudFBhcmFtZXRlck5hbWU7
CiAgICAgU3RyaW5nIG1fY29kZTsKLSAgICBTdHJpbmcgbV9zb3VyY2VVUkw7CisgICAgVVJMIG1f
c291cmNlVVJMOwogICAgIFRleHRQb3NpdGlvbiBtX3NvdXJjZVBvc2l0aW9uOwogICAgIFdlYWtQ
dHI8Q29udGFpbmVyTm9kZT4gbV9vcmlnaW5hbE5vZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBjYzIwMTIxN2JmMTA2ZDdj
YWMxMWVjY2Y3ZjNlMjYzZGY4YWFiNjc2Li5lZDM2NDE5NzY4ODc3ODdlYWNmYjhiZjA1YjkyZWZm
N2VjMjQyYWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250
cm9sbGVyLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29u
dHJvbGxlcjo6ZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjCiAg
ICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0oKSk7CiAKICAgICBjb25zdCBTb3VyY2VDb2Rl
JiBqc1NvdXJjZUNvZGUgPSBzb3VyY2VDb2RlLmpzU291cmNlQ29kZSgpOwotICAgIFN0cmluZyBz
b3VyY2VVUkwgPSBqc1NvdXJjZUNvZGUucHJvdmlkZXIoKS0+dXJsKCkuc3RyaW5nKCk7CisgICAg
Y29uc3QgVVJMJiBzb3VyY2VVUkwgPSBqc1NvdXJjZUNvZGUucHJvdmlkZXIoKS0+c291cmNlT3Jp
Z2luKCkudXJsKCk7CiAKICAgICAvLyBldmFsdWF0ZSBjb2RlLiBSZXR1cm5zIHRoZSBKUyByZXR1
cm4gdmFsdWUgb3IgMAogICAgIC8vIGlmIHRoZXJlIHdhcyBub25lLCBhbiBlcnJvciBvY2N1cnJl
ZCBvciB0aGUgdHlwZSBjb3VsZG4ndCBiZSBjb252ZXJ0ZWQuCkBAIC0xMzYsMTIgKzEzNiwxMSBA
QCBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZChjb25z
dCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyYwogICAgIC8vIFNlZSBzbWFydCB3aW5kb3cub3BlbiBw
b2xpY3kgZm9yIHdoZXJlIHRoaXMgaXMgdXNlZC4KICAgICBhdXRvJiBwcm94eSA9IGpzV2luZG93
UHJveHkod29ybGQpOwogICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICpwcm94eS53aW5kb3coKTsK
LSAgICBjb25zdCBTdHJpbmcqIHNhdmVkU291cmNlVVJMID0gbV9zb3VyY2VVUkw7Ci0gICAgbV9z
b3VyY2VVUkwgPSAmc291cmNlVVJMOworICAgIFNldEZvclNjb3BlPGNvbnN0IFVSTCo+IHNvdXJj
ZVVSTFNjb3BlKG1fc291cmNlVVJMLCAmc291cmNlVVJMKTsKIAogICAgIFJlZjxGcmFtZT4gcHJv
dGVjdG9yKG1fZnJhbWUpOwogCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRXZh
bHVhdGVTY3JpcHQobV9mcmFtZSwgc291cmNlVVJMLCBzb3VyY2VDb2RlLnN0YXJ0TGluZSgpLCBz
b3VyY2VDb2RlLnN0YXJ0Q29sdW1uKCkpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbEV2YWx1YXRlU2NyaXB0KG1fZnJhbWUsIHNvdXJjZVVSTC5zdHJpbmcoKSwgc291cmNlQ29k
ZS5zdGFydExpbmUoKSwgc291cmNlQ29kZS5zdGFydENvbHVtbigpKTsKIAogICAgIE5ha2VkUHRy
PEpTQzo6RXhjZXB0aW9uPiBldmFsdWF0aW9uRXhjZXB0aW9uOwogICAgIEpTVmFsdWUgcmV0dXJu
VmFsdWUgPSBKU0V4ZWNTdGF0ZTo6cHJvZmlsZWRFdmFsdWF0ZSgmZ2xvYmFsT2JqZWN0LCBKU0M6
OlByb2ZpbGluZ1JlYXNvbjo6T3RoZXIsIGpzU291cmNlQ29kZSwgJnByb3h5LCBldmFsdWF0aW9u
RXhjZXB0aW9uKTsKQEAgLTE1NSw3ICsxNTQsNiBAQCBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlwdENv
bnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyYwog
ICAgICAgICBvcHRpb25hbERldGFpbHMgPSBXVEZNb3ZlKGRldGFpbHMpOwogICAgIH0KIAotICAg
IG1fc291cmNlVVJMID0gc2F2ZWRTb3VyY2VVUkw7CiAgICAgaWYgKG9wdGlvbmFsRGV0YWlscykK
ICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKCpvcHRpb25hbERldGFpbHMpOwogCkBAIC0y
MzUsNyArMjMzLDcgQEAgSlNDOjpKU1ZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlTW9k
dWxlKGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU01vZHVsZVJlY28KIAogICAgIGF1dG8mIHByb3h5
ID0ganNXaW5kb3dQcm94eSh3b3JsZCk7CiAgICAgYXV0byYgbGV4aWNhbEdsb2JhbE9iamVjdCA9
ICpwcm94eS53aW5kb3coKTsKLSAgICBTZXRGb3JTY29wZTxjb25zdCBTdHJpbmcqPiBzb3VyY2VV
UkxTY29wZShtX3NvdXJjZVVSTCwgJnNvdXJjZVVSTC5zdHJpbmcoKSk7CisgICAgU2V0Rm9yU2Nv
cGU8Y29uc3QgVVJMKj4gc291cmNlVVJMU2NvcGUobV9zb3VyY2VVUkwsICZzb3VyY2VVUkwpOwog
CiAgICAgUmVmPEZyYW1lPiBwcm90ZWN0b3IobV9mcmFtZSk7CiAKQEAgLTY0OSwxMyArNjQ3LDEy
IEBAIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29udHJvbGxlcjo6Y2FsbEluV29ybGQoUnVuSmF2
YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0CiAgICAgYXV0byBzb3VyY2VDb2RlID0gU2NyaXB0
U291cmNlQ29kZSB7IGZ1bmN0aW9uU3RyaW5nQnVpbGRlci50b1N0cmluZygpLCBXVEZNb3ZlKHBh
cmFtZXRlcnMuc291cmNlVVJMKSwgVGV4dFBvc2l0aW9uKCksIEpTQzo6U291cmNlUHJvdmlkZXJT
b3VyY2VUeXBlOjpQcm9ncmFtLCBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUobV9mcmFtZS5k
b2N1bWVudCgpLT5jaGFyc2V0KCkpIH07CiAgICAgY29uc3QgYXV0byYganNTb3VyY2VDb2RlID0g
c291cmNlQ29kZS5qc1NvdXJjZUNvZGUoKTsKIAotICAgIFN0cmluZyBzb3VyY2VVUkwgPSBqc1Nv
dXJjZUNvZGUucHJvdmlkZXIoKS0+dXJsKCkuc3RyaW5nKCk7Ci0gICAgY29uc3QgU3RyaW5nKiBz
YXZlZFNvdXJjZVVSTCA9IG1fc291cmNlVVJMOwotICAgIG1fc291cmNlVVJMID0gJnNvdXJjZVVS
TDsKKyAgICBjb25zdCBVUkwmIHNvdXJjZVVSTCA9IGpzU291cmNlQ29kZS5wcm92aWRlcigpLT5z
b3VyY2VPcmlnaW4oKS51cmwoKTsKKyAgICBTZXRGb3JTY29wZTxjb25zdCBVUkwqPiBzb3VyY2VV
UkxTY29wZShtX3NvdXJjZVVSTCwgJnNvdXJjZVVSTCk7CiAKICAgICBSZWY8RnJhbWU+IHByb3Rl
Y3RvcihtX2ZyYW1lKTsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEV2YWx1
YXRlU2NyaXB0KG1fZnJhbWUsIHNvdXJjZVVSTCwgc291cmNlQ29kZS5zdGFydExpbmUoKSwgc291
cmNlQ29kZS5zdGFydENvbHVtbigpKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxFdmFsdWF0ZVNjcmlwdChtX2ZyYW1lLCBzb3VyY2VVUkwuc3RyaW5nKCksIHNvdXJjZUNvZGUu
c3RhcnRMaW5lKCksIHNvdXJjZUNvZGUuc3RhcnRDb2x1bW4oKSk7CiAKICAgICBOYWtlZFB0cjxK
U0M6OkV4Y2VwdGlvbj4gZXZhbHVhdGlvbkV4Y2VwdGlvbjsKICAgICBPcHRpb25hbDxFeGNlcHRp
b25EZXRhaWxzPiBvcHRpb25hbERldGFpbHM7CkBAIC02OTAsOCArNjg3LDYgQEAgVmFsdWVPckV4
Y2VwdGlvbiBTY3JpcHRDb250cm9sbGVyOjpjYWxsSW5Xb3JsZChSdW5KYXZhU2NyaXB0UGFyYW1l
dGVycyYmIHBhcmFtZXQKICAgICAgICAgb3B0aW9uYWxEZXRhaWxzID0gV1RGTW92ZShkZXRhaWxz
KTsKICAgICB9CiAKLSAgICBtX3NvdXJjZVVSTCA9IHNhdmVkU291cmNlVVJMOwotCiAgICAgaWYg
KG9wdGlvbmFsRGV0YWlscykKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKCpvcHRpb25h
bERldGFpbHMpOwogICAgIHJldHVybiByZXR1cm5WYWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAppbmRleCAyNmQ5ZmM2NjYzZGRhNDA5YWQwNmJl
NWIxMzk3ZTJmZjRjODNmNWM4Li5jNWE2Y2MwM2RlODk2ODljYWNlYzNhMWNmZWVhYmYyZDZkM2U5
NzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5o
CkBAIC0xMzgsNyArMTM4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGF1c2VkKGJvb2wgYikg
eyBtX3BhdXNlZCA9IGI7IH0KICAgICBib29sIGlzUGF1c2VkKCkgY29uc3QgeyByZXR1cm4gbV9w
YXVzZWQ7IH0KIAotICAgIGNvbnN0IFN0cmluZyogc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4g
bV9zb3VyY2VVUkw7IH0gLy8gMCBpZiB3ZSBhcmUgbm90IGV2YWx1YXRpbmcgYW55IHNjcmlwdAor
ICAgIGNvbnN0IFVSTCogc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0g
Ly8gbnVsbHB0ciBpZiB3ZSBhcmUgbm90IGV2YWx1YXRpbmcgYW55IHNjcmlwdAogCiAgICAgdm9p
ZCB1cGRhdGVEb2N1bWVudCgpOwogCkBAIC0xODgsNyArMTg4LDcgQEAgcHJpdmF0ZToKICAgICBX
RUJDT1JFX0VYUE9SVCBKU1dpbmRvd1Byb3h5JiBqc1dpbmRvd1Byb3h5KERPTVdyYXBwZXJXb3Js
ZCYpOwogCiAgICAgRnJhbWUmIG1fZnJhbWU7Ci0gICAgY29uc3QgU3RyaW5nKiBtX3NvdXJjZVVS
TDsKKyAgICBjb25zdCBVUkwqIG1fc291cmNlVVJMIHsgbnVsbHB0ciB9OwogCiAgICAgYm9vbCBt
X3BhdXNlZDsKICAgICBib29sIG1fd2lsbFJlcGxhY2VXaXRoUmVzdWx0T2ZFeGVjdXRpbmdKYXZh
c2NyaXB0VVJMIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IGM4NjY0YjEyYzUzYmMzMjdiNWM4OGFmNTY3NjI3
Y2Y4MDRmMTY1NGMuLmFhNWI4MGI1ODZiNzllMGU1NzUwMWNkNTEwNzhkZjI1YTYyNWU1ZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNw
cApAQCAtNjgsNyArNjgsNyBAQCBzdGF0aWMgYm9vbCBpc1Jvb3RNb2R1bGUoSlNDOjpKU1ZhbHVl
IGltcG9ydGVyTW9kdWxlS2V5KQogICAgIHJldHVybiBpbXBvcnRlck1vZHVsZUtleS5pc1N5bWJv
bCgpIHx8IGltcG9ydGVyTW9kdWxlS2V5LmlzVW5kZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyBFeHBl
Y3RlZDxVUkwsIEFTQ0lJTGl0ZXJhbD4gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgc3BlY2lmaWVyLCBjb25zdCBVUkwmIGJhc2VVUkwpCitz
dGF0aWMgRXhwZWN0ZWQ8VVJMLCBTdHJpbmc+IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoRG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHNwZWNpZmllciwgY29uc3QgVVJMJiBiYXNlVVJM
KQogewogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFw
cGFwaXMuaHRtbCNyZXNvbHZlLWEtbW9kdWxlLXNwZWNpZmllcgogCkBAIC03NywxMSArNzcsMTEg
QEAgc3RhdGljIEV4cGVjdGVkPFVSTCwgQVNDSUlMaXRlcmFsPiByZXNvbHZlTW9kdWxlU3BlY2lm
aWVyKERvY3VtZW50JiBkb2N1bWVudCwgY28KICAgICAgICAgcmV0dXJuIGFic29sdXRlVVJMOwog
CiAgICAgaWYgKCFzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLycpICYmICFzcGVjaWZpZXIuc3RhcnRz
V2l0aCgiLi8iKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4uLyIpKQotICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQoIk1vZHVsZSBzcGVjaWZpZXIgZG9lcyBub3Qgc3RhcnQgd2l0aCBc
Ii9cIiwgXCIuL1wiLCBvciBcIi4uL1wiLiJfcyk7CisgICAgICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZChtYWtlU3RyaW5nKCJNb2R1bGUgc3BlY2lmaWVyLCAnIl9zLCBzcGVjaWZpZXIsICInIGRv
ZXMgbm90IHN0YXJ0IHdpdGggXCIvXCIsIFwiLi9cIiwgb3IgXCIuLi9cIi4gUmVmZXJlbmNlZCBm
cm9tICJfcywgYmFzZVVSTC5zdHJpbmcoKSkpOwogCiAgICAgYXV0byByZXN1bHQgPSBkb2N1bWVu
dC5jb21wbGV0ZVVSTChzcGVjaWZpZXIsIGJhc2VVUkwpOwogICAgIGlmICghcmVzdWx0LmlzVmFs
aWQoKSkKLSAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKCJNb2R1bGUgbmFtZSBkb2VzIG5v
dCByZXNvbHZlIHRvIGEgdmFsaWQgVVJMLiJfcyk7CisgICAgICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZChtYWtlU3RyaW5nKCJNb2R1bGUgbmFtZSwgJyJfcywgcmVzdWx0LnN0cmluZygpLCAiJyBk
b2VzIG5vdCByZXNvbHZlIHRvIGEgdmFsaWQgVVJMLiJfcykpOwogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKQEAgLTIyNCw3ICsyMjQsNyBAQCBKU0M6OkpTVmFsdWUgU2NyaXB0TW9kdWxlTG9hZGVy
OjpldmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiBqc0dsb2JhbE9iamVjdCwgSgogICAgIHJl
dHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9t
aXNlKiByZWplY3RQcm9taXNlKEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIEV4Y2Vw
dGlvbkNvZGUgZWMsIEFTQ0lJTGl0ZXJhbCBtZXNzYWdlKQorc3RhdGljIEpTQzo6SlNJbnRlcm5h
bFByb21pc2UqIHJlamVjdFByb21pc2UoSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwg
RXhjZXB0aW9uQ29kZSBlYywgU3RyaW5nIG1lc3NhZ2UpCiB7CiAgICAgYXV0byoganNQcm9taXNl
ID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3JlYXRlKGdsb2JhbE9iamVjdC52bSgpLCBnbG9i
YWxPYmplY3QuaW50ZXJuYWxQcm9taXNlU3RydWN0dXJlKCkpOwogICAgIFJFTEVBU0VfQVNTRVJU
KGpzUHJvbWlzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRTb3VyY2VDb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VD
b2RlLmgKaW5kZXggZmNhNTc0Y2ZkYWFjNDliYWRmNGQ4MjlmMTkyMDAyMTExNDM3MTk4Yi4uYzcw
NDYyNmZiNzMzZGI0NzJiZGE1MDIzNjI0MWE2ZTc0MGUyNzgyYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaApAQCAtNDUsNyArNDUsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTY3JpcHRTb3VyY2VDb2RlIHsKIHB1YmxpYzoKICAgICBT
Y3JpcHRTb3VyY2VDb2RlKGNvbnN0IFN0cmluZyYgc291cmNlLCBVUkwmJiB1cmwgPSBVUkwoKSwg
Y29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uKCksIEpTQzo6
U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUgPSBKU0M6OlNvdXJjZVByb3ZpZGVy
U291cmNlVHlwZTo6UHJvZ3JhbSkKLSAgICAgICAgOiBtX3Byb3ZpZGVyKEpTQzo6U3RyaW5nU291
cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIEpTQzo6U291cmNlT3JpZ2luIHsgdXJsLnN0cmlu
ZygpIH0sIFdURk1vdmUodXJsKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkpCisgICAgICAg
IDogbV9wcm92aWRlcihKU0M6OlN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCBK
U0M6OlNvdXJjZU9yaWdpbiB7IHVybCB9LCB1cmwuc3RyaW5nKCksIHN0YXJ0UG9zaXRpb24sIHNv
dXJjZVR5cGUpKQogICAgICAgICAsIG1fY29kZShtX3Byb3ZpZGVyLmNvcHlSZWYoKSwgc3RhcnRQ
b3NpdGlvbi5tX2xpbmUub25lQmFzZWRJbnQoKSwgc3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVC
YXNlZEludCgpKQogICAgIHsKICAgICB9CkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICB9
CiAKICAgICBTY3JpcHRTb3VyY2VDb2RlKGNvbnN0IFN0cmluZyYgc291cmNlLCBVUkwmJiB1cmws
IGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgSlNDOjpTb3VyY2VQcm92aWRlclNv
dXJjZVR5cGUgc291cmNlVHlwZSwgUmVmPENhY2hlZFNjcmlwdEZldGNoZXI+JiYgc2NyaXB0RmV0
Y2hlcikKLSAgICAgICAgOiBtX3Byb3ZpZGVyKEpTQzo6U3RyaW5nU291cmNlUHJvdmlkZXI6OmNy
ZWF0ZShzb3VyY2UsIEpTQzo6U291cmNlT3JpZ2luIHsgdXJsLnN0cmluZygpLCBXVEZNb3ZlKHNj
cmlwdEZldGNoZXIpIH0sIFdURk1vdmUodXJsKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkp
CisgICAgICAgIDogbV9wcm92aWRlcihKU0M6OlN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUo
c291cmNlLCBKU0M6OlNvdXJjZU9yaWdpbiB7IHVybCwgV1RGTW92ZShzY3JpcHRGZXRjaGVyKSB9
LCB1cmwuc3RyaW5nKCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpKQogICAgICAgICAsIG1f
Y29kZShtX3Byb3ZpZGVyLmNvcHlSZWYoKSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJ
bnQoKSwgc3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKQogICAgIHsKICAgICB9
CkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKIAogICAgIENhY2hlZFNjcmlwdCogY2FjaGVkU2Ny
aXB0KCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQuZ2V0KCk7IH0KIAotICAgIGNvbnN0
IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV9wcm92aWRlci0+dXJsKCk7IH0KKyAgICBjb25z
dCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdmlkZXItPnNvdXJjZU9yaWdpbigpLnVy
bCgpOyB9CiAgICAgCiBwcml2YXRlOgogICAgIFJlZjxKU0M6OlNvdXJjZVByb3ZpZGVyPiBtX3By
b3ZpZGVyOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxv
ZwppbmRleCA4MGVmMzUyMDhhNGM1ZjI5ZjQ4M2M4MDg1Njg0ZmE1ZGYwM2E0NjI0Li4yODg2Yzky
MjY4NjZhN2NjNDAxOGNlYTlhMWZmY2U5Njk0NTFiODY1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0No
YW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDIwLTA3
LTEwICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIENs
ZWFuIHVwIFNvdXJjZVByb3ZpZGVyIGFuZCBhZGQgY2FsbGVyIHJlbGF0aXZlIGxvYWQgc2NyaXB0
IHRvIGpzYy5jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNDIwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMi5qczoKKyAg
ICAgICAgKiBzdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy0zLmpzOgor
ICAgICAgICAqIHN0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTQuanM6
CisgICAgICAgICogc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNS5q
czoKKyAgICAgICAgKiBzdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy5q
czoKKyAgICAgICAgKiBzdHJlc3MvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlLmpz
OgorICAgICAgICAqIHN0cmVzcy9nbG9iYWwtbGV4aWNhbC1yZWRlZmluZS1jb25zdC5qczoKKyAg
ICAgICAgKiBzdHJlc3MvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdGR6LmpzOgorICAgICAgICAq
IHN0cmVzcy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS11bnJlc29sdmVkLXByb3BlcnR5LmpzOgor
ICAgICAgICAqIHN0cmVzcy9nbG9iYWwtcHJvcGVydHktaW50by12YXJpYWJsZS1nZXQtZnJvbS1z
Y29wZS5qczoKKyAgICAgICAgKiBzdHJlc3MvanNvbnAtbGl0ZXJhbC1wYXJzZXItc2VtaWNvbG9u
LWlzLW5vdC1hc3NpZ25tZW50LmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9hZGQuanM6CisgICAg
ICAgICogc3RyZXNzL29wX2JpdGFuZC5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfYml0b3IuanM6
CisgICAgICAgICogc3RyZXNzL29wX2JpdHhvci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfZGl2
LUNvbnN0VmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9kaXYtVmFyQ29uc3QuanM6CisgICAg
ICAgICogc3RyZXNzL29wX2Rpdi1WYXJWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX2xzaGlm
dC1Db25zdFZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfbHNoaWZ0LVZhckNvbnN0LmpzOgor
ICAgICAgICAqIHN0cmVzcy9vcF9sc2hpZnQtVmFyVmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9v
cF9tb2QtQ29uc3RWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX21vZC1WYXJDb25zdC5qczoK
KyAgICAgICAgKiBzdHJlc3Mvb3BfbW9kLVZhclZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3Bf
bXVsLUNvbnN0VmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9tdWwtVmFyQ29uc3QuanM6Cisg
ICAgICAgICogc3RyZXNzL29wX211bC1WYXJWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX25l
Z2F0ZS5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfcG9zdGRlYy5qczoKKyAgICAgICAgKiBzdHJl
c3Mvb3BfcG9zdGluYy5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfcHJlZGVjLmpzOgorICAgICAg
ICAqIHN0cmVzcy9vcF9wcmVpbmMuanM6CisgICAgICAgICogc3RyZXNzL29wX3JzaGlmdC1Db25z
dFZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfcnNoaWZ0LVZhckNvbnN0LmpzOgorICAgICAg
ICAqIHN0cmVzcy9vcF9yc2hpZnQtVmFyVmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9zdWIt
Q29uc3RWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX3N1Yi1WYXJDb25zdC5qczoKKyAgICAg
ICAgKiBzdHJlc3Mvb3Bfc3ViLVZhclZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfdXJzaGlm
dC1Db25zdFZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfdXJzaGlmdC1WYXJDb25zdC5qczoK
KyAgICAgICAgKiBzdHJlc3Mvb3BfdXJzaGlmdC1WYXJWYXIuanM6CisgICAgICAgICogc3RyZXNz
L3JlZ3Jlc3MtMTU5Nzc5LTEuanM6CisgICAgICAgIChtYWtlVXNlUmVncmVzc2lvblRlc3QpOgor
ICAgICAgICAqIHN0cmVzcy9yZWdyZXNzLTE1OTc3OS0yLmpzOgorICAgICAgICAobWFrZVVzZVJl
Z3Jlc3Npb25UZXN0KToKKyAgICAgICAgKiBzdHJlc3MvcmVzb3VyY2VzL3R5cGVkYXJyYXktY29u
c3RydWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5qczoKKyAgICAgICAgKiBzdHJlc3MvcmVzb3VyY2Vz
L3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzOgorICAgICAgICAqIHN0cmVzcy9z
YW1wbGluZy1wcm9maWxlci1hbm9ueW1vdXMtZnVuY3Rpb24uanM6CisgICAgICAgICogc3RyZXNz
L3NhbXBsaW5nLXByb2ZpbGVyLWJhc2ljLmpzOgorICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1w
cm9maWxlci1ib3VuZC1mdW5jdGlvbi1uYW1lLmpzOgorICAgICAgICAqIHN0cmVzcy9zYW1wbGlu
Zy1wcm9maWxlci1kZWVwLXN0YWNrLmpzOgorICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9m
aWxlci1kaXNwbGF5LW5hbWUuanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVy
LWludGVybmFsLWZ1bmN0aW9uLW5hbWUuanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXBy
b2ZpbGVyLW1pY3JvdGFza3MuanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVy
LXdhc20tbmFtZS1zZWN0aW9uLmpzOgorICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxl
ci13YXNtLmpzOgorICAgICAgICAqIHN0cmVzcy9zaGFkb3ctY2hpY2tlbi1kaXNhYmxlZC5qczoK
KyAgICAgICAgKiBzdHJlc3Mvc2hhZG93LWNoaWNrZW4tZW5hYmxlZC5qczoKKyAgICAgICAgKiBz
dHJlc3MvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRh
cnJheS1jb3B5V2l0aGluLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWV2ZXJ5Lmpz
OgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWZpbGwuanM6CisgICAgICAgICogc3RyZXNz
L3R5cGVkYXJyYXktZmlsdGVyLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWZpbmQu
anM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktZmluZEluZGV4LmpzOgorICAgICAgICAq
IHN0cmVzcy90eXBlZGFycmF5LWZvckVhY2guanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJy
YXktZnJvbS5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1pbmNsdWRlcy5qczoKKyAg
ICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1pbmRleE9mLmpzOgorICAgICAgICAqIHN0cmVzcy90
eXBlZGFycmF5LWxhc3RJbmRleE9mLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LW1h
cC5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1vZi5qczoKKyAgICAgICAgKiBzdHJl
c3MvdHlwZWRhcnJheS1yZWR1Y2UuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktcmVk
dWNlUmlnaHQuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktc2V0LmpzOgorICAgICAg
ICAqIHN0cmVzcy90eXBlZGFycmF5LXNsaWNlLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFy
cmF5LXNvbWUuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktc29ydC5qczoKKyAgICAg
ICAgKiBzdHJlc3MvdHlwZWRhcnJheS1zdWJhcnJheS5qczoKKwogMjAyMC0wNy0wOSAgQ2FpbyBM
aW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0pTQ11bMzItYml0c10gVGVz
dCBnYXJkZW5pbmcgSnVseSA5dGgKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbW9kdWxlcy9hbGlhc2Vk
LW5hbWVzLmpzIGIvSlNUZXN0cy9tb2R1bGVzL2FsaWFzZWQtbmFtZXMuanMKaW5kZXggNGM4Nzk2
NTQ5NWMwMGM2NDk2MzI5NWVkYTRkNzlkZGM5NTU3YjQzNi4uNzc3Zjc0MjViOTM3Njk2YTcyMjhl
YTQ5NWM4NGU5ZmVjNGNkYzQxNCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9tb2R1bGVzL2FsaWFzZWQt
bmFtZXMuanMKKysrIGIvSlNUZXN0cy9tb2R1bGVzL2FsaWFzZWQtbmFtZXMuanMKQEAgLTEsNCAr
MSw0IEBACi1pbXBvcnQgeyBhLCBiLCBjaGFuZ2UgfSBmcm9tICdhbGlhc2VkLW5hbWVzL21haW4u
anMnCitpbXBvcnQgeyBhLCBiLCBjaGFuZ2UgfSBmcm9tICcuL2FsaWFzZWQtbmFtZXMvbWFpbi5q
cycKIGltcG9ydCB7IHNob3VsZEJlLCBzaG91bGRUaHJvdyB9IGZyb20gIi4vcmVzb3VyY2VzL2Fz
c2VydC5qcyI7CiAKIHNob3VsZEJlKGEsIDQyKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbW9kdWxl
cy9hbGlhc2luZy9kcmluay5qcyBiL0pTVGVzdHMvbW9kdWxlcy9hbGlhc2luZy9kcmluay5qcwpp
bmRleCAxZGE4NGEwZjhmMGFhYTBhNDkzYzlhYjE0ZTYzODRkZWZmMzFjNjYzLi5mYzUyZTQ4ZWFk
MTFiYjZkZjg1YzY1ZGEyZWViMjMyMDBlY2YxMDJiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL21vZHVs
ZXMvYWxpYXNpbmcvZHJpbmsuanMKKysrIGIvSlNUZXN0cy9tb2R1bGVzL2FsaWFzaW5nL2RyaW5r
LmpzCkBAIC0zLDUgKzMsNSBAQCBleHBvcnQgZnVuY3Rpb24gY2hhbmdlQ29jb2EodmFsdWUpIHsK
ICAgICBDb2NvYSA9IHZhbHVlOwogfQogCi1pbXBvcnQgeyBDYXBwdWNjaW5vIGFzIFN1YkRyaW5r
LCBjaGFuZ2VDYXBwdWNjaW5vIH0gZnJvbSAiZHJpbmstMi5qcyIKK2ltcG9ydCB7IENhcHB1Y2Np
bm8gYXMgU3ViRHJpbmssIGNoYW5nZUNhcHB1Y2Npbm8gfSBmcm9tICIuL2RyaW5rLTIuanMiCiBl
eHBvcnQgeyBTdWJEcmluaywgY2hhbmdlQ2FwcHVjY2lubyB9CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzLmpzIGIvSlNUZXN0cy9t
b2R1bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1tYWtlLWFtYmlndW91cy5qcwppbmRleCA0MjUxM2Vk
MTcwYjNkNzExMTM5NGJiMzQ5M2RiOGE2NGQ1YzJhMWUwLi41NGE0MDg4OWRiMmIxNWVjMmRiNWJj
NWE2MDVlZmUzZDUwMWI4OTkyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL21vZHVsZXMvY2FjaGluZy1z
aG91bGQtbm90LW1ha2UtYW1iaWd1b3VzLmpzCisrKyBiL0pTVGVzdHMvbW9kdWxlcy9jYWNoaW5n
LXNob3VsZC1ub3QtbWFrZS1hbWJpZ3VvdXMuanMKQEAgLTIsNCArMiw0IEBACiAvLyAgICAgICAg
ICAgICAgICB8ICAgICAgICAgICAgICAgIHwKIC8vICAgICAgICAgICAgICAgIHwgICAgICAgICAg
ICAgICAgdgogLy8gICBALT4gKEEpICotLS0tKy0tLS0+IChCKSAtLS0+IFtDXQotaW1wb3J0IHsg
QSB9IGZyb20gImNhY2hpbmctc2hvdWxkLW5vdC1tYWtlLWFtYmlndW91cy9tYWluLmpzIgoraW1w
b3J0IHsgQSB9IGZyb20gIi4vY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzL21haW4u
anMiCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21vZHVsZXMvZGVmYXVsdC1lcnJvci9tYWluLmpzIGIv
SlNUZXN0cy9tb2R1bGVzL2RlZmF1bHQtZXJyb3IvbWFpbi5qcwppbmRleCBkYWFiMTM1OTE4MzY1
NTgyNjg4ZjU4OGMxYTllNTNiMTc1NjRiNDI2Li41ZmJlNDQ0Y2UzOTQxZTE0ZGJlOTQ2ZjYwMTQ5
ZDBhZDJhODZjMWYyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL21vZHVsZXMvZGVmYXVsdC1lcnJvci9t
YWluLmpzCisrKyBiL0pTVGVzdHMvbW9kdWxlcy9kZWZhdWx0LWVycm9yL21haW4uanMKQEAgLTEg
KzEgQEAKLWltcG9ydCAiQSI7CitpbXBvcnQgIi4vQSI7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21v
ZHVsZXMvZXhlY3V0aW9uLW9yZGVyLWN5Y2xpYy81LmpzIGIvSlNUZXN0cy9tb2R1bGVzL2V4ZWN1
dGlvbi1vcmRlci1jeWNsaWMvNS5qcwppbmRleCBhMWRlZWY5MmQxMmY1YWJjNjg2YTMxOGMyYmFh
NDk4YmY2NDgxZThmLi5iMmQ0NTgwNWU5N2Y0NWMyMWNmZDUwYTliZmZhZmZhNDM3MmQ3MTBiIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9uLW9yZGVyLWN5Y2xpYy81LmpzCisr
KyBiL0pTVGVzdHMvbW9kdWxlcy9leGVjdXRpb24tb3JkZXItY3ljbGljLzUuanMKQEAgLTEsNSAr
MSw1IEBACi1pbXBvcnQgIjMuanMiCi1pbXBvcnQgIjQuanMiCitpbXBvcnQgIi4vMy5qcyIKK2lt
cG9ydCAiLi80LmpzIgogCiB2YXIgZ2xvYmFsID0gKEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKSgp
OwogaWYgKGdsb2JhbC5jb3VudCAhPT0gNCkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbW9kdWxlcy9l
eGVjdXRpb24tb3JkZXItZGFnLzUuanMgYi9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9uLW9yZGVy
LWRhZy81LmpzCmluZGV4IGEzM2I2M2NmNTRjYTdlNTkzYzNiYjcxYTA2OTdmNmI4NTk2M2JlYzUu
LjdkMTEwMjUwZWI5MjNmNTM2M2FiZGU2OWY5NDEzYWY4YWIzYzA2M2MgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvbW9kdWxlcy9leGVjdXRpb24tb3JkZXItZGFnLzUuanMKKysrIGIvSlNUZXN0cy9tb2R1
bGVzL2V4ZWN1dGlvbi1vcmRlci1kYWcvNS5qcwpAQCAtMSw1ICsxLDUgQEAKLWltcG9ydCAiNC5q
cyIKLWltcG9ydCAiMS5qcyIKK2ltcG9ydCAiLi80LmpzIgoraW1wb3J0ICIuLzEuanMiCiAKIHZh
ciBnbG9iYWwgPSAoRnVuY3Rpb24oInJldHVybiB0aGlzIikpKCk7CiBpZiAoZ2xvYmFsLmNvdW50
ICE9PSA0KQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb2R1bGVzL2V4ZWN1dGlvbi1vcmRlci10cmVl
LzUuanMgYi9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9uLW9yZGVyLXRyZWUvNS5qcwppbmRleCBh
MWRlZWY5MmQxMmY1YWJjNjg2YTMxOGMyYmFhNDk4YmY2NDgxZThmLi5iMmQ0NTgwNWU5N2Y0NWMy
MWNmZDUwYTliZmZhZmZhNDM3MmQ3MTBiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL21vZHVsZXMvZXhl
Y3V0aW9uLW9yZGVyLXRyZWUvNS5qcworKysgYi9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9uLW9y
ZGVyLXRyZWUvNS5qcwpAQCAtMSw1ICsxLDUgQEAKLWltcG9ydCAiMy5qcyIKLWltcG9ydCAiNC5q
cyIKK2ltcG9ydCAiLi8zLmpzIgoraW1wb3J0ICIuLzQuanMiCiAKIHZhciBnbG9iYWwgPSAoRnVu
Y3Rpb24oInJldHVybiB0aGlzIikpKCk7CiBpZiAoZ2xvYmFsLmNvdW50ICE9PSA0KQpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9tb2R1bGVzL2luZGlyZWN0LWV4cG9ydC1lcnJvci9pbmRpcmVjdC1leHBv
cnQtZGVmYXVsdC0yLmpzIGIvSlNUZXN0cy9tb2R1bGVzL2luZGlyZWN0LWV4cG9ydC1lcnJvci9p
bmRpcmVjdC1leHBvcnQtZGVmYXVsdC0yLmpzCmluZGV4IGMxNzdiMTQzOTQ1MGNkMmFmMzJjZTI5
ZGI2ZjdjNzdmZWQwYzY1ZjYuLmQ1ZjUxODI3N2QwNTZiY2EyMTc2OThkYjIyZDZjYjEwNGNkOTM5
ZjAgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvbW9kdWxlcy9pbmRpcmVjdC1leHBvcnQtZXJyb3IvaW5k
aXJlY3QtZXhwb3J0LWRlZmF1bHQtMi5qcworKysgYi9KU1Rlc3RzL21vZHVsZXMvaW5kaXJlY3Qt
ZXhwb3J0LWVycm9yL2luZGlyZWN0LWV4cG9ydC1kZWZhdWx0LTIuanMKQEAgLTEgKzEgQEAKLWV4
cG9ydCAqIGZyb20gImluZGlyZWN0LWV4cG9ydC1kZWZhdWx0LTMuanMiCitleHBvcnQgKiBmcm9t
ICIuL2luZGlyZWN0LWV4cG9ydC1kZWZhdWx0LTMuanMiCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21v
ZHVsZXMvbmFtZXNwYWNlLWFtYmlndW91cy9hbWJpZ3VvdXMtMi5qcyBiL0pTVGVzdHMvbW9kdWxl
cy9uYW1lc3BhY2UtYW1iaWd1b3VzL2FtYmlndW91cy0yLmpzCmluZGV4IDc4MDkzZDQ2NmQwYzhh
NWQ4OTI4MDgyMTI5ZWU5NGZlZmZjMTJkOTUuLmMxYzNlZDc5YWNmMThiM2YyNmM3Mjg3NzM2ZGUx
YTdmOGY0ODMyMGMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvbW9kdWxlcy9uYW1lc3BhY2UtYW1iaWd1
b3VzL2FtYmlndW91cy0yLmpzCisrKyBiL0pTVGVzdHMvbW9kdWxlcy9uYW1lc3BhY2UtYW1iaWd1
b3VzL2FtYmlndW91cy0yLmpzCkBAIC0xLDIgKzEsMiBAQAotZXhwb3J0ICogZnJvbSAiYW1iaWd1
b3VzLTMuanMiCi1leHBvcnQgKiBmcm9tICJhbWJpZ3VvdXMtNC5qcyIKK2V4cG9ydCAqIGZyb20g
Ii4vYW1iaWd1b3VzLTMuanMiCitleHBvcnQgKiBmcm9tICIuL2FtYmlndW91cy00LmpzIgpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9tb2R1bGVzL25hbWVzcGFjZS1hbWJpZ3VvdXMvYW1iaWd1b3VzLmpz
IGIvSlNUZXN0cy9tb2R1bGVzL25hbWVzcGFjZS1hbWJpZ3VvdXMvYW1iaWd1b3VzLmpzCmluZGV4
IGQyODkyZWI5ZjdjNDI5Nzk1NDQ1NWU0MWFkNDA4MjlmODEwN2YyN2EuLjNmZDRmNmQ0MmZiNDcy
NzlmZTQ5Yzg3OWYzNjYzOTY4MWM2NDgwYTEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvbW9kdWxlcy9u
YW1lc3BhY2UtYW1iaWd1b3VzL2FtYmlndW91cy5qcworKysgYi9KU1Rlc3RzL21vZHVsZXMvbmFt
ZXNwYWNlLWFtYmlndW91cy9hbWJpZ3VvdXMuanMKQEAgLTEgKzEgQEAKLWltcG9ydCAqIGFzIG5h
bWVzcGFjZSBmcm9tICJhbWJpZ3VvdXMtMi5qcyIKK2ltcG9ydCAqIGFzIG5hbWVzcGFjZSBmcm9t
ICIuL2FtYmlndW91cy0yLmpzIgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb2R1bGVzL25hbWVzcGFj
ZS1yZS1leHBvcnQuanMgYi9KU1Rlc3RzL21vZHVsZXMvbmFtZXNwYWNlLXJlLWV4cG9ydC5qcwpp
bmRleCA5Yzc0ZTYxMmQ0N2U3NWJkOTI3NDg2ZGFlNTExYzkwODlmYzMxZWQ1Li5iMGM3NWI1OTQ5
NTBjZmQ2NDRhZWVlOWRmMDY5ODZmZjUzMDRmNjE3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL21vZHVs
ZXMvbmFtZXNwYWNlLXJlLWV4cG9ydC5qcworKysgYi9KU1Rlc3RzL21vZHVsZXMvbmFtZXNwYWNl
LXJlLWV4cG9ydC5qcwpAQCAtMSArMSBAQAotaW1wb3J0ICJuYW1lc3BhY2UtcmUtZXhwb3J0L25h
bWVzcGFjZS1yZS1leHBvcnQuanMiOworaW1wb3J0ICIuL25hbWVzcGFjZS1yZS1leHBvcnQvbmFt
ZXNwYWNlLXJlLWV4cG9ydC5qcyI7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21vZHVsZXMvdW5jYWNo
ZWFibGUtd2hlbi1zZWUtc3Rhci5qcyBiL0pTVGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVu
LXNlZS1zdGFyLmpzCmluZGV4IDQxOTJiNTE3ZmFlODlhYzMzNTA5MGI1NTZmZGM5NWI1OTg4YzQz
ODYuLjc1MDI5NjRhODBhNzdiY2M4MzQ3ZmQ3NzY1NjI2YjExZmM4MWZjZWMgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyLmpzCisrKyBiL0pTVGVz
dHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyLmpzCkBAIC05LDUgKzksNSBAQAog
Ly8gICAgICAgICAgICAgICAgIHwKIC8vICAgICAgICAgICAgICAgICBACiAKLWltcG9ydCAidW5j
YWNoZWFibGUtd2hlbi1zZWUtc3Rhci9tYWluMS5qcyIKLWltcG9ydCAidW5jYWNoZWFibGUtd2hl
bi1zZWUtc3Rhci9tYWluMi5qcyIKK2ltcG9ydCAiLi91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFy
L21haW4xLmpzIgoraW1wb3J0ICIuL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvbWFpbjIuanMi
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1z
ZXR0aW5nLTIuanMgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1z
ZXR0aW5nLTIuanMKaW5kZXggZmNmZGRmNDk0OTczYzY2NDUzNmIwNzE1ZTkxMGI1NjY2YzlkMzMx
ZC4uYTIwYWM1NzNjYzdkZjFmZDA4OTI4ZjYxMDUzM2FkY2VjNjhlMGE0MCAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy0yLmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMi5q
cwpAQCAtOCw4ICs4LDggQEAgZnVuY3Rpb24gYXNzZXJ0KGIpIHsKIHNldEdsb2JhbENvbnN0UmVk
ZWNsYXJhdGlvblNob3VsZE5vdFRocm93KCk7IC8vIEFsbG93IGR1cGxpY2F0ZSBjb25zdCBkZWNs
YXJhdGlvbnMgYXQgdGhlIGdsb2JhbCBsZXZlbC4KIAogZm9yIChsZXQgaSA9IDA7IGkgPCAxMDA7
IGkrKykgewotICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9m
aXJzdC5qcyIpOworICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGlu
Zy9maXJzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKICAgICBhc3NlcnQoZm9vID09PSAyMCk7
Ci0gICAgbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL3NlY29uZC5q
cyIpOworICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9zZWNv
bmQuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAgICAgYXNzZXJ0KGZvbyA9PT0gNDApOwogfQpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0
dGluZy0zLmpzIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0
dGluZy0zLmpzCmluZGV4IDExNzdjYjk1ODExMzA3YmI2NjdkMzkwYzY5YWNkZTcyMmY3MWU0NGIu
LjEwMjQwOTZjZTFiMzViZjIyMGYwYTVhMTkwYTExOTI1OWY0OTY3MTggMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMy5qcworKysg
Yi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTMuanMK
QEAgLTcsMTEgKzcsMTEgQEAgZnVuY3Rpb24gYXNzZXJ0KGIpIHsKIAogc2V0R2xvYmFsQ29uc3RS
ZWRlY2xhcmF0aW9uU2hvdWxkTm90VGhyb3coKTsgLy8gQWxsb3cgZHVwbGljYXRlIGNvbnN0IGRl
Y2xhcmF0aW9ucyBhdCB0aGUgZ2xvYmFsIGxldmVsLgogCi1sb2FkKCIuL2dsb2JhbC1jb25zdC1y
ZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiKTsKK2xvYWQoIi4vZ2xvYmFsLWNvbnN0LXJl
ZGVjbGFyYXRpb24tc2V0dGluZy9maXJzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGFzc2Vy
dChmb28gPT09IDIwKTsKIGxldCB0aHJldyA9IGZhbHNlOwogdHJ5IHsKLSAgICBsb2FkKCIuL2ds
b2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvc3RyaWN0LmpzIik7IC8vIFdlIGlnbm9y
ZSB0aGUgc2V0dGluZyBhbmQgYWx3YXlzIHRocm93IGFuIGVycm9yIHdoZW4gaW4gc3RyaWN0IG1v
ZGUhCisgICAgbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL3N0cmlj
dC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsgLy8gV2UgaWdub3JlIHRoZSBzZXR0aW5nIGFuZCBh
bHdheXMgdGhyb3cgYW4gZXJyb3Igd2hlbiBpbiBzdHJpY3QgbW9kZSEKIH0gY2F0Y2goZSkgewog
ICAgIHRocmV3ID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1j
b25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNC5qcyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1j
b25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNC5qcwppbmRleCBkOTZhM2Q2ZTJlNTNhMTZjMjI3
OTkxYmFmM2U2ZjdmNGUxMjVhMTMyLi4xZmY3ZDc2YjI3OTIyZjIyZWZlYzcwZmMwZTkyYTUxMDY1
NTJhNzMwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJh
dGlvbi1zZXR0aW5nLTQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVj
bGFyYXRpb24tc2V0dGluZy00LmpzCkBAIC03LDExICs3LDExIEBAIGZ1bmN0aW9uIGFzc2VydChi
KSB7CiAKIHNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZE5vdFRocm93KCk7IC8vIEFs
bG93IGR1cGxpY2F0ZSBjb25zdCBkZWNsYXJhdGlvbnMgYXQgdGhlIGdsb2JhbCBsZXZlbC4KIAot
bG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2ZpcnN0LmpzIik7Cits
b2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiLCAiY2Fs
bGVyIHJlbGF0aXZlIik7CiBhc3NlcnQoZm9vID09PSAyMCk7CiBsZXQgdGhyZXcgPSBmYWxzZTsK
IHRyeSB7Ci0gICAgbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2xl
dC5qcyIpOyAvLyBSZWRlY2xhcmF0aW9uIGEgJ2xldCcgdmFyaWFibGUgc2hvdWxkIHRocm93IGJl
Y2F1c2UgdGhpcyBkb2Vzbid0IGJyZWFrIGJhY2t3YXJkcyBjb21wYXQuCisgICAgbG9hZCgiLi9n
bG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2xldC5qcyIsICJjYWxsZXIgcmVsYXRp
dmUiKTsgLy8gUmVkZWNsYXJhdGlvbiBhICdsZXQnIHZhcmlhYmxlIHNob3VsZCB0aHJvdyBiZWNh
dXNlIHRoaXMgZG9lc24ndCBicmVhayBiYWNrd2FyZHMgY29tcGF0LgogfSBjYXRjaChlKSB7CiAg
ICAgdGhyZXcgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNv
bnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy01LmpzIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNv
bnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy01LmpzCmluZGV4IGUzZWEwOTE4MTRjZGJhMGNjNGQw
ZTM4NDQyMDc1NmNiNTZlYmUwZGIuLmZiMTIzZDYyNjMwZTc3NTBhNzA1ODU1ZDAwZDBlMmZhYmEz
MzM3NGMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0
aW9uLXNldHRpbmctNS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNs
YXJhdGlvbi1zZXR0aW5nLTUuanMKQEAgLTcsMTEgKzcsMTEgQEAgZnVuY3Rpb24gYXNzZXJ0KGIp
IHsKIAogc2V0R2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uU2hvdWxkTm90VGhyb3coKTsgLy8gQWxs
b3cgZHVwbGljYXRlIGNvbnN0IGRlY2xhcmF0aW9ucyBhdCB0aGUgZ2xvYmFsIGxldmVsLgogCi1s
b2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvbGV0LmpzIik7Citsb2Fk
KCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvbGV0LmpzIiwgImNhbGxlciBy
ZWxhdGl2ZSIpOwogYXNzZXJ0KGZvbyA9PT0gNTApOwogbGV0IHRocmV3ID0gZmFsc2U7CiB0cnkg
ewotICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9maXJzdC5q
cyIpOyAvLyBSZWRlY2xhcmF0aW9uIG9mIGEgJ2xldCcgdG8gJ2NvbnN0JyBzaG91bGQgYWx3YXlz
IHRocm93IGJlY2F1c2UgaXQgaXNuJ3QgYnJlYWtpbmcgYmFja3dhcmRzIGNvbXBhdC4KKyAgICBs
b2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiLCAiY2Fs
bGVyIHJlbGF0aXZlIik7IC8vIFJlZGVjbGFyYXRpb24gb2YgYSAnbGV0JyB0byAnY29uc3QnIHNo
b3VsZCBhbHdheXMgdGhyb3cgYmVjYXVzZSBpdCBpc24ndCBicmVha2luZyBiYWNrd2FyZHMgY29t
cGF0LgogfSBjYXRjaChlKSB7CiAgICAgdGhyZXcgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy5qcyBiL0pTVGVz
dHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcuanMKaW5kZXggYWVk
MWI0MWM0YWEzNjhlYWE5MGQyNmQ5NWNjM2E0M2VjM2NjZDBlMi4uNGM5NDNkZTYzYTY4ZWNiMjU4
NWRmN2JhODdhZTI2Zjk3OGQ4NjhjOCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFs
LWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9nbG9i
YWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLmpzCkBAIC03LDcgKzcsNyBAQCBmdW5jdGlv
biBhc3NlcnQoYikgewogCiBzZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGROb3RUaHJv
dygpOyAvLyBBbGxvdyBkdXBsaWNhdGUgY29uc3QgZGVjbGFyYXRpb25zIGF0IHRoZSBnbG9iYWwg
bGV2ZWwuCiAKLWxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9maXJz
dC5qcyIpOworbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2ZpcnN0
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogYXNzZXJ0KGZvbyA9PT0gMjApOwotbG9hZCgiLi9n
bG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL3NlY29uZC5qcyIpOworbG9hZCgiLi9n
bG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL3NlY29uZC5qcyIsICJjYWxsZXIgcmVs
YXRpdmUiKTsKIGFzc2VydChmb28gPT09IDQwKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2ds
b2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS5qcwppbmRleCA2ZWMyODdiNmQxNjA0M2Y4
OGFkMWY4ZWRjYjlhOTdkMjZmN2M3MDlkLi41MTYzMzhjMTZkOTNhOTVlYWQ4NGQ5Y2ZhNTBjYmQ1
YmUzOWU4ZWRhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC1yZWRl
Y2xhcmUtdmFyaWFibGUuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtcmVk
ZWNsYXJlLXZhcmlhYmxlLmpzCkBAIC0zMCwzNSArMzAsMzUgQEAgZnVuY3Rpb24gYXNzZXJ0UHJv
cGVyRXJyb3IoZSkgewogYXNzZXJ0RXhwZWN0YXRpb25zKCk7CiAKIHRyeSB7Ci0gICAgbG9hZCgi
Li9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUv
Zmlyc3QuanMiKTsKKyAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhp
Y2FsLXJlZGVjbGFyZS12YXJpYWJsZS9maXJzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIH0g
Y2F0Y2goZSkgewogICAgIGFzc2VydFByb3BlckVycm9yKGUpOwogfQogYXNzZXJ0RXhwZWN0YXRp
b25zKCk7CiAKIHRyeSB7Ci0gICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwt
bGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvc2Vjb25kLmpzIik7CisgICAgbG9hZCgiLi9tdWx0
aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvc2Vjb25k
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRjaChlKSB7CiAgICAgYXNzZXJ0UHJvcGVy
RXJyb3IoZSk7CiB9CiBhc3NlcnRFeHBlY3RhdGlvbnMoKTsKIAogdHJ5IHsKLSAgICBsb2FkKCIu
L211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS90
aGlyZC5qcyIpOworICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGlj
YWwtcmVkZWNsYXJlLXZhcmlhYmxlL3RoaXJkLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBj
YXRjaChlKSB7CiAgICAgYXNzZXJ0UHJvcGVyRXJyb3IoZSk7CiB9CiBhc3NlcnRFeHBlY3RhdGlv
bnMoKTsKIAogdHJ5IHsKLSAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1s
ZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9mb3VydGguanMiKTsKKyAgICBsb2FkKCIuL211bHRp
cGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9mb3VydGgu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiB9IGNhdGNoKGUpIHsKICAgICBhc3NlcnRQcm9wZXJF
cnJvcihlKTsKIH0KIGFzc2VydEV4cGVjdGF0aW9ucygpOwogCiB0cnkgewotICAgIGxvYWQoIi4v
bXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL2Zp
ZnRoLmpzIik7CisgICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNh
bC1yZWRlY2xhcmUtdmFyaWFibGUvZmlmdGguanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiB9IGNh
dGNoKGUpIHsKICAgICBhc3NlcnRQcm9wZXJFcnJvcihlKTsKIH0KQEAgLTcwLDcgKzcwLDcgQEAg
YXNzZXJ0RXhwZWN0YXRpb25zKCk7CiB0cnkgewogICAgIHNlbnRpbmVsID0gImJhZCI7CiAgICAg
YXNzZXJ0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcywgImdsb2JhbFByb3Bl
cnR5IikuY29uZmlndXJhYmxlKTsKLSAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2ds
b2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9zaXh0aC5qcyIpOworICAgIGxvYWQoIi4v
bXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL3Np
eHRoLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRjaChlKSB7CiAgICAgYXNzZXJ0KGZh
bHNlKTsKIH0KQEAgLTc5LDcgKzc5LDcgQEAgYXNzZXJ0RXhwZWN0YXRpb25zKCk7CiB0cnkgewog
ICAgIHNlbnRpbmVsID0gImJhZCI7CiAgICAgYXNzZXJ0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IodGhpcywgIkFycmF5IikuY29uZmlndXJhYmxlKTsKLSAgICBsb2FkKCIuL211bHRp
cGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9zZXZlbnRo
LmpzIik7CisgICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1y
ZWRlY2xhcmUtdmFyaWFibGUvc2V2ZW50aC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIH0gY2F0
Y2goZSkgewogICAgIGFzc2VydChmYWxzZSk7CiB9CkBAIC04OCw3ICs4OCw3IEBAIGFzc2VydEV4
cGVjdGF0aW9ucygpOwogdHJ5IHsKICAgICBzZW50aW5lbCA9ICJiYWQiOwogICAgIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eSh0aGlzLCAnZm9vJywge3ZhbHVlOiA1LCBjb25maWd1cmFibGU6IHRydWUs
IHdyaXRhYmxlOiB0cnVlfSk7Ci0gICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9i
YWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvZWlnaHRoLmpzIik7CisgICAgbG9hZCgiLi9t
dWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvZWln
aHRoLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRjaChlKSB7CiAgICAgYXNzZXJ0KGZh
bHNlKTsKIH0KQEAgLTk2LDcgKzk2LDcgQEAgYXNzZXJ0RXhwZWN0YXRpb25zKCk7CiAKIHRyeSB7
CiAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdiYXInLCB7dmFsdWU6IDUsIGNvbmZp
Z3VyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlfSk7Ci0gICAgbG9hZCgiLi9tdWx0aXBsZS1m
aWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvbmludGguanMiKTsK
KyAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFy
ZS12YXJpYWJsZS9uaW50aC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIH0gY2F0Y2goZSkgewog
ICAgIGFzc2VydFByb3BlckVycm9yKGUpOwogfQpAQCAtMTA2LDcgKzEwNiw3IEBAIGFzc2VydChl
cnJvckNvdW50ID09PSA2KTsKIAogdHJ5IHsKICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhp
cywgJ3pvbycsIHt2YWx1ZTogdW5kZWZpbmVkLCBjb25maWd1cmFibGU6IGZhbHNlLCB3cml0YWJs
ZTogdHJ1ZX0pOwotICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGlj
YWwtcmVkZWNsYXJlLXZhcmlhYmxlL3RlbnRoLmpzIik7CisgICAgbG9hZCgiLi9tdWx0aXBsZS1m
aWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvdGVudGguanMiLCAi
Y2FsbGVyIHJlbGF0aXZlIik7CiB9IGNhdGNoKGUpIHsKICAgICBhc3NlcnRQcm9wZXJFcnJvcihl
KTsKIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXJlZGVmaW5l
LWNvbnN0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtcmVkZWZpbmUtY29uc3Qu
anMKaW5kZXggMWM2YmFmN2MzNzIyNTJjYjBjOTdiMzVmYzg0NDRmODVjMDY2ZTkxYi4uOTRhYzRh
ZDM5NDI1MjA4NjRiMGQ4NjIzZTc1Y2MwOTI3Yzk0YmFiZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9z
dHJlc3MvZ2xvYmFsLWxleGljYWwtcmVkZWZpbmUtY29uc3QuanMKKysrIGIvSlNUZXN0cy9zdHJl
c3MvZ2xvYmFsLWxleGljYWwtcmVkZWZpbmUtY29uc3QuanMKQEAgLTEsMiArMSwyIEBACi1sb2Fk
KCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVmaW5lLWNvbnN0L2Zp
cnN0LmpzIik7Ci1sb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJl
ZGVmaW5lLWNvbnN0L3NlY29uZC5qcyIpOworbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9n
bG9iYWwtbGV4aWNhbC1yZWRlZmluZS1jb25zdC9maXJzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUi
KTsKK2xvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWZpbmUt
Y29uc3Qvc2Vjb25kLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdGR6LmpzIGIvSlNUZXN0cy9zdHJlc3Mv
Z2xvYmFsLWxleGljYWwtdmFyaWFibGUtdGR6LmpzCmluZGV4IGU4OGNmZDZhMjU2MjM3ZmUzYzJk
NTdmZDExZDUwMDE1NjYwODlhMGEuLmUyYTFlMTcxYzE3M2VmMGIxYjZhZmVkODM2YWE0YjM1MmVm
ZDVlZmMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxl
LXRkei5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS10ZHou
anMKQEAgLTEsMiArMSwyIEBACi1sb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1s
ZXhpY2FsLXZhcmlhYmxlLXRkei9maXJzdC5qcyIpOwotbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10
ZXN0cy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS10ZHovc2Vjb25kLmpzIik7Citsb2FkKCIuL211
bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXRkei9maXJzdC5qcyIs
ICJjYWxsZXIgcmVsYXRpdmUiKTsKK2xvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFs
LWxleGljYWwtdmFyaWFibGUtdGR6L3NlY29uZC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXVucmVzb2x2
ZWQtcHJvcGVydHkuanMgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS11
bnJlc29sdmVkLXByb3BlcnR5LmpzCmluZGV4IGQ2MjIxNDU0NDFiYTAxZGNiZWNjNThiZmI5ZDll
ZjhjYjA3NjNkZGUuLmRlMTkzOGM2MGUwOTMwZjJkMmM5ZTVmZjFkNzRiNzM3YWYwMjBlODcgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXVucmVzb2x2
ZWQtcHJvcGVydHkuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtdmFyaWFi
bGUtdW5yZXNvbHZlZC1wcm9wZXJ0eS5qcwpAQCAtMSwyICsxLDIgQEAKLWxvYWQoIi4vbXVsdGlw
bGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdW5yZXNvbHZlZC1wcm9wZXJ0
eS9maXJzdC5qcyIpOwotbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNh
bC12YXJpYWJsZS11bnJlc29sdmVkLXByb3BlcnR5L3NlY29uZC5qcyIpOworbG9hZCgiLi9tdWx0
aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS11bnJlc29sdmVkLXByb3Bl
cnR5L2ZpcnN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOworbG9hZCgiLi9tdWx0aXBsZS1maWxl
cy10ZXN0cy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS11bnJlc29sdmVkLXByb3BlcnR5L3NlY29u
ZC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2ds
b2JhbC1wcm9wZXJ0eS1pbnRvLXZhcmlhYmxlLWdldC1mcm9tLXNjb3BlLmpzIGIvSlNUZXN0cy9z
dHJlc3MvZ2xvYmFsLXByb3BlcnR5LWludG8tdmFyaWFibGUtZ2V0LWZyb20tc2NvcGUuanMKaW5k
ZXggOTQ3YzRlOGYxMjIwZDYxODgwZjVjZGM0MGI2YWVjMjk5Y2FkYTExYS4uNDFkZWU1OTViNjI0
OWM4M2QyYWU2NTJiMGRlYjQwOTU4MTNiMDJhNCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mv
Z2xvYmFsLXByb3BlcnR5LWludG8tdmFyaWFibGUtZ2V0LWZyb20tc2NvcGUuanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvZ2xvYmFsLXByb3BlcnR5LWludG8tdmFyaWFibGUtZ2V0LWZyb20tc2NvcGUu
anMKQEAgLTYsNyArNiw3IEBACiAvLyBub0lubGluZSBhcyB0aGUgY3VycmVudCBnbG9iYWwgb2Jq
ZWN0IHdvdWxkIG5vdCBoYXZlIG5vSW5saW5lIGFzIGEgcHJvcGVydHkKIC8vIGF0IHRoYXQgcG9p
bnQgYW5kIHdlIHdvdWxkIGF0dGVtcHQgdG8gYWNjZXNzIHRoZSB2YWx1ZSBhdCBhbiBpbnZhbGlk
IG9mZnNldC4KIAotbG9hZCgicmVzb3VyY2VzL3N0YW5kYWxvbmUtcHJlLmpzIik7Citsb2FkKCJy
ZXNvdXJjZXMvc3RhbmRhbG9uZS1wcmUuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIG5vSW5s
aW5lKCk7CiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2ltcG9ydC13aXRoLWVtcHR5LXN0
cmluZy5qcyBiL0pTVGVzdHMvc3RyZXNzL2ltcG9ydC13aXRoLWVtcHR5LXN0cmluZy5qcwppbmRl
eCBkMTc0ZWM5ZWNmNTE4YzNmZDRiMDJlNzM2NDAxMmExYTYxZGIzODQzLi5hYWFkZTk4OTYzYjM4
ZGU1NmJkZmU1Nzc5ZTJhODlkNzYzMDUzZTA0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9p
bXBvcnQtd2l0aC1lbXB0eS1zdHJpbmcuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvaW1wb3J0LXdp
dGgtZW1wdHktc3RyaW5nLmpzCkBAIC0xLDIgKzEsMiBAQAotaW1wb3J0KCIiKS50aGVuKCR2bS5h
Ym9ydCwgZnVuY3Rpb24gKCkgeworaW1wb3J0KCIiKS50aGVuKCR2bS5hYm9ydCwgZnVuY3Rpb24g
KGUpIHsKIH0pOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvanNvbnAtbGl0ZXJhbC1wYXJz
ZXItc2VtaWNvbG9uLWlzLW5vdC1hc3NpZ25tZW50LmpzIGIvSlNUZXN0cy9zdHJlc3MvanNvbnAt
bGl0ZXJhbC1wYXJzZXItc2VtaWNvbG9uLWlzLW5vdC1hc3NpZ25tZW50LmpzCmluZGV4IDgxYWE2
MmFlY2JmY2Y1NmJlZmRjOWE0NWJjNDEyNmUyMzkxMjk2MzYuLmRhYWFlMWJiZWU5ZGE5MWVlODgw
Yzg0YTEyNzhiMTNlNWM3Y2FmMDQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2pzb25wLWxp
dGVyYWwtcGFyc2VyLXNlbWljb2xvbi1pcy1ub3QtYXNzaWdubWVudC5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy9qc29ucC1saXRlcmFsLXBhcnNlci1zZW1pY29sb24taXMtbm90LWFzc2lnbm1lbnQu
anMKQEAgLTEsNCArMSw0IEBACiB4ID0gdW5kZWZpbmVkOwotbG9hZCgiLi9yZXNvdXJjZXMvbGl0
ZXJhbC1wYXJzZXItdGVzdC1jYXNlLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9saXRlcmFsLXBh
cnNlci10ZXN0LWNhc2UuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBpZiAoeCAhPT0gdW5kZWZp
bmVkKQogICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJlc3VsdCIpOwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3Mvb3BfYWRkLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfYWRkLmpzCmluZGV4IDZi
NjEzZmI2NjY4ODY5MzQwYmU2NmUwNDUzOTMyZDkyMThiMTIzZmIuLjRkZmJjMmQzZjNmMWIwNmQw
NWVlMmEyOTczZGI2MDMxM2Q3NTkwODcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX2Fk
ZC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9hZGQuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJ
ZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5
LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0Lmpz
IGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2Jp
bmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIs
ICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNv
bmZpZ3VyYXRpb24gZGF0YToKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX2JpdGFuZC5q
cyBiL0pTVGVzdHMvc3RyZXNzL29wX2JpdGFuZC5qcwppbmRleCA0NDU1NWYxOTY2ODllNGZkM2M1
OWEzNjBmNDY2OTQ0MGYxNzQ5NTIyLi5mN2JlNGRhMDg4ODI4YjNkMmNiNWZkMDJiMGI5YTAyZTU3
ZTBmY2U3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRhbmQuanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3Mvb3BfYml0YW5kLmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMg
d2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBp
dCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdn
aW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVz
dC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJl
bGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9u
IGRhdGE6CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRvci5qcyBiL0pTVGVzdHMv
c3RyZXNzL29wX2JpdG9yLmpzCmluZGV4IGMxOTg0OTBlYjQ1NTVlNzJiNDRiZThlZDAyODU1ZDk5
MDZmODIzNzkuLjUxNDIxNzI4Y2VmODc3NzdmMjk5ZTdmN2ZlNTkyYWYxOWUzN2Q1YTUgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX2JpdG9yLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29w
X2JpdG9yLmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0
IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAv
LyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYg
bmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgi
Li9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8v
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9iaXR4b3IuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9iaXR4
b3IuanMKaW5kZXggMGZmOWYyNzI1NjM0MTMwNzg0ZDU2YWQ3ODBhZDFiZTgwNzgxNzk0Yy4uMTRm
Njk1NDYwOTVlM2Q5NTg1MWU2Nzk4YTliNTIxMzAzMjhjY2M2OSAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9zdHJlc3Mvb3BfYml0eG9yLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX2JpdHhvci5qcwpA
QCAtNCw3ICs0LDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2ls
bCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBT
ZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAot
bG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3Mvb3BfZGl2LUNvbnN0VmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfZGl2LUNvbnN0
VmFyLmpzCmluZGV4IDQ1MDg2NTQzYWQ2MTJiYzQ0NzYwYmNjMzdlNjU0NWM3ZGU3OTdmOTUuLjhh
Njg2NDMxZmM5NWY0MjQ0ZWU4YjdiM2YyNGM5MmI5NDY5NWNiMjkgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvc3RyZXNzL29wX2Rpdi1Db25zdFZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYt
Q29uc3RWYXIuanMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRl
c3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQK
IC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBp
ZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2Fk
KCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAog
Ly89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTEy
LDcgKzEyLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBv
cE5hbWUgPSAiZGl2IjsKIHZhciBvcCA9ICIvIjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5
LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIs
ICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHMo
dGVzdHMsIG9wTmFtZSwgb3AsICJDb25zdFZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL29wX2Rpdi1WYXJDb25zdC5qcyBiL0pTVGVzdHMvc3RyZXNzL29w
X2Rpdi1WYXJDb25zdC5qcwppbmRleCA5MWZmMmYxNGFkODk3N2U3ZDA0ZTU1YWE5MTAyYjQ3NmNm
ZjEyMzliLi4zMzM1NjFiNTY0MDMwNTVlN2ExOGJiYThiNjJlYjY1YzFiZjE3YmNhIDEwMDY0NAot
LS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFyQ29uc3QuanMKKysrIGIvSlNUZXN0cy9zdHJl
c3Mvb3BfZGl2LVZhckNvbnN0LmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2Vs
bCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3
aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5n
IG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5q
cyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRh
dGE6CkBAIC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0Lmpz
Iik7CiB2YXIgb3BOYW1lID0gImRpdiI7CiB2YXIgb3AgPSAiLyI7CiAKLWxvYWQoIi4vcmVzb3Vy
Y2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12
YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJp
bmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyQ29uc3QiLCB2YWx1ZXMsIHZhbHVlcyk7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFyVmFyLmpzIGIvSlNUZXN0cy9z
dHJlc3Mvb3BfZGl2LVZhclZhci5qcwppbmRleCA4MjhhMjAzMDQ1ZDFjZWRlZWIwZTk0NDI0ZGRm
YjJlYTM4OGVhMTZlLi42NDliODA5OTUxNTI5OTI0YzI1MjljMzUyNzI5MzhmMDhhZjIxMDQ4IDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFyVmFyLmpzCisrKyBiL0pTVGVzdHMv
c3RyZXNzL29wX2Rpdi1WYXJWYXIuanMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3
ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0
IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dp
bmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0
LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVs
YXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24g
ZGF0YToKQEAgLTEyLDcgKzEyLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3Qu
anMiKTsKIHZhciBvcE5hbWUgPSAiZGl2IjsKIHZhciBvcCA9ICIvIjsKIAotbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9w
LXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRl
QmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9sc2hpZnQtQ29uc3RWYXIuanMgYi9KU1Rl
c3RzL3N0cmVzcy9vcF9sc2hpZnQtQ29uc3RWYXIuanMKaW5kZXggYzBiMzk5NGM1OThiZDFmOWZi
MDU2NmUwNzcyMDY5MzljOWQyYzU5MS4uODc5MzU5ODJjNzFhZWUyMThkOTA3Y2Q4NjFiNWY2Njli
MGFjZmE3MSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LUNvbnN0VmFyLmpz
CisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX2xzaGlmdC1Db25zdFZhci5qcwpAQCAtMyw3ICszLDcg
QEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUg
c2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9w
LXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10
ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8v
IFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJsc2hpZnQiOwogdmFyIG9w
ID0gIjw8IjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9h
ZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
IAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJD
b25zdFZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29w
X2xzaGlmdC1WYXJDb25zdC5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX2xzaGlmdC1WYXJDb25zdC5q
cwppbmRleCAwZTMyYmE2OTJmMGVhODUyYTFkMDEwODQxYWU5MjM4ODc3YWQ4ZDVhLi5iZTM4NWNm
Y2NmNTRhNjA1MDk3MDQyOTExMmQyZGJhZTQ5ODlhMjE5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0
cmVzcy9vcF9sc2hpZnQtVmFyQ29uc3QuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0
LVZhckNvbnN0LmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0
ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50
CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMg
aWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9h
ZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAK
IC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0x
MSw3ICsxMSw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIg
b3BOYW1lID0gImxzaGlmdCI7CiB2YXIgb3AgPSAiPDwiOwogCi1sb2FkKCIuL3Jlc291cmNlcy9i
aW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVz
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlU
ZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhckNvbnN0IiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LVZhclZhci5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL29wX2xzaGlmdC1WYXJWYXIuanMKaW5kZXggODczNDliOGZlNDczOTA5ODRjYTk0ODMwYjc0
NWQ4NTE3MTNjMWI0OC4uNTM4MWZkNDI1YWZiMTQ3OTg1NDAzOTc3ZDEyMDk5MWZhZmYyNDkxZSAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LVZhclZhci5qcworKysgYi9KU1Rl
c3RzL3N0cmVzcy9vcF9sc2hpZnQtVmFyVmFyLmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxs
IGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYg
bm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3Ig
ZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnkt
b3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2Fs
bGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1
cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1v
cC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gImxzaGlmdCI7CiB2YXIgb3AgPSAiPDwiOwogCi1s
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNl
cy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtd
OwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhclZhciIsIHZhbHVl
cywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX21vZC1Db25zdFZhci5q
cyBiL0pTVGVzdHMvc3RyZXNzL29wX21vZC1Db25zdFZhci5qcwppbmRleCA0ODkxODhjZWQxYWE3
MTI1OGU5ZmVkMGE0NzMxZmIyMjVmZWVjYzYxLi5iYWVhN2U4YmE3M2RhNDlmNmY3Mjc2NzE0N2E2
NzYwOTcyYTc4ZDI2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9tb2QtQ29uc3RWYXIu
anMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbW9kLUNvbnN0VmFyLmpzCkBAIC0zLDcgKzMsNyBA
QAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBz
aWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3At
dGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRl
c3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8g
VGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3IEBAIGxvYWQoIi4vcmVzb3Vy
Y2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gIm1vZCI7CiB2YXIgb3AgPSAi
JSI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4v
cmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRl
c3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiQ29uc3RW
YXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9tb2Qt
VmFyQ29uc3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tb2QtVmFyQ29uc3QuanMKaW5kZXggZjAz
YTRkNDA0YWVhZjdmMGNiM2ZlZjNkYzA2ZTVmZjUxNjZjNjU1NS4uMzkxYzIxYTY0NDA3ZmFjZjNk
MzQwZThmN2FkZWE5MGU2MGQzZjEyNiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbW9k
LVZhckNvbnN0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX21vZC1WYXJDb25zdC5qcwpAQCAt
Myw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0
ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUg
YmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9h
ZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2Jp
bmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBsb2Fk
KCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJtb2QiOwog
dmFyIG9wID0gIiUiOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7
Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2
ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBv
cCwgIlZhckNvbnN0IiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3Mvb3BfbW9kLVZhclZhci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX21vZC1WYXJWYXIuanMKaW5k
ZXggMTM0MzZhOTdlMjA1NWY2ZTg2YzFhYTZkNTI3ZDRmOTRjM2Q4ZjE3Yy4uY2YwNTE5NGYzMDIz
Y2E1NWRmYWZiNWU0MmNiOTE5YmE4NjUzMjgwOSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mv
b3BfbW9kLVZhclZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tb2QtVmFyVmFyLmpzCkBA
IC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxs
IHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNl
ZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1s
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMv
YmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3IEBAIGxv
YWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gIm1vZCI7
CiB2YXIgb3AgPSAiJSI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMi
KTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUs
IG9wLCAiVmFyVmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3Mvb3BfbXVsLUNvbnN0VmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbXVsLUNvbnN0VmFyLmpz
CmluZGV4IDNkZTM2NGUxZmI5OTdmM2U0NzY0NmRhYTc3OWQ0YzJhZDkzMzY5ZGMuLmVjZjk4ZTIx
YTBhZTYwOGM1NzY4NDRmNjg5ODQ3M2U5MjdkMmE3ZTMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL29wX211bC1Db25zdFZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtQ29uc3RW
YXIuanMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9k
dWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVy
cm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVk
ZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jl
c291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTEyLDcgKzEy
LDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUg
PSAibXVsIjsKIHZhciBvcCA9ICIqIjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZh
bHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMs
IG9wTmFtZSwgb3AsICJDb25zdFZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL29wX211bC1WYXJDb25zdC5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX211bC1W
YXJDb25zdC5qcwppbmRleCA0OGUxZTc2NTQ5NzYwNjY3ZGFmNDZhYzJhMWJiMTZiZDc5MzYwMzlj
Li5jOGZjZDA1ZGYyN2RlZDQ1MGRkODE3YWNhMDlmYzA4MDM3ZTZhYzkyIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3N0cmVzcy9vcF9tdWwtVmFyQ29uc3QuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3Bf
bXVsLVZhckNvbnN0LmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhp
cyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHBy
aW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlv
bnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwor
bG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7
CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBA
IC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2
YXIgb3BOYW1lID0gIm11bCI7CiB2YXIgb3AgPSAiKiI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2Jp
bmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRl
c3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyQ29uc3QiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtVmFyVmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
b3BfbXVsLVZhclZhci5qcwppbmRleCA1ZTFjYzU4NzI4NWRlNGM1Y2ExMDNmZmUzODUyNmQxZWNh
MDQzYWVlLi5iNzc0ZWNhZGI3OTNmMmEwZjllYmYxMzJlNDc4MzZhMDdlNDUxZjk1IDEwMDY0NAot
LS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtVmFyVmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L29wX211bC1WYXJWYXIuanMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0
aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwg
cHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0
aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7
Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUi
KTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToK
QEAgLTEyLDcgKzEyLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsK
IHZhciBvcE5hbWUgPSAibXVsIjsKIHZhciBvcCA9ICIqIjsKIAotbG9hZCgiLi9yZXNvdXJjZXMv
YmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVl
cy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5
VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9uZWdhdGUuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9u
ZWdhdGUuanMKaW5kZXggZDk4ZjA0ZGJjN2MwNWMwYzFlZGRhYTZmODBiNGFhZmFiNTgxNmUxMi4u
NTViMDJkZmFjODMwM2NjYmEzODMyZmFlYjEyOTQ2YTAzMDVhYzQ3ZiAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9zdHJlc3Mvb3BfbmVnYXRlLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX25lZ2F0ZS5q
cwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUg
d2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3Jz
LiBTZWUgdW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgog
Ci1sb2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNl
cy91bmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3Mvb3BfcG9zdGRlYy5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX3Bvc3RkZWMuanMKaW5k
ZXggYjJlMWZhNzI5NzNjNmY1NzZkMTVhMzg4Mzk5ZDBlNjQwOTExOTk5YS4uNjI5Yjg1YmZlZDQz
NDgxNTZjNzg1N2Y2MDcxNDA3ZmUxMmZhOTdiNyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mv
b3BfcG9zdGRlYy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9wb3N0ZGVjLmpzCkBAIC0zLDcg
KzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1p
bmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSB1bmFy
eS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4v
cmVzb3VyY2VzL3VuYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3VuYXJ5LW9w
LXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog
Ly8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9v
cF9wb3N0aW5jLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfcG9zdGluYy5qcwppbmRleCAwOGFhMzVk
OWQwODhmMDk4NDhlYzBiMjA1MzRkYTc2YmQzMmJjYTlmLi4zZGZkMmU1YmQ5MGY1OWM1ZjQzMDk2
ZmU0MTRkNDJiOWIwYmRhNGJmIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9wb3N0aW5j
LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX3Bvc3RpbmMuanMKQEAgLTMsNyArMyw3IEBACiAv
LyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVu
dGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIHVuYXJ5LW9wLXRlc3Qu
anMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMv
dW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdW5hcnktb3AtdGVzdC5qcyIs
ICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNv
bmZpZ3VyYXRpb24gZGF0YToKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3ByZWRlYy5q
cyBiL0pTVGVzdHMvc3RyZXNzL29wX3ByZWRlYy5qcwppbmRleCBiOGM2NTYyN2ViZmMzYjZlNDEw
ZDg1Mzg3OGMxZWIzYWQ3ODA0NDM1Li41YTljYjQ2ZDRhZjhlM2M1NGVjODgwNWU4MGFiZDFiZGEy
MGMxOWJlIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9wcmVkZWMuanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3Mvb3BfcHJlZGVjLmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMg
d2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBp
dCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSB1bmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dp
bmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL3VuYXJ5LW9wLXRlc3Qu
anMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3VuYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRh
dGE6CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9wcmVpbmMuanMgYi9KU1Rlc3RzL3N0
cmVzcy9vcF9wcmVpbmMuanMKaW5kZXggMjJmYjZlZTYxODdhZTY1NTRlM2UzZjUwODk0ZGVjMzNj
ZjE1NzA1MS4uMWM3OTNkMTYzYzQ0MGUxNzlkYjdjOTMyZDNiNzJjY2YyZjRlMDc3NSAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfcHJlaW5jLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29w
X3ByZWluYy5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVz
dCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAog
Ly8gZXJyb3JzLiBTZWUgdW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYg
bmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIu
L3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LUNvbnN0VmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
b3BfcnNoaWZ0LUNvbnN0VmFyLmpzCmluZGV4IGYwNTk5MzE0OWI0ZWU5YjQzNjBiNzY3Nzk0MjA5
NjhhZWJjN2ZkN2YuLmY5OTk5MDAwY2ZmMjIxMGExNjUzZDQzYjlmNzBhOTA4OGM0ZmMwOTkgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1Db25zdFZhci5qcworKysgYi9KU1Rl
c3RzL3N0cmVzcy9vcF9yc2hpZnQtQ29uc3RWYXIuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBh
bGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJ
ZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZv
ciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFy
eS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJj
YWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZp
Z3VyYXRpb24gZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5
LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAicnNoaWZ0IjsKIHZhciBvcCA9ICI+PiI7CiAK
LWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3Vy
Y2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0g
W107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiQ29uc3RWYXIiLCB2
YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQtVmFy
Q29uc3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQtVmFyQ29uc3QuanMKaW5kZXggMTAw
Y2Q5YmFkNTVmZGQxODk5NTM0MTZkNTQ0MGUyZDNjMzEwMjZmZi4uYTVhYTA1MTkxYmZhODdmNzBk
ZjFiZGVlZTZmMzQ3NTNjYjYzYzI0ZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfcnNo
aWZ0LVZhckNvbnN0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1WYXJDb25zdC5q
cwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUg
d2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3Jz
LiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4K
IAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3Vy
Y2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBA
QCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJy
c2hpZnQiOwogdmFyIG9wID0gIj4+IjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZh
bHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMs
IG9wTmFtZSwgb3AsICJWYXJDb25zdCIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL29wX3JzaGlmdC1WYXJWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hp
ZnQtVmFyVmFyLmpzCmluZGV4IDExNjY2MGQ1ODFlZjI1ZjhiNmY0MWViYzllYjYwMmIyYzE2NzZm
MWIuLjJmZThmOTdiMmIxODY3YWRmM2U1NjZmOGJjZGE5MTcwNzA4OTM2MmIgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1WYXJWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mv
b3BfcnNoaWZ0LVZhclZhci5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGws
IHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2ls
bCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBv
cHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMi
KTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2
ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRh
OgpAQCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIp
OwogdmFyIG9wTmFtZSA9ICJyc2hpZnQiOwogdmFyIG9wID0gIj4+IjsKIAotbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9w
LXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRl
QmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItQ29uc3RWYXIuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9vcF9zdWItQ29uc3RWYXIuanMKaW5kZXggYzhmYTFmZjBkYzE4YWU0ZWI0ZjcwMDE0
NTEwNWQ0OTc1NzJhMzg1YS4uZjMwMzQzNTI4NzMwNDE2ZjJhMDk1MzlhYzQxNDZlMmZhMjMzNjA3
ZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLUNvbnN0VmFyLmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL29wX3N1Yi1Db25zdFZhci5qcwpAQCAtNCw3ICs0LDcgQEAKIC8vIElmIGFs
bCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElm
IG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9y
IGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5
LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNh
bGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmln
dXJhdGlvbiBkYXRhOgpAQCAtMTIsNyArMTIsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnkt
b3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJzdWIiOwogdmFyIG9wID0gIi0iOwogCi1sb2Fk
KCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9i
aW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwog
Z2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIkNvbnN0VmFyIiwgdmFsdWVz
LCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLVZhckNvbnN0Lmpz
IGIvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLVZhckNvbnN0LmpzCmluZGV4IDkxZTc0NTVmNDU3MDBk
ODNiY2VmNWU0NjczYzNhZGQ0OWQxNmJhYzIuLmYxZTU3NzQyOGRlMzM4OTI4ODRiNTdkZmY3ZTE4
NjEyM2FmMjM2MTIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3N1Yi1WYXJDb25zdC5q
cworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItVmFyQ29uc3QuanMKQEAgLTQsNyArNCw3IEBA
CiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNp
bGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10
ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3Vy
Y2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVz
dC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBU
ZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTEyLDcgKzEyLDcgQEAgbG9hZCgiLi9yZXNvdXJj
ZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAic3ViIjsKIHZhciBvcCA9ICIt
IjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9y
ZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVz
dHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJDb25z
dCIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3N1Yi1W
YXJWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItVmFyVmFyLmpzCmluZGV4IDZiOWQxN2Nl
ZjhhMDE3OWEwZTYwMzVjNWZlZGFjMWFmYTEyMzZhZGYuLmQwZjhlOWUyMDBjMGQzZDU5ZjkyN2M2
ZDM4MDRhNTU3Yjk4OWUyOWMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3N1Yi1WYXJW
YXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLVZhclZhci5qcwpAQCAtNCw3ICs0LDcg
QEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUg
c2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9w
LXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10
ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8v
IFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTIsNyArMTIsNyBAQCBsb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJzdWIiOwogdmFyIG9wID0g
Ii0iOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIu
L3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0
ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhclZh
ciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3Vyc2hp
ZnQtQ29uc3RWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LUNvbnN0VmFyLmpzCmlu
ZGV4IGZkZWUwYmU2ZTk1MTdjMzBhYmVjZGI1NTc2ZjUxYmY3ODc1NzNkYmMuLmViNTE4NjA5ZGQ3
OTk0NThmY2JhZTExYzZmNTA0OWFiNjJhNjMwMjQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNz
L29wX3Vyc2hpZnQtQ29uc3RWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC1D
b25zdFZhci5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVz
dCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAog
Ly8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlm
IG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQo
Ii4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAv
Lz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEs
NyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9w
TmFtZSA9ICJ1cnNoaWZ0IjsKIHZhciBvcCA9ICI+Pj4iOwogCi1sb2FkKCIuL3Jlc291cmNlcy9i
aW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVz
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlU
ZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIkNvbnN0VmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC1WYXJDb25zdC5qcyBiL0pTVGVzdHMv
c3RyZXNzL29wX3Vyc2hpZnQtVmFyQ29uc3QuanMKaW5kZXggOGI0YWNlZGFiYjM1ZTFiYjIzMWJm
N2YzYjY5NDA5MzI3ODE4ODlkYy4uMjhkYTA1MDNlZDI5ZGExNzJiNWYxMjdmYzY4Y2UyZTk3Mjhi
YjRhZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC1WYXJDb25zdC5qcwor
KysgYi9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LVZhckNvbnN0LmpzCkBAIC0zLDcgKzMsNyBA
QAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBz
aWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3At
dGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRl
c3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8g
VGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3IEBAIGxvYWQoIi4vcmVzb3Vy
Y2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gInVyc2hpZnQiOwogdmFyIG9w
ID0gIj4+PiI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xv
YWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7
CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAi
VmFyQ29uc3QiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9v
cF91cnNoaWZ0LVZhclZhci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX3Vyc2hpZnQtVmFyVmFyLmpz
CmluZGV4IGNiMTRhZWRmNWZkMWE3NjZmMGI3YTljY2NhZTJkYWJkOTE5ZjE2NGYuLmI4NDAzN2Ew
MmMyYjdiODEzNWY3NDE3MmVjMDY3NjlhMjlhM2I2NWIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL29wX3Vyc2hpZnQtVmFyVmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX3Vyc2hpZnQt
VmFyVmFyLmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0
IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAv
LyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYg
bmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgi
Li9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8v
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3
ICsxMSw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BO
YW1lID0gInVyc2hpZnQiOwogdmFyIG9wID0gIj4+PiI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2Jp
bmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRl
c3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyVmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMS5qcyBiL0pTVGVzdHMvc3RyZXNz
L3JlZ3Jlc3MtMTU5Nzc5LTEuanMKaW5kZXggYjA3MTUxZDVhYTJlZTIwMDU4NWVkYWExOTI2MGE3
Y2VhMjU5MjM1Ny4uZWU5ZmUyMDc3NDMyMGViNGI2MTczNzdjODM1NjM5ZWNiMTQwMGU1NiAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMS5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy9yZWdyZXNzLTE1OTc3OS0xLmpzCkBAIC0xMjkwLDcgKzEyOTAsNyBAQCBmdW5jdGlv
biBtYWtlVXNlUmVncmVzc2lvblRlc3QoZCwgYikKICAgICAgICAgYnJlYWs7CiAgICAgICBkZWZh
dWx0OgogICAgICAgICAKLSAgICAgICAgcyArPSAiLyogcmVncmVzc2lvbi10ZXN0LWxvYWQgKi8g
IiArICJsb2FkKCIgKyBzaW1wbGVTb3VyY2UoZmlsZSkgKyAiKTsiOworICAgICAgICBzICs9ICIv
KiByZWdyZXNzaW9uLXRlc3QtbG9hZCAqLyAiICsgImxvYWQoIiArIHNpbXBsZVNvdXJjZShmaWxl
KSArICIsICJjYWxsZXIgcmVsYXRpdmUiKTsiOwogICAgICAgICBicmVhazsKICAgICAgIAogICAg
IH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5Nzc5LTIuanMgYi9KU1Rl
c3RzL3N0cmVzcy9yZWdyZXNzLTE1OTc3OS0yLmpzCmluZGV4IDU4NzllYjkxZmY3MWM3NTFlNTdk
NDUyMDUwOTVkMWQ0M2QzYjRmNDUuLjg5ZmJjZTA5NTIyYWQyZTViM2ExNDBmNzg3NGVlZDJkZmIy
ZGYxMWUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5Nzc5LTIuanMKKysr
IGIvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMi5qcwpAQCAtMTI5MCw3ICsxMjkwLDcg
QEAgZnVuY3Rpb24gbWFrZVVzZVJlZ3Jlc3Npb25UZXN0KGQsIGIpCiAgICAgICAgIGJyZWFrOwog
ICAgICAgZGVmYXVsdDoKICAgICAgICAgCi0gICAgICAgIHMgKz0gIi8qIHJlZ3Jlc3Npb24tdGVz
dC1sb2FkICovICIgKyAibG9hZCgiICsgc2ltcGxlU291cmNlKGZpbGUpICsgIik7IjsKKyAgICAg
ICAgcyArPSAiLyogcmVncmVzc2lvbi10ZXN0LWxvYWQgKi8gIiArICJsb2FkKCIgKyBzaW1wbGVT
b3VyY2UoZmlsZSkgKyAiLCAiY2FsbGVyIHJlbGF0aXZlIik7IjsKICAgICAgICAgYnJlYWs7CiAg
ICAgICAKICAgICB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvdHlwZWRh
cnJheS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVz
b3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5qcwppbmRleCBi
ZjM0ZGI0YzZhZTZhZWZjN2NmOTczYjFiNWM2MTg3ZWE2NjliNGU3Li43MmIwODE0MWIxMTViYjIy
ZDU4YjZlODdiZjRkYzcyNWNmM2JmZDljIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9yZXNv
dXJjZXMvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL3Jlc291cmNlcy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLWhlbHBlci1mdW5j
dGlvbnMuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy9zdGFuZGFsb25lLXBy
ZS5qcyIpOworbG9hZCgiLi9zdGFuZGFsb25lLXByZS5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
IAogInVzZSBzdHJpY3QiOwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMv
dHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMgYi9KU1Rlc3RzL3N0cmVzcy9yZXNv
dXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMKaW5kZXggYzkxNWIyNjk3
YzkzMWJlODIwMWJjYTIxM2Y3MmJkNmQxODE0NzhlYi4uNTc5ZDgwMTA2MzU1YzIyYjZmNzNlZThh
MTYwMDIzY2ZlMjkzN2Y1ZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvcmVzb3VyY2VzL3R5
cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3Jl
c291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcwpAQCAtMSw0ICsxLDQg
QEAKLWxvYWQoIi4vcmVzb3VyY2VzL3N0YW5kYWxvbmUtcHJlLmpzIik7Citsb2FkKCIuL3N0YW5k
YWxvbmUtcHJlLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB2YXIgdHlwZWRBcnJheXMgPSBb
SW50OEFycmF5LCBVaW50OEFycmF5LCBVaW50OENsYW1wZWRBcnJheSwgSW50MTZBcnJheSwgVWlu
dDE2QXJyYXksIEludDMyQXJyYXksIFVpbnQzMkFycmF5LCBGbG9hdDMyQXJyYXksIEZsb2F0NjRB
cnJheV07CiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWFu
b255bW91cy1mdW5jdGlvbi5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWFu
b255bW91cy1mdW5jdGlvbi5qcwppbmRleCA1ODc2ZGY3NGNjNTY0MzNlZjYxMmRmNTVmMTM4NmE4
N2I1M2UwZjRkLi5hODIxZjE3NDU3NjYwOTU1Y2Q5NzExOTJiNGY0N2VjZTNmODlmZGNmIDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1hbm9ueW1vdXMtZnVuY3Rp
b24uanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItYW5vbnltb3VzLWZ1
bmN0aW9uLmpzCkBAIC0xLDUgKzEsNSBAQAogaWYgKHBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1By
b2ZpbGVyKCkpIHsKLSAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmls
ZXIuanMiKTsKKyAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKICAgICBmdW5jdGlvbiBmb28oZikgewogICAgICAg
ICBmKCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1iYXNp
Yy5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWJhc2ljLmpzCmluZGV4IGMx
MjI4NzBkYWRmMmEzNjEwNjA0YmVlZjNkZjZhMWFjNGMwNmIxMGYuLmE3NjdkMGI0NzFiNzFjOTA1
MWVjNDYxOTFjYTM5YzM1MzQwZjZlMGEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBs
aW5nLXByb2ZpbGVyLWJhc2ljLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2Zp
bGVyLWJhc2ljLmpzCkBAIC0xLDUgKzEsNSBAQAogaWYgKHBsYXRmb3JtU3VwcG9ydHNTYW1wbGlu
Z1Byb2ZpbGVyKCkpIHsKLSAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJv
ZmlsZXIuanMiKTsKKyAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmls
ZXIuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKICAgICBmdW5jdGlvbiBiYXIoeSkgewogICAg
ICAgICBsZXQgeDsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVy
LWJvdW5kLWZ1bmN0aW9uLW5hbWUuanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxl
ci1ib3VuZC1mdW5jdGlvbi1uYW1lLmpzCmluZGV4IDdlYmFhNDMzYTEyMThiNjc3ZGY4ZWM2YTQx
NmRkZDExNDllMTFlMmUuLmYzNzc2Mjk4OTU4NTY1ZDkwN2NiMzU2MGM2YTczMzkzYTA3YjYzZmEg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWJvdW5kLWZ1bmN0
aW9uLW5hbWUuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItYm91bmQt
ZnVuY3Rpb24tbmFtZS5qcwpAQCAtMSw1ICsxLDUgQEAKIGlmIChwbGF0Zm9ybVN1cHBvcnRzU2Ft
cGxpbmdQcm9maWxlcigpKSB7Ci0gICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGlu
Z1Byb2ZpbGVyLmpzIik7CisgICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1By
b2ZpbGVyLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAgICAgZnVuY3Rpb24gZm9vKCkgewog
ICAgICAgICBsZXQgbyA9IHt9OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmct
cHJvZmlsZXItZGVlcC1zdGFjay5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVy
LWRlZXAtc3RhY2suanMKaW5kZXggYzMzOTY5MTYzODg0MTdiZjljY2Q2Zjc0Y2JjYzg1YWFjOTUw
NjA4My4uYjFlMzU1YTQ5NDk1Nzk4N2EyM2NmYjVjNDc1OTZlOTBiM2I5YWQ1YyAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItZGVlcC1zdGFjay5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1kZWVwLXN0YWNrLmpzCkBAIC0xLDUgKzEs
NSBAQAogaWYgKHBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKCkpIHsKLSAgICBsb2Fk
KCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIuanMiKTsKKyAgICBsb2FkKCIu
L3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIuanMiLCAiY2FsbGVyIHJlbGF0aXZl
Iik7CiAKICAgICBmdW5jdGlvbiBmb28oeCkgeyAKICAgICAgICAgbGV0IG8gPSB7fTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWRpc3BsYXktbmFtZS5qcyBi
L0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWRpc3BsYXktbmFtZS5qcwppbmRleCBk
YWI3MTA4MGE3NWNhY2I1OWQ1ODllZjhjMDE1ZWFkY2U2NjU1NWY1Li41ZDk3OWMxZTZiYjcyNzQ0
OWMxNGZkMDQzZTY5NDExNWIzZDNlYWM0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1w
bGluZy1wcm9maWxlci1kaXNwbGF5LW5hbWUuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxp
bmctcHJvZmlsZXItZGlzcGxheS1uYW1lLmpzCkBAIC0xLDUgKzEsNSBAQAogaWYgKHBsYXRmb3Jt
U3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKCkpIHsKLSAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2Zp
bGVyL3NhbXBsaW5nUHJvZmlsZXIuanMiKTsKKyAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVy
L3NhbXBsaW5nUHJvZmlsZXIuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKICAgICBmdW5jdGlv
biBmb28oKSB7CiAgICAgICAgIGxldCBvID0ge307CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9zYW1wbGluZy1wcm9maWxlci1pbnRlcm5hbC1mdW5jdGlvbi1uYW1lLmpzIGIvSlNUZXN0cy9z
dHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItaW50ZXJuYWwtZnVuY3Rpb24tbmFtZS5qcwppbmRleCA4
ODkyY2EzNTAzYzkwNDkzYTlhYzVhZjM0YzlhMDQ2ZjI5MGQxNDE5Li5hY2ZjNmNiZTE2OWZlMDk3
M2FiODkyNzk5M2M4NDE2NTNhNGQ3YTE3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1w
bGluZy1wcm9maWxlci1pbnRlcm5hbC1mdW5jdGlvbi1uYW1lLmpzCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWludGVybmFsLWZ1bmN0aW9uLW5hbWUuanMKQEAgLTEsNSAr
MSw1IEBACiBpZiAocGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJvZmlsZXIoKSkgewotICAgIGxv
YWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIpOworICAgIGxvYWQo
Ii4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIsICJjYWxsZXIgcmVsYXRp
dmUiKTsKIAogICAgIGZ1bmN0aW9uIGZvbygpIHsKICAgICAgICAgbGV0IHg7CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1taWNyb3Rhc2tzLmpzIGIvSlNUZXN0
cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItbWljcm90YXNrcy5qcwppbmRleCBjZTM1ZDE2YWIx
YmFiMjc2MDUxMDI1NzRjYTUyYTM0YzBhNDM2YTAwLi45ZGIxODY2MmE0OGI2ODJjY2Q3ZjEwNjhi
ZDM1YzgzMGVmNDI2YzliIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9m
aWxlci1taWNyb3Rhc2tzLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVy
LW1pY3JvdGFza3MuanMKQEAgLTEsNyArMSw3IEBACiB2YXIgYWJvcnQgPSAkdm0uYWJvcnQ7CiAK
IGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpKSB7Ci0gICAgbG9hZCgiLi9z
YW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIik7CisgICAgbG9hZCgiLi9zYW1w
bGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwog
CiAgICAgbGV0IHRyZWUgPSBudWxsOwogICAgIGZ1bmN0aW9uIHRlc3RSZXN1bHRzKCkgewpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rp
b24uanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlv
bi5qcwppbmRleCBiYTllNTZlNmQ4NTFkNGRjMGE2MmExY2QyNjEzMmE2MGFlNjA2YzVjLi41MmQ0
NWUwNDcxMWJlY2U1YmU2YzBlYTk0ZjVkMGVkNDgzNDMxMDViIDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qcworKysgYi9KU1Rl
c3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qcwpAQCAtNjUs
NyArNjUsNyBAQCBpZiAocGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJvZmlsZXIoKSAmJiAkdm0u
aXNXYXNtU3VwcG9ydGVkKCkpIHsKICAgICBjb25zdCBpbnN0YW5jZSA9IGNvbXBpbGUod2FzbUZp
bGUsIGltcG9ydE9iamVjdCk7CiAgICAgY29uc3QgcmVzdWx0ID0gaW5zdGFuY2UuZXhwb3J0cy5f
cGFycm90KDEpOwogCi0gICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2Zp
bGVyLmpzIik7CisgICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVy
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogICAgIHZhciB3YXNtRW50cnkgPSBmdW5jdGlvbigp
IHsKICAgICAgICAgcmV0dXJuIGluc3RhbmNlLmV4cG9ydHMuX3BhcnJvdCgxKTsKICAgICB9Owpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qcyBiL0pT
VGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMKaW5kZXggN2FkNjVkMWUyZTAw
MmI5OWU3ZmIyNzg1ZDNmZmY3NDI3MmZlNDgwMy4uOWY4NzdkNzE4ZmRmMmQ0YTEwYWI5ZWZmMWM2
MGE1YTYyYmZlMWU1NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmls
ZXItd2FzbS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpz
CkBAIC0xLDcgKzEsNyBAQAogLy9AIHJ1bkRlZmF1bHQKIAogaWYgKHBsYXRmb3JtU3VwcG9ydHNT
YW1wbGluZ1Byb2ZpbGVyKCkgJiYgJHZtLmlzV2FzbVN1cHBvcnRlZCgpKSB7Ci0gICAgbG9hZCgi
Li9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIik7CisgICAgbG9hZCgiLi9z
YW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogICAgIGxldCBidWYgPSByZWFkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL2xvb3Aud2FzbSIsICJi
aW5hcnkiKTsKICAgICBsZXQgbW9kdWxlID0gbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShidWYpOwog
ICAgIGxldCBpbnN0YW5jZSA9IG5ldyBXZWJBc3NlbWJseS5JbnN0YW5jZShtb2R1bGUpOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4tZGlzYWJsZWQuanMgYi9KU1Rl
c3RzL3N0cmVzcy9zaGFkb3ctY2hpY2tlbi1kaXNhYmxlZC5qcwppbmRleCBhNzMxMDAzMTg4YmQ1
ZjNhMTAwNjBmZjU4N2UwMDRmYjE0OGVmMDQ5Li5iMmMwNWM0NDNlNDZmNGU1NWFhZGRkY2FlZThi
YTZmYjBiMTYxYzAzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zaGFkb3ctY2hpY2tlbi1k
aXNhYmxlZC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zaGFkb3ctY2hpY2tlbi1kaXNhYmxlZC5q
cwpAQCAtMyw3ICszLDcgQEAKICJ1c2Ugc3RyaWN0IjsKIAogdmFyIHZlcmJvc2UgPSBmYWxzZTsK
LWxvYWQoInJlc291cmNlcy9zaGFkb3ctY2hpY2tlbi1zdXBwb3J0LmpzIik7Citsb2FkKCJyZXNv
dXJjZXMvc2hhZG93LWNoaWNrZW4tc3VwcG9ydC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGlu
aXRpYWxpemUoKTsKIAogKGZ1bmN0aW9uIHRlc3QxKCkgewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3Mvc2hhZG93LWNoaWNrZW4tZW5hYmxlZC5qcyBiL0pTVGVzdHMvc3RyZXNzL3NoYWRvdy1j
aGlja2VuLWVuYWJsZWQuanMKaW5kZXggMTljZjczZDA0MDExNDYxYmMwZmU1ZDgzNjJhNTRkNDBm
Y2EwZGM4MC4uZTdlYmY5ZjBjODEzNDI4NGU0Zjg5NGZkZTAyYWNkNGYwNDFkNDNjNyAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4tZW5hYmxlZC5qcworKysgYi9KU1Rl
c3RzL3N0cmVzcy9zaGFkb3ctY2hpY2tlbi1lbmFibGVkLmpzCkBAIC02LDcgKzYsNyBAQCB2YXIg
c2hhZG93Q2hpY2tlbkZ1bmN0aW9uc09uU3RhY2sgPSAkdm0uc2hhZG93Q2hpY2tlbkZ1bmN0aW9u
c09uU3RhY2s7CiAKIHZhciB2ZXJib3NlID0gZmFsc2U7CiAKLWxvYWQoInJlc291cmNlcy9zaGFk
b3ctY2hpY2tlbi1zdXBwb3J0LmpzIik7Citsb2FkKCJyZXNvdXJjZXMvc2hhZG93LWNoaWNrZW4t
c3VwcG9ydC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGluaXRpYWxpemUoKTsKIAogKGZ1bmN0
aW9uIHRlc3QxKCkgewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1jb25z
dHJ1Y3Rvci5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktY29uc3RydWN0b3IuanMKaW5k
ZXggMGU4ZWFmNzQ5ODgwODJjNGIxNDBiNzVmMDU0MzMxMTEyMmNkYTJhNi4uYjI0NTM1NjJmMjBm
M2FhZTgwYmFkMzg0MDVkMzY4ZDAyNmJkZmQ0NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mv
dHlwZWRhcnJheS1jb25zdHJ1Y3Rvci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5
LWNvbnN0cnVjdG9yLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRh
cnJheS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNl
cy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJl
bGF0aXZlIik7CiAKIGxldCBUeXBlZEFycmF5ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKEludDMy
QXJyYXkpOwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWNvcHlXaXRo
aW4uanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWNvcHlXaXRoaW4uanMKaW5kZXggZTVl
NzlhYTBlNjA5NjFiMGFhNGU1NTAwMjc2NDdkZWQyYWFhZGQ4OS4uMTY5MDg4NTZhZGFiMjNhMmZm
YTEzZmQ2MTY0NDIzYWViZmQyN2JiOCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1jb3B5V2l0aGluLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktY29weVdp
dGhpbi5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVz
dC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRl
c3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9u
KCJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5
cGUuY29weVdpdGhpbiBmdW5jdGlvbiIpOwogCiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktZXZlcnkuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWV2ZXJ5Lmpz
CmluZGV4IGM0ZTk3OWNhYjU4YWNkMzE1ZjI3ZGE0MDJmMzRmMzY5MDdkNjBiYmQuLjFkMGFiYmQx
N2Q0YTgwZjk3NzY4OTI5ZTFmNTQ1MzA3YmQ3ZDNiNWEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktZXZlcnkuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1l
dmVyeS5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVz
dC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRl
c3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9u
KAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3Rv
dHlwZS5ldmVyeSBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBl
ZGFycmF5LWZpbGwuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbGwuanMKaW5kZXgg
NzU1YjQ0MDQ3Y2E3YTQ0OGQwYTkzMTJiMzUyMmIzY2I5ODMwMTRjMi4uZmQ1Mzc4ODQxZDhkZTg4
MTM4OTc2OWE4NzMwMGJhZTgzNDllOGE2NCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlw
ZWRhcnJheS1maWxsLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmlsbC5qcwpA
QCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXIt
ZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVy
LWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMg
dGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5maWxs
IGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmls
dGVyLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maWx0ZXIuanMKaW5kZXggN2NlN2Ji
ZjYzNjc5N2JmZGUxMzUzNWFjNGY0ODE4N2M1YjBhNDUwNi4uM2EyMjNkZjRmZjc2Njc0OTg3Y2E0
ZjE2NGRhMzRiMTM5MWQ0OGI0MCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJh
eS1maWx0ZXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maWx0ZXIuanMKQEAg
LTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1
bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1m
dW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRl
c3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuZmlsdGVy
IGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmlu
ZC5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmluZC5qcwppbmRleCBiMTkwMmM0NWEw
ZWU4MmU1ZDA5YWUyYjE3MjU1M2U4YmY5NTk5MmFlLi5lODYwNWIyMjEyMDZmNDNmOGI0ZTkzZjcw
ZGFhZjczZTJjZWM1MjhkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZp
bmQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maW5kLmpzCkBAIC0xLDQgKzEs
NCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMu
anMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25z
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNr
cyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLmZpbmQgZnVuY3Rpb24i
CiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maW5kSW5kZXguanMg
Yi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbmRJbmRleC5qcwppbmRleCBlMDE1YjdjNWE1
MjkxOWRjNTI3YWNmMWYyZjgyYWViNTlmZTMxZWQ3Li45MDg2MjIyNDAxNTIwZjg1NTNiOTM2Njkx
MGUwZDAxMzY2YWIxNTE0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZp
bmRJbmRleC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbmRJbmRleC5qcwpA
QCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXIt
ZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVy
LWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMg
dGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5maW5k
SW5kZXggZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJh
eS1mb3JFYWNoLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1mb3JFYWNoLmpzCmluZGV4
IDBkNjlmZmVkNGM0NjQ4MTRhZmExMGFiMGFmY2U3N2JlNDAwMzczODUuLjJhY2YyNWJjMmYzM2E1
ODNiODczN2RlZGIwNzNkMDYzMWY2Yjk4ZmMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5
cGVkYXJyYXktZm9yRWFjaC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZvckVh
Y2guanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3Qt
aGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0
LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigK
ICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5
cGUuZm9yRWFjaCBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBl
ZGFycmF5LWZyb20uanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZyb20uanMKaW5kZXgg
ZGJiZmM4YTJlZGZiZGM4NzZkZjQzODlmMDdlNjk2MGEwZGMxZjdmZC4uMmZmYzljMWUxMDVhMTkz
YTM4ODdjZTAwYTI3ODhlMmUxZjkxOGE3YyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlw
ZWRhcnJheS1mcm9tLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZnJvbS5qcwpA
QCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3It
aGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS1jb25z
dHJ1Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3Jp
cHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXku
ZnJvbSBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5
LWluY2x1ZGVzLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1pbmNsdWRlcy5qcwppbmRl
eCBkNmMwM2FmOGRhMmQzMDY0YmE4ODk1NDg5MzcxZTJiYzhkYjA2MmI1Li5lNjgxYTQ4MzU3NGFh
OWZiOTM1NGJkY2NmMWQ5Y2JmYWJhNzUzMzg0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90
eXBlZGFycmF5LWluY2x1ZGVzLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktaW5j
bHVkZXMuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCJyZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0
LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoInJlc291cmNlcy90eXBlZGFycmF5LXRlc3Qt
aGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogZm9yIChjb25zdHJ1
Y3RvciBvZiB0eXBlZEFycmF5cykgewogICAgIGxldCBhID0gbmV3IGNvbnN0cnVjdG9yKDEwKTsK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktaW5kZXhPZi5qcyBiL0pTVGVz
dHMvc3RyZXNzL3R5cGVkYXJyYXktaW5kZXhPZi5qcwppbmRleCA3ZGQ1ZjAwMWFhNmE0NThlZTBl
MWQxY2Y0YzIzNGM3NjZhNTIxNGRhLi4wMzIxYWJhNTVlMzE1ODMwMGI0ZjZkZGVkMGRiMDM2MTdm
MTliYjdlIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWluZGV4T2YuanMK
KysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1pbmRleE9mLmpzCkBAIC0xLDQgKzEsNCBA
QAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMi
KTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpz
IiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0
aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLmluZGV4T2YgZnVuY3Rpb24i
CiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1sYXN0SW5kZXhPZi5q
cyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktbGFzdEluZGV4T2YuanMKaW5kZXggYzc0MDA0
MzI0MmMwNjdlOGFkYjFmZDk2MmNjNDFhYTYxZjNjZjYwNS4uM2JhNmNlYzUyMDFlMDRiYzIyN2Zh
Y2E2YzEzMTdhNzJiM2IzZDE2NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJh
eS1sYXN0SW5kZXhPZi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWxhc3RJbmRl
eE9mLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0
LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVz
dC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24o
CiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90
eXBlLmxhc3RJbmRleE9mIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktbWFwLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1tYXAuanMKaW5k
ZXggOGRhZDIyMmNjZjUwMTlhM2FmMDkzODY2YWY5M2FkZDY3YzA2NWMxMi4uOWExNmFmMzJhMTQ0
NTUxYmQ4YzQxMTEwODk1ZWY0ZjE4ZmVmMTI5NiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mv
dHlwZWRhcnJheS1tYXAuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1tYXAuanMK
QEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVy
LWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBl
ci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlz
IHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUubWFw
IGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktb2Yu
anMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LW9mLmpzCmluZGV4IDBlODUyZGQ4YzhjYWZj
ODNkMGIzODkwYTZiM2I0NDQxNjI4Njg4MGUuLjM2NzQzMjdhNGQ4OTc5M2EzMjFlYjJiMGM2NGIw
ZWIzMmY4YWMwNmIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktb2YuanMK
KysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1vZi5qcwpAQCAtMSw0ICsxLDQgQEAKLWxv
YWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5q
cyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVu
Y3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0
IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkub2YgZnVuY3Rpb24iCiApOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1yZWR1Y2UuanMgYi9KU1Rlc3Rz
L3N0cmVzcy90eXBlZGFycmF5LXJlZHVjZS5qcwppbmRleCAzOWE2ZGEzMWE0NmVkOGI3M2UyZjA1
NzBkMjM0OTAxNGY0MGEwZTU2Li5lMTllNTA0ZTFlNjE3NzM4YmZjY2U4YWE4YTYxZTI0NDMxMzc4
NzY1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXJlZHVjZS5qcworKysg
Yi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXJlZHVjZS5qcwpAQCAtMSw0ICsxLDQgQEAKLWxv
YWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Cits
b2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJj
YWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJl
aGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5yZWR1Y2UgZnVuY3Rpb24iCiApOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1yZWR1Y2VSaWdodC5qcyBiL0pT
VGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktcmVkdWNlUmlnaHQuanMKaW5kZXggZDVkYjNjN2I2ZTMy
ZDhjNDM0MzA3YWJlNzFiOGIwMWY5YTQ1OTE5MS4uOGY4YmRiZTdlYTRiM2YxZDU0ODRlZTFkOTJh
Y2M5YWZlMTZlOGZkNSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1yZWR1
Y2VSaWdodC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXJlZHVjZVJpZ2h0Lmpz
CkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBl
ci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxw
ZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhp
cyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLnJl
ZHVjZVJpZ2h0IGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVk
YXJyYXktc2V0LmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zZXQuanMKaW5kZXggZmFj
NWZjN2NlZGRjMjE5MWM3NDI5NGNjNGNlMThmMjdiY2U2YzU4YS4uZDgyZTU5ODc3NmM4YzBjOWJk
YzgwNmQwZDU0ZWRiOWQ3MDk2ZTc0OCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1zZXQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zZXQuanMKQEAgLTEs
NCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0
aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5j
dGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNo
ZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLnNldCBmdW5jdGlv
biIpOwogCiBzaG91bGRCZSgiSW50MzJBcnJheS5wcm90b3R5cGUuc2V0Lmxlbmd0aCIsICIxIik7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNsaWNlLmpzIGIvSlNUZXN0
cy9zdHJlc3MvdHlwZWRhcnJheS1zbGljZS5qcwppbmRleCBmYmNiMWY4YjE1ZDRkODA4NGZkZTY0
NTAxZWE3ZjUwYzRlNWE0ODllLi45NWRlZDAzOTRlYzExNGJjOTI5ZTVhNjVlNGM4M2FmNWQ5Y2Zj
NTkxIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNsaWNlLmpzCisrKyBi
L0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc2xpY2UuanMKQEAgLTEsNCArMSw0IEBACi1sb2Fk
KCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9h
ZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2Fs
bGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhh
dmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuc2xpY2UgZnVuY3Rpb24iCiApOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zb21lLmpzIGIvSlNUZXN0cy9zdHJl
c3MvdHlwZWRhcnJheS1zb21lLmpzCmluZGV4IDAxM2M0OTY4NTJkYTRjMWQyNjgzNGVkZDUwYzQw
ZDY3MGVjM2VjNWEuLmMzOGEyODljNjc0ZjJkOWY1ZTE0NTg5MDZmMzk4ODM4YTA5NzMyZjggMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc29tZS5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy90eXBlZGFycmF5LXNvbWUuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291
cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNv
dXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0
aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuc29tZSBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNvcnQuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFy
cmF5LXNvcnQuanMKaW5kZXggNjk0MWUwYWQyOWU0MGZjN2Q1OTczMTFiZjNkMTkwYTQ3YWFkYjQ0
ZS4uZjM2MzEyNzIyM2FlOWFmMDY0NjUzZDA1ZDdlNmNjNmY0ZTc0ZWJjOCAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zb3J0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5
cGVkYXJyYXktc29ydC5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVk
YXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBl
ZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRl
c2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFy
cmF5LnByb3RvdHlwZS5zb3J0IGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktc3ViYXJyYXkuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXN1
YmFycmF5LmpzCmluZGV4IDhmMzI5NWYwMWY1MjEyOWIyYjgzNTEyZDI3YTQwZTg2YzdkZTk4ZjYu
LjMwYmEyNTVjODU4N2M1NTJmMGMzNDI3NWE4MDJhMTVhNGExZDJlOTEgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc3ViYXJyYXkuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mv
dHlwZWRhcnJheS1zdWJhcnJheS5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2Vz
L3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNl
cy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUi
KTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBU
eXBlZEFycmF5LnByb3RvdHlwZS5zdWJhcnJheSBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3dhc20vQnVpbGRlci5qcyBiL0pTVGVzdHMvd2FzbS9CdWlsZGVyLmpzCmluZGV4IDk3
NjM3N2Y3YjNkOTEzZDRiOGRiMWY4YTc1OTZlNzNkMjc5MWNiNDcuLmM3ODgzZjRmNDM1ZGM1ZGY0
MTI0NjAzNjNhODNmODI0NjllMWJlOGMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9CdWlsZGVy
LmpzCisrKyBiL0pTVGVzdHMvd2FzbS9CdWlsZGVyLmpzCkBAIC0yMywxMSArMjMsMTEgQEAKICAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydC5qcyc7
Ci1pbXBvcnQgKiBhcyBCdWlsZFdlYkFzc2VtYmx5IGZyb20gJ0J1aWxkZXJfV2ViQXNzZW1ibHlC
aW5hcnkuanMnOwotaW1wb3J0ICogYXMgTExCIGZyb20gJ0xvd0xldmVsQmluYXJ5LmpzJzsKLWlt
cG9ydCAqIGFzIFdBU00gZnJvbSAnV0FTTS5qcyc7Ci1pbXBvcnQgKiBhcyB1dGlsIGZyb20gJ3V0
aWxpdGllcy5qcyc7CitpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnLi9hc3NlcnQuanMnOworaW1w
b3J0ICogYXMgQnVpbGRXZWJBc3NlbWJseSBmcm9tICcuL0J1aWxkZXJfV2ViQXNzZW1ibHlCaW5h
cnkuanMnOworaW1wb3J0ICogYXMgTExCIGZyb20gJy4vTG93TGV2ZWxCaW5hcnkuanMnOworaW1w
b3J0ICogYXMgV0FTTSBmcm9tICcuL1dBU00uanMnOworaW1wb3J0ICogYXMgdXRpbCBmcm9tICcu
L3V0aWxpdGllcy5qcyc7CiAKIGNvbnN0IF9pc1ZhbGlkVmFsdWUgPSAodmFsdWUsIHR5cGUpID0+
IHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9CdWlsZGVy
X1dlYkFzc2VtYmx5QmluYXJ5LmpzIGIvSlNUZXN0cy93YXNtL0J1aWxkZXJfV2ViQXNzZW1ibHlC
aW5hcnkuanMKaW5kZXggODYzMzhkMzQ1ZGM4OTk2ZDEzYTQwMDEyYjM1ZDU0MTcyOWFlNjVkYS4u
MTNjNTg2MjIxZTM2Yjk1YzViZTMyMmEzYzYzNjkxMjYxODkzNzcyNyAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy93YXNtL0J1aWxkZXJfV2ViQXNzZW1ibHlCaW5hcnkuanMKKysrIGIvSlNUZXN0cy93YXNt
L0J1aWxkZXJfV2ViQXNzZW1ibHlCaW5hcnkuanMKQEAgLTIzLDkgKzIzLDkgQEAKICAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAotaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydC5qcyc7Ci1pbXBv
cnQgTG93TGV2ZWxCaW5hcnkgZnJvbSAnTG93TGV2ZWxCaW5hcnkuanMnOwotaW1wb3J0ICogYXMg
V0FTTSBmcm9tICdXQVNNLmpzJzsKK2ltcG9ydCAqIGFzIGFzc2VydCBmcm9tICcuL2Fzc2VydC5q
cyc7CitpbXBvcnQgTG93TGV2ZWxCaW5hcnkgZnJvbSAnLi9Mb3dMZXZlbEJpbmFyeS5qcyc7Citp
bXBvcnQgKiBhcyBXQVNNIGZyb20gJy4vV0FTTS5qcyc7CiAKIGNvbnN0IHB1dCA9IChiaW4sIHR5
cGUsIHZhbHVlKSA9PiBiaW5bdHlwZV0odmFsdWUpOwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dh
c20vTG93TGV2ZWxCaW5hcnkuanMgYi9KU1Rlc3RzL3dhc20vTG93TGV2ZWxCaW5hcnkuanMKaW5k
ZXggZjliYzhhMzcwNjU3NGFkNDQ1M2ExMGU5MWE5NGYyYzExMjUwNzg3Ni4uZWRjMGJlY2ZkZTNh
M2IzOTczZGRjODdlNzEwZTczNzU1MWE1ZmI1MyAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL0xv
d0xldmVsQmluYXJ5LmpzCisrKyBiL0pTVGVzdHMvd2FzbS9Mb3dMZXZlbEJpbmFyeS5qcwpAQCAt
MjMsOCArMjMsOCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1pbXBvcnQgKiBhcyBhc3NlcnQg
ZnJvbSAnYXNzZXJ0LmpzJzsKLWltcG9ydCAqIGFzIFdBU00gZnJvbSAnV0FTTS5qcyc7CitpbXBv
cnQgKiBhcyBhc3NlcnQgZnJvbSAnLi9hc3NlcnQuanMnOworaW1wb3J0ICogYXMgV0FTTSBmcm9t
ICcuL1dBU00uanMnOwogCiBjb25zdCBfaW5pdGlhbEFsbG9jYXRpb25TaXplID0gMTAyNDsKIGNv
bnN0IF9ncm93QWxsb2NhdGlvblNpemUgPSBhbGxvY2F0ZWQgPT4gYWxsb2NhdGVkICogMjsKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9SRUFETUUubWQgYi9KU1Rlc3RzL3dhc20vUkVBRE1FLm1k
CmluZGV4IDA2NTE1NzU1ZmI2MmQxNDdlZDM1MzgwZTUzMmMwMzcyZDI5NjFjOTguLjI1NTg5YzEy
MWI1ZjFhZmUwMTNmNzBiZjYzMzExMTEzNDQxZDg4OGMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2Fz
bS9SRUFETUUubWQKKysrIGIvSlNUZXN0cy93YXNtL1JFQURNRS5tZApAQCAtMjksNyArMjksNyBA
QCBjcmVhdGUgYSBzY29wZSBjYW4gYmUgbmVzdGVkIHVzaW5nIGEgbGFtYmRhLgogQSBzaW1wbGUg
ZXhhbXBsZToKIAogYGBgamF2YXNjcmlwdAotaW1wb3J0IEJ1aWxkZXIgZnJvbSAnQnVpbGRlci5q
cyc7CitpbXBvcnQgQnVpbGRlciBmcm9tICcuL0J1aWxkZXIuanMnOwogCiBjb25zdCBidWlsZGVy
ID0gbmV3IEJ1aWxkZXIoKTsKIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL1dBU00uanMgYi9K
U1Rlc3RzL3dhc20vV0FTTS5qcwppbmRleCAzYzlkZjY4NzE0YTJhNDJmODE3YmVlYjFiOWU2ZmE4
YTJlYjRmZGU3Li4wOTc1NTZjY2U2OWY2ZDU5ODE4YWU5OGIwOGRiZDA1ZTExNmI1ZTk1IDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3dhc20vV0FTTS5qcworKysgYi9KU1Rlc3RzL3dhc20vV0FTTS5qcwpA
QCAtMjMsNyArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1pbXBvcnQgKiBhcyB1dGls
aXRpZXMgZnJvbSAndXRpbGl0aWVzLmpzJzsKK2ltcG9ydCAqIGFzIHV0aWxpdGllcyBmcm9tICcu
L3V0aWxpdGllcy5qcyc7CiAKIGNvbnN0IF9tYXBWYWx1ZXMgPSBmcm9tID0+IHsKICAgICBsZXQg
dmFsdWVzID0ge307CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vcmVncmVzcy9zZWxlY3RmNjQu
anMgYi9KU1Rlc3RzL3dhc20vcmVncmVzcy9zZWxlY3RmNjQuanMKaW5kZXggZGQ0OTZjOTg5YTVh
ZTFmYTMxNTFlYWY3N2I2ZDk3OGQ3NjAxMzUxNy4uMGE0MGNkYjg4ZjMzNTY3ZWQzNTZhMWRhZTFh
ODA1M2I5NjZjMzkzZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL3JlZ3Jlc3Mvc2VsZWN0ZjY0
LmpzCisrKyBiL0pTVGVzdHMvd2FzbS9yZWdyZXNzL3NlbGVjdGY2NC5qcwpAQCAtMSw0ICsxLDQg
QEAKLWltcG9ydCB7IHRlc3QgfSBmcm9tICdzZWxlY3RmNjQud2FzbScKK2ltcG9ydCB7IHRlc3Qg
fSBmcm9tICcuL3NlbGVjdGY2NC53YXNtJwogaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJy4uL2Fz
c2VydC5qcyc7CiAKIGFzc2VydC5lcSh0ZXN0KCksIDQzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404081</attachid>
            <date>2020-07-11 18:36:57 -0700</date>
            <delta_ts>2020-07-11 19:47:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214205-20200711183656.patch</filename>
            <type>text/plain</type>
            <size>153054</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZjRjNjYxOTE5YWQ2ZDY2YzI3YzY0ZDQ5ODkzMzE3NzAxN2QzNzc2Li42ZjAxNTRlMGIxYjU2Mjdl
NjNjYThmYjYwN2YyMjc5MTQzMmNkNDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MSBAQAorMjAyMC0wNy0xMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBDbGVhbiB1cCBTb3VyY2VQcm92aWRlciBhbmQgYWRkIGNhbGxlciBy
ZWxhdGl2ZSBsb2FkIHNjcmlwdCB0byBqc2MuY3BwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIEFQSS9KU0FQSUdsb2JhbE9iamVjdC5tbToKKyAgICAg
ICAgKEpTQzo6SlNBUElHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6Cisg
ICAgICAgICogQVBJL0pTQmFzZS5jcHA6CisgICAgICAgIChKU0V2YWx1YXRlU2NyaXB0KToKKyAg
ICAgICAgKEpTQ2hlY2tTY3JpcHRTeW50YXgpOgorICAgICAgICAqIEFQSS9KU09iamVjdFJlZi5j
cHA6CisgICAgICAgIChKU09iamVjdE1ha2VGdW5jdGlvbik6CisgICAgICAgICogQVBJL0pTU2Ny
aXB0Lm1tOgorICAgICAgICAoLVtKU1NjcmlwdCBzb3VyY2VDb2RlXSk6CisgICAgICAgICogQVBJ
L0pTU2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMu
Y3BwOgorICAgICAgICAoSlNDOjpCdWlsdGluRXhlY3V0YWJsZXM6OkJ1aWx0aW5FeGVjdXRhYmxl
cyk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChKU0M6OkNvZGVC
bG9jazo6cmVmZXJyZXJVUkwgY29uc3QpOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyTG9j
YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckxvY2F0aW9uOjpEZWJ1Z2dlckxvY2F0
aW9uKToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmg6CisgICAgICAgIChK
U0M6OkRlYnVnZ2VyTG9jYXRpb246OkRlYnVnZ2VyTG9jYXRpb24pOgorICAgICAgICAqIGluc3Bl
Y3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OlNjcmlwdERl
YnVnU2VydmVyOjpzb3VyY2VQYXJzZWQpOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChH
bG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6CisgICAgICAgIChqc2NTb3Vy
Y2UpOgorICAgICAgICAoR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAg
IChmdW5jdGlvblJ1bik6CisgICAgICAgIChmdW5jdGlvbkxvYWQpOgorICAgICAgICAoZnVuY3Rp
b25DaGVja1N5bnRheCk6CisgICAgICAgIChmdW5jdGlvbkNhbGxlclNvdXJjZU9yaWdpbik6Cisg
ICAgICAgIChmdW5jdGlvbkRvbGxhckFnZW50U3RhcnQpOgorICAgICAgICAoZnVuY3Rpb25DaGVj
a01vZHVsZVN5bnRheCk6CisgICAgICAgIChydW5XaXRoT3B0aW9ucyk6CisgICAgICAgIChydW5J
bnRlcmFjdGl2ZSk6CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6CisgICAgICAgIChKU0M6OlNj
b3BlTm9kZTo6c291cmNlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U2NvcGVOb2RlOjpzb3VyY2VV
UkwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VDb2RlLmg6CisgICAg
ICAgIChKU0M6Om1ha2VTb3VyY2UpOgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VDb2RlS2V5Lmg6
CisgICAgICAgIChKU0M6OlNvdXJjZUNvZGVLZXk6Omhvc3QgY29uc3QpOgorICAgICAgICAqIHBh
cnNlci9Tb3VyY2VQcm92aWRlci5jcHA6CisgICAgICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyOjpT
b3VyY2VQcm92aWRlcik6CisgICAgICAgICogcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmg6CisgICAg
ICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyOjpzb3VyY2VVUkwgY29uc3QpOgorICAgICAgICAoSlND
OjpTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6U3RyaW5nU291
cmNlUHJvdmlkZXI6OlN0cmluZ1NvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKEpTQzo6U291cmNl
UHJvdmlkZXI6OnVybCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9DYWNoZWRU
eXBlcy5jcHA6CisgICAgICAgIChKU0M6OkNhY2hlZFNvdXJjZU9yaWdpbjo6ZW5jb2RlKToKKyAg
ICAgICAgKEpTQzo6Q2FjaGVkU291cmNlT3JpZ2luOjpkZWNvZGUgY29uc3QpOgorICAgICAgICAo
SlNDOjpDYWNoZWRTb3VyY2VQcm92aWRlclNoYXBlOjplbmNvZGUpOgorICAgICAgICAoSlNDOjpD
YWNoZWRTdHJpbmdTb3VyY2VQcm92aWRlcjo6ZGVjb2RlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
Q2FjaGVkV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6ZGVjb2RlIGNvbnN0KToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6YWRkRXJyb3JJbmZvKToKKyAgICAg
ICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25z
dHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjayk6CisgICAgICAgICogcnVudGlt
ZS9TY3JpcHRFeGVjdXRhYmxlLmg6CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6OnNv
dXJjZVVSTCBjb25zdCk6CisgICAgICAgICogcnVudGltZS9Tb3VyY2VPcmlnaW4uaDoKKyAgICAg
ICAgKEpTQzo6U291cmNlT3JpZ2luOjpTb3VyY2VPcmlnaW4pOgorICAgICAgICAoSlNDOjpTb3Vy
Y2VPcmlnaW46OnVybCBjb25zdCk6CisgICAgICAgIChKU0M6OlNvdXJjZU9yaWdpbjo6c3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6U291cmNlT3JpZ2luOjppc051bGwgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvVGhyb3dTY29wZS5jcHA6CisgICAgICAgIChKU0M6OlRo
cm93U2NvcGU6OnRocm93RXhjZXB0aW9uKToKKyAgICAgICAgKiBydW50aW1lL1Rocm93U2NvcGUu
aDoKKyAgICAgICAgKEpTQzo6VGhyb3dTY29wZTo6dGhyb3dFeGNlcHRpb24pOgorICAgICAgICAo
SlNDOjp0aHJvd1ZNRXhjZXB0aW9uKToKKyAgICAgICAgKiB0b29scy9GdW5jdGlvbk92ZXJyaWRl
cy5jcHA6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVPdmVycmlkZUluZm8pOgorCiAyMDIwLTA3
LTA5ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04o
cjI2MjMwMik6IElUTUxLaXQgZGVidWdnYWJsZXMgaW4gbGlzdGluZ3MgYXJlIG1pc3NpbmcgYSB0
aXRsZSwgdXNlIFVVSUQgaW5zdGVhZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0FQSUdsb2JhbE9iamVjdC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNB
UElHbG9iYWxPYmplY3QubW0KaW5kZXggMDJjYjliNzMxMTA1M2E0MmM3ZGQ1NDVlZTgzOWQxYzgw
MWU0YjkxZi4uZjU4YzIwNjQ4ODZkOWVhN2JjOTAyNWFhNTU1NzlkZjQxM2JjMzZkYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5tbQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0Lm1tCkBAIC03Niw3
ICs3Niw3IEBAIHN0YXRpYyBFeHBlY3RlZDxVUkwsIFN0cmluZz4gY29tcHV0ZVZhbGlkSW1wb3J0
U3BlY2lmaWVyKGNvbnN0IFVSTCYgYmFzZSwgY29uc3QKICAgICAgICAgcmV0dXJuIGFic29sdXRl
VVJMOwogCiAgICAgaWYgKCFzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLycpICYmICFzcGVjaWZpZXIu
c3RhcnRzV2l0aCgiLi8iKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4uLyIpKQotICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiTW9kdWxlIHNwZWNpZmllcjogIl9z
LCBzcGVjaWZpZXIsICIgZG9lcyBub3Qgc3RhcnQgd2l0aCBcIi9cIiwgXCIuL1wiLCBvciBcIi4u
L1wiLiJfcykpOworICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiTW9k
dWxlIHNwZWNpZmllcjogIl9zLCBzcGVjaWZpZXIsICIgZG9lcyBub3Qgc3RhcnQgd2l0aCBcIi9c
IiwgXCIuL1wiLCBvciBcIi4uL1wiLiBSZWZlcmVuY2VkIGZyb206ICJfcywgYmFzZS5zdHJpbmco
KSkpOwogCiAgICAgaWYgKHNwZWNpZmllci5zdGFydHNXaXRoKCcvJykpIHsKICAgICAgICAgYWJz
b2x1dGVVUkwgPSBVUkwoVVJMKHsgfSwgImZpbGU6Ly8iKSwgc3BlY2lmaWVyKTsKQEAgLTE1MCw4
ICsxNTAsNyBAQCBKU0ludGVybmFsUHJvbWlzZSogSlNBUElHbG9iYWxPYmplY3Q6Om1vZHVsZUxv
YWRlckltcG9ydE1vZHVsZShKU0dsb2JhbE9iamVjdCogZwogICAgICAgICByZXR1cm4gcmVqZWN0
KGV4Y2VwdGlvbi0+dmFsdWUoKSk7CiAgICAgfQogCi0gICAgU3RyaW5nIHJlZmVycmVyID0gIXNv
dXJjZU9yaWdpbi5pc051bGwoKSA/IHNvdXJjZU9yaWdpbi5zdHJpbmcoKSA6IFN0cmluZygpOwot
ICAgIFVSTCBiYXNlVVJMKFVSTCgpLCByZWZlcnJlcik7CisgICAgVVJMIGJhc2VVUkwgPSBzb3Vy
Y2VPcmlnaW4udXJsKCkgPyBzb3VyY2VPcmlnaW4udXJsKCkgOiBVUkwoKTsKICAgICBhdXRvIHJl
c3VsdCA9IGNvbXB1dGVWYWxpZEltcG9ydFNwZWNpZmllcihiYXNlVVJMLCBzcGVjaWZpZXIpOwog
ICAgIGlmIChyZXN1bHQpCiAgICAgICAgIHJldHVybiBpbXBvcnQocmVzdWx0LnZhbHVlKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3BwCmluZGV4IDFkMDRjZjNmOTQ5MGRkZjc1MzRi
MjEwMzAxM2FhYzRkNWY4NGI1NTMuLjA5NjFjNjdkODk0NWU3NTZhZWRjZDZlZGZkODYyMTQ3Yzkw
OGMyMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQmFzZS5jcHAKQEAgLTczLDcgKzczLDcg
QEAgSlNWYWx1ZVJlZiBKU0V2YWx1YXRlU2NyaXB0SW50ZXJuYWwoY29uc3QgSlNMb2NrSG9sZGVy
JiwgSlNDb250ZXh0UmVmIGN0eCwgSlNPYmoKICAgICByZXR1cm4gdG9SZWYoZ2xvYmFsT2JqZWN0
LCBqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNWYWx1ZVJlZiBKU0V2YWx1YXRlU2NyaXB0KEpTQ29u
dGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
SlNTdHJpbmdSZWYgc291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCitKU1ZhbHVlUmVmIEpTRXZhbHVhdGVTY3JpcHQoSlNDb250ZXh0UmVmIGN0
eCwgSlNTdHJpbmdSZWYgc2NyaXB0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1Jl
ZiBzb3VyY2VVUkxTdHJpbmcsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKIHsKICAgICBpZiAoIWN0eCkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKQEAgLTg1LDEzICs4NSwxMyBAQCBKU1ZhbHVlUmVmIEpTRXZhbHVhdGVTY3JpcHQoSlNDb250
ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgc2NyaXB0LCBKU09iamVjdFJlZiB0aAogCiAgICAgc3Rh
cnRpbmdMaW5lTnVtYmVyID0gc3RkOjptYXgoMSwgc3RhcnRpbmdMaW5lTnVtYmVyKTsKIAotICAg
IGF1dG8gc291cmNlVVJMU3RyaW5nID0gc291cmNlVVJMID8gc291cmNlVVJMLT5zdHJpbmcoKSA6
IFN0cmluZygpOwotICAgIFNvdXJjZUNvZGUgc291cmNlID0gbWFrZVNvdXJjZShzY3JpcHQtPnN0
cmluZygpLCBTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkxTdHJpbmcgfSwgVVJMKHsgfSwgc291cmNl
VVJMU3RyaW5nKSwgVGV4dFBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChz
dGFydGluZ0xpbmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVyKCkpKTsKKyAgICBhdXRvIHNvdXJjZVVS
TCA9IHNvdXJjZVVSTFN0cmluZyA/IFVSTCh7IH0sIHNvdXJjZVVSTFN0cmluZy0+c3RyaW5nKCkp
IDogVVJMKCk7CisgICAgU291cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291cmNlKHNjcmlwdC0+c3Ry
aW5nKCksIFNvdXJjZU9yaWdpbiB7IHNvdXJjZVVSTCB9LCBzb3VyY2VVUkwuc3RyaW5nKCksIFRl
eHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRpbmdMaW5lTnVt
YmVyKSwgT3JkaW5hbE51bWJlcigpKSk7CiAKICAgICByZXR1cm4gSlNFdmFsdWF0ZVNjcmlwdElu
dGVybmFsKGxvY2tlciwgY3R4LCB0aGlzT2JqZWN0LCBzb3VyY2UsIGV4Y2VwdGlvbik7CiB9CiAK
LWJvb2wgSlNDaGVja1NjcmlwdFN5bnRheChKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBz
Y3JpcHQsIEpTU3RyaW5nUmVmIHNvdXJjZVVSTCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQorYm9vbCBKU0NoZWNrU2NyaXB0U3ludGF4KEpTQ29udGV4dFJl
ZiBjdHgsIEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNTdHJpbmdSZWYgc291cmNlVVJMU3RyaW5nLCBp
bnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYg
KCFjdHgpIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMDMsOCArMTAzLDgg
QEAgYm9vbCBKU0NoZWNrU2NyaXB0U3ludGF4KEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVm
IHNjcmlwdCwgSlNTdHJpbmdSZWYgc291cmMKIAogICAgIHN0YXJ0aW5nTGluZU51bWJlciA9IHN0
ZDo6bWF4KDEsIHN0YXJ0aW5nTGluZU51bWJlcik7CiAKLSAgICBhdXRvIHNvdXJjZVVSTFN0cmlu
ZyA9IHNvdXJjZVVSTCA/IHNvdXJjZVVSTC0+c3RyaW5nKCkgOiBTdHJpbmcoKTsKLSAgICBTb3Vy
Y2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2Uoc2NyaXB0LT5zdHJpbmcoKSwgU291cmNlT3JpZ2lu
IHsgc291cmNlVVJMU3RyaW5nIH0sIFVSTCh7IH0sIHNvdXJjZVVSTFN0cmluZyksIFRleHRQb3Np
dGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRpbmdMaW5lTnVtYmVyKSwg
T3JkaW5hbE51bWJlcigpKSk7CisgICAgYXV0byBzb3VyY2VVUkwgPSBzb3VyY2VVUkxTdHJpbmcg
PyBVUkwoeyB9LCBzb3VyY2VVUkxTdHJpbmctPnN0cmluZygpKSA6IFVSTCgpOworICAgIFNvdXJj
ZUNvZGUgc291cmNlID0gbWFrZVNvdXJjZShzY3JpcHQtPnN0cmluZygpLCBTb3VyY2VPcmlnaW4g
eyBzb3VyY2VVUkwgfSwgc291cmNlVVJMLnN0cmluZygpLCBUZXh0UG9zaXRpb24oT3JkaW5hbE51
bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0YXJ0aW5nTGluZU51bWJlciksIE9yZGluYWxOdW1iZXIo
KSkpOwogICAgIAogICAgIEpTVmFsdWUgc3ludGF4RXhjZXB0aW9uOwogICAgIGJvb2wgaXNWYWxp
ZFN5bnRheCA9IGNoZWNrU3ludGF4KGdsb2JhbE9iamVjdCwgc291cmNlLCAmc3ludGF4RXhjZXB0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKaW5kZXggZDlh
ZWJmN2MxYzAwZDQ3ZmM5ZDY0ODBiNjM1MzY3MTNjMDU2ZmU2MC4uMzYzYjhhZjRiNDhiYjhjMDc0
NWY4MWIxY2UwZDhmYmU2NTZmMjhhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU09iamVjdFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09i
amVjdFJlZi5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBKU09iamVjdFJlZiBKU09iamVjdE1ha2VD
b25zdHJ1Y3RvcihKU0NvbnRleHRSZWYgY3R4LCBKU0NsYXNzUmVmIGpzQ2xhc3MsIEpTT2JqZQog
ICAgIHJldHVybiB0b1JlZihjb25zdHJ1Y3Rvcik7CiB9CiAKLUpTT2JqZWN0UmVmIEpTT2JqZWN0
TWFrZUZ1bmN0aW9uKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIG5hbWUsIHVuc2lnbmVk
IHBhcmFtZXRlckNvdW50LCBjb25zdCBKU1N0cmluZ1JlZiBwYXJhbWV0ZXJOYW1lc1tdLCBKU1N0
cmluZ1JlZiBib2R5LCBKU1N0cmluZ1JlZiBzb3VyY2VVUkwsIGludCBzdGFydGluZ0xpbmVOdW1i
ZXIsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK0pTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZUZ1bmN0
aW9uKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIG5hbWUsIHVuc2lnbmVkIHBhcmFtZXRl
ckNvdW50LCBjb25zdCBKU1N0cmluZ1JlZiBwYXJhbWV0ZXJOYW1lc1tdLCBKU1N0cmluZ1JlZiBi
b2R5LCBKU1N0cmluZ1JlZiBzb3VyY2VVUkxTdHJpbmcsIGludCBzdGFydGluZ0xpbmVOdW1iZXIs
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBpZiAoIWN0eCkgewogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE1MSw4ICsxNTEsOCBAQCBKU09iamVjdFJlZiBKU09iamVj
dE1ha2VGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBuYW1lLCB1bnNpZ25l
ZCBwYQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBhdXRvIHNvdXJjZVVS
TFN0cmluZyA9IHNvdXJjZVVSTCA/IHNvdXJjZVVSTC0+c3RyaW5nKCkgOiBTdHJpbmcoKTsKLSAg
ICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0RnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBhcmdz
LCBuYW1lSUQsIFNvdXJjZU9yaWdpbiB7IHNvdXJjZVVSTFN0cmluZyB9LCBzb3VyY2VVUkxTdHJp
bmcsIFRleHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRpbmdM
aW5lTnVtYmVyKSwgT3JkaW5hbE51bWJlcigpKSk7CisgICAgYXV0byBzb3VyY2VVUkwgPSBzb3Vy
Y2VVUkxTdHJpbmcgPyBVUkwoeyB9LCBzb3VyY2VVUkxTdHJpbmctPnN0cmluZygpKSA6IFVSTCgp
OworICAgIEpTT2JqZWN0KiByZXN1bHQgPSBjb25zdHJ1Y3RGdW5jdGlvbihnbG9iYWxPYmplY3Qs
IGFyZ3MsIG5hbWVJRCwgU291cmNlT3JpZ2luIHsgc291cmNlVVJMIH0sIHNvdXJjZVVSTC5zdHJp
bmcoKSwgVGV4dFBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChzdGFydGlu
Z0xpbmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVyKCkpKTsKICAgICBpZiAoaGFuZGxlRXhjZXB0aW9u
SWZOZWVkZWQoc2NvcGUsIGN0eCwgZXhjZXB0aW9uKSA9PSBFeGNlcHRpb25TdGF0dXM6OkRpZFRo
cm93KQogICAgICAgICByZXN1bHQgPSBudWxscHRyOwogICAgIHJldHVybiB0b1JlZihyZXN1bHQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdC5tbSBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHQubW0KaW5kZXggMDBjODc2YTRlNjQ1YzRk
OGE3ZjVhYzhlOGRjMmM3ZTFiNWMyMmYzMy4uOWU0MTQ1NzEyNGJmMTQzZWE0MTc2MTVjNDk4MmE1
MTljMWQ5M2E3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Njcmlw
dC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0Lm1tCkBAIC0yNjcs
OSArMjY3LDExIEBAIHN0YXRpYyBib29sIHZhbGlkYXRlQnl0ZWNvZGVDYWNoZVBhdGgoTlNVUkwq
IGNhY2hlUGF0aCwgTlNFcnJvcioqIGVycm9yKQogICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2tl
cih2bSk7CiAKICAgICBUZXh0UG9zaXRpb24gc3RhcnRQb3NpdGlvbiB7IH07Ci0gICAgU3RyaW5n
IHVybCA9IFN0cmluZyB7IFtbc2VsZiBzb3VyY2VVUkxdIGFic29sdXRlU3RyaW5nXSB9OworICAg
IFN0cmluZyBmaWxlbmFtZSA9IFN0cmluZyB7IFtbc2VsZiBzb3VyY2VVUkxdIGFic29sdXRlU3Ry
aW5nXSB9OworICAgIFVSTCB1cmwgPSBVUkwoeyB9LCBmaWxlbmFtZSk7CiAgICAgYXV0byB0eXBl
ID0gbV90eXBlID09IGtKU1NjcmlwdFR5cGVNb2R1bGUgPyBKU0M6OlNvdXJjZVByb3ZpZGVyU291
cmNlVHlwZTo6TW9kdWxlIDogSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW07
Ci0gICAgUmVmPEpTU2NyaXB0U291cmNlUHJvdmlkZXI+IHNvdXJjZVByb3ZpZGVyID0gSlNTY3Jp
cHRTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNlbGYsIEpTQzo6U291cmNlT3JpZ2luKHVybCksIFVS
TCh7IH0sIHVybCksIHN0YXJ0UG9zaXRpb24sIHR5cGUpOworICAgIEpTQzo6U291cmNlT3JpZ2lu
IG9yaWdpbih1cmwpOworICAgIFJlZjxKU1NjcmlwdFNvdXJjZVByb3ZpZGVyPiBzb3VyY2VQcm92
aWRlciA9IEpTU2NyaXB0U291cmNlUHJvdmlkZXI6OmNyZWF0ZShzZWxmLCBvcmlnaW4sIFdURk1v
dmUoZmlsZW5hbWUpLCBzdGFydFBvc2l0aW9uLCB0eXBlKTsKICAgICBKU0M6OlNvdXJjZUNvZGUg
c291cmNlQ29kZShXVEZNb3ZlKHNvdXJjZVByb3ZpZGVyKSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUu
b25lQmFzZWRJbnQoKSwgc3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKTsKICAg
ICByZXR1cm4gc291cmNlQ29kZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNTY3JpcHRSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Njcmlw
dFJlZi5jcHAKaW5kZXggODQxNTlhYzUyNTczYzc4NzRlM2I1MmIyYTQyZTBmZWM2M2NlN2JhYS4u
NzYyY2VjMDVlOTI0NmMwY2IxZmFjMTJkZGFmNzJjMWFjNjEwNTAyMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAKQEAgLTM5LDkgKzM5LDkgQEAgdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKIAogc3RydWN0IE9wYXF1ZUpTU2NyaXB0IGZpbmFsIDogcHVibGljIFNvdXJj
ZVByb3ZpZGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgV1RGOjpSZWY8T3BhcXVlSlNTY3JpcHQ+
IGNyZWF0ZShWTSYgdm0sIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1
cmwsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlKQorICAgIHN0
YXRpYyBXVEY6OlJlZjxPcGFxdWVKU1NjcmlwdD4gY3JlYXRlKFZNJiB2bSwgY29uc3QgU291cmNl
T3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0cmluZyBmaWxlbmFtZSwgaW50IHN0YXJ0aW5nTGluZU51
bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2UpCiAgICAgewotICAgICAgICByZXR1cm4gV1RGOjph
ZG9wdFJlZigqbmV3IE9wYXF1ZUpTU2NyaXB0KHZtLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUodXJs
KSwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2UpKTsKKyAgICAgICAgcmV0dXJuIFdURjo6YWRv
cHRSZWYoKm5ldyBPcGFxdWVKU1NjcmlwdCh2bSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKGZpbGVu
YW1lKSwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2UpKTsKICAgICB9CiAKICAgICB1bnNpZ25l
ZCBoYXNoKCkgY29uc3QgZmluYWwKQEAgLTU3LDggKzU3LDggQEAgcHVibGljOgogICAgIFZNJiB2
bSgpIGNvbnN0IHsgcmV0dXJuIG1fdm07IH0KIAogcHJpdmF0ZToKLSAgICBPcGFxdWVKU1Njcmlw
dChWTSYgdm0sIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwsIGlu
dCBzdGFydGluZ0xpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlKQotICAgICAgICA6IFNv
dXJjZVByb3ZpZGVyKHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpLCBUZXh0UG9zaXRpb24oT3Jk
aW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0YXJ0aW5nTGluZU51bWJlciksIE9yZGluYWxO
dW1iZXIoKSksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSkKKyAgICBPcGFxdWVK
U1NjcmlwdChWTSYgdm0sIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJpbmcm
JiBmaWxlbmFtZSwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2Up
CisgICAgICAgIDogU291cmNlUHJvdmlkZXIoc291cmNlT3JpZ2luLCBXVEZNb3ZlKGZpbGVuYW1l
KSwgVGV4dFBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChzdGFydGluZ0xp
bmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVyKCkpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlBy
b2dyYW0pCiAgICAgICAgICwgbV92bSh2bSkKICAgICAgICAgLCBtX3NvdXJjZShzb3VyY2UuaXNO
dWxsKCkgPyAqU3RyaW5nSW1wbDo6ZW1wdHkoKSA6ICpzb3VyY2UuaW1wbCgpKQogICAgIHsKQEAg
LTgwLDcgKzgwLDcgQEAgc3RhdGljIGJvb2wgcGFyc2VTY3JpcHQoVk0mIHZtLCBjb25zdCBTb3Vy
Y2VDb2RlJiBzb3VyY2UsIFBhcnNlckVycm9yJiBlcnJvcikKIAogZXh0ZXJuICJDIiB7CiAKLUpT
U2NyaXB0UmVmIEpTU2NyaXB0Q3JlYXRlUmVmZXJlbmNpbmdJbW1vcnRhbEFTQ0lJVGV4dChKU0Nv
bnRleHRHcm91cFJlZiBjb250ZXh0R3JvdXAsIEpTU3RyaW5nUmVmIHVybCwgaW50IHN0YXJ0aW5n
TGluZU51bWJlciwgY29uc3QgY2hhciogc291cmNlLCBzaXplX3QgbGVuZ3RoLCBKU1N0cmluZ1Jl
ZiogZXJyb3JNZXNzYWdlLCBpbnQqIGVycm9yTGluZSkKK0pTU2NyaXB0UmVmIEpTU2NyaXB0Q3Jl
YXRlUmVmZXJlbmNpbmdJbW1vcnRhbEFTQ0lJVGV4dChKU0NvbnRleHRHcm91cFJlZiBjb250ZXh0
R3JvdXAsIEpTU3RyaW5nUmVmIHVybFN0cmluZywgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgY29u
c3QgY2hhciogc291cmNlLCBzaXplX3QgbGVuZ3RoLCBKU1N0cmluZ1JlZiogZXJyb3JNZXNzYWdl
LCBpbnQqIGVycm9yTGluZSkKIHsKICAgICBhdXRvJiB2bSA9ICp0b0pTKGNvbnRleHRHcm91cCk7
CiAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcigmdm0pOwpAQCAtOTEsOCArOTEsOCBAQCBKU1Njcmlw
dFJlZiBKU1NjcmlwdENyZWF0ZVJlZmVyZW5jaW5nSW1tb3J0YWxBU0NJSVRleHQoSlNDb250ZXh0
R3JvdXBSZWYgY29udGV4dAogCiAgICAgc3RhcnRpbmdMaW5lTnVtYmVyID0gc3RkOjptYXgoMSwg
c3RhcnRpbmdMaW5lTnVtYmVyKTsKIAotICAgIGF1dG8gc291cmNlVVJMU3RyaW5nID0gdXJsID8g
dXJsLT5zdHJpbmcoKSA6IFN0cmluZygpOwotICAgIGF1dG8gcmVzdWx0ID0gT3BhcXVlSlNTY3Jp
cHQ6OmNyZWF0ZSh2bSwgU291cmNlT3JpZ2luIHsgc291cmNlVVJMU3RyaW5nIH0sIFVSTCh7IH0s
IHNvdXJjZVVSTFN0cmluZyksIHN0YXJ0aW5nTGluZU51bWJlciwgU3RyaW5nKFN0cmluZ0ltcGw6
OmNyZWF0ZUZyb21MaXRlcmFsKHNvdXJjZSwgbGVuZ3RoKSkpOworICAgIGF1dG8gc291cmNlVVJM
ID0gdXJsU3RyaW5nID8gVVJMKHsgfSwgdXJsU3RyaW5nLT5zdHJpbmcoKSkgOiBVUkwoKTsKKyAg
ICBhdXRvIHJlc3VsdCA9IE9wYXF1ZUpTU2NyaXB0OjpjcmVhdGUodm0sIFNvdXJjZU9yaWdpbiB7
IHNvdXJjZVVSTCB9LCBzb3VyY2VVUkwuc3RyaW5nKCksIHN0YXJ0aW5nTGluZU51bWJlciwgU3Ry
aW5nKFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKHNvdXJjZSwgbGVuZ3RoKSkpOwogCiAg
ICAgUGFyc2VyRXJyb3IgZXJyb3I7CiAgICAgaWYgKCFwYXJzZVNjcmlwdCh2bSwgU291cmNlQ29k
ZShyZXN1bHQuY29weVJlZigpKSwgZXJyb3IpKSB7CkBAIC0xMDYsMTUgKzEwNiwxNSBAQCBKU1Nj
cmlwdFJlZiBKU1NjcmlwdENyZWF0ZVJlZmVyZW5jaW5nSW1tb3J0YWxBU0NJSVRleHQoSlNDb250
ZXh0R3JvdXBSZWYgY29udGV4dAogICAgIHJldHVybiAmcmVzdWx0LmxlYWtSZWYoKTsKIH0KIAot
SlNTY3JpcHRSZWYgSlNTY3JpcHRDcmVhdGVGcm9tU3RyaW5nKEpTQ29udGV4dEdyb3VwUmVmIGNv
bnRleHRHcm91cCwgSlNTdHJpbmdSZWYgdXJsLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBKU1N0
cmluZ1JlZiBzb3VyY2UsIEpTU3RyaW5nUmVmKiBlcnJvck1lc3NhZ2UsIGludCogZXJyb3JMaW5l
KQorSlNTY3JpcHRSZWYgSlNTY3JpcHRDcmVhdGVGcm9tU3RyaW5nKEpTQ29udGV4dEdyb3VwUmVm
IGNvbnRleHRHcm91cCwgSlNTdHJpbmdSZWYgdXJsU3RyaW5nLCBpbnQgc3RhcnRpbmdMaW5lTnVt
YmVyLCBKU1N0cmluZ1JlZiBzb3VyY2UsIEpTU3RyaW5nUmVmKiBlcnJvck1lc3NhZ2UsIGludCog
ZXJyb3JMaW5lKQogewogICAgIGF1dG8mIHZtID0gKnRvSlMoY29udGV4dEdyb3VwKTsKICAgICBK
U0xvY2tIb2xkZXIgbG9ja2VyKCZ2bSk7CiAKICAgICBzdGFydGluZ0xpbmVOdW1iZXIgPSBzdGQ6
Om1heCgxLCBzdGFydGluZ0xpbmVOdW1iZXIpOwogCi0gICAgYXV0byBzb3VyY2VVUkxTdHJpbmcg
PSB1cmwgPyB1cmwtPnN0cmluZygpIDogU3RyaW5nKCk7Ci0gICAgYXV0byByZXN1bHQgPSBPcGFx
dWVKU1NjcmlwdDo6Y3JlYXRlKHZtLCBTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkxTdHJpbmcgfSwg
VVJMKHsgfSwgc291cmNlVVJMU3RyaW5nKSwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2UtPnN0
cmluZygpKTsKKyAgICBhdXRvIHNvdXJjZVVSTCA9IHVybFN0cmluZyA/IFVSTCh7IH0sIHVybFN0
cmluZy0+c3RyaW5nKCkpIDogVVJMKCk7CisgICAgYXV0byByZXN1bHQgPSBPcGFxdWVKU1Njcmlw
dDo6Y3JlYXRlKHZtLCBTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkwgfSwgc291cmNlVVJMLnN0cmlu
ZygpLCBzdGFydGluZ0xpbmVOdW1iZXIsIHNvdXJjZS0+c3RyaW5nKCkpOwogCiAgICAgUGFyc2Vy
RXJyb3IgZXJyb3I7CiAgICAgaWYgKCFwYXJzZVNjcmlwdCh2bSwgU291cmNlQ29kZShyZXN1bHQu
Y29weVJlZigpKSwgZXJyb3IpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL2dsaWIvSlNDQ29udGV4dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIv
SlNDQ29udGV4dC5jcHAKaW5kZXggYWI4MDlkZDcxZjAxNzdjNThkMzMzY2RkZjlkZmI2MmU1ZWU5
MGJiMy4uMjJiMzFhYzcyMGJiM2UyYTRiNDk1MDZkZGI3NzI1ZDM3NGQ2NTIxNyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDb250ZXh0LmNwcApAQCAtOTU2LDkgKzk1
Niw5IEBAIEpTQ0NoZWNrU3ludGF4UmVzdWx0IGpzY19jb250ZXh0X2NoZWNrX3N5bnRheChKU0ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBjaGFyKiBjCiAgICAgSlNDOjpWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9ja2VyKHZtKTsKIAotICAgIFN0
cmluZyBzb3VyY2VVUkxTdHJpbmcgPSB1cmkgPyBTdHJpbmc6OmZyb21VVEY4KHVyaSkgOiBTdHJp
bmcoKTsKLSAgICBKU0M6OlNvdXJjZUNvZGUgc291cmNlID0gSlNDOjptYWtlU291cmNlKFN0cmlu
Zzo6ZnJvbVVURjgoY29kZSwgbGVuZ3RoIDwgMCA/IHN0cmxlbihjb2RlKSA6IGxlbmd0aCksIEpT
Qzo6U291cmNlT3JpZ2luIHsgc291cmNlVVJMU3RyaW5nIH0sCi0gICAgICAgIFVSTCh7IH0sIHNv
dXJjZVVSTFN0cmluZyksIFRleHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJ
bnQobGluZU51bWJlciksIE9yZGluYWxOdW1iZXIoKSkpOworICAgIFVSTCBzb3VyY2VVUkwgPSB1
cmkgPyBVUkwoeyB9LCB1cmkpIDogVVJMKCk7CisgICAgSlNDOjpTb3VyY2VDb2RlIHNvdXJjZSA9
IEpTQzo6bWFrZVNvdXJjZShTdHJpbmc6OmZyb21VVEY4KGNvZGUsIGxlbmd0aCA8IDAgPyBzdHJs
ZW4oY29kZSkgOiBsZW5ndGgpLCBKU0M6OlNvdXJjZU9yaWdpbiB7IHNvdXJjZVVSTCB9LAorICAg
ICAgICBzb3VyY2VVUkwuc3RyaW5nKCkgLCBUZXh0UG9zaXRpb24oT3JkaW5hbE51bWJlcjo6ZnJv
bU9uZUJhc2VkSW50KGxpbmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVyKCkpKTsKICAgICBib29sIHN1
Y2Nlc3MgPSBmYWxzZTsKICAgICBKU0M6OlBhcnNlckVycm9yIGVycm9yOwogICAgIHN3aXRjaCAo
bW9kZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0
aW5FeGVjdXRhYmxlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRp
bkV4ZWN1dGFibGVzLmNwcAppbmRleCBhYmFhZWYwODFmZTI0YjI5MWRiZjM4NzVmZWI2N2MzOTc4
YWJkNDJjLi44MzA0OTQ0YmFjNDM4YmM5NzkzNGE0YTAyZDAyMTU5NTViNGNhY2ZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVz
LmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogQnVpbHRpbkV4ZWN1dGFi
bGVzOjpCdWlsdGluRXhlY3V0YWJsZXMoVk0mIHZtKQogICAgIDogbV92bSh2bSkKLSAgICAsIG1f
Y29tYmluZWRTb3VyY2VQcm92aWRlcihTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKFN0cmlu
Z0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKHNfSlNDQ29tYmluZWRDb2RlLCBzX0pTQ0NvbWJpbmVk
Q29kZUxlbmd0aCksIHsgfSwgVVJMKCkpKQorICAgICwgbV9jb21iaW5lZFNvdXJjZVByb3ZpZGVy
KFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoU3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVy
YWwoc19KU0NDb21iaW5lZENvZGUsIHNfSlNDQ29tYmluZWRDb2RlTGVuZ3RoKSwgeyB9LCBTdHJp
bmcoKSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlckxvY2F0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlckxvY2F0aW9uLmNwcAppbmRleCA5MmFjYTYyOTY1YThmMjdhYzQ3ZjQzY2EyNGEzNzBl
NTRjMDNiZjJhLi4wZTE5OTk4ZjFlMzJhZTk2MmIyM2NlMzY3ZGMwOTc3ZjM3MzU0MTBjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJMb2NhdGlvbi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24u
Y3BwCkBAIC0zOSw5ICszOSw2IEBAIERlYnVnZ2VyTG9jYXRpb246OkRlYnVnZ2VyTG9jYXRpb24o
U2NyaXB0RXhlY3V0YWJsZSogZXhlY3V0YWJsZSkKICAgICBzb3VyY2VJRCA9IGV4ZWN1dGFibGUt
PnNvdXJjZUlEKCk7CiAgICAgbGluZSA9IGV4ZWN1dGFibGUtPmZpcnN0TGluZSgpOwogICAgIGNv
bHVtbiA9IGV4ZWN1dGFibGUtPnN0YXJ0Q29sdW1uKCk7Ci0gICAgdXJsID0gZXhlY3V0YWJsZS0+
c291cmNlVVJMKCk7Ci0gICAgaWYgKHVybC5pc0VtcHR5KCkpCi0gICAgICAgIHVybCA9IGV4ZWN1
dGFibGUtPnNvdXJjZSgpLnByb3ZpZGVyKCktPnNvdXJjZVVSTERpcmVjdGl2ZSgpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIv
RGVidWdnZXJMb2NhdGlvbi5oCmluZGV4IDNlMWM0MTY2YjBhN2U5MDQxMDY3N2Q2YjgyNmYxZDYy
MWYyOTRlNTUuLmU5NDg3NzE2OGM0MDA0ZWI5Y2FkMzhlNzViOWUzOGZjMjAwNjIzMGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uaApA
QCAtMzUsMTYgKzM1LDE0IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGFibGU7CiBzdHJ1Y3QgRGVidWdn
ZXJMb2NhdGlvbiB7CiAKICAgICBEZWJ1Z2dlckxvY2F0aW9uKCkgeyB9Ci0gICAgRGVidWdnZXJM
b2NhdGlvbihjb25zdCBTdHJpbmcmIHVybCwgaW50cHRyX3Qgc291cmNlSUQsIHVuc2lnbmVkIGxp
bmUsIHVuc2lnbmVkIGNvbHVtbikKLSAgICAgICAgOiB1cmwodXJsKQotICAgICAgICAsIHNvdXJj
ZUlEKHNvdXJjZUlEKQorICAgIERlYnVnZ2VyTG9jYXRpb24oaW50cHRyX3Qgc291cmNlSUQsIHVu
c2lnbmVkIGxpbmUsIHVuc2lnbmVkIGNvbHVtbikKKyAgICAgICAgOiBzb3VyY2VJRChzb3VyY2VJ
RCkKICAgICAgICAgLCBsaW5lKGxpbmUpCiAgICAgICAgICwgY29sdW1uKGNvbHVtbikKICAgICB7
IH0KIAogICAgIERlYnVnZ2VyTG9jYXRpb24oU2NyaXB0RXhlY3V0YWJsZSopOwogCi0gICAgU3Ry
aW5nIHVybDsKICAgICBpbnRwdHJfdCBzb3VyY2VJRCB7IG5vU291cmNlSUQgfTsKICAgICB1bnNp
Z25lZCBsaW5lIHsgMCB9OwogICAgIHVuc2lnbmVkIGNvbHVtbiB7IDAgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5k
ZXggZmJiMDRhNDhjY2QxNzc4OTQwZDA2NDcwNmU1Mjg0MDQ4MjJmYzk2MC4uOGRlZDEyOTVmOTQz
Njg3OGM3M2U5Y2VkYjY2MTMxMjNlNDIyMWRkZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTEzOSwxMSArMTM5
LDExIEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnNvdXJjZVBhcnNlZChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTb3VyY2VQcm92aWRlCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
IChlcnJvckxpbmUgIT0gLTEpIHsKLSAgICAgICAgYXV0byB1cmwgPSBzb3VyY2VQcm92aWRlci0+
dXJsKCk7CisgICAgICAgIGF1dG8gc291cmNlVVJMID0gc291cmNlUHJvdmlkZXItPnNvdXJjZVVS
TCgpOwogICAgICAgICBhdXRvIGRhdGEgPSBzb3VyY2VQcm92aWRlci0+c291cmNlKCkudG9TdHJp
bmcoKTsKICAgICAgICAgYXV0byBmaXJzdExpbmUgPSBzb3VyY2VQcm92aWRlci0+c3RhcnRQb3Np
dGlvbigpLm1fbGluZS5vbmVCYXNlZEludCgpOwogICAgICAgICBkaXNwYXRjaEZ1bmN0aW9uVG9M
aXN0ZW5lcnMoWyZdIChTY3JpcHREZWJ1Z0xpc3RlbmVyJiBsaXN0ZW5lcikgewotICAgICAgICAg
ICAgbGlzdGVuZXIuZmFpbGVkVG9QYXJzZVNvdXJjZSh1cmwuc3RyaW5nKCksIGRhdGEsIGZpcnN0
TGluZSwgZXJyb3JMaW5lLCBlcnJvck1lc3NhZ2UpOworICAgICAgICAgICAgbGlzdGVuZXIuZmFp
bGVkVG9QYXJzZVNvdXJjZShzb3VyY2VVUkwsIGRhdGEsIGZpcnN0TGluZSwgZXJyb3JMaW5lLCBl
cnJvck1lc3NhZ2UpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE1
Myw3ICsxNTMsNyBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpzb3VyY2VQYXJzZWQoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU291cmNlUHJvdmlkZQogICAgIC8vIEZJWE1FOiA8aHR0
cHM6Ly93ZWJraXQub3JnL2IvMTYyNzczPiBXZWIgSW5zcGVjdG9yOiBTaW1wbGlmeSBTY3JpcHRE
ZWJ1Z0xpc3RlbmVyOjpTY3JpcHQgdG8gdXNlIFNvdXJjZVByb3ZpZGVyCiAgICAgU2NyaXB0RGVi
dWdMaXN0ZW5lcjo6U2NyaXB0IHNjcmlwdDsKICAgICBzY3JpcHQuc291cmNlUHJvdmlkZXIgPSBz
b3VyY2VQcm92aWRlcjsKLSAgICBzY3JpcHQudXJsID0gc291cmNlUHJvdmlkZXItPnVybCgpLnN0
cmluZygpOworICAgIHNjcmlwdC51cmwgPSBzb3VyY2VQcm92aWRlci0+c291cmNlVVJMKCk7CiAg
ICAgc2NyaXB0LnNvdXJjZSA9IHNvdXJjZVByb3ZpZGVyLT5zb3VyY2UoKS50b1N0cmluZygpOwog
ICAgIHNjcmlwdC5zdGFydExpbmUgPSBzb3VyY2VQcm92aWRlci0+c3RhcnRQb3NpdGlvbigpLm1f
bGluZS56ZXJvQmFzZWRJbnQoKTsKICAgICBzY3JpcHQuc3RhcnRDb2x1bW4gPSBzb3VyY2VQcm92
aWRlci0+c3RhcnRQb3NpdGlvbigpLm1fY29sdW1uLnplcm9CYXNlZEludCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
anNjLmNwcAppbmRleCAwZjdjYjNiMmZjOTE4NjdmZjIxMTBhYzdhODc3ODJjNWI0MDBmNTM4Li41
NDgxMmNkMjU5NDEwZDhlYjUxNGVlNzFhZTQ1ZGQ1MjVjMDhmOGM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNj
LmNwcApAQCAtNjc5LDUxICs2NzksNyBAQCBzdGF0aWMgVUNoYXIgcGF0aFNlcGFyYXRvcigpCiAj
ZW5kaWYKIH0KIAotc3RydWN0IERpcmVjdG9yeU5hbWUgewotICAgIC8vIEluIHVuaXgsIGl0IGlz
ICIvIi4gSW4gV2luZG93cywgaXQgYmVjb21lcyBhIGRyaXZlIGxldHRlciBsaWtlICJDOlwiCi0g
ICAgU3RyaW5nIHJvb3ROYW1lOwotCi0gICAgLy8gSWYgdGhlIGRpcmVjdG9yeSBuYW1lIGlzICIv
aG9tZS9XZWJLaXQiLCB0aGlzIGJlY29tZXMgImhvbWUvV2ViS2l0Ii4gSWYgdGhlIGRpcmVjdG9y
eSBuYW1lIGlzICIvIiwgdGhpcyBiZWNvbWVzICIiLgotICAgIFN0cmluZyBxdWVyeU5hbWU7Ci19
OwotCi1zdHJ1Y3QgTW9kdWxlTmFtZSB7Ci0gICAgTW9kdWxlTmFtZShjb25zdCBTdHJpbmcmIG1v
ZHVsZU5hbWUpOwotCi0gICAgYm9vbCBzdGFydHNXaXRoUm9vdCgpIGNvbnN0Ci0gICAgewotICAg
ICAgICByZXR1cm4gIXF1ZXJpZXMuaXNFbXB0eSgpICYmIHF1ZXJpZXNbMF0uaXNFbXB0eSgpOwot
ICAgIH0KLQotICAgIFZlY3RvcjxTdHJpbmc+IHF1ZXJpZXM7Ci19OwotCi1Nb2R1bGVOYW1lOjpN
b2R1bGVOYW1lKGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKLXsKLSAgICAvLyBBIG1vZHVsZSBu
YW1lIGdpdmVuIGZyb20gY29kZSBpcyByZXByZXNlbnRlZCBhcyB0aGUgVU5JWCBzdHlsZSBwYXRo
LiBMaWtlLCBgLi9BL0IuanNgLgotICAgIHF1ZXJpZXMgPSBtb2R1bGVOYW1lLnNwbGl0QWxsb3dp
bmdFbXB0eUVudHJpZXMoJy8nKTsKLX0KLQotc3RhdGljIE9wdGlvbmFsPERpcmVjdG9yeU5hbWU+
IGV4dHJhY3REaXJlY3RvcnlOYW1lKGNvbnN0IFN0cmluZyYgYWJzb2x1dGVQYXRoVG9GaWxlKQot
ewotICAgIHNpemVfdCBmaXJzdFNlcGFyYXRvclBvc2l0aW9uID0gYWJzb2x1dGVQYXRoVG9GaWxl
LmZpbmQocGF0aFNlcGFyYXRvcigpKTsKLSAgICBpZiAoZmlyc3RTZXBhcmF0b3JQb3NpdGlvbiA9
PSBub3RGb3VuZCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBEaXJlY3RvcnlO
YW1lIGRpcmVjdG9yeU5hbWU7Ci0gICAgZGlyZWN0b3J5TmFtZS5yb290TmFtZSA9IGFic29sdXRl
UGF0aFRvRmlsZS5zdWJzdHJpbmcoMCwgZmlyc3RTZXBhcmF0b3JQb3NpdGlvbiArIDEpOyAvLyBJ
bmNsdWRlIHRoZSBzZXBhcmF0b3IuCi0gICAgc2l6ZV90IGxhc3RTZXBhcmF0b3JQb3NpdGlvbiA9
IGFic29sdXRlUGF0aFRvRmlsZS5yZXZlcnNlRmluZChwYXRoU2VwYXJhdG9yKCkpOwotICAgIEFT
U0VSVF9XSVRIX01FU1NBR0UobGFzdFNlcGFyYXRvclBvc2l0aW9uICE9IG5vdEZvdW5kLCAiSWYg
dGhlIHNlcGFyYXRvciBpcyBub3QgZm91bmQsIHRoaXMgZnVuY3Rpb24gYWxyZWFkeSByZXR1cm5z
IHdoZW4gcGVyZm9ybWluZyB0aGUgZm9yd2FyZCBzZWFyY2guIik7Ci0gICAgaWYgKGZpcnN0U2Vw
YXJhdG9yUG9zaXRpb24gPT0gbGFzdFNlcGFyYXRvclBvc2l0aW9uKQotICAgICAgICBkaXJlY3Rv
cnlOYW1lLnF1ZXJ5TmFtZSA9IFN0cmluZ0ltcGw6OmVtcHR5KCk7Ci0gICAgZWxzZSB7Ci0gICAg
ICAgIHNpemVfdCBxdWVyeVN0YXJ0UG9zaXRpb24gPSBmaXJzdFNlcGFyYXRvclBvc2l0aW9uICsg
MTsKLSAgICAgICAgc2l6ZV90IHF1ZXJ5TGVuZ3RoID0gbGFzdFNlcGFyYXRvclBvc2l0aW9uIC0g
cXVlcnlTdGFydFBvc2l0aW9uOyAvLyBOb3QgaW5jbHVkZSB0aGUgbGFzdCBzZXBhcmF0b3IuCi0g
ICAgICAgIGRpcmVjdG9yeU5hbWUucXVlcnlOYW1lID0gYWJzb2x1dGVQYXRoVG9GaWxlLnN1YnN0
cmluZyhxdWVyeVN0YXJ0UG9zaXRpb24sIHF1ZXJ5TGVuZ3RoKTsKLSAgICB9Ci0gICAgcmV0dXJu
IGRpcmVjdG9yeU5hbWU7Ci19Ci0KLXN0YXRpYyBPcHRpb25hbDxEaXJlY3RvcnlOYW1lPiBjdXJy
ZW50V29ya2luZ0RpcmVjdG9yeSgpCitzdGF0aWMgVVJMIGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5
KCkKIHsKICNpZiBPUyhXSU5ET1dTKQogICAgIC8vIGh0dHBzOi8vbXNkbi5taWNyb3NvZnQuY29t
L2VuLXVzL2xpYnJhcnkvd2luZG93cy9kZXNrdG9wL2FhMzY0OTM0LmFzcHgKQEAgLTczNyw3ICs2
OTMsNyBAQCBzdGF0aWMgT3B0aW9uYWw8RGlyZWN0b3J5TmFtZT4gY3VycmVudFdvcmtpbmdEaXJl
Y3RvcnkoKQogICAgIC8vIEluIHRoZSBwYXRoIHV0aWxpdHkgZnVuY3Rpb25zIGluc2lkZSB0aGUg
SlNDIHNoZWxsLCB3ZSBkb2VzIG5vdCBoYW5kbGUgdGhlIFVOQyBhbmQgVU5DVyBpbmNsdWRpbmcg
dGhlIG5ldHdvcmsgaG9zdCBuYW1lLgogICAgIERXT1JEIGJ1ZmZlckxlbmd0aCA9IDo6R2V0Q3Vy
cmVudERpcmVjdG9yeVcoMCwgbnVsbHB0cik7CiAgICAgaWYgKCFidWZmZXJMZW5ndGgpCi0gICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IH07CiAgICAgLy8gSW4g
V2luZG93cywgd2NoYXJfdCBpcyB0aGUgVVRGLTE2TEUuCiAgICAgLy8gaHR0cHM6Ly9tc2RuLm1p
Y3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9kZDM3NDA4MS5hc3B4CiAgICAgLy8gaHR0cHM6Ly9t
c2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS93aW5kb3dzL2Rlc2t0b3AvZmYzODE0MDcu
YXNweApAQCAtNzQ2LDU0ICs3MDIsMzEgQEAgc3RhdGljIE9wdGlvbmFsPERpcmVjdG9yeU5hbWU+
IGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KCkKICAgICBTdHJpbmcgZGlyZWN0b3J5U3RyaW5nKGJ1
ZmZlci5kYXRhKCksIGxlbmd0aE5vdEluY2x1ZGluZ051bGwpOwogICAgIC8vIFdlIGRvbid0IHN1
cHBvcnQgbmV0d29yayBwYXRoIGxpa2UgXFxob3N0XHNoYXJlXDxwYXRoIG5hbWU+LgogICAgIGlm
IChkaXJlY3RvcnlTdHJpbmcuc3RhcnRzV2l0aCgiXFxcXCIpKQotICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworICAgICAgICByZXR1cm4geyB9OworCiAjZWxzZQogICAgIFZlY3RvcjxjaGFy
PiBidWZmZXIoUEFUSF9NQVgpOwogICAgIGlmICghZ2V0Y3dkKGJ1ZmZlci5kYXRhKCksIFBBVEhf
TUFYKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgfTsK
ICAgICBTdHJpbmcgZGlyZWN0b3J5U3RyaW5nID0gU3RyaW5nOjpmcm9tVVRGOChidWZmZXIuZGF0
YSgpKTsKICNlbmRpZgogICAgIGlmIChkaXJlY3RvcnlTdHJpbmcuaXNFbXB0eSgpKQotICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgaWYgKGRpcmVjdG9yeVN0cmluZ1tkaXJlY3Rv
cnlTdHJpbmcubGVuZ3RoKCkgLSAxXSA9PSBwYXRoU2VwYXJhdG9yKCkpCi0gICAgICAgIHJldHVy
biBleHRyYWN0RGlyZWN0b3J5TmFtZShkaXJlY3RvcnlTdHJpbmcpOwotICAgIC8vIEFwcGVuZCB0
aGUgc2VwZXJhdG9yIHRvIHJlcHJlc2VudHMgdGhlIGZpbGUgbmFtZS4gZXh0cmFjdERpcmVjdG9y
eU5hbWUgb25seSBhY2NlcHRzIHRoZSBhYnNvbHV0ZSBmaWxlIG5hbWUuCi0gICAgcmV0dXJuIGV4
dHJhY3REaXJlY3RvcnlOYW1lKG1ha2VTdHJpbmcoZGlyZWN0b3J5U3RyaW5nLCBwYXRoU2VwYXJh
dG9yKCkpKTsKLX0KLQotc3RhdGljIFN0cmluZyByZXNvbHZlUGF0aChjb25zdCBEaXJlY3RvcnlO
YW1lJiBkaXJlY3RvcnlOYW1lLCBjb25zdCBNb2R1bGVOYW1lJiBtb2R1bGVOYW1lKQotewotICAg
IFZlY3RvcjxTdHJpbmc+IGRpcmVjdG9yeVBpZWNlcyA9IGRpcmVjdG9yeU5hbWUucXVlcnlOYW1l
LnNwbGl0KHBhdGhTZXBhcmF0b3IoKSk7Ci0KLSAgICAvLyBPbmx5IGZpcnN0ICcvJyBpcyByZWNv
Z25pemVkIGFzIHRoZSBwYXRoIGZyb20gdGhlIHJvb3QuCi0gICAgaWYgKG1vZHVsZU5hbWUuc3Rh
cnRzV2l0aFJvb3QoKSkKLSAgICAgICAgZGlyZWN0b3J5UGllY2VzLmNsZWFyKCk7CisgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICBmb3IgKGNvbnN0IGF1dG8mIHF1ZXJ5IDogbW9kdWxlTmFtZS5x
dWVyaWVzKSB7Ci0gICAgICAgIGlmIChxdWVyeSA9PSBTdHJpbmcoIi4uIl9zKSkgewotICAgICAg
ICAgICAgaWYgKCFkaXJlY3RvcnlQaWVjZXMuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIGRp
cmVjdG9yeVBpZWNlcy5yZW1vdmVMYXN0KCk7Ci0gICAgICAgIH0gZWxzZSBpZiAoIXF1ZXJ5Lmlz
RW1wdHkoKSAmJiBxdWVyeSAhPSBTdHJpbmcoIi4iX3MpKQotICAgICAgICAgICAgZGlyZWN0b3J5
UGllY2VzLmFwcGVuZChxdWVyeSk7Ci0gICAgfQorICAgIC8vIEFkZCBhIHRyYWlsaW5nIHNsYXNo
IGlmIG5lZWRlZCBzbyB0aGUgVVJMIHJlc29sdmVzIHRvIGEgZGlyZWN0b3J5IGFuZCBub3QgYSBm
aWxlLgorICAgIGlmIChkaXJlY3RvcnlTdHJpbmdbZGlyZWN0b3J5U3RyaW5nLmxlbmd0aCgpIC0g
MV0gIT0gcGF0aFNlcGFyYXRvcigpKQorICAgICAgICBkaXJlY3RvcnlTdHJpbmcgPSBtYWtlU3Ry
aW5nKGRpcmVjdG9yeVN0cmluZywgcGF0aFNlcGFyYXRvcigpKTsKIAotICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZChkaXJlY3RvcnlOYW1lLnJvb3ROYW1lKTsK
LSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRpcmVjdG9yeVBpZWNlcy5zaXplKCk7ICsraSkg
ewotICAgICAgICBidWlsZGVyLmFwcGVuZChkaXJlY3RvcnlQaWVjZXNbaV0pOwotICAgICAgICBp
ZiAoaSArIDEgIT0gZGlyZWN0b3J5UGllY2VzLnNpemUoKSkKLSAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKHBhdGhTZXBhcmF0b3IoKSk7Ci0gICAgfQotICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgcmV0dXJuIFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChkaXJlY3Rv
cnlTdHJpbmcpOwogfQogCi1zdGF0aWMgU3RyaW5nIGFic29sdXRlUGF0aChjb25zdCBTdHJpbmcm
IGZpbGVOYW1lKQorc3RhdGljIFVSTCBhYnNvbHV0ZVBhdGgoY29uc3QgU3RyaW5nJiBmaWxlTmFt
ZSkKIHsKICAgICBhdXRvIGRpcmVjdG9yeU5hbWUgPSBjdXJyZW50V29ya2luZ0RpcmVjdG9yeSgp
OwotICAgIGlmICghZGlyZWN0b3J5TmFtZSkKLSAgICAgICAgcmV0dXJuIGZpbGVOYW1lOwotICAg
IHJldHVybiByZXNvbHZlUGF0aChkaXJlY3RvcnlOYW1lLnZhbHVlKCksIE1vZHVsZU5hbWUoZmls
ZU5hbWUuaW1wbCgpKSk7CisgICAgaWYgKCFkaXJlY3RvcnlOYW1lLmlzVmFsaWQoKSkKKyAgICAg
ICAgcmV0dXJuIFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChmaWxlTmFtZSk7CisKKyAg
ICByZXR1cm4gVVJMKGRpcmVjdG9yeU5hbWUsIGZpbGVOYW1lKTsKIH0KIAogSlNJbnRlcm5hbFBy
b21pc2UqIEdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTTW9kdWxlTG9hZGVyKiwgSlNTdHJpbmcqIG1vZHVsZU5hbWVW
YWx1ZSwgSlNWYWx1ZSBwYXJhbWV0ZXJzLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdp
bikKQEAgLTgxMSwyMCArNzQ0LDIzIEBAIEpTSW50ZXJuYWxQcm9taXNlKiBHbG9iYWxPYmplY3Q6
Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgICAg
IHJldHVybiBwcm9taXNlOwogICAgIH07CiAKLSAgICBpZiAoc291cmNlT3JpZ2luLmlzTnVsbCgp
KQotICAgICAgICByZXR1cm4gcmVqZWN0KGNyZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgIkNvdWxk
IG5vdCByZXNvbHZlIHRoZSBtb2R1bGUgc3BlY2lmaWVyLiJfcykpOwotCi0gICAgYXV0byByZWZl
cnJlciA9IHNvdXJjZU9yaWdpbi5zdHJpbmcoKTsKLSAgICBhdXRvIG1vZHVsZU5hbWUgPSBtb2R1
bGVOYW1lVmFsdWUtPnZhbHVlKGdsb2JhbE9iamVjdCk7CisgICAgYXV0byByZWZlcnJlciA9IHNv
dXJjZU9yaWdpbi51cmwoKTsKKyAgICBhdXRvIHNwZWNpZmllciA9IG1vZHVsZU5hbWVWYWx1ZS0+
dmFsdWUoZ2xvYmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUs
IG51bGxwdHIpOwogICAgIGlmIChVTkxJS0VMWShjYXRjaFNjb3BlLmV4Y2VwdGlvbigpKSkKICAg
ICAgICAgcmV0dXJuIHJlamVjdChjYXRjaFNjb3BlLmV4Y2VwdGlvbigpLT52YWx1ZSgpKTsKIAot
ICAgIGF1dG8gZGlyZWN0b3J5TmFtZSA9IGV4dHJhY3REaXJlY3RvcnlOYW1lKHJlZmVycmVyLmlt
cGwoKSk7Ci0gICAgaWYgKCFkaXJlY3RvcnlOYW1lKQotICAgICAgICByZXR1cm4gcmVqZWN0KGNy
ZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgbWFrZVN0cmluZygiQ291bGQgbm90IHJlc29sdmUgdGhl
IHJlZmVycmVyIG5hbWUgJyIsIFN0cmluZyhyZWZlcnJlci5pbXBsKCkpLCAiJy4iKSkpOworICAg
IGlmICghcmVmZXJyZXIuaXNMb2NhbEZpbGUoKSkKKyAgICAgICAgcmV0dXJuIHJlamVjdChjcmVh
dGVFcnJvcihnbG9iYWxPYmplY3QsIG1ha2VTdHJpbmcoIkNvdWxkIG5vdCByZXNvbHZlIHRoZSBy
ZWZlcnJlcidzIHBhdGggJyIsIHJlZmVycmVyLnN0cmluZygpLCAiJywgd2hpbGUgdHJ5aW5nIHRv
IHJlc29sdmUgbW9kdWxlICciLCBzcGVjaWZpZXIsICInLiIpKSk7CisKKyAgICBpZiAoIXNwZWNp
Zmllci5zdGFydHNXaXRoKCcvJykgJiYgIXNwZWNpZmllci5zdGFydHNXaXRoKCIuLyIpICYmICFz
cGVjaWZpZXIuc3RhcnRzV2l0aCgiLi4vIikpCisgICAgICAgIHJldHVybiByZWplY3QoY3JlYXRl
VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgbWFrZVN0cmluZygiTW9kdWxlIHNwZWNpZmllciwgJyJf
cywgc3BlY2lmaWVyLCAiJyBkb2VzIG5vdCBzdGFydCB3aXRoIFwiL1wiLCBcIi4vXCIsIG9yIFwi
Li4vXCIuIFJlZmVyZW5jZWQgZnJvbTogIl9zLCByZWZlcnJlci5maWxlU3lzdGVtUGF0aCgpKSkp
OwogCi0gICAgYXV0byByZXN1bHQgPSBKU0M6OmltcG9ydE1vZHVsZShnbG9iYWxPYmplY3QsIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlc29sdmVQYXRoKGRpcmVjdG9yeU5hbWUudmFsdWUo
KSwgTW9kdWxlTmFtZShtb2R1bGVOYW1lKSkpLCBwYXJhbWV0ZXJzLCBqc1VuZGVmaW5lZCgpKTsK
KyAgICBVUkwgbW9kdWxlVVJMKHJlZmVycmVyLCBzcGVjaWZpZXIpOworICAgIGlmICghbW9kdWxl
VVJMLmlzTG9jYWxGaWxlKCkpCisgICAgICAgIHJldHVybiByZWplY3QoY3JlYXRlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBtYWtlU3RyaW5nKCJNb2R1bGUgdXJsLCAnIiwgbW9kdWxlVVJMLnN0cmluZygp
LCAiJyBkb2VzIG5vdCBtYXAgdG8gYSBsb2NhbCBmaWxlLiIpKSk7CisKKyAgICBhdXRvIHJlc3Vs
dCA9IEpTQzo6aW1wb3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgbW9kdWxlVVJMLnN0cmluZygpKSwgcGFyYW1ldGVycywganNVbmRlZmluZWQoKSk7CiAg
ICAgaWYgKFVOTElLRUxZKGNhdGNoU2NvcGUuZXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4g
cmVqZWN0KGNhdGNoU2NvcGUuZXhjZXB0aW9uKCktPnZhbHVlKCkpOwogICAgIHJldHVybiByZXN1
bHQ7CkBAIC04NDIsMzQgKzc3OCw0MSBAQCBJZGVudGlmaWVyIEdsb2JhbE9iamVjdDo6bW9kdWxl
TG9hZGVyUmVzb2x2ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU01vZAogICAgIGlm
IChrZXkuaXNTeW1ib2woKSkKICAgICAgICAgcmV0dXJuIGtleTsKIAotICAgIGlmIChyZWZlcnJl
clZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKLSAgICAgICAgYXV0byBkaXJlY3RvcnlOYW1lID0gY3Vy
cmVudFdvcmtpbmdEaXJlY3RvcnkoKTsKLSAgICAgICAgaWYgKCFkaXJlY3RvcnlOYW1lKSB7Ci0g
ICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVFcnJv
cihnbG9iYWxPYmplY3QsICJDb3VsZCBub3QgcmVzb2x2ZSB0aGUgY3VycmVudCB3b3JraW5nIGRp
cmVjdG9yeS4iX3MpKTsKKyAgICBhdXRvIHJlc29sdmVQYXRoID0gWyZdIChjb25zdCBVUkwmIGRp
cmVjdG9yeVVSTCkgLT4gSWRlbnRpZmllciB7CisgICAgICAgIFN0cmluZyBzcGVjaWZpZXIgPSBr
ZXkuaW1wbCgpOworICAgICAgICBpZiAoIXNwZWNpZmllci5zdGFydHNXaXRoKCcvJykgJiYgIXNw
ZWNpZmllci5zdGFydHNXaXRoKCIuLyIpICYmICFzcGVjaWZpZXIuc3RhcnRzV2l0aCgiLi4vIikp
IHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIG1ha2VT
dHJpbmcoIk1vZHVsZSBzcGVjaWZpZXIsICciX3MsIHNwZWNpZmllciwgIicgZG9lcyBub3Qgc3Rh
cnQgd2l0aCBcIi9cIiwgXCIuL1wiLCBvciBcIi4uL1wiLiBSZWZlcmVuY2VkIGZyb206ICJfcywg
ZGlyZWN0b3J5VVJMLmZpbGVTeXN0ZW1QYXRoKCkpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07
CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJl
c29sdmVQYXRoKGRpcmVjdG9yeU5hbWUudmFsdWUoKSwgTW9kdWxlTmFtZShrZXkuaW1wbCgpKSkp
OwotICAgIH0KIAotICAgIGNvbnN0IElkZW50aWZpZXIgcmVmZXJyZXIgPSByZWZlcnJlclZhbHVl
LnRvUHJvcGVydHlLZXkoZ2xvYmFsT2JqZWN0KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOworICAgICAgICBpZiAoIWRpcmVjdG9yeVVSTC5pc0xvY2FsRmlsZSgpKSB7Cisg
ICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVFcnJv
cihnbG9iYWxPYmplY3QsIG1ha2VTdHJpbmcoIkNvdWxkIG5vdCByZXNvbHZlIHRoZSByZWZlcnJl
cidzIHBhdGg6ICIsIGRpcmVjdG9yeVVSTC5zdHJpbmcoKSkpKTsKKyAgICAgICAgICAgIHJldHVy
biB7IH07CisgICAgICAgIH0KIAotICAgIGlmIChyZWZlcnJlci5pc1N5bWJvbCgpKSB7Ci0gICAg
ICAgIGF1dG8gZGlyZWN0b3J5TmFtZSA9IGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KCk7Ci0gICAg
ICAgIGlmICghZGlyZWN0b3J5TmFtZSkgewotICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xv
YmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IoZ2xvYmFsT2JqZWN0LCAiQ291bGQgbm90IHJl
c29sdmUgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuIl9zKSk7CisgICAgICAgIFVSTCBy
ZXNvbHZlZFVSTChkaXJlY3RvcnlVUkwsIHNwZWNpZmllcik7CisgICAgICAgIGlmICghcmVzb2x2
ZWRVUkwuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCBjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsIG1ha2VTdHJpbmcoIlJlc29sdmVk
IG1vZHVsZSB1cmwgaXMgbm90IHZhbGlkOiAiLCByZXNvbHZlZFVSTC5zdHJpbmcoKSkpKTsKICAg
ICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sIHJlc29sdmVQYXRoKGRpcmVjdG9yeU5hbWUudmFsdWUoKSwgTW9k
dWxlTmFtZShrZXkuaW1wbCgpKSkpOwotICAgIH0KKyAgICAgICAgQVNTRVJUKHJlc29sdmVkVVJM
LmlzTG9jYWxGaWxlKCkpOwogCi0gICAgLy8gSWYgdGhlIHJlZmVycmVyIGV4aXN0cywgd2UgYXNz
dW1lIHRoYXQgdGhlIHJlZmVycmVyIGlzIHRoZSBjb3JyZWN0IGFic29sdXRlIHBhdGguCi0gICAg
YXV0byBkaXJlY3RvcnlOYW1lID0gZXh0cmFjdERpcmVjdG9yeU5hbWUocmVmZXJyZXIuaW1wbCgp
KTsKLSAgICBpZiAoIWRpcmVjdG9yeU5hbWUpIHsKLSAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xv
YmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IoZ2xvYmFsT2JqZWN0LCBtYWtlU3RyaW5nKCJD
b3VsZCBub3QgcmVzb2x2ZSB0aGUgcmVmZXJyZXIgbmFtZSAnIiwgU3RyaW5nKHJlZmVycmVyLmlt
cGwoKSksICInLiIpKSk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotICAgIHJldHVybiBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZXNvbHZlUGF0aChkaXJlY3RvcnlOYW1lLnZhbHVl
KCksIE1vZHVsZU5hbWUoa2V5LmltcGwoKSkpKTsKKyAgICAgICAgcmV0dXJuIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sIHJlc29sdmVkVVJMLnN0cmluZygpKTsKKyAgICB9OworCisgICAgaWYg
KHJlZmVycmVyVmFsdWUuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgcmV0dXJuIHJlc29sdmVQYXRo
KGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KCkpOworCisgICAgY29uc3QgSWRlbnRpZmllciByZWZl
cnJlciA9IHJlZmVycmVyVmFsdWUudG9Qcm9wZXJ0eUtleShnbG9iYWxPYmplY3QpOworICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBpZiAocmVmZXJyZXIuaXNTeW1i
b2woKSkKKyAgICAgICAgcmV0dXJuIHJlc29sdmVQYXRoKGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5
KCkpOworCisgICAgLy8gSWYgdGhlIHJlZmVycmVyIGV4aXN0cywgd2UgYXNzdW1lIHRoYXQgdGhl
IHJlZmVycmVyIGlzIHRoZSBjb3JyZWN0IGZpbGUgdXJsLgorICAgIFVSTCB1cmwgPSBVUkwoeyB9
LCByZWZlcnJlci5pbXBsKCkpOworICAgIEFTU0VSVCh1cmwuaXNMb2NhbEZpbGUoKSk7CisgICAg
cmV0dXJuIHJlc29sdmVQYXRoKHVybCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3Rvcj4K
QEAgLTk1NCw5ICs4OTcsOSBAQCBzdGF0aWMgYm9vbCBmZXRjaFNjcmlwdEZyb21Mb2NhbEZpbGVT
eXN0ZW0oY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgVmVjdG9yPGNoYXI+JgogCiBjbGFzcyBTaGVs
bFNvdXJjZVByb3ZpZGVyIGZpbmFsIDogcHVibGljIFN0cmluZ1NvdXJjZVByb3ZpZGVyIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNoZWxsU291cmNlUHJvdmlkZXI+IGNyZWF0ZShjb25zdCBT
dHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVy
bCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92aWRlclNvdXJj
ZVR5cGUgc291cmNlVHlwZSkKKyAgICBzdGF0aWMgUmVmPFNoZWxsU291cmNlUHJvdmlkZXI+IGNy
ZWF0ZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmln
aW4sIFN0cmluZyYmIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9u
LCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNoZWxsU291cmNlUHJvdmlkZXIoc291cmNlLCBzb3VyY2VPcmln
aW4sIFdURk1vdmUodXJsKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGVsbFNvdXJjZVByb3ZpZGVyKHNvdXJjZSwgc291cmNlT3Jp
Z2luLCBXVEZNb3ZlKHNvdXJjZVVSTCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpKTsKICAg
ICB9CiAKICAgICB+U2hlbGxTb3VyY2VQcm92aWRlcigpIGZpbmFsCkBAIC0xMDM3LDcgKzk4MCw3
IEBAIHByaXZhdGU6CiAgICAgICAgIGlmICghY2FjaGVFbmFibGVkKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KG51bGxwdHIpOwogICAgICAgICBjb25zdCBj
aGFyKiBjYWNoZVBhdGggPSBPcHRpb25zOjpkaXNrQ2FjaGVQYXRoKCk7Ci0gICAgICAgIFN0cmlu
ZyBmaWxlbmFtZSA9IEZpbGVTeXN0ZW06OmVuY29kZUZvckZpbGVOYW1lKEZpbGVTeXN0ZW06Omxh
c3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1RyYWlsaW5nU2xhc2goc291cmNlT3JpZ2luKCkuc3Ry
aW5nKCkpKTsKKyAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gRmlsZVN5c3RlbTo6ZW5jb2RlRm9y
RmlsZU5hbWUoRmlsZVN5c3RlbTo6bGFzdENvbXBvbmVudE9mUGF0aElnbm9yaW5nVHJhaWxpbmdT
bGFzaChzb3VyY2VPcmlnaW4oKS51cmwoKS5maWxlU3lzdGVtUGF0aCgpKSk7CiAgICAgICAgIHJl
dHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY2FjaGVQYXRoLCBtYWtl
U3RyaW5nKHNvdXJjZSgpLnRvU3RyaW5nKCkuaGFzaCgpLCAnLScsIGZpbGVuYW1lLCAiLmJ5dGVj
b2RlLWNhY2hlIikpOwogICAgIH0KIApAQCAtMTA2Nyw4ICsxMDEwLDggQEAgcHJpdmF0ZToKICAg
ICAgICAgbV9jYWNoZWRCeXRlY29kZSA9IENhY2hlZEJ5dGVjb2RlOjpjcmVhdGUoV1RGTW92ZSht
YXBwZWRGaWxlRGF0YSkpOwogICAgIH0KIAotICAgIFNoZWxsU291cmNlUHJvdmlkZXIoY29uc3Qg
U3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1
cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgU291cmNlUHJvdmlkZXJTb3Vy
Y2VUeXBlIHNvdXJjZVR5cGUpCi0gICAgICAgIDogU3RyaW5nU291cmNlUHJvdmlkZXIoc291cmNl
LCBzb3VyY2VPcmlnaW4sIFdURk1vdmUodXJsKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkK
KyAgICBTaGVsbFNvdXJjZVByb3ZpZGVyKGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTb3Vy
Y2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nJiYgc291cmNlVVJMLCBjb25zdCBUZXh0UG9z
aXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBl
KQorICAgICAgICA6IFN0cmluZ1NvdXJjZVByb3ZpZGVyKHNvdXJjZSwgc291cmNlT3JpZ2luLCBX
VEZNb3ZlKHNvdXJjZVVSTCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpCiAgICAgewogICAg
IH0KIApAQCAtMTA4MSw5ICsxMDI0LDkgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFJlZlB0cjxD
YWNoZWRCeXRlY29kZT4gbV9jYWNoZWRCeXRlY29kZTsKIH07CiAKLXN0YXRpYyBpbmxpbmUgU291
cmNlQ29kZSBqc2NTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNvdXJjZU9yaWdp
biYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwgPSBVUkwoKSwgY29uc3QgVGV4dFBvc2l0aW9uJiBz
dGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBz
b3VyY2VUeXBlID0gU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtKQorc3RhdGljIGlu
bGluZSBTb3VyY2VDb2RlIGpzY1NvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291
cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0cmluZyBzb3VyY2VVUkwgPSBTdHJpbmcoKSwgY29u
c3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uKCksIFNvdXJjZVBy
b3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlID0gU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQ
cm9ncmFtKQogewotICAgIHJldHVybiBTb3VyY2VDb2RlKFNoZWxsU291cmNlUHJvdmlkZXI6OmNy
ZWF0ZShzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpLCBzdGFydFBvc2l0aW9uLCBz
b3VyY2VUeXBlKSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJbnQoKSwgc3RhcnRQb3Np
dGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKTsKKyAgICByZXR1cm4gU291cmNlQ29kZShTaGVs
bFNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUoc291
cmNlVVJMKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSksIHN0YXJ0UG9zaXRpb24ubV9saW5l
Lm9uZUJhc2VkSW50KCksIHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSk7CiB9
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3Rvcj4KQEAgLTEwOTEsMTMgKzEwMzQsMTMgQEAgc3Rh
dGljIGlubGluZSBTb3VyY2VDb2RlIGpzY1NvdXJjZShjb25zdCBWZWN0b3ImIHV0ZjgsIGNvbnN0
IFNvdXJjZU9yaWdpbiYgc291cmMKIHsKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgdXNlIGFu
IGFic29sdXRlIGZpbGUgVVJMIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTMwNzcKICAgICBTdHJpbmcgc3RyID0gc3RyaW5nRnJvbVVURih1dGY4KTsKLSAgICByZXR1
cm4ganNjU291cmNlKHN0ciwgc291cmNlT3JpZ2luLCBVUkwoeyB9LCBmaWxlbmFtZSkpOworICAg
IHJldHVybiBqc2NTb3VyY2Uoc3RyLCBzb3VyY2VPcmlnaW4sIGZpbGVuYW1lKTsKIH0KIAogdGVt
cGxhdGU8dHlwZW5hbWUgVmVjdG9yPgotc3RhdGljIGJvb2wgZmV0Y2hNb2R1bGVGcm9tTG9jYWxG
aWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIFZlY3RvciYgYnVmZmVyKQorc3RhdGlj
IGJvb2wgZmV0Y2hNb2R1bGVGcm9tTG9jYWxGaWxlU3lzdGVtKGNvbnN0IFVSTCYgZmlsZVVSTCwg
VmVjdG9yJiBidWZmZXIpCiB7Ci0gICAgLy8gV2UgYXNzdW1lIHRoYXQgZmlsZU5hbWUgaXMgYWx3
YXlzIGFuIGFic29sdXRlIHBhdGguCisgICAgU3RyaW5nIGZpbGVOYW1lID0gZmlsZVVSTC5maWxl
U3lzdGVtUGF0aCgpOwogI2lmIE9TKFdJTkRPV1MpCiAgICAgLy8gaHR0cHM6Ly9tc2RuLm1pY3Jv
c29mdC5jb20vZW4tdXMvbGlicmFyeS93aW5kb3dzL2Rlc2t0b3AvYWEzNjUyNDcuYXNweCNtYXhw
YXRoCiAgICAgLy8gVXNlIGxvbmcgVU5DIHRvIHBhc3MgdGhlIGxvbmcgcGF0aCBuYW1lIHRvIHRo
ZSBXaW5kb3dzIEFQSXMuCkBAIC0xMTQ5LDE4ICsxMDkyLDIwIEBAIEpTSW50ZXJuYWxQcm9taXNl
KiBHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckZldGNoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsCiAgICAgaWYgKFVOTElLRUxZKGNhdGNoU2NvcGUuZXhjZXB0aW9uKCkpKQogICAgICAg
ICByZXR1cm4gcmVqZWN0KGNhdGNoU2NvcGUuZXhjZXB0aW9uKCktPnZhbHVlKCkpOwogCi0gICAg
Ly8gSGVyZSwgbm93IHdlIGNvbnNpZGVyIG1vZHVsZUtleSBhcyB0aGUgZmlsZU5hbWUuCisgICAg
VVJMIG1vZHVsZVVSTCh7IH0sIG1vZHVsZUtleSk7CisgICAgQVNTRVJUKG1vZHVsZVVSTC5pc0xv
Y2FsRmlsZSgpKTsKKyAgICAvLyBTdHJpcCB0aGUgVVJJIGZyb20gb3VyIGtleSBzbyBFcnJvcnMg
cHJpbnQgY2Fub25pY2FsIHN5c3RlbSBwYXRocy4KKyAgICBtb2R1bGVLZXkgPSBtb2R1bGVVUkwu
ZmlsZVN5c3RlbVBhdGgoKTsKKwogICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXI7Ci0gICAgaWYg
KCFmZXRjaE1vZHVsZUZyb21Mb2NhbEZpbGVTeXN0ZW0obW9kdWxlS2V5LCBidWZmZXIpKQorICAg
IGlmICghZmV0Y2hNb2R1bGVGcm9tTG9jYWxGaWxlU3lzdGVtKG1vZHVsZVVSTCwgYnVmZmVyKSkK
ICAgICAgICAgcmV0dXJuIHJlamVjdChjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsIG1ha2VTdHJp
bmcoIkNvdWxkIG5vdCBvcGVuIGZpbGUgJyIsIG1vZHVsZUtleSwgIicuIikpKTsKIAotCi0gICAg
VVJMIG1vZHVsZVVSTCA9IFVSTCh7IH0sIG1vZHVsZUtleSk7CiAjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQogICAgIC8vIEZpbGVTeXN0ZW0gZG9lcyBub3QgaGF2ZSBtaW1lLXR5cGUgaGVhZGVyLiBU
aGUgSlNDIHNoZWxsIHJlY29nbml6ZXMgV2ViQXNzZW1ibHkncyBtYWdpYyBoZWFkZXIuCiAgICAg
aWYgKGJ1ZmZlci5zaXplKCkgPj0gNCkgewogICAgICAgICBpZiAoYnVmZmVyWzBdID09ICdcMCcg
JiYgYnVmZmVyWzFdID09ICdhJyAmJiBidWZmZXJbMl0gPT0gJ3MnICYmIGJ1ZmZlclszXSA9PSAn
bScpIHsKLSAgICAgICAgICAgIGF1dG8gc291cmNlID0gU291cmNlQ29kZShXZWJBc3NlbWJseVNv
dXJjZVByb3ZpZGVyOjpjcmVhdGUoV1RGTW92ZShidWZmZXIpLCBTb3VyY2VPcmlnaW4geyBtb2R1
bGVLZXkgfSwgV1RGTW92ZShtb2R1bGVVUkwpKSk7CisgICAgICAgICAgICBhdXRvIHNvdXJjZSA9
IFNvdXJjZUNvZGUoV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKFdURk1vdmUoYnVm
ZmVyKSwgU291cmNlT3JpZ2luIHsgbW9kdWxlVVJMIH0sIFdURk1vdmUobW9kdWxlS2V5KSkpOwog
ICAgICAgICAgICAgY2F0Y2hTY29wZS5yZWxlYXNlQXNzZXJ0Tm9FeGNlcHRpb24oKTsKICAgICAg
ICAgICAgIGF1dG8gc291cmNlQ29kZSA9IEpTU291cmNlQ29kZTo6Y3JlYXRlKHZtLCBXVEZNb3Zl
KHNvdXJjZSkpOwogICAgICAgICAgICAgY2F0Y2hTY29wZS5yZWxlYXNlQXNzZXJ0Tm9FeGNlcHRp
b24oKTsKQEAgLTExNzEsNyArMTExNiw3IEBAIEpTSW50ZXJuYWxQcm9taXNlKiBHbG9iYWxPYmpl
Y3Q6Om1vZHVsZUxvYWRlckZldGNoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAg
fQogI2VuZGlmCiAKLSAgICBhdXRvIHNvdXJjZUNvZGUgPSBKU1NvdXJjZUNvZGU6OmNyZWF0ZSh2
bSwganNjU291cmNlKHN0cmluZ0Zyb21VVEYoYnVmZmVyKSwgU291cmNlT3JpZ2luIHsgbW9kdWxl
S2V5IH0sIFdURk1vdmUobW9kdWxlVVJMKSwgVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVy
U291cmNlVHlwZTo6TW9kdWxlKSk7CisgICAgYXV0byBzb3VyY2VDb2RlID0gSlNTb3VyY2VDb2Rl
OjpjcmVhdGUodm0sIGpzY1NvdXJjZShzdHJpbmdGcm9tVVRGKGJ1ZmZlciksIFNvdXJjZU9yaWdp
biB7IG1vZHVsZVVSTCB9LCBXVEZNb3ZlKG1vZHVsZUtleSksIFRleHRQb3NpdGlvbigpLCBTb3Vy
Y2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSkpOwogICAgIGNhdGNoU2NvcGUucmVsZWFzZUFz
c2VydE5vRXhjZXB0aW9uKCk7CiAgICAgcHJvbWlzZS0+cmVzb2x2ZShnbG9iYWxPYmplY3QsIHNv
dXJjZUNvZGUpOwogICAgIGNhdGNoU2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKQEAgLTE1MTUsMTQg
KzE0NjAsMjUgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkxvYWQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW0KICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
CisgICAgYm9vbCBjYWxsZXJSZWxhdGl2ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMSkuZ2V0U3Ry
aW5nKGdsb2JhbE9iamVjdCkgPT0gImNhbGxlciByZWxhdGl2ZSJfczsKKyAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKwogICAgIFN0cmluZyBmaWxlTmFt
ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKworICAgIFVS
TCBwYXRoOworICAgIGlmIChjYWxsZXJSZWxhdGl2ZSkgeworICAgICAgICBwYXRoID0gVVJMKGNh
bGxGcmFtZS0+Y2FsbGVyU291cmNlT3JpZ2luKHZtKS51cmwoKSwgZmlsZU5hbWUpOworICAgICAg
ICBpZiAoIXBhdGguaXNMb2NhbEZpbGUoKSkKKyAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNRXhj
ZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVVSSUVycm9yKGdsb2JhbE9iamVjdCwg
bWFrZVN0cmluZygiY2FsbGVyIHJlbGF0aXZlIFVSTCBwYXRoIGlzIG5vdCBhIGxvY2FsIGZpbGU6
ICIsIHBhdGguc3RyaW5nKCkpKSk7CisgICAgfSBlbHNlCisgICAgICAgIHBhdGggPSBhYnNvbHV0
ZVBhdGgoZmlsZU5hbWUpOwogICAgIFZlY3RvcjxjaGFyPiBzY3JpcHQ7Ci0gICAgaWYgKCFmZXRj
aFNjcmlwdEZyb21Mb2NhbEZpbGVTeXN0ZW0oZmlsZU5hbWUsIHNjcmlwdCkpCisgICAgaWYgKCFm
ZXRjaFNjcmlwdEZyb21Mb2NhbEZpbGVTeXN0ZW0ocGF0aC5maWxlU3lzdGVtUGF0aCgpLCBzY3Jp
cHQpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXhjZXB0aW9uKGdsb2Jh
bE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgIkNvdWxkIG5vdCBvcGVu
IGZpbGUuIl9zKSkpOwogCiAgICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBldmFsdWF0aW9uRXhjZXB0
aW9uOwotICAgIEpTVmFsdWUgcmVzdWx0ID0gZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBqc2NTb3Vy
Y2Uoc2NyaXB0LCBTb3VyY2VPcmlnaW4geyBhYnNvbHV0ZVBhdGgoZmlsZU5hbWUpIH0sIGZpbGVO
YW1lKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKKyAgICBKU1ZhbHVlIHJlc3Vs
dCA9IGV2YWx1YXRlKGdsb2JhbE9iamVjdCwganNjU291cmNlKHNjcmlwdCwgU291cmNlT3JpZ2lu
IHsgcGF0aCB9LCBmaWxlTmFtZSksIEpTVmFsdWUoKSwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7CiAg
ICAgaWYgKGV2YWx1YXRpb25FeGNlcHRpb24pCiAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2Jh
bE9iamVjdCwgc2NvcGUsIGV2YWx1YXRpb25FeGNlcHRpb24pOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKQEAgLTE2NDgsNyArMTYwNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25DYWxsZXJTb3VyY2VPcmlnaW4oSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIFNvdXJjZU9y
aWdpbiBzb3VyY2VPcmlnaW4gPSBjYWxsRnJhbWUtPmNhbGxlclNvdXJjZU9yaWdpbih2bSk7Ci0g
ICAgaWYgKHNvdXJjZU9yaWdpbi5pc051bGwoKSkKKyAgICBpZiAoc291cmNlT3JpZ2luLnVybCgp
LmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKHZtLCBzb3VyY2VPcmlnaW4uc3RyaW5n
KCkpKTsKIH0KQEAgLTE5MTIsNyArMTg2OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBOYWtlZFB0cjxFeGNlcHRp
b24+IGV2YWx1YXRpb25FeGNlcHRpb247CiAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWUgcmVz
dWx0OwotICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBldmFsdWF0ZShnbG9iYWxPYmplY3Qs
IGpzY1NvdXJjZShzb3VyY2VDb2RlLCBTb3VyY2VPcmlnaW4oIndvcmtlciJfcykpLCBKU1ZhbHVl
KCksIGV2YWx1YXRpb25FeGNlcHRpb24pOworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBl
dmFsdWF0ZShnbG9iYWxPYmplY3QsIGpzY1NvdXJjZShzb3VyY2VDb2RlLCBTb3VyY2VPcmlnaW4o
VVJMKHsgfSwgIndvcmtlciJfcykpKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsK
ICAgICAgICAgICAgICAgICAgICAgaWYgKGV2YWx1YXRpb25FeGNlcHRpb24pCiAgICAgICAgICAg
ICAgICAgICAgICAgICByZXN1bHQgPSBldmFsdWF0aW9uRXhjZXB0aW9uLT52YWx1ZSgpOwogICAg
ICAgICAgICAgICAgICAgICBjaGVja0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHRydWUsIGV2YWx1
YXRpb25FeGNlcHRpb24sIHJlc3VsdCwgY29tbWFuZExpbmUsIHN1Y2Nlc3MpOwpAQCAtMjMzNiw3
ICsyMjkyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNoZWNrTW9k
dWxlU3ludGF4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICBzdG9wV2F0Y2guc3RhcnQo
KTsKIAogICAgIFBhcnNlckVycm9yIGVycm9yOwotICAgIGJvb2wgdmFsaWRTeW50YXggPSBjaGVj
a01vZHVsZVN5bnRheChnbG9iYWxPYmplY3QsIGpzY1NvdXJjZShzb3VyY2UsIHsgfSwgVVJMKCks
IFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSksIGVycm9y
KTsKKyAgICBib29sIHZhbGlkU3ludGF4ID0gY2hlY2tNb2R1bGVTeW50YXgoZ2xvYmFsT2JqZWN0
LCBqc2NTb3VyY2Uoc291cmNlLCB7IH0sIFN0cmluZygpLCBUZXh0UG9zaXRpb24oKSwgU291cmNl
UHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUpLCBlcnJvcik7CiAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgc3RvcFdhdGNoLnN0b3AoKTsKIApA
QCAtMjc5Niw2ICsyNzUyLDggQEAgc3RhdGljIHZvaWQgcnVuV2l0aE9wdGlvbnMoR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENvbW1hbmRMaW5lJiBvcHRpb25zLCBib28KICAgICAgICAgICAg
ICAgICBzY3JpcHRCdWZmZXIuYXBwZW5kKCJcInVzZSBzdHJpY3RcIjtcbiIsIHN0cmxlbigiXCJ1
c2Ugc3RyaWN0XCI7XG4iKSk7CiAKICAgICAgICAgICAgIGlmIChpc01vZHVsZSkgeworICAgICAg
ICAgICAgICAgIC8vIElmIHRoZSBwYXNzZWQgZmlsZSBpc24ndCBhbiBhYnNvbHV0ZSBwYXRoIGFw
cGVuZCAiLi8iIHNvIHRoZSBtb2R1bGUgbG9hZGVyIGRvZXNuJ3QgdGhpbmsgdGhpcyBpcyBhIGJh
cmUtbmFtZSBzcGVjaWZpZXIuCisgICAgICAgICAgICAgICAgZmlsZU5hbWUgPSBmaWxlTmFtZS5z
dGFydHNXaXRoKCcvJykgPyBmaWxlTmFtZSA6IG1ha2VTdHJpbmcoIi4vIiwgZmlsZU5hbWUpOwog
ICAgICAgICAgICAgICAgIHByb21pc2UgPSBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoZ2xvYmFsT2Jq
ZWN0LCBmaWxlTmFtZSwganNVbmRlZmluZWQoKSwganNVbmRlZmluZWQoKSk7CiAgICAgICAgICAg
ICAgICAgc2NvcGUucmVsZWFzZUFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgICAgICAgICB9IGVs
c2UgewpAQCAtMjgxMiwxMCArMjc3MCwxMSBAQCBzdGF0aWMgdm9pZCBydW5XaXRoT3B0aW9ucyhH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29tbWFuZExpbmUmIG9wdGlvbnMsIGJvbwogICAg
ICAgICB9CiAKICAgICAgICAgYm9vbCBpc0xhc3RGaWxlID0gaSA9PSBzY3JpcHRzLnNpemUoKSAt
IDE7CisgICAgICAgIFNvdXJjZU9yaWdpbiBzb3VyY2VPcmlnaW4geyBhYnNvbHV0ZVBhdGgoZmls
ZU5hbWUpIH07CiAgICAgICAgIGlmIChpc01vZHVsZSkgewogICAgICAgICAgICAgaWYgKCFwcm9t
aXNlKSB7CiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHVzZSBhbiBhYnNv
bHV0ZSBmaWxlIFVSTCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkz
MDc3Ci0gICAgICAgICAgICAgICAgcHJvbWlzZSA9IGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShnbG9i
YWxPYmplY3QsIGpzY1NvdXJjZShzdHJpbmdGcm9tVVRGKHNjcmlwdEJ1ZmZlciksIFNvdXJjZU9y
aWdpbiB7IGFic29sdXRlUGF0aChmaWxlTmFtZSkgfSwgVVJMKHsgfSwgZmlsZU5hbWUpLCBUZXh0
UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUpLCBqc1VuZGVmaW5l
ZCgpKTsKKyAgICAgICAgICAgICAgICBwcm9taXNlID0gbG9hZEFuZEV2YWx1YXRlTW9kdWxlKGds
b2JhbE9iamVjdCwganNjU291cmNlKHN0cmluZ0Zyb21VVEYoc2NyaXB0QnVmZmVyKSwgc291cmNl
T3JpZ2luLCBmaWxlTmFtZSwgVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlw
ZTo6TW9kdWxlKSwganNVbmRlZmluZWQoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBz
Y29wZS5jbGVhckV4Y2VwdGlvbigpOwogCkBAIC0yODM0LDcgKzI3OTMsNyBAQCBzdGF0aWMgdm9p
ZCBydW5XaXRoT3B0aW9ucyhHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29tbWFuZExpbmUm
IG9wdGlvbnMsIGJvbwogICAgICAgICAgICAgdm0uZHJhaW5NaWNyb3Rhc2tzKCk7CiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV2YWx1YXRpb25FeGNl
cHRpb247Ci0gICAgICAgICAgICBKU1ZhbHVlIHJldHVyblZhbHVlID0gZXZhbHVhdGUoZ2xvYmFs
T2JqZWN0LCBqc2NTb3VyY2Uoc2NyaXB0QnVmZmVyLCBTb3VyY2VPcmlnaW4geyBhYnNvbHV0ZVBh
dGgoZmlsZU5hbWUpIH0sIGZpbGVOYW1lKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9u
KTsKKyAgICAgICAgICAgIEpTVmFsdWUgcmV0dXJuVmFsdWUgPSBldmFsdWF0ZShnbG9iYWxPYmpl
Y3QsIGpzY1NvdXJjZShzY3JpcHRCdWZmZXIsIHNvdXJjZU9yaWdpbiAsIGZpbGVOYW1lKSwgSlNW
YWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKICAgICAgICAgICAgIHNjb3BlLmFzc2VydE5v
RXhjZXB0aW9uKCk7CiAgICAgICAgICAgICBpZiAoZXZhbHVhdGlvbkV4Y2VwdGlvbikKICAgICAg
ICAgICAgICAgICByZXR1cm5WYWx1ZSA9IGV2YWx1YXRpb25FeGNlcHRpb24tPnZhbHVlKCk7CkBA
IC0yODU3LDEwICsyODE2LDEwIEBAIHN0YXRpYyB2b2lkIHJ1bkludGVyYWN0aXZlKEdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KQogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAKLSAgICBPcHRpb25hbDxE
aXJlY3RvcnlOYW1lPiBkaXJlY3RvcnlOYW1lID0gY3VycmVudFdvcmtpbmdEaXJlY3RvcnkoKTsK
LSAgICBpZiAoIWRpcmVjdG9yeU5hbWUpCisgICAgVVJMIGRpcmVjdG9yeU5hbWUgPSBjdXJyZW50
V29ya2luZ0RpcmVjdG9yeSgpOworICAgIGlmICghZGlyZWN0b3J5TmFtZS5pc1ZhbGlkKCkpCiAg
ICAgICAgIHJldHVybjsKLSAgICBTb3VyY2VPcmlnaW4gc291cmNlT3JpZ2luKHJlc29sdmVQYXRo
KGRpcmVjdG9yeU5hbWUudmFsdWUoKSwgTW9kdWxlTmFtZSgiaW50ZXJwcmV0ZXIiKSkpOworICAg
IFNvdXJjZU9yaWdpbiBzb3VyY2VPcmlnaW4oVVJMKGRpcmVjdG9yeU5hbWUsICIuL2ludGVycHJl
dGVyIl9zKSk7CiAgICAgCiAgICAgYm9vbCBzaG91bGRRdWl0ID0gZmFsc2U7CiAgICAgd2hpbGUg
KCFzaG91bGRRdWl0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggNzEw
MTVjYmU5MWM1ZGQ1OWFkYzM4NGRmZDkyYWI0ZGFlNWQ3YzEzZC4uOWEyZWZjYWQyODZhMzI3MzBj
NzU4YWMyNjI1YTEzODExYTc0YjA1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMu
aApAQCAtMTg1OCw3ICsxODU4LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFNjb3BlTm9k
ZShQYXJzZXJBcmVuYSYsIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgc3RhcnQsIGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYgZW5kLCBjb25zdCBTb3VyY2VDb2RlJiwgU291cmNlRWxlbWVudHMqLCBWYXJp
YWJsZUVudmlyb25tZW50JiwgRnVuY3Rpb25TdGFjayYmLCBWYXJpYWJsZUVudmlyb25tZW50Jiwg
VW5pcXVlZFN0cmluZ0ltcGxQdHJTZXQmJiwgQ29kZUZlYXR1cmVzLCBJbm5lckFycm93RnVuY3Rp
b25Db2RlRmVhdHVyZXMsIGludCBudW1Db25zdGFudHMpOwogCiAgICAgICAgIGNvbnN0IFNvdXJj
ZUNvZGUmIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9Ci0gICAgICAgIGNvbnN0
IFN0cmluZyYgc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UucHJvdmlkZXIoKS0+
dXJsKCkuc3RyaW5nKCk7IH0KICAgICAgICAgaW50cHRyX3Qgc291cmNlSUQoKSBjb25zdCB7IHJl
dHVybiBtX3NvdXJjZS5wcm92aWRlcklEKCk7IH0KIAogICAgICAgICBpbnQgc3RhcnRMaW5lKCkg
Y29uc3QgeyByZXR1cm4gbV9zdGFydExpbmVOdW1iZXI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Tb3VyY2VDb2RlLmgKaW5kZXggYWFkMjg3ZGRlODc3MWI3OWIxODYwYzVlZDRiOTcw
ODFlYWYyYmY5Ni4uOTkyZDg5YTIxMDNkZTM2YzBmZGQ2NzVhNTNmZjhiMTMxMGMwMWYzNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlLmgKQEAgLTk2LDkgKzk2LDkg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE9yZGluYWxOdW1iZXIgbV9zdGFydENvbHVtbjsK
ICAgICB9OwogCi0gICAgaW5saW5lIFNvdXJjZUNvZGUgbWFrZVNvdXJjZShjb25zdCBTdHJpbmcm
IHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVybCA9IFVS
TCgpLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRpb24oKSwg
U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUgPSBTb3VyY2VQcm92aWRlclNvdXJj
ZVR5cGU6OlByb2dyYW0pCisgICAgaW5saW5lIFNvdXJjZUNvZGUgbWFrZVNvdXJjZShjb25zdCBT
dHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0cmluZyBm
aWxlbmFtZSA9IFN0cmluZygpLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24gPSBU
ZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUgPSBTb3Vy
Y2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pCiAgICAgewotICAgICAgICByZXR1cm4gU291
cmNlQ29kZShTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgc291cmNlT3JpZ2lu
LCBXVEZNb3ZlKHVybCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpLCBzdGFydFBvc2l0aW9u
Lm1fbGluZS5vbmVCYXNlZEludCgpLCBzdGFydFBvc2l0aW9uLm1fY29sdW1uLm9uZUJhc2VkSW50
KCkpOworICAgICAgICByZXR1cm4gU291cmNlQ29kZShTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3Jl
YXRlKHNvdXJjZSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKGZpbGVuYW1lKSwgc3RhcnRQb3NpdGlv
biwgc291cmNlVHlwZSksIHN0YXJ0UG9zaXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCksIHN0YXJ0
UG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSk7CiAgICAgfQogICAgIAogICAgIGlubGlu
ZSBTb3VyY2VDb2RlIFNvdXJjZUNvZGU6OnN1YkV4cHJlc3Npb24odW5zaWduZWQgb3BlbkJyYWNl
LCB1bnNpZ25lZCBjbG9zZUJyYWNlLCBpbnQgZmlyc3RMaW5lLCBpbnQgc3RhcnRDb2x1bW4pIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGVL
ZXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZUtleS5oCmluZGV4
IDY3OGFlOWQ3ZDM2YjcwNWU1MDk5YWRiNzVkOTZkMDU1YzY1MDRkMzMuLjY0MjMyNzBkOGFlMDkx
YTczMDFjYThjODUzNTkwYjhhMzdiY2E0NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvU291cmNlQ29kZUtleS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvU291cmNlQ29kZUtleS5oCkBAIC0xMDYsNyArMTA2LDcgQEAgcHVibGljOgogICAgIC8v
IHByb3ZpZGVycyBjYWNoZSB0aGVpciBzdHJpbmdzIHRvIG1ha2UgdGhpcyBlZmZpY2llbnQuCiAg
ICAgU3RyaW5nVmlldyBzdHJpbmcoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUNvZGUudmlldygp
OyB9CiAKLSAgICBTdHJpbmdWaWV3IGhvc3QoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUNvZGUu
cHJvdmlkZXIoKS51cmwoKS5ob3N0KCk7IH0KKyAgICBTdHJpbmdWaWV3IGhvc3QoKSBjb25zdCB7
IHJldHVybiBtX3NvdXJjZUNvZGUucHJvdmlkZXIoKS5zb3VyY2VPcmlnaW4oKS51cmwoKS5ob3N0
KCk7IH0KIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTb3VyY2VDb2RlS2V5JiBvdGhlcikg
Y29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Nv
dXJjZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJv
dmlkZXIuY3BwCmluZGV4IGMxNDE2ZjE0OTViNjgzYWY5NWU3NzU4ZWMyYTFhMDMxN2U1ZWI4YjAu
LjAzZTU1ZWUzZDFmZjIwMjU4NmFmMmJlYThkNzkxZDUxNTNhMTg3YjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwCkBAIC0zMiwxMCArMzIs
MTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIERFRklORV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5U
SUZJRVIoU3RyaW5nU291cmNlUHJvdmlkZXIpOwogCi1Tb3VyY2VQcm92aWRlcjo6U291cmNlUHJv
dmlkZXIoY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVybCwgY29uc3Qg
VGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291
cmNlVHlwZSkKK1NvdXJjZVByb3ZpZGVyOjpTb3VyY2VQcm92aWRlcihjb25zdCBTb3VyY2VPcmln
aW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nJiYgc291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRpb24m
IHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlKQogICAg
IDogbV9zb3VyY2VUeXBlKHNvdXJjZVR5cGUpCi0gICAgLCBtX3VybChXVEZNb3ZlKHVybCkpCiAg
ICAgLCBtX3NvdXJjZU9yaWdpbihzb3VyY2VPcmlnaW4pCisgICAgLCBtX3NvdXJjZVVSTChXVEZN
b3ZlKHNvdXJjZVVSTCkpCiAgICAgLCBtX3N0YXJ0UG9zaXRpb24oc3RhcnRQb3NpdGlvbikKIHsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlk
ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaAppbmRl
eCBiNjJmMzkzMmMyMTMyMjk5NjY5ZTJkMDUyOTk3ZjcyNWI3NjAwM2MwLi4xMjllZTVjNDllMjQ3
YWZjZDlmMDhkNTllZmU5ZmIxMjhmOWFiYmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiQ29k
ZVNwZWNpYWxpemF0aW9uS2luZC5oIgogI2luY2x1ZGUgIlNvdXJjZU9yaWdpbi5oIgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CkBAIC01NCw3ICs1Myw3IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7CiAgICAg
cHVibGljOgogICAgICAgICBzdGF0aWMgY29uc3QgaW50cHRyX3QgbnVsbElEID0gMTsKICAgICAg
ICAgCi0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIFNvdXJjZVByb3ZpZGVyKGNvbnN0IFNvdXJj
ZU9yaWdpbiYsIFVSTCYmLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJj
ZVByb3ZpZGVyU291cmNlVHlwZSk7CisgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIFNvdXJjZVBy
b3ZpZGVyKGNvbnN0IFNvdXJjZU9yaWdpbiYsIFN0cmluZyYmIHNvdXJjZVVSTCwgY29uc3QgVGV4
dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUpOwogCiAg
ICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgflNvdXJjZVByb3ZpZGVyKCk7CiAKQEAg
LTcxLDcgKzcwLDkgQEAgY2xhc3MgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jazsKICAgICAgICAg
fQogCiAgICAgICAgIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luKCkgY29uc3QgeyBy
ZXR1cm4gbV9zb3VyY2VPcmlnaW47IH0KLSAgICAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7
IHJldHVybiBtX3VybDsgfQorCisgICAgICAgIC8vIFRoaXMgaXMgTk9UIHRoZSBwYXRoIHRoYXQg
c2hvdWxkIGJlIHVzZWQgZm9yIGNvbXB1dGluZyByZWxhdGl2ZSBwYXRocyBmcm9tIGEgc2NyaXB0
LiBVc2UgU291cmNlT3JpZ2luJ3MgVVJMIGZvciB0aGF0LCB0aGUgdmFsdWVzIG1heSBvciBtYXkg
bm90IGJlIHRoZSBzYW1lLi4uCisgICAgICAgIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKCkgY29u
c3QgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0KICAgICAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkxEaXJlY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVVSTERpcmVjdGl2ZTsgfQogICAg
ICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmUoKSBjb25zdCB7IHJl
dHVybiBtX3NvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmU7IH0KIApAQCAtOTIsOCArOTMsOCBAQCBj
bGFzcyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOwogICAgICAgICBKU19FWFBPUlRfUFJJVkFU
RSB2b2lkIGdldElEKCk7CiAKICAgICAgICAgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIG1fc291
cmNlVHlwZTsKLSAgICAgICAgVVJMIG1fdXJsOwogICAgICAgICBTb3VyY2VPcmlnaW4gbV9zb3Vy
Y2VPcmlnaW47CisgICAgICAgIFN0cmluZyBtX3NvdXJjZVVSTDsKICAgICAgICAgU3RyaW5nIG1f
c291cmNlVVJMRGlyZWN0aXZlOwogICAgICAgICBTdHJpbmcgbV9zb3VyY2VNYXBwaW5nVVJMRGly
ZWN0aXZlOwogICAgICAgICBUZXh0UG9zaXRpb24gbV9zdGFydFBvc2l0aW9uOwpAQCAtMTA0LDkg
KzEwNSw5IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7CiAgICAgY2xhc3MgU3Ry
aW5nU291cmNlUHJvdmlkZXIgOiBwdWJsaWMgU291cmNlUHJvdmlkZXIgewogICAgICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRF9XSVRIX0hFQVBfSURFTlRJRklFUihTdHJpbmdTb3VyY2VQcm92
aWRlcik7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPFN0cmluZ1NvdXJjZVByb3Zp
ZGVyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291
cmNlT3JpZ2luLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiA9
IFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSA9IFNv
dXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSkKKyAgICAgICAgc3RhdGljIFJlZjxTdHJp
bmdTb3VyY2VQcm92aWRlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTb3Vy
Y2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0
aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNl
VHlwZSBzb3VyY2VUeXBlID0gU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtKQogICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdHJpbmdTb3VyY2VQcm92
aWRlcihzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpLCBzdGFydFBvc2l0aW9uLCBz
b3VyY2VUeXBlKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdHJpbmdTb3Vy
Y2VQcm92aWRlcihzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZShzb3VyY2VVUkwpLCBzdGFy
dFBvc2l0aW9uLCBzb3VyY2VUeXBlKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHVu
c2lnbmVkIGhhc2goKSBjb25zdCBvdmVycmlkZQpAQCAtMTIwLDggKzEyMSw4IEBAIGNsYXNzIFVu
bGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKLSAg
ICAgICAgU3RyaW5nU291cmNlUHJvdmlkZXIoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNv
dXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYg
c3RhcnRQb3NpdGlvbiwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUpCi0gICAg
ICAgICAgICA6IFNvdXJjZVByb3ZpZGVyKHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpLCBzdGFy
dFBvc2l0aW9uLCBzb3VyY2VUeXBlKQorICAgICAgICBTdHJpbmdTb3VyY2VQcm92aWRlcihjb25z
dCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0cmlu
ZyYmIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQ
cm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSkKKyAgICAgICAgICAgIDogU291cmNlUHJvdmlk
ZXIoc291cmNlT3JpZ2luLCBXVEZNb3ZlKHNvdXJjZVVSTCksIHN0YXJ0UG9zaXRpb24sIHNvdXJj
ZVR5cGUpCiAgICAgICAgICAgICAsIG1fc291cmNlKHNvdXJjZS5pc051bGwoKSA/ICpTdHJpbmdJ
bXBsOjplbXB0eSgpIDogKnNvdXJjZS5pbXBsKCkpCiAgICAgICAgIHsKICAgICAgICAgfQpAQCAt
MTMzLDkgKzEzNCw5IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7CiAjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZKQogICAgIGNsYXNzIFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIgZmlu
YWwgOiBwdWJsaWMgU291cmNlUHJvdmlkZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGlj
IFJlZjxXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyPiBjcmVhdGUoVmVjdG9yPHVpbnQ4X3Q+JiYg
ZGF0YSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVybCkKKyAgICAg
ICAgc3RhdGljIFJlZjxXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyPiBjcmVhdGUoVmVjdG9yPHVp
bnQ4X3Q+JiYgZGF0YSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0cmluZyBz
b3VyY2VVUkwpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YkFzc2VtYmx5U291cmNlUHJvdmlkZXIoV1RGTW92ZShkYXRhKSwgc291cmNlT3JpZ2luLCBXVEZN
b3ZlKHVybCkpKTsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkFzc2VtYmx5
U291cmNlUHJvdmlkZXIoV1RGTW92ZShkYXRhKSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKHNvdXJj
ZVVSTCkpKTsKICAgICAgICAgfQogCiAgICAgICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdCBmaW5h
bApAQCAtMTU0LDggKzE1NSw4IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7CiAg
ICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFdlYkFzc2VtYmx5U291cmNlUHJvdmlk
ZXIoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmln
aW4sIFVSTCYmIHVybCkKLSAgICAgICAgICAgIDogU291cmNlUHJvdmlkZXIoc291cmNlT3JpZ2lu
LCBXVEZNb3ZlKHVybCksIFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6
OldlYkFzc2VtYmx5KQorICAgICAgICBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyKFZlY3Rvcjx1
aW50OF90PiYmIGRhdGEsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJpbmcm
JiBzb3VyY2VVUkwpCisgICAgICAgICAgICA6IFNvdXJjZVByb3ZpZGVyKHNvdXJjZU9yaWdpbiwg
V1RGTW92ZShzb3VyY2VVUkwpLCBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VU
eXBlOjpXZWJBc3NlbWJseSkKICAgICAgICAgICAgICwgbV9zb3VyY2UoIltXZWJBc3NlbWJseSBz
b3VyY2VdIikKICAgICAgICAgICAgICwgbV9kYXRhKFdURk1vdmUoZGF0YSkpCiAgICAgICAgIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5cGVzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5cGVzLmNwcAppbmRleCAz
ZDI1MDY0ZGQ5MjM3MTNhMTQ0ZDgxZmZjZWI4MjI1MjUxMmI0YjJhLi4yMmY3MTY0ZTA5ZjdiMzY1
MDRmZjg4OGJmYzlmMWMzZDQ0NGYzZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ2FjaGVkVHlwZXMuY3BwCkBAIC0xNTEwLDEyICsxNTEwLDEyIEBAIGNsYXNzIENhY2hl
ZFNvdXJjZU9yaWdpbiA6IHB1YmxpYyBDYWNoZWRPYmplY3Q8U291cmNlT3JpZ2luPiB7CiBwdWJs
aWM6CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU291cmNlT3JpZ2lu
JiBzb3VyY2VPcmlnaW4pCiAgICAgewotICAgICAgICBtX3N0cmluZy5lbmNvZGUoZW5jb2Rlciwg
c291cmNlT3JpZ2luLnN0cmluZygpKTsKKyAgICAgICAgbV9zdHJpbmcuZW5jb2RlKGVuY29kZXIs
IHNvdXJjZU9yaWdpbi51cmwoKS5zdHJpbmcoKSk7CiAgICAgfQogCiAgICAgU291cmNlT3JpZ2lu
IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIFNv
dXJjZU9yaWdpbiB7IG1fc3RyaW5nLmRlY29kZShkZWNvZGVyKSB9OworICAgICAgICByZXR1cm4g
U291cmNlT3JpZ2luIHsgVVJMKHsgfSwgbV9zdHJpbmcuZGVjb2RlKGRlY29kZXIpKSB9OwogICAg
IH0KIAogcHJpdmF0ZToKQEAgLTE1NDYsNyArMTU0Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTb3VyY2VQcm92aWRlciYgc291cmNlUHJvdmlk
ZXIpCiAgICAgewogICAgICAgICBtX3NvdXJjZU9yaWdpbi5lbmNvZGUoZW5jb2Rlciwgc291cmNl
UHJvdmlkZXIuc291cmNlT3JpZ2luKCkpOwotICAgICAgICBtX3VybC5lbmNvZGUoZW5jb2Rlciwg
c291cmNlUHJvdmlkZXIudXJsKCkuc3RyaW5nKCkpOworICAgICAgICBtX3NvdXJjZVVSTC5lbmNv
ZGUoZW5jb2Rlciwgc291cmNlUHJvdmlkZXIuc291cmNlVVJMKCkpOwogICAgICAgICBtX3NvdXJj
ZVVSTERpcmVjdGl2ZS5lbmNvZGUoZW5jb2Rlciwgc291cmNlUHJvdmlkZXIuc291cmNlVVJMRGly
ZWN0aXZlKCkpOwogICAgICAgICBtX3NvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmUuZW5jb2RlKGVu
Y29kZXIsIHNvdXJjZVByb3ZpZGVyLnNvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmUoKSk7CiAgICAg
ICAgIG1fc3RhcnRQb3NpdGlvbi5lbmNvZGUoZW5jb2Rlciwgc291cmNlUHJvdmlkZXIuc3RhcnRQ
b3NpdGlvbigpKTsKQEAgLTE1NjAsNyArMTU2MCw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgog
ICAgIENhY2hlZFNvdXJjZU9yaWdpbiBtX3NvdXJjZU9yaWdpbjsKLSAgICBDYWNoZWRTdHJpbmcg
bV91cmw7CisgICAgQ2FjaGVkU3RyaW5nIG1fc291cmNlVVJMOwogICAgIENhY2hlZFN0cmluZyBt
X3NvdXJjZVVSTERpcmVjdGl2ZTsKICAgICBDYWNoZWRTdHJpbmcgbV9zb3VyY2VNYXBwaW5nVVJM
RGlyZWN0aXZlOwogICAgIENhY2hlZFRleHRQb3NpdGlvbiBtX3N0YXJ0UG9zaXRpb247CkBAIC0x
NTgwLDEwICsxNTgwLDEwIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIFN0cmluZyBkZWNvZGVk
U291cmNlID0gbV9zb3VyY2UuZGVjb2RlKGRlY29kZXIpOwogICAgICAgICBTb3VyY2VPcmlnaW4g
ZGVjb2RlZFNvdXJjZU9yaWdpbiA9IG1fc291cmNlT3JpZ2luLmRlY29kZShkZWNvZGVyKTsKLSAg
ICAgICAgU3RyaW5nIGRlY29kZWRVUkwgPSBtX3VybC5kZWNvZGUoZGVjb2Rlcik7CisgICAgICAg
IFN0cmluZyBkZWNvZGVkU291cmNlVVJMID0gbV9zb3VyY2VVUkwuZGVjb2RlKGRlY29kZXIpOwog
ICAgICAgICBUZXh0UG9zaXRpb24gZGVjb2RlZFN0YXJ0UG9zaXRpb24gPSBtX3N0YXJ0UG9zaXRp
b24uZGVjb2RlKGRlY29kZXIpOwogCi0gICAgICAgIFJlZjxTdHJpbmdTb3VyY2VQcm92aWRlcj4g
c291cmNlUHJvdmlkZXIgPSBTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKGRlY29kZWRTb3Vy
Y2UsIGRlY29kZWRTb3VyY2VPcmlnaW4sIFVSTChVUkwoKSwgZGVjb2RlZFVSTCksIGRlY29kZWRT
dGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKTsKKyAgICAgICAgUmVmPFN0cmluZ1NvdXJjZVByb3Zp
ZGVyPiBzb3VyY2VQcm92aWRlciA9IFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoZGVjb2Rl
ZFNvdXJjZSwgZGVjb2RlZFNvdXJjZU9yaWdpbiwgZGVjb2RlZFNvdXJjZVVSTCwgZGVjb2RlZFN0
YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpOwogICAgICAgICBCYXNlOjpkZWNvZGUoZGVjb2Rlciwg
c291cmNlUHJvdmlkZXIuZ2V0KCkpOwogICAgICAgICByZXR1cm4gJnNvdXJjZVByb3ZpZGVyLmxl
YWtSZWYoKTsKICAgICB9CkBAIC0xNjA3LDExICsxNjA3LDExIEBAIHB1YmxpYzoKICAgICB7CiAg
ICAgICAgIFZlY3Rvcjx1aW50OF90PiBkZWNvZGVkRGF0YTsKICAgICAgICAgU291cmNlT3JpZ2lu
IGRlY29kZWRTb3VyY2VPcmlnaW4gPSBtX3NvdXJjZU9yaWdpbi5kZWNvZGUoZGVjb2Rlcik7Ci0g
ICAgICAgIFN0cmluZyBkZWNvZGVkVVJMID0gbV91cmwuZGVjb2RlKGRlY29kZXIpOworICAgICAg
ICBTdHJpbmcgZGVjb2RlZFNvdXJjZVVSTCA9IG1fc291cmNlVVJMLmRlY29kZShkZWNvZGVyKTsK
IAogICAgICAgICBtX2RhdGEuZGVjb2RlKGRlY29kZXIsIGRlY29kZWREYXRhKTsKIAotICAgICAg
ICBSZWY8V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcj4gc291cmNlUHJvdmlkZXIgPSBXZWJBc3Nl
bWJseVNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoV1RGTW92ZShkZWNvZGVkRGF0YSksIGRlY29kZWRT
b3VyY2VPcmlnaW4sIFVSTChVUkwoKSwgZGVjb2RlZFVSTCkpOworICAgICAgICBSZWY8V2ViQXNz
ZW1ibHlTb3VyY2VQcm92aWRlcj4gc291cmNlUHJvdmlkZXIgPSBXZWJBc3NlbWJseVNvdXJjZVBy
b3ZpZGVyOjpjcmVhdGUoV1RGTW92ZShkZWNvZGVkRGF0YSksIGRlY29kZWRTb3VyY2VPcmlnaW4s
IGRlY29kZWRTb3VyY2VVUkwpOwogICAgICAgICBCYXNlOjpkZWNvZGUoZGVjb2Rlciwgc291cmNl
UHJvdmlkZXIuZ2V0KCkpOwogCiAgICAgICAgIHJldHVybiAmc291cmNlUHJvdmlkZXIubGVha1Jl
ZigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCmluZGV4IDE1Y2NhOTUx
NjIzMzllMmQ4ZjU3NDk3OGJhYzM3ZjU0NjZkNjc4ZGQuLmY0NzNiODE4MWVjMmYwMmEwY2M3OGEy
NmMwYzIwZGM5NjMxZmRjNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5j
cHAKQEAgLTIzMCw3ICsyMzAsNyBAQCB2b2lkIGFkZEVycm9ySW5mbyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqLCBib29sIHVzZUN1cnJlbnRGcgogCiBKU09iamVj
dCogYWRkRXJyb3JJbmZvKFZNJiB2bSwgSlNPYmplY3QqIGVycm9yLCBpbnQgbGluZSwgY29uc3Qg
U291cmNlQ29kZSYgc291cmNlKQogewotICAgIGNvbnN0IFN0cmluZyYgc291cmNlVVJMID0gc291
cmNlLnByb3ZpZGVyKCktPnVybCgpLnN0cmluZygpOworICAgIGNvbnN0IFN0cmluZyYgc291cmNl
VVJMID0gc291cmNlLnByb3ZpZGVyKCktPnNvdXJjZVVSTCgpOwogICAgIAogICAgIC8vIFRoZSBw
dXREaXJlY3QoKSBjYWxscyBiZWxvdyBzaG91bGQgcmVhbGx5IGJlIHB1dCgpIHNvIHRoYXQgdGhl
eSB0cmlnZ2VyIG1hdGVyaWFsaXphdGlvbiBvZgogICAgIC8vIHRoZSBsaW5lL3NvdXJjZVVSTCBw
cm9wZXJ0aWVzLiBPdGhlcndpc2UsIHdoYXQgd2Ugc2V0IGhlcmUgd2lsbCBqdXN0IGJlIG92ZXJ3
cml0dGVuIGxhdGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9G
dW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCAxMjYxNGRlZGEzOTU2YmE0NGYyMDgyOWRkZDQ5
MDZmMGI0ZjI3ZjhjLi40YzEwMTZmODc5OGRkYWMzYWNhZTExNmQ5ZWMxMjFhNDQ2ZmFjYThhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0
cnVjdG9yLmNwcApAQCAtMTQ4LDcgKzE0OCw3IEBAIEpTT2JqZWN0KiBjb25zdHJ1Y3RGdW5jdGlv
blNraXBwaW5nRXZhbEVuYWJsZWRDaGVjaygKICAgICAgICAgcHJvZ3JhbSA9IGJ1aWxkZXIudG9T
dHJpbmcoKTsKICAgICB9CiAKLSAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2UocHJv
Z3JhbSwgc291cmNlT3JpZ2luLCBVUkwoeyB9LCBzb3VyY2VVUkwpLCBwb3NpdGlvbik7CisgICAg
U291cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291cmNlKHByb2dyYW0sIHNvdXJjZU9yaWdpbiwgc291
cmNlVVJMLCBwb3NpdGlvbik7CiAgICAgSlNPYmplY3QqIGV4Y2VwdGlvbiA9IG51bGxwdHI7CiAg
ICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbiA9IEZ1bmN0aW9uRXhlY3V0YWJsZTo6ZnJv
bUdsb2JhbENvZGUoZnVuY3Rpb25OYW1lLCBnbG9iYWxPYmplY3QsIHNvdXJjZSwgZXhjZXB0aW9u
LCBvdmVycmlkZUxpbmVOdW1iZXIsIGZ1bmN0aW9uQ29uc3RydWN0b3JQYXJhbWV0ZXJzRW5kUG9z
aXRpb24pOwogICAgIGlmIChVTkxJS0VMWSghZnVuY3Rpb24pKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmgKaW5kZXggZjRiNDI1YmNmYjAy
NGNkODdiNmVkMmMxNzg4MDdjYWYwMWNiZDkwNi4uNTJkOTIxOTBkMDI0MTgzNTU1MDA2ZDZkZTFh
NzA1YTAxNTNiZmEwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2NyaXB0RXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nj
cmlwdEV4ZWN1dGFibGUuaApAQCAtNDcsNyArNDcsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgU291
cmNlQ29kZSYgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2U7IH0KICAgICBpbnRwdHJf
dCBzb3VyY2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnByb3ZpZGVySUQoKTsgfQogICAg
IGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9zb3Vy
Y2UucHJvdmlkZXIoKS0+c291cmNlT3JpZ2luKCk7IH0KLSAgICBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnByb3ZpZGVyKCktPnVybCgpLnN0cmluZygp
OyB9CisgICAgLy8gVGhpcyBpcyBOT1QgdGhlIHBhdGggdGhhdCBzaG91bGQgYmUgdXNlZCBmb3Ig
Y29tcHV0aW5nIHJlbGF0aXZlIHBhdGhzIGZyb20gYSBzY3JpcHQuIFVzZSBTb3VyY2VPcmlnaW4n
cyBVUkwgZm9yIHRoYXQsIHRoZSB2YWx1ZXMgbWF5IG9yIG1heSBub3QgYmUgdGhlIHNhbWUuLi4g
VGhpcyBzaG91bGQgb25seSBiZSB1c2VkIGZvciBgZXJyb3Iuc291cmNlVVJMYCBhbmQgc3RhY2sg
dHJhY2VzLgorICAgIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9z
b3VyY2UucHJvdmlkZXIoKS0+c291cmNlVVJMKCk7IH0KICAgICBpbnQgZmlyc3RMaW5lKCkgY29u
c3QgeyByZXR1cm4gbV9zb3VyY2UuZmlyc3RMaW5lKCkub25lQmFzZWRJbnQoKTsgfQogICAgIEpT
X0VYUE9SVF9QUklWQVRFIGludCBsYXN0TGluZSgpIGNvbnN0OwogICAgIHVuc2lnbmVkIHN0YXJ0
Q29sdW1uKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2Uuc3RhcnRDb2x1bW4oKS5vbmVCYXNlZElu
dCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Tb3VyY2VP
cmlnaW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NvdXJjZU9yaWdpbi5oCmlu
ZGV4IDdjM2NkZWI3YzlhZGIyMWI4NTI5NmE0M2NjNjc5OTUwMDE4YjcyYmQuLjhlN2EwOTA1MzNl
NzViYTM4NWU4YmE1NjBhZjVhZjViYmYyYTgxYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NvdXJjZU9yaWdpbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1NvdXJjZU9yaWdpbi5oCkBAIC0yNiwzMiArMjYsMzMgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiU2NyaXB0RmV0Y2hlci5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNz
IFNvdXJjZU9yaWdpbiB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgU291cmNlT3JpZ2luKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQotICAgICAgICA6IG1fc3RyaW5nKHN0cmluZykKKyAgICBleHBsaWNp
dCBTb3VyY2VPcmlnaW4oY29uc3QgVVJMJiB1cmwpCisgICAgICAgIDogbV91cmwodXJsKQogICAg
IHsKICAgICB9CiAKLSAgICBleHBsaWNpdCBTb3VyY2VPcmlnaW4oY29uc3QgU3RyaW5nJiBzdHJp
bmcsIFJlZjxTY3JpcHRGZXRjaGVyPiYmIGZldGNoZXIpCi0gICAgICAgIDogbV9zdHJpbmcoc3Ry
aW5nKQorICAgIGV4cGxpY2l0IFNvdXJjZU9yaWdpbihjb25zdCBVUkwmIHVybCwgUmVmPFNjcmlw
dEZldGNoZXI+JiYgZmV0Y2hlcikKKyAgICAgICAgOiBtX3VybCh1cmwpCiAgICAgICAgICwgbV9m
ZXRjaGVyKFdURk1vdmUoZmV0Y2hlcikpCiAgICAgewogICAgIH0KIAogICAgIFNvdXJjZU9yaWdp
bigpID0gZGVmYXVsdDsKIAotICAgIGNvbnN0IFN0cmluZyYgc3RyaW5nKCkgY29uc3QgeyByZXR1
cm4gbV9zdHJpbmc7IH0KLSAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5n
LmlzTnVsbCgpOyB9CisgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsg
fQorICAgIGNvbnN0IFN0cmluZyYgc3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV91cmwuc3RyaW5n
KCk7IH0KKyAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIHVybCgpLmlzTnVsbCgpOyB9
CiAKICAgICBTY3JpcHRGZXRjaGVyKiBmZXRjaGVyKCkgY29uc3QgeyByZXR1cm4gbV9mZXRjaGVy
LmdldCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgU3RyaW5nIG1fc3RyaW5nOworICAgIFVSTCBtX3Vy
bDsKICAgICBSZWZQdHI8U2NyaXB0RmV0Y2hlcj4gbV9mZXRjaGVyOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGhyb3dTY29wZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9UaHJvd1Njb3BlLmNwcAppbmRleCBhMzFjZTlkZDNiMDQy
MjgzZGY3ZGNkODU1ZGE4ZWYwYTI2NDk3NTA4Li5kZWM2OWE0ODMxNmUxNmFlNTM3YjU4MTVkMDZl
MGNiYjc0ZmExOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
aHJvd1Njb3BlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UaHJvd1Nj
b3BlLmNwcApAQCAtODAsMTggKzgwLDEyIEBAIEV4Y2VwdGlvbiogVGhyb3dTY29wZTo6dGhyb3dF
eGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXhjZXB0aW9uKiBlCiAKIEV4
Y2VwdGlvbiogVGhyb3dTY29wZTo6dGhyb3dFeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBlcnJvcikKIHsKLSAgICBpZiAoIWVycm9yLmlzQ2VsbCgpIHx8ICFq
c0R5bmFtaWNDYXN0PEV4Y2VwdGlvbio+KG1fdm0sIGVycm9yLmFzQ2VsbCgpKSkKKyAgICBpZiAo
IWVycm9yLmlzQ2VsbCgpIHx8IGVycm9yLmlzT2JqZWN0KCkgfHwgIWpzRHluYW1pY0Nhc3Q8RXhj
ZXB0aW9uKj4obV92bSwgZXJyb3IuYXNDZWxsKCkpKQogICAgICAgICBtX3ZtLnZlcmlmeUV4Y2Vw
dGlvbkNoZWNrTmVlZElzU2F0aXNmaWVkKG1fcmVjdXJzaW9uRGVwdGgsIG1fbG9jYXRpb24pOwog
ICAgIAogICAgIHJldHVybiBtX3ZtLnRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgZXJyb3Ip
OwogfQogCi1FeGNlcHRpb24qIFRocm93U2NvcGU6OnRocm93RXhjZXB0aW9uKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmopCi17Ci0gICAgbV92bS52ZXJpZnlFeGNl
cHRpb25DaGVja05lZWRJc1NhdGlzZmllZChtX3JlY3Vyc2lvbkRlcHRoLCBtX2xvY2F0aW9uKTsK
LSAgICByZXR1cm4gbV92bS50aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIG9iaik7Ci19Ci0K
IHZvaWQgVGhyb3dTY29wZTo6c2ltdWxhdGVUaHJvdygpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQo
bV92bS5tX3RvcEV4Y2VwdGlvblNjb3BlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Rocm93U2NvcGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Rocm93U2NvcGUuaAppbmRleCA2OTMyMTk3ZTgwNThiOWQ2ODI5ZTE2NjZhYWQwMDc0MTY0MzE2
MWE0Li5jZjMzNmZjMjQzYjYwNGE4ZTdkNWYxNGE4MWI2MzE4MmYzODg3OGFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UaHJvd1Njb3BlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGhyb3dTY29wZS5oCkBAIC00OSw3ICs0OSw2IEBAIHB1
YmxpYzoKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIEV4Y2VwdGlvbiogdGhyb3dFeGNlcHRpb24o
SlNHbG9iYWxPYmplY3QqLCBFeGNlcHRpb24qKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBFeGNl
cHRpb24qIHRocm93RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7Ci0gICAgSlNf
RVhQT1JUX1BSSVZBVEUgRXhjZXB0aW9uKiB0aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCos
IEpTT2JqZWN0Kik7CiAKICAgICB2b2lkIHJlbGVhc2UoKSB7IG1faXNSZWxlYXNlZCA9IHRydWU7
IH0KIApAQCAtNzksNyArNzgsNiBAQCBwdWJsaWM6CiAKICAgICBBTFdBWVNfSU5MSU5FIEV4Y2Vw
dGlvbiogdGhyb3dFeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXhjZXB0
aW9uKiBleGNlcHRpb24pIHsgcmV0dXJuIG1fdm0udGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0
LCBleGNlcHRpb24pOyB9CiAgICAgQUxXQVlTX0lOTElORSBFeGNlcHRpb24qIHRocm93RXhjZXB0
aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpIHsgcmV0dXJu
IG1fdm0udGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCB2YWx1ZSk7IH0KLSAgICBBTFdBWVNf
SU5MSU5FIEV4Y2VwdGlvbiogdGhyb3dFeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNPYmplY3QqIG9iaikgeyByZXR1cm4gbV92bS50aHJvd0V4Y2VwdGlvbihnbG9iYWxP
YmplY3QsIG9iaik7IH0KIAogICAgIEFMV0FZU19JTkxJTkUgdm9pZCByZWxlYXNlKCkgeyB9CiB9
OwpAQCAtOTksOSArOTcsMTYgQEAgQUxXQVlTX0lOTElORSBFeGNlcHRpb24qIHRocm93RXhjZXB0
aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRocm93U2NvcGUKICAgICByZXR1cm4g
c2NvcGUudGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiB9CiAKLUFMV0FZU19J
TkxJTkUgRXhjZXB0aW9uKiB0aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBUaHJvd1Njb3BlJiBzY29wZSwgSlNPYmplY3QqIG9iaikKK0FMV0FZU19JTkxJTkUgRW5j
b2RlZEpTVmFsdWUgdGhyb3dWTUV4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBUaHJvd1Njb3BlJiBzY29wZSwgRXhjZXB0aW9uKiBleGNlcHRpb24pCiB7Ci0gICAgcmV0dXJu
IHNjb3BlLnRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgb2JqKTsKKyAgICB0aHJvd0V4Y2Vw
dGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBleGNlcHRpb24pOworICAgIHJldHVybiBlbmNvZGVk
SlNWYWx1ZSgpOworfQorCitBTFdBWVNfSU5MSU5FIEVuY29kZWRKU1ZhbHVlIHRocm93Vk1FeGNl
cHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIEpT
VmFsdWUgdmFsdWUpCit7CisgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwg
dmFsdWUpOworICAgIHJldHVybiBlbmNvZGVkSlNWYWx1ZSgpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92
ZXJyaWRlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlk
ZXMuY3BwCmluZGV4IGUwOTM5NmY3NDJlZWQ3NTNiNmRiZWE0Y2Q5YTc4ZWY2NjU3ZGQ0ODUuLjQ4
YjJkYTVlMmYyNjFmYzllMDZiZWFiN2Q5NGZmNzE5NDBlZjdmZDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcApAQCAtMTM3LDcgKzEz
Nyw5IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVPdmVycmlkZUluZm8oY29uc3QgU291cmNlQ29k
ZSYgb3JpZ0NvZGUsIGNvbnN0IFN0cmluZyYgbmV3CiAgICAgbmV3UHJvdmlkZXJTdHIuYXBwZW5k
KG9yaWdIZWFkZXIpOwogICAgIG5ld1Byb3ZpZGVyU3RyLmFwcGVuZChuZXdCb2R5KTsKIAotICAg
IFJlZjxTb3VyY2VQcm92aWRlcj4gbmV3UHJvdmlkZXIgPSBTdHJpbmdTb3VyY2VQcm92aWRlcjo6
Y3JlYXRlKG5ld1Byb3ZpZGVyU3RyLCBTb3VyY2VPcmlnaW4geyAiPG92ZXJyaWRkZW4+IiB9LCBV
UkwoeyB9LCAiPG92ZXJyaWRkZW4+IikpOworICAgIGF1dG8gb3ZlcnJpZGRlbiA9ICI8b3ZlcnJp
ZGRlbj4iX3M7CisgICAgVVJMIHVybCh7IH0sIG92ZXJyaWRkZW4pOworICAgIFJlZjxTb3VyY2VQ
cm92aWRlcj4gbmV3UHJvdmlkZXIgPSBTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKG5ld1By
b3ZpZGVyU3RyLCBTb3VyY2VPcmlnaW4geyB1cmwgfSwgb3ZlcnJpZGRlbik7CiAKICAgICBpbmZv
LmZpcnN0TGluZSA9IDE7CiAgICAgaW5mby5saW5lQ291bnQgPSAxOyAvLyBGYWtpbmcgaXQuIFRo
aXMgZG9lc24ndCByZWFsbHkgbWF0dGVyIGZvciBub3cuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dG9vbHMvSlNEb2xsYXJWTS5jcHAKaW5kZXggZTEyZjQ4MTZjM2UxNDQyNTVjMWE0ZjUzMmEyODY3
N2RkYjNkMjU1Ni4uOGQ2N2Y1MzE3YzY2NDU1NTQ2ZmFmYjc3ZWFkYjI3ZjI1YTU0NWY5MSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcApAQCAtMTY0OCwxMSAr
MTY0OCw0NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIEpTRG9sbGFyVk06
OnNfaW5mbyA9IHsgIkRvbGxhclZNIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU0RvbGxhclZNKSB9OwogCi0vLyBUcmlnZ2VycyBhIGNyYXNo
IGltbWVkaWF0ZWx5LgotLy8gVXNhZ2U6ICR2bS5jcmFzaCgpCi1zdGF0aWMgTk9fUkVUVVJOX0RV
RV9UT19DUkFTSCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3Jhc2goSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorc3RhdGljIEVuY29kZWRKU1ZhbHVlIGRvUHJpbnQo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGJvb2wg
YWRkTGluZUZlZWQpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKKyAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShnbG9iYWxPYmplY3QtPnZtKCkpOwor
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKTsg
KytpKSB7CisgICAgICAgIEpTVmFsdWUgYXJnID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVu
dChpKTsKKyAgICAgICAgaWYgKGFyZy5pc0NlbGwoKQorICAgICAgICAgICAgJiYgIWFyZy5pc09i
amVjdCgpCisgICAgICAgICAgICAmJiAhYXJnLmlzU3RyaW5nKCkKKyAgICAgICAgICAgICYmICFh
cmcuaXNCaWdJbnQoKSkgeworICAgICAgICAgICAgZGF0YUxvZyhhcmcpOworICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGFyZ1N0ciA9IGNhbGxGcmFtZS0+
dW5jaGVja2VkQXJndW1lbnQoaSkudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgICAgIGRh
dGFMb2coYXJnU3RyKTsKKyAgICB9CisgICAgaWYgKGFkZExpbmVGZWVkKQorICAgICAgICBkYXRh
TG9nKCJcbiIpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9
CisKKy8vIFRyaWdnZXJzIGEgY3Jhc2ggYWZ0ZXIgZHVtcGluZyBhbnkgcGFyYW1hdGVyIHBhc3Nl
ZCB0byBpdC4KKy8vIFVzYWdlOiAkdm0uY3Jhc2goLi4uKQorc3RhdGljIE5PX1JFVFVSTl9EVUVf
VE9fQ1JBU0ggRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyYXNoKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIERv
bGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CisKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAg
IGlmIChjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSkgeworICAgICAgICBkYXRhTG9nTG4oIkR1
bXBpbmcgIiwgY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCksICIgdmFsdWVzIGJlZm9yZSBjcmFz
aGluZzoiKTsKKyAgICAgICAgY29uc3QgYm9vbCBhZGRMaW5lRmVlZCA9IHRydWU7CisgICAgICAg
IGRvUHJpbnQoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGFkZExpbmVGZWVkKTsKKyAgICAgICAg
aWYgKHNjb3BlLmV4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICBKU1ZhbHVlIHZhbHVlID0gc2Nv
cGUuZXhjZXB0aW9uKCktPnZhbHVlKCk7CisgICAgICAgICAgICBzY29wZS5jbGVhckV4Y2VwdGlv
bigpOworICAgICAgICAgICAgZGF0YUxvZ0xuKCJFcnJvciB0aHJvd24gd2hpbGUgY3Jhc2hpbmc6
ICIsIHZhbHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCkpOworICAgICAgICB9CisgICAgfQor
CiAgICAgQ1JBU0goKTsKIH0KIApAQCAtMjAyOCwyOCArMjA2NCw2IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHVtcEJ5dGVjb2RlRm9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIGRvUHJpbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGJvb2wgYWRkTGluZUZlZWQpCi17Ci0gICAgRG9s
bGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRShnbG9iYWxPYmplY3QtPnZtKCkpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKTsgKytpKSB7Ci0gICAgICAgIEpTVmFsdWUg
YXJnID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudChpKTsKLSAgICAgICAgaWYgKGFyZy5p
c0NlbGwoKQotICAgICAgICAgICAgJiYgIWFyZy5pc09iamVjdCgpCi0gICAgICAgICAgICAmJiAh
YXJnLmlzU3RyaW5nKCkKLSAgICAgICAgICAgICYmICFhcmcuaXNCaWdJbnQoKSkgewotICAgICAg
ICAgICAgZGF0YUxvZyhhcmcpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAg
ICAgICAgU3RyaW5nIGFyZ1N0ciA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoaSkudG9X
VEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgICAgIGRhdGFMb2coYXJnU3RyKTsKLSAgICB9Ci0g
ICAgaWYgKGFkZExpbmVGZWVkKQotICAgICAgICBkYXRhTG9nKCJcbiIpOwotICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci19Ci0KIC8vIFByaW50cyBhIHNlcmllcyBv
ZiBjb21tYSBzZXBhcmF0ZSBzdHJpbmdzIHdpdGhvdXQgYXBwZW5kaW5nIGEgbmV3bGluZS4KIC8v
IFVzYWdlOiAkdm0uZGF0YUxvZyhzdHIxLCBzdHIyLCBzdHIzKQogc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EYXRhTG9nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
VVJMLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1VSTC5jcHAKaW5kZXggZmUyOWNhNzc3NmM1MzhiZjgw
M2Q2YmM2MWJhZTc5MWYyM2M0Y2FmYi4uMWQzMTRiZjhkMDRjYzRlZTlhNWE5ZDFkNTZmOGU2Y2Ey
ZWIwZjRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVVJMLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9VUkwuY3BwCkBAIC0yMTMsNyArMjEzLDExIEBAIFN0cmluZyBVUkw6OmZpbGVTeXN0
ZW1QYXRoKCkgY29uc3QKICAgICBpZiAoIWlzTG9jYWxGaWxlKCkpCiAgICAgICAgIHJldHVybiB7
IH07CiAKLSAgICByZXR1cm4gZGVjb2RlRXNjYXBlU2VxdWVuY2VzRnJvbVBhcnNlZFVSTChwYXRo
KCkpOworICAgIGF1dG8gcmVzdWx0ID0gZGVjb2RlRXNjYXBlU2VxdWVuY2VzRnJvbVBhcnNlZFVS
TChwYXRoKCkpOworI2lmIFBMQVRGT1JNKFdJTikKKyAgICByZXN1bHQgPSBmaWxlU3lzdGVtUmVw
cmVzZW50YXRpb24ocmVzdWx0KTsKKyNlbmRpZgorICAgIHJldHVybiByZXN1bHQ7CiB9CiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVVJMLmggYi9Tb3VyY2UvV1RGL3d0Zi9V
UkwuaAppbmRleCA4YjIyZTE2YzZjYTQwMTI1YzAyZjY4ODEyMzAyNDk1NmUwZjQ0Nzk2Li43MWMy
MjY4ZDM3NGI3ZWRiYzJiYzE5YTcxYzIxZmNkZWQ3ZWRhNTYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9VUkwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VUkwuaApAQCAtNzcsNiArNzcsMTUg
QEAgcHVibGljOgogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogICAgIGJvb2wgaXNWYWxpZCgp
IGNvbnN0OwogCisgICAgLy8gU2luY2Ugd2Ugb3ZlcmxvYWQgb3BlcmF0b3IgTlNVUkwqIHdlIGhh
dmUgdGhpcyB0byBwcmV2ZW50IGFjY2lkZW50YWxseSB1c2luZyB0aGF0IG9wZXJhdG9yCisgICAg
Ly8gd2hlbiBwbGFjaW5nIGEgVVJMIGluIGFuIGlmIHN0YXRtZW50LgorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQgPSB2b2lkPgorICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKQorICAgIHsKKyAg
ICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWVfdjxULCB2b2lkPiwgIlVzaW5nIHVybCBp
biBhbiBpZiBzdGF0ZW1lbnQgaXMgZGlzYWxsb3dlZC4iKTsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKwogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB5b3UgY2FuIHNldCB0aGUgaG9zdCBh
bmQgcG9ydCBmb3IgdGhlIFVSTC4KICAgICAvLyBOb24taGllcmFyY2hpY2FsIFVSTHMgZG9uJ3Qg
aGF2ZSBhIGhvc3QgYW5kIHBvcnQuCiAgICAgYm9vbCBjYW5TZXRIb3N0T3JQb3J0KCkgY29uc3Qg
eyByZXR1cm4gaXNIaWVyYXJjaGljYWwoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgKaW5kZXggMGU4MDFmY2M5
ODgyNDc3NWE2ZDViMjAyNWNmMmI3NGU5NmI4YTc2Ny4uZmY2YzIwZmRiYWFjMTI3MmE0NGQ3MjAx
YzFiNTdjZDc5NWFkM2I4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oCkBAIC00OCw3ICs0OCw3IEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcihDYWNoZWRTY3Jp
cHQqIGNhY2hlZFNjcmlwdCwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlw
ZSwgUmVmPENhY2hlZFNjcmlwdEZldGNoZXI+JiYgc2NyaXB0RmV0Y2hlcikKLSAgICAgICAgOiBT
b3VyY2VQcm92aWRlcihKU0M6OlNvdXJjZU9yaWdpbiB7IGNhY2hlZFNjcmlwdC0+cmVzcG9uc2Uo
KS51cmwoKS5zdHJpbmcoKSwgV1RGTW92ZShzY3JpcHRGZXRjaGVyKSB9LCBVUkwoY2FjaGVkU2Ny
aXB0LT5yZXNwb25zZSgpLnVybCgpKSwgVGV4dFBvc2l0aW9uKCksIHNvdXJjZVR5cGUpCisgICAg
ICAgIDogU291cmNlUHJvdmlkZXIoSlNDOjpTb3VyY2VPcmlnaW4geyBjYWNoZWRTY3JpcHQtPnJl
c3BvbnNlKCkudXJsKCksIFdURk1vdmUoc2NyaXB0RmV0Y2hlcikgfSwgU3RyaW5nKGNhY2hlZFNj
cmlwdC0+cmVzcG9uc2UoKS51cmwoKS5zdHJpbmcoKSksIFRleHRQb3NpdGlvbigpLCBzb3VyY2VU
eXBlKQogICAgICAgICAsIG1fY2FjaGVkU2NyaXB0KGNhY2hlZFNjcmlwdCkKICAgICB7CiAgICAg
ICAgIG1fY2FjaGVkU2NyaXB0LT5hZGRDbGllbnQoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggNDQ4YzNiYjMwNDQyY2U0MDMw
ZDNlOGVkODI2NTY0Y2I0MGFkODhiNS4uYmNkYWY5NTc4OTY3OWM4ZGQ0MTZmOTg3MTRjYjZiMTU5
ZjMxZmVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExp
c3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVu
ZXIuY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBKU0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2
ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKICAgICAg
ICAgSlNET01XaW5kb3cqIHdpbmRvdyA9IGpzQ2FzdDxKU0RPTVdpbmRvdyo+KGdsb2JhbE9iamVj
dCk7CiAgICAgICAgIGlmICghd2luZG93LT53cmFwcGVkKCkuaXNDdXJyZW50bHlEaXNwbGF5ZWRJ
bkZyYW1lKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmICh3YXNDcmVhdGVkRnJv
bU1hcmt1cCgpICYmICFzY3JpcHRFeGVjdXRpb25Db250ZXh0LmNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpLT5hbGxvd0lubGluZUV2ZW50SGFuZGxlcnMoc291cmNlVVJMKCksIHNvdXJjZVBvc2l0aW9u
KCkubV9saW5lKSkKKyAgICAgICAgaWYgKHdhc0NyZWF0ZWRGcm9tTWFya3VwKCkgJiYgIXNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93SW5saW5lRXZl
bnRIYW5kbGVycyhzb3VyY2VVUkwoKS5zdHJpbmcoKSwgc291cmNlUG9zaXRpb24oKS5tX2xpbmUp
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAvLyBGSVhNRTogSXMgdGhpcyBjaGVjayBu
ZWVkZWQgZm9yIG90aGVyIGNvbnRleHRzPwogICAgICAgICBTY3JpcHRDb250cm9sbGVyJiBzY3Jp
cHQgPSB3aW5kb3ctPndyYXBwZWQoKS5mcmFtZSgpLT5zY3JpcHQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgKaW5kZXggZDUxNTNhZjEyNTVkMzVkY2Rl
NGE2MjdmZmIxOGU1MDFjZjI0ZTMyMy4uMTE5MzI3ODQzMmZjZGNlMWEwN2RmYzQ2NmQ0NjkxYzU3
NmQ1NmNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExp
c3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVy
LmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIEpTQzo6SlNPYmplY3QqIGpzRnVuY3Rp
b24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2pzRnVuY3Rpb24uZ2V0KCk7IH0KICAgICBKU0M6
OkpTT2JqZWN0KiB3cmFwcGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV93cmFwcGVyLmdldCgp
OyB9CiAKLSAgICB2aXJ0dWFsIFN0cmluZyBzb3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiBTdHJp
bmcoKTsgfQorICAgIHZpcnR1YWwgVVJMIHNvdXJjZVVSTCgpIGNvbnN0IHsgcmV0dXJuIHsgfTsg
fQogICAgIHZpcnR1YWwgVGV4dFBvc2l0aW9uIHNvdXJjZVBvc2l0aW9uKCkgY29uc3QgeyByZXR1
cm4gVGV4dFBvc2l0aW9uKCk7IH0KIAogICAgIFN0cmluZyBmdW5jdGlvbk5hbWUoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVu
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5j
cHAKaW5kZXggMWI0YjIxZWRhZDUxMzQ5M2Q4YjUxYmYyYTVmNzFlYmJhMTczMWZkZC4uMTVjN2Ex
NjQwZmZjMjE0NThiODFmZWFjMTcwYTJjNjc2NzViMTNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTY2LDcgKzY2LDcg
QEAgc3RhdGljIFRleHRQb3NpdGlvbiBjb252ZXJ0WmVyb1RvT25lKGNvbnN0IFRleHRQb3NpdGlv
biYgcG9zaXRpb24pCiAgICAgcmV0dXJuIHBvc2l0aW9uOwogfQogCi1KU0xhenlFdmVudExpc3Rl
bmVyOjpKU0xhenlFdmVudExpc3RlbmVyKENyZWF0aW9uQXJndW1lbnRzJiYgYXJndW1lbnRzLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzb3VyY2VQb3NpdGlv
bikKK0pTTGF6eUV2ZW50TGlzdGVuZXI6OkpTTGF6eUV2ZW50TGlzdGVuZXIoQ3JlYXRpb25Bcmd1
bWVudHMmJiBhcmd1bWVudHMsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRp
b24mIHNvdXJjZVBvc2l0aW9uKQogICAgIDogSlNFdmVudExpc3RlbmVyKG51bGxwdHIsIGFyZ3Vt
ZW50cy53cmFwcGVyLCB0cnVlLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSkKICAgICAsIG1fZnVu
Y3Rpb25OYW1lKGFyZ3VtZW50cy5hdHRyaWJ1dGVOYW1lLmxvY2FsTmFtZSgpLnN0cmluZygpKQog
ICAgICwgbV9ldmVudFBhcmFtZXRlck5hbWUoZXZlbnRQYXJhbWV0ZXJOYW1lKGFyZ3VtZW50cy5z
aG91bGRVc2VTVkdFdmVudE5hbWUpKQpAQCAtMTMwLDcgKzEzMCw3IEBAIEpTT2JqZWN0KiBKU0xh
enlFdmVudExpc3RlbmVyOjppbml0aWFsaXplSlNGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBleGVjCiAgICAgaWYgKCFkb2N1bWVudC5mcmFtZSgpKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAotICAgIGlmICghZG9jdW1lbnQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93
SW5saW5lRXZlbnRIYW5kbGVycyhtX3NvdXJjZVVSTCwgbV9zb3VyY2VQb3NpdGlvbi5tX2xpbmUp
KQorICAgIGlmICghZG9jdW1lbnQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93SW5saW5l
RXZlbnRIYW5kbGVycyhtX3NvdXJjZVVSTC5zdHJpbmcoKSwgbV9zb3VyY2VQb3NpdGlvbi5tX2xp
bmUpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGF1dG8mIHNjcmlwdCA9IGRvY3Vt
ZW50LmZyYW1lKCktPnNjcmlwdCgpOwpAQCAtMTYwLDcgKzE2MCw3IEBAIEpTT2JqZWN0KiBKU0xh
enlFdmVudExpc3RlbmVyOjppbml0aWFsaXplSlNGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBleGVjCiAgICAgSlNPYmplY3QqIGpzRnVuY3Rpb24gPSBjb25zdHJ1Y3RGdW5jdGlvblNr
aXBwaW5nRXZhbEVuYWJsZWRDaGVjaygKICAgICAgICAgbGV4aWNhbEdsb2JhbE9iamVjdCwgYXJn
cywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgbV9mdW5jdGlvbk5hbWUpLAogICAgICAgICBT
b3VyY2VPcmlnaW4geyBtX3NvdXJjZVVSTCwgQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKGRv
Y3VtZW50LmNoYXJzZXQoKSkgfSwKLSAgICAgICAgbV9zb3VyY2VVUkwsIG1fc291cmNlUG9zaXRp
b24sIG92ZXJyaWRlTGluZU51bWJlcik7CisgICAgICAgIG1fc291cmNlVVJMLnN0cmluZygpLCBt
X3NvdXJjZVBvc2l0aW9uLCBvdmVycmlkZUxpbmVOdW1iZXIpOwogICAgIGlmIChVTkxJS0VMWShz
Y29wZS5leGNlcHRpb24oKSkpIHsKICAgICAgICAgcmVwb3J0Q3VycmVudEV4Y2VwdGlvbihsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICAgICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKQEAgLTE5
MSwxMiArMTkxLDEyIEBAIFJlZlB0cjxKU0xhenlFdmVudExpc3RlbmVyPiBKU0xhenlFdmVudExp
c3RlbmVyOjpjcmVhdGUoQ3JlYXRpb25Bcmd1bWVudHMmJiBhcmd1CiAKICAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIGJlIGFibGUgdG8gcHJvdmlkZSBzb3VyY2UgaW5mb3JtYXRpb24gZm9yIGZyYW1l
bGVzcyBkb2N1bWVudHMgdG9vIChlLmcuIGZvciBpbXBvcnRpbmcgbm9kZXMgZnJvbSBYTUxIdHRw
UmVxdWVzdC5yZXNwb25zZVhNTCkuCiAgICAgVGV4dFBvc2l0aW9uIHBvc2l0aW9uOwotICAgIFN0
cmluZyBzb3VyY2VVUkw7CisgICAgVVJMIHNvdXJjZVVSTDsKICAgICBpZiAoRnJhbWUqIGZyYW1l
ID0gYXJndW1lbnRzLmRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgaWYgKCFmcmFtZS0+c2Ny
aXB0KCkuY2FuRXhlY3V0ZVNjcmlwdHMoQWJvdXRUb0NyZWF0ZUV2ZW50TGlzdGVuZXIpKQogICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHBvc2l0aW9uID0gZnJhbWUtPnNjcmlw
dCgpLmV2ZW50SGFuZGxlclBvc2l0aW9uKCk7Ci0gICAgICAgIHNvdXJjZVVSTCA9IGFyZ3VtZW50
cy5kb2N1bWVudC51cmwoKS5zdHJpbmcoKTsKKyAgICAgICAgc291cmNlVVJMID0gYXJndW1lbnRz
LmRvY3VtZW50LnVybCgpOwogICAgIH0KIAogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEpTTGF6
eUV2ZW50TGlzdGVuZXIoV1RGTW92ZShhcmd1bWVudHMpLCBzb3VyY2VVUkwsIHBvc2l0aW9uKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3Rl
bmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmgK
aW5kZXggMTc5ZWI0Mzc4ZGNkMjhhNGI0M2JlZTcwYjMzZTU3YmVhOWU4YjUxMy4uNzI4ODY5ZGRi
ZGRiMDkzMDI1NzlhYmRlMWU2NGY2MDIwZTdiMjJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuaApAQCAtMzksMTMgKzM5LDEzIEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgfkpTTGF6eUV2ZW50TGlzdGVuZXIoKTsKIAotICAgIFN0cmlu
ZyBzb3VyY2VVUkwoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NvdXJjZVVSTDsgfQorICAgIFVS
TCBzb3VyY2VVUkwoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NvdXJjZVVSTDsgfQogICAgIFRl
eHRQb3NpdGlvbiBzb3VyY2VQb3NpdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc291cmNl
UG9zaXRpb247IH0KIAogcHJpdmF0ZToKICAgICBzdHJ1Y3QgQ3JlYXRpb25Bcmd1bWVudHM7CiAg
ICAgc3RhdGljIFJlZlB0cjxKU0xhenlFdmVudExpc3RlbmVyPiBjcmVhdGUoQ3JlYXRpb25Bcmd1
bWVudHMmJik7Ci0gICAgSlNMYXp5RXZlbnRMaXN0ZW5lcihDcmVhdGlvbkFyZ3VtZW50cyYmLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJik7CisgICAgSlNMYXp5
RXZlbnRMaXN0ZW5lcihDcmVhdGlvbkFyZ3VtZW50cyYmLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwg
Y29uc3QgVGV4dFBvc2l0aW9uJik7CiAKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIHZvaWQgY2hl
Y2tWYWxpZGl0eUZvckV2ZW50VGFyZ2V0KEV2ZW50VGFyZ2V0JikgZmluYWw7CkBAIC01Nyw3ICs1
Nyw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fZnVuY3Rpb25OYW1lOwogICAgIGNvbnN0IFN0
cmluZyYgbV9ldmVudFBhcmFtZXRlck5hbWU7CiAgICAgU3RyaW5nIG1fY29kZTsKLSAgICBTdHJp
bmcgbV9zb3VyY2VVUkw7CisgICAgVVJMIG1fc291cmNlVVJMOwogICAgIFRleHRQb3NpdGlvbiBt
X3NvdXJjZVBvc2l0aW9uOwogICAgIFdlYWtQdHI8Q29udGFpbmVyTm9kZT4gbV9vcmlnaW5hbE5v
ZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVy
LmNwcAppbmRleCBjYzIwMTIxN2JmMTA2ZDdjYWMxMWVjY2Y3ZjNlMjYzZGY4YWFiNjc2Li5lZDM2
NDE5NzY4ODc3ODdlYWNmYjhiZjA1YjkyZWZmN2VjMjQyYWFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBA
IFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldvcmxkKGNvbnN0
IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjCiAgICAgSlNMb2NrSG9sZGVyIGxvY2sod29ybGQudm0o
KSk7CiAKICAgICBjb25zdCBTb3VyY2VDb2RlJiBqc1NvdXJjZUNvZGUgPSBzb3VyY2VDb2RlLmpz
U291cmNlQ29kZSgpOwotICAgIFN0cmluZyBzb3VyY2VVUkwgPSBqc1NvdXJjZUNvZGUucHJvdmlk
ZXIoKS0+dXJsKCkuc3RyaW5nKCk7CisgICAgY29uc3QgVVJMJiBzb3VyY2VVUkwgPSBqc1NvdXJj
ZUNvZGUucHJvdmlkZXIoKS0+c291cmNlT3JpZ2luKCkudXJsKCk7CiAKICAgICAvLyBldmFsdWF0
ZSBjb2RlLiBSZXR1cm5zIHRoZSBKUyByZXR1cm4gdmFsdWUgb3IgMAogICAgIC8vIGlmIHRoZXJl
IHdhcyBub25lLCBhbiBlcnJvciBvY2N1cnJlZCBvciB0aGUgdHlwZSBjb3VsZG4ndCBiZSBjb252
ZXJ0ZWQuCkBAIC0xMzYsMTIgKzEzNiwxMSBAQCBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlwdENvbnRy
b2xsZXI6OmV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyYwogICAg
IC8vIFNlZSBzbWFydCB3aW5kb3cub3BlbiBwb2xpY3kgZm9yIHdoZXJlIHRoaXMgaXMgdXNlZC4K
ICAgICBhdXRvJiBwcm94eSA9IGpzV2luZG93UHJveHkod29ybGQpOwogICAgIGF1dG8mIGdsb2Jh
bE9iamVjdCA9ICpwcm94eS53aW5kb3coKTsKLSAgICBjb25zdCBTdHJpbmcqIHNhdmVkU291cmNl
VVJMID0gbV9zb3VyY2VVUkw7Ci0gICAgbV9zb3VyY2VVUkwgPSAmc291cmNlVVJMOworICAgIFNl
dEZvclNjb3BlPGNvbnN0IFVSTCo+IHNvdXJjZVVSTFNjb3BlKG1fc291cmNlVVJMLCAmc291cmNl
VVJMKTsKIAogICAgIFJlZjxGcmFtZT4gcHJvdGVjdG9yKG1fZnJhbWUpOwogCi0gICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRXZhbHVhdGVTY3JpcHQobV9mcmFtZSwgc291cmNlVVJM
LCBzb3VyY2VDb2RlLnN0YXJ0TGluZSgpLCBzb3VyY2VDb2RlLnN0YXJ0Q29sdW1uKCkpOworICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEV2YWx1YXRlU2NyaXB0KG1fZnJhbWUsIHNv
dXJjZVVSTC5zdHJpbmcoKSwgc291cmNlQ29kZS5zdGFydExpbmUoKSwgc291cmNlQ29kZS5zdGFy
dENvbHVtbigpKTsKIAogICAgIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiBldmFsdWF0aW9uRXhj
ZXB0aW9uOwogICAgIEpTVmFsdWUgcmV0dXJuVmFsdWUgPSBKU0V4ZWNTdGF0ZTo6cHJvZmlsZWRF
dmFsdWF0ZSgmZ2xvYmFsT2JqZWN0LCBKU0M6OlByb2ZpbGluZ1JlYXNvbjo6T3RoZXIsIGpzU291
cmNlQ29kZSwgJnByb3h5LCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKQEAgLTE1NSw3ICsxNTQsNiBA
QCBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZChjb25z
dCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyYwogICAgICAgICBvcHRpb25hbERldGFpbHMgPSBXVEZN
b3ZlKGRldGFpbHMpOwogICAgIH0KIAotICAgIG1fc291cmNlVVJMID0gc2F2ZWRTb3VyY2VVUkw7
CiAgICAgaWYgKG9wdGlvbmFsRGV0YWlscykKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVk
KCpvcHRpb25hbERldGFpbHMpOwogCkBAIC0yMzUsNyArMjMzLDcgQEAgSlNDOjpKU1ZhbHVlIFNj
cmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlTW9kdWxlKGNvbnN0IFVSTCYgc291cmNlVVJMLCBKU01v
ZHVsZVJlY28KIAogICAgIGF1dG8mIHByb3h5ID0ganNXaW5kb3dQcm94eSh3b3JsZCk7CiAgICAg
YXV0byYgbGV4aWNhbEdsb2JhbE9iamVjdCA9ICpwcm94eS53aW5kb3coKTsKLSAgICBTZXRGb3JT
Y29wZTxjb25zdCBTdHJpbmcqPiBzb3VyY2VVUkxTY29wZShtX3NvdXJjZVVSTCwgJnNvdXJjZVVS
TC5zdHJpbmcoKSk7CisgICAgU2V0Rm9yU2NvcGU8Y29uc3QgVVJMKj4gc291cmNlVVJMU2NvcGUo
bV9zb3VyY2VVUkwsICZzb3VyY2VVUkwpOwogCiAgICAgUmVmPEZyYW1lPiBwcm90ZWN0b3IobV9m
cmFtZSk7CiAKQEAgLTY0OSwxMyArNjQ3LDEyIEBAIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29u
dHJvbGxlcjo6Y2FsbEluV29ybGQoUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0CiAg
ICAgYXV0byBzb3VyY2VDb2RlID0gU2NyaXB0U291cmNlQ29kZSB7IGZ1bmN0aW9uU3RyaW5nQnVp
bGRlci50b1N0cmluZygpLCBXVEZNb3ZlKHBhcmFtZXRlcnMuc291cmNlVVJMKSwgVGV4dFBvc2l0
aW9uKCksIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtLCBDYWNoZWRTY3Jp
cHRGZXRjaGVyOjpjcmVhdGUobV9mcmFtZS5kb2N1bWVudCgpLT5jaGFyc2V0KCkpIH07CiAgICAg
Y29uc3QgYXV0byYganNTb3VyY2VDb2RlID0gc291cmNlQ29kZS5qc1NvdXJjZUNvZGUoKTsKIAot
ICAgIFN0cmluZyBzb3VyY2VVUkwgPSBqc1NvdXJjZUNvZGUucHJvdmlkZXIoKS0+dXJsKCkuc3Ry
aW5nKCk7Ci0gICAgY29uc3QgU3RyaW5nKiBzYXZlZFNvdXJjZVVSTCA9IG1fc291cmNlVVJMOwot
ICAgIG1fc291cmNlVVJMID0gJnNvdXJjZVVSTDsKKyAgICBjb25zdCBVUkwmIHNvdXJjZVVSTCA9
IGpzU291cmNlQ29kZS5wcm92aWRlcigpLT5zb3VyY2VPcmlnaW4oKS51cmwoKTsKKyAgICBTZXRG
b3JTY29wZTxjb25zdCBVUkwqPiBzb3VyY2VVUkxTY29wZShtX3NvdXJjZVVSTCwgJnNvdXJjZVVS
TCk7CiAKICAgICBSZWY8RnJhbWU+IHByb3RlY3RvcihtX2ZyYW1lKTsKIAotICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6d2lsbEV2YWx1YXRlU2NyaXB0KG1fZnJhbWUsIHNvdXJjZVVSTCwg
c291cmNlQ29kZS5zdGFydExpbmUoKSwgc291cmNlQ29kZS5zdGFydENvbHVtbigpKTsKKyAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVNjcmlwdChtX2ZyYW1lLCBzb3Vy
Y2VVUkwuc3RyaW5nKCksIHNvdXJjZUNvZGUuc3RhcnRMaW5lKCksIHNvdXJjZUNvZGUuc3RhcnRD
b2x1bW4oKSk7CiAKICAgICBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4gZXZhbHVhdGlvbkV4Y2Vw
dGlvbjsKICAgICBPcHRpb25hbDxFeGNlcHRpb25EZXRhaWxzPiBvcHRpb25hbERldGFpbHM7CkBA
IC02OTAsOCArNjg3LDYgQEAgVmFsdWVPckV4Y2VwdGlvbiBTY3JpcHRDb250cm9sbGVyOjpjYWxs
SW5Xb3JsZChSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyYmIHBhcmFtZXQKICAgICAgICAgb3B0aW9u
YWxEZXRhaWxzID0gV1RGTW92ZShkZXRhaWxzKTsKICAgICB9CiAKLSAgICBtX3NvdXJjZVVSTCA9
IHNhdmVkU291cmNlVVJMOwotCiAgICAgaWYgKG9wdGlvbmFsRGV0YWlscykKICAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKCpvcHRpb25hbERldGFpbHMpOwogICAgIHJldHVybiByZXR1cm5W
YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaApp
bmRleCAyNmQ5ZmM2NjYzZGRhNDA5YWQwNmJlNWIxMzk3ZTJmZjRjODNmNWM4Li5jNWE2Y2MwM2Rl
ODk2ODljYWNlYzNhMWNmZWVhYmYyZDZkM2U5NzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCkBAIC0xMzgsNyArMTM4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0UGF1c2VkKGJvb2wgYikgeyBtX3BhdXNlZCA9IGI7IH0KICAgICBib29sIGlz
UGF1c2VkKCkgY29uc3QgeyByZXR1cm4gbV9wYXVzZWQ7IH0KIAotICAgIGNvbnN0IFN0cmluZyog
c291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0gLy8gMCBpZiB3ZSBhcmUg
bm90IGV2YWx1YXRpbmcgYW55IHNjcmlwdAorICAgIGNvbnN0IFVSTCogc291cmNlVVJMKCkgY29u
c3QgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0gLy8gbnVsbHB0ciBpZiB3ZSBhcmUgbm90IGV2YWx1
YXRpbmcgYW55IHNjcmlwdAogCiAgICAgdm9pZCB1cGRhdGVEb2N1bWVudCgpOwogCkBAIC0xODgs
NyArMTg4LDcgQEAgcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBKU1dpbmRvd1Byb3h5JiBq
c1dpbmRvd1Byb3h5KERPTVdyYXBwZXJXb3JsZCYpOwogCiAgICAgRnJhbWUmIG1fZnJhbWU7Ci0g
ICAgY29uc3QgU3RyaW5nKiBtX3NvdXJjZVVSTDsKKyAgICBjb25zdCBVUkwqIG1fc291cmNlVVJM
IHsgbnVsbHB0ciB9OwogCiAgICAgYm9vbCBtX3BhdXNlZDsKICAgICBib29sIG1fd2lsbFJlcGxh
Y2VXaXRoUmVzdWx0T2ZFeGVjdXRpbmdKYXZhc2NyaXB0VVJMIHsgZmFsc2UgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCmluZGV4IGM4
NjY0YjEyYzUzYmMzMjdiNWM4OGFmNTY3NjI3Y2Y4MDRmMTY1NGMuLmFhNWI4MGI1ODZiNzllMGU1
NzUwMWNkNTEwNzhkZjI1YTYyNWU1ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcApAQCAtNjgsNyArNjgsNyBAQCBzdGF0aWMgYm9v
bCBpc1Jvb3RNb2R1bGUoSlNDOjpKU1ZhbHVlIGltcG9ydGVyTW9kdWxlS2V5KQogICAgIHJldHVy
biBpbXBvcnRlck1vZHVsZUtleS5pc1N5bWJvbCgpIHx8IGltcG9ydGVyTW9kdWxlS2V5LmlzVW5k
ZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyBFeHBlY3RlZDxVUkwsIEFTQ0lJTGl0ZXJhbD4gcmVzb2x2
ZU1vZHVsZVNwZWNpZmllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgc3BlY2lm
aWVyLCBjb25zdCBVUkwmIGJhc2VVUkwpCitzdGF0aWMgRXhwZWN0ZWQ8VVJMLCBTdHJpbmc+IHJl
c29sdmVNb2R1bGVTcGVjaWZpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHNw
ZWNpZmllciwgY29uc3QgVVJMJiBiYXNlVVJMKQogewogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVj
LndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNyZXNvbHZlLWEtbW9kdWxlLXNw
ZWNpZmllcgogCkBAIC03NywxMSArNzcsMTEgQEAgc3RhdGljIEV4cGVjdGVkPFVSTCwgQVNDSUlM
aXRlcmFsPiByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY28KICAg
ICAgICAgcmV0dXJuIGFic29sdXRlVVJMOwogCiAgICAgaWYgKCFzcGVjaWZpZXIuc3RhcnRzV2l0
aCgnLycpICYmICFzcGVjaWZpZXIuc3RhcnRzV2l0aCgiLi8iKSAmJiAhc3BlY2lmaWVyLnN0YXJ0
c1dpdGgoIi4uLyIpKQotICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIk1vZHVsZSBzcGVj
aWZpZXIgZG9lcyBub3Qgc3RhcnQgd2l0aCBcIi9cIiwgXCIuL1wiLCBvciBcIi4uL1wiLiJfcyk7
CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJNb2R1bGUgc3BlY2lm
aWVyLCAnIl9zLCBzcGVjaWZpZXIsICInIGRvZXMgbm90IHN0YXJ0IHdpdGggXCIvXCIsIFwiLi9c
Iiwgb3IgXCIuLi9cIi4gUmVmZXJlbmNlZCBmcm9tICJfcywgYmFzZVVSTC5zdHJpbmcoKSkpOwog
CiAgICAgYXV0byByZXN1bHQgPSBkb2N1bWVudC5jb21wbGV0ZVVSTChzcGVjaWZpZXIsIGJhc2VV
UkwpOwogICAgIGlmICghcmVzdWx0LmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKCJNb2R1bGUgbmFtZSBkb2VzIG5vdCByZXNvbHZlIHRvIGEgdmFsaWQgVVJMLiJfcyk7
CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJNb2R1bGUgbmFtZSwg
JyJfcywgcmVzdWx0LnN0cmluZygpLCAiJyBkb2VzIG5vdCByZXNvbHZlIHRvIGEgdmFsaWQgVVJM
LiJfcykpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTIyNCw3ICsyMjQsNyBAQCBKU0M6
OkpTVmFsdWUgU2NyaXB0TW9kdWxlTG9hZGVyOjpldmFsdWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiBqc0dsb2JhbE9iamVjdCwgSgogICAgIHJldHVybiBKU0M6OmpzVW5kZWZpbmVkKCk7CiB9CiAK
LXN0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiByZWplY3RQcm9taXNlKEpTRE9NR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QsIEV4Y2VwdGlvbkNvZGUgZWMsIEFTQ0lJTGl0ZXJhbCBtZXNz
YWdlKQorc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHJlamVjdFByb21pc2UoSlNET01H
bG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgRXhjZXB0aW9uQ29kZSBlYywgU3RyaW5nIG1lc3Nh
Z2UpCiB7CiAgICAgYXV0byoganNQcm9taXNlID0gSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6Y3Jl
YXRlKGdsb2JhbE9iamVjdC52bSgpLCBnbG9iYWxPYmplY3QuaW50ZXJuYWxQcm9taXNlU3RydWN0
dXJlKCkpOwogICAgIFJFTEVBU0VfQVNTRVJUKGpzUHJvbWlzZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKaW5kZXggZmNhNTc0Y2ZkYWFjNDliYWRm
NGQ4MjlmMTkyMDAyMTExNDM3MTk4Yi4uYzcwNDYyNmZiNzMzZGI0NzJiZGE1MDIzNjI0MWE2ZTc0
MGUyNzgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291
cmNlQ29kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNv
ZGUuaApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTY3JpcHRT
b3VyY2VDb2RlIHsKIHB1YmxpYzoKICAgICBTY3JpcHRTb3VyY2VDb2RlKGNvbnN0IFN0cmluZyYg
c291cmNlLCBVUkwmJiB1cmwgPSBVUkwoKSwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0
aW9uID0gVGV4dFBvc2l0aW9uKCksIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJj
ZVR5cGUgPSBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSkKLSAgICAgICAg
OiBtX3Byb3ZpZGVyKEpTQzo6U3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIEpT
Qzo6U291cmNlT3JpZ2luIHsgdXJsLnN0cmluZygpIH0sIFdURk1vdmUodXJsKSwgc3RhcnRQb3Np
dGlvbiwgc291cmNlVHlwZSkpCisgICAgICAgIDogbV9wcm92aWRlcihKU0M6OlN0cmluZ1NvdXJj
ZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCBKU0M6OlNvdXJjZU9yaWdpbiB7IHVybCB9LCB1cmwu
c3RyaW5nKCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpKQogICAgICAgICAsIG1fY29kZSht
X3Byb3ZpZGVyLmNvcHlSZWYoKSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJbnQoKSwg
c3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKQogICAgIHsKICAgICB9CkBAIC01
OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBTY3JpcHRTb3VyY2VDb2RlKGNvbnN0
IFN0cmluZyYgc291cmNlLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3Np
dGlvbiwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSwgUmVmPENhY2hl
ZFNjcmlwdEZldGNoZXI+JiYgc2NyaXB0RmV0Y2hlcikKLSAgICAgICAgOiBtX3Byb3ZpZGVyKEpT
Qzo6U3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIEpTQzo6U291cmNlT3JpZ2lu
IHsgdXJsLnN0cmluZygpLCBXVEZNb3ZlKHNjcmlwdEZldGNoZXIpIH0sIFdURk1vdmUodXJsKSwg
c3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkpCisgICAgICAgIDogbV9wcm92aWRlcihKU0M6OlN0
cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCBKU0M6OlNvdXJjZU9yaWdpbiB7IHVy
bCwgV1RGTW92ZShzY3JpcHRGZXRjaGVyKSB9LCB1cmwuc3RyaW5nKCksIHN0YXJ0UG9zaXRpb24s
IHNvdXJjZVR5cGUpKQogICAgICAgICAsIG1fY29kZShtX3Byb3ZpZGVyLmNvcHlSZWYoKSwgc3Rh
cnRQb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJbnQoKSwgc3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5v
bmVCYXNlZEludCgpKQogICAgIHsKICAgICB9CkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKIAog
ICAgIENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRT
Y3JpcHQuZ2V0KCk7IH0KIAotICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV9w
cm92aWRlci0+dXJsKCk7IH0KKyAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1f
cHJvdmlkZXItPnNvdXJjZU9yaWdpbigpLnVybCgpOyB9CiAgICAgCiBwcml2YXRlOgogICAgIFJl
ZjxKU0M6OlNvdXJjZVByb3ZpZGVyPiBtX3Byb3ZpZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJTY3JpcHREZWJ1Z2dlci5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViU2NyaXB0RGVidWdnZXIubW0KaW5kZXggMWE1ODg0Mjdl
MjlkMDRiNDBlOWZiMjNkNTNjY2Q0Yzg3MjM1ZDE1Zi4uYmQ5YjExODRjODQ1NGI0NzNlNDM3NGMy
MjhiNGJkNjdhOWEzZjk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJTY3JpcHREZWJ1Z2dlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlNjcmlwdERlYnVnZ2VyLm1tCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgV2ViU2Ny
aXB0RGVidWdnZXI6OnNvdXJjZVBhcnNlZChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKCiAgICAgbV9jYWxsaW5nRGVsZWdhdGUgPSB0cnVlOwogCiAgICAgTlNTdHJp
bmcgKm5zU291cmNlID0gdG9OU1N0cmluZyhzb3VyY2VQcm92aWRlcik7Ci0gICAgTlNVUkwgKm5z
VVJMID0gc291cmNlUHJvdmlkZXItPnVybCgpOworICAgIE5TVVJMICpuc1VSTCA9IHNvdXJjZVBy
b3ZpZGVyLT5zb3VyY2VPcmlnaW4oKS51cmwoKTsKICAgICBpbnQgZmlyc3RMaW5lID0gc291cmNl
UHJvdmlkZXItPnN0YXJ0UG9zaXRpb24oKS5tX2xpbmUub25lQmFzZWRJbnQoKTsKIAogICAgIEpT
Qzo6Vk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODBlZjM1MjA4YTRjNWYyOWY0
ODNjODA4NTY4NGZhNWRmMDNhNDYyNC4uMjg4NmM5MjI2ODY2YTdjYzQwMThjZWE5YTFmZmNlOTY5
NDUxYjg2NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw5MCBAQAorMjAyMC0wNy0xMCAgS2VpdGggTWlsbGVyICA8a2VpdGhf
bWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBDbGVhbiB1cCBTb3VyY2VQcm92aWRlciBhbmQg
YWRkIGNhbGxlciByZWxhdGl2ZSBsb2FkIHNjcmlwdCB0byBqc2MuY3BwCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyMDUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9nbG9iYWwtY29uc3Qt
cmVkZWNsYXJhdGlvbi1zZXR0aW5nLTIuanM6CisgICAgICAgICogc3RyZXNzL2dsb2JhbC1jb25z
dC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMy5qczoKKyAgICAgICAgKiBzdHJlc3MvZ2xvYmFsLWNv
bnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy00LmpzOgorICAgICAgICAqIHN0cmVzcy9nbG9iYWwt
Y29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTUuanM6CisgICAgICAgICogc3RyZXNzL2dsb2Jh
bC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcuanM6CisgICAgICAgICogc3RyZXNzL2dsb2Jh
bC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS5qczoKKyAgICAgICAgKiBzdHJlc3MvZ2xvYmFs
LWxleGljYWwtcmVkZWZpbmUtY29uc3QuanM6CisgICAgICAgICogc3RyZXNzL2dsb2JhbC1sZXhp
Y2FsLXZhcmlhYmxlLXRkei5qczoKKyAgICAgICAgKiBzdHJlc3MvZ2xvYmFsLWxleGljYWwtdmFy
aWFibGUtdW5yZXNvbHZlZC1wcm9wZXJ0eS5qczoKKyAgICAgICAgKiBzdHJlc3MvZ2xvYmFsLXBy
b3BlcnR5LWludG8tdmFyaWFibGUtZ2V0LWZyb20tc2NvcGUuanM6CisgICAgICAgICogc3RyZXNz
L2pzb25wLWxpdGVyYWwtcGFyc2VyLXNlbWljb2xvbi1pcy1ub3QtYXNzaWdubWVudC5qczoKKyAg
ICAgICAgKiBzdHJlc3Mvb3BfYWRkLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9iaXRhbmQuanM6
CisgICAgICAgICogc3RyZXNzL29wX2JpdG9yLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9iaXR4
b3IuanM6CisgICAgICAgICogc3RyZXNzL29wX2Rpdi1Db25zdFZhci5qczoKKyAgICAgICAgKiBz
dHJlc3Mvb3BfZGl2LVZhckNvbnN0LmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9kaXYtVmFyVmFy
LmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9sc2hpZnQtQ29uc3RWYXIuanM6CisgICAgICAgICog
c3RyZXNzL29wX2xzaGlmdC1WYXJDb25zdC5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfbHNoaWZ0
LVZhclZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfbW9kLUNvbnN0VmFyLmpzOgorICAgICAg
ICAqIHN0cmVzcy9vcF9tb2QtVmFyQ29uc3QuanM6CisgICAgICAgICogc3RyZXNzL29wX21vZC1W
YXJWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX211bC1Db25zdFZhci5qczoKKyAgICAgICAg
KiBzdHJlc3Mvb3BfbXVsLVZhckNvbnN0LmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9tdWwtVmFy
VmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9uZWdhdGUuanM6CisgICAgICAgICogc3RyZXNz
L29wX3Bvc3RkZWMuanM6CisgICAgICAgICogc3RyZXNzL29wX3Bvc3RpbmMuanM6CisgICAgICAg
ICogc3RyZXNzL29wX3ByZWRlYy5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfcHJlaW5jLmpzOgor
ICAgICAgICAqIHN0cmVzcy9vcF9yc2hpZnQtQ29uc3RWYXIuanM6CisgICAgICAgICogc3RyZXNz
L29wX3JzaGlmdC1WYXJDb25zdC5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfcnNoaWZ0LVZhclZh
ci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3Bfc3ViLUNvbnN0VmFyLmpzOgorICAgICAgICAqIHN0
cmVzcy9vcF9zdWItVmFyQ29uc3QuanM6CisgICAgICAgICogc3RyZXNzL29wX3N1Yi1WYXJWYXIu
anM6CisgICAgICAgICogc3RyZXNzL29wX3Vyc2hpZnQtQ29uc3RWYXIuanM6CisgICAgICAgICog
c3RyZXNzL29wX3Vyc2hpZnQtVmFyQ29uc3QuanM6CisgICAgICAgICogc3RyZXNzL29wX3Vyc2hp
ZnQtVmFyVmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9yZWdyZXNzLTE1OTc3OS0xLmpzOgorICAg
ICAgICAobWFrZVVzZVJlZ3Jlc3Npb25UZXN0KToKKyAgICAgICAgKiBzdHJlc3MvcmVncmVzcy0x
NTk3NzktMi5qczoKKyAgICAgICAgKG1ha2VVc2VSZWdyZXNzaW9uVGVzdCk6CisgICAgICAgICog
c3RyZXNzL3Jlc291cmNlcy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLWhlbHBlci1mdW5jdGlvbnMu
anM6CisgICAgICAgICogc3RyZXNzL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1
bmN0aW9ucy5qczoKKyAgICAgICAgKiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItYW5vbnltb3Vz
LWZ1bmN0aW9uLmpzOgorICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci1iYXNpYy5q
czoKKyAgICAgICAgKiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItYm91bmQtZnVuY3Rpb24tbmFt
ZS5qczoKKyAgICAgICAgKiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItZGVlcC1zdGFjay5qczoK
KyAgICAgICAgKiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItZGlzcGxheS1uYW1lLmpzOgorICAg
ICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci1pbnRlcm5hbC1mdW5jdGlvbi1uYW1lLmpz
OgorICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci1taWNyb3Rhc2tzLmpzOgorICAg
ICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qczoKKyAg
ICAgICAgKiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qczoKKyAgICAgICAgKiBzdHJl
c3Mvc2hhZG93LWNoaWNrZW4tZGlzYWJsZWQuanM6CisgICAgICAgICogc3RyZXNzL3NoYWRvdy1j
aGlja2VuLWVuYWJsZWQuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktY29uc3RydWN0
b3IuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktY29weVdpdGhpbi5qczoKKyAgICAg
ICAgKiBzdHJlc3MvdHlwZWRhcnJheS1ldmVyeS5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRh
cnJheS1maWxsLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWZpbHRlci5qczoKKyAg
ICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1maW5kLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBl
ZGFycmF5LWZpbmRJbmRleC5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1mb3JFYWNo
LmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWZyb20uanM6CisgICAgICAgICogc3Ry
ZXNzL3R5cGVkYXJyYXktaW5jbHVkZXMuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXkt
aW5kZXhPZi5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1sYXN0SW5kZXhPZi5qczoK
KyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1tYXAuanM6CisgICAgICAgICogc3RyZXNzL3R5
cGVkYXJyYXktb2YuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktcmVkdWNlLmpzOgor
ICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LXJlZHVjZVJpZ2h0LmpzOgorICAgICAgICAqIHN0
cmVzcy90eXBlZGFycmF5LXNldC5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1zbGlj
ZS5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1zb21lLmpzOgorICAgICAgICAqIHN0
cmVzcy90eXBlZGFycmF5LXNvcnQuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktc3Vi
YXJyYXkuanM6CisKIDIwMjAtMDctMDkgIENhaW8gTGltYSAgPHRpY2Fpb2xpbWFAZ21haWwuY29t
PgogCiAgICAgICAgIFtKU0NdWzMyLWJpdHNdIFRlc3QgZ2FyZGVuaW5nIEp1bHkgOXRoCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL21vZHVsZXMvYWxpYXNlZC1uYW1lcy5qcyBiL0pTVGVzdHMvbW9kdWxl
cy9hbGlhc2VkLW5hbWVzLmpzCmluZGV4IDRjODc5NjU0OTVjMDBjNjQ5NjMyOTVlZGE0ZDc5ZGRj
OTU1N2I0MzYuLjc3N2Y3NDI1YjkzNzY5NmE3MjI4ZWE0OTVjODRlOWZlYzRjZGM0MTQgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvbW9kdWxlcy9hbGlhc2VkLW5hbWVzLmpzCisrKyBiL0pTVGVzdHMvbW9k
dWxlcy9hbGlhc2VkLW5hbWVzLmpzCkBAIC0xLDQgKzEsNCBAQAotaW1wb3J0IHsgYSwgYiwgY2hh
bmdlIH0gZnJvbSAnYWxpYXNlZC1uYW1lcy9tYWluLmpzJworaW1wb3J0IHsgYSwgYiwgY2hhbmdl
IH0gZnJvbSAnLi9hbGlhc2VkLW5hbWVzL21haW4uanMnCiBpbXBvcnQgeyBzaG91bGRCZSwgc2hv
dWxkVGhyb3cgfSBmcm9tICIuL3Jlc291cmNlcy9hc3NlcnQuanMiOwogCiBzaG91bGRCZShhLCA0
Mik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21vZHVsZXMvYWxpYXNpbmcvZHJpbmsuanMgYi9KU1Rl
c3RzL21vZHVsZXMvYWxpYXNpbmcvZHJpbmsuanMKaW5kZXggMWRhODRhMGY4ZjBhYWEwYTQ5M2M5
YWIxNGU2Mzg0ZGVmZjMxYzY2My4uZmM1MmU0OGVhZDExYmI2ZGY4NWM2NWRhMmVlYjIzMjAwZWNm
MTAyYiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9tb2R1bGVzL2FsaWFzaW5nL2RyaW5rLmpzCisrKyBi
L0pTVGVzdHMvbW9kdWxlcy9hbGlhc2luZy9kcmluay5qcwpAQCAtMyw1ICszLDUgQEAgZXhwb3J0
IGZ1bmN0aW9uIGNoYW5nZUNvY29hKHZhbHVlKSB7CiAgICAgQ29jb2EgPSB2YWx1ZTsKIH0KIAot
aW1wb3J0IHsgQ2FwcHVjY2lubyBhcyBTdWJEcmluaywgY2hhbmdlQ2FwcHVjY2lubyB9IGZyb20g
ImRyaW5rLTIuanMiCitpbXBvcnQgeyBDYXBwdWNjaW5vIGFzIFN1YkRyaW5rLCBjaGFuZ2VDYXBw
dWNjaW5vIH0gZnJvbSAiLi9kcmluay0yLmpzIgogZXhwb3J0IHsgU3ViRHJpbmssIGNoYW5nZUNh
cHB1Y2Npbm8gfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb2R1bGVzL2NhY2hpbmctc2hvdWxkLW5v
dC1tYWtlLWFtYmlndW91cy5qcyBiL0pTVGVzdHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1ub3Qt
bWFrZS1hbWJpZ3VvdXMuanMKaW5kZXggNDI1MTNlZDE3MGIzZDcxMTEzOTRiYjM0OTNkYjhhNjRk
NWMyYTFlMC4uNTRhNDA4ODlkYjJiMTVlYzJkYjViYzVhNjA1ZWZlM2Q1MDFiODk5MiAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9tb2R1bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1tYWtlLWFtYmlndW91cy5q
cworKysgYi9KU1Rlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3Vz
LmpzCkBAIC0yLDQgKzIsNCBAQAogLy8gICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8
CiAvLyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHYKIC8vICAgQC0+IChBKSAqLS0t
LSstLS0tPiAoQikgLS0tPiBbQ10KLWltcG9ydCB7IEEgfSBmcm9tICJjYWNoaW5nLXNob3VsZC1u
b3QtbWFrZS1hbWJpZ3VvdXMvbWFpbi5qcyIKK2ltcG9ydCB7IEEgfSBmcm9tICIuL2NhY2hpbmct
c2hvdWxkLW5vdC1tYWtlLWFtYmlndW91cy9tYWluLmpzIgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9t
b2R1bGVzL2RlZmF1bHQtZXJyb3IvbWFpbi5qcyBiL0pTVGVzdHMvbW9kdWxlcy9kZWZhdWx0LWVy
cm9yL21haW4uanMKaW5kZXggZGFhYjEzNTkxODM2NTU4MjY4OGY1ODhjMWE5ZTUzYjE3NTY0YjQy
Ni4uNWZiZTQ0NGNlMzk0MWUxNGRiZTk0NmY2MDE0OWQwYWQyYTg2YzFmMiAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9tb2R1bGVzL2RlZmF1bHQtZXJyb3IvbWFpbi5qcworKysgYi9KU1Rlc3RzL21vZHVs
ZXMvZGVmYXVsdC1lcnJvci9tYWluLmpzCkBAIC0xICsxIEBACi1pbXBvcnQgIkEiOworaW1wb3J0
ICIuL0EiOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb2R1bGVzL2V4ZWN1dGlvbi1vcmRlci1jeWNs
aWMvNS5qcyBiL0pTVGVzdHMvbW9kdWxlcy9leGVjdXRpb24tb3JkZXItY3ljbGljLzUuanMKaW5k
ZXggYTFkZWVmOTJkMTJmNWFiYzY4NmEzMThjMmJhYTQ5OGJmNjQ4MWU4Zi4uYjJkNDU4MDVlOTdm
NDVjMjFjZmQ1MGE5YmZmYWZmYTQzNzJkNzEwYiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9tb2R1bGVz
L2V4ZWN1dGlvbi1vcmRlci1jeWNsaWMvNS5qcworKysgYi9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0
aW9uLW9yZGVyLWN5Y2xpYy81LmpzCkBAIC0xLDUgKzEsNSBAQAotaW1wb3J0ICIzLmpzIgotaW1w
b3J0ICI0LmpzIgoraW1wb3J0ICIuLzMuanMiCitpbXBvcnQgIi4vNC5qcyIKIAogdmFyIGdsb2Jh
bCA9IChGdW5jdGlvbigicmV0dXJuIHRoaXMiKSkoKTsKIGlmIChnbG9iYWwuY291bnQgIT09IDQp
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9uLW9yZGVyLWRhZy81LmpzIGIv
SlNUZXN0cy9tb2R1bGVzL2V4ZWN1dGlvbi1vcmRlci1kYWcvNS5qcwppbmRleCBhMzNiNjNjZjU0
Y2E3ZTU5M2MzYmI3MWEwNjk3ZjZiODU5NjNiZWM1Li43ZDExMDI1MGViOTIzZjUzNjNhYmRlNjlm
OTQxM2FmOGFiM2MwNjNjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9uLW9y
ZGVyLWRhZy81LmpzCisrKyBiL0pTVGVzdHMvbW9kdWxlcy9leGVjdXRpb24tb3JkZXItZGFnLzUu
anMKQEAgLTEsNSArMSw1IEBACi1pbXBvcnQgIjQuanMiCi1pbXBvcnQgIjEuanMiCitpbXBvcnQg
Ii4vNC5qcyIKK2ltcG9ydCAiLi8xLmpzIgogCiB2YXIgZ2xvYmFsID0gKEZ1bmN0aW9uKCJyZXR1
cm4gdGhpcyIpKSgpOwogaWYgKGdsb2JhbC5jb3VudCAhPT0gNCkKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvbW9kdWxlcy9leGVjdXRpb24tb3JkZXItdHJlZS81LmpzIGIvSlNUZXN0cy9tb2R1bGVzL2V4
ZWN1dGlvbi1vcmRlci10cmVlLzUuanMKaW5kZXggYTFkZWVmOTJkMTJmNWFiYzY4NmEzMThjMmJh
YTQ5OGJmNjQ4MWU4Zi4uYjJkNDU4MDVlOTdmNDVjMjFjZmQ1MGE5YmZmYWZmYTQzNzJkNzEwYiAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9tb2R1bGVzL2V4ZWN1dGlvbi1vcmRlci10cmVlLzUuanMKKysr
IGIvSlNUZXN0cy9tb2R1bGVzL2V4ZWN1dGlvbi1vcmRlci10cmVlLzUuanMKQEAgLTEsNSArMSw1
IEBACi1pbXBvcnQgIjMuanMiCi1pbXBvcnQgIjQuanMiCitpbXBvcnQgIi4vMy5qcyIKK2ltcG9y
dCAiLi80LmpzIgogCiB2YXIgZ2xvYmFsID0gKEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKSgpOwog
aWYgKGdsb2JhbC5jb3VudCAhPT0gNCkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbW9kdWxlcy9pbmRp
cmVjdC1leHBvcnQtZXJyb3IvaW5kaXJlY3QtZXhwb3J0LWRlZmF1bHQtMi5qcyBiL0pTVGVzdHMv
bW9kdWxlcy9pbmRpcmVjdC1leHBvcnQtZXJyb3IvaW5kaXJlY3QtZXhwb3J0LWRlZmF1bHQtMi5q
cwppbmRleCBjMTc3YjE0Mzk0NTBjZDJhZjMyY2UyOWRiNmY3Yzc3ZmVkMGM2NWY2Li5kNWY1MTgy
NzdkMDU2YmNhMjE3Njk4ZGIyMmQ2Y2IxMDRjZDkzOWYwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL21v
ZHVsZXMvaW5kaXJlY3QtZXhwb3J0LWVycm9yL2luZGlyZWN0LWV4cG9ydC1kZWZhdWx0LTIuanMK
KysrIGIvSlNUZXN0cy9tb2R1bGVzL2luZGlyZWN0LWV4cG9ydC1lcnJvci9pbmRpcmVjdC1leHBv
cnQtZGVmYXVsdC0yLmpzCkBAIC0xICsxIEBACi1leHBvcnQgKiBmcm9tICJpbmRpcmVjdC1leHBv
cnQtZGVmYXVsdC0zLmpzIgorZXhwb3J0ICogZnJvbSAiLi9pbmRpcmVjdC1leHBvcnQtZGVmYXVs
dC0zLmpzIgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb2R1bGVzL25hbWVzcGFjZS1hbWJpZ3VvdXMv
YW1iaWd1b3VzLTIuanMgYi9KU1Rlc3RzL21vZHVsZXMvbmFtZXNwYWNlLWFtYmlndW91cy9hbWJp
Z3VvdXMtMi5qcwppbmRleCA3ODA5M2Q0NjZkMGM4YTVkODkyODA4MjEyOWVlOTRmZWZmYzEyZDk1
Li5jMWMzZWQ3OWFjZjE4YjNmMjZjNzI4NzczNmRlMWE3ZjhmNDgzMjBjIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL21vZHVsZXMvbmFtZXNwYWNlLWFtYmlndW91cy9hbWJpZ3VvdXMtMi5qcworKysgYi9K
U1Rlc3RzL21vZHVsZXMvbmFtZXNwYWNlLWFtYmlndW91cy9hbWJpZ3VvdXMtMi5qcwpAQCAtMSwy
ICsxLDIgQEAKLWV4cG9ydCAqIGZyb20gImFtYmlndW91cy0zLmpzIgotZXhwb3J0ICogZnJvbSAi
YW1iaWd1b3VzLTQuanMiCitleHBvcnQgKiBmcm9tICIuL2FtYmlndW91cy0zLmpzIgorZXhwb3J0
ICogZnJvbSAiLi9hbWJpZ3VvdXMtNC5qcyIKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbW9kdWxlcy9u
YW1lc3BhY2UtYW1iaWd1b3VzL2FtYmlndW91cy5qcyBiL0pTVGVzdHMvbW9kdWxlcy9uYW1lc3Bh
Y2UtYW1iaWd1b3VzL2FtYmlndW91cy5qcwppbmRleCBkMjg5MmViOWY3YzQyOTc5NTQ0NTVlNDFh
ZDQwODI5ZjgxMDdmMjdhLi4zZmQ0ZjZkNDJmYjQ3Mjc5ZmU0OWM4NzlmMzY2Mzk2ODFjNjQ4MGEx
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL21vZHVsZXMvbmFtZXNwYWNlLWFtYmlndW91cy9hbWJpZ3Vv
dXMuanMKKysrIGIvSlNUZXN0cy9tb2R1bGVzL25hbWVzcGFjZS1hbWJpZ3VvdXMvYW1iaWd1b3Vz
LmpzCkBAIC0xICsxIEBACi1pbXBvcnQgKiBhcyBuYW1lc3BhY2UgZnJvbSAiYW1iaWd1b3VzLTIu
anMiCitpbXBvcnQgKiBhcyBuYW1lc3BhY2UgZnJvbSAiLi9hbWJpZ3VvdXMtMi5qcyIKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvbW9kdWxlcy9uYW1lc3BhY2UtcmUtZXhwb3J0LmpzIGIvSlNUZXN0cy9t
b2R1bGVzL25hbWVzcGFjZS1yZS1leHBvcnQuanMKaW5kZXggOWM3NGU2MTJkNDdlNzViZDkyNzQ4
NmRhZTUxMWM5MDg5ZmMzMWVkNS4uYjBjNzViNTk0OTUwY2ZkNjQ0YWVlZTlkZjA2OTg2ZmY1MzA0
ZjYxNyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9tb2R1bGVzL25hbWVzcGFjZS1yZS1leHBvcnQuanMK
KysrIGIvSlNUZXN0cy9tb2R1bGVzL25hbWVzcGFjZS1yZS1leHBvcnQuanMKQEAgLTEgKzEgQEAK
LWltcG9ydCAibmFtZXNwYWNlLXJlLWV4cG9ydC9uYW1lc3BhY2UtcmUtZXhwb3J0LmpzIjsKK2lt
cG9ydCAiLi9uYW1lc3BhY2UtcmUtZXhwb3J0L25hbWVzcGFjZS1yZS1leHBvcnQuanMiOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIuanMgYi9K
U1Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci5qcwppbmRleCA0MTkyYjUx
N2ZhZTg5YWMzMzUwOTBiNTU2ZmRjOTViNTk4OGM0Mzg2Li43NTAyOTY0YTgwYTc3YmNjODM0N2Zk
Nzc2NTYyNmIxMWZjODFmY2VjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL21vZHVsZXMvdW5jYWNoZWFi
bGUtd2hlbi1zZWUtc3Rhci5qcworKysgYi9KU1Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hl
bi1zZWUtc3Rhci5qcwpAQCAtOSw1ICs5LDUgQEAKIC8vICAgICAgICAgICAgICAgICB8CiAvLyAg
ICAgICAgICAgICAgICAgQAogCi1pbXBvcnQgInVuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvbWFp
bjEuanMiCi1pbXBvcnQgInVuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvbWFpbjIuanMiCitpbXBv
cnQgIi4vdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9tYWluMS5qcyIKK2ltcG9ydCAiLi91bmNh
Y2hlYWJsZS13aGVuLXNlZS1zdGFyL21haW4yLmpzIgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy0yLmpzIGIvSlNUZXN0cy9zdHJl
c3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy0yLmpzCmluZGV4IGZjZmRkZjQ5
NDk3M2M2NjQ1MzZiMDcxNWU5MTBiNTY2NmM5ZDMzMWQuLmEyMGFjNTczY2M3ZGYxZmQwODkyOGY2
MTA1MzNhZGNlYzY4ZTBhNDAgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25z
dC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwt
Y29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTIuanMKQEAgLTgsOCArOCw4IEBAIGZ1bmN0aW9u
IGFzc2VydChiKSB7CiBzZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGROb3RUaHJvdygp
OyAvLyBBbGxvdyBkdXBsaWNhdGUgY29uc3QgZGVjbGFyYXRpb25zIGF0IHRoZSBnbG9iYWwgbGV2
ZWwuCiAKIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwOyBpKyspIHsKLSAgICBsb2FkKCIuL2dsb2Jh
bC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiKTsKKyAgICBsb2FkKCIuL2ds
b2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiAgICAgYXNzZXJ0KGZvbyA9PT0gMjApOwotICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0
LXJlZGVjbGFyYXRpb24tc2V0dGluZy9zZWNvbmQuanMiKTsKKyAgICBsb2FkKCIuL2dsb2JhbC1j
b25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvc2Vjb25kLmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogICAgIGFzc2VydChmb28gPT09IDQwKTsKIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMy5qcyBiL0pTVGVzdHMvc3RyZXNz
L2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMy5qcwppbmRleCAxMTc3Y2I5NTgx
MTMwN2JiNjY3ZDM5MGM2OWFjZGU3MjJmNzFlNDRiLi4xMDI0MDk2Y2UxYjM1YmYyMjBmMGE1YTE5
MGExMTkyNTlmNDk2NzE4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3Qt
cmVkZWNsYXJhdGlvbi1zZXR0aW5nLTMuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNv
bnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy0zLmpzCkBAIC03LDExICs3LDExIEBAIGZ1bmN0aW9u
IGFzc2VydChiKSB7CiAKIHNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZE5vdFRocm93
KCk7IC8vIEFsbG93IGR1cGxpY2F0ZSBjb25zdCBkZWNsYXJhdGlvbnMgYXQgdGhlIGdsb2JhbCBs
ZXZlbC4KIAotbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2ZpcnN0
LmpzIik7Citsb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3Qu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBhc3NlcnQoZm9vID09PSAyMCk7CiBsZXQgdGhyZXcg
PSBmYWxzZTsKIHRyeSB7Ci0gICAgbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1z
ZXR0aW5nL3N0cmljdC5qcyIpOyAvLyBXZSBpZ25vcmUgdGhlIHNldHRpbmcgYW5kIGFsd2F5cyB0
aHJvdyBhbiBlcnJvciB3aGVuIGluIHN0cmljdCBtb2RlIQorICAgIGxvYWQoIi4vZ2xvYmFsLWNv
bnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9zdHJpY3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7
IC8vIFdlIGlnbm9yZSB0aGUgc2V0dGluZyBhbmQgYWx3YXlzIHRocm93IGFuIGVycm9yIHdoZW4g
aW4gc3RyaWN0IG1vZGUhCiB9IGNhdGNoKGUpIHsKICAgICB0aHJldyA9IHRydWU7CiB9CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5n
LTQuanMgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5n
LTQuanMKaW5kZXggZDk2YTNkNmUyZTUzYTE2YzIyNzk5MWJhZjNlNmY3ZjRlMTI1YTEzMi4uMWZm
N2Q3NmIyNzkyMmYyMmVmZWM3MGZjMGU5MmE1MTA2NTUyYTczMCAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy00LmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNC5qcwpAQCAt
NywxMSArNywxMSBAQCBmdW5jdGlvbiBhc3NlcnQoYikgewogCiBzZXRHbG9iYWxDb25zdFJlZGVj
bGFyYXRpb25TaG91bGROb3RUaHJvdygpOyAvLyBBbGxvdyBkdXBsaWNhdGUgY29uc3QgZGVjbGFy
YXRpb25zIGF0IHRoZSBnbG9iYWwgbGV2ZWwuCiAKLWxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVj
bGFyYXRpb24tc2V0dGluZy9maXJzdC5qcyIpOworbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNs
YXJhdGlvbi1zZXR0aW5nL2ZpcnN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogYXNzZXJ0KGZv
byA9PT0gMjApOwogbGV0IHRocmV3ID0gZmFsc2U7CiB0cnkgewotICAgIGxvYWQoIi4vZ2xvYmFs
LWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9sZXQuanMiKTsgLy8gUmVkZWNsYXJhdGlvbiBh
ICdsZXQnIHZhcmlhYmxlIHNob3VsZCB0aHJvdyBiZWNhdXNlIHRoaXMgZG9lc24ndCBicmVhayBi
YWNrd2FyZHMgY29tcGF0LgorICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24t
c2V0dGluZy9sZXQuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7IC8vIFJlZGVjbGFyYXRpb24gYSAn
bGV0JyB2YXJpYWJsZSBzaG91bGQgdGhyb3cgYmVjYXVzZSB0aGlzIGRvZXNuJ3QgYnJlYWsgYmFj
a3dhcmRzIGNvbXBhdC4KIH0gY2F0Y2goZSkgewogICAgIHRocmV3ID0gdHJ1ZTsKIH0KZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmct
NS5qcyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmct
NS5qcwppbmRleCBlM2VhMDkxODE0Y2RiYTBjYzRkMGUzODQ0MjA3NTZjYjU2ZWJlMGRiLi5mYjEy
M2Q2MjYzMGU3NzUwYTcwNTg1NWQwMGQwZTJmYWJhMzMzNzRjIDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTUuanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy01LmpzCkBAIC03
LDExICs3LDExIEBAIGZ1bmN0aW9uIGFzc2VydChiKSB7CiAKIHNldEdsb2JhbENvbnN0UmVkZWNs
YXJhdGlvblNob3VsZE5vdFRocm93KCk7IC8vIEFsbG93IGR1cGxpY2F0ZSBjb25zdCBkZWNsYXJh
dGlvbnMgYXQgdGhlIGdsb2JhbCBsZXZlbC4KIAotbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNs
YXJhdGlvbi1zZXR0aW5nL2xldC5qcyIpOworbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJh
dGlvbi1zZXR0aW5nL2xldC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGFzc2VydChmb28gPT09
IDUwKTsKIGxldCB0aHJldyA9IGZhbHNlOwogdHJ5IHsKLSAgICBsb2FkKCIuL2dsb2JhbC1jb25z
dC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiKTsgLy8gUmVkZWNsYXJhdGlvbiBvZiBh
ICdsZXQnIHRvICdjb25zdCcgc2hvdWxkIGFsd2F5cyB0aHJvdyBiZWNhdXNlIGl0IGlzbid0IGJy
ZWFraW5nIGJhY2t3YXJkcyBjb21wYXQuCisgICAgbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNs
YXJhdGlvbi1zZXR0aW5nL2ZpcnN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOyAvLyBSZWRlY2xh
cmF0aW9uIG9mIGEgJ2xldCcgdG8gJ2NvbnN0JyBzaG91bGQgYWx3YXlzIHRocm93IGJlY2F1c2Ug
aXQgaXNuJ3QgYnJlYWtpbmcgYmFja3dhcmRzIGNvbXBhdC4KIH0gY2F0Y2goZSkgewogICAgIHRo
cmV3ID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1y
ZWRlY2xhcmF0aW9uLXNldHRpbmcuanMgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVk
ZWNsYXJhdGlvbi1zZXR0aW5nLmpzCmluZGV4IGFlZDFiNDFjNGFhMzY4ZWFhOTBkMjZkOTVjYzNh
NDNlYzNjY2QwZTIuLjRjOTQzZGU2M2E2OGVjYjI1ODVkZjdiYTg3YWUyNmY5NzhkODY4YzggMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRp
bmcuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0
dGluZy5qcwpAQCAtNyw3ICs3LDcgQEAgZnVuY3Rpb24gYXNzZXJ0KGIpIHsKIAogc2V0R2xvYmFs
Q29uc3RSZWRlY2xhcmF0aW9uU2hvdWxkTm90VGhyb3coKTsgLy8gQWxsb3cgZHVwbGljYXRlIGNv
bnN0IGRlY2xhcmF0aW9ucyBhdCB0aGUgZ2xvYmFsIGxldmVsLgogCi1sb2FkKCIuL2dsb2JhbC1j
b25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiKTsKK2xvYWQoIi4vZ2xvYmFsLWNv
bnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9maXJzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
IGFzc2VydChmb28gPT09IDIwKTsKLWxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24t
c2V0dGluZy9zZWNvbmQuanMiKTsKK2xvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24t
c2V0dGluZy9zZWNvbmQuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBhc3NlcnQoZm9vID09PSA0
MCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUt
dmFyaWFibGUuanMgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFy
aWFibGUuanMKaW5kZXggNmVjMjg3YjZkMTYwNDNmODhhZDFmOGVkY2I5YTk3ZDI2ZjdjNzA5ZC4u
NTE2MzM4YzE2ZDkzYTk1ZWFkODRkOWNmYTUwY2JkNWJlMzllOGVkYSAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlLmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS5qcwpAQCAtMzAs
MzUgKzMwLDM1IEBAIGZ1bmN0aW9uIGFzc2VydFByb3BlckVycm9yKGUpIHsKIGFzc2VydEV4cGVj
dGF0aW9ucygpOwogCiB0cnkgewotICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xv
YmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL2ZpcnN0LmpzIik7CisgICAgbG9hZCgiLi9t
dWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvZmly
c3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiB9IGNhdGNoKGUpIHsKICAgICBhc3NlcnRQcm9w
ZXJFcnJvcihlKTsKIH0KIGFzc2VydEV4cGVjdGF0aW9ucygpOwogCiB0cnkgewotICAgIGxvYWQo
Ii4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxl
L3NlY29uZC5qcyIpOworICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxl
eGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL3NlY29uZC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
IH0gY2F0Y2goZSkgewogICAgIGFzc2VydFByb3BlckVycm9yKGUpOwogfQogYXNzZXJ0RXhwZWN0
YXRpb25zKCk7CiAKIHRyeSB7Ci0gICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9i
YWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvdGhpcmQuanMiKTsKKyAgICBsb2FkKCIuL211
bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS90aGly
ZC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIH0gY2F0Y2goZSkgewogICAgIGFzc2VydFByb3Bl
ckVycm9yKGUpOwogfQogYXNzZXJ0RXhwZWN0YXRpb25zKCk7CiAKIHRyeSB7Ci0gICAgbG9hZCgi
Li9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUv
Zm91cnRoLmpzIik7CisgICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4
aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvZm91cnRoLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwog
fSBjYXRjaChlKSB7CiAgICAgYXNzZXJ0UHJvcGVyRXJyb3IoZSk7CiB9CiBhc3NlcnRFeHBlY3Rh
dGlvbnMoKTsKIAogdHJ5IHsKLSAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2Jh
bC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9maWZ0aC5qcyIpOworICAgIGxvYWQoIi4vbXVs
dGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL2ZpZnRo
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRjaChlKSB7CiAgICAgYXNzZXJ0UHJvcGVy
RXJyb3IoZSk7CiB9CkBAIC03MCw3ICs3MCw3IEBAIGFzc2VydEV4cGVjdGF0aW9ucygpOwogdHJ5
IHsKICAgICBzZW50aW5lbCA9ICJiYWQiOwogICAgIGFzc2VydChPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKHRoaXMsICJnbG9iYWxQcm9wZXJ0eSIpLmNvbmZpZ3VyYWJsZSk7Ci0gICAg
bG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFy
aWFibGUvc2l4dGguanMiKTsKKyAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2Jh
bC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9zaXh0aC5qcyIsICJjYWxsZXIgcmVsYXRpdmUi
KTsKIH0gY2F0Y2goZSkgewogICAgIGFzc2VydChmYWxzZSk7CiB9CkBAIC03OSw3ICs3OSw3IEBA
IGFzc2VydEV4cGVjdGF0aW9ucygpOwogdHJ5IHsKICAgICBzZW50aW5lbCA9ICJiYWQiOwogICAg
IGFzc2VydChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMsICJBcnJheSIpLmNv
bmZpZ3VyYWJsZSk7Ci0gICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4
aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvc2V2ZW50aC5qcyIpOworICAgIGxvYWQoIi4vbXVsdGlw
bGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL3NldmVudGgu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiB9IGNhdGNoKGUpIHsKICAgICBhc3NlcnQoZmFsc2Up
OwogfQpAQCAtODgsNyArODgsNyBAQCBhc3NlcnRFeHBlY3RhdGlvbnMoKTsKIHRyeSB7CiAgICAg
c2VudGluZWwgPSAiYmFkIjsKICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2Zvbycs
IHt2YWx1ZTogNSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZX0pOwotICAgIGxv
YWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlh
YmxlL2VpZ2h0aC5qcyIpOworICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFs
LWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL2VpZ2h0aC5qcyIsICJjYWxsZXIgcmVsYXRpdmUi
KTsKIH0gY2F0Y2goZSkgewogICAgIGFzc2VydChmYWxzZSk7CiB9CkBAIC05Niw3ICs5Niw3IEBA
IGFzc2VydEV4cGVjdGF0aW9ucygpOwogCiB0cnkgewogICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eSh0aGlzLCAnYmFyJywge3ZhbHVlOiA1LCBjb25maWd1cmFibGU6IGZhbHNlLCB3cml0YWJsZTog
dHJ1ZX0pOwotICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwt
cmVkZWNsYXJlLXZhcmlhYmxlL25pbnRoLmpzIik7CisgICAgbG9hZCgiLi9tdWx0aXBsZS1maWxl
cy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvbmludGguanMiLCAiY2Fs
bGVyIHJlbGF0aXZlIik7CiB9IGNhdGNoKGUpIHsKICAgICBhc3NlcnRQcm9wZXJFcnJvcihlKTsK
IH0KQEAgLTEwNiw3ICsxMDYsNyBAQCBhc3NlcnQoZXJyb3JDb3VudCA9PT0gNik7CiAKIHRyeSB7
CiAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICd6b28nLCB7dmFsdWU6IHVuZGVmaW5l
ZCwgY29uZmlndXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWV9KTsKLSAgICBsb2FkKCIuL211
bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS90ZW50
aC5qcyIpOworICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwt
cmVkZWNsYXJlLXZhcmlhYmxlL3RlbnRoLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRj
aChlKSB7CiAgICAgYXNzZXJ0UHJvcGVyRXJyb3IoZSk7CiB9CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy9nbG9iYWwtbGV4aWNhbC1yZWRlZmluZS1jb25zdC5qcyBiL0pTVGVzdHMvc3RyZXNz
L2dsb2JhbC1sZXhpY2FsLXJlZGVmaW5lLWNvbnN0LmpzCmluZGV4IDFjNmJhZjdjMzcyMjUyY2Iw
Yzk3YjM1ZmM4NDQ0Zjg1YzA2NmU5MWIuLjk0YWM0YWQzOTQyNTIwODY0YjBkODYyM2U3NWNjMDky
N2M5NGJhYmQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXJlZGVm
aW5lLWNvbnN0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXJlZGVmaW5l
LWNvbnN0LmpzCkBAIC0xLDIgKzEsMiBAQAotbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9n
bG9iYWwtbGV4aWNhbC1yZWRlZmluZS1jb25zdC9maXJzdC5qcyIpOwotbG9hZCgiLi9tdWx0aXBs
ZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlZmluZS1jb25zdC9zZWNvbmQuanMiKTsK
K2xvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWZpbmUtY29u
c3QvZmlyc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7Citsb2FkKCIuL211bHRpcGxlLWZpbGVz
LXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVmaW5lLWNvbnN0L3NlY29uZC5qcyIsICJjYWxsZXIg
cmVsYXRpdmUiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZh
cmlhYmxlLXRkei5qcyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXRk
ei5qcwppbmRleCBlODhjZmQ2YTI1NjIzN2ZlM2MyZDU3ZmQxMWQ1MDAxNTY2MDg5YTBhLi5lMmEx
ZTE3MWMxNzNlZjBiMWI2YWZlZDgzNmFhNGIzNTJlZmQ1ZWZjIDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3N0cmVzcy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS10ZHouanMKKysrIGIvSlNUZXN0cy9zdHJl
c3MvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdGR6LmpzCkBAIC0xLDIgKzEsMiBAQAotbG9hZCgi
Li9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS10ZHovZmlyc3Qu
anMiKTsKLWxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtdmFyaWFi
bGUtdGR6L3NlY29uZC5qcyIpOworbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwt
bGV4aWNhbC12YXJpYWJsZS10ZHovZmlyc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7Citsb2Fk
KCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXRkei9zZWNv
bmQuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9n
bG9iYWwtbGV4aWNhbC12YXJpYWJsZS11bnJlc29sdmVkLXByb3BlcnR5LmpzIGIvSlNUZXN0cy9z
dHJlc3MvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdW5yZXNvbHZlZC1wcm9wZXJ0eS5qcwppbmRl
eCBkNjIyMTQ1NDQxYmEwMWRjYmVjYzU4YmZiOWQ5ZWY4Y2IwNzYzZGRlLi5kZTE5MzhjNjBlMDkz
MGYyZDJjOWU1ZmYxZDc0YjczN2FmMDIwZTg3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9n
bG9iYWwtbGV4aWNhbC12YXJpYWJsZS11bnJlc29sdmVkLXByb3BlcnR5LmpzCisrKyBiL0pTVGVz
dHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXVucmVzb2x2ZWQtcHJvcGVydHkuanMK
QEAgLTEsMiArMSwyIEBACi1sb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhp
Y2FsLXZhcmlhYmxlLXVucmVzb2x2ZWQtcHJvcGVydHkvZmlyc3QuanMiKTsKLWxvYWQoIi4vbXVs
dGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdW5yZXNvbHZlZC1wcm9w
ZXJ0eS9zZWNvbmQuanMiKTsKK2xvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxl
eGljYWwtdmFyaWFibGUtdW5yZXNvbHZlZC1wcm9wZXJ0eS9maXJzdC5qcyIsICJjYWxsZXIgcmVs
YXRpdmUiKTsKK2xvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtdmFy
aWFibGUtdW5yZXNvbHZlZC1wcm9wZXJ0eS9zZWNvbmQuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtcHJvcGVydHktaW50by12YXJpYWJs
ZS1nZXQtZnJvbS1zY29wZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1wcm9wZXJ0eS1pbnRv
LXZhcmlhYmxlLWdldC1mcm9tLXNjb3BlLmpzCmluZGV4IDk0N2M0ZThmMTIyMGQ2MTg4MGY1Y2Rj
NDBiNmFlYzI5OWNhZGExMWEuLjQxZGVlNTk1YjYyNDljODNkMmFlNjUyYjBkZWI0MDk1ODEzYjAy
YTQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1wcm9wZXJ0eS1pbnRvLXZhcmlh
YmxlLWdldC1mcm9tLXNjb3BlLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1wcm9wZXJ0
eS1pbnRvLXZhcmlhYmxlLWdldC1mcm9tLXNjb3BlLmpzCkBAIC02LDcgKzYsNyBAQAogLy8gbm9J
bmxpbmUgYXMgdGhlIGN1cnJlbnQgZ2xvYmFsIG9iamVjdCB3b3VsZCBub3QgaGF2ZSBub0lubGlu
ZSBhcyBhIHByb3BlcnR5CiAvLyBhdCB0aGF0IHBvaW50IGFuZCB3ZSB3b3VsZCBhdHRlbXB0IHRv
IGFjY2VzcyB0aGUgdmFsdWUgYXQgYW4gaW52YWxpZCBvZmZzZXQuCiAKLWxvYWQoInJlc291cmNl
cy9zdGFuZGFsb25lLXByZS5qcyIpOworbG9hZCgicmVzb3VyY2VzL3N0YW5kYWxvbmUtcHJlLmpz
IiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiBub0lubGluZSgpOwogCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9pbXBvcnQtd2l0aC1lbXB0eS1zdHJpbmcuanMgYi9KU1Rlc3RzL3N0cmVzcy9p
bXBvcnQtd2l0aC1lbXB0eS1zdHJpbmcuanMKaW5kZXggZDE3NGVjOWVjZjUxOGMzZmQ0YjAyZTcz
NjQwMTJhMWE2MWRiMzg0My4uYWFhZGU5ODk2M2IzOGRlNTZiZGZlNTc3OWUyYTg5ZDc2MzA1M2Uw
NCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvaW1wb3J0LXdpdGgtZW1wdHktc3RyaW5nLmpz
CisrKyBiL0pTVGVzdHMvc3RyZXNzL2ltcG9ydC13aXRoLWVtcHR5LXN0cmluZy5qcwpAQCAtMSwy
ICsxLDIgQEAKLWltcG9ydCgiIikudGhlbigkdm0uYWJvcnQsIGZ1bmN0aW9uICgpIHsKK2ltcG9y
dCgiIikudGhlbigkdm0uYWJvcnQsIGZ1bmN0aW9uIChlKSB7CiB9KTsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL2pzb25wLWxpdGVyYWwtcGFyc2VyLXNlbWljb2xvbi1pcy1ub3QtYXNzaWdu
bWVudC5qcyBiL0pTVGVzdHMvc3RyZXNzL2pzb25wLWxpdGVyYWwtcGFyc2VyLXNlbWljb2xvbi1p
cy1ub3QtYXNzaWdubWVudC5qcwppbmRleCA4MWFhNjJhZWNiZmNmNTZiZWZkYzlhNDViYzQxMjZl
MjM5MTI5NjM2Li5kYWFhZTFiYmVlOWRhOTFlZTg4MGM4NGExMjc4YjEzZTVjN2NhZjA0IDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9qc29ucC1saXRlcmFsLXBhcnNlci1zZW1pY29sb24taXMt
bm90LWFzc2lnbm1lbnQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvanNvbnAtbGl0ZXJhbC1wYXJz
ZXItc2VtaWNvbG9uLWlzLW5vdC1hc3NpZ25tZW50LmpzCkBAIC0xLDQgKzEsNCBAQAogeCA9IHVu
ZGVmaW5lZDsKLWxvYWQoIi4vcmVzb3VyY2VzL2xpdGVyYWwtcGFyc2VyLXRlc3QtY2FzZS5qcyIp
OworbG9hZCgiLi9yZXNvdXJjZXMvbGl0ZXJhbC1wYXJzZXItdGVzdC1jYXNlLmpzIiwgImNhbGxl
ciByZWxhdGl2ZSIpOwogaWYgKHggIT09IHVuZGVmaW5lZCkKICAgICB0aHJvdyBuZXcgRXJyb3Io
IkJhZCByZXN1bHQiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX2FkZC5qcyBiL0pT
VGVzdHMvc3RyZXNzL29wX2FkZC5qcwppbmRleCA2YjYxM2ZiNjY2ODg2OTM0MGJlNjZlMDQ1Mzkz
MmQ5MjE4YjEyM2ZiLi40ZGZiYzJkM2YzZjFiMDZkMDVlZTJhMjk3M2RiNjAzMTNkNzU5MDg3IDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9hZGQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mv
b3BfYWRkLmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0
IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAv
LyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYg
bmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgi
Li9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8v
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRhbmQuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRh
bmQuanMKaW5kZXggNDQ1NTVmMTk2Njg5ZTRmZDNjNTlhMzYwZjQ2Njk0NDBmMTc0OTUyMi4uZjdi
ZTRkYTA4ODgyOGIzZDJjYjVmZDAyYjBiOWEwMmU1N2UwZmNlNyAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9zdHJlc3Mvb3BfYml0YW5kLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX2JpdGFuZC5qcwpA
QCAtNCw3ICs0LDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2ls
bCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBT
ZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAot
bG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3Mvb3BfYml0b3IuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRvci5qcwppbmRleCBj
MTk4NDkwZWI0NTU1ZTcyYjQ0YmU4ZWQwMjg1NWQ5OTA2ZjgyMzc5Li41MTQyMTcyOGNlZjg3Nzc3
ZjI5OWU3ZjdmZTU5MmFmMTllMzdkNWE1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9i
aXRvci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRvci5qcwpAQCAtNCw3ICs0LDcgQEAK
IC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2ls
ZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRl
c3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJj
ZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRl
c3QgY29uZmlndXJhdGlvbiBkYXRhOgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfYml0
eG9yLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfYml0eG9yLmpzCmluZGV4IDBmZjlmMjcyNTYzNDEz
MDc4NGQ1NmFkNzgwYWQxYmU4MDc4MTc5NGMuLjE0ZjY5NTQ2MDk1ZTNkOTU4NTFlNjc5OGE5YjUy
MTMwMzI4Y2NjNjkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX2JpdHhvci5qcworKysg
Yi9KU1Rlc3RzL3N0cmVzcy9vcF9iaXR4b3IuanMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwg
Z29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBu
b3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBk
ZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1v
cC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3Vy
YXRpb24gZGF0YToKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX2Rpdi1Db25zdFZhci5q
cyBiL0pTVGVzdHMvc3RyZXNzL29wX2Rpdi1Db25zdFZhci5qcwppbmRleCA0NTA4NjU0M2FkNjEy
YmM0NDc2MGJjYzM3ZTY1NDVjN2RlNzk3Zjk1Li44YTY4NjQzMWZjOTVmNDI0NGVlOGI3YjNmMjRj
OTJiOTQ2OTVjYjI5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtQ29uc3RWYXIu
anMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfZGl2LUNvbnN0VmFyLmpzCkBAIC00LDcgKzQsNyBA
QAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBz
aWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3At
dGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRl
c3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8g
VGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3Vy
Y2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gImRpdiI7CiB2YXIgb3AgPSAi
LyI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4v
cmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRl
c3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiQ29uc3RW
YXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYt
VmFyQ29uc3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFyQ29uc3QuanMKaW5kZXggOTFm
ZjJmMTRhZDg5NzdlN2QwNGU1NWFhOTEwMmI0NzZjZmYxMjM5Yi4uMzMzNTYxYjU2NDAzMDU1ZTdh
MThiYmE4YjYyZWI2NWMxYmYxN2JjYSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfZGl2
LVZhckNvbnN0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX2Rpdi1WYXJDb25zdC5qcwpAQCAt
NCw3ICs0LDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0
ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUg
YmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9h
ZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2Jp
bmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTIsNyArMTIsNyBAQCBsb2Fk
KCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJkaXYiOwog
dmFyIG9wID0gIi8iOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7
Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2
ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBv
cCwgIlZhckNvbnN0IiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3Mvb3BfZGl2LVZhclZhci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX2Rpdi1WYXJWYXIuanMKaW5k
ZXggODI4YTIwMzA0NWQxY2VkZWViMGU5NDQyNGRkZmIyZWEzODhlYTE2ZS4uNjQ5YjgwOTk1MTUy
OTkyNGMyNTI5YzM1MjcyOTM4ZjA4YWYyMTA0OCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mv
b3BfZGl2LVZhclZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFyVmFyLmpzCkBA
IC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxs
IHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNl
ZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1s
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMv
YmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMiw3ICsxMiw3IEBAIGxv
YWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gImRpdiI7
CiB2YXIgb3AgPSAiLyI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMi
KTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUs
IG9wLCAiVmFyVmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3Mvb3BfbHNoaWZ0LUNvbnN0VmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LUNvbnN0
VmFyLmpzCmluZGV4IGMwYjM5OTRjNTk4YmQxZjlmYjA1NjZlMDc3MjA2OTM5YzlkMmM1OTEuLjg3
OTM1OTgyYzcxYWVlMjE4ZDkwN2NkODYxYjVmNjY5YjBhY2ZhNzEgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvc3RyZXNzL29wX2xzaGlmdC1Db25zdFZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9s
c2hpZnQtQ29uc3RWYXIuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0
aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwg
cHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0
aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7
Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUi
KTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToK
QEAgLTExLDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsK
IHZhciBvcE5hbWUgPSAibHNoaWZ0IjsKIHZhciBvcCA9ICI8PCI7CiAKLWxvYWQoIi4vcmVzb3Vy
Y2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12
YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJp
bmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiQ29uc3RWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9sc2hpZnQtVmFyQ29uc3QuanMgYi9KU1Rl
c3RzL3N0cmVzcy9vcF9sc2hpZnQtVmFyQ29uc3QuanMKaW5kZXggMGUzMmJhNjkyZjBlYTg1MmEx
ZDAxMDg0MWFlOTIzODg3N2FkOGQ1YS4uYmUzODVjZmNjZjU0YTYwNTA5NzA0MjkxMTJkMmRiYWU0
OTg5YTIxOSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LVZhckNvbnN0Lmpz
CisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX2xzaGlmdC1WYXJDb25zdC5qcwpAQCAtMyw3ICszLDcg
QEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUg
c2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9w
LXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10
ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8v
IFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJsc2hpZnQiOwogdmFyIG9w
ID0gIjw8IjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9h
ZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
IAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJW
YXJDb25zdCIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29w
X2xzaGlmdC1WYXJWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9sc2hpZnQtVmFyVmFyLmpzCmlu
ZGV4IDg3MzQ5YjhmZTQ3MzkwOTg0Y2E5NDgzMGI3NDVkODUxNzEzYzFiNDguLjUzODFmZDQyNWFm
YjE0Nzk4NTQwMzk3N2QxMjA5OTFmYWZmMjQ5MWUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNz
L29wX2xzaGlmdC1WYXJWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LVZhclZh
ci5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1
bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJy
b3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRl
ZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVz
b3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEs
NyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9
ICJsc2hpZnQiOwogdmFyIG9wID0gIjw8IjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9w
LXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJj
YWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVz
dHMsIG9wTmFtZSwgb3AsICJWYXJWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy9vcF9tb2QtQ29uc3RWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tb2Qt
Q29uc3RWYXIuanMKaW5kZXggNDg5MTg4Y2VkMWFhNzEyNThlOWZlZDBhNDczMWZiMjI1ZmVlY2M2
MS4uYmFlYTdlOGJhNzNkYTQ5ZjZmNzI3NjcxNDdhNjc2MDk3MmE3OGQyNiAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3Mvb3BfbW9kLUNvbnN0VmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29w
X21vZC1Db25zdFZhci5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRo
aXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBw
cmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRp
b25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsK
K2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpA
QCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwog
dmFyIG9wTmFtZSA9ICJtb2QiOwogdmFyIG9wID0gIiUiOwogCi1sb2FkKCIuL3Jlc291cmNlcy9i
aW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVz
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlU
ZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIkNvbnN0VmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbW9kLVZhckNvbnN0LmpzIGIvSlNUZXN0cy9zdHJl
c3Mvb3BfbW9kLVZhckNvbnN0LmpzCmluZGV4IGYwM2E0ZDQwNGFlYWY3ZjBjYjNmZWYzZGMwNmU1
ZmY1MTY2YzY1NTUuLjM5MWMyMWE2NDQwN2ZhY2YzZDM0MGU4ZjdhZGVhOTBlNjBkM2YxMjYgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX21vZC1WYXJDb25zdC5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy9vcF9tb2QtVmFyQ29uc3QuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29l
cyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3Qs
IGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1
Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10
ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIg
cmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRp
b24gZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRl
c3QuanMiKTsKIHZhciBvcE5hbWUgPSAibW9kIjsKIHZhciBvcCA9ICIlIjsKIAotbG9hZCgiLi9y
ZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5
LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVy
YXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJDb25zdCIsIHZhbHVlcywgdmFs
dWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX21vZC1WYXJWYXIuanMgYi9KU1Rl
c3RzL3N0cmVzcy9vcF9tb2QtVmFyVmFyLmpzCmluZGV4IDEzNDM2YTk3ZTIwNTVmNmU4NmMxYWE2
ZDUyN2Q0Zjk0YzNkOGYxN2MuLmNmMDUxOTRmMzAyM2NhNTVkZmFmYjVlNDJjYjkxOWJhODY1MzI4
MDkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX21vZC1WYXJWYXIuanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3Mvb3BfbW9kLVZhclZhci5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBn
b2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5v
dCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRl
YnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9w
LXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxl
ciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJh
dGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3At
dGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJtb2QiOwogdmFyIG9wID0gIiUiOwogCi1sb2FkKCIu
L3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5h
cnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2Vu
ZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhclZhciIsIHZhbHVlcywgdmFs
dWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX211bC1Db25zdFZhci5qcyBiL0pT
VGVzdHMvc3RyZXNzL29wX211bC1Db25zdFZhci5qcwppbmRleCAzZGUzNjRlMWZiOTk3ZjNlNDc2
NDZkYWE3NzlkNGMyYWQ5MzM2OWRjLi5lY2Y5OGUyMWEwYWU2MDhjNTc2ODQ0ZjY4OTg0NzNlOTI3
ZDJhN2UzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtQ29uc3RWYXIuanMKKysr
IGIvSlNUZXN0cy9zdHJlc3Mvb3BfbXVsLUNvbnN0VmFyLmpzCkBAIC00LDcgKzQsNyBAQAogLy8g
SWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRs
eS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5q
cyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9i
aW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMi
LCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBj
b25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2Jp
bmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gIm11bCI7CiB2YXIgb3AgPSAiKiI7CiAK
LWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3Vy
Y2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0g
W107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiQ29uc3RWYXIiLCB2
YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtVmFyQ29u
c3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtVmFyQ29uc3QuanMKaW5kZXggNDhlMWU3NjU0
OTc2MDY2N2RhZjQ2YWMyYTFiYjE2YmQ3OTM2MDM5Yy4uYzhmY2QwNWRmMjdkZWQ0NTBkZDgxN2Fj
YTA5ZmMwODAzN2U2YWM5MiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbXVsLVZhckNv
bnN0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX211bC1WYXJDb25zdC5qcwpAQCAtNCw3ICs0
LDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5h
dGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5
LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9y
ZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1v
cC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
IC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTIsNyArMTIsNyBAQCBsb2FkKCIuL3Jl
c291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJtdWwiOwogdmFyIG9w
ID0gIioiOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2Fk
KCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwog
CiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZh
ckNvbnN0IiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3Bf
bXVsLVZhclZhci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX211bC1WYXJWYXIuanMKaW5kZXggNWUx
Y2M1ODcyODVkZTRjNWNhMTAzZmZlMzg1MjZkMWVjYTA0M2FlZS4uYjc3NGVjYWRiNzkzZjJhMGY5
ZWJmMTMyZTQ3ODM2YTA3ZTQ1MWY5NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbXVs
LVZhclZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtVmFyVmFyLmpzCkBAIC00LDcg
KzQsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1p
bmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5h
cnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIu
L3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5
LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4v
cmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gIm11bCI7CiB2YXIg
b3AgPSAiKiI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xv
YWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7
CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAi
VmFyVmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3Bf
bmVnYXRlLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbmVnYXRlLmpzCmluZGV4IGQ5OGYwNGRiYzdj
MDVjMGMxZWRkYWE2ZjgwYjRhYWZhYjU4MTZlMTIuLjU1YjAyZGZhYzgzMDNjY2JhMzgzMmZhZWIx
Mjk0NmEwMzA1YWM0N2YgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX25lZ2F0ZS5qcwor
KysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9uZWdhdGUuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBh
bGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJ
ZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIHVuYXJ5LW9wLXRlc3QuanMgZm9y
IGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvdW5hcnkt
b3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdW5hcnktb3AtdGVzdC5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3Vy
YXRpb24gZGF0YToKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3Bvc3RkZWMuanMgYi9K
U1Rlc3RzL3N0cmVzcy9vcF9wb3N0ZGVjLmpzCmluZGV4IGIyZTFmYTcyOTczYzZmNTc2ZDE1YTM4
ODM5OWQwZTY0MDkxMTk5OWEuLjYyOWI4NWJmZWQ0MzQ4MTU2Yzc4NTdmNjA3MTQwN2ZlMTJmYTk3
YjcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3Bvc3RkZWMuanMKKysrIGIvSlNUZXN0
cy9zdHJlc3Mvb3BfcG9zdGRlYy5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdl
bGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQg
d2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgdW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5n
IG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0Lmpz
Iik7Citsb2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2
ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRh
OgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfcG9zdGluYy5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL29wX3Bvc3RpbmMuanMKaW5kZXggMDhhYTM1ZDlkMDg4ZjA5ODQ4ZWMwYjIwNTM0ZGE3NmJk
MzJiY2E5Zi4uM2RmZDJlNWJkOTBmNTljNWY0MzA5NmZlNDE0ZDQyYjliMGJkYTRiZiAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfcG9zdGluYy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9v
cF9wb3N0aW5jLmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0
ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50
CiAvLyBlcnJvcnMuIFNlZSB1bmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBp
ZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL3VuYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQo
Ii4vcmVzb3VyY2VzL3VuYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8v
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9wcmVkZWMuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9wcmVk
ZWMuanMKaW5kZXggYjhjNjU2MjdlYmZjM2I2ZTQxMGQ4NTM4NzhjMWViM2FkNzgwNDQzNS4uNWE5
Y2I0NmQ0YWY4ZTNjNTRlYzg4MDVlODBhYmQxYmRhMjBjMTliZSAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9zdHJlc3Mvb3BfcHJlZGVjLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX3ByZWRlYy5qcwpA
QCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2ls
bCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBT
ZWUgdW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1s
b2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy91
bmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3Mvb3BfcHJlaW5jLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfcHJlaW5jLmpzCmluZGV4IDIy
ZmI2ZWU2MTg3YWU2NTU0ZTNlM2Y1MDg5NGRlYzMzY2YxNTcwNTEuLjFjNzkzZDE2M2M0NDBlMTc5
ZGI3YzkzMmQzYjcyY2NmMmY0ZTA3NzUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3By
ZWluYy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9wcmVpbmMuanMKQEAgLTMsNyArMyw3IEBA
CiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNp
bGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIHVuYXJ5LW9wLXRl
c3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJj
ZXMvdW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdW5hcnktb3AtdGVzdC5q
cyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0
IGNvbmZpZ3VyYXRpb24gZGF0YToKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlm
dC1Db25zdFZhci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1Db25zdFZhci5qcwppbmRl
eCBmMDU5OTMxNDliNGVlOWI0MzYwYjc2Nzc5NDIwOTY4YWViYzdmZDdmLi5mOTk5OTAwMGNmZjIy
MTBhMTY1M2Q0M2I5ZjcwYTkwODhjNGZjMDk5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9v
cF9yc2hpZnQtQ29uc3RWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LUNvbnN0
VmFyLmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1v
ZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBl
cnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVl
ZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9y
ZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsx
MSw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1l
ID0gInJzaGlmdCI7CiB2YXIgb3AgPSAiPj4iOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnkt
b3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwg
ImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0
ZXN0cywgb3BOYW1lLCBvcCwgIkNvbnN0VmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LVZhckNvbnN0LmpzIGIvSlNUZXN0cy9zdHJlc3Mv
b3BfcnNoaWZ0LVZhckNvbnN0LmpzCmluZGV4IDEwMGNkOWJhZDU1ZmRkMTg5OTUzNDE2ZDU0NDBl
MmQzYzMxMDI2ZmYuLmE1YWEwNTE5MWJmYTg3ZjcwZGYxYmRlZWU2ZjM0NzUzY2I2M2MyNGUgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1WYXJDb25zdC5qcworKysgYi9KU1Rl
c3RzL3N0cmVzcy9vcF9yc2hpZnQtVmFyQ29uc3QuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBh
bGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJ
ZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZv
ciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFy
eS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJj
YWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZp
Z3VyYXRpb24gZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5
LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAicnNoaWZ0IjsKIHZhciBvcCA9ICI+PiI7CiAK
LWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3Vy
Y2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0g
W107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyQ29uc3QiLCB2
YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQtVmFy
VmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LVZhclZhci5qcwppbmRleCAxMTY2NjBk
NTgxZWYyNWY4YjZmNDFlYmM5ZWI2MDJiMmMxNjc2ZjFiLi4yZmU4Zjk3YjJiMTg2N2FkZjNlNTY2
ZjhiY2RhOTE3MDcwODkzNjJiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQt
VmFyVmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1WYXJWYXIuanMKQEAgLTMs
NyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVy
bWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJp
bmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQo
Ii4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5h
cnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgi
Li9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAicnNoaWZ0IjsK
IHZhciBvcCA9ICI+PiI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMi
KTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUs
IG9wLCAiVmFyVmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3Mvb3Bfc3ViLUNvbnN0VmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLUNvbnN0VmFyLmpz
CmluZGV4IGM4ZmExZmYwZGMxOGFlNGViNGY3MDAxNDUxMDVkNDk3NTcyYTM4NWEuLmYzMDM0MzUy
ODczMDQxNmYyYTA5NTM5YWM0MTQ2ZTJmYTIzMzYwN2YgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL29wX3N1Yi1Db25zdFZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItQ29uc3RW
YXIuanMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9k
dWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVy
cm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVk
ZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jl
c291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTEyLDcgKzEy
LDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUg
PSAic3ViIjsKIHZhciBvcCA9ICItIjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZh
bHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMs
IG9wTmFtZSwgb3AsICJDb25zdFZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL29wX3N1Yi1WYXJDb25zdC5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX3N1Yi1W
YXJDb25zdC5qcwppbmRleCA5MWU3NDU1ZjQ1NzAwZDgzYmNlZjVlNDY3M2MzYWRkNDlkMTZiYWMy
Li5mMWU1Nzc0MjhkZTMzODkyODg0YjU3ZGZmN2UxODYxMjNhZjIzNjEyIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3N0cmVzcy9vcF9zdWItVmFyQ29uc3QuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3Bf
c3ViLVZhckNvbnN0LmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhp
cyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHBy
aW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlv
bnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwor
bG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7
CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBA
IC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2
YXIgb3BOYW1lID0gInN1YiI7CiB2YXIgb3AgPSAiLSI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2Jp
bmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRl
c3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyQ29uc3QiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItVmFyVmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
b3Bfc3ViLVZhclZhci5qcwppbmRleCA2YjlkMTdjZWY4YTAxNzlhMGU2MDM1YzVmZWRhYzFhZmEx
MjM2YWRmLi5kMGY4ZTllMjAwYzBkM2Q1OWY5MjdjNmQzODA0YTU1N2I5ODllMjljIDEwMDY0NAot
LS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItVmFyVmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L29wX3N1Yi1WYXJWYXIuanMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0
aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwg
cHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0
aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7
Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUi
KTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToK
QEAgLTEyLDcgKzEyLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsK
IHZhciBvcE5hbWUgPSAic3ViIjsKIHZhciBvcCA9ICItIjsKIAotbG9hZCgiLi9yZXNvdXJjZXMv
YmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVl
cy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5
VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LUNvbnN0VmFyLmpzIGIvSlNUZXN0cy9z
dHJlc3Mvb3BfdXJzaGlmdC1Db25zdFZhci5qcwppbmRleCBmZGVlMGJlNmU5NTE3YzMwYWJlY2Ri
NTU3NmY1MWJmNzg3NTczZGJjLi5lYjUxODYwOWRkNzk5NDU4ZmNiYWUxMWM2ZjUwNDlhYjYyYTYz
MDI0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LUNvbnN0VmFyLmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL29wX3Vyc2hpZnQtQ29uc3RWYXIuanMKQEAgLTMsNyArMyw3IEBA
CiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNp
bGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10
ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3Vy
Y2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVz
dC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBU
ZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJj
ZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAidXJzaGlmdCI7CiB2YXIgb3Ag
PSAiPj4+IjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9h
ZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
IAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJD
b25zdFZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29w
X3Vyc2hpZnQtVmFyQ29uc3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LVZhckNvbnN0
LmpzCmluZGV4IDhiNGFjZWRhYmIzNWUxYmIyMzFiZjdmM2I2OTQwOTMyNzgxODg5ZGMuLjI4ZGEw
NTAzZWQyOWRhMTcyYjVmMTI3ZmM2OGNlMmU5NzI4YmI0YWQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
c3RyZXNzL29wX3Vyc2hpZnQtVmFyQ29uc3QuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfdXJz
aGlmdC1WYXJDb25zdC5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRo
aXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBw
cmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRp
b25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsK
K2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpA
QCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwog
dmFyIG9wTmFtZSA9ICJ1cnNoaWZ0IjsKIHZhciBvcCA9ICI+Pj4iOwogCi1sb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3At
dmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVC
aW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhckNvbnN0IiwgdmFsdWVzLCB2YWx1ZXMp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC1WYXJWYXIuanMgYi9KU1Rl
c3RzL3N0cmVzcy9vcF91cnNoaWZ0LVZhclZhci5qcwppbmRleCBjYjE0YWVkZjVmZDFhNzY2ZjBi
N2E5Y2NjYWUyZGFiZDkxOWYxNjRmLi5iODQwMzdhMDJjMmI3YjgxMzVmNzQxNzJlYzA2NzY5YTI5
YTNiNjViIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LVZhclZhci5qcwor
KysgYi9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LVZhclZhci5qcwpAQCAtMyw3ICszLDcgQEAK
IC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2ls
ZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRl
c3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJj
ZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRl
c3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNl
cy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJ1cnNoaWZ0IjsKIHZhciBvcCA9
ICI+Pj4iOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2Fk
KCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwog
CiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZh
clZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3JlZ3Jl
c3MtMTU5Nzc5LTEuanMgYi9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE1OTc3OS0xLmpzCmluZGV4
IGIwNzE1MWQ1YWEyZWUyMDA1ODVlZGFhMTkyNjBhN2NlYTI1OTIzNTcuLmVlOWZlMjA3NzQzMjBl
YjRiNjE3Mzc3YzgzNTYzOWVjYjE0MDBlNTYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3Jl
Z3Jlc3MtMTU5Nzc5LTEuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMS5q
cwpAQCAtMTI5MCw3ICsxMjkwLDcgQEAgZnVuY3Rpb24gbWFrZVVzZVJlZ3Jlc3Npb25UZXN0KGQs
IGIpCiAgICAgICAgIGJyZWFrOwogICAgICAgZGVmYXVsdDoKICAgICAgICAgCi0gICAgICAgIHMg
Kz0gIi8qIHJlZ3Jlc3Npb24tdGVzdC1sb2FkICovICIgKyAibG9hZCgiICsgc2ltcGxlU291cmNl
KGZpbGUpICsgIik7IjsKKyAgICAgICAgcyArPSAiLyogcmVncmVzc2lvbi10ZXN0LWxvYWQgKi8g
IiArICJsb2FkKCIgKyBzaW1wbGVTb3VyY2UoZmlsZSkgKyAiLCAiY2FsbGVyIHJlbGF0aXZlIik7
IjsKICAgICAgICAgYnJlYWs7CiAgICAgICAKICAgICB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy9yZWdyZXNzLTE1OTc3OS0yLmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3Nzkt
Mi5qcwppbmRleCA1ODc5ZWI5MWZmNzFjNzUxZTU3ZDQ1MjA1MDk1ZDFkNDNkM2I0ZjQ1Li44OWZi
Y2UwOTUyMmFkMmU1YjNhMTQwZjc4NzRlZWQyZGZiMmRmMTFlIDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3N0cmVzcy9yZWdyZXNzLTE1OTc3OS0yLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3Mt
MTU5Nzc5LTIuanMKQEAgLTEyOTAsNyArMTI5MCw3IEBAIGZ1bmN0aW9uIG1ha2VVc2VSZWdyZXNz
aW9uVGVzdChkLCBiKQogICAgICAgICBicmVhazsKICAgICAgIGRlZmF1bHQ6CiAgICAgICAgIAot
ICAgICAgICBzICs9ICIvKiByZWdyZXNzaW9uLXRlc3QtbG9hZCAqLyAiICsgImxvYWQoIiArIHNp
bXBsZVNvdXJjZShmaWxlKSArICIpOyI7CisgICAgICAgIHMgKz0gIi8qIHJlZ3Jlc3Npb24tdGVz
dC1sb2FkICovICIgKyAibG9hZCgiICsgc2ltcGxlU291cmNlKGZpbGUpICsgIiwgImNhbGxlciBy
ZWxhdGl2ZSIpOyI7CiAgICAgICAgIGJyZWFrOwogICAgICAgCiAgICAgfQpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1
bmN0aW9ucy5qcyBiL0pTVGVzdHMvc3RyZXNzL3Jlc291cmNlcy90eXBlZGFycmF5LWNvbnN0cnVj
dG9yLWhlbHBlci1mdW5jdGlvbnMuanMKaW5kZXggYmYzNGRiNGM2YWU2YWVmYzdjZjk3M2IxYjVj
NjE4N2VhNjY5YjRlNy4uNzJiMDgxNDFiMTE1YmIyMmQ1OGI2ZTg3YmY0ZGM3MjVjZjNiZmQ5YyAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0
b3ItaGVscGVyLWZ1bmN0aW9ucy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvdHlw
ZWRhcnJheS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzCkBAIC0xLDQgKzEsNCBAQAot
bG9hZCgiLi9yZXNvdXJjZXMvc3RhbmRhbG9uZS1wcmUuanMiKTsKK2xvYWQoIi4vc3RhbmRhbG9u
ZS1wcmUuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKICJ1c2Ugc3RyaWN0IjsKIApkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVu
Y3Rpb25zLmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxw
ZXItZnVuY3Rpb25zLmpzCmluZGV4IGM5MTViMjY5N2M5MzFiZTgyMDFiY2EyMTNmNzJiZDZkMTgx
NDc4ZWIuLjU3OWQ4MDEwNjM1NWMyMmI2ZjczZWU4YTE2MDAyM2NmZTI5MzdmNWYgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0
aW9ucy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhl
bHBlci1mdW5jdGlvbnMuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy9zdGFu
ZGFsb25lLXByZS5qcyIpOworbG9hZCgiLi9zdGFuZGFsb25lLXByZS5qcyIsICJjYWxsZXIgcmVs
YXRpdmUiKTsKIAogdmFyIHR5cGVkQXJyYXlzID0gW0ludDhBcnJheSwgVWludDhBcnJheSwgVWlu
dDhDbGFtcGVkQXJyYXksIEludDE2QXJyYXksIFVpbnQxNkFycmF5LCBJbnQzMkFycmF5LCBVaW50
MzJBcnJheSwgRmxvYXQzMkFycmF5LCBGbG9hdDY0QXJyYXldOwogCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1hbm9ueW1vdXMtZnVuY3Rpb24uanMgYi9KU1Rl
c3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1hbm9ueW1vdXMtZnVuY3Rpb24uanMKaW5kZXgg
NTg3NmRmNzRjYzU2NDMzZWY2MTJkZjU1ZjEzODZhODdiNTNlMGY0ZC4uYTgyMWYxNzQ1NzY2MDk1
NWNkOTcxMTkyYjRmNDdlY2UzZjg5ZmRjZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2Ft
cGxpbmctcHJvZmlsZXItYW5vbnltb3VzLWZ1bmN0aW9uLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L3NhbXBsaW5nLXByb2ZpbGVyLWFub255bW91cy1mdW5jdGlvbi5qcwpAQCAtMSw1ICsxLDUgQEAK
IGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpKSB7Ci0gICAgbG9hZCgiLi9z
YW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIik7CisgICAgbG9hZCgiLi9zYW1w
bGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwog
CiAgICAgZnVuY3Rpb24gZm9vKGYpIHsKICAgICAgICAgZigpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItYmFzaWMuanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1w
bGluZy1wcm9maWxlci1iYXNpYy5qcwppbmRleCBjMTIyODcwZGFkZjJhMzYxMDYwNGJlZWYzZGY2
YTFhYzRjMDZiMTBmLi5hNzY3ZDBiNDcxYjcxYzkwNTFlYzQ2MTkxY2EzOWMzNTM0MGY2ZTBhIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1iYXNpYy5qcworKysg
Yi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1iYXNpYy5qcwpAQCAtMSw1ICsxLDUg
QEAKIGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpKSB7Ci0gICAgbG9hZCgi
Li9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIik7CisgICAgbG9hZCgiLi9z
YW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogCiAgICAgZnVuY3Rpb24gYmFyKHkpIHsKICAgICAgICAgbGV0IHg7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1ib3VuZC1mdW5jdGlvbi1uYW1lLmpzIGIv
SlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItYm91bmQtZnVuY3Rpb24tbmFtZS5qcwpp
bmRleCA3ZWJhYTQzM2ExMjE4YjY3N2RmOGVjNmE0MTZkZGQxMTQ5ZTExZTJlLi5mMzc3NjI5ODk1
ODU2NWQ5MDdjYjM1NjBjNmE3MzM5M2EwN2I2M2ZhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVz
cy9zYW1wbGluZy1wcm9maWxlci1ib3VuZC1mdW5jdGlvbi1uYW1lLmpzCisrKyBiL0pTVGVzdHMv
c3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWJvdW5kLWZ1bmN0aW9uLW5hbWUuanMKQEAgLTEsNSAr
MSw1IEBACiBpZiAocGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJvZmlsZXIoKSkgewotICAgIGxv
YWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIpOworICAgIGxvYWQo
Ii4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIsICJjYWxsZXIgcmVsYXRp
dmUiKTsKIAogICAgIGZ1bmN0aW9uIGZvbygpIHsKICAgICAgICAgbGV0IG8gPSB7fTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWRlZXAtc3RhY2suanMgYi9K
U1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1kZWVwLXN0YWNrLmpzCmluZGV4IGMzMzk2
OTE2Mzg4NDE3YmY5Y2NkNmY3NGNiY2M4NWFhYzk1MDYwODMuLmIxZTM1NWE0OTQ5NTc5ODdhMjNj
ZmI1YzQ3NTk2ZTkwYjNiOWFkNWMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5n
LXByb2ZpbGVyLWRlZXAtc3RhY2suanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJv
ZmlsZXItZGVlcC1zdGFjay5qcwpAQCAtMSw1ICsxLDUgQEAKIGlmIChwbGF0Zm9ybVN1cHBvcnRz
U2FtcGxpbmdQcm9maWxlcigpKSB7Ci0gICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1w
bGluZ1Byb2ZpbGVyLmpzIik7CisgICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGlu
Z1Byb2ZpbGVyLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAgICAgZnVuY3Rpb24gZm9vKHgp
IHsgCiAgICAgICAgIGxldCBvID0ge307CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1w
bGluZy1wcm9maWxlci1kaXNwbGF5LW5hbWUuanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1w
cm9maWxlci1kaXNwbGF5LW5hbWUuanMKaW5kZXggZGFiNzEwODBhNzVjYWNiNTlkNTg5ZWY4YzAx
NWVhZGNlNjY1NTVmNS4uNWQ5NzljMWU2YmI3Mjc0NDljMTRmZDA0M2U2OTQxMTViM2QzZWFjNCAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItZGlzcGxheS1uYW1l
LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWRpc3BsYXktbmFtZS5q
cwpAQCAtMSw1ICsxLDUgQEAKIGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigp
KSB7Ci0gICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIik7
CisgICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwgImNh
bGxlciByZWxhdGl2ZSIpOwogCiAgICAgZnVuY3Rpb24gZm9vKCkgewogICAgICAgICBsZXQgbyA9
IHt9OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItaW50ZXJu
YWwtZnVuY3Rpb24tbmFtZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWlu
dGVybmFsLWZ1bmN0aW9uLW5hbWUuanMKaW5kZXggODg5MmNhMzUwM2M5MDQ5M2E5YWM1YWYzNGM5
YTA0NmYyOTBkMTQxOS4uYWNmYzZjYmUxNjlmZTA5NzNhYjg5Mjc5OTNjODQxNjUzYTRkN2ExNyAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItaW50ZXJuYWwtZnVu
Y3Rpb24tbmFtZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1pbnRl
cm5hbC1mdW5jdGlvbi1uYW1lLmpzCkBAIC0xLDUgKzEsNSBAQAogaWYgKHBsYXRmb3JtU3VwcG9y
dHNTYW1wbGluZ1Byb2ZpbGVyKCkpIHsKLSAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3Nh
bXBsaW5nUHJvZmlsZXIuanMiKTsKKyAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBs
aW5nUHJvZmlsZXIuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKICAgICBmdW5jdGlvbiBmb28o
KSB7CiAgICAgICAgIGxldCB4OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmct
cHJvZmlsZXItbWljcm90YXNrcy5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVy
LW1pY3JvdGFza3MuanMKaW5kZXggY2UzNWQxNmFiMWJhYjI3NjA1MTAyNTc0Y2E1MmEzNGMwYTQz
NmEwMC4uOWRiMTg2NjJhNDhiNjgyY2NkN2YxMDY4YmQzNWM4MzBlZjQyNmM5YiAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItbWljcm90YXNrcy5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1taWNyb3Rhc2tzLmpzCkBAIC0xLDcgKzEs
NyBAQAogdmFyIGFib3J0ID0gJHZtLmFib3J0OwogCiBpZiAocGxhdGZvcm1TdXBwb3J0c1NhbXBs
aW5nUHJvZmlsZXIoKSkgewotICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQ
cm9maWxlci5qcyIpOworICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9m
aWxlci5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogICAgIGxldCB0cmVlID0gbnVsbDsKICAg
ICBmdW5jdGlvbiB0ZXN0UmVzdWx0cygpIHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3Nh
bXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2Ft
cGxpbmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24uanMKaW5kZXggYmE5ZTU2ZTZkODUxZDRk
YzBhNjJhMWNkMjYxMzJhNjBhZTYwNmM1Yy4uNTJkNDVlMDQ3MTFiZWNlNWJlNmMwZWE5NGY1ZDBl
ZDQ4MzQzMTA1YiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXIt
d2FzbS1uYW1lLXNlY3Rpb24uanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmls
ZXItd2FzbS1uYW1lLXNlY3Rpb24uanMKQEAgLTY1LDcgKzY1LDcgQEAgaWYgKHBsYXRmb3JtU3Vw
cG9ydHNTYW1wbGluZ1Byb2ZpbGVyKCkgJiYgJHZtLmlzV2FzbVN1cHBvcnRlZCgpKSB7CiAgICAg
Y29uc3QgaW5zdGFuY2UgPSBjb21waWxlKHdhc21GaWxlLCBpbXBvcnRPYmplY3QpOwogICAgIGNv
bnN0IHJlc3VsdCA9IGluc3RhbmNlLmV4cG9ydHMuX3BhcnJvdCgxKTsKIAotICAgIGxvYWQoIi4v
c2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIpOworICAgIGxvYWQoIi4vc2Ft
cGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
ICAgICB2YXIgd2FzbUVudHJ5ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIHJldHVybiBpbnN0YW5j
ZS5leHBvcnRzLl9wYXJyb3QoMSk7CiAgICAgfTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9m
aWxlci13YXNtLmpzCmluZGV4IDdhZDY1ZDFlMmUwMDJiOTllN2ZiMjc4NWQzZmZmNzQyNzJmZTQ4
MDMuLjlmODc3ZDcxOGZkZjJkNGExMGFiOWVmZjFjNjBhNWE2MmJmZTFlNTUgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMKKysrIGIvSlNUZXN0cy9z
dHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qcwpAQCAtMSw3ICsxLDcgQEAKIC8vQCBydW5E
ZWZhdWx0CiAKIGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpICYmICR2bS5p
c1dhc21TdXBwb3J0ZWQoKSkgewotICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxp
bmdQcm9maWxlci5qcyIpOworICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQ
cm9maWxlci5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKICAgICBsZXQgYnVmID0gcmVhZCgiLi9z
YW1wbGluZy1wcm9maWxlci9sb29wLndhc20iLCAiYmluYXJ5Iik7CiAgICAgbGV0IG1vZHVsZSA9
IG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYnVmKTsKICAgICBsZXQgaW5zdGFuY2UgPSBuZXcgV2Vi
QXNzZW1ibHkuSW5zdGFuY2UobW9kdWxlKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3No
YWRvdy1jaGlja2VuLWRpc2FibGVkLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4t
ZGlzYWJsZWQuanMKaW5kZXggYTczMTAwMzE4OGJkNWYzYTEwMDYwZmY1ODdlMDA0ZmIxNDhlZjA0
OS4uYjJjMDVjNDQzZTQ2ZjRlNTVhYWRkZGNhZWU4YmE2ZmIwYjE2MWMwMyAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4tZGlzYWJsZWQuanMKKysrIGIvSlNUZXN0cy9z
dHJlc3Mvc2hhZG93LWNoaWNrZW4tZGlzYWJsZWQuanMKQEAgLTMsNyArMyw3IEBACiAidXNlIHN0
cmljdCI7CiAKIHZhciB2ZXJib3NlID0gZmFsc2U7Ci1sb2FkKCJyZXNvdXJjZXMvc2hhZG93LWNo
aWNrZW4tc3VwcG9ydC5qcyIpOworbG9hZCgicmVzb3VyY2VzL3NoYWRvdy1jaGlja2VuLXN1cHBv
cnQuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBpbml0aWFsaXplKCk7CiAKIChmdW5jdGlvbiB0
ZXN0MSgpIHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NoYWRvdy1jaGlja2VuLWVuYWJs
ZWQuanMgYi9KU1Rlc3RzL3N0cmVzcy9zaGFkb3ctY2hpY2tlbi1lbmFibGVkLmpzCmluZGV4IDE5
Y2Y3M2QwNDAxMTQ2MWJjMGZlNWQ4MzYyYTU0ZDQwZmNhMGRjODAuLmU3ZWJmOWYwYzgxMzQyODRl
NGY4OTRmZGUwMmFjZDRmMDQxZDQzYzcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NoYWRv
dy1jaGlja2VuLWVuYWJsZWQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4t
ZW5hYmxlZC5qcwpAQCAtNiw3ICs2LDcgQEAgdmFyIHNoYWRvd0NoaWNrZW5GdW5jdGlvbnNPblN0
YWNrID0gJHZtLnNoYWRvd0NoaWNrZW5GdW5jdGlvbnNPblN0YWNrOwogCiB2YXIgdmVyYm9zZSA9
IGZhbHNlOwogCi1sb2FkKCJyZXNvdXJjZXMvc2hhZG93LWNoaWNrZW4tc3VwcG9ydC5qcyIpOwor
bG9hZCgicmVzb3VyY2VzL3NoYWRvdy1jaGlja2VuLXN1cHBvcnQuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiBpbml0aWFsaXplKCk7CiAKIChmdW5jdGlvbiB0ZXN0MSgpIHsKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktY29uc3RydWN0b3IuanMgYi9KU1Rlc3RzL3N0cmVz
cy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLmpzCmluZGV4IDBlOGVhZjc0OTg4MDgyYzRiMTQwYjc1
ZjA1NDMzMTExMjJjZGEyYTYuLmIyNDUzNTYyZjIwZjNhYWU4MGJhZDM4NDA1ZDM2OGQwMjZiZGZk
NDUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktY29uc3RydWN0b3IuanMK
KysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci5qcwpAQCAtMSw0ICsx
LDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1
bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci1o
ZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiBsZXQgVHlwZWRBcnJh
eSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihJbnQzMkFycmF5KTsKIApkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1jb3B5V2l0aGluLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlw
ZWRhcnJheS1jb3B5V2l0aGluLmpzCmluZGV4IGU1ZTc5YWEwZTYwOTYxYjBhYTRlNTUwMDI3NjQ3
ZGVkMmFhYWRkODkuLjE2OTA4ODU2YWRhYjIzYTJmZmExM2ZkNjE2NDQyM2FlYmZkMjdiYjggMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktY29weVdpdGhpbi5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWNvcHlXaXRoaW4uanMKQEAgLTEsNCArMSw0IEBACi1s
b2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOwor
bG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAi
Y2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVo
YXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4gZnVuY3Rpb24iKTsK
IAogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWV2ZXJ5LmpzIGIvSlNU
ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1ldmVyeS5qcwppbmRleCBjNGU5NzljYWI1OGFjZDMxNWYy
N2RhNDAyZjM0ZjM2OTA3ZDYwYmJkLi4xZDBhYmJkMTdkNGE4MGY5Nzc2ODkyOWUxZjU0NTMwN2Jk
N2QzYjVhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWV2ZXJ5LmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZXZlcnkuanMKQEAgLTEsNCArMSw0IEBACi1s
b2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOwor
bG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAi
Y2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBi
ZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuZXZlcnkgZnVuY3Rpb24iCiApOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maWxsLmpzIGIvSlNUZXN0cy9z
dHJlc3MvdHlwZWRhcnJheS1maWxsLmpzCmluZGV4IDc1NWI0NDA0N2NhN2E0NDhkMGE5MzEyYjM1
MjJiM2NiOTgzMDE0YzIuLmZkNTM3ODg0MWQ4ZGU4ODEzODk3NjlhODczMDBiYWU4MzQ5ZThhNjQg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmlsbC5qcworKysgYi9KU1Rl
c3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbGwuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jl
c291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9y
ZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJl
bGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBv
ZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuZmlsbCBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbHRlci5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5
cGVkYXJyYXktZmlsdGVyLmpzCmluZGV4IDdjZTdiYmY2MzY3OTdiZmRlMTM1MzVhYzRmNDgxODdj
NWIwYTQ1MDYuLjNhMjIzZGY0ZmY3NjY3NDk4N2NhNGYxNjRkYTM0YjEzOTFkNDhiNDAgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmlsdGVyLmpzCisrKyBiL0pTVGVzdHMv
c3RyZXNzL3R5cGVkYXJyYXktZmlsdGVyLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNv
dXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVz
b3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxh
dGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2Yg
dGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLmZpbHRlciBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbmQuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBl
ZGFycmF5LWZpbmQuanMKaW5kZXggYjE5MDJjNDVhMGVlODJlNWQwOWFlMmIxNzI1NTNlOGJmOTU5
OTJhZS4uZTg2MDViMjIxMjA2ZjQzZjhiNGU5M2Y3MGRhYWY3M2UyY2VjNTI4ZCAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maW5kLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktZmluZC5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5
cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90
eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
IGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBl
ZEFycmF5LnByb3RvdHlwZS5maW5kIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL3R5cGVkYXJyYXktZmluZEluZGV4LmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJh
eS1maW5kSW5kZXguanMKaW5kZXggZTAxNWI3YzVhNTI5MTlkYzUyN2FjZjFmMmY4MmFlYjU5ZmUz
MWVkNy4uOTA4NjIyMjQwMTUyMGY4NTUzYjkzNjY5MTBlMGQwMTM2NmFiMTUxNCAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maW5kSW5kZXguanMKKysrIGIvSlNUZXN0cy9z
dHJlc3MvdHlwZWRhcnJheS1maW5kSW5kZXguanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jl
c291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9y
ZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJl
bGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBv
ZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuZmluZEluZGV4IGZ1bmN0aW9uIgogKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZm9yRWFjaC5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktZm9yRWFjaC5qcwppbmRleCAwZDY5ZmZlZDRjNDY0ODE0YWZhMTBhYjBh
ZmNlNzdiZTQwMDM3Mzg1Li4yYWNmMjViYzJmMzNhNTgzYjg3MzdkZWRiMDczZDA2MzFmNmI5OGZj
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZvckVhY2guanMKKysrIGIv
SlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1mb3JFYWNoLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9h
ZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xv
YWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNh
bGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVo
YXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLmZvckVhY2ggZnVuY3Rpb24iCiApOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1mcm9tLmpzIGIvSlNUZXN0cy9z
dHJlc3MvdHlwZWRhcnJheS1mcm9tLmpzCmluZGV4IGRiYmZjOGEyZWRmYmRjODc2ZGY0Mzg5ZjA3
ZTY5NjBhMGRjMWY3ZmQuLjJmZmM5YzFlMTA1YTE5M2EzODg3Y2UwMGEyNzg4ZTJlMWY5MThhN2Mg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZnJvbS5qcworKysgYi9KU1Rl
c3RzL3N0cmVzcy90eXBlZGFycmF5LWZyb20uanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jl
c291cmNlcy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xv
YWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5q
cyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3Mg
dGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LmZyb20gZnVuY3Rpb24iCiApOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1pbmNsdWRlcy5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktaW5jbHVkZXMuanMKaW5kZXggZDZjMDNhZjhkYTJkMzA2NGJhODg5NTQ4
OTM3MWUyYmM4ZGIwNjJiNS4uZTY4MWE0ODM1NzRhYTlmYjkzNTRiZGNjZjFkOWNiZmFiYTc1MzM4
NCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1pbmNsdWRlcy5qcworKysg
Yi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWluY2x1ZGVzLmpzCkBAIC0xLDQgKzEsNCBAQAot
bG9hZCgicmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Cits
b2FkKCJyZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2Fs
bGVyIHJlbGF0aXZlIik7CiAKIGZvciAoY29uc3RydWN0b3Igb2YgdHlwZWRBcnJheXMpIHsKICAg
ICBsZXQgYSA9IG5ldyBjb25zdHJ1Y3RvcigxMCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy90eXBlZGFycmF5LWluZGV4T2YuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWluZGV4
T2YuanMKaW5kZXggN2RkNWYwMDFhYTZhNDU4ZWUwZTFkMWNmNGMyMzRjNzY2YTUyMTRkYS4uMDMy
MWFiYTU1ZTMxNTgzMDBiNGY2ZGRlZDBkYjAzNjE3ZjE5YmI3ZSAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9zdHJlc3MvdHlwZWRhcnJheS1pbmRleE9mLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVk
YXJyYXktaW5kZXhPZi5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVk
YXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBl
ZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRl
c2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFy
cmF5LnByb3RvdHlwZS5pbmRleE9mIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL3R5cGVkYXJyYXktbGFzdEluZGV4T2YuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFy
cmF5LWxhc3RJbmRleE9mLmpzCmluZGV4IGM3NDAwNDMyNDJjMDY3ZThhZGIxZmQ5NjJjYzQxYWE2
MWYzY2Y2MDUuLjNiYTZjZWM1MjAxZTA0YmMyMjdmYWNhNmMxMzE3YTcyYjNiM2QxNjUgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktbGFzdEluZGV4T2YuanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1sYXN0SW5kZXhPZi5qcwpAQCAtMSw0ICsxLDQgQEAKLWxv
YWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Cits
b2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJj
YWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJl
aGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiBmdW5jdGlvbiIK
ICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LW1hcC5qcyBiL0pTVGVz
dHMvc3RyZXNzL3R5cGVkYXJyYXktbWFwLmpzCmluZGV4IDhkYWQyMjJjY2Y1MDE5YTNhZjA5Mzg2
NmFmOTNhZGQ2N2MwNjVjMTIuLjlhMTZhZjMyYTE0NDU1MWJkOGM0MTExMDg5NWVmNGYxOGZlZjEy
OTYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktbWFwLmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktbWFwLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9y
ZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4v
cmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciBy
ZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Ig
b2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLm1hcCBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LW9mLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1vZi5qcwppbmRleCAwZTg1MmRkOGM4Y2FmYzgzZDBiMzg5MGE2YjNiNDQ0MTYyODY4ODBl
Li4zNjc0MzI3YTRkODk3OTNhMzIxZWIyYjBjNjRiMGViMzJmOGFjMDZiIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LW9mLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVk
YXJyYXktb2YuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5
LWNvbnN0cnVjdG9yLWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5
cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRp
dmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRo
ZSBUeXBlZEFycmF5Lm9mIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktcmVkdWNlLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1yZWR1Y2Uu
anMKaW5kZXggMzlhNmRhMzFhNDZlZDhiNzNlMmYwNTcwZDIzNDkwMTRmNDBhMGU1Ni4uZTE5ZTUw
NGUxZTYxNzczOGJmY2NlOGFhOGE2MWUyNDQzMTM3ODc2NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9z
dHJlc3MvdHlwZWRhcnJheS1yZWR1Y2UuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJh
eS1yZWR1Y2UuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5
LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJh
eS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlw
dGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5w
cm90b3R5cGUucmVkdWNlIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktcmVkdWNlUmlnaHQuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXJl
ZHVjZVJpZ2h0LmpzCmluZGV4IGQ1ZGIzYzdiNmUzMmQ4YzQzNDMwN2FiZTcxYjhiMDFmOWE0NTkx
OTEuLjhmOGJkYmU3ZWE0YjNmMWQ1NDg0ZWUxZDkyYWNjOWFmZTE2ZThmZDUgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktcmVkdWNlUmlnaHQuanMKKysrIGIvSlNUZXN0cy9z
dHJlc3MvdHlwZWRhcnJheS1yZWR1Y2VSaWdodC5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4v
cmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIu
L3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIg
cmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9y
IG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCBmdW5jdGlvbiIKICk7CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNldC5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktc2V0LmpzCmluZGV4IGZhYzVmYzdjZWRkYzIxOTFjNzQyOTRjYzRjZTE4
ZjI3YmNlNmM1OGEuLmQ4MmU1OTg3NzZjOGMwYzliZGM4MDZkMGQ1NGVkYjlkNzA5NmU3NDggMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc2V0LmpzCisrKyBiL0pTVGVzdHMv
c3RyZXNzL3R5cGVkYXJyYXktc2V0LmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJj
ZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3Vy
Y2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2
ZSIpOwogZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBU
eXBlZEFycmF5LnByb3RvdHlwZS5zZXQgZnVuY3Rpb24iKTsKIAogc2hvdWxkQmUoIkludDMyQXJy
YXkucHJvdG90eXBlLnNldC5sZW5ndGgiLCAiMSIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3MvdHlwZWRhcnJheS1zbGljZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc2xpY2Uu
anMKaW5kZXggZmJjYjFmOGIxNWQ0ZDgwODRmZGU2NDUwMWVhN2Y1MGM0ZTVhNDg5ZS4uOTVkZWQw
Mzk0ZWMxMTRiYzkyOWU1YTY1ZTRjODNhZjVkOWNmYzU5MSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9z
dHJlc3MvdHlwZWRhcnJheS1zbGljZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5
LXNsaWNlLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10
ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXkt
dGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRp
b24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJv
dG90eXBlLnNsaWNlIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5
cGVkYXJyYXktc29tZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc29tZS5qcwppbmRl
eCAwMTNjNDk2ODUyZGE0YzFkMjY4MzRlZGQ1MGM0MGQ2NzBlYzNlYzVhLi5jMzhhMjg5YzY3NGYy
ZDlmNWUxNDU4OTA2ZjM5ODgzOGEwOTczMmY4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90
eXBlZGFycmF5LXNvbWUuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zb21lLmpz
CkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBl
ci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxw
ZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhp
cyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLnNv
bWUgZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1z
b3J0LmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zb3J0LmpzCmluZGV4IDY5NDFlMGFk
MjllNDBmYzdkNTk3MzExYmYzZDE5MGE0N2FhZGI0NGUuLmYzNjMxMjcyMjNhZTlhZjA2NDY1M2Qw
NWQ3ZTZjYzZmNGU3NGViYzggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXkt
c29ydC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNvcnQuanMKQEAgLTEsNCAr
MSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9u
cy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlv
bnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hl
Y2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuc29ydCBmdW5jdGlv
biIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXN1YmFycmF5Lmpz
IGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zdWJhcnJheS5qcwppbmRleCA4ZjMyOTVmMDFm
NTIxMjliMmI4MzUxMmQyN2E0MGU4NmM3ZGU5OGY2Li4zMGJhMjU1Yzg1ODdjNTUyZjBjMzQyNzVh
ODAyYTE1YTRhMWQyZTkxIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXN1
YmFycmF5LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc3ViYXJyYXkuanMKQEAg
LTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1
bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1m
dW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRl
c3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuc3ViYXJy
YXkgZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL0J1aWxkZXIuanMgYi9K
U1Rlc3RzL3dhc20vQnVpbGRlci5qcwppbmRleCA5NzYzNzdmN2IzZDkxM2Q0YjhkYjFmOGE3NTk2
ZTczZDI3OTFjYjQ3Li5jNzg4M2Y0ZjQzNWRjNWRmNDEyNDYwMzYzYTgzZjgyNDY5ZTFiZThjIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vQnVpbGRlci5qcworKysgYi9KU1Rlc3RzL3dhc20vQnVp
bGRlci5qcwpAQCAtMjMsMTEgKzIzLDExIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLWltcG9y
dCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQuanMnOwotaW1wb3J0ICogYXMgQnVpbGRXZWJBc3Nl
bWJseSBmcm9tICdCdWlsZGVyX1dlYkFzc2VtYmx5QmluYXJ5LmpzJzsKLWltcG9ydCAqIGFzIExM
QiBmcm9tICdMb3dMZXZlbEJpbmFyeS5qcyc7Ci1pbXBvcnQgKiBhcyBXQVNNIGZyb20gJ1dBU00u
anMnOwotaW1wb3J0ICogYXMgdXRpbCBmcm9tICd1dGlsaXRpZXMuanMnOworaW1wb3J0ICogYXMg
YXNzZXJ0IGZyb20gJy4vYXNzZXJ0LmpzJzsKK2ltcG9ydCAqIGFzIEJ1aWxkV2ViQXNzZW1ibHkg
ZnJvbSAnLi9CdWlsZGVyX1dlYkFzc2VtYmx5QmluYXJ5LmpzJzsKK2ltcG9ydCAqIGFzIExMQiBm
cm9tICcuL0xvd0xldmVsQmluYXJ5LmpzJzsKK2ltcG9ydCAqIGFzIFdBU00gZnJvbSAnLi9XQVNN
LmpzJzsKK2ltcG9ydCAqIGFzIHV0aWwgZnJvbSAnLi91dGlsaXRpZXMuanMnOwogCiBjb25zdCBf
aXNWYWxpZFZhbHVlID0gKHZhbHVlLCB0eXBlKSA9PiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vQnVpbGRlcl9XZWJBc3NlbWJseUJpbmFyeS5qcyBiL0pT
VGVzdHMvd2FzbS9CdWlsZGVyX1dlYkFzc2VtYmx5QmluYXJ5LmpzCmluZGV4IDg2MzM4ZDM0NWRj
ODk5NmQxM2E0MDAxMmIzNWQ1NDE3MjlhZTY1ZGEuLjEzYzU4NjIyMWUzNmI5NWM1YmUzMjJhM2M2
MzY5MTI2MTg5Mzc3MjcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9CdWlsZGVyX1dlYkFzc2Vt
Ymx5QmluYXJ5LmpzCisrKyBiL0pTVGVzdHMvd2FzbS9CdWlsZGVyX1dlYkFzc2VtYmx5QmluYXJ5
LmpzCkBAIC0yMyw5ICsyMyw5IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLWltcG9ydCAqIGFz
IGFzc2VydCBmcm9tICdhc3NlcnQuanMnOwotaW1wb3J0IExvd0xldmVsQmluYXJ5IGZyb20gJ0xv
d0xldmVsQmluYXJ5LmpzJzsKLWltcG9ydCAqIGFzIFdBU00gZnJvbSAnV0FTTS5qcyc7CitpbXBv
cnQgKiBhcyBhc3NlcnQgZnJvbSAnLi9hc3NlcnQuanMnOworaW1wb3J0IExvd0xldmVsQmluYXJ5
IGZyb20gJy4vTG93TGV2ZWxCaW5hcnkuanMnOworaW1wb3J0ICogYXMgV0FTTSBmcm9tICcuL1dB
U00uanMnOwogCiBjb25zdCBwdXQgPSAoYmluLCB0eXBlLCB2YWx1ZSkgPT4gYmluW3R5cGVdKHZh
bHVlKTsKIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL0xvd0xldmVsQmluYXJ5LmpzIGIvSlNU
ZXN0cy93YXNtL0xvd0xldmVsQmluYXJ5LmpzCmluZGV4IGY5YmM4YTM3MDY1NzRhZDQ0NTNhMTBl
OTFhOTRmMmMxMTI1MDc4NzYuLmVkYzBiZWNmZGUzYTNiMzk3M2RkYzg3ZTcxMGU3Mzc1NTFhNWZi
NTMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9Mb3dMZXZlbEJpbmFyeS5qcworKysgYi9KU1Rl
c3RzL3dhc20vTG93TGV2ZWxCaW5hcnkuanMKQEAgLTIzLDggKzIzLDggQEAKICAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIAotaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydC5qcyc7Ci1pbXBvcnQg
KiBhcyBXQVNNIGZyb20gJ1dBU00uanMnOworaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJy4vYXNz
ZXJ0LmpzJzsKK2ltcG9ydCAqIGFzIFdBU00gZnJvbSAnLi9XQVNNLmpzJzsKIAogY29uc3QgX2lu
aXRpYWxBbGxvY2F0aW9uU2l6ZSA9IDEwMjQ7CiBjb25zdCBfZ3Jvd0FsbG9jYXRpb25TaXplID0g
YWxsb2NhdGVkID0+IGFsbG9jYXRlZCAqIDI7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vUkVB
RE1FLm1kIGIvSlNUZXN0cy93YXNtL1JFQURNRS5tZAppbmRleCAwNjUxNTc1NWZiNjJkMTQ3ZWQz
NTM4MGU1MzJjMDM3MmQyOTYxYzk4Li4yNTU4OWMxMjFiNWYxYWZlMDEzZjcwYmY2MzMxMTExMzQ0
MWQ4ODhjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vUkVBRE1FLm1kCisrKyBiL0pTVGVzdHMv
d2FzbS9SRUFETUUubWQKQEAgLTI5LDcgKzI5LDcgQEAgY3JlYXRlIGEgc2NvcGUgY2FuIGJlIG5l
c3RlZCB1c2luZyBhIGxhbWJkYS4KIEEgc2ltcGxlIGV4YW1wbGU6CiAKIGBgYGphdmFzY3JpcHQK
LWltcG9ydCBCdWlsZGVyIGZyb20gJ0J1aWxkZXIuanMnOworaW1wb3J0IEJ1aWxkZXIgZnJvbSAn
Li9CdWlsZGVyLmpzJzsKIAogY29uc3QgYnVpbGRlciA9IG5ldyBCdWlsZGVyKCk7CiAKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvd2FzbS9XQVNNLmpzIGIvSlNUZXN0cy93YXNtL1dBU00uanMKaW5kZXgg
M2M5ZGY2ODcxNGEyYTQyZjgxN2JlZWIxYjllNmZhOGEyZWI0ZmRlNy4uMDk3NTU2Y2NlNjlmNmQ1
OTgxOGFlOThiMDhkYmQwNWUxMTZiNWU5NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL1dBU00u
anMKKysrIGIvSlNUZXN0cy93YXNtL1dBU00uanMKQEAgLTIzLDcgKzIzLDcgQEAKICAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAotaW1wb3J0ICogYXMgdXRpbGl0aWVzIGZyb20gJ3V0aWxpdGllcy5qcyc7
CitpbXBvcnQgKiBhcyB1dGlsaXRpZXMgZnJvbSAnLi91dGlsaXRpZXMuanMnOwogCiBjb25zdCBf
bWFwVmFsdWVzID0gZnJvbSA9PiB7CiAgICAgbGV0IHZhbHVlcyA9IHt9OwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy93YXNtL3JlZ3Jlc3Mvc2VsZWN0ZjY0LmpzIGIvSlNUZXN0cy93YXNtL3JlZ3Jlc3Mv
c2VsZWN0ZjY0LmpzCmluZGV4IGRkNDk2Yzk4OWE1YWUxZmEzMTUxZWFmNzdiNmQ5NzhkNzYwMTM1
MTcuLjBhNDBjZGI4OGYzMzU2N2VkMzU2YTFkYWUxYTgwNTNiOTY2YzM5M2UgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvd2FzbS9yZWdyZXNzL3NlbGVjdGY2NC5qcworKysgYi9KU1Rlc3RzL3dhc20vcmVn
cmVzcy9zZWxlY3RmNjQuanMKQEAgLTEsNCArMSw0IEBACi1pbXBvcnQgeyB0ZXN0IH0gZnJvbSAn
c2VsZWN0ZjY0Lndhc20nCitpbXBvcnQgeyB0ZXN0IH0gZnJvbSAnLi9zZWxlY3RmNjQud2FzbScK
IGltcG9ydCAqIGFzIGFzc2VydCBmcm9tICcuLi9hc3NlcnQuanMnOwogCiBhc3NlcnQuZXEodGVz
dCgpLCA0MykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404083</attachid>
            <date>2020-07-11 19:47:36 -0700</date>
            <delta_ts>2020-07-12 19:43:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214205-20200711194734.patch</filename>
            <type>text/plain</type>
            <size>170275</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZjRjNjYxOTE5YWQ2ZDY2YzI3YzY0ZDQ5ODkzMzE3NzAxN2QzNzc2Li5hYTczODY1MmJhOWMwNDFi
YmE4ZjJmYTlkNmQwNGVjODA4NDllYjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNTMgQEAKKzIwMjAtMDctMTEgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgU291cmNlUHJvdmlkZXIgYW5kIGFkZCBjYWxsZXIg
cmVsYXRpdmUgbG9hZCBzY3JpcHQgdG8ganNjLmNwcAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MjA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBvcmlnaW5hbGx5IHdhcyBqdXN0IHRv
IGFkZCBhbiBvcHRpb25hbCBwYXJhbWV0ZXIgdG8gb3VyCisgICAgICAgIGxvYWQgZnVuY3Rpb24g
c28gdGhhdCBhbnkgcmVsYXRpdmUgcGF0aCBpcyBjb21wdXRlZCB3aXRoIHJlc3BlY3QKKyAgICAg
ICAgdG8gY2FsbGluZyBzY3JpcHQuICBSYXRoZXIgdGhhbiBjb21wdXRpbmcgdGhlIHBhdGggcmVs
YXRpdmUgdG8gdGhlCisgICAgICAgIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuIFRoZSBtYWlu
IGFkdmFudGFnZSBvZiB0aGlzIGlzIG5vdyB5b3UKKyAgICAgICAgY2FuIHJ1biBhbGwgdGhlIEpT
VGVzdHMvc3RyZXNzIHNjcmlwdHMgZnJvbSBhbnl3aGVyZSByYXRoZXIgdGhhbgorICAgICAgICBv
bmx5IGZyb20gdGhlIHN0cmVzcyBkaXJlY3RvcnkuIFRoaXMgYWxzbyBtYXRjaGVzIGpzYy5jcHAn
cyBtb2R1bGUKKyAgICAgICAgbG9hZGVyIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgIFRvIG1h
a2UgdGhpcyBwb3NzaWJsZSBhIHN1cnByaXNpbmcgbnVtYmVyIG9mIGNoYW5nZXMgd2VyZQorICAg
ICAgICBuZWVkZWQuIFNwZWNpZmljYWxseSwgaXQgd2FzIG11Y2ggZWFzaWVyIHRvIGdldCB0aGlz
IHRvIHdvcmsgaWYgd2UKKyAgICAgICAgY29udmVydGVkIFNvdXJjZU9yaWdpbidzIHVybCB0byBh
IFdURjo6VVJMIHJhdGhlciB0aGFuIGp1c3QgYQorICAgICAgICBXVEY6OlN0cmluZy4gQXQgdGhl
IHNhbWUgdGltZSBpdCBiZWNhbWUgY2xlYXIgdGhhdAorICAgICAgICBTb3VyY2VQcm92aWRlcidz
IG1fc291cmNlVVJMIGlzIHJlYWxseSBub3QgYSBVUkwgYnV0IG1vcmUgb2YgYQorICAgICAgICBm
aWxlIG5hbWUsIHdoaWNoIGNhbiBzb21ldGltZXMgYmUgYSBVUkwuIEl0J3MgcG9zc2libGUgdGhh
dCB3ZQorICAgICAgICBkb24ndCBuZWVkIG1fc291cmNlVVJMIGF0IGFsbCBidXQgd2Ugc2hvdWxk
IGRvIHRoYXQgaW4gYSBkaWZmZXJlbnQKKyAgICAgICAgcGF0Y2guCisKKyAgICAgICAgQWRkaXRp
b25hbGx5LCBqc2MuY3BwIG5vdyB1c2VzIFdURjo6VVJMIGZvciBoYW5kbGluZyBmaWxlCisgICAg
ICAgIHBhdGhzLiBUaGlzIGlzIGNsZWFuZXIgdGhhbiBtYW5hZ2luZyB0cnlpbmcgdG8gZG8gaXQg
b3Vyc2VsdmVzIGFuZAorICAgICAgICBzaG91bGQgd29yayBhY3Jvc3MgYWxsIHRoZSBwb3J0cy4K
KworICAgICAgICBMYXN0bHksIHRoZSBKU0MgQ0xJIG5vIGxvbmdlciBhY2NlcHRzICJiYXJlLW5h
bWUiCisgICAgICAgIHNwZWNpZmllcnMuIGkuZS4gYWxsIHNwZWNpZmllcnMgbXVzdCBzdGFydCB3
aXRoICIvIiwgIi4vIiwgb3IKKyAgICAgICAgIi4uLyIuIFRoaXMgbWF0Y2hlcyB3aGF0IHdlIGRv
IGluIG91ciBPYmotQyBBUEkgYW5kIGluCisgICAgICAgIFdlYkNvcmUuIFdoaWxlIGZpeGluZyB0
ZXN0cyBJIGFsc28gbm90aWNlZCB0aGF0IHRoZSBlcnJvciBtZXNzYWdlCisgICAgICAgIHdhcyBh
bG1vc3QgdXNlbGVzcyBzaW5jZSBpdCBkaWRuJ3QgdGVsbCB5b3Ugd2hhdCB0aGUgc3BlY2lmaWVy
IG9yCisgICAgICAgIHJlZmVycmVyIGluIHF1ZXN0aW9uIHNvIHRoYXQgaW5mb3JtYXRpb24gaXMg
bm93IHBhcnQgb2YgdGhlIHVzZXIKKyAgICAgICAgdmlzaWJsZSBlcnJvci4KKworICAgICAgICAq
IEFQSS9KU0FQSUdsb2JhbE9iamVjdC5tbToKKyAgICAgICAgKEpTQzo6SlNBUElHbG9iYWxPYmpl
Y3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6CisgICAgICAgICogQVBJL0pTQmFzZS5jcHA6
CisgICAgICAgIChKU0V2YWx1YXRlU2NyaXB0KToKKyAgICAgICAgKEpTQ2hlY2tTY3JpcHRTeW50
YXgpOgorICAgICAgICAqIEFQSS9KU09iamVjdFJlZi5jcHA6CisgICAgICAgIChKU09iamVjdE1h
a2VGdW5jdGlvbik6CisgICAgICAgICogQVBJL0pTU2NyaXB0Lm1tOgorICAgICAgICAoLVtKU1Nj
cmlwdCBzb3VyY2VDb2RlXSk6CisgICAgICAgICogQVBJL0pTU2NyaXB0UmVmLmNwcDoKKyAgICAg
ICAgKiBidWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwOgorICAgICAgICAoSlNDOjpCdWls
dGluRXhlY3V0YWJsZXM6OkJ1aWx0aW5FeGVjdXRhYmxlcyk6CisgICAgICAgICogYnl0ZWNvZGUv
Q29kZUJsb2NrLmg6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cmVmZXJyZXJVUkwgY29uc3Qp
OgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uY3BwOgorICAgICAgICAoSlND
OjpEZWJ1Z2dlckxvY2F0aW9uOjpEZWJ1Z2dlckxvY2F0aW9uKToKKyAgICAgICAgKiBkZWJ1Z2dl
ci9EZWJ1Z2dlckxvY2F0aW9uLmg6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyTG9jYXRpb246OkRl
YnVnZ2VyTG9jYXRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5j
cHA6CisgICAgICAgIChJbnNwZWN0b3I6OlNjcmlwdERlYnVnU2VydmVyOjpzb3VyY2VQYXJzZWQp
OgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRl
ckltcG9ydE1vZHVsZSk6CisgICAgICAgIChqc2NTb3VyY2UpOgorICAgICAgICAoR2xvYmFsT2Jq
ZWN0Ojptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgIChmdW5jdGlvblJ1bik6CisgICAgICAg
IChmdW5jdGlvbkxvYWQpOgorICAgICAgICAoZnVuY3Rpb25DaGVja1N5bnRheCk6CisgICAgICAg
IChmdW5jdGlvbkNhbGxlclNvdXJjZU9yaWdpbik6CisgICAgICAgIChmdW5jdGlvbkRvbGxhckFn
ZW50U3RhcnQpOgorICAgICAgICAoZnVuY3Rpb25DaGVja01vZHVsZVN5bnRheCk6CisgICAgICAg
IChydW5XaXRoT3B0aW9ucyk6CisgICAgICAgIChydW5JbnRlcmFjdGl2ZSk6CisgICAgICAgICog
cGFyc2VyL05vZGVzLmg6CisgICAgICAgIChKU0M6OlNjb3BlTm9kZTo6c291cmNlIGNvbnN0KToK
KyAgICAgICAgKEpTQzo6U2NvcGVOb2RlOjpzb3VyY2VVUkwgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIHBhcnNlci9Tb3VyY2VDb2RlLmg6CisgICAgICAgIChKU0M6Om1ha2VTb3VyY2UpOgor
ICAgICAgICAqIHBhcnNlci9Tb3VyY2VDb2RlS2V5Lmg6CisgICAgICAgIChKU0M6OlNvdXJjZUNv
ZGVLZXk6Omhvc3QgY29uc3QpOgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VQcm92aWRlci5jcHA6
CisgICAgICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyOjpTb3VyY2VQcm92aWRlcik6CisgICAgICAg
ICogcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmg6CisgICAgICAgIChKU0M6OlNvdXJjZVByb3ZpZGVy
Ojpzb3VyY2VVUkwgY29uc3QpOgorICAgICAgICAoSlNDOjpTdHJpbmdTb3VyY2VQcm92aWRlcjo6
Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6U3RyaW5nU291cmNlUHJvdmlkZXI6OlN0cmluZ1NvdXJj
ZVByb3ZpZGVyKToKKyAgICAgICAgKEpTQzo6U291cmNlUHJvdmlkZXI6OnVybCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogcnVudGltZS9DYWNoZWRUeXBlcy5jcHA6CisgICAgICAgIChKU0M6
OkNhY2hlZFNvdXJjZU9yaWdpbjo6ZW5jb2RlKToKKyAgICAgICAgKEpTQzo6Q2FjaGVkU291cmNl
T3JpZ2luOjpkZWNvZGUgY29uc3QpOgorICAgICAgICAoSlNDOjpDYWNoZWRTb3VyY2VQcm92aWRl
clNoYXBlOjplbmNvZGUpOgorICAgICAgICAoSlNDOjpDYWNoZWRTdHJpbmdTb3VyY2VQcm92aWRl
cjo6ZGVjb2RlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6Q2FjaGVkV2ViQXNzZW1ibHlTb3VyY2VQ
cm92aWRlcjo6ZGVjb2RlIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6YWRkRXJyb3JJbmZvKToKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZh
bEVuYWJsZWRDaGVjayk6CisgICAgICAgICogcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmg6Cisg
ICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6OnNvdXJjZVVSTCBjb25zdCk6CisgICAgICAg
ICogcnVudGltZS9Tb3VyY2VPcmlnaW4uaDoKKyAgICAgICAgKEpTQzo6U291cmNlT3JpZ2luOjpT
b3VyY2VPcmlnaW4pOgorICAgICAgICAoSlNDOjpTb3VyY2VPcmlnaW46OnVybCBjb25zdCk6Cisg
ICAgICAgIChKU0M6OlNvdXJjZU9yaWdpbjo6c3RyaW5nIGNvbnN0KToKKyAgICAgICAgKEpTQzo6
U291cmNlT3JpZ2luOjppc051bGwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUv
VGhyb3dTY29wZS5jcHA6CisgICAgICAgIChKU0M6OlRocm93U2NvcGU6OnRocm93RXhjZXB0aW9u
KToKKyAgICAgICAgKiBydW50aW1lL1Rocm93U2NvcGUuaDoKKyAgICAgICAgKEpTQzo6VGhyb3dT
Y29wZTo6dGhyb3dFeGNlcHRpb24pOgorICAgICAgICAoSlNDOjp0aHJvd1ZNRXhjZXB0aW9uKToK
KyAgICAgICAgKiB0b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHA6CisgICAgICAgIChKU0M6Omlu
aXRpYWxpemVPdmVycmlkZUluZm8pOgorCisgICAgICAgICogQVBJL0pTQVBJR2xvYmFsT2JqZWN0
Lm1tOgorICAgICAgICAoSlNDOjpjb21wdXRlVmFsaWRJbXBvcnRTcGVjaWZpZXIpOgorICAgICAg
ICAoSlNDOjpKU0FQSUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKToKKyAg
ICAgICAgKiBBUEkvSlNCYXNlLmNwcDoKKyAgICAgICAgKEpTRXZhbHVhdGVTY3JpcHQpOgorICAg
ICAgICAoSlNDaGVja1NjcmlwdFN5bnRheCk6CisgICAgICAgICogQVBJL0pTT2JqZWN0UmVmLmNw
cDoKKyAgICAgICAgKEpTT2JqZWN0TWFrZUZ1bmN0aW9uKToKKyAgICAgICAgKiBBUEkvSlNTY3Jp
cHQubW06CisgICAgICAgICgtW0pTU2NyaXB0IHNvdXJjZUNvZGVdKToKKyAgICAgICAgKiBBUEkv
SlNTY3JpcHRSZWYuY3BwOgorICAgICAgICAqIEFQSS9nbGliL0pTQ0NvbnRleHQuY3BwOgorICAg
ICAgICAoanNjX2NvbnRleHRfY2hlY2tfc3ludGF4KToKKyAgICAgICAgKiBidWlsdGlucy9CdWls
dGluRXhlY3V0YWJsZXMuY3BwOgorICAgICAgICAoSlNDOjpCdWlsdGluRXhlY3V0YWJsZXM6OkJ1
aWx0aW5FeGVjdXRhYmxlcyk6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJMb2NhdGlvbi5j
cHA6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyTG9jYXRpb246OkRlYnVnZ2VyTG9jYXRpb24pOgor
ICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uaDoKKyAgICAgICAgKEpTQzo6RGVi
dWdnZXJMb2NhdGlvbjo6RGVidWdnZXJMb2NhdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL1Nj
cmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6U2NyaXB0RGVidWdTZXJ2
ZXI6OnNvdXJjZVBhcnNlZCk6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKGN1cnJlbnRX
b3JraW5nRGlyZWN0b3J5KToKKyAgICAgICAgKGFic29sdXRlUGF0aCk6CisgICAgICAgIChHbG9i
YWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6CisgICAgICAgIChHbG9iYWxPYmpl
Y3Q6Om1vZHVsZUxvYWRlclJlc29sdmUpOgorICAgICAgICAoanNjU291cmNlKToKKyAgICAgICAg
KGZldGNoTW9kdWxlRnJvbUxvY2FsRmlsZVN5c3RlbSk6CisgICAgICAgIChHbG9iYWxPYmplY3Q6
Om1vZHVsZUxvYWRlckZldGNoKToKKyAgICAgICAgKGZ1bmN0aW9uTG9hZCk6CisgICAgICAgIChm
dW5jdGlvbkNhbGxlclNvdXJjZU9yaWdpbik6CisgICAgICAgIChmdW5jdGlvbkRvbGxhckFnZW50
U3RhcnQpOgorICAgICAgICAoZnVuY3Rpb25DaGVja01vZHVsZVN5bnRheCk6CisgICAgICAgIChy
dW5XaXRoT3B0aW9ucyk6CisgICAgICAgIChydW5JbnRlcmFjdGl2ZSk6CisgICAgICAgIChNb2R1
bGVOYW1lOjpzdGFydHNXaXRoUm9vdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChNb2R1bGVO
YW1lOjpNb2R1bGVOYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKGV4dHJhY3REaXJlY3RvcnlOYW1l
KTogRGVsZXRlZC4KKyAgICAgICAgKHJlc29sdmVQYXRoKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
YXJzZXIvTm9kZXMuaDoKKyAgICAgICAgKEpTQzo6U2NvcGVOb2RlOjpzb3VyY2UgY29uc3QpOgor
ICAgICAgICAoSlNDOjpTY29wZU5vZGU6OnNvdXJjZVVSTCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogcGFyc2VyL1NvdXJjZUNvZGUuaDoKKyAgICAgICAgKEpTQzo6bWFrZVNvdXJjZSk6Cisg
ICAgICAgICogcGFyc2VyL1NvdXJjZUNvZGVLZXkuaDoKKyAgICAgICAgKEpTQzo6U291cmNlQ29k
ZUtleTo6aG9zdCBjb25zdCk6CisgICAgICAgICogcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmNwcDoK
KyAgICAgICAgKEpTQzo6U291cmNlUHJvdmlkZXI6OlNvdXJjZVByb3ZpZGVyKToKKyAgICAgICAg
KiBwYXJzZXIvU291cmNlUHJvdmlkZXIuaDoKKyAgICAgICAgKEpTQzo6U291cmNlUHJvdmlkZXI6
OnNvdXJjZVVSTCBjb25zdCk6CisgICAgICAgIChKU0M6OlN0cmluZ1NvdXJjZVByb3ZpZGVyOjpj
cmVhdGUpOgorICAgICAgICAoSlNDOjpTdHJpbmdTb3VyY2VQcm92aWRlcjo6U3RyaW5nU291cmNl
UHJvdmlkZXIpOgorICAgICAgICAoSlNDOjpTb3VyY2VQcm92aWRlcjo6dXJsIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0NhY2hlZFR5cGVzLmNwcDoKKyAgICAgICAgKEpTQzo6
Q2FjaGVkU291cmNlT3JpZ2luOjplbmNvZGUpOgorICAgICAgICAoSlNDOjpDYWNoZWRTb3VyY2VP
cmlnaW46OmRlY29kZSBjb25zdCk6CisgICAgICAgIChKU0M6OkNhY2hlZFNvdXJjZVByb3ZpZGVy
U2hhcGU6OmVuY29kZSk6CisgICAgICAgIChKU0M6OkNhY2hlZFN0cmluZ1NvdXJjZVByb3ZpZGVy
OjpkZWNvZGUgY29uc3QpOgorICAgICAgICAoSlNDOjpDYWNoZWRXZWJBc3NlbWJseVNvdXJjZVBy
b3ZpZGVyOjpkZWNvZGUgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3IuY3BwOgorICAg
ICAgICAoSlNDOjphZGRFcnJvckluZm8pOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Db25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEZ1bmN0aW9uU2tpcHBpbmdFdmFs
RW5hYmxlZENoZWNrKToKKyAgICAgICAgKiBydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaDoKKyAg
ICAgICAgKEpTQzo6U2NyaXB0RXhlY3V0YWJsZTo6c291cmNlVVJMIGNvbnN0KToKKyAgICAgICAg
KiBydW50aW1lL1NvdXJjZU9yaWdpbi5oOgorICAgICAgICAoSlNDOjpTb3VyY2VPcmlnaW46OlNv
dXJjZU9yaWdpbik6CisgICAgICAgIChKU0M6OlNvdXJjZU9yaWdpbjo6dXJsIGNvbnN0KToKKyAg
ICAgICAgKEpTQzo6U291cmNlT3JpZ2luOjpzdHJpbmcgY29uc3QpOgorICAgICAgICAoSlNDOjpT
b3VyY2VPcmlnaW46OmlzTnVsbCBjb25zdCk6CisgICAgICAgICogcnVudGltZS9UaHJvd1Njb3Bl
LmNwcDoKKyAgICAgICAgKEpTQzo6VGhyb3dTY29wZTo6dGhyb3dFeGNlcHRpb24pOgorICAgICAg
ICAqIHJ1bnRpbWUvVGhyb3dTY29wZS5oOgorICAgICAgICAoSlNDOjpUaHJvd1Njb3BlOjp0aHJv
d0V4Y2VwdGlvbik6CisgICAgICAgIChKU0M6OnRocm93Vk1FeGNlcHRpb24pOgorICAgICAgICAq
IHRvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6aW5pdGlhbGl6ZU92
ZXJyaWRlSW5mbyk6CisgICAgICAgICogdG9vbHMvSlNEb2xsYXJWTS5jcHA6CisgICAgICAgIChK
U0M6OmRvUHJpbnQpOgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyYXNoKToKKworICAgICAgICAq
IEFQSS9KU0FQSUdsb2JhbE9iamVjdC5tbToKKyAgICAgICAgKEpTQzo6Y29tcHV0ZVZhbGlkSW1w
b3J0U3BlY2lmaWVyKToKKyAgICAgICAgKEpTQzo6SlNBUElHbG9iYWxPYmplY3Q6Om1vZHVsZUxv
YWRlckltcG9ydE1vZHVsZSk6CisgICAgICAgICogQVBJL0pTQmFzZS5jcHA6CisgICAgICAgIChK
U0V2YWx1YXRlU2NyaXB0KToKKyAgICAgICAgKEpTQ2hlY2tTY3JpcHRTeW50YXgpOgorICAgICAg
ICAqIEFQSS9KU09iamVjdFJlZi5jcHA6CisgICAgICAgIChKU09iamVjdE1ha2VGdW5jdGlvbik6
CisgICAgICAgICogQVBJL0pTU2NyaXB0Lm1tOgorICAgICAgICAoLVtKU1NjcmlwdCBzb3VyY2VD
b2RlXSk6CisgICAgICAgICogQVBJL0pTU2NyaXB0UmVmLmNwcDoKKyAgICAgICAgKiBBUEkvZ2xp
Yi9KU0NDb250ZXh0LmNwcDoKKyAgICAgICAgKGpzY19jb250ZXh0X2NoZWNrX3N5bnRheCk6Cisg
ICAgICAgICogYnVpbHRpbnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcDoKKyAgICAgICAgKEpTQzo6
QnVpbHRpbkV4ZWN1dGFibGVzOjpCdWlsdGluRXhlY3V0YWJsZXMpOgorICAgICAgICAqIGRlYnVn
Z2VyL0RlYnVnZ2VyTG9jYXRpb24uY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckxvY2F0aW9u
OjpEZWJ1Z2dlckxvY2F0aW9uKToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9u
Lmg6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyTG9jYXRpb246OkRlYnVnZ2VyTG9jYXRpb24pOgor
ICAgICAgICAqIGluc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChJbnNw
ZWN0b3I6OlNjcmlwdERlYnVnU2VydmVyOjpzb3VyY2VQYXJzZWQpOgorICAgICAgICAqIGpzYy5j
cHA6CisgICAgICAgIChjdXJyZW50V29ya2luZ0RpcmVjdG9yeSk6CisgICAgICAgIChhYnNvbHV0
ZVBhdGgpOgorICAgICAgICAoR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUp
OgorICAgICAgICAoR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJSZXNvbHZlKToKKyAgICAgICAg
KGpzY1NvdXJjZSk6CisgICAgICAgIChmZXRjaE1vZHVsZUZyb21Mb2NhbEZpbGVTeXN0ZW0pOgor
ICAgICAgICAoR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRjaCk6CisgICAgICAgIChmdW5j
dGlvbkxvYWQpOgorICAgICAgICAoZnVuY3Rpb25DYWxsZXJTb3VyY2VPcmlnaW4pOgorICAgICAg
ICAoZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0KToKKyAgICAgICAgKGZ1bmN0aW9uQ2hlY2tNb2R1
bGVTeW50YXgpOgorICAgICAgICAocnVuV2l0aE9wdGlvbnMpOgorICAgICAgICAocnVuSW50ZXJh
Y3RpdmUpOgorICAgICAgICAoTW9kdWxlTmFtZTo6c3RhcnRzV2l0aFJvb3QgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoTW9kdWxlTmFtZTo6TW9kdWxlTmFtZSk6IERlbGV0ZWQuCisgICAgICAg
IChleHRyYWN0RGlyZWN0b3J5TmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChyZXNvbHZlUGF0aCk6
IERlbGV0ZWQuCisgICAgICAgICogcGFyc2VyL05vZGVzLmg6CisgICAgICAgIChKU0M6OlNjb3Bl
Tm9kZTo6c291cmNlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U2NvcGVOb2RlOjpzb3VyY2VVUkwg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VDb2RlLmg6CisgICAgICAg
IChKU0M6Om1ha2VTb3VyY2UpOgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VDb2RlS2V5Lmg6Cisg
ICAgICAgIChKU0M6OlNvdXJjZUNvZGVLZXk6Omhvc3QgY29uc3QpOgorICAgICAgICAqIHBhcnNl
ci9Tb3VyY2VQcm92aWRlci5jcHA6CisgICAgICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyOjpTb3Vy
Y2VQcm92aWRlcik6CisgICAgICAgICogcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmg6CisgICAgICAg
IChKU0M6OlNvdXJjZVByb3ZpZGVyOjpzb3VyY2VVUkwgY29uc3QpOgorICAgICAgICAoSlNDOjpT
dHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6U3RyaW5nU291cmNl
UHJvdmlkZXI6OlN0cmluZ1NvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKEpTQzo6U291cmNlUHJv
dmlkZXI6OnVybCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9DYWNoZWRUeXBl
cy5jcHA6CisgICAgICAgIChKU0M6OkNhY2hlZFNvdXJjZU9yaWdpbjo6ZW5jb2RlKToKKyAgICAg
ICAgKEpTQzo6Q2FjaGVkU291cmNlT3JpZ2luOjpkZWNvZGUgY29uc3QpOgorICAgICAgICAoSlND
OjpDYWNoZWRTb3VyY2VQcm92aWRlclNoYXBlOjplbmNvZGUpOgorICAgICAgICAoSlNDOjpDYWNo
ZWRTdHJpbmdTb3VyY2VQcm92aWRlcjo6ZGVjb2RlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6Q2Fj
aGVkV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6ZGVjb2RlIGNvbnN0KToKKyAgICAgICAgKiBy
dW50aW1lL0Vycm9yLmNwcDoKKyAgICAgICAgKEpTQzo6YWRkRXJyb3JJbmZvKToKKyAgICAgICAg
KiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpjb25zdHJ1
Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjayk6CisgICAgICAgICogcnVudGltZS9T
Y3JpcHRFeGVjdXRhYmxlLmg6CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6OnNvdXJj
ZVVSTCBjb25zdCk6CisgICAgICAgICogcnVudGltZS9Tb3VyY2VPcmlnaW4uaDoKKyAgICAgICAg
KEpTQzo6U291cmNlT3JpZ2luOjpTb3VyY2VPcmlnaW4pOgorICAgICAgICAoSlNDOjpTb3VyY2VP
cmlnaW46OnVybCBjb25zdCk6CisgICAgICAgIChKU0M6OlNvdXJjZU9yaWdpbjo6c3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKEpTQzo6U291cmNlT3JpZ2luOjppc051bGwgY29uc3QpOgorICAgICAg
ICAqIHJ1bnRpbWUvVGhyb3dTY29wZS5jcHA6CisgICAgICAgIChKU0M6OlRocm93U2NvcGU6OnRo
cm93RXhjZXB0aW9uKToKKyAgICAgICAgKiBydW50aW1lL1Rocm93U2NvcGUuaDoKKyAgICAgICAg
KEpTQzo6VGhyb3dTY29wZTo6dGhyb3dFeGNlcHRpb24pOgorICAgICAgICAoSlNDOjp0aHJvd1ZN
RXhjZXB0aW9uKToKKyAgICAgICAgKiB0b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHA6CisgICAg
ICAgIChKU0M6OmluaXRpYWxpemVPdmVycmlkZUluZm8pOgorICAgICAgICAqIHRvb2xzL0pTRG9s
bGFyVk0uY3BwOgorICAgICAgICAoSlNDOjpkb1ByaW50KToKKyAgICAgICAgKEpTQzo6ZnVuY3Rp
b25DcmFzaCk6CisKKyAgICAgICAgKiBBUEkvSlNBUElHbG9iYWxPYmplY3QubW06CisgICAgICAg
IChKU0M6OmNvbXB1dGVWYWxpZEltcG9ydFNwZWNpZmllcik6CisgICAgICAgIChKU0M6OkpTQVBJ
R2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUpOgorICAgICAgICAqIEFQSS9K
U0Jhc2UuY3BwOgorICAgICAgICAoSlNFdmFsdWF0ZVNjcmlwdCk6CisgICAgICAgIChKU0NoZWNr
U2NyaXB0U3ludGF4KToKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYuY3BwOgorICAgICAgICAo
SlNPYmplY3RNYWtlRnVuY3Rpb24pOgorICAgICAgICAqIEFQSS9KU1NjcmlwdC5tbToKKyAgICAg
ICAgKC1bSlNTY3JpcHQgc291cmNlQ29kZV0pOgorICAgICAgICAqIEFQSS9KU1NjcmlwdFJlZi5j
cHA6CisgICAgICAgICogQVBJL2dsaWIvSlNDQ29udGV4dC5jcHA6CisgICAgICAgIChqc2NfY29u
dGV4dF9jaGVja19zeW50YXgpOgorICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxl
cy5jcHA6CisgICAgICAgIChKU0M6OkJ1aWx0aW5FeGVjdXRhYmxlczo6QnVpbHRpbkV4ZWN1dGFi
bGVzKToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmNwcDoKKyAgICAgICAg
KEpTQzo6RGVidWdnZXJMb2NhdGlvbjo6RGVidWdnZXJMb2NhdGlvbik6CisgICAgICAgICogZGVi
dWdnZXIvRGVidWdnZXJMb2NhdGlvbi5oOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckxvY2F0aW9u
OjpEZWJ1Z2dlckxvY2F0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2
ZXIuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpTY3JpcHREZWJ1Z1NlcnZlcjo6c291cmNlUGFy
c2VkKToKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoY3VycmVudFdvcmtpbmdEaXJlY3Rv
cnkpOgorICAgICAgICAoYWJzb2x1dGVQYXRoKToKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6bW9k
dWxlTG9hZGVySW1wb3J0TW9kdWxlKToKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6bW9kdWxlTG9h
ZGVyUmVzb2x2ZSk6CisgICAgICAgIChqc2NTb3VyY2UpOgorICAgICAgICAoZmV0Y2hNb2R1bGVG
cm9tTG9jYWxGaWxlU3lzdGVtKToKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVy
RmV0Y2gpOgorICAgICAgICAoZnVuY3Rpb25Mb2FkKToKKyAgICAgICAgKGZ1bmN0aW9uQ2FsbGVy
U291cmNlT3JpZ2luKToKKyAgICAgICAgKGZ1bmN0aW9uRG9sbGFyQWdlbnRTdGFydCk6CisgICAg
ICAgIChmdW5jdGlvbkNoZWNrTW9kdWxlU3ludGF4KToKKyAgICAgICAgKHJ1bldpdGhPcHRpb25z
KToKKyAgICAgICAgKHJ1bkludGVyYWN0aXZlKToKKyAgICAgICAgKE1vZHVsZU5hbWU6OnN0YXJ0
c1dpdGhSb290IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKE1vZHVsZU5hbWU6Ok1vZHVsZU5h
bWUpOiBEZWxldGVkLgorICAgICAgICAoZXh0cmFjdERpcmVjdG9yeU5hbWUpOiBEZWxldGVkLgor
ICAgICAgICAocmVzb2x2ZVBhdGgpOiBEZWxldGVkLgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5o
OgorICAgICAgICAoSlNDOjpTY29wZU5vZGU6OnNvdXJjZSBjb25zdCk6CisgICAgICAgIChKU0M6
OlNjb3BlTm9kZTo6c291cmNlVVJMIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYXJzZXIv
U291cmNlQ29kZS5oOgorICAgICAgICAoSlNDOjptYWtlU291cmNlKToKKyAgICAgICAgKiBwYXJz
ZXIvU291cmNlQ29kZUtleS5oOgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlS2V5Ojpob3N0IGNv
bnN0KToKKyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwOgorICAgICAgICAoSlND
OjpTb3VyY2VQcm92aWRlcjo6U291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIHBhcnNlci9Tb3Vy
Y2VQcm92aWRlci5oOgorICAgICAgICAoSlNDOjpTb3VyY2VQcm92aWRlcjo6c291cmNlVVJMIGNv
bnN0KToKKyAgICAgICAgKEpTQzo6U3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZSk6CisgICAg
ICAgIChKU0M6OlN0cmluZ1NvdXJjZVByb3ZpZGVyOjpTdHJpbmdTb3VyY2VQcm92aWRlcik6Cisg
ICAgICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyOjp1cmwgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIHJ1bnRpbWUvQ2FjaGVkVHlwZXMuY3BwOgorICAgICAgICAoSlNDOjpDYWNoZWRTb3VyY2VP
cmlnaW46OmVuY29kZSk6CisgICAgICAgIChKU0M6OkNhY2hlZFNvdXJjZU9yaWdpbjo6ZGVjb2Rl
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6Q2FjaGVkU291cmNlUHJvdmlkZXJTaGFwZTo6ZW5jb2Rl
KToKKyAgICAgICAgKEpTQzo6Q2FjaGVkU3RyaW5nU291cmNlUHJvdmlkZXI6OmRlY29kZSBjb25z
dCk6CisgICAgICAgIChKU0M6OkNhY2hlZFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI6OmRlY29k
ZSBjb25zdCk6CisgICAgICAgICogcnVudGltZS9FcnJvci5jcHA6CisgICAgICAgIChKU0M6OmFk
ZEVycm9ySW5mbyk6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoK
KyAgICAgICAgKEpTQzo6Y29uc3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxFbmFibGVkQ2hlY2sp
OgorICAgICAgICAqIHJ1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oOgorICAgICAgICAoSlNDOjpT
Y3JpcHRFeGVjdXRhYmxlOjpzb3VyY2VVUkwgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvU291
cmNlT3JpZ2luLmg6CisgICAgICAgIChKU0M6OlNvdXJjZU9yaWdpbjo6U291cmNlT3JpZ2luKToK
KyAgICAgICAgKEpTQzo6U291cmNlT3JpZ2luOjp1cmwgY29uc3QpOgorICAgICAgICAoSlNDOjpT
b3VyY2VPcmlnaW46OnN0cmluZyBjb25zdCk6CisgICAgICAgIChKU0M6OlNvdXJjZU9yaWdpbjo6
aXNOdWxsIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL1Rocm93U2NvcGUuY3BwOgorICAgICAg
ICAoSlNDOjpUaHJvd1Njb3BlOjp0aHJvd0V4Y2VwdGlvbik6CisgICAgICAgICogcnVudGltZS9U
aHJvd1Njb3BlLmg6CisgICAgICAgIChKU0M6OlRocm93U2NvcGU6OnRocm93RXhjZXB0aW9uKToK
KyAgICAgICAgKEpTQzo6dGhyb3dWTUV4Y2VwdGlvbik6CisgICAgICAgICogdG9vbHMvRnVuY3Rp
b25PdmVycmlkZXMuY3BwOgorICAgICAgICAoSlNDOjppbml0aWFsaXplT3ZlcnJpZGVJbmZvKToK
KyAgICAgICAgKiB0b29scy9KU0RvbGxhclZNLmNwcDoKKyAgICAgICAgKEpTQzo6ZG9QcmludCk6
CisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3Jhc2gpOgorCiAyMDIwLTA3LTA5ICBCcmlhbiBCdXJn
ICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI2MjMwMik6IElUTUxL
aXQgZGVidWdnYWJsZXMgaW4gbGlzdGluZ3MgYXJlIG1pc3NpbmcgYSB0aXRsZSwgdXNlIFVVSUQg
aW5zdGVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwppbmRleCBhYTE5ZWIyOWViM2I4ZjY4ZjU0YjY0NGU4NzM1NTdkNTI0MDYxZmNmLi5m
YjI2MzFhNDk3NGIzNmE0M2UzY2UyYWFkYmUzZGJlMTU5Mjg3YTkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDIwLTA3LTExICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgor
CisgICAgICAgIENsZWFuIHVwIFNvdXJjZVByb3ZpZGVyIGFuZCBhZGQgY2FsbGVyIHJlbGF0aXZl
IGxvYWQgc2NyaXB0IHRvIGpzYy5jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNDIwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzaW5nIGEgVVJMIGFzIGEgYm9vbGVhbiBpbiBhIGNvbmRpdGlvbmFs
IHNob3VsZCBiZSBhIGNvbXBpbGUKKyAgICAgICAgZXJyb3IuICBDdXJyZW50bHksIGl0ICJ3b3Jr
cyIgYmVjYXVzZSBpdCBhY3R1YWxseSBjYWxscyBgb3BlcmF0b3IKKyAgICAgICAgTlNVUkwqKClg
Li4uIHdoaWNoIGlzIGxpa2VseSBOT1Qgd2hhdCB5b3Ugd2FudGVkLiBVbnRpbCB3ZSBkZWNpZGUK
KyAgICAgICAgd2hhdCBpdCBtZWFucyB0byBoYXZlIGEgVVJMIGluIGEgY29uZGl0aW9uYWwgaXQg
d2lsbCBiZSBhIGNvbXBpbGUKKyAgICAgICAgZXJyb3IuCisKKyAgICAgICAgKiB3dGYvVVJMLmg6
CisgICAgICAgIChXVEY6OlVSTDo6b3BlcmF0b3IgYm9vbCk6CisKIDIwMjAtMDctMDkgIFhhYmll
ciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBTaW1w
bGlmeSBCb3hQdHI6OmNyZWF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE5MmUyMTAzZWRhNWMyZTkyNTk0MmNk
Y2QxMGJmZDM0MGRjZjQ2NjEuLjgzNGQzOTczYjY4NzU4OTVkZjFhNTEwYmJkOWZjNDcwN2U1Yzlh
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMC0wNy0xMSAgS2VpdGggTWlsbGVy
ICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBDbGVhbiB1cCBTb3VyY2VQcm92
aWRlciBhbmQgYWRkIGNhbGxlciByZWxhdGl2ZSBsb2FkIHNjcmlwdCB0byBqc2MuY3BwCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyMDUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciBXZWJD
b3JlIDwtPiBKU0MgYmluZGluZyBsYXllciBub3cgdGhhdCBKU0MgdXNlcyBXVEY6OlVSTHMKKyAg
ICAgICAgZm9yIFNvdXJjZU9yaWdpbnMuCisKKyAgICAgICAgQWxzbywgaW1wcm92ZSBtb2R1bGUg
bG9hZGluZyBlcnJvciBtZXNzYWdlcyB0byBpbmNsdWRlIHRoZQorICAgICAgICBzcGVjaWZpZXIg
YW5kIHJlZmVycmVyIHdoZW4gcHJvZHVjaW5nIGVycm9ycyBhcm91bmQgYmFyZS1uYW1lCisgICAg
ICAgIHNwZWNpZmllcnMuCisKKyAgICAgICAgTmV3IGVycm9yIG1lc3NhZ2UgYmVoYXZpb3IgaXMg
YWxyZWFkeSB0ZXN0ZWQgc28gZXhpc3RpbmcgdGVzdHMKKyAgICAgICAgaGF2ZSBiZWVuIHVwZGF0
ZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5o
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXI6OkNhY2hlZFNj
cmlwdFNvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVu
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudCk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpKU0V2ZW50TGlzdGVuZXI6OnNvdXJjZVVSTCBjb25zdCk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0xhenlF
dmVudExpc3RlbmVyOjpKU0xhenlFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
TGF6eUV2ZW50TGlzdGVuZXI6OmluaXRpYWxpemVKU0Z1bmN0aW9uIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkpTTGF6eUV2ZW50TGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Njcmlw
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZh
bHVhdGVJbldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1
YXRlTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmNhbGxJbldv
cmxkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpzb3VyY2VVUkwgY29uc3QpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpy
ZXNvbHZlTW9kdWxlU3BlY2lmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OnJlamVjdFByb21pc2Up
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFNvdXJjZUNvZGU6OlNjcmlwdFNvdXJjZUNvZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0U291cmNlQ29kZTo6dXJsIGNvbnN0KToKKwogMjAyMC0wNy0wOSAgRnVqaWkg
SGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9d
W01lZGlhRm91bmRhdGlvbl0gVXNlIC9ERUxBWUxPQUQgZm9yIG1mLmRsbApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCmluZGV4IGZlNWYwYTFhZDVhZWFkZjQwM2VhOWNiNDJjYjc3MjM1ZmRjYjE5
MDkuLjNhOTIzOGUzNTc4ZjIzZTI2MDQ5MmUzYmRmY2FiNzZiMTZlNzZmNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNy0xMSAgS2VpdGggTWls
bGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBDbGVhbiB1cCBTb3VyY2VQ
cm92aWRlciBhbmQgYWRkIGNhbGxlciByZWxhdGl2ZSBsb2FkIHNjcmlwdCB0byBqc2MuY3BwCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyMDUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgdGhlIHNv
dXJjZSBvcmlnaW4ncyBVUkwgZm9yIHRoZSBkZWJ1Z2dlciBzaW5jZSBpdCdzIHRoZSB0cnVlIFVS
TCBmb3IgdGhlIHNjcmlwdC4KKworICAgICAgICAqIFdlYlZpZXcvV2ViU2NyaXB0RGVidWdnZXIu
bW06CisgICAgICAgIChXZWJTY3JpcHREZWJ1Z2dlcjo6c291cmNlUGFyc2VkKToKKwogMjAyMC0w
Ny0wNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMvRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUyBzaG91
bGQgbm90IGhhdmUgdHJhaWxpbmcgc2VtaWNvbG9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNBUElHbG9iYWxPYmplY3QubW0KaW5kZXggMDJjYjliNzMxMTA1M2E0MmM3ZGQ1NDVl
ZTgzOWQxYzgwMWU0YjkxZi4uZjU4YzIwNjQ4ODZkOWVhN2JjOTAyNWFhNTU1NzlkZjQxM2JjMzZk
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVj
dC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0Lm1t
CkBAIC03Niw3ICs3Niw3IEBAIHN0YXRpYyBFeHBlY3RlZDxVUkwsIFN0cmluZz4gY29tcHV0ZVZh
bGlkSW1wb3J0U3BlY2lmaWVyKGNvbnN0IFVSTCYgYmFzZSwgY29uc3QKICAgICAgICAgcmV0dXJu
IGFic29sdXRlVVJMOwogCiAgICAgaWYgKCFzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLycpICYmICFz
cGVjaWZpZXIuc3RhcnRzV2l0aCgiLi8iKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4uLyIp
KQotICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiTW9kdWxlIHNwZWNp
ZmllcjogIl9zLCBzcGVjaWZpZXIsICIgZG9lcyBub3Qgc3RhcnQgd2l0aCBcIi9cIiwgXCIuL1wi
LCBvciBcIi4uL1wiLiJfcykpOworICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0
cmluZygiTW9kdWxlIHNwZWNpZmllcjogIl9zLCBzcGVjaWZpZXIsICIgZG9lcyBub3Qgc3RhcnQg
d2l0aCBcIi9cIiwgXCIuL1wiLCBvciBcIi4uL1wiLiBSZWZlcmVuY2VkIGZyb206ICJfcywgYmFz
ZS5zdHJpbmcoKSkpOwogCiAgICAgaWYgKHNwZWNpZmllci5zdGFydHNXaXRoKCcvJykpIHsKICAg
ICAgICAgYWJzb2x1dGVVUkwgPSBVUkwoVVJMKHsgfSwgImZpbGU6Ly8iKSwgc3BlY2lmaWVyKTsK
QEAgLTE1MCw4ICsxNTAsNyBAQCBKU0ludGVybmFsUHJvbWlzZSogSlNBUElHbG9iYWxPYmplY3Q6
Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZShKU0dsb2JhbE9iamVjdCogZwogICAgICAgICByZXR1
cm4gcmVqZWN0KGV4Y2VwdGlvbi0+dmFsdWUoKSk7CiAgICAgfQogCi0gICAgU3RyaW5nIHJlZmVy
cmVyID0gIXNvdXJjZU9yaWdpbi5pc051bGwoKSA/IHNvdXJjZU9yaWdpbi5zdHJpbmcoKSA6IFN0
cmluZygpOwotICAgIFVSTCBiYXNlVVJMKFVSTCgpLCByZWZlcnJlcik7CisgICAgVVJMIGJhc2VV
UkwgPSBzb3VyY2VPcmlnaW4udXJsKCkgPyBzb3VyY2VPcmlnaW4udXJsKCkgOiBVUkwoKTsKICAg
ICBhdXRvIHJlc3VsdCA9IGNvbXB1dGVWYWxpZEltcG9ydFNwZWNpZmllcihiYXNlVVJMLCBzcGVj
aWZpZXIpOwogICAgIGlmIChyZXN1bHQpCiAgICAgICAgIHJldHVybiBpbXBvcnQocmVzdWx0LnZh
bHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2UuY3BwCmluZGV4IDFkMDRjZjNmOTQ5
MGRkZjc1MzRiMjEwMzAxM2FhYzRkNWY4NGI1NTMuLjA5NjFjNjdkODk0NWU3NTZhZWRjZDZlZGZk
ODYyMTQ3YzkwOGMyMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNC
YXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQmFzZS5jcHAKQEAgLTcz
LDcgKzczLDcgQEAgSlNWYWx1ZVJlZiBKU0V2YWx1YXRlU2NyaXB0SW50ZXJuYWwoY29uc3QgSlNM
b2NrSG9sZGVyJiwgSlNDb250ZXh0UmVmIGN0eCwgSlNPYmoKICAgICByZXR1cm4gdG9SZWYoZ2xv
YmFsT2JqZWN0LCBqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNWYWx1ZVJlZiBKU0V2YWx1YXRlU2Ny
aXB0KEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNPYmplY3RSZWYgdGhp
c09iamVjdCwgSlNTdHJpbmdSZWYgc291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pCitKU1ZhbHVlUmVmIEpTRXZhbHVhdGVTY3JpcHQoSlNDb250
ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgc2NyaXB0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBK
U1N0cmluZ1JlZiBzb3VyY2VVUkxTdHJpbmcsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBpZiAoIWN0eCkgewogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTg1LDEzICs4NSwxMyBAQCBKU1ZhbHVlUmVmIEpTRXZhbHVhdGVTY3Jp
cHQoSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgc2NyaXB0LCBKU09iamVjdFJlZiB0aAog
CiAgICAgc3RhcnRpbmdMaW5lTnVtYmVyID0gc3RkOjptYXgoMSwgc3RhcnRpbmdMaW5lTnVtYmVy
KTsKIAotICAgIGF1dG8gc291cmNlVVJMU3RyaW5nID0gc291cmNlVVJMID8gc291cmNlVVJMLT5z
dHJpbmcoKSA6IFN0cmluZygpOwotICAgIFNvdXJjZUNvZGUgc291cmNlID0gbWFrZVNvdXJjZShz
Y3JpcHQtPnN0cmluZygpLCBTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkxTdHJpbmcgfSwgVVJMKHsg
fSwgc291cmNlVVJMU3RyaW5nKSwgVGV4dFBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVC
YXNlZEludChzdGFydGluZ0xpbmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVyKCkpKTsKKyAgICBhdXRv
IHNvdXJjZVVSTCA9IHNvdXJjZVVSTFN0cmluZyA/IFVSTCh7IH0sIHNvdXJjZVVSTFN0cmluZy0+
c3RyaW5nKCkpIDogVVJMKCk7CisgICAgU291cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291cmNlKHNj
cmlwdC0+c3RyaW5nKCksIFNvdXJjZU9yaWdpbiB7IHNvdXJjZVVSTCB9LCBzb3VyY2VVUkwuc3Ry
aW5nKCksIFRleHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRp
bmdMaW5lTnVtYmVyKSwgT3JkaW5hbE51bWJlcigpKSk7CiAKICAgICByZXR1cm4gSlNFdmFsdWF0
ZVNjcmlwdEludGVybmFsKGxvY2tlciwgY3R4LCB0aGlzT2JqZWN0LCBzb3VyY2UsIGV4Y2VwdGlv
bik7CiB9CiAKLWJvb2wgSlNDaGVja1NjcmlwdFN5bnRheChKU0NvbnRleHRSZWYgY3R4LCBKU1N0
cmluZ1JlZiBzY3JpcHQsIEpTU3RyaW5nUmVmIHNvdXJjZVVSTCwgaW50IHN0YXJ0aW5nTGluZU51
bWJlciwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorYm9vbCBKU0NoZWNrU2NyaXB0U3ludGF4KEpT
Q29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNTdHJpbmdSZWYgc291cmNlVVJM
U3RyaW5nLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7
CiAgICAgaWYgKCFjdHgpIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMDMs
OCArMTAzLDggQEAgYm9vbCBKU0NoZWNrU2NyaXB0U3ludGF4KEpTQ29udGV4dFJlZiBjdHgsIEpT
U3RyaW5nUmVmIHNjcmlwdCwgSlNTdHJpbmdSZWYgc291cmMKIAogICAgIHN0YXJ0aW5nTGluZU51
bWJlciA9IHN0ZDo6bWF4KDEsIHN0YXJ0aW5nTGluZU51bWJlcik7CiAKLSAgICBhdXRvIHNvdXJj
ZVVSTFN0cmluZyA9IHNvdXJjZVVSTCA/IHNvdXJjZVVSTC0+c3RyaW5nKCkgOiBTdHJpbmcoKTsK
LSAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2Uoc2NyaXB0LT5zdHJpbmcoKSwgU291
cmNlT3JpZ2luIHsgc291cmNlVVJMU3RyaW5nIH0sIFVSTCh7IH0sIHNvdXJjZVVSTFN0cmluZyks
IFRleHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRpbmdMaW5l
TnVtYmVyKSwgT3JkaW5hbE51bWJlcigpKSk7CisgICAgYXV0byBzb3VyY2VVUkwgPSBzb3VyY2VV
UkxTdHJpbmcgPyBVUkwoeyB9LCBzb3VyY2VVUkxTdHJpbmctPnN0cmluZygpKSA6IFVSTCgpOwor
ICAgIFNvdXJjZUNvZGUgc291cmNlID0gbWFrZVNvdXJjZShzY3JpcHQtPnN0cmluZygpLCBTb3Vy
Y2VPcmlnaW4geyBzb3VyY2VVUkwgfSwgc291cmNlVVJMLnN0cmluZygpLCBUZXh0UG9zaXRpb24o
T3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0YXJ0aW5nTGluZU51bWJlciksIE9yZGlu
YWxOdW1iZXIoKSkpOwogICAgIAogICAgIEpTVmFsdWUgc3ludGF4RXhjZXB0aW9uOwogICAgIGJv
b2wgaXNWYWxpZFN5bnRheCA9IGNoZWNrU3ludGF4KGdsb2JhbE9iamVjdCwgc291cmNlLCAmc3lu
dGF4RXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNP
YmplY3RSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAK
aW5kZXggZDlhZWJmN2MxYzAwZDQ3ZmM5ZDY0ODBiNjM1MzY3MTNjMDU2ZmU2MC4uMzYzYjhhZjRi
NDhiYjhjMDc0NWY4MWIxY2UwZDhmYmU2NTZmMjhhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU09iamVjdFJlZi5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBKU09iamVjdFJlZiBKU09i
amVjdE1ha2VDb25zdHJ1Y3RvcihKU0NvbnRleHRSZWYgY3R4LCBKU0NsYXNzUmVmIGpzQ2xhc3Ms
IEpTT2JqZQogICAgIHJldHVybiB0b1JlZihjb25zdHJ1Y3Rvcik7CiB9CiAKLUpTT2JqZWN0UmVm
IEpTT2JqZWN0TWFrZUZ1bmN0aW9uKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIG5hbWUs
IHVuc2lnbmVkIHBhcmFtZXRlckNvdW50LCBjb25zdCBKU1N0cmluZ1JlZiBwYXJhbWV0ZXJOYW1l
c1tdLCBKU1N0cmluZ1JlZiBib2R5LCBKU1N0cmluZ1JlZiBzb3VyY2VVUkwsIGludCBzdGFydGlu
Z0xpbmVOdW1iZXIsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK0pTT2JqZWN0UmVmIEpTT2JqZWN0
TWFrZUZ1bmN0aW9uKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIG5hbWUsIHVuc2lnbmVk
IHBhcmFtZXRlckNvdW50LCBjb25zdCBKU1N0cmluZ1JlZiBwYXJhbWV0ZXJOYW1lc1tdLCBKU1N0
cmluZ1JlZiBib2R5LCBKU1N0cmluZ1JlZiBzb3VyY2VVUkxTdHJpbmcsIGludCBzdGFydGluZ0xp
bmVOdW1iZXIsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBpZiAoIWN0eCkgewogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTE1MSw4ICsxNTEsOCBAQCBKU09iamVjdFJl
ZiBKU09iamVjdE1ha2VGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBuYW1l
LCB1bnNpZ25lZCBwYQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBhdXRv
IHNvdXJjZVVSTFN0cmluZyA9IHNvdXJjZVVSTCA/IHNvdXJjZVVSTC0+c3RyaW5nKCkgOiBTdHJp
bmcoKTsKLSAgICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0RnVuY3Rpb24oZ2xvYmFsT2Jq
ZWN0LCBhcmdzLCBuYW1lSUQsIFNvdXJjZU9yaWdpbiB7IHNvdXJjZVVSTFN0cmluZyB9LCBzb3Vy
Y2VVUkxTdHJpbmcsIFRleHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQo
c3RhcnRpbmdMaW5lTnVtYmVyKSwgT3JkaW5hbE51bWJlcigpKSk7CisgICAgYXV0byBzb3VyY2VV
UkwgPSBzb3VyY2VVUkxTdHJpbmcgPyBVUkwoeyB9LCBzb3VyY2VVUkxTdHJpbmctPnN0cmluZygp
KSA6IFVSTCgpOworICAgIEpTT2JqZWN0KiByZXN1bHQgPSBjb25zdHJ1Y3RGdW5jdGlvbihnbG9i
YWxPYmplY3QsIGFyZ3MsIG5hbWVJRCwgU291cmNlT3JpZ2luIHsgc291cmNlVVJMIH0sIHNvdXJj
ZVVSTC5zdHJpbmcoKSwgVGV4dFBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZElu
dChzdGFydGluZ0xpbmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVyKCkpKTsKICAgICBpZiAoaGFuZGxl
RXhjZXB0aW9uSWZOZWVkZWQoc2NvcGUsIGN0eCwgZXhjZXB0aW9uKSA9PSBFeGNlcHRpb25TdGF0
dXM6OkRpZFRocm93KQogICAgICAgICByZXN1bHQgPSBudWxscHRyOwogICAgIHJldHVybiB0b1Jl
ZihyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Njcmlw
dC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHQubW0KaW5kZXggMDBjODc2
YTRlNjQ1YzRkOGE3ZjVhYzhlOGRjMmM3ZTFiNWMyMmYzMy4uOWU0MTQ1NzEyNGJmMTQzZWE0MTc2
MTVjNDk4MmE1MTljMWQ5M2E3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1NjcmlwdC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0Lm1t
CkBAIC0yNjcsOSArMjY3LDExIEBAIHN0YXRpYyBib29sIHZhbGlkYXRlQnl0ZWNvZGVDYWNoZVBh
dGgoTlNVUkwqIGNhY2hlUGF0aCwgTlNFcnJvcioqIGVycm9yKQogICAgIEpTQzo6SlNMb2NrSG9s
ZGVyIGxvY2tlcih2bSk7CiAKICAgICBUZXh0UG9zaXRpb24gc3RhcnRQb3NpdGlvbiB7IH07Ci0g
ICAgU3RyaW5nIHVybCA9IFN0cmluZyB7IFtbc2VsZiBzb3VyY2VVUkxdIGFic29sdXRlU3RyaW5n
XSB9OworICAgIFN0cmluZyBmaWxlbmFtZSA9IFN0cmluZyB7IFtbc2VsZiBzb3VyY2VVUkxdIGFi
c29sdXRlU3RyaW5nXSB9OworICAgIFVSTCB1cmwgPSBVUkwoeyB9LCBmaWxlbmFtZSk7CiAgICAg
YXV0byB0eXBlID0gbV90eXBlID09IGtKU1NjcmlwdFR5cGVNb2R1bGUgPyBKU0M6OlNvdXJjZVBy
b3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlIDogSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6
OlByb2dyYW07Ci0gICAgUmVmPEpTU2NyaXB0U291cmNlUHJvdmlkZXI+IHNvdXJjZVByb3ZpZGVy
ID0gSlNTY3JpcHRTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNlbGYsIEpTQzo6U291cmNlT3JpZ2lu
KHVybCksIFVSTCh7IH0sIHVybCksIHN0YXJ0UG9zaXRpb24sIHR5cGUpOworICAgIEpTQzo6U291
cmNlT3JpZ2luIG9yaWdpbih1cmwpOworICAgIFJlZjxKU1NjcmlwdFNvdXJjZVByb3ZpZGVyPiBz
b3VyY2VQcm92aWRlciA9IEpTU2NyaXB0U291cmNlUHJvdmlkZXI6OmNyZWF0ZShzZWxmLCBvcmln
aW4sIFdURk1vdmUoZmlsZW5hbWUpLCBzdGFydFBvc2l0aW9uLCB0eXBlKTsKICAgICBKU0M6OlNv
dXJjZUNvZGUgc291cmNlQ29kZShXVEZNb3ZlKHNvdXJjZVByb3ZpZGVyKSwgc3RhcnRQb3NpdGlv
bi5tX2xpbmUub25lQmFzZWRJbnQoKSwgc3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZElu
dCgpKTsKICAgICByZXR1cm4gc291cmNlQ29kZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1NjcmlwdFJlZi5jcHAKaW5kZXggODQxNTlhYzUyNTczYzc4NzRlM2I1MmIyYTQyZTBmZWM2
M2NlN2JhYS4uNzYyY2VjMDVlOTI0NmMwY2IxZmFjMTJkZGFmNzJjMWFjNjEwNTAyMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAKQEAgLTM5LDkgKzM5LDkgQEAg
dXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogc3RydWN0IE9wYXF1ZUpTU2NyaXB0IGZpbmFsIDogcHVi
bGljIFNvdXJjZVByb3ZpZGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgV1RGOjpSZWY8T3BhcXVl
SlNTY3JpcHQ+IGNyZWF0ZShWTSYgdm0sIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2lu
LCBVUkwmJiB1cmwsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNl
KQorICAgIHN0YXRpYyBXVEY6OlJlZjxPcGFxdWVKU1NjcmlwdD4gY3JlYXRlKFZNJiB2bSwgY29u
c3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0cmluZyBmaWxlbmFtZSwgaW50IHN0YXJ0
aW5nTGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2UpCiAgICAgewotICAgICAgICByZXR1
cm4gV1RGOjphZG9wdFJlZigqbmV3IE9wYXF1ZUpTU2NyaXB0KHZtLCBzb3VyY2VPcmlnaW4sIFdU
Rk1vdmUodXJsKSwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2UpKTsKKyAgICAgICAgcmV0dXJu
IFdURjo6YWRvcHRSZWYoKm5ldyBPcGFxdWVKU1NjcmlwdCh2bSwgc291cmNlT3JpZ2luLCBXVEZN
b3ZlKGZpbGVuYW1lKSwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2UpKTsKICAgICB9CiAKICAg
ICB1bnNpZ25lZCBoYXNoKCkgY29uc3QgZmluYWwKQEAgLTU3LDggKzU3LDggQEAgcHVibGljOgog
ICAgIFZNJiB2bSgpIGNvbnN0IHsgcmV0dXJuIG1fdm07IH0KIAogcHJpdmF0ZToKLSAgICBPcGFx
dWVKU1NjcmlwdChWTSYgdm0sIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwm
JiB1cmwsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlKQotICAg
ICAgICA6IFNvdXJjZVByb3ZpZGVyKHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpLCBUZXh0UG9z
aXRpb24oT3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0YXJ0aW5nTGluZU51bWJlciks
IE9yZGluYWxOdW1iZXIoKSksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSkKKyAg
ICBPcGFxdWVKU1NjcmlwdChWTSYgdm0sIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2lu
LCBTdHJpbmcmJiBmaWxlbmFtZSwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgY29uc3QgU3RyaW5n
JiBzb3VyY2UpCisgICAgICAgIDogU291cmNlUHJvdmlkZXIoc291cmNlT3JpZ2luLCBXVEZNb3Zl
KGZpbGVuYW1lKSwgVGV4dFBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChz
dGFydGluZ0xpbmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVyKCkpLCBTb3VyY2VQcm92aWRlclNvdXJj
ZVR5cGU6OlByb2dyYW0pCiAgICAgICAgICwgbV92bSh2bSkKICAgICAgICAgLCBtX3NvdXJjZShz
b3VyY2UuaXNOdWxsKCkgPyAqU3RyaW5nSW1wbDo6ZW1wdHkoKSA6ICpzb3VyY2UuaW1wbCgpKQog
ICAgIHsKQEAgLTgwLDcgKzgwLDcgQEAgc3RhdGljIGJvb2wgcGFyc2VTY3JpcHQoVk0mIHZtLCBj
b25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIFBhcnNlckVycm9yJiBlcnJvcikKIAogZXh0ZXJuICJD
IiB7CiAKLUpTU2NyaXB0UmVmIEpTU2NyaXB0Q3JlYXRlUmVmZXJlbmNpbmdJbW1vcnRhbEFTQ0lJ
VGV4dChKU0NvbnRleHRHcm91cFJlZiBjb250ZXh0R3JvdXAsIEpTU3RyaW5nUmVmIHVybCwgaW50
IHN0YXJ0aW5nTGluZU51bWJlciwgY29uc3QgY2hhciogc291cmNlLCBzaXplX3QgbGVuZ3RoLCBK
U1N0cmluZ1JlZiogZXJyb3JNZXNzYWdlLCBpbnQqIGVycm9yTGluZSkKK0pTU2NyaXB0UmVmIEpT
U2NyaXB0Q3JlYXRlUmVmZXJlbmNpbmdJbW1vcnRhbEFTQ0lJVGV4dChKU0NvbnRleHRHcm91cFJl
ZiBjb250ZXh0R3JvdXAsIEpTU3RyaW5nUmVmIHVybFN0cmluZywgaW50IHN0YXJ0aW5nTGluZU51
bWJlciwgY29uc3QgY2hhciogc291cmNlLCBzaXplX3QgbGVuZ3RoLCBKU1N0cmluZ1JlZiogZXJy
b3JNZXNzYWdlLCBpbnQqIGVycm9yTGluZSkKIHsKICAgICBhdXRvJiB2bSA9ICp0b0pTKGNvbnRl
eHRHcm91cCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcigmdm0pOwpAQCAtOTEsOCArOTEsOCBA
QCBKU1NjcmlwdFJlZiBKU1NjcmlwdENyZWF0ZVJlZmVyZW5jaW5nSW1tb3J0YWxBU0NJSVRleHQo
SlNDb250ZXh0R3JvdXBSZWYgY29udGV4dAogCiAgICAgc3RhcnRpbmdMaW5lTnVtYmVyID0gc3Rk
OjptYXgoMSwgc3RhcnRpbmdMaW5lTnVtYmVyKTsKIAotICAgIGF1dG8gc291cmNlVVJMU3RyaW5n
ID0gdXJsID8gdXJsLT5zdHJpbmcoKSA6IFN0cmluZygpOwotICAgIGF1dG8gcmVzdWx0ID0gT3Bh
cXVlSlNTY3JpcHQ6OmNyZWF0ZSh2bSwgU291cmNlT3JpZ2luIHsgc291cmNlVVJMU3RyaW5nIH0s
IFVSTCh7IH0sIHNvdXJjZVVSTFN0cmluZyksIHN0YXJ0aW5nTGluZU51bWJlciwgU3RyaW5nKFN0
cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKHNvdXJjZSwgbGVuZ3RoKSkpOworICAgIGF1dG8g
c291cmNlVVJMID0gdXJsU3RyaW5nID8gVVJMKHsgfSwgdXJsU3RyaW5nLT5zdHJpbmcoKSkgOiBV
UkwoKTsKKyAgICBhdXRvIHJlc3VsdCA9IE9wYXF1ZUpTU2NyaXB0OjpjcmVhdGUodm0sIFNvdXJj
ZU9yaWdpbiB7IHNvdXJjZVVSTCB9LCBzb3VyY2VVUkwuc3RyaW5nKCksIHN0YXJ0aW5nTGluZU51
bWJlciwgU3RyaW5nKFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKHNvdXJjZSwgbGVuZ3Ro
KSkpOwogCiAgICAgUGFyc2VyRXJyb3IgZXJyb3I7CiAgICAgaWYgKCFwYXJzZVNjcmlwdCh2bSwg
U291cmNlQ29kZShyZXN1bHQuY29weVJlZigpKSwgZXJyb3IpKSB7CkBAIC0xMDYsMTUgKzEwNiwx
NSBAQCBKU1NjcmlwdFJlZiBKU1NjcmlwdENyZWF0ZVJlZmVyZW5jaW5nSW1tb3J0YWxBU0NJSVRl
eHQoSlNDb250ZXh0R3JvdXBSZWYgY29udGV4dAogICAgIHJldHVybiAmcmVzdWx0LmxlYWtSZWYo
KTsKIH0KIAotSlNTY3JpcHRSZWYgSlNTY3JpcHRDcmVhdGVGcm9tU3RyaW5nKEpTQ29udGV4dEdy
b3VwUmVmIGNvbnRleHRHcm91cCwgSlNTdHJpbmdSZWYgdXJsLCBpbnQgc3RhcnRpbmdMaW5lTnVt
YmVyLCBKU1N0cmluZ1JlZiBzb3VyY2UsIEpTU3RyaW5nUmVmKiBlcnJvck1lc3NhZ2UsIGludCog
ZXJyb3JMaW5lKQorSlNTY3JpcHRSZWYgSlNTY3JpcHRDcmVhdGVGcm9tU3RyaW5nKEpTQ29udGV4
dEdyb3VwUmVmIGNvbnRleHRHcm91cCwgSlNTdHJpbmdSZWYgdXJsU3RyaW5nLCBpbnQgc3RhcnRp
bmdMaW5lTnVtYmVyLCBKU1N0cmluZ1JlZiBzb3VyY2UsIEpTU3RyaW5nUmVmKiBlcnJvck1lc3Nh
Z2UsIGludCogZXJyb3JMaW5lKQogewogICAgIGF1dG8mIHZtID0gKnRvSlMoY29udGV4dEdyb3Vw
KTsKICAgICBKU0xvY2tIb2xkZXIgbG9ja2VyKCZ2bSk7CiAKICAgICBzdGFydGluZ0xpbmVOdW1i
ZXIgPSBzdGQ6Om1heCgxLCBzdGFydGluZ0xpbmVOdW1iZXIpOwogCi0gICAgYXV0byBzb3VyY2VV
UkxTdHJpbmcgPSB1cmwgPyB1cmwtPnN0cmluZygpIDogU3RyaW5nKCk7Ci0gICAgYXV0byByZXN1
bHQgPSBPcGFxdWVKU1NjcmlwdDo6Y3JlYXRlKHZtLCBTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkxT
dHJpbmcgfSwgVVJMKHsgfSwgc291cmNlVVJMU3RyaW5nKSwgc3RhcnRpbmdMaW5lTnVtYmVyLCBz
b3VyY2UtPnN0cmluZygpKTsKKyAgICBhdXRvIHNvdXJjZVVSTCA9IHVybFN0cmluZyA/IFVSTCh7
IH0sIHVybFN0cmluZy0+c3RyaW5nKCkpIDogVVJMKCk7CisgICAgYXV0byByZXN1bHQgPSBPcGFx
dWVKU1NjcmlwdDo6Y3JlYXRlKHZtLCBTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkwgfSwgc291cmNl
VVJMLnN0cmluZygpLCBzdGFydGluZ0xpbmVOdW1iZXIsIHNvdXJjZS0+c3RyaW5nKCkpOwogCiAg
ICAgUGFyc2VyRXJyb3IgZXJyb3I7CiAgICAgaWYgKCFwYXJzZVNjcmlwdCh2bSwgU291cmNlQ29k
ZShyZXN1bHQuY29weVJlZigpKSwgZXJyb3IpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL2dsaWIvSlNDQ29udGV4dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL2dsaWIvSlNDQ29udGV4dC5jcHAKaW5kZXggYWI4MDlkZDcxZjAxNzdjNThkMzMzY2RkZjlk
ZmI2MmU1ZWU5MGJiMy4uMjJiMzFhYzcyMGJiM2UyYTRiNDk1MDZkZGI3NzI1ZDM3NGQ2NTIxNyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDb250ZXh0LmNwcApAQCAt
OTU2LDkgKzk1Niw5IEBAIEpTQ0NoZWNrU3ludGF4UmVzdWx0IGpzY19jb250ZXh0X2NoZWNrX3N5
bnRheChKU0NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBjaGFyKiBjCiAgICAgSlNDOjpWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9ja2VyKHZtKTsK
IAotICAgIFN0cmluZyBzb3VyY2VVUkxTdHJpbmcgPSB1cmkgPyBTdHJpbmc6OmZyb21VVEY4KHVy
aSkgOiBTdHJpbmcoKTsKLSAgICBKU0M6OlNvdXJjZUNvZGUgc291cmNlID0gSlNDOjptYWtlU291
cmNlKFN0cmluZzo6ZnJvbVVURjgoY29kZSwgbGVuZ3RoIDwgMCA/IHN0cmxlbihjb2RlKSA6IGxl
bmd0aCksIEpTQzo6U291cmNlT3JpZ2luIHsgc291cmNlVVJMU3RyaW5nIH0sCi0gICAgICAgIFVS
TCh7IH0sIHNvdXJjZVVSTFN0cmluZyksIFRleHRQb3NpdGlvbihPcmRpbmFsTnVtYmVyOjpmcm9t
T25lQmFzZWRJbnQobGluZU51bWJlciksIE9yZGluYWxOdW1iZXIoKSkpOworICAgIFVSTCBzb3Vy
Y2VVUkwgPSB1cmkgPyBVUkwoeyB9LCB1cmkpIDogVVJMKCk7CisgICAgSlNDOjpTb3VyY2VDb2Rl
IHNvdXJjZSA9IEpTQzo6bWFrZVNvdXJjZShTdHJpbmc6OmZyb21VVEY4KGNvZGUsIGxlbmd0aCA8
IDAgPyBzdHJsZW4oY29kZSkgOiBsZW5ndGgpLCBKU0M6OlNvdXJjZU9yaWdpbiB7IHNvdXJjZVVS
TCB9LAorICAgICAgICBzb3VyY2VVUkwuc3RyaW5nKCkgLCBUZXh0UG9zaXRpb24oT3JkaW5hbE51
bWJlcjo6ZnJvbU9uZUJhc2VkSW50KGxpbmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVyKCkpKTsKICAg
ICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsKICAgICBKU0M6OlBhcnNlckVycm9yIGVycm9yOwogICAg
IHN3aXRjaCAobW9kZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvQnVpbHRpbkV4ZWN1dGFibGVzLmNwcAppbmRleCBhYmFhZWYwODFmZTI0YjI5MWRiZjM4NzVm
ZWI2N2MzOTc4YWJkNDJjLi44MzA0OTQ0YmFjNDM4YmM5NzkzNGE0YTAyZDAyMTU5NTViNGNhY2Zi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4ZWN1
dGFibGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbkV4
ZWN1dGFibGVzLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogQnVpbHRp
bkV4ZWN1dGFibGVzOjpCdWlsdGluRXhlY3V0YWJsZXMoVk0mIHZtKQogICAgIDogbV92bSh2bSkK
LSAgICAsIG1fY29tYmluZWRTb3VyY2VQcm92aWRlcihTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3Jl
YXRlKFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKHNfSlNDQ29tYmluZWRDb2RlLCBzX0pT
Q0NvbWJpbmVkQ29kZUxlbmd0aCksIHsgfSwgVVJMKCkpKQorICAgICwgbV9jb21iaW5lZFNvdXJj
ZVByb3ZpZGVyKFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoU3RyaW5nSW1wbDo6Y3JlYXRl
RnJvbUxpdGVyYWwoc19KU0NDb21iaW5lZENvZGUsIHNfSlNDQ29tYmluZWRDb2RlTGVuZ3RoKSwg
eyB9LCBTdHJpbmcoKSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmNwcAppbmRleCA5MmFjYTYyOTY1YThmMjdhYzQ3ZjQz
Y2EyNGEzNzBlNTRjMDNiZjJhLi4wZTE5OTk4ZjFlMzJhZTk2MmIyM2NlMzY3ZGMwOTc3ZjM3MzU0
MTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJM
b2NhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
TG9jYXRpb24uY3BwCkBAIC0zOSw5ICszOSw2IEBAIERlYnVnZ2VyTG9jYXRpb246OkRlYnVnZ2Vy
TG9jYXRpb24oU2NyaXB0RXhlY3V0YWJsZSogZXhlY3V0YWJsZSkKICAgICBzb3VyY2VJRCA9IGV4
ZWN1dGFibGUtPnNvdXJjZUlEKCk7CiAgICAgbGluZSA9IGV4ZWN1dGFibGUtPmZpcnN0TGluZSgp
OwogICAgIGNvbHVtbiA9IGV4ZWN1dGFibGUtPnN0YXJ0Q29sdW1uKCk7Ci0gICAgdXJsID0gZXhl
Y3V0YWJsZS0+c291cmNlVVJMKCk7Ci0gICAgaWYgKHVybC5pc0VtcHR5KCkpCi0gICAgICAgIHVy
bCA9IGV4ZWN1dGFibGUtPnNvdXJjZSgpLnByb3ZpZGVyKCktPnNvdXJjZVVSTERpcmVjdGl2ZSgp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJMb2NhdGlvbi5oCmluZGV4IDNlMWM0MTY2YjBhN2U5MDQxMDY3N2Q2
YjgyNmYxZDYyMWYyOTRlNTUuLmU5NDg3NzE2OGM0MDA0ZWI5Y2FkMzhlNzViOWUzOGZjMjAwNjIz
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckxv
Y2F0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyTG9j
YXRpb24uaApAQCAtMzUsMTYgKzM1LDE0IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGFibGU7CiBzdHJ1
Y3QgRGVidWdnZXJMb2NhdGlvbiB7CiAKICAgICBEZWJ1Z2dlckxvY2F0aW9uKCkgeyB9Ci0gICAg
RGVidWdnZXJMb2NhdGlvbihjb25zdCBTdHJpbmcmIHVybCwgaW50cHRyX3Qgc291cmNlSUQsIHVu
c2lnbmVkIGxpbmUsIHVuc2lnbmVkIGNvbHVtbikKLSAgICAgICAgOiB1cmwodXJsKQotICAgICAg
ICAsIHNvdXJjZUlEKHNvdXJjZUlEKQorICAgIERlYnVnZ2VyTG9jYXRpb24oaW50cHRyX3Qgc291
cmNlSUQsIHVuc2lnbmVkIGxpbmUsIHVuc2lnbmVkIGNvbHVtbikKKyAgICAgICAgOiBzb3VyY2VJ
RChzb3VyY2VJRCkKICAgICAgICAgLCBsaW5lKGxpbmUpCiAgICAgICAgICwgY29sdW1uKGNvbHVt
bikKICAgICB7IH0KIAogICAgIERlYnVnZ2VyTG9jYXRpb24oU2NyaXB0RXhlY3V0YWJsZSopOwog
Ci0gICAgU3RyaW5nIHVybDsKICAgICBpbnRwdHJfdCBzb3VyY2VJRCB7IG5vU291cmNlSUQgfTsK
ICAgICB1bnNpZ25lZCBsaW5lIHsgMCB9OwogICAgIHVuc2lnbmVkIGNvbHVtbiB7IDAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZl
ci5jcHAKaW5kZXggZmJiMDRhNDhjY2QxNzc4OTQwZDA2NDcwNmU1Mjg0MDQ4MjJmYzk2MC4uOGRl
ZDEyOTVmOTQzNjg3OGM3M2U5Y2VkYjY2MTMxMjNlNDIyMWRkZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTEz
OSwxMSArMTM5LDExIEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnNvdXJjZVBhcnNlZChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTb3VyY2VQcm92aWRlCiAgICAgICAgIHJldHVybjsK
IAogICAgIGlmIChlcnJvckxpbmUgIT0gLTEpIHsKLSAgICAgICAgYXV0byB1cmwgPSBzb3VyY2VQ
cm92aWRlci0+dXJsKCk7CisgICAgICAgIGF1dG8gc291cmNlVVJMID0gc291cmNlUHJvdmlkZXIt
PnNvdXJjZVVSTCgpOwogICAgICAgICBhdXRvIGRhdGEgPSBzb3VyY2VQcm92aWRlci0+c291cmNl
KCkudG9TdHJpbmcoKTsKICAgICAgICAgYXV0byBmaXJzdExpbmUgPSBzb3VyY2VQcm92aWRlci0+
c3RhcnRQb3NpdGlvbigpLm1fbGluZS5vbmVCYXNlZEludCgpOwogICAgICAgICBkaXNwYXRjaEZ1
bmN0aW9uVG9MaXN0ZW5lcnMoWyZdIChTY3JpcHREZWJ1Z0xpc3RlbmVyJiBsaXN0ZW5lcikgewot
ICAgICAgICAgICAgbGlzdGVuZXIuZmFpbGVkVG9QYXJzZVNvdXJjZSh1cmwuc3RyaW5nKCksIGRh
dGEsIGZpcnN0TGluZSwgZXJyb3JMaW5lLCBlcnJvck1lc3NhZ2UpOworICAgICAgICAgICAgbGlz
dGVuZXIuZmFpbGVkVG9QYXJzZVNvdXJjZShzb3VyY2VVUkwsIGRhdGEsIGZpcnN0TGluZSwgZXJy
b3JMaW5lLCBlcnJvck1lc3NhZ2UpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpzb3VyY2VQYXJz
ZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU291cmNlUHJvdmlkZQogICAgIC8vIEZJ
WE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTYyNzczPiBXZWIgSW5zcGVjdG9yOiBTaW1wbGlm
eSBTY3JpcHREZWJ1Z0xpc3RlbmVyOjpTY3JpcHQgdG8gdXNlIFNvdXJjZVByb3ZpZGVyCiAgICAg
U2NyaXB0RGVidWdMaXN0ZW5lcjo6U2NyaXB0IHNjcmlwdDsKICAgICBzY3JpcHQuc291cmNlUHJv
dmlkZXIgPSBzb3VyY2VQcm92aWRlcjsKLSAgICBzY3JpcHQudXJsID0gc291cmNlUHJvdmlkZXIt
PnVybCgpLnN0cmluZygpOworICAgIHNjcmlwdC51cmwgPSBzb3VyY2VQcm92aWRlci0+c291cmNl
VVJMKCk7CiAgICAgc2NyaXB0LnNvdXJjZSA9IHNvdXJjZVByb3ZpZGVyLT5zb3VyY2UoKS50b1N0
cmluZygpOwogICAgIHNjcmlwdC5zdGFydExpbmUgPSBzb3VyY2VQcm92aWRlci0+c3RhcnRQb3Np
dGlvbigpLm1fbGluZS56ZXJvQmFzZWRJbnQoKTsKICAgICBzY3JpcHQuc3RhcnRDb2x1bW4gPSBz
b3VyY2VQcm92aWRlci0+c3RhcnRQb3NpdGlvbigpLm1fY29sdW1uLnplcm9CYXNlZEludCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvanNjLmNwcAppbmRleCAwZjdjYjNiMmZjOTE4NjdmZjIxMTBhYzdhODc3ODJjNWI0
MDBmNTM4Li41NDgxMmNkMjU5NDEwZDhlYjUxNGVlNzFhZTQ1ZGQ1MjVjMDhmOGM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvanNjLmNwcApAQCAtNjc5LDUxICs2NzksNyBAQCBzdGF0aWMgVUNoYXIgcGF0aFNlcGFy
YXRvcigpCiAjZW5kaWYKIH0KIAotc3RydWN0IERpcmVjdG9yeU5hbWUgewotICAgIC8vIEluIHVu
aXgsIGl0IGlzICIvIi4gSW4gV2luZG93cywgaXQgYmVjb21lcyBhIGRyaXZlIGxldHRlciBsaWtl
ICJDOlwiCi0gICAgU3RyaW5nIHJvb3ROYW1lOwotCi0gICAgLy8gSWYgdGhlIGRpcmVjdG9yeSBu
YW1lIGlzICIvaG9tZS9XZWJLaXQiLCB0aGlzIGJlY29tZXMgImhvbWUvV2ViS2l0Ii4gSWYgdGhl
IGRpcmVjdG9yeSBuYW1lIGlzICIvIiwgdGhpcyBiZWNvbWVzICIiLgotICAgIFN0cmluZyBxdWVy
eU5hbWU7Ci19OwotCi1zdHJ1Y3QgTW9kdWxlTmFtZSB7Ci0gICAgTW9kdWxlTmFtZShjb25zdCBT
dHJpbmcmIG1vZHVsZU5hbWUpOwotCi0gICAgYm9vbCBzdGFydHNXaXRoUm9vdCgpIGNvbnN0Ci0g
ICAgewotICAgICAgICByZXR1cm4gIXF1ZXJpZXMuaXNFbXB0eSgpICYmIHF1ZXJpZXNbMF0uaXNF
bXB0eSgpOwotICAgIH0KLQotICAgIFZlY3RvcjxTdHJpbmc+IHF1ZXJpZXM7Ci19OwotCi1Nb2R1
bGVOYW1lOjpNb2R1bGVOYW1lKGNvbnN0IFN0cmluZyYgbW9kdWxlTmFtZSkKLXsKLSAgICAvLyBB
IG1vZHVsZSBuYW1lIGdpdmVuIGZyb20gY29kZSBpcyByZXByZXNlbnRlZCBhcyB0aGUgVU5JWCBz
dHlsZSBwYXRoLiBMaWtlLCBgLi9BL0IuanNgLgotICAgIHF1ZXJpZXMgPSBtb2R1bGVOYW1lLnNw
bGl0QWxsb3dpbmdFbXB0eUVudHJpZXMoJy8nKTsKLX0KLQotc3RhdGljIE9wdGlvbmFsPERpcmVj
dG9yeU5hbWU+IGV4dHJhY3REaXJlY3RvcnlOYW1lKGNvbnN0IFN0cmluZyYgYWJzb2x1dGVQYXRo
VG9GaWxlKQotewotICAgIHNpemVfdCBmaXJzdFNlcGFyYXRvclBvc2l0aW9uID0gYWJzb2x1dGVQ
YXRoVG9GaWxlLmZpbmQocGF0aFNlcGFyYXRvcigpKTsKLSAgICBpZiAoZmlyc3RTZXBhcmF0b3JQ
b3NpdGlvbiA9PSBub3RGb3VuZCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBE
aXJlY3RvcnlOYW1lIGRpcmVjdG9yeU5hbWU7Ci0gICAgZGlyZWN0b3J5TmFtZS5yb290TmFtZSA9
IGFic29sdXRlUGF0aFRvRmlsZS5zdWJzdHJpbmcoMCwgZmlyc3RTZXBhcmF0b3JQb3NpdGlvbiAr
IDEpOyAvLyBJbmNsdWRlIHRoZSBzZXBhcmF0b3IuCi0gICAgc2l6ZV90IGxhc3RTZXBhcmF0b3JQ
b3NpdGlvbiA9IGFic29sdXRlUGF0aFRvRmlsZS5yZXZlcnNlRmluZChwYXRoU2VwYXJhdG9yKCkp
OwotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobGFzdFNlcGFyYXRvclBvc2l0aW9uICE9IG5vdEZv
dW5kLCAiSWYgdGhlIHNlcGFyYXRvciBpcyBub3QgZm91bmQsIHRoaXMgZnVuY3Rpb24gYWxyZWFk
eSByZXR1cm5zIHdoZW4gcGVyZm9ybWluZyB0aGUgZm9yd2FyZCBzZWFyY2guIik7Ci0gICAgaWYg
KGZpcnN0U2VwYXJhdG9yUG9zaXRpb24gPT0gbGFzdFNlcGFyYXRvclBvc2l0aW9uKQotICAgICAg
ICBkaXJlY3RvcnlOYW1lLnF1ZXJ5TmFtZSA9IFN0cmluZ0ltcGw6OmVtcHR5KCk7Ci0gICAgZWxz
ZSB7Ci0gICAgICAgIHNpemVfdCBxdWVyeVN0YXJ0UG9zaXRpb24gPSBmaXJzdFNlcGFyYXRvclBv
c2l0aW9uICsgMTsKLSAgICAgICAgc2l6ZV90IHF1ZXJ5TGVuZ3RoID0gbGFzdFNlcGFyYXRvclBv
c2l0aW9uIC0gcXVlcnlTdGFydFBvc2l0aW9uOyAvLyBOb3QgaW5jbHVkZSB0aGUgbGFzdCBzZXBh
cmF0b3IuCi0gICAgICAgIGRpcmVjdG9yeU5hbWUucXVlcnlOYW1lID0gYWJzb2x1dGVQYXRoVG9G
aWxlLnN1YnN0cmluZyhxdWVyeVN0YXJ0UG9zaXRpb24sIHF1ZXJ5TGVuZ3RoKTsKLSAgICB9Ci0g
ICAgcmV0dXJuIGRpcmVjdG9yeU5hbWU7Ci19Ci0KLXN0YXRpYyBPcHRpb25hbDxEaXJlY3RvcnlO
YW1lPiBjdXJyZW50V29ya2luZ0RpcmVjdG9yeSgpCitzdGF0aWMgVVJMIGN1cnJlbnRXb3JraW5n
RGlyZWN0b3J5KCkKIHsKICNpZiBPUyhXSU5ET1dTKQogICAgIC8vIGh0dHBzOi8vbXNkbi5taWNy
b3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvd2luZG93cy9kZXNrdG9wL2FhMzY0OTM0LmFzcHgKQEAg
LTczNyw3ICs2OTMsNyBAQCBzdGF0aWMgT3B0aW9uYWw8RGlyZWN0b3J5TmFtZT4gY3VycmVudFdv
cmtpbmdEaXJlY3RvcnkoKQogICAgIC8vIEluIHRoZSBwYXRoIHV0aWxpdHkgZnVuY3Rpb25zIGlu
c2lkZSB0aGUgSlNDIHNoZWxsLCB3ZSBkb2VzIG5vdCBoYW5kbGUgdGhlIFVOQyBhbmQgVU5DVyBp
bmNsdWRpbmcgdGhlIG5ldHdvcmsgaG9zdCBuYW1lLgogICAgIERXT1JEIGJ1ZmZlckxlbmd0aCA9
IDo6R2V0Q3VycmVudERpcmVjdG9yeVcoMCwgbnVsbHB0cik7CiAgICAgaWYgKCFidWZmZXJMZW5n
dGgpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IH07CiAg
ICAgLy8gSW4gV2luZG93cywgd2NoYXJfdCBpcyB0aGUgVVRGLTE2TEUuCiAgICAgLy8gaHR0cHM6
Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9kZDM3NDA4MS5hc3B4CiAgICAgLy8g
aHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS93aW5kb3dzL2Rlc2t0b3Av
ZmYzODE0MDcuYXNweApAQCAtNzQ2LDU0ICs3MDIsMzEgQEAgc3RhdGljIE9wdGlvbmFsPERpcmVj
dG9yeU5hbWU+IGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KCkKICAgICBTdHJpbmcgZGlyZWN0b3J5
U3RyaW5nKGJ1ZmZlci5kYXRhKCksIGxlbmd0aE5vdEluY2x1ZGluZ051bGwpOwogICAgIC8vIFdl
IGRvbid0IHN1cHBvcnQgbmV0d29yayBwYXRoIGxpa2UgXFxob3N0XHNoYXJlXDxwYXRoIG5hbWU+
LgogICAgIGlmIChkaXJlY3RvcnlTdHJpbmcuc3RhcnRzV2l0aCgiXFxcXCIpKQotICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICByZXR1cm4geyB9OworCiAjZWxzZQogICAgIFZl
Y3RvcjxjaGFyPiBidWZmZXIoUEFUSF9NQVgpOwogICAgIGlmICghZ2V0Y3dkKGJ1ZmZlci5kYXRh
KCksIFBBVEhfTUFYKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgcmV0
dXJuIHsgfTsKICAgICBTdHJpbmcgZGlyZWN0b3J5U3RyaW5nID0gU3RyaW5nOjpmcm9tVVRGOChi
dWZmZXIuZGF0YSgpKTsKICNlbmRpZgogICAgIGlmIChkaXJlY3RvcnlTdHJpbmcuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgaWYgKGRpcmVjdG9yeVN0cmlu
Z1tkaXJlY3RvcnlTdHJpbmcubGVuZ3RoKCkgLSAxXSA9PSBwYXRoU2VwYXJhdG9yKCkpCi0gICAg
ICAgIHJldHVybiBleHRyYWN0RGlyZWN0b3J5TmFtZShkaXJlY3RvcnlTdHJpbmcpOwotICAgIC8v
IEFwcGVuZCB0aGUgc2VwZXJhdG9yIHRvIHJlcHJlc2VudHMgdGhlIGZpbGUgbmFtZS4gZXh0cmFj
dERpcmVjdG9yeU5hbWUgb25seSBhY2NlcHRzIHRoZSBhYnNvbHV0ZSBmaWxlIG5hbWUuCi0gICAg
cmV0dXJuIGV4dHJhY3REaXJlY3RvcnlOYW1lKG1ha2VTdHJpbmcoZGlyZWN0b3J5U3RyaW5nLCBw
YXRoU2VwYXJhdG9yKCkpKTsKLX0KLQotc3RhdGljIFN0cmluZyByZXNvbHZlUGF0aChjb25zdCBE
aXJlY3RvcnlOYW1lJiBkaXJlY3RvcnlOYW1lLCBjb25zdCBNb2R1bGVOYW1lJiBtb2R1bGVOYW1l
KQotewotICAgIFZlY3RvcjxTdHJpbmc+IGRpcmVjdG9yeVBpZWNlcyA9IGRpcmVjdG9yeU5hbWUu
cXVlcnlOYW1lLnNwbGl0KHBhdGhTZXBhcmF0b3IoKSk7Ci0KLSAgICAvLyBPbmx5IGZpcnN0ICcv
JyBpcyByZWNvZ25pemVkIGFzIHRoZSBwYXRoIGZyb20gdGhlIHJvb3QuCi0gICAgaWYgKG1vZHVs
ZU5hbWUuc3RhcnRzV2l0aFJvb3QoKSkKLSAgICAgICAgZGlyZWN0b3J5UGllY2VzLmNsZWFyKCk7
CisgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBmb3IgKGNvbnN0IGF1dG8mIHF1ZXJ5IDogbW9k
dWxlTmFtZS5xdWVyaWVzKSB7Ci0gICAgICAgIGlmIChxdWVyeSA9PSBTdHJpbmcoIi4uIl9zKSkg
ewotICAgICAgICAgICAgaWYgKCFkaXJlY3RvcnlQaWVjZXMuaXNFbXB0eSgpKQotICAgICAgICAg
ICAgICAgIGRpcmVjdG9yeVBpZWNlcy5yZW1vdmVMYXN0KCk7Ci0gICAgICAgIH0gZWxzZSBpZiAo
IXF1ZXJ5LmlzRW1wdHkoKSAmJiBxdWVyeSAhPSBTdHJpbmcoIi4iX3MpKQotICAgICAgICAgICAg
ZGlyZWN0b3J5UGllY2VzLmFwcGVuZChxdWVyeSk7Ci0gICAgfQorICAgIC8vIEFkZCBhIHRyYWls
aW5nIHNsYXNoIGlmIG5lZWRlZCBzbyB0aGUgVVJMIHJlc29sdmVzIHRvIGEgZGlyZWN0b3J5IGFu
ZCBub3QgYSBmaWxlLgorICAgIGlmIChkaXJlY3RvcnlTdHJpbmdbZGlyZWN0b3J5U3RyaW5nLmxl
bmd0aCgpIC0gMV0gIT0gcGF0aFNlcGFyYXRvcigpKQorICAgICAgICBkaXJlY3RvcnlTdHJpbmcg
PSBtYWtlU3RyaW5nKGRpcmVjdG9yeVN0cmluZywgcGF0aFNlcGFyYXRvcigpKTsKIAotICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVyLmFwcGVuZChkaXJlY3RvcnlOYW1lLnJv
b3ROYW1lKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRpcmVjdG9yeVBpZWNlcy5zaXpl
KCk7ICsraSkgewotICAgICAgICBidWlsZGVyLmFwcGVuZChkaXJlY3RvcnlQaWVjZXNbaV0pOwot
ICAgICAgICBpZiAoaSArIDEgIT0gZGlyZWN0b3J5UGllY2VzLnNpemUoKSkKLSAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKHBhdGhTZXBhcmF0b3IoKSk7Ci0gICAgfQotICAgIHJldHVybiBidWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgcmV0dXJuIFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0
aChkaXJlY3RvcnlTdHJpbmcpOwogfQogCi1zdGF0aWMgU3RyaW5nIGFic29sdXRlUGF0aChjb25z
dCBTdHJpbmcmIGZpbGVOYW1lKQorc3RhdGljIFVSTCBhYnNvbHV0ZVBhdGgoY29uc3QgU3RyaW5n
JiBmaWxlTmFtZSkKIHsKICAgICBhdXRvIGRpcmVjdG9yeU5hbWUgPSBjdXJyZW50V29ya2luZ0Rp
cmVjdG9yeSgpOwotICAgIGlmICghZGlyZWN0b3J5TmFtZSkKLSAgICAgICAgcmV0dXJuIGZpbGVO
YW1lOwotICAgIHJldHVybiByZXNvbHZlUGF0aChkaXJlY3RvcnlOYW1lLnZhbHVlKCksIE1vZHVs
ZU5hbWUoZmlsZU5hbWUuaW1wbCgpKSk7CisgICAgaWYgKCFkaXJlY3RvcnlOYW1lLmlzVmFsaWQo
KSkKKyAgICAgICAgcmV0dXJuIFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChmaWxlTmFt
ZSk7CisKKyAgICByZXR1cm4gVVJMKGRpcmVjdG9yeU5hbWUsIGZpbGVOYW1lKTsKIH0KIAogSlNJ
bnRlcm5hbFByb21pc2UqIEdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTTW9kdWxlTG9hZGVyKiwgSlNTdHJpbmcqIG1v
ZHVsZU5hbWVWYWx1ZSwgSlNWYWx1ZSBwYXJhbWV0ZXJzLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNv
dXJjZU9yaWdpbikKQEAgLTgxMSwyMCArNzQ0LDIzIEBAIEpTSW50ZXJuYWxQcm9taXNlKiBHbG9i
YWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
CiAgICAgICAgIHJldHVybiBwcm9taXNlOwogICAgIH07CiAKLSAgICBpZiAoc291cmNlT3JpZ2lu
LmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gcmVqZWN0KGNyZWF0ZUVycm9yKGdsb2JhbE9iamVj
dCwgIkNvdWxkIG5vdCByZXNvbHZlIHRoZSBtb2R1bGUgc3BlY2lmaWVyLiJfcykpOwotCi0gICAg
YXV0byByZWZlcnJlciA9IHNvdXJjZU9yaWdpbi5zdHJpbmcoKTsKLSAgICBhdXRvIG1vZHVsZU5h
bWUgPSBtb2R1bGVOYW1lVmFsdWUtPnZhbHVlKGdsb2JhbE9iamVjdCk7CisgICAgYXV0byByZWZl
cnJlciA9IHNvdXJjZU9yaWdpbi51cmwoKTsKKyAgICBhdXRvIHNwZWNpZmllciA9IG1vZHVsZU5h
bWVWYWx1ZS0+dmFsdWUoZ2xvYmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRo
cm93U2NvcGUsIG51bGxwdHIpOwogICAgIGlmIChVTkxJS0VMWShjYXRjaFNjb3BlLmV4Y2VwdGlv
bigpKSkKICAgICAgICAgcmV0dXJuIHJlamVjdChjYXRjaFNjb3BlLmV4Y2VwdGlvbigpLT52YWx1
ZSgpKTsKIAotICAgIGF1dG8gZGlyZWN0b3J5TmFtZSA9IGV4dHJhY3REaXJlY3RvcnlOYW1lKHJl
ZmVycmVyLmltcGwoKSk7Ci0gICAgaWYgKCFkaXJlY3RvcnlOYW1lKQotICAgICAgICByZXR1cm4g
cmVqZWN0KGNyZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgbWFrZVN0cmluZygiQ291bGQgbm90IHJl
c29sdmUgdGhlIHJlZmVycmVyIG5hbWUgJyIsIFN0cmluZyhyZWZlcnJlci5pbXBsKCkpLCAiJy4i
KSkpOworICAgIGlmICghcmVmZXJyZXIuaXNMb2NhbEZpbGUoKSkKKyAgICAgICAgcmV0dXJuIHJl
amVjdChjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsIG1ha2VTdHJpbmcoIkNvdWxkIG5vdCByZXNv
bHZlIHRoZSByZWZlcnJlcidzIHBhdGggJyIsIHJlZmVycmVyLnN0cmluZygpLCAiJywgd2hpbGUg
dHJ5aW5nIHRvIHJlc29sdmUgbW9kdWxlICciLCBzcGVjaWZpZXIsICInLiIpKSk7CisKKyAgICBp
ZiAoIXNwZWNpZmllci5zdGFydHNXaXRoKCcvJykgJiYgIXNwZWNpZmllci5zdGFydHNXaXRoKCIu
LyIpICYmICFzcGVjaWZpZXIuc3RhcnRzV2l0aCgiLi4vIikpCisgICAgICAgIHJldHVybiByZWpl
Y3QoY3JlYXRlVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgbWFrZVN0cmluZygiTW9kdWxlIHNwZWNp
ZmllciwgJyJfcywgc3BlY2lmaWVyLCAiJyBkb2VzIG5vdCBzdGFydCB3aXRoIFwiL1wiLCBcIi4v
XCIsIG9yIFwiLi4vXCIuIFJlZmVyZW5jZWQgZnJvbTogIl9zLCByZWZlcnJlci5maWxlU3lzdGVt
UGF0aCgpKSkpOwogCi0gICAgYXV0byByZXN1bHQgPSBKU0M6OmltcG9ydE1vZHVsZShnbG9iYWxP
YmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlc29sdmVQYXRoKGRpcmVjdG9yeU5h
bWUudmFsdWUoKSwgTW9kdWxlTmFtZShtb2R1bGVOYW1lKSkpLCBwYXJhbWV0ZXJzLCBqc1VuZGVm
aW5lZCgpKTsKKyAgICBVUkwgbW9kdWxlVVJMKHJlZmVycmVyLCBzcGVjaWZpZXIpOworICAgIGlm
ICghbW9kdWxlVVJMLmlzTG9jYWxGaWxlKCkpCisgICAgICAgIHJldHVybiByZWplY3QoY3JlYXRl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBtYWtlU3RyaW5nKCJNb2R1bGUgdXJsLCAnIiwgbW9kdWxlVVJM
LnN0cmluZygpLCAiJyBkb2VzIG5vdCBtYXAgdG8gYSBsb2NhbCBmaWxlLiIpKSk7CisKKyAgICBh
dXRvIHJlc3VsdCA9IEpTQzo6aW1wb3J0TW9kdWxlKGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgbW9kdWxlVVJMLnN0cmluZygpKSwgcGFyYW1ldGVycywganNVbmRlZmlu
ZWQoKSk7CiAgICAgaWYgKFVOTElLRUxZKGNhdGNoU2NvcGUuZXhjZXB0aW9uKCkpKQogICAgICAg
ICByZXR1cm4gcmVqZWN0KGNhdGNoU2NvcGUuZXhjZXB0aW9uKCktPnZhbHVlKCkpOwogICAgIHJl
dHVybiByZXN1bHQ7CkBAIC04NDIsMzQgKzc3OCw0MSBAQCBJZGVudGlmaWVyIEdsb2JhbE9iamVj
dDo6bW9kdWxlTG9hZGVyUmVzb2x2ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU01v
ZAogICAgIGlmIChrZXkuaXNTeW1ib2woKSkKICAgICAgICAgcmV0dXJuIGtleTsKIAotICAgIGlm
IChyZWZlcnJlclZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKLSAgICAgICAgYXV0byBkaXJlY3RvcnlO
YW1lID0gY3VycmVudFdvcmtpbmdEaXJlY3RvcnkoKTsKLSAgICAgICAgaWYgKCFkaXJlY3RvcnlO
YW1lKSB7Ci0gICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBj
cmVhdGVFcnJvcihnbG9iYWxPYmplY3QsICJDb3VsZCBub3QgcmVzb2x2ZSB0aGUgY3VycmVudCB3
b3JraW5nIGRpcmVjdG9yeS4iX3MpKTsKKyAgICBhdXRvIHJlc29sdmVQYXRoID0gWyZdIChjb25z
dCBVUkwmIGRpcmVjdG9yeVVSTCkgLT4gSWRlbnRpZmllciB7CisgICAgICAgIFN0cmluZyBzcGVj
aWZpZXIgPSBrZXkuaW1wbCgpOworICAgICAgICBpZiAoIXNwZWNpZmllci5zdGFydHNXaXRoKCcv
JykgJiYgIXNwZWNpZmllci5zdGFydHNXaXRoKCIuLyIpICYmICFzcGVjaWZpZXIuc3RhcnRzV2l0
aCgiLi4vIikpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUsIG1ha2VTdHJpbmcoIk1vZHVsZSBzcGVjaWZpZXIsICciX3MsIHNwZWNpZmllciwgIicgZG9l
cyBub3Qgc3RhcnQgd2l0aCBcIi9cIiwgXCIuL1wiLCBvciBcIi4uL1wiLiBSZWZlcmVuY2VkIGZy
b206ICJfcywgZGlyZWN0b3J5VVJMLmZpbGVTeXN0ZW1QYXRoKCkpKTsKICAgICAgICAgICAgIHJl
dHVybiB7IH07CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sIHJlc29sdmVQYXRoKGRpcmVjdG9yeU5hbWUudmFsdWUoKSwgTW9kdWxlTmFtZShrZXku
aW1wbCgpKSkpOwotICAgIH0KIAotICAgIGNvbnN0IElkZW50aWZpZXIgcmVmZXJyZXIgPSByZWZl
cnJlclZhbHVlLnRvUHJvcGVydHlLZXkoZ2xvYmFsT2JqZWN0KTsKLSAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOworICAgICAgICBpZiAoIWRpcmVjdG9yeVVSTC5pc0xvY2FsRmls
ZSgpKSB7CisgICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBj
cmVhdGVFcnJvcihnbG9iYWxPYmplY3QsIG1ha2VTdHJpbmcoIkNvdWxkIG5vdCByZXNvbHZlIHRo
ZSByZWZlcnJlcidzIHBhdGg6ICIsIGRpcmVjdG9yeVVSTC5zdHJpbmcoKSkpKTsKKyAgICAgICAg
ICAgIHJldHVybiB7IH07CisgICAgICAgIH0KIAotICAgIGlmIChyZWZlcnJlci5pc1N5bWJvbCgp
KSB7Ci0gICAgICAgIGF1dG8gZGlyZWN0b3J5TmFtZSA9IGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5
KCk7Ci0gICAgICAgIGlmICghZGlyZWN0b3J5TmFtZSkgewotICAgICAgICAgICAgdGhyb3dFeGNl
cHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IoZ2xvYmFsT2JqZWN0LCAiQ291
bGQgbm90IHJlc29sdmUgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuIl9zKSk7CisgICAg
ICAgIFVSTCByZXNvbHZlZFVSTChkaXJlY3RvcnlVUkwsIHNwZWNpZmllcik7CisgICAgICAgIGlm
ICghcmVzb2x2ZWRVUkwuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihn
bG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsIG1ha2VTdHJpbmco
IlJlc29sdmVkIG1vZHVsZSB1cmwgaXMgbm90IHZhbGlkOiAiLCByZXNvbHZlZFVSTC5zdHJpbmco
KSkpKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlc29sdmVQYXRoKGRpcmVjdG9yeU5hbWUudmFs
dWUoKSwgTW9kdWxlTmFtZShrZXkuaW1wbCgpKSkpOwotICAgIH0KKyAgICAgICAgQVNTRVJUKHJl
c29sdmVkVVJMLmlzTG9jYWxGaWxlKCkpOwogCi0gICAgLy8gSWYgdGhlIHJlZmVycmVyIGV4aXN0
cywgd2UgYXNzdW1lIHRoYXQgdGhlIHJlZmVycmVyIGlzIHRoZSBjb3JyZWN0IGFic29sdXRlIHBh
dGguCi0gICAgYXV0byBkaXJlY3RvcnlOYW1lID0gZXh0cmFjdERpcmVjdG9yeU5hbWUocmVmZXJy
ZXIuaW1wbCgpKTsKLSAgICBpZiAoIWRpcmVjdG9yeU5hbWUpIHsKLSAgICAgICAgdGhyb3dFeGNl
cHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IoZ2xvYmFsT2JqZWN0LCBtYWtl
U3RyaW5nKCJDb3VsZCBub3QgcmVzb2x2ZSB0aGUgcmVmZXJyZXIgbmFtZSAnIiwgU3RyaW5nKHJl
ZmVycmVyLmltcGwoKSksICInLiIpKSk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotICAg
IHJldHVybiBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZXNvbHZlUGF0aChkaXJlY3RvcnlO
YW1lLnZhbHVlKCksIE1vZHVsZU5hbWUoa2V5LmltcGwoKSkpKTsKKyAgICAgICAgcmV0dXJuIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlc29sdmVkVVJMLnN0cmluZygpKTsKKyAgICB9Owor
CisgICAgaWYgKHJlZmVycmVyVmFsdWUuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgcmV0dXJuIHJl
c29sdmVQYXRoKGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KCkpOworCisgICAgY29uc3QgSWRlbnRp
ZmllciByZWZlcnJlciA9IHJlZmVycmVyVmFsdWUudG9Qcm9wZXJ0eUtleShnbG9iYWxPYmplY3Qp
OworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBpZiAocmVmZXJy
ZXIuaXNTeW1ib2woKSkKKyAgICAgICAgcmV0dXJuIHJlc29sdmVQYXRoKGN1cnJlbnRXb3JraW5n
RGlyZWN0b3J5KCkpOworCisgICAgLy8gSWYgdGhlIHJlZmVycmVyIGV4aXN0cywgd2UgYXNzdW1l
IHRoYXQgdGhlIHJlZmVycmVyIGlzIHRoZSBjb3JyZWN0IGZpbGUgdXJsLgorICAgIFVSTCB1cmwg
PSBVUkwoeyB9LCByZWZlcnJlci5pbXBsKCkpOworICAgIEFTU0VSVCh1cmwuaXNMb2NhbEZpbGUo
KSk7CisgICAgcmV0dXJuIHJlc29sdmVQYXRoKHVybCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IFZlY3Rvcj4KQEAgLTk1NCw5ICs4OTcsOSBAQCBzdGF0aWMgYm9vbCBmZXRjaFNjcmlwdEZyb21M
b2NhbEZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgVmVjdG9yPGNoYXI+JgogCiBj
bGFzcyBTaGVsbFNvdXJjZVByb3ZpZGVyIGZpbmFsIDogcHVibGljIFN0cmluZ1NvdXJjZVByb3Zp
ZGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNoZWxsU291cmNlUHJvdmlkZXI+IGNyZWF0
ZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4s
IFVSTCYmIHVybCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92
aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSkKKyAgICBzdGF0aWMgUmVmPFNoZWxsU291cmNlUHJv
dmlkZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBz
b3VyY2VPcmlnaW4sIFN0cmluZyYmIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFy
dFBvc2l0aW9uLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNoZWxsU291cmNlUHJvdmlkZXIoc291cmNlLCBz
b3VyY2VPcmlnaW4sIFdURk1vdmUodXJsKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGVsbFNvdXJjZVByb3ZpZGVyKHNvdXJjZSwg
c291cmNlT3JpZ2luLCBXVEZNb3ZlKHNvdXJjZVVSTCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5
cGUpKTsKICAgICB9CiAKICAgICB+U2hlbGxTb3VyY2VQcm92aWRlcigpIGZpbmFsCkBAIC0xMDM3
LDcgKzk4MCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGlmICghY2FjaGVFbmFibGVkKCkpCiAgICAg
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KG51bGxwdHIpOwogICAgICAg
ICBjb25zdCBjaGFyKiBjYWNoZVBhdGggPSBPcHRpb25zOjpkaXNrQ2FjaGVQYXRoKCk7Ci0gICAg
ICAgIFN0cmluZyBmaWxlbmFtZSA9IEZpbGVTeXN0ZW06OmVuY29kZUZvckZpbGVOYW1lKEZpbGVT
eXN0ZW06Omxhc3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1RyYWlsaW5nU2xhc2goc291cmNlT3Jp
Z2luKCkuc3RyaW5nKCkpKTsKKyAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gRmlsZVN5c3RlbTo6
ZW5jb2RlRm9yRmlsZU5hbWUoRmlsZVN5c3RlbTo6bGFzdENvbXBvbmVudE9mUGF0aElnbm9yaW5n
VHJhaWxpbmdTbGFzaChzb3VyY2VPcmlnaW4oKS51cmwoKS5maWxlU3lzdGVtUGF0aCgpKSk7CiAg
ICAgICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY2FjaGVQ
YXRoLCBtYWtlU3RyaW5nKHNvdXJjZSgpLnRvU3RyaW5nKCkuaGFzaCgpLCAnLScsIGZpbGVuYW1l
LCAiLmJ5dGVjb2RlLWNhY2hlIikpOwogICAgIH0KIApAQCAtMTA2Nyw4ICsxMDEwLDggQEAgcHJp
dmF0ZToKICAgICAgICAgbV9jYWNoZWRCeXRlY29kZSA9IENhY2hlZEJ5dGVjb2RlOjpjcmVhdGUo
V1RGTW92ZShtYXBwZWRGaWxlRGF0YSkpOwogICAgIH0KIAotICAgIFNoZWxsU291cmNlUHJvdmlk
ZXIoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2lu
LCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgU291cmNlUHJv
dmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUpCi0gICAgICAgIDogU3RyaW5nU291cmNlUHJvdmlk
ZXIoc291cmNlLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUodXJsKSwgc3RhcnRQb3NpdGlvbiwgc291
cmNlVHlwZSkKKyAgICBTaGVsbFNvdXJjZVByb3ZpZGVyKGNvbnN0IFN0cmluZyYgc291cmNlLCBj
b25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nJiYgc291cmNlVVJMLCBjb25z
dCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBz
b3VyY2VUeXBlKQorICAgICAgICA6IFN0cmluZ1NvdXJjZVByb3ZpZGVyKHNvdXJjZSwgc291cmNl
T3JpZ2luLCBXVEZNb3ZlKHNvdXJjZVVSTCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpCiAg
ICAgewogICAgIH0KIApAQCAtMTA4MSw5ICsxMDI0LDkgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxl
IFJlZlB0cjxDYWNoZWRCeXRlY29kZT4gbV9jYWNoZWRCeXRlY29kZTsKIH07CiAKLXN0YXRpYyBp
bmxpbmUgU291cmNlQ29kZSBqc2NTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNv
dXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwgPSBVUkwoKSwgY29uc3QgVGV4dFBv
c2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291
cmNlVHlwZSBzb3VyY2VUeXBlID0gU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtKQor
c3RhdGljIGlubGluZSBTb3VyY2VDb2RlIGpzY1NvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZSwg
Y29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0cmluZyBzb3VyY2VVUkwgPSBTdHJp
bmcoKSwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uKCks
IFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlID0gU291cmNlUHJvdmlkZXJTb3Vy
Y2VUeXBlOjpQcm9ncmFtKQogewotICAgIHJldHVybiBTb3VyY2VDb2RlKFNoZWxsU291cmNlUHJv
dmlkZXI6OmNyZWF0ZShzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpLCBzdGFydFBv
c2l0aW9uLCBzb3VyY2VUeXBlKSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJbnQoKSwg
c3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKTsKKyAgICByZXR1cm4gU291cmNl
Q29kZShTaGVsbFNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCBzb3VyY2VPcmlnaW4sIFdU
Rk1vdmUoc291cmNlVVJMKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSksIHN0YXJ0UG9zaXRp
b24ubV9saW5lLm9uZUJhc2VkSW50KCksIHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJ
bnQoKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3Rvcj4KQEAgLTEwOTEsMTMgKzEwMzQs
MTMgQEAgc3RhdGljIGlubGluZSBTb3VyY2VDb2RlIGpzY1NvdXJjZShjb25zdCBWZWN0b3ImIHV0
ZjgsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmMKIHsKICAgICAvLyBGSVhNRTogVGhpcyBzaG91
bGQgdXNlIGFuIGFic29sdXRlIGZpbGUgVVJMIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTMwNzcKICAgICBTdHJpbmcgc3RyID0gc3RyaW5nRnJvbVVURih1dGY4KTsK
LSAgICByZXR1cm4ganNjU291cmNlKHN0ciwgc291cmNlT3JpZ2luLCBVUkwoeyB9LCBmaWxlbmFt
ZSkpOworICAgIHJldHVybiBqc2NTb3VyY2Uoc3RyLCBzb3VyY2VPcmlnaW4sIGZpbGVuYW1lKTsK
IH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yPgotc3RhdGljIGJvb2wgZmV0Y2hNb2R1bGVG
cm9tTG9jYWxGaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIFZlY3RvciYgYnVmZmVy
KQorc3RhdGljIGJvb2wgZmV0Y2hNb2R1bGVGcm9tTG9jYWxGaWxlU3lzdGVtKGNvbnN0IFVSTCYg
ZmlsZVVSTCwgVmVjdG9yJiBidWZmZXIpCiB7Ci0gICAgLy8gV2UgYXNzdW1lIHRoYXQgZmlsZU5h
bWUgaXMgYWx3YXlzIGFuIGFic29sdXRlIHBhdGguCisgICAgU3RyaW5nIGZpbGVOYW1lID0gZmls
ZVVSTC5maWxlU3lzdGVtUGF0aCgpOwogI2lmIE9TKFdJTkRPV1MpCiAgICAgLy8gaHR0cHM6Ly9t
c2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS93aW5kb3dzL2Rlc2t0b3AvYWEzNjUyNDcu
YXNweCNtYXhwYXRoCiAgICAgLy8gVXNlIGxvbmcgVU5DIHRvIHBhc3MgdGhlIGxvbmcgcGF0aCBu
YW1lIHRvIHRoZSBXaW5kb3dzIEFQSXMuCkBAIC0xMTQ5LDE4ICsxMDkyLDIwIEBAIEpTSW50ZXJu
YWxQcm9taXNlKiBHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckZldGNoKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsCiAgICAgaWYgKFVOTElLRUxZKGNhdGNoU2NvcGUuZXhjZXB0aW9uKCkp
KQogICAgICAgICByZXR1cm4gcmVqZWN0KGNhdGNoU2NvcGUuZXhjZXB0aW9uKCktPnZhbHVlKCkp
OwogCi0gICAgLy8gSGVyZSwgbm93IHdlIGNvbnNpZGVyIG1vZHVsZUtleSBhcyB0aGUgZmlsZU5h
bWUuCisgICAgVVJMIG1vZHVsZVVSTCh7IH0sIG1vZHVsZUtleSk7CisgICAgQVNTRVJUKG1vZHVs
ZVVSTC5pc0xvY2FsRmlsZSgpKTsKKyAgICAvLyBTdHJpcCB0aGUgVVJJIGZyb20gb3VyIGtleSBz
byBFcnJvcnMgcHJpbnQgY2Fub25pY2FsIHN5c3RlbSBwYXRocy4KKyAgICBtb2R1bGVLZXkgPSBt
b2R1bGVVUkwuZmlsZVN5c3RlbVBhdGgoKTsKKwogICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXI7
Ci0gICAgaWYgKCFmZXRjaE1vZHVsZUZyb21Mb2NhbEZpbGVTeXN0ZW0obW9kdWxlS2V5LCBidWZm
ZXIpKQorICAgIGlmICghZmV0Y2hNb2R1bGVGcm9tTG9jYWxGaWxlU3lzdGVtKG1vZHVsZVVSTCwg
YnVmZmVyKSkKICAgICAgICAgcmV0dXJuIHJlamVjdChjcmVhdGVFcnJvcihnbG9iYWxPYmplY3Qs
IG1ha2VTdHJpbmcoIkNvdWxkIG5vdCBvcGVuIGZpbGUgJyIsIG1vZHVsZUtleSwgIicuIikpKTsK
IAotCi0gICAgVVJMIG1vZHVsZVVSTCA9IFVSTCh7IH0sIG1vZHVsZUtleSk7CiAjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQogICAgIC8vIEZpbGVTeXN0ZW0gZG9lcyBub3QgaGF2ZSBtaW1lLXR5cGUg
aGVhZGVyLiBUaGUgSlNDIHNoZWxsIHJlY29nbml6ZXMgV2ViQXNzZW1ibHkncyBtYWdpYyBoZWFk
ZXIuCiAgICAgaWYgKGJ1ZmZlci5zaXplKCkgPj0gNCkgewogICAgICAgICBpZiAoYnVmZmVyWzBd
ID09ICdcMCcgJiYgYnVmZmVyWzFdID09ICdhJyAmJiBidWZmZXJbMl0gPT0gJ3MnICYmIGJ1ZmZl
clszXSA9PSAnbScpIHsKLSAgICAgICAgICAgIGF1dG8gc291cmNlID0gU291cmNlQ29kZShXZWJB
c3NlbWJseVNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoV1RGTW92ZShidWZmZXIpLCBTb3VyY2VPcmln
aW4geyBtb2R1bGVLZXkgfSwgV1RGTW92ZShtb2R1bGVVUkwpKSk7CisgICAgICAgICAgICBhdXRv
IHNvdXJjZSA9IFNvdXJjZUNvZGUoV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKFdU
Rk1vdmUoYnVmZmVyKSwgU291cmNlT3JpZ2luIHsgbW9kdWxlVVJMIH0sIFdURk1vdmUobW9kdWxl
S2V5KSkpOwogICAgICAgICAgICAgY2F0Y2hTY29wZS5yZWxlYXNlQXNzZXJ0Tm9FeGNlcHRpb24o
KTsKICAgICAgICAgICAgIGF1dG8gc291cmNlQ29kZSA9IEpTU291cmNlQ29kZTo6Y3JlYXRlKHZt
LCBXVEZNb3ZlKHNvdXJjZSkpOwogICAgICAgICAgICAgY2F0Y2hTY29wZS5yZWxlYXNlQXNzZXJ0
Tm9FeGNlcHRpb24oKTsKQEAgLTExNzEsNyArMTExNiw3IEBAIEpTSW50ZXJuYWxQcm9taXNlKiBH
bG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckZldGNoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsCiAgICAgfQogI2VuZGlmCiAKLSAgICBhdXRvIHNvdXJjZUNvZGUgPSBKU1NvdXJjZUNvZGU6
OmNyZWF0ZSh2bSwganNjU291cmNlKHN0cmluZ0Zyb21VVEYoYnVmZmVyKSwgU291cmNlT3JpZ2lu
IHsgbW9kdWxlS2V5IH0sIFdURk1vdmUobW9kdWxlVVJMKSwgVGV4dFBvc2l0aW9uKCksIFNvdXJj
ZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlKSk7CisgICAgYXV0byBzb3VyY2VDb2RlID0gSlNT
b3VyY2VDb2RlOjpjcmVhdGUodm0sIGpzY1NvdXJjZShzdHJpbmdGcm9tVVRGKGJ1ZmZlciksIFNv
dXJjZU9yaWdpbiB7IG1vZHVsZVVSTCB9LCBXVEZNb3ZlKG1vZHVsZUtleSksIFRleHRQb3NpdGlv
bigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSkpOwogICAgIGNhdGNoU2NvcGUu
cmVsZWFzZUFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgcHJvbWlzZS0+cmVzb2x2ZShnbG9iYWxP
YmplY3QsIHNvdXJjZUNvZGUpOwogICAgIGNhdGNoU2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKQEAg
LTE1MTUsMTQgKzE0NjAsMjUgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkxvYWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW0KICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogCisgICAgYm9vbCBjYWxsZXJSZWxhdGl2ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQo
MSkuZ2V0U3RyaW5nKGdsb2JhbE9iamVjdCkgPT0gImNhbGxlciByZWxhdGl2ZSJfczsKKyAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKwogICAgIFN0cmlu
ZyBmaWxlTmFtZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9XVEZTdHJpbmcoZ2xvYmFsT2Jq
ZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsK
KworICAgIFVSTCBwYXRoOworICAgIGlmIChjYWxsZXJSZWxhdGl2ZSkgeworICAgICAgICBwYXRo
ID0gVVJMKGNhbGxGcmFtZS0+Y2FsbGVyU291cmNlT3JpZ2luKHZtKS51cmwoKSwgZmlsZU5hbWUp
OworICAgICAgICBpZiAoIXBhdGguaXNMb2NhbEZpbGUoKSkKKyAgICAgICAgICAgIHJldHVybiB0
aHJvd1ZNRXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVVSSUVycm9yKGdsb2Jh
bE9iamVjdCwgbWFrZVN0cmluZygiY2FsbGVyIHJlbGF0aXZlIFVSTCBwYXRoIGlzIG5vdCBhIGxv
Y2FsIGZpbGU6ICIsIHBhdGguc3RyaW5nKCkpKSk7CisgICAgfSBlbHNlCisgICAgICAgIHBhdGgg
PSBhYnNvbHV0ZVBhdGgoZmlsZU5hbWUpOwogICAgIFZlY3RvcjxjaGFyPiBzY3JpcHQ7Ci0gICAg
aWYgKCFmZXRjaFNjcmlwdEZyb21Mb2NhbEZpbGVTeXN0ZW0oZmlsZU5hbWUsIHNjcmlwdCkpCisg
ICAgaWYgKCFmZXRjaFNjcmlwdEZyb21Mb2NhbEZpbGVTeXN0ZW0ocGF0aC5maWxlU3lzdGVtUGF0
aCgpLCBzY3JpcHQpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXhjZXB0
aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgIkNvdWxk
IG5vdCBvcGVuIGZpbGUuIl9zKSkpOwogCiAgICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBldmFsdWF0
aW9uRXhjZXB0aW9uOwotICAgIEpTVmFsdWUgcmVzdWx0ID0gZXZhbHVhdGUoZ2xvYmFsT2JqZWN0
LCBqc2NTb3VyY2Uoc2NyaXB0LCBTb3VyY2VPcmlnaW4geyBhYnNvbHV0ZVBhdGgoZmlsZU5hbWUp
IH0sIGZpbGVOYW1lKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKKyAgICBKU1Zh
bHVlIHJlc3VsdCA9IGV2YWx1YXRlKGdsb2JhbE9iamVjdCwganNjU291cmNlKHNjcmlwdCwgU291
cmNlT3JpZ2luIHsgcGF0aCB9LCBmaWxlTmFtZSksIEpTVmFsdWUoKSwgZXZhbHVhdGlvbkV4Y2Vw
dGlvbik7CiAgICAgaWYgKGV2YWx1YXRpb25FeGNlcHRpb24pCiAgICAgICAgIHRocm93RXhjZXB0
aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGV2YWx1YXRpb25FeGNlcHRpb24pOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKQEAgLTE2NDgsNyArMTYwNCw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DYWxsZXJTb3VyY2VPcmlnaW4oSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IFNvdXJjZU9yaWdpbiBzb3VyY2VPcmlnaW4gPSBjYWxsRnJhbWUtPmNhbGxlclNvdXJjZU9yaWdp
bih2bSk7Ci0gICAgaWYgKHNvdXJjZU9yaWdpbi5pc051bGwoKSkKKyAgICBpZiAoc291cmNlT3Jp
Z2luLnVybCgpLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVs
bCgpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKHZtLCBzb3VyY2VPcmln
aW4uc3RyaW5nKCkpKTsKIH0KQEAgLTE5MTIsNyArMTg2OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplCiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBOYWtlZFB0
cjxFeGNlcHRpb24+IGV2YWx1YXRpb25FeGNlcHRpb247CiAgICAgICAgICAgICAgICAgICAgIEpT
VmFsdWUgcmVzdWx0OwotICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBldmFsdWF0ZShnbG9i
YWxPYmplY3QsIGpzY1NvdXJjZShzb3VyY2VDb2RlLCBTb3VyY2VPcmlnaW4oIndvcmtlciJfcykp
LCBKU1ZhbHVlKCksIGV2YWx1YXRpb25FeGNlcHRpb24pOworICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBldmFsdWF0ZShnbG9iYWxPYmplY3QsIGpzY1NvdXJjZShzb3VyY2VDb2RlLCBTb3Vy
Y2VPcmlnaW4oVVJMKHsgfSwgIndvcmtlciJfcykpKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhj
ZXB0aW9uKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGV2YWx1YXRpb25FeGNlcHRpb24pCiAg
ICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBldmFsdWF0aW9uRXhjZXB0aW9uLT52YWx1
ZSgpOwogICAgICAgICAgICAgICAgICAgICBjaGVja0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHRy
dWUsIGV2YWx1YXRpb25FeGNlcHRpb24sIHJlc3VsdCwgY29tbWFuZExpbmUsIHN1Y2Nlc3MpOwpA
QCAtMjMzNiw3ICsyMjkyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkNoZWNrTW9kdWxlU3ludGF4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICBzdG9wV2F0
Y2guc3RhcnQoKTsKIAogICAgIFBhcnNlckVycm9yIGVycm9yOwotICAgIGJvb2wgdmFsaWRTeW50
YXggPSBjaGVja01vZHVsZVN5bnRheChnbG9iYWxPYmplY3QsIGpzY1NvdXJjZShzb3VyY2UsIHsg
fSwgVVJMKCksIFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVs
ZSksIGVycm9yKTsKKyAgICBib29sIHZhbGlkU3ludGF4ID0gY2hlY2tNb2R1bGVTeW50YXgoZ2xv
YmFsT2JqZWN0LCBqc2NTb3VyY2Uoc291cmNlLCB7IH0sIFN0cmluZygpLCBUZXh0UG9zaXRpb24o
KSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUpLCBlcnJvcik7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgc3RvcFdhdGNoLnN0
b3AoKTsKIApAQCAtMjc5Niw2ICsyNzUyLDggQEAgc3RhdGljIHZvaWQgcnVuV2l0aE9wdGlvbnMo
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENvbW1hbmRMaW5lJiBvcHRpb25zLCBib28KICAg
ICAgICAgICAgICAgICBzY3JpcHRCdWZmZXIuYXBwZW5kKCJcInVzZSBzdHJpY3RcIjtcbiIsIHN0
cmxlbigiXCJ1c2Ugc3RyaWN0XCI7XG4iKSk7CiAKICAgICAgICAgICAgIGlmIChpc01vZHVsZSkg
eworICAgICAgICAgICAgICAgIC8vIElmIHRoZSBwYXNzZWQgZmlsZSBpc24ndCBhbiBhYnNvbHV0
ZSBwYXRoIGFwcGVuZCAiLi8iIHNvIHRoZSBtb2R1bGUgbG9hZGVyIGRvZXNuJ3QgdGhpbmsgdGhp
cyBpcyBhIGJhcmUtbmFtZSBzcGVjaWZpZXIuCisgICAgICAgICAgICAgICAgZmlsZU5hbWUgPSBm
aWxlTmFtZS5zdGFydHNXaXRoKCcvJykgPyBmaWxlTmFtZSA6IG1ha2VTdHJpbmcoIi4vIiwgZmls
ZU5hbWUpOwogICAgICAgICAgICAgICAgIHByb21pc2UgPSBsb2FkQW5kRXZhbHVhdGVNb2R1bGUo
Z2xvYmFsT2JqZWN0LCBmaWxlTmFtZSwganNVbmRlZmluZWQoKSwganNVbmRlZmluZWQoKSk7CiAg
ICAgICAgICAgICAgICAgc2NvcGUucmVsZWFzZUFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgICAg
ICAgICB9IGVsc2UgewpAQCAtMjgxMiwxMCArMjc3MCwxMSBAQCBzdGF0aWMgdm9pZCBydW5XaXRo
T3B0aW9ucyhHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29tbWFuZExpbmUmIG9wdGlvbnMs
IGJvbwogICAgICAgICB9CiAKICAgICAgICAgYm9vbCBpc0xhc3RGaWxlID0gaSA9PSBzY3JpcHRz
LnNpemUoKSAtIDE7CisgICAgICAgIFNvdXJjZU9yaWdpbiBzb3VyY2VPcmlnaW4geyBhYnNvbHV0
ZVBhdGgoZmlsZU5hbWUpIH07CiAgICAgICAgIGlmIChpc01vZHVsZSkgewogICAgICAgICAgICAg
aWYgKCFwcm9taXNlKSB7CiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHVz
ZSBhbiBhYnNvbHV0ZSBmaWxlIFVSTCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkzMDc3Ci0gICAgICAgICAgICAgICAgcHJvbWlzZSA9IGxvYWRBbmRFdmFsdWF0ZU1v
ZHVsZShnbG9iYWxPYmplY3QsIGpzY1NvdXJjZShzdHJpbmdGcm9tVVRGKHNjcmlwdEJ1ZmZlciks
IFNvdXJjZU9yaWdpbiB7IGFic29sdXRlUGF0aChmaWxlTmFtZSkgfSwgVVJMKHsgfSwgZmlsZU5h
bWUpLCBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUpLCBq
c1VuZGVmaW5lZCgpKTsKKyAgICAgICAgICAgICAgICBwcm9taXNlID0gbG9hZEFuZEV2YWx1YXRl
TW9kdWxlKGdsb2JhbE9iamVjdCwganNjU291cmNlKHN0cmluZ0Zyb21VVEYoc2NyaXB0QnVmZmVy
KSwgc291cmNlT3JpZ2luLCBmaWxlTmFtZSwgVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVy
U291cmNlVHlwZTo6TW9kdWxlKSwganNVbmRlZmluZWQoKSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBzY29wZS5jbGVhckV4Y2VwdGlvbigpOwogCkBAIC0yODM0LDcgKzI3OTMsNyBAQCBz
dGF0aWMgdm9pZCBydW5XaXRoT3B0aW9ucyhHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29t
bWFuZExpbmUmIG9wdGlvbnMsIGJvbwogICAgICAgICAgICAgdm0uZHJhaW5NaWNyb3Rhc2tzKCk7
CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV2YWx1
YXRpb25FeGNlcHRpb247Ci0gICAgICAgICAgICBKU1ZhbHVlIHJldHVyblZhbHVlID0gZXZhbHVh
dGUoZ2xvYmFsT2JqZWN0LCBqc2NTb3VyY2Uoc2NyaXB0QnVmZmVyLCBTb3VyY2VPcmlnaW4geyBh
YnNvbHV0ZVBhdGgoZmlsZU5hbWUpIH0sIGZpbGVOYW1lKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9u
RXhjZXB0aW9uKTsKKyAgICAgICAgICAgIEpTVmFsdWUgcmV0dXJuVmFsdWUgPSBldmFsdWF0ZShn
bG9iYWxPYmplY3QsIGpzY1NvdXJjZShzY3JpcHRCdWZmZXIsIHNvdXJjZU9yaWdpbiAsIGZpbGVO
YW1lKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsKICAgICAgICAgICAgIHNjb3Bl
LmFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgICAgICAgICBpZiAoZXZhbHVhdGlvbkV4Y2VwdGlv
bikKICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IGV2YWx1YXRpb25FeGNlcHRpb24tPnZh
bHVlKCk7CkBAIC0yODU3LDEwICsyODE2LDEwIEBAIHN0YXRpYyB2b2lkIHJ1bkludGVyYWN0aXZl
KEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAKLSAgICBP
cHRpb25hbDxEaXJlY3RvcnlOYW1lPiBkaXJlY3RvcnlOYW1lID0gY3VycmVudFdvcmtpbmdEaXJl
Y3RvcnkoKTsKLSAgICBpZiAoIWRpcmVjdG9yeU5hbWUpCisgICAgVVJMIGRpcmVjdG9yeU5hbWUg
PSBjdXJyZW50V29ya2luZ0RpcmVjdG9yeSgpOworICAgIGlmICghZGlyZWN0b3J5TmFtZS5pc1Zh
bGlkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBTb3VyY2VPcmlnaW4gc291cmNlT3JpZ2luKHJl
c29sdmVQYXRoKGRpcmVjdG9yeU5hbWUudmFsdWUoKSwgTW9kdWxlTmFtZSgiaW50ZXJwcmV0ZXIi
KSkpOworICAgIFNvdXJjZU9yaWdpbiBzb3VyY2VPcmlnaW4oVVJMKGRpcmVjdG9yeU5hbWUsICIu
L2ludGVycHJldGVyIl9zKSk7CiAgICAgCiAgICAgYm9vbCBzaG91bGRRdWl0ID0gZmFsc2U7CiAg
ICAgd2hpbGUgKCFzaG91bGRRdWl0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgK
aW5kZXggNzEwMTVjYmU5MWM1ZGQ1OWFkYzM4NGRmZDkyYWI0ZGFlNWQ3YzEzZC4uOWEyZWZjYWQy
ODZhMzI3MzBjNzU4YWMyNjI1YTEzODExYTc0YjA1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTm9kZXMuaApAQCAtMTg1OCw3ICsxODU4LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IFNjb3BlTm9kZShQYXJzZXJBcmVuYSYsIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgc3RhcnQsIGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYgZW5kLCBjb25zdCBTb3VyY2VDb2RlJiwgU291cmNlRWxlbWVu
dHMqLCBWYXJpYWJsZUVudmlyb25tZW50JiwgRnVuY3Rpb25TdGFjayYmLCBWYXJpYWJsZUVudmly
b25tZW50JiwgVW5pcXVlZFN0cmluZ0ltcGxQdHJTZXQmJiwgQ29kZUZlYXR1cmVzLCBJbm5lckFy
cm93RnVuY3Rpb25Db2RlRmVhdHVyZXMsIGludCBudW1Db25zdGFudHMpOwogCiAgICAgICAgIGNv
bnN0IFNvdXJjZUNvZGUmIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9Ci0gICAg
ICAgIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UucHJv
dmlkZXIoKS0+dXJsKCkuc3RyaW5nKCk7IH0KICAgICAgICAgaW50cHRyX3Qgc291cmNlSUQoKSBj
b25zdCB7IHJldHVybiBtX3NvdXJjZS5wcm92aWRlcklEKCk7IH0KIAogICAgICAgICBpbnQgc3Rh
cnRMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydExpbmVOdW1iZXI7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlLmgKaW5kZXggYWFkMjg3ZGRlODc3MWI3OWIxODYw
YzVlZDRiOTcwODFlYWYyYmY5Ni4uOTkyZDg5YTIxMDNkZTM2YzBmZGQ2NzVhNTNmZjhiMTMxMGMw
MWYzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2Rl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlLmgKQEAgLTk2
LDkgKzk2LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE9yZGluYWxOdW1iZXIgbV9zdGFy
dENvbHVtbjsKICAgICB9OwogCi0gICAgaW5saW5lIFNvdXJjZUNvZGUgbWFrZVNvdXJjZShjb25z
dCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVSTCYm
IHVybCA9IFVSTCgpLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24gPSBUZXh0UG9z
aXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUgPSBTb3VyY2VQcm92
aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pCisgICAgaW5saW5lIFNvdXJjZUNvZGUgbWFrZVNvdXJj
ZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4s
IFN0cmluZyBmaWxlbmFtZSA9IFN0cmluZygpLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9z
aXRpb24gPSBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5
cGUgPSBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pCiAgICAgewotICAgICAgICBy
ZXR1cm4gU291cmNlQ29kZShTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgc291
cmNlT3JpZ2luLCBXVEZNb3ZlKHVybCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpLCBzdGFy
dFBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpLCBzdGFydFBvc2l0aW9uLm1fY29sdW1uLm9u
ZUJhc2VkSW50KCkpOworICAgICAgICByZXR1cm4gU291cmNlQ29kZShTdHJpbmdTb3VyY2VQcm92
aWRlcjo6Y3JlYXRlKHNvdXJjZSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKGZpbGVuYW1lKSwgc3Rh
cnRQb3NpdGlvbiwgc291cmNlVHlwZSksIHN0YXJ0UG9zaXRpb24ubV9saW5lLm9uZUJhc2VkSW50
KCksIHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSk7CiAgICAgfQogICAgIAog
ICAgIGlubGluZSBTb3VyY2VDb2RlIFNvdXJjZUNvZGU6OnN1YkV4cHJlc3Npb24odW5zaWduZWQg
b3BlbkJyYWNlLCB1bnNpZ25lZCBjbG9zZUJyYWNlLCBpbnQgZmlyc3RMaW5lLCBpbnQgc3RhcnRD
b2x1bW4pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Nv
dXJjZUNvZGVLZXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZUtl
eS5oCmluZGV4IDY3OGFlOWQ3ZDM2YjcwNWU1MDk5YWRiNzVkOTZkMDU1YzY1MDRkMzMuLjY0MjMy
NzBkOGFlMDkxYTczMDFjYThjODUzNTkwYjhhMzdiY2E0NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZUtleS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZUtleS5oCkBAIC0xMDYsNyArMTA2LDcgQEAgcHVibGlj
OgogICAgIC8vIHByb3ZpZGVycyBjYWNoZSB0aGVpciBzdHJpbmdzIHRvIG1ha2UgdGhpcyBlZmZp
Y2llbnQuCiAgICAgU3RyaW5nVmlldyBzdHJpbmcoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUNv
ZGUudmlldygpOyB9CiAKLSAgICBTdHJpbmdWaWV3IGhvc3QoKSBjb25zdCB7IHJldHVybiBtX3Nv
dXJjZUNvZGUucHJvdmlkZXIoKS51cmwoKS5ob3N0KCk7IH0KKyAgICBTdHJpbmdWaWV3IGhvc3Qo
KSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUNvZGUucHJvdmlkZXIoKS5zb3VyY2VPcmlnaW4oKS51
cmwoKS5ob3N0KCk7IH0KIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTb3VyY2VDb2RlS2V5
JiBvdGhlcikgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1NvdXJjZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
U291cmNlUHJvdmlkZXIuY3BwCmluZGV4IGMxNDE2ZjE0OTViNjgzYWY5NWU3NzU4ZWMyYTFhMDMx
N2U1ZWI4YjAuLjAzZTU1ZWUzZDFmZjIwMjU4NmFmMmJlYThkNzkxZDUxNTNhMTg3YjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwCkBAIC0z
MiwxMCArMzIsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIERFRklORV9BTExPQ0FUT1JfV0lUSF9I
RUFQX0lERU5USUZJRVIoU3RyaW5nU291cmNlUHJvdmlkZXIpOwogCi1Tb3VyY2VQcm92aWRlcjo6
U291cmNlUHJvdmlkZXIoY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVy
bCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92aWRlclNvdXJj
ZVR5cGUgc291cmNlVHlwZSkKK1NvdXJjZVByb3ZpZGVyOjpTb3VyY2VQcm92aWRlcihjb25zdCBT
b3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nJiYgc291cmNlVVJMLCBjb25zdCBUZXh0
UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VU
eXBlKQogICAgIDogbV9zb3VyY2VUeXBlKHNvdXJjZVR5cGUpCi0gICAgLCBtX3VybChXVEZNb3Zl
KHVybCkpCiAgICAgLCBtX3NvdXJjZU9yaWdpbihzb3VyY2VPcmlnaW4pCisgICAgLCBtX3NvdXJj
ZVVSTChXVEZNb3ZlKHNvdXJjZVVSTCkpCiAgICAgLCBtX3N0YXJ0UG9zaXRpb24oc3RhcnRQb3Np
dGlvbikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291
cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlk
ZXIuaAppbmRleCBiNjJmMzkzMmMyMTMyMjk5NjY5ZTJkMDUyOTk3ZjcyNWI3NjAwM2MwLi4xMjll
ZTVjNDllMjQ3YWZjZDlmMDhkNTllZmU5ZmIxMjhmOWFiYmUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5j
bHVkZSAiQ29kZVNwZWNpYWxpemF0aW9uS2luZC5oIgogI2luY2x1ZGUgIlNvdXJjZU9yaWdpbi5o
IgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1VSTC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCkBAIC01NCw3ICs1Myw3IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2RlQmxv
Y2s7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgY29uc3QgaW50cHRyX3QgbnVsbElEID0g
MTsKICAgICAgICAgCi0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIFNvdXJjZVByb3ZpZGVyKGNv
bnN0IFNvdXJjZU9yaWdpbiYsIFVSTCYmLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRp
b24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSk7CisgICAgICAgIEpTX0VYUE9SVF9QUklWQVRF
IFNvdXJjZVByb3ZpZGVyKGNvbnN0IFNvdXJjZU9yaWdpbiYsIFN0cmluZyYmIHNvdXJjZVVSTCwg
Y29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5
cGUpOwogCiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgflNvdXJjZVByb3ZpZGVy
KCk7CiAKQEAgLTcxLDcgKzcwLDkgQEAgY2xhc3MgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jazsK
ICAgICAgICAgfQogCiAgICAgICAgIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luKCkg
Y29uc3QgeyByZXR1cm4gbV9zb3VyY2VPcmlnaW47IH0KLSAgICAgICAgY29uc3QgVVJMJiB1cmwo
KSBjb25zdCB7IHJldHVybiBtX3VybDsgfQorCisgICAgICAgIC8vIFRoaXMgaXMgTk9UIHRoZSBw
YXRoIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIGNvbXB1dGluZyByZWxhdGl2ZSBwYXRocyBmcm9t
IGEgc2NyaXB0LiBVc2UgU291cmNlT3JpZ2luJ3MgVVJMIGZvciB0aGF0LCB0aGUgdmFsdWVzIG1h
eSBvciBtYXkgbm90IGJlIHRoZSBzYW1lLi4uCisgICAgICAgIGNvbnN0IFN0cmluZyYgc291cmNl
VVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0KICAgICAgICAgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkxEaXJlY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVVSTERpcmVjdGl2
ZTsgfQogICAgICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmUoKSBj
b25zdCB7IHJldHVybiBtX3NvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmU7IH0KIApAQCAtOTIsOCAr
OTMsOCBAQCBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOwogICAgICAgICBKU19FWFBP
UlRfUFJJVkFURSB2b2lkIGdldElEKCk7CiAKICAgICAgICAgU291cmNlUHJvdmlkZXJTb3VyY2VU
eXBlIG1fc291cmNlVHlwZTsKLSAgICAgICAgVVJMIG1fdXJsOwogICAgICAgICBTb3VyY2VPcmln
aW4gbV9zb3VyY2VPcmlnaW47CisgICAgICAgIFN0cmluZyBtX3NvdXJjZVVSTDsKICAgICAgICAg
U3RyaW5nIG1fc291cmNlVVJMRGlyZWN0aXZlOwogICAgICAgICBTdHJpbmcgbV9zb3VyY2VNYXBw
aW5nVVJMRGlyZWN0aXZlOwogICAgICAgICBUZXh0UG9zaXRpb24gbV9zdGFydFBvc2l0aW9uOwpA
QCAtMTA0LDkgKzEwNSw5IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7CiAgICAg
Y2xhc3MgU3RyaW5nU291cmNlUHJvdmlkZXIgOiBwdWJsaWMgU291cmNlUHJvdmlkZXIgewogICAg
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRF9XSVRIX0hFQVBfSURFTlRJRklFUihTdHJpbmdT
b3VyY2VQcm92aWRlcik7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPFN0cmluZ1Nv
dXJjZVByb3ZpZGVyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNvdXJjZU9y
aWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQ
b3NpdGlvbiA9IFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNl
VHlwZSA9IFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSkKKyAgICAgICAgc3RhdGlj
IFJlZjxTdHJpbmdTb3VyY2VQcm92aWRlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgc291cmNlLCBj
b25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nIHNvdXJjZVVSTCwgY29uc3Qg
VGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3Zp
ZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlID0gU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9n
cmFtKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdHJpbmdT
b3VyY2VQcm92aWRlcihzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpLCBzdGFydFBv
c2l0aW9uLCBzb3VyY2VUeXBlKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
dHJpbmdTb3VyY2VQcm92aWRlcihzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZShzb3VyY2VV
UkwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAg
ICAgICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdCBvdmVycmlkZQpAQCAtMTIwLDggKzEyMSw4IEBA
IGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7CiAgICAgICAgIH0KIAogICAgIHByb3Rl
Y3RlZDoKLSAgICAgICAgU3RyaW5nU291cmNlUHJvdmlkZXIoY29uc3QgU3RyaW5nJiBzb3VyY2Us
IGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQ
b3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5
cGUpCi0gICAgICAgICAgICA6IFNvdXJjZVByb3ZpZGVyKHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1
cmwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKQorICAgICAgICBTdHJpbmdTb3VyY2VQcm92
aWRlcihjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmln
aW4sIFN0cmluZyYmIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9u
LCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSkKKyAgICAgICAgICAgIDogU291
cmNlUHJvdmlkZXIoc291cmNlT3JpZ2luLCBXVEZNb3ZlKHNvdXJjZVVSTCksIHN0YXJ0UG9zaXRp
b24sIHNvdXJjZVR5cGUpCiAgICAgICAgICAgICAsIG1fc291cmNlKHNvdXJjZS5pc051bGwoKSA/
ICpTdHJpbmdJbXBsOjplbXB0eSgpIDogKnNvdXJjZS5pbXBsKCkpCiAgICAgICAgIHsKICAgICAg
ICAgfQpAQCAtMTMzLDkgKzEzNCw5IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7
CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIGNsYXNzIFdlYkFzc2VtYmx5U291cmNlUHJv
dmlkZXIgZmluYWwgOiBwdWJsaWMgU291cmNlUHJvdmlkZXIgewogICAgIHB1YmxpYzoKLSAgICAg
ICAgc3RhdGljIFJlZjxXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyPiBjcmVhdGUoVmVjdG9yPHVp
bnQ4X3Q+JiYgZGF0YSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVy
bCkKKyAgICAgICAgc3RhdGljIFJlZjxXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyPiBjcmVhdGUo
VmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4s
IFN0cmluZyBzb3VyY2VVUkwpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIoV1RGTW92ZShkYXRhKSwgc291cmNlT3Jp
Z2luLCBXVEZNb3ZlKHVybCkpKTsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YkFzc2VtYmx5U291cmNlUHJvdmlkZXIoV1RGTW92ZShkYXRhKSwgc291cmNlT3JpZ2luLCBXVEZN
b3ZlKHNvdXJjZVVSTCkpKTsKICAgICAgICAgfQogCiAgICAgICAgIHVuc2lnbmVkIGhhc2goKSBj
b25zdCBmaW5hbApAQCAtMTU0LDggKzE1NSw4IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2Rl
QmxvY2s7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFdlYkFzc2VtYmx5U291
cmNlUHJvdmlkZXIoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSwgY29uc3QgU291cmNlT3JpZ2luJiBz
b3VyY2VPcmlnaW4sIFVSTCYmIHVybCkKLSAgICAgICAgICAgIDogU291cmNlUHJvdmlkZXIoc291
cmNlT3JpZ2luLCBXVEZNb3ZlKHVybCksIFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNv
dXJjZVR5cGU6OldlYkFzc2VtYmx5KQorICAgICAgICBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVy
KFZlY3Rvcjx1aW50OF90PiYmIGRhdGEsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2lu
LCBTdHJpbmcmJiBzb3VyY2VVUkwpCisgICAgICAgICAgICA6IFNvdXJjZVByb3ZpZGVyKHNvdXJj
ZU9yaWdpbiwgV1RGTW92ZShzb3VyY2VVUkwpLCBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlk
ZXJTb3VyY2VUeXBlOjpXZWJBc3NlbWJseSkKICAgICAgICAgICAgICwgbV9zb3VyY2UoIltXZWJB
c3NlbWJseSBzb3VyY2VdIikKICAgICAgICAgICAgICwgbV9kYXRhKFdURk1vdmUoZGF0YSkpCiAg
ICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hl
ZFR5cGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5cGVzLmNw
cAppbmRleCAzZDI1MDY0ZGQ5MjM3MTNhMTQ0ZDgxZmZjZWI4MjI1MjUxMmI0YjJhLi4yMmY3MTY0
ZTA5ZjdiMzY1MDRmZjg4OGJmYzlmMWMzZDQ0NGYzZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlwZXMuY3BwCkBAIC0xNTEwLDEyICsxNTEwLDEyIEBAIGNs
YXNzIENhY2hlZFNvdXJjZU9yaWdpbiA6IHB1YmxpYyBDYWNoZWRPYmplY3Q8U291cmNlT3JpZ2lu
PiB7CiBwdWJsaWM6CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU291
cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4pCiAgICAgewotICAgICAgICBtX3N0cmluZy5lbmNvZGUo
ZW5jb2Rlciwgc291cmNlT3JpZ2luLnN0cmluZygpKTsKKyAgICAgICAgbV9zdHJpbmcuZW5jb2Rl
KGVuY29kZXIsIHNvdXJjZU9yaWdpbi51cmwoKS5zdHJpbmcoKSk7CiAgICAgfQogCiAgICAgU291
cmNlT3JpZ2luIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKSBjb25zdAogICAgIHsKLSAgICAgICAg
cmV0dXJuIFNvdXJjZU9yaWdpbiB7IG1fc3RyaW5nLmRlY29kZShkZWNvZGVyKSB9OworICAgICAg
ICByZXR1cm4gU291cmNlT3JpZ2luIHsgVVJMKHsgfSwgbV9zdHJpbmcuZGVjb2RlKGRlY29kZXIp
KSB9OwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTE1NDYsNyArMTU0Niw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTb3VyY2VQcm92aWRlciYgc291
cmNlUHJvdmlkZXIpCiAgICAgewogICAgICAgICBtX3NvdXJjZU9yaWdpbi5lbmNvZGUoZW5jb2Rl
ciwgc291cmNlUHJvdmlkZXIuc291cmNlT3JpZ2luKCkpOwotICAgICAgICBtX3VybC5lbmNvZGUo
ZW5jb2Rlciwgc291cmNlUHJvdmlkZXIudXJsKCkuc3RyaW5nKCkpOworICAgICAgICBtX3NvdXJj
ZVVSTC5lbmNvZGUoZW5jb2Rlciwgc291cmNlUHJvdmlkZXIuc291cmNlVVJMKCkpOwogICAgICAg
ICBtX3NvdXJjZVVSTERpcmVjdGl2ZS5lbmNvZGUoZW5jb2Rlciwgc291cmNlUHJvdmlkZXIuc291
cmNlVVJMRGlyZWN0aXZlKCkpOwogICAgICAgICBtX3NvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmUu
ZW5jb2RlKGVuY29kZXIsIHNvdXJjZVByb3ZpZGVyLnNvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmUo
KSk7CiAgICAgICAgIG1fc3RhcnRQb3NpdGlvbi5lbmNvZGUoZW5jb2Rlciwgc291cmNlUHJvdmlk
ZXIuc3RhcnRQb3NpdGlvbigpKTsKQEAgLTE1NjAsNyArMTU2MCw3IEBAIHB1YmxpYzoKIAogcHJv
dGVjdGVkOgogICAgIENhY2hlZFNvdXJjZU9yaWdpbiBtX3NvdXJjZU9yaWdpbjsKLSAgICBDYWNo
ZWRTdHJpbmcgbV91cmw7CisgICAgQ2FjaGVkU3RyaW5nIG1fc291cmNlVVJMOwogICAgIENhY2hl
ZFN0cmluZyBtX3NvdXJjZVVSTERpcmVjdGl2ZTsKICAgICBDYWNoZWRTdHJpbmcgbV9zb3VyY2VN
YXBwaW5nVVJMRGlyZWN0aXZlOwogICAgIENhY2hlZFRleHRQb3NpdGlvbiBtX3N0YXJ0UG9zaXRp
b247CkBAIC0xNTgwLDEwICsxNTgwLDEwIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIFN0cmlu
ZyBkZWNvZGVkU291cmNlID0gbV9zb3VyY2UuZGVjb2RlKGRlY29kZXIpOwogICAgICAgICBTb3Vy
Y2VPcmlnaW4gZGVjb2RlZFNvdXJjZU9yaWdpbiA9IG1fc291cmNlT3JpZ2luLmRlY29kZShkZWNv
ZGVyKTsKLSAgICAgICAgU3RyaW5nIGRlY29kZWRVUkwgPSBtX3VybC5kZWNvZGUoZGVjb2Rlcik7
CisgICAgICAgIFN0cmluZyBkZWNvZGVkU291cmNlVVJMID0gbV9zb3VyY2VVUkwuZGVjb2RlKGRl
Y29kZXIpOwogICAgICAgICBUZXh0UG9zaXRpb24gZGVjb2RlZFN0YXJ0UG9zaXRpb24gPSBtX3N0
YXJ0UG9zaXRpb24uZGVjb2RlKGRlY29kZXIpOwogCi0gICAgICAgIFJlZjxTdHJpbmdTb3VyY2VQ
cm92aWRlcj4gc291cmNlUHJvdmlkZXIgPSBTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKGRl
Y29kZWRTb3VyY2UsIGRlY29kZWRTb3VyY2VPcmlnaW4sIFVSTChVUkwoKSwgZGVjb2RlZFVSTCks
IGRlY29kZWRTdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKTsKKyAgICAgICAgUmVmPFN0cmluZ1Nv
dXJjZVByb3ZpZGVyPiBzb3VyY2VQcm92aWRlciA9IFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVh
dGUoZGVjb2RlZFNvdXJjZSwgZGVjb2RlZFNvdXJjZU9yaWdpbiwgZGVjb2RlZFNvdXJjZVVSTCwg
ZGVjb2RlZFN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpOwogICAgICAgICBCYXNlOjpkZWNvZGUo
ZGVjb2Rlciwgc291cmNlUHJvdmlkZXIuZ2V0KCkpOwogICAgICAgICByZXR1cm4gJnNvdXJjZVBy
b3ZpZGVyLmxlYWtSZWYoKTsKICAgICB9CkBAIC0xNjA3LDExICsxNjA3LDExIEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBkZWNvZGVkRGF0YTsKICAgICAgICAgU291
cmNlT3JpZ2luIGRlY29kZWRTb3VyY2VPcmlnaW4gPSBtX3NvdXJjZU9yaWdpbi5kZWNvZGUoZGVj
b2Rlcik7Ci0gICAgICAgIFN0cmluZyBkZWNvZGVkVVJMID0gbV91cmwuZGVjb2RlKGRlY29kZXIp
OworICAgICAgICBTdHJpbmcgZGVjb2RlZFNvdXJjZVVSTCA9IG1fc291cmNlVVJMLmRlY29kZShk
ZWNvZGVyKTsKIAogICAgICAgICBtX2RhdGEuZGVjb2RlKGRlY29kZXIsIGRlY29kZWREYXRhKTsK
IAotICAgICAgICBSZWY8V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcj4gc291cmNlUHJvdmlkZXIg
PSBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoV1RGTW92ZShkZWNvZGVkRGF0YSks
IGRlY29kZWRTb3VyY2VPcmlnaW4sIFVSTChVUkwoKSwgZGVjb2RlZFVSTCkpOworICAgICAgICBS
ZWY8V2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcj4gc291cmNlUHJvdmlkZXIgPSBXZWJBc3NlbWJs
eVNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoV1RGTW92ZShkZWNvZGVkRGF0YSksIGRlY29kZWRTb3Vy
Y2VPcmlnaW4sIGRlY29kZWRTb3VyY2VVUkwpOwogICAgICAgICBCYXNlOjpkZWNvZGUoZGVjb2Rl
ciwgc291cmNlUHJvdmlkZXIuZ2V0KCkpOwogCiAgICAgICAgIHJldHVybiAmc291cmNlUHJvdmlk
ZXIubGVha1JlZigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCmluZGV4
IDE1Y2NhOTUxNjIzMzllMmQ4ZjU3NDk3OGJhYzM3ZjU0NjZkNjc4ZGQuLmY0NzNiODE4MWVjMmYw
MmEwY2M3OGEyNmMwYzIwZGM5NjMxZmRjNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvci5jcHAKQEAgLTIzMCw3ICsyMzAsNyBAQCB2b2lkIGFkZEVycm9ySW5mbyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqLCBib29sIHVzZUN1cnJlbnRGcgog
CiBKU09iamVjdCogYWRkRXJyb3JJbmZvKFZNJiB2bSwgSlNPYmplY3QqIGVycm9yLCBpbnQgbGlu
ZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlKQogewotICAgIGNvbnN0IFN0cmluZyYgc291cmNl
VVJMID0gc291cmNlLnByb3ZpZGVyKCktPnVybCgpLnN0cmluZygpOworICAgIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMID0gc291cmNlLnByb3ZpZGVyKCktPnNvdXJjZVVSTCgpOwogICAgIAogICAg
IC8vIFRoZSBwdXREaXJlY3QoKSBjYWxscyBiZWxvdyBzaG91bGQgcmVhbGx5IGJlIHB1dCgpIHNv
IHRoYXQgdGhleSB0cmlnZ2VyIG1hdGVyaWFsaXphdGlvbiBvZgogICAgIC8vIHRoZSBsaW5lL3Nv
dXJjZVVSTCBwcm9wZXJ0aWVzLiBPdGhlcndpc2UsIHdoYXQgd2Ugc2V0IGhlcmUgd2lsbCBqdXN0
IGJlIG92ZXJ3cml0dGVuIGxhdGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCAxMjYxNGRlZGEzOTU2YmE0NGYy
MDgyOWRkZDQ5MDZmMGI0ZjI3ZjhjLi40YzEwMTZmODc5OGRkYWMzYWNhZTExNmQ5ZWMxMjFhNDQ2
ZmFjYThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlv
bkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5j
dGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMTQ4LDcgKzE0OCw3IEBAIEpTT2JqZWN0KiBjb25zdHJ1
Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRDaGVjaygKICAgICAgICAgcHJvZ3JhbSA9IGJ1
aWxkZXIudG9TdHJpbmcoKTsKICAgICB9CiAKLSAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IG1ha2VT
b3VyY2UocHJvZ3JhbSwgc291cmNlT3JpZ2luLCBVUkwoeyB9LCBzb3VyY2VVUkwpLCBwb3NpdGlv
bik7CisgICAgU291cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291cmNlKHByb2dyYW0sIHNvdXJjZU9y
aWdpbiwgc291cmNlVVJMLCBwb3NpdGlvbik7CiAgICAgSlNPYmplY3QqIGV4Y2VwdGlvbiA9IG51
bGxwdHI7CiAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbiA9IEZ1bmN0aW9uRXhlY3V0
YWJsZTo6ZnJvbUdsb2JhbENvZGUoZnVuY3Rpb25OYW1lLCBnbG9iYWxPYmplY3QsIHNvdXJjZSwg
ZXhjZXB0aW9uLCBvdmVycmlkZUxpbmVOdW1iZXIsIGZ1bmN0aW9uQ29uc3RydWN0b3JQYXJhbWV0
ZXJzRW5kUG9zaXRpb24pOwogICAgIGlmIChVTkxJS0VMWSghZnVuY3Rpb24pKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmgKaW5kZXggZjRi
NDI1YmNmYjAyNGNkODdiNmVkMmMxNzg4MDdjYWYwMWNiZDkwNi4uNTJkOTIxOTBkMDI0MTgzNTU1
MDA2ZDZkZTFhNzA1YTAxNTNiZmEwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaApAQCAtNDcsNyArNDcsOCBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgU291cmNlQ29kZSYgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2U7IH0KICAg
ICBpbnRwdHJfdCBzb3VyY2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnByb3ZpZGVySUQo
KTsgfQogICAgIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luKCkgY29uc3QgeyByZXR1
cm4gbV9zb3VyY2UucHJvdmlkZXIoKS0+c291cmNlT3JpZ2luKCk7IH0KLSAgICBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnByb3ZpZGVyKCktPnVybCgp
LnN0cmluZygpOyB9CisgICAgLy8gVGhpcyBpcyBOT1QgdGhlIHBhdGggdGhhdCBzaG91bGQgYmUg
dXNlZCBmb3IgY29tcHV0aW5nIHJlbGF0aXZlIHBhdGhzIGZyb20gYSBzY3JpcHQuIFVzZSBTb3Vy
Y2VPcmlnaW4ncyBVUkwgZm9yIHRoYXQsIHRoZSB2YWx1ZXMgbWF5IG9yIG1heSBub3QgYmUgdGhl
IHNhbWUuLi4gVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIGZvciBgZXJyb3Iuc291cmNlVVJMYCBh
bmQgc3RhY2sgdHJhY2VzLgorICAgIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKCkgY29uc3QgeyBy
ZXR1cm4gbV9zb3VyY2UucHJvdmlkZXIoKS0+c291cmNlVVJMKCk7IH0KICAgICBpbnQgZmlyc3RM
aW5lKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UuZmlyc3RMaW5lKCkub25lQmFzZWRJbnQoKTsg
fQogICAgIEpTX0VYUE9SVF9QUklWQVRFIGludCBsYXN0TGluZSgpIGNvbnN0OwogICAgIHVuc2ln
bmVkIHN0YXJ0Q29sdW1uKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2Uuc3RhcnRDb2x1bW4oKS5v
bmVCYXNlZEludCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Tb3VyY2VPcmlnaW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NvdXJjZU9y
aWdpbi5oCmluZGV4IDdjM2NkZWI3YzlhZGIyMWI4NTI5NmE0M2NjNjc5OTUwMDE4YjcyYmQuLjhl
N2EwOTA1MzNlNzViYTM4NWU4YmE1NjBhZjVhZjViYmYyYTgxYWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NvdXJjZU9yaWdpbi5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NvdXJjZU9yaWdpbi5oCkBAIC0yNiwzMiArMjYsMzMgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU2NyaXB0RmV0Y2hlci5oIgotI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KIAogbmFtZXNwYWNlIEpTQyB7
CiAKIGNsYXNzIFNvdXJjZU9yaWdpbiB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgU291cmNlT3Jp
Z2luKGNvbnN0IFN0cmluZyYgc3RyaW5nKQotICAgICAgICA6IG1fc3RyaW5nKHN0cmluZykKKyAg
ICBleHBsaWNpdCBTb3VyY2VPcmlnaW4oY29uc3QgVVJMJiB1cmwpCisgICAgICAgIDogbV91cmwo
dXJsKQogICAgIHsKICAgICB9CiAKLSAgICBleHBsaWNpdCBTb3VyY2VPcmlnaW4oY29uc3QgU3Ry
aW5nJiBzdHJpbmcsIFJlZjxTY3JpcHRGZXRjaGVyPiYmIGZldGNoZXIpCi0gICAgICAgIDogbV9z
dHJpbmcoc3RyaW5nKQorICAgIGV4cGxpY2l0IFNvdXJjZU9yaWdpbihjb25zdCBVUkwmIHVybCwg
UmVmPFNjcmlwdEZldGNoZXI+JiYgZmV0Y2hlcikKKyAgICAgICAgOiBtX3VybCh1cmwpCiAgICAg
ICAgICwgbV9mZXRjaGVyKFdURk1vdmUoZmV0Y2hlcikpCiAgICAgewogICAgIH0KIAogICAgIFNv
dXJjZU9yaWdpbigpID0gZGVmYXVsdDsKIAotICAgIGNvbnN0IFN0cmluZyYgc3RyaW5nKCkgY29u
c3QgeyByZXR1cm4gbV9zdHJpbmc7IH0KLSAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJu
IG1fc3RyaW5nLmlzTnVsbCgpOyB9CisgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7IHJldHVy
biBtX3VybDsgfQorICAgIGNvbnN0IFN0cmluZyYgc3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV91
cmwuc3RyaW5nKCk7IH0KKyAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIHVybCgpLmlz
TnVsbCgpOyB9CiAKICAgICBTY3JpcHRGZXRjaGVyKiBmZXRjaGVyKCkgY29uc3QgeyByZXR1cm4g
bV9mZXRjaGVyLmdldCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgU3RyaW5nIG1fc3RyaW5nOworICAg
IFVSTCBtX3VybDsKICAgICBSZWZQdHI8U2NyaXB0RmV0Y2hlcj4gbV9mZXRjaGVyOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGhyb3dTY29wZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UaHJvd1Njb3BlLmNwcAppbmRleCBhMzFj
ZTlkZDNiMDQyMjgzZGY3ZGNkODU1ZGE4ZWYwYTI2NDk3NTA4Li5kZWM2OWE0ODMxNmUxNmFlNTM3
YjU4MTVkMDZlMGNiYjc0ZmExOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9UaHJvd1Njb3BlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9UaHJvd1Njb3BlLmNwcApAQCAtODAsMTggKzgwLDEyIEBAIEV4Y2VwdGlvbiogVGhyb3dTY29w
ZTo6dGhyb3dFeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXhjZXB0aW9u
KiBlCiAKIEV4Y2VwdGlvbiogVGhyb3dTY29wZTo6dGhyb3dFeGNlcHRpb24oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBlcnJvcikKIHsKLSAgICBpZiAoIWVycm9yLmlzQ2Vs
bCgpIHx8ICFqc0R5bmFtaWNDYXN0PEV4Y2VwdGlvbio+KG1fdm0sIGVycm9yLmFzQ2VsbCgpKSkK
KyAgICBpZiAoIWVycm9yLmlzQ2VsbCgpIHx8IGVycm9yLmlzT2JqZWN0KCkgfHwgIWpzRHluYW1p
Y0Nhc3Q8RXhjZXB0aW9uKj4obV92bSwgZXJyb3IuYXNDZWxsKCkpKQogICAgICAgICBtX3ZtLnZl
cmlmeUV4Y2VwdGlvbkNoZWNrTmVlZElzU2F0aXNmaWVkKG1fcmVjdXJzaW9uRGVwdGgsIG1fbG9j
YXRpb24pOwogICAgIAogICAgIHJldHVybiBtX3ZtLnRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVj
dCwgZXJyb3IpOwogfQogCi1FeGNlcHRpb24qIFRocm93U2NvcGU6OnRocm93RXhjZXB0aW9uKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmopCi17Ci0gICAgbV92bS52
ZXJpZnlFeGNlcHRpb25DaGVja05lZWRJc1NhdGlzZmllZChtX3JlY3Vyc2lvbkRlcHRoLCBtX2xv
Y2F0aW9uKTsKLSAgICByZXR1cm4gbV92bS50aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIG9i
aik7Ci19Ci0KIHZvaWQgVGhyb3dTY29wZTo6c2ltdWxhdGVUaHJvdygpCiB7CiAgICAgUkVMRUFT
RV9BU1NFUlQobV92bS5tX3RvcEV4Y2VwdGlvblNjb3BlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rocm93U2NvcGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1Rocm93U2NvcGUuaAppbmRleCA2OTMyMTk3ZTgwNThiOWQ2ODI5ZTE2NjZhYWQw
MDc0MTY0MzE2MWE0Li5jZjMzNmZjMjQzYjYwNGE4ZTdkNWYxNGE4MWI2MzE4MmYzODg3OGFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UaHJvd1Njb3BlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGhyb3dTY29wZS5oCkBAIC00OSw3ICs0
OSw2IEBAIHB1YmxpYzoKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIEV4Y2VwdGlvbiogdGhyb3dF
eGNlcHRpb24oSlNHbG9iYWxPYmplY3QqLCBFeGNlcHRpb24qKTsKICAgICBKU19FWFBPUlRfUFJJ
VkFURSBFeGNlcHRpb24qIHRocm93RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7
Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgRXhjZXB0aW9uKiB0aHJvd0V4Y2VwdGlvbihKU0dsb2Jh
bE9iamVjdCosIEpTT2JqZWN0Kik7CiAKICAgICB2b2lkIHJlbGVhc2UoKSB7IG1faXNSZWxlYXNl
ZCA9IHRydWU7IH0KIApAQCAtNzksNyArNzgsNiBAQCBwdWJsaWM6CiAKICAgICBBTFdBWVNfSU5M
SU5FIEV4Y2VwdGlvbiogdGhyb3dFeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRXhjZXB0aW9uKiBleGNlcHRpb24pIHsgcmV0dXJuIG1fdm0udGhyb3dFeGNlcHRpb24oZ2xv
YmFsT2JqZWN0LCBleGNlcHRpb24pOyB9CiAgICAgQUxXQVlTX0lOTElORSBFeGNlcHRpb24qIHRo
cm93RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUp
IHsgcmV0dXJuIG1fdm0udGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCB2YWx1ZSk7IH0KLSAg
ICBBTFdBWVNfSU5MSU5FIEV4Y2VwdGlvbiogdGhyb3dFeGNlcHRpb24oSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iaikgeyByZXR1cm4gbV92bS50aHJvd0V4Y2VwdGlv
bihnbG9iYWxPYmplY3QsIG9iaik7IH0KIAogICAgIEFMV0FZU19JTkxJTkUgdm9pZCByZWxlYXNl
KCkgeyB9CiB9OwpAQCAtOTksOSArOTcsMTYgQEAgQUxXQVlTX0lOTElORSBFeGNlcHRpb24qIHRo
cm93RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRocm93U2NvcGUKICAg
ICByZXR1cm4gc2NvcGUudGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiB9CiAK
LUFMV0FZU19JTkxJTkUgRXhjZXB0aW9uKiB0aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSwgSlNPYmplY3QqIG9iaikKK0FMV0FZU19J
TkxJTkUgRW5jb2RlZEpTVmFsdWUgdGhyb3dWTUV4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSwgRXhjZXB0aW9uKiBleGNlcHRpb24pCiB7Ci0g
ICAgcmV0dXJuIHNjb3BlLnRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgb2JqKTsKKyAgICB0
aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBleGNlcHRpb24pOworICAgIHJldHVy
biBlbmNvZGVkSlNWYWx1ZSgpOworfQorCitBTFdBWVNfSU5MSU5FIEVuY29kZWRKU1ZhbHVlIHRo
cm93Vk1FeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYg
c2NvcGUsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0
LCBzY29wZSwgdmFsdWUpOworICAgIHJldHVybiBlbmNvZGVkSlNWYWx1ZSgpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9G
dW5jdGlvbk92ZXJyaWRlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rp
b25PdmVycmlkZXMuY3BwCmluZGV4IGUwOTM5NmY3NDJlZWQ3NTNiNmRiZWE0Y2Q5YTc4ZWY2NjU3
ZGQ0ODUuLjQ4YjJkYTVlMmYyNjFmYzllMDZiZWFiN2Q5NGZmNzE5NDBlZjdmZDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcApAQCAt
MTM3LDcgKzEzNyw5IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVPdmVycmlkZUluZm8oY29uc3Qg
U291cmNlQ29kZSYgb3JpZ0NvZGUsIGNvbnN0IFN0cmluZyYgbmV3CiAgICAgbmV3UHJvdmlkZXJT
dHIuYXBwZW5kKG9yaWdIZWFkZXIpOwogICAgIG5ld1Byb3ZpZGVyU3RyLmFwcGVuZChuZXdCb2R5
KTsKIAotICAgIFJlZjxTb3VyY2VQcm92aWRlcj4gbmV3UHJvdmlkZXIgPSBTdHJpbmdTb3VyY2VQ
cm92aWRlcjo6Y3JlYXRlKG5ld1Byb3ZpZGVyU3RyLCBTb3VyY2VPcmlnaW4geyAiPG92ZXJyaWRk
ZW4+IiB9LCBVUkwoeyB9LCAiPG92ZXJyaWRkZW4+IikpOworICAgIGF1dG8gb3ZlcnJpZGRlbiA9
ICI8b3ZlcnJpZGRlbj4iX3M7CisgICAgVVJMIHVybCh7IH0sIG92ZXJyaWRkZW4pOworICAgIFJl
ZjxTb3VyY2VQcm92aWRlcj4gbmV3UHJvdmlkZXIgPSBTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3Jl
YXRlKG5ld1Byb3ZpZGVyU3RyLCBTb3VyY2VPcmlnaW4geyB1cmwgfSwgb3ZlcnJpZGRlbik7CiAK
ICAgICBpbmZvLmZpcnN0TGluZSA9IDE7CiAgICAgaW5mby5saW5lQ291bnQgPSAxOyAvLyBGYWtp
bmcgaXQuIFRoaXMgZG9lc24ndCByZWFsbHkgbWF0dGVyIGZvciBub3cuCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKaW5kZXggZTEyZjQ4MTZjM2UxNDQyNTVjMWE0
ZjUzMmEyODY3N2RkYjNkMjU1Ni4uOGQ2N2Y1MzE3YzY2NDU1NTQ2ZmFmYjc3ZWFkYjI3ZjI1YTU0
NWY5MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcApAQCAt
MTY0OCwxMSArMTY0OCw0NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIEpT
RG9sbGFyVk06OnNfaW5mbyA9IHsgIkRvbGxhclZNIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0RvbGxhclZNKSB9OwogCi0vLyBUcmlnZ2Vy
cyBhIGNyYXNoIGltbWVkaWF0ZWx5LgotLy8gVXNhZ2U6ICR2bS5jcmFzaCgpCi1zdGF0aWMgTk9f
UkVUVVJOX0RVRV9UT19DUkFTSCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
Q3Jhc2goSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorc3RhdGljIEVuY29kZWRKU1ZhbHVl
IGRvUHJpbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIGJvb2wgYWRkTGluZUZlZWQpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRT
Y29wZTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShnbG9iYWxPYmplY3Qt
PnZtKCkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjYWxsRnJhbWUtPmFyZ3VtZW50
Q291bnQoKTsgKytpKSB7CisgICAgICAgIEpTVmFsdWUgYXJnID0gY2FsbEZyYW1lLT51bmNoZWNr
ZWRBcmd1bWVudChpKTsKKyAgICAgICAgaWYgKGFyZy5pc0NlbGwoKQorICAgICAgICAgICAgJiYg
IWFyZy5pc09iamVjdCgpCisgICAgICAgICAgICAmJiAhYXJnLmlzU3RyaW5nKCkKKyAgICAgICAg
ICAgICYmICFhcmcuaXNCaWdJbnQoKSkgeworICAgICAgICAgICAgZGF0YUxvZyhhcmcpOworICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGFyZ1N0ciA9IGNh
bGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoaSkudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsK
KyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Cisg
ICAgICAgIGRhdGFMb2coYXJnU3RyKTsKKyAgICB9CisgICAgaWYgKGFkZExpbmVGZWVkKQorICAg
ICAgICBkYXRhTG9nKCJcbiIpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7Cit9CisKKy8vIFRyaWdnZXJzIGEgY3Jhc2ggYWZ0ZXIgZHVtcGluZyBhbnkgcGFyYW1h
dGVyIHBhc3NlZCB0byBpdC4KKy8vIFVzYWdlOiAkdm0uY3Jhc2goLi4uKQorc3RhdGljIE5PX1JF
VFVSTl9EVUVfVE9fQ1JBU0ggRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNy
YXNoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
eworICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CisKKyAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUo
dm0pOworICAgIGlmIChjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSkgeworICAgICAgICBkYXRh
TG9nTG4oIkR1bXBpbmcgIiwgY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCksICIgdmFsdWVzIGJl
Zm9yZSBjcmFzaGluZzoiKTsKKyAgICAgICAgY29uc3QgYm9vbCBhZGRMaW5lRmVlZCA9IHRydWU7
CisgICAgICAgIGRvUHJpbnQoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGFkZExpbmVGZWVkKTsK
KyAgICAgICAgaWYgKHNjb3BlLmV4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICBKU1ZhbHVlIHZh
bHVlID0gc2NvcGUuZXhjZXB0aW9uKCktPnZhbHVlKCk7CisgICAgICAgICAgICBzY29wZS5jbGVh
ckV4Y2VwdGlvbigpOworICAgICAgICAgICAgZGF0YUxvZ0xuKCJFcnJvciB0aHJvd24gd2hpbGUg
Y3Jhc2hpbmc6ICIsIHZhbHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCkpOworICAgICAgICB9
CisgICAgfQorCiAgICAgQ1JBU0goKTsKIH0KIApAQCAtMjAyOCwyOCArMjA2NCw2IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHVtcEJ5dGVjb2RlRm9yKEpT
R2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIGRvUHJpbnQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGJvb2wgYWRkTGluZUZlZWQpCi17
Ci0gICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKLSAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRShnbG9iYWxPYmplY3QtPnZtKCkpOwotICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKTsgKytpKSB7Ci0gICAgICAg
IEpTVmFsdWUgYXJnID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudChpKTsKLSAgICAgICAg
aWYgKGFyZy5pc0NlbGwoKQotICAgICAgICAgICAgJiYgIWFyZy5pc09iamVjdCgpCi0gICAgICAg
ICAgICAmJiAhYXJnLmlzU3RyaW5nKCkKLSAgICAgICAgICAgICYmICFhcmcuaXNCaWdJbnQoKSkg
ewotICAgICAgICAgICAgZGF0YUxvZyhhcmcpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgIH0KLSAgICAgICAgU3RyaW5nIGFyZ1N0ciA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1l
bnQoaSkudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgICAgIGRhdGFMb2coYXJnU3RyKTsK
LSAgICB9Ci0gICAgaWYgKGFkZExpbmVGZWVkKQotICAgICAgICBkYXRhTG9nKCJcbiIpOwotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci19Ci0KIC8vIFByaW50cyBh
IHNlcmllcyBvZiBjb21tYSBzZXBhcmF0ZSBzdHJpbmdzIHdpdGhvdXQgYXBwZW5kaW5nIGEgbmV3
bGluZS4KIC8vIFVzYWdlOiAkdm0uZGF0YUxvZyhzdHIxLCBzdHIyLCBzdHIzKQogc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EYXRhTG9nKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvVVJMLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1VSTC5jcHAKaW5kZXggZmUyOWNhNzc3
NmM1MzhiZjgwM2Q2YmM2MWJhZTc5MWYyM2M0Y2FmYi4uMWQzMTRiZjhkMDRjYzRlZTlhNWE5ZDFk
NTZmOGU2Y2EyZWIwZjRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVVJMLmNwcAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwCkBAIC0yMTMsNyArMjEzLDExIEBAIFN0cmluZyBVUkw6
OmZpbGVTeXN0ZW1QYXRoKCkgY29uc3QKICAgICBpZiAoIWlzTG9jYWxGaWxlKCkpCiAgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gZGVjb2RlRXNjYXBlU2VxdWVuY2VzRnJvbVBhcnNl
ZFVSTChwYXRoKCkpOworICAgIGF1dG8gcmVzdWx0ID0gZGVjb2RlRXNjYXBlU2VxdWVuY2VzRnJv
bVBhcnNlZFVSTChwYXRoKCkpOworI2lmIFBMQVRGT1JNKFdJTikKKyAgICByZXN1bHQgPSBmaWxl
U3lzdGVtUmVwcmVzZW50YXRpb24ocmVzdWx0KTsKKyNlbmRpZgorICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVVJMLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9VUkwuaAppbmRleCA4YjIyZTE2YzZjYTQwMTI1YzAyZjY4ODEyMzAyNDk1NmUwZjQ0
Nzk2Li5kM2Q3YzE2ZmE1NjllNDM4NTBlZTMwMDViNGQ1Mjc3MDliOGYwM2IxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9VUkwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VUkwuaApAQCAtNzcs
NiArNzcsMTUgQEAgcHVibGljOgogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogICAgIGJvb2wg
aXNWYWxpZCgpIGNvbnN0OwogCisgICAgLy8gU2luY2Ugd2Ugb3ZlcmxvYWQgb3BlcmF0b3IgTlNV
UkwqIHdlIGhhdmUgdGhpcyB0byBwcmV2ZW50IGFjY2lkZW50YWxseSB1c2luZyB0aGF0IG9wZXJh
dG9yCisgICAgLy8gd2hlbiBwbGFjaW5nIGEgVVJMIGluIGFuIGlmIHN0YXRtZW50LgorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQgPSB2b2lkPgorICAgIGV4cGxpY2l0IG9wZXJhdG9yIGJvb2woKQor
ICAgIHsKKyAgICAgICAgc3RhdGljX2Fzc2VydCghc3RkOjppc19zYW1lX3Y8VCwgdm9pZD4sICJV
c2luZyB1cmwgaW4gYW4gaWYgc3RhdGVtZW50IGlzIGRpc2FsbG93ZWQuIik7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgeW91IGNhbiBzZXQg
dGhlIGhvc3QgYW5kIHBvcnQgZm9yIHRoZSBVUkwuCiAgICAgLy8gTm9uLWhpZXJhcmNoaWNhbCBV
UkxzIGRvbid0IGhhdmUgYSBob3N0IGFuZCBwb3J0LgogICAgIGJvb2wgY2FuU2V0SG9zdE9yUG9y
dCgpIGNvbnN0IHsgcmV0dXJuIGlzSGllcmFyY2hpY2FsKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oCmluZGV4
IDBlODAxZmNjOTg4MjQ3NzVhNmQ1YjIwMjVjZjJiNzRlOTZiOGE3NjcuLmZmNmMyMGZkYmFhYzEy
NzJhNDRkNzIwMWMxYjU3Y2Q3OTVhZDNiODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaApAQCAtNDgsNyArNDgs
NyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIo
Q2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQsIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBl
IHNvdXJjZVR5cGUsIFJlZjxDYWNoZWRTY3JpcHRGZXRjaGVyPiYmIHNjcmlwdEZldGNoZXIpCi0g
ICAgICAgIDogU291cmNlUHJvdmlkZXIoSlNDOjpTb3VyY2VPcmlnaW4geyBjYWNoZWRTY3JpcHQt
PnJlc3BvbnNlKCkudXJsKCkuc3RyaW5nKCksIFdURk1vdmUoc2NyaXB0RmV0Y2hlcikgfSwgVVJM
KGNhY2hlZFNjcmlwdC0+cmVzcG9uc2UoKS51cmwoKSksIFRleHRQb3NpdGlvbigpLCBzb3VyY2VU
eXBlKQorICAgICAgICA6IFNvdXJjZVByb3ZpZGVyKEpTQzo6U291cmNlT3JpZ2luIHsgY2FjaGVk
U2NyaXB0LT5yZXNwb25zZSgpLnVybCgpLCBXVEZNb3ZlKHNjcmlwdEZldGNoZXIpIH0sIFN0cmlu
ZyhjYWNoZWRTY3JpcHQtPnJlc3BvbnNlKCkudXJsKCkuc3RyaW5nKCkpLCBUZXh0UG9zaXRpb24o
KSwgc291cmNlVHlwZSkKICAgICAgICAgLCBtX2NhY2hlZFNjcmlwdChjYWNoZWRTY3JpcHQpCiAg
ICAgewogICAgICAgICBtX2NhY2hlZFNjcmlwdC0+YWRkQ2xpZW50KCp0aGlzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCmluZGV4IDQ0OGMzYmIz
MDQ0MmNlNDAzMGQzZThlZDgyNjU2NGNiNDBhZDg4YjUuLmJjZGFmOTU3ODk2NzljOGRkNDE2Zjk4
NzE0Y2I2YjE1OWYzMWZlZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNF
dmVudExpc3RlbmVyLmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgSlNFdmVudExpc3RlbmVy
OjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0CiAgICAgICAgIEpTRE9NV2luZG93KiB3aW5kb3cgPSBqc0Nhc3Q8SlNET01XaW5kb3cqPihn
bG9iYWxPYmplY3QpOwogICAgICAgICBpZiAoIXdpbmRvdy0+d3JhcHBlZCgpLmlzQ3VycmVudGx5
RGlzcGxheWVkSW5GcmFtZSgpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAod2Fz
Q3JlYXRlZEZyb21NYXJrdXAoKSAmJiAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jb250ZW50U2Vj
dXJpdHlQb2xpY3koKS0+YWxsb3dJbmxpbmVFdmVudEhhbmRsZXJzKHNvdXJjZVVSTCgpLCBzb3Vy
Y2VQb3NpdGlvbigpLm1fbGluZSkpCisgICAgICAgIGlmICh3YXNDcmVhdGVkRnJvbU1hcmt1cCgp
ICYmICFzY3JpcHRFeGVjdXRpb25Db250ZXh0LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxv
d0lubGluZUV2ZW50SGFuZGxlcnMoc291cmNlVVJMKCkuc3RyaW5nKCksIHNvdXJjZVBvc2l0aW9u
KCkubV9saW5lKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgLy8gRklYTUU6IElzIHRo
aXMgY2hlY2sgbmVlZGVkIGZvciBvdGhlciBjb250ZXh0cz8KICAgICAgICAgU2NyaXB0Q29udHJv
bGxlciYgc2NyaXB0ID0gd2luZG93LT53cmFwcGVkKCkuZnJhbWUoKS0+c2NyaXB0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oCmluZGV4IGQ1MTUzYWYx
MjU1ZDM1ZGNkZTRhNjI3ZmZiMThlNTAxY2YyNGUzMjMuLjExOTMyNzg0MzJmY2RjZTFhMDdkZmM0
NjZkNDY5MWM1NzZkNTZjYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRMaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZl
bnRMaXN0ZW5lci5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICBKU0M6OkpTT2JqZWN0
KiBqc0Z1bmN0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9qc0Z1bmN0aW9uLmdldCgpOyB9
CiAgICAgSlNDOjpKU09iamVjdCogd3JhcHBlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fd3Jh
cHBlci5nZXQoKTsgfQogCi0gICAgdmlydHVhbCBTdHJpbmcgc291cmNlVVJMKCkgY29uc3QgeyBy
ZXR1cm4gU3RyaW5nKCk7IH0KKyAgICB2aXJ0dWFsIFVSTCBzb3VyY2VVUkwoKSBjb25zdCB7IHJl
dHVybiB7IH07IH0KICAgICB2aXJ0dWFsIFRleHRQb3NpdGlvbiBzb3VyY2VQb3NpdGlvbigpIGNv
bnN0IHsgcmV0dXJuIFRleHRQb3NpdGlvbigpOyB9CiAKICAgICBTdHJpbmcgZnVuY3Rpb25OYW1l
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlF
dmVudExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50
TGlzdGVuZXIuY3BwCmluZGV4IDFiNGIyMWVkYWQ1MTM0OTNkOGI1MWJmMmE1ZjcxZWJiYTE3MzFm
ZGQuLjE1YzdhMTY0MGZmYzIxNDU4YjgxZmVhYzE3MGEyYzY3Njc1YjEzZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCkBAIC02
Niw3ICs2Niw3IEBAIHN0YXRpYyBUZXh0UG9zaXRpb24gY29udmVydFplcm9Ub09uZShjb25zdCBU
ZXh0UG9zaXRpb24mIHBvc2l0aW9uKQogICAgIHJldHVybiBwb3NpdGlvbjsKIH0KIAotSlNMYXp5
RXZlbnRMaXN0ZW5lcjo6SlNMYXp5RXZlbnRMaXN0ZW5lcihDcmVhdGlvbkFyZ3VtZW50cyYmIGFy
Z3VtZW50cywgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc291
cmNlUG9zaXRpb24pCitKU0xhenlFdmVudExpc3RlbmVyOjpKU0xhenlFdmVudExpc3RlbmVyKENy
ZWF0aW9uQXJndW1lbnRzJiYgYXJndW1lbnRzLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgY29uc3Qg
VGV4dFBvc2l0aW9uJiBzb3VyY2VQb3NpdGlvbikKICAgICA6IEpTRXZlbnRMaXN0ZW5lcihudWxs
cHRyLCBhcmd1bWVudHMud3JhcHBlciwgdHJ1ZSwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpCiAg
ICAgLCBtX2Z1bmN0aW9uTmFtZShhcmd1bWVudHMuYXR0cmlidXRlTmFtZS5sb2NhbE5hbWUoKS5z
dHJpbmcoKSkKICAgICAsIG1fZXZlbnRQYXJhbWV0ZXJOYW1lKGV2ZW50UGFyYW1ldGVyTmFtZShh
cmd1bWVudHMuc2hvdWxkVXNlU1ZHRXZlbnROYW1lKSkKQEAgLTEzMCw3ICsxMzAsNyBAQCBKU09i
amVjdCogSlNMYXp5RXZlbnRMaXN0ZW5lcjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgZXhlYwogICAgIGlmICghZG9jdW1lbnQuZnJhbWUoKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKLSAgICBpZiAoIWRvY3VtZW50LmNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpLT5hbGxvd0lubGluZUV2ZW50SGFuZGxlcnMobV9zb3VyY2VVUkwsIG1fc291cmNlUG9zaXRp
b24ubV9saW5lKSkKKyAgICBpZiAoIWRvY3VtZW50LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5h
bGxvd0lubGluZUV2ZW50SGFuZGxlcnMobV9zb3VyY2VVUkwuc3RyaW5nKCksIG1fc291cmNlUG9z
aXRpb24ubV9saW5lKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBhdXRvJiBzY3Jp
cHQgPSBkb2N1bWVudC5mcmFtZSgpLT5zY3JpcHQoKTsKQEAgLTE2MCw3ICsxNjAsNyBAQCBKU09i
amVjdCogSlNMYXp5RXZlbnRMaXN0ZW5lcjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgZXhlYwogICAgIEpTT2JqZWN0KiBqc0Z1bmN0aW9uID0gY29uc3RydWN0
RnVuY3Rpb25Ta2lwcGluZ0V2YWxFbmFibGVkQ2hlY2soCiAgICAgICAgIGxleGljYWxHbG9iYWxP
YmplY3QsIGFyZ3MsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIG1fZnVuY3Rpb25OYW1lKSwK
ICAgICAgICAgU291cmNlT3JpZ2luIHsgbV9zb3VyY2VVUkwsIENhY2hlZFNjcmlwdEZldGNoZXI6
OmNyZWF0ZShkb2N1bWVudC5jaGFyc2V0KCkpIH0sCi0gICAgICAgIG1fc291cmNlVVJMLCBtX3Nv
dXJjZVBvc2l0aW9uLCBvdmVycmlkZUxpbmVOdW1iZXIpOworICAgICAgICBtX3NvdXJjZVVSTC5z
dHJpbmcoKSwgbV9zb3VyY2VQb3NpdGlvbiwgb3ZlcnJpZGVMaW5lTnVtYmVyKTsKICAgICBpZiAo
VU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkpKSB7CiAgICAgICAgIHJlcG9ydEN1cnJlbnRFeGNl
cHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgICAgIHNjb3BlLmNsZWFyRXhjZXB0aW9u
KCk7CkBAIC0xOTEsMTIgKzE5MSwxMiBAQCBSZWZQdHI8SlNMYXp5RXZlbnRMaXN0ZW5lcj4gSlNM
YXp5RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKENyZWF0aW9uQXJndW1lbnRzJiYgYXJndQogCiAgICAg
Ly8gRklYTUU6IFdlIHNob3VsZCBiZSBhYmxlIHRvIHByb3ZpZGUgc291cmNlIGluZm9ybWF0aW9u
IGZvciBmcmFtZWxlc3MgZG9jdW1lbnRzIHRvbyAoZS5nLiBmb3IgaW1wb3J0aW5nIG5vZGVzIGZy
b20gWE1MSHR0cFJlcXVlc3QucmVzcG9uc2VYTUwpLgogICAgIFRleHRQb3NpdGlvbiBwb3NpdGlv
bjsKLSAgICBTdHJpbmcgc291cmNlVVJMOworICAgIFVSTCBzb3VyY2VVUkw7CiAgICAgaWYgKEZy
YW1lKiBmcmFtZSA9IGFyZ3VtZW50cy5kb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGlmICgh
ZnJhbWUtPnNjcmlwdCgpLmNhbkV4ZWN1dGVTY3JpcHRzKEFib3V0VG9DcmVhdGVFdmVudExpc3Rl
bmVyKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBwb3NpdGlvbiA9IGZy
YW1lLT5zY3JpcHQoKS5ldmVudEhhbmRsZXJQb3NpdGlvbigpOwotICAgICAgICBzb3VyY2VVUkwg
PSBhcmd1bWVudHMuZG9jdW1lbnQudXJsKCkuc3RyaW5nKCk7CisgICAgICAgIHNvdXJjZVVSTCA9
IGFyZ3VtZW50cy5kb2N1bWVudC51cmwoKTsKICAgICB9CiAKICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBKU0xhenlFdmVudExpc3RlbmVyKFdURk1vdmUoYXJndW1lbnRzKSwgc291cmNlVVJMLCBw
b3NpdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5
RXZlbnRMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRM
aXN0ZW5lci5oCmluZGV4IDE3OWViNDM3OGRjZDI4YTRiNDNiZWU3MGIzM2U1N2JlYTllOGI1MTMu
LjcyODg2OWRkYmRkYjA5MzAyNTc5YWJkZTFlNjRmNjAyMGU3YjIyYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmgKQEAgLTM5LDEzICsz
OSwxMyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5KU0xhenlFdmVudExpc3RlbmVyKCk7CiAK
LSAgICBTdHJpbmcgc291cmNlVVJMKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zb3VyY2VVUkw7
IH0KKyAgICBVUkwgc291cmNlVVJMKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zb3VyY2VVUkw7
IH0KICAgICBUZXh0UG9zaXRpb24gc291cmNlUG9zaXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX3NvdXJjZVBvc2l0aW9uOyB9CiAKIHByaXZhdGU6CiAgICAgc3RydWN0IENyZWF0aW9uQXJn
dW1lbnRzOwogICAgIHN0YXRpYyBSZWZQdHI8SlNMYXp5RXZlbnRMaXN0ZW5lcj4gY3JlYXRlKENy
ZWF0aW9uQXJndW1lbnRzJiYpOwotICAgIEpTTGF6eUV2ZW50TGlzdGVuZXIoQ3JlYXRpb25Bcmd1
bWVudHMmJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGNvbnN0IFRleHRQb3NpdGlvbiYpOwor
ICAgIEpTTGF6eUV2ZW50TGlzdGVuZXIoQ3JlYXRpb25Bcmd1bWVudHMmJiwgY29uc3QgVVJMJiBz
b3VyY2VVUkwsIGNvbnN0IFRleHRQb3NpdGlvbiYpOwogCiAjaWYgQVNTRVJUX0VOQUJMRUQKICAg
ICB2b2lkIGNoZWNrVmFsaWRpdHlGb3JFdmVudFRhcmdldChFdmVudFRhcmdldCYpIGZpbmFsOwpA
QCAtNTcsNyArNTcsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2Z1bmN0aW9uTmFtZTsKICAg
ICBjb25zdCBTdHJpbmcmIG1fZXZlbnRQYXJhbWV0ZXJOYW1lOwogICAgIFN0cmluZyBtX2NvZGU7
Ci0gICAgU3RyaW5nIG1fc291cmNlVVJMOworICAgIFVSTCBtX3NvdXJjZVVSTDsKICAgICBUZXh0
UG9zaXRpb24gbV9zb3VyY2VQb3NpdGlvbjsKICAgICBXZWFrUHRyPENvbnRhaW5lck5vZGU+IG1f
b3JpZ2luYWxOb2RlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAKaW5kZXggY2MyMDEyMTdiZjEwNmQ3Y2FjMTFlY2NmN2YzZTI2M2RmOGFh
YjY3Ni4uZWQzNjQxOTc2ODg3Nzg3ZWFjZmI4YmYwNWI5MmVmZjdlYzI0MmFhYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTEyNSw3
ICsxMjUsNyBAQCBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5X
b3JsZChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyYwogICAgIEpTTG9ja0hvbGRlciBsb2Nr
KHdvcmxkLnZtKCkpOwogCiAgICAgY29uc3QgU291cmNlQ29kZSYganNTb3VyY2VDb2RlID0gc291
cmNlQ29kZS5qc1NvdXJjZUNvZGUoKTsKLSAgICBTdHJpbmcgc291cmNlVVJMID0ganNTb3VyY2VD
b2RlLnByb3ZpZGVyKCktPnVybCgpLnN0cmluZygpOworICAgIGNvbnN0IFVSTCYgc291cmNlVVJM
ID0ganNTb3VyY2VDb2RlLnByb3ZpZGVyKCktPnNvdXJjZU9yaWdpbigpLnVybCgpOwogCiAgICAg
Ly8gZXZhbHVhdGUgY29kZS4gUmV0dXJucyB0aGUgSlMgcmV0dXJuIHZhbHVlIG9yIDAKICAgICAv
LyBpZiB0aGVyZSB3YXMgbm9uZSwgYW4gZXJyb3Igb2NjdXJyZWQgb3IgdGhlIHR5cGUgY291bGRu
J3QgYmUgY29udmVydGVkLgpAQCAtMTM2LDEyICsxMzYsMTEgQEAgVmFsdWVPckV4Y2VwdGlvbiBT
Y3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZUluV29ybGQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYg
c291cmMKICAgICAvLyBTZWUgc21hcnQgd2luZG93Lm9wZW4gcG9saWN5IGZvciB3aGVyZSB0aGlz
IGlzIHVzZWQuCiAgICAgYXV0byYgcHJveHkgPSBqc1dpbmRvd1Byb3h5KHdvcmxkKTsKICAgICBh
dXRvJiBnbG9iYWxPYmplY3QgPSAqcHJveHkud2luZG93KCk7Ci0gICAgY29uc3QgU3RyaW5nKiBz
YXZlZFNvdXJjZVVSTCA9IG1fc291cmNlVVJMOwotICAgIG1fc291cmNlVVJMID0gJnNvdXJjZVVS
TDsKKyAgICBTZXRGb3JTY29wZTxjb25zdCBVUkwqPiBzb3VyY2VVUkxTY29wZShtX3NvdXJjZVVS
TCwgJnNvdXJjZVVSTCk7CiAKICAgICBSZWY8RnJhbWU+IHByb3RlY3RvcihtX2ZyYW1lKTsKIAot
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEV2YWx1YXRlU2NyaXB0KG1fZnJhbWUs
IHNvdXJjZVVSTCwgc291cmNlQ29kZS5zdGFydExpbmUoKSwgc291cmNlQ29kZS5zdGFydENvbHVt
bigpKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVNjcmlwdCht
X2ZyYW1lLCBzb3VyY2VVUkwuc3RyaW5nKCksIHNvdXJjZUNvZGUuc3RhcnRMaW5lKCksIHNvdXJj
ZUNvZGUuc3RhcnRDb2x1bW4oKSk7CiAKICAgICBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4gZXZh
bHVhdGlvbkV4Y2VwdGlvbjsKICAgICBKU1ZhbHVlIHJldHVyblZhbHVlID0gSlNFeGVjU3RhdGU6
OnByb2ZpbGVkRXZhbHVhdGUoJmdsb2JhbE9iamVjdCwgSlNDOjpQcm9maWxpbmdSZWFzb246Ok90
aGVyLCBqc1NvdXJjZUNvZGUsICZwcm94eSwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7CkBAIC0xNTUs
NyArMTU0LDYgQEAgVmFsdWVPckV4Y2VwdGlvbiBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZUlu
V29ybGQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmMKICAgICAgICAgb3B0aW9uYWxEZXRh
aWxzID0gV1RGTW92ZShkZXRhaWxzKTsKICAgICB9CiAKLSAgICBtX3NvdXJjZVVSTCA9IHNhdmVk
U291cmNlVVJMOwogICAgIGlmIChvcHRpb25hbERldGFpbHMpCiAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZCgqb3B0aW9uYWxEZXRhaWxzKTsKIApAQCAtMjM1LDcgKzIzMyw3IEBAIEpTQzo6
SlNWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmIHNvdXJj
ZVVSTCwgSlNNb2R1bGVSZWNvCiAKICAgICBhdXRvJiBwcm94eSA9IGpzV2luZG93UHJveHkod29y
bGQpOwogICAgIGF1dG8mIGxleGljYWxHbG9iYWxPYmplY3QgPSAqcHJveHkud2luZG93KCk7Ci0g
ICAgU2V0Rm9yU2NvcGU8Y29uc3QgU3RyaW5nKj4gc291cmNlVVJMU2NvcGUobV9zb3VyY2VVUkws
ICZzb3VyY2VVUkwuc3RyaW5nKCkpOworICAgIFNldEZvclNjb3BlPGNvbnN0IFVSTCo+IHNvdXJj
ZVVSTFNjb3BlKG1fc291cmNlVVJMLCAmc291cmNlVVJMKTsKIAogICAgIFJlZjxGcmFtZT4gcHJv
dGVjdG9yKG1fZnJhbWUpOwogCkBAIC02NDksMTMgKzY0NywxMiBAQCBWYWx1ZU9yRXhjZXB0aW9u
IFNjcmlwdENvbnRyb2xsZXI6OmNhbGxJbldvcmxkKFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzJiYg
cGFyYW1ldAogICAgIGF1dG8gc291cmNlQ29kZSA9IFNjcmlwdFNvdXJjZUNvZGUgeyBmdW5jdGlv
blN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSwgV1RGTW92ZShwYXJhbWV0ZXJzLnNvdXJjZVVSTCks
IFRleHRQb3NpdGlvbigpLCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSwg
Q2FjaGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKG1fZnJhbWUuZG9jdW1lbnQoKS0+Y2hhcnNldCgp
KSB9OwogICAgIGNvbnN0IGF1dG8mIGpzU291cmNlQ29kZSA9IHNvdXJjZUNvZGUuanNTb3VyY2VD
b2RlKCk7CiAKLSAgICBTdHJpbmcgc291cmNlVVJMID0ganNTb3VyY2VDb2RlLnByb3ZpZGVyKCkt
PnVybCgpLnN0cmluZygpOwotICAgIGNvbnN0IFN0cmluZyogc2F2ZWRTb3VyY2VVUkwgPSBtX3Nv
dXJjZVVSTDsKLSAgICBtX3NvdXJjZVVSTCA9ICZzb3VyY2VVUkw7CisgICAgY29uc3QgVVJMJiBz
b3VyY2VVUkwgPSBqc1NvdXJjZUNvZGUucHJvdmlkZXIoKS0+c291cmNlT3JpZ2luKCkudXJsKCk7
CisgICAgU2V0Rm9yU2NvcGU8Y29uc3QgVVJMKj4gc291cmNlVVJMU2NvcGUobV9zb3VyY2VVUkws
ICZzb3VyY2VVUkwpOwogCiAgICAgUmVmPEZyYW1lPiBwcm90ZWN0b3IobV9mcmFtZSk7CiAKLSAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVNjcmlwdChtX2ZyYW1lLCBz
b3VyY2VVUkwsIHNvdXJjZUNvZGUuc3RhcnRMaW5lKCksIHNvdXJjZUNvZGUuc3RhcnRDb2x1bW4o
KSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRXZhbHVhdGVTY3JpcHQobV9m
cmFtZSwgc291cmNlVVJMLnN0cmluZygpLCBzb3VyY2VDb2RlLnN0YXJ0TGluZSgpLCBzb3VyY2VD
b2RlLnN0YXJ0Q29sdW1uKCkpOwogCiAgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IGV2YWx1
YXRpb25FeGNlcHRpb247CiAgICAgT3B0aW9uYWw8RXhjZXB0aW9uRGV0YWlscz4gb3B0aW9uYWxE
ZXRhaWxzOwpAQCAtNjkwLDggKzY4Nyw2IEBAIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29udHJv
bGxlcjo6Y2FsbEluV29ybGQoUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0CiAgICAg
ICAgIG9wdGlvbmFsRGV0YWlscyA9IFdURk1vdmUoZGV0YWlscyk7CiAgICAgfQogCi0gICAgbV9z
b3VyY2VVUkwgPSBzYXZlZFNvdXJjZVVSTDsKLQogICAgIGlmIChvcHRpb25hbERldGFpbHMpCiAg
ICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCgqb3B0aW9uYWxEZXRhaWxzKTsKICAgICByZXR1
cm4gcmV0dXJuVmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250
cm9sbGVyLmgKaW5kZXggMjZkOWZjNjY2M2RkYTQwOWFkMDZiZTViMTM5N2UyZmY0YzgzZjVjOC4u
YzVhNmNjMDNkZTg5Njg5Y2FjZWMzYTFjZmVlYWJmMmQ2ZDNlOTc3YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaApAQCAtMTM4LDcgKzEzOCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldFBhdXNlZChib29sIGIpIHsgbV9wYXVzZWQgPSBiOyB9CiAg
ICAgYm9vbCBpc1BhdXNlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcGF1c2VkOyB9CiAKLSAgICBjb25z
dCBTdHJpbmcqIHNvdXJjZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlVVJMOyB9IC8vIDAg
aWYgd2UgYXJlIG5vdCBldmFsdWF0aW5nIGFueSBzY3JpcHQKKyAgICBjb25zdCBVUkwqIHNvdXJj
ZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlVVJMOyB9IC8vIG51bGxwdHIgaWYgd2UgYXJl
IG5vdCBldmFsdWF0aW5nIGFueSBzY3JpcHQKIAogICAgIHZvaWQgdXBkYXRlRG9jdW1lbnQoKTsK
IApAQCAtMTg4LDcgKzE4OCw3IEBAIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgSlNXaW5k
b3dQcm94eSYganNXaW5kb3dQcm94eShET01XcmFwcGVyV29ybGQmKTsKIAogICAgIEZyYW1lJiBt
X2ZyYW1lOwotICAgIGNvbnN0IFN0cmluZyogbV9zb3VyY2VVUkw7CisgICAgY29uc3QgVVJMKiBt
X3NvdXJjZVVSTCB7IG51bGxwdHIgfTsKIAogICAgIGJvb2wgbV9wYXVzZWQ7CiAgICAgYm9vbCBt
X3dpbGxSZXBsYWNlV2l0aFJlc3VsdE9mRXhlY3V0aW5nSmF2YXNjcmlwdFVSTCB7IGZhbHNlIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNw
cAppbmRleCBjODY2NGIxMmM1M2JjMzI3YjVjODhhZjU2NzYyN2NmODA0ZjE2NTRjLi5hYTViODBi
NTg2Yjc5ZTBlNTc1MDFjZDUxMDc4ZGYyNWE2MjVlNWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHAKQEAgLTY4LDcgKzY4LDcgQEAg
c3RhdGljIGJvb2wgaXNSb290TW9kdWxlKEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSkK
ICAgICByZXR1cm4gaW1wb3J0ZXJNb2R1bGVLZXkuaXNTeW1ib2woKSB8fCBpbXBvcnRlck1vZHVs
ZUtleS5pc1VuZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgRXhwZWN0ZWQ8VVJMLCBBU0NJSUxpdGVy
YWw+IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJp
bmcmIHNwZWNpZmllciwgY29uc3QgVVJMJiBiYXNlVVJMKQorc3RhdGljIEV4cGVjdGVkPFVSTCwg
U3RyaW5nPiByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
U3RyaW5nJiBzcGVjaWZpZXIsIGNvbnN0IFVSTCYgYmFzZVVSTCkKIHsKICAgICAvLyBodHRwczov
L2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjcmVzb2x2ZS1h
LW1vZHVsZS1zcGVjaWZpZXIKIApAQCAtNzcsMTEgKzc3LDExIEBAIHN0YXRpYyBFeHBlY3RlZDxV
UkwsIEFTQ0lJTGl0ZXJhbD4gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihEb2N1bWVudCYgZG9jdW1l
bnQsIGNvCiAgICAgICAgIHJldHVybiBhYnNvbHV0ZVVSTDsKIAogICAgIGlmICghc3BlY2lmaWVy
LnN0YXJ0c1dpdGgoJy8nKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4vIikgJiYgIXNwZWNp
Zmllci5zdGFydHNXaXRoKCIuLi8iKSkKLSAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKCJN
b2R1bGUgc3BlY2lmaWVyIGRvZXMgbm90IHN0YXJ0IHdpdGggXCIvXCIsIFwiLi9cIiwgb3IgXCIu
Li9cIi4iX3MpOworICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiTW9k
dWxlIHNwZWNpZmllciwgJyJfcywgc3BlY2lmaWVyLCAiJyBkb2VzIG5vdCBzdGFydCB3aXRoIFwi
L1wiLCBcIi4vXCIsIG9yIFwiLi4vXCIuIFJlZmVyZW5jZWQgZnJvbSAiX3MsIGJhc2VVUkwuc3Ry
aW5nKCkpKTsKIAogICAgIGF1dG8gcmVzdWx0ID0gZG9jdW1lbnQuY29tcGxldGVVUkwoc3BlY2lm
aWVyLCBiYXNlVVJMKTsKICAgICBpZiAoIXJlc3VsdC5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZCgiTW9kdWxlIG5hbWUgZG9lcyBub3QgcmVzb2x2ZSB0byBhIHZhbGlk
IFVSTC4iX3MpOworICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiTW9k
dWxlIG5hbWUsICciX3MsIHJlc3VsdC5zdHJpbmcoKSwgIicgZG9lcyBub3QgcmVzb2x2ZSB0byBh
IHZhbGlkIFVSTC4iX3MpKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC0yMjQsNyArMjI0
LDcgQEAgSlNDOjpKU1ZhbHVlIFNjcmlwdE1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlNDOjpKU0ds
b2JhbE9iamVjdCoganNHbG9iYWxPYmplY3QsIEoKICAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5l
ZCgpOwogfQogCi1zdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogcmVqZWN0UHJvbWlzZShK
U0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBFeGNlcHRpb25Db2RlIGVjLCBBU0NJSUxp
dGVyYWwgbWVzc2FnZSkKK3N0YXRpYyBKU0M6OkpTSW50ZXJuYWxQcm9taXNlKiByZWplY3RQcm9t
aXNlKEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIEV4Y2VwdGlvbkNvZGUgZWMsIFN0
cmluZyBtZXNzYWdlKQogewogICAgIGF1dG8qIGpzUHJvbWlzZSA9IEpTQzo6SlNJbnRlcm5hbFBy
b21pc2U6OmNyZWF0ZShnbG9iYWxPYmplY3Qudm0oKSwgZ2xvYmFsT2JqZWN0LmludGVybmFsUHJv
bWlzZVN0cnVjdHVyZSgpKTsKICAgICBSRUxFQVNFX0FTU0VSVChqc1Byb21pc2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oCmluZGV4IGZjYTU3NGNm
ZGFhYzQ5YmFkZjRkODI5ZjE5MjAwMjExMTQzNzE5OGIuLmM3MDQ2MjZmYjczM2RiNDcyYmRhNTAy
MzYyNDFhNmU3NDBlMjc4MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdFNvdXJjZUNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRTb3VyY2VDb2RlLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgU2NyaXB0U291cmNlQ29kZSB7CiBwdWJsaWM6CiAgICAgU2NyaXB0U291cmNlQ29kZShjb25z
dCBTdHJpbmcmIHNvdXJjZSwgVVJMJiYgdXJsID0gVVJMKCksIGNvbnN0IFRleHRQb3NpdGlvbiYg
c3RhcnRQb3NpdGlvbiA9IFRleHRQb3NpdGlvbigpLCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNl
VHlwZSBzb3VyY2VUeXBlID0gSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0p
Ci0gICAgICAgIDogbV9wcm92aWRlcihKU0M6OlN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUo
c291cmNlLCBKU0M6OlNvdXJjZU9yaWdpbiB7IHVybC5zdHJpbmcoKSB9LCBXVEZNb3ZlKHVybCks
IHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpKQorICAgICAgICA6IG1fcHJvdmlkZXIoSlNDOjpT
dHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgSlNDOjpTb3VyY2VPcmlnaW4geyB1
cmwgfSwgdXJsLnN0cmluZygpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSkKICAgICAgICAg
LCBtX2NvZGUobV9wcm92aWRlci5jb3B5UmVmKCksIHN0YXJ0UG9zaXRpb24ubV9saW5lLm9uZUJh
c2VkSW50KCksIHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSkKICAgICB7CiAg
ICAgfQpAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgU2NyaXB0U291cmNl
Q29kZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgVVJMJiYgdXJsLCBjb25zdCBUZXh0UG9zaXRpb24m
IHN0YXJ0UG9zaXRpb24sIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUs
IFJlZjxDYWNoZWRTY3JpcHRGZXRjaGVyPiYmIHNjcmlwdEZldGNoZXIpCi0gICAgICAgIDogbV9w
cm92aWRlcihKU0M6OlN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCBKU0M6OlNv
dXJjZU9yaWdpbiB7IHVybC5zdHJpbmcoKSwgV1RGTW92ZShzY3JpcHRGZXRjaGVyKSB9LCBXVEZN
b3ZlKHVybCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpKQorICAgICAgICA6IG1fcHJvdmlk
ZXIoSlNDOjpTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgSlNDOjpTb3VyY2VP
cmlnaW4geyB1cmwsIFdURk1vdmUoc2NyaXB0RmV0Y2hlcikgfSwgdXJsLnN0cmluZygpLCBzdGFy
dFBvc2l0aW9uLCBzb3VyY2VUeXBlKSkKICAgICAgICAgLCBtX2NvZGUobV9wcm92aWRlci5jb3B5
UmVmKCksIHN0YXJ0UG9zaXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCksIHN0YXJ0UG9zaXRpb24u
bV9jb2x1bW4ub25lQmFzZWRJbnQoKSkKICAgICB7CiAgICAgfQpAQCAtNzQsNyArNzQsNyBAQCBw
dWJsaWM6CiAKICAgICBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCgpIGNvbnN0IHsgcmV0dXJu
IG1fY2FjaGVkU2NyaXB0LmdldCgpOyB9CiAKLSAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvdmlkZXItPnVybCgpOyB9CisgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7
IHJldHVybiBtX3Byb3ZpZGVyLT5zb3VyY2VPcmlnaW4oKS51cmwoKTsgfQogICAgIAogcHJpdmF0
ZToKICAgICBSZWY8SlNDOjpTb3VyY2VQcm92aWRlcj4gbV9wcm92aWRlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViU2NyaXB0RGVidWdnZXIubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlNjcmlwdERlYnVnZ2VyLm1tCmluZGV4
IDFhNTg4NDI3ZTI5ZDA0YjQwZTlmYjIzZDUzY2NkNGM4NzIzNWQxNWYuLmJkOWIxMTg0Yzg0NTRi
NDczZTQzNzRjMjI4YjRiZDY3YTlhM2Y5N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViU2NyaXB0RGVidWdnZXIubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJTY3JpcHREZWJ1Z2dlci5tbQpAQCAtNzksNyArNzksNyBAQCB2
b2lkIFdlYlNjcmlwdERlYnVnZ2VyOjpzb3VyY2VQYXJzZWQoSlNDOjpKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgSgogICAgIG1fY2FsbGluZ0RlbGVnYXRlID0gdHJ1ZTsKIAog
ICAgIE5TU3RyaW5nICpuc1NvdXJjZSA9IHRvTlNTdHJpbmcoc291cmNlUHJvdmlkZXIpOwotICAg
IE5TVVJMICpuc1VSTCA9IHNvdXJjZVByb3ZpZGVyLT51cmwoKTsKKyAgICBOU1VSTCAqbnNVUkwg
PSBzb3VyY2VQcm92aWRlci0+c291cmNlT3JpZ2luKCkudXJsKCk7CiAgICAgaW50IGZpcnN0TGlu
ZSA9IHNvdXJjZVByb3ZpZGVyLT5zdGFydFBvc2l0aW9uKCkubV9saW5lLm9uZUJhc2VkSW50KCk7
CiAKICAgICBKU0M6OlZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MGRjZmI4NzdhZmI3NGQ4OWMwYzlmOWYzMDMyZmU5MTQxZmJkMWM2Zi4uNjUzNzU2NGUwNTdmY2Yw
NTUyMTlkM2U2ZjFmODQ5OGI1MGYyNDI4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA3
LTExICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorICAgICAgICBDbGVh
biB1cCBTb3VyY2VQcm92aWRlciBhbmQgYWRkIGNhbGxlciByZWxhdGl2ZSBsb2FkIHNjcmlwdCB0
byBqc2MuY3BwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTQyMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJJ2xsIHVwZGF0ZSB0aGUgZmFpbGluZyB0ZXN0cyBoZXJlIG9uY2UgSSBmaWd1cmUgb3V0IGhv
dyB0byBoYXZlCisgICAgICAgIHRlc3QgcmVzdWx0cyBoYW5kbGUgZmlsZSBwYXRocy4gKE9PUFMh
KQorCisKIDIwMjAtMDctMDkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI1OTg0MCk6IFByZXNzaW5nIEVzYyBvciDijJgrIi4i
IGRvZXMgbm90IGRpc21pc3MgdGltZSBwaWNrZXIgb24gaU9TCmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDgwZWYzNTIwOGE0YzVmMjlmNDgz
YzgwODU2ODRmYTVkZjAzYTQ2MjQuLjUwMTcyMDY4MDUxNTI2MjNiNmYxMmUyNzc5MzkzZWNiMjY2
MTUzM2QgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTE4IEBACisyMDIwLTA3LTExICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9t
aWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIFNvdXJjZVByb3ZpZGVyIGFuZCBh
ZGQgY2FsbGVyIHJlbGF0aXZlIGxvYWQgc2NyaXB0IHRvIGpzYy5jcHAKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDIwNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIGFyZSB0d28gbWFpbiBjaGFu
Z2VzIGhlcmUuIFRoZSBmaXJzdCBpcyBjb252ZXJ0aW5nIG1vc3QKKyAgICAgICAgaW52b2NhdGlv
bnMgb2YgbG9hZCB0byBhbHNvIHBhc3MgImNhbGxlciByZWxhdGl2ZSIgYXMgdGhlIHNlY29uZAor
ICAgICAgICBwYXJhbWV0ZXIuIFRoaXMgbGV0cyB0aG9zZSB0ZXN0cyBiZSBydW4gZnJvbSBhbnkg
d29ya2luZyBkaXJlY3RvcnkKKyAgICAgICAgcmF0aGVyIHRoYW4gb25seSB0aGUgc2FtZSBkaXJl
Y3RvcnkgYXMgdGhlIHRlc3Qgc2NyaXB0LgorCisgICAgICAgIFRoZSBzZWNvbmQgY2hhbmdlIGlz
IHRvIHByb2hpYml0ICJiYXJlLW5hbWUiIHNwZWNpZmllcnMgaW4gb3VyCisgICAgICAgIENMSSdz
IG1vZHVsZSBsb2FkZXIuIFRoaXMgbWF0Y2hlcyBwcmV0dHkgbXVjaCBhbGwgb3RoZXIgbW9kdWxl
CisgICAgICAgIGxvYWRlcnMsIGluY2x1ZGluZyBXZWJDb3JlIGFuZCBvdXIgT2JqLUMgQVBJLgor
CisgICAgICAgICogbW9kdWxlcy9hbGlhc2VkLW5hbWVzLmpzOgorICAgICAgICAqIG1vZHVsZXMv
YWxpYXNpbmcvZHJpbmsuanM6CisgICAgICAgICogbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1ub3Qt
bWFrZS1hbWJpZ3VvdXMuanM6CisgICAgICAgICogbW9kdWxlcy9kZWZhdWx0LWVycm9yL21haW4u
anM6CisgICAgICAgICogbW9kdWxlcy9leGVjdXRpb24tb3JkZXItY3ljbGljLzUuanM6CisgICAg
ICAgICogbW9kdWxlcy9leGVjdXRpb24tb3JkZXItZGFnLzUuanM6CisgICAgICAgICogbW9kdWxl
cy9leGVjdXRpb24tb3JkZXItdHJlZS81LmpzOgorICAgICAgICAqIG1vZHVsZXMvaW5kaXJlY3Qt
ZXhwb3J0LWVycm9yL2luZGlyZWN0LWV4cG9ydC1kZWZhdWx0LTIuanM6CisgICAgICAgICogbW9k
dWxlcy9uYW1lc3BhY2UtYW1iaWd1b3VzL2FtYmlndW91cy0yLmpzOgorICAgICAgICAqIG1vZHVs
ZXMvbmFtZXNwYWNlLWFtYmlndW91cy9hbWJpZ3VvdXMuanM6CisgICAgICAgICogbW9kdWxlcy9u
YW1lc3BhY2UtcmUtZXhwb3J0LmpzOgorICAgICAgICAqIG1vZHVsZXMvdW5jYWNoZWFibGUtd2hl
bi1zZWUtc3Rhci5qczoKKyAgICAgICAgKiBzdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRp
b24tc2V0dGluZy0yLmpzOgorICAgICAgICAqIHN0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJh
dGlvbi1zZXR0aW5nLTMuanM6CisgICAgICAgICogc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xh
cmF0aW9uLXNldHRpbmctNC5qczoKKyAgICAgICAgKiBzdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVj
bGFyYXRpb24tc2V0dGluZy01LmpzOgorICAgICAgICAqIHN0cmVzcy9nbG9iYWwtY29uc3QtcmVk
ZWNsYXJhdGlvbi1zZXR0aW5nLmpzOgorICAgICAgICAqIHN0cmVzcy9nbG9iYWwtbGV4aWNhbC1y
ZWRlY2xhcmUtdmFyaWFibGUuanM6CisgICAgICAgICogc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXJl
ZGVmaW5lLWNvbnN0LmpzOgorICAgICAgICAqIHN0cmVzcy9nbG9iYWwtbGV4aWNhbC12YXJpYWJs
ZS10ZHouanM6CisgICAgICAgICogc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXVucmVz
b2x2ZWQtcHJvcGVydHkuanM6CisgICAgICAgICogc3RyZXNzL2dsb2JhbC1wcm9wZXJ0eS1pbnRv
LXZhcmlhYmxlLWdldC1mcm9tLXNjb3BlLmpzOgorICAgICAgICAqIHN0cmVzcy9pbXBvcnQtd2l0
aC1lbXB0eS1zdHJpbmcuanM6CisgICAgICAgICogc3RyZXNzL2pzb25wLWxpdGVyYWwtcGFyc2Vy
LXNlbWljb2xvbi1pcy1ub3QtYXNzaWdubWVudC5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfYWRk
LmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9iaXRhbmQuanM6CisgICAgICAgICogc3RyZXNzL29w
X2JpdG9yLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9iaXR4b3IuanM6CisgICAgICAgICogc3Ry
ZXNzL29wX2Rpdi1Db25zdFZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfZGl2LVZhckNvbnN0
LmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9kaXYtVmFyVmFyLmpzOgorICAgICAgICAqIHN0cmVz
cy9vcF9sc2hpZnQtQ29uc3RWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX2xzaGlmdC1WYXJD
b25zdC5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfbHNoaWZ0LVZhclZhci5qczoKKyAgICAgICAg
KiBzdHJlc3Mvb3BfbW9kLUNvbnN0VmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9tb2QtVmFy
Q29uc3QuanM6CisgICAgICAgICogc3RyZXNzL29wX21vZC1WYXJWYXIuanM6CisgICAgICAgICog
c3RyZXNzL29wX211bC1Db25zdFZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfbXVsLVZhckNv
bnN0LmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9tdWwtVmFyVmFyLmpzOgorICAgICAgICAqIHN0
cmVzcy9vcF9uZWdhdGUuanM6CisgICAgICAgICogc3RyZXNzL29wX3Bvc3RkZWMuanM6CisgICAg
ICAgICogc3RyZXNzL29wX3Bvc3RpbmMuanM6CisgICAgICAgICogc3RyZXNzL29wX3ByZWRlYy5q
czoKKyAgICAgICAgKiBzdHJlc3Mvb3BfcHJlaW5jLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9y
c2hpZnQtQ29uc3RWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX3JzaGlmdC1WYXJDb25zdC5q
czoKKyAgICAgICAgKiBzdHJlc3Mvb3BfcnNoaWZ0LVZhclZhci5qczoKKyAgICAgICAgKiBzdHJl
c3Mvb3Bfc3ViLUNvbnN0VmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9zdWItVmFyQ29uc3Qu
anM6CisgICAgICAgICogc3RyZXNzL29wX3N1Yi1WYXJWYXIuanM6CisgICAgICAgICogc3RyZXNz
L29wX3Vyc2hpZnQtQ29uc3RWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX3Vyc2hpZnQtVmFy
Q29uc3QuanM6CisgICAgICAgICogc3RyZXNzL29wX3Vyc2hpZnQtVmFyVmFyLmpzOgorICAgICAg
ICAqIHN0cmVzcy9yZWdyZXNzLTE1OTc3OS0xLmpzOgorICAgICAgICAobWFrZVVzZVJlZ3Jlc3Np
b25UZXN0KToKKyAgICAgICAgKiBzdHJlc3MvcmVncmVzcy0xNTk3NzktMi5qczoKKyAgICAgICAg
KG1ha2VVc2VSZWdyZXNzaW9uVGVzdCk6CisgICAgICAgICogc3RyZXNzL3Jlc291cmNlcy90eXBl
ZGFycmF5LWNvbnN0cnVjdG9yLWhlbHBlci1mdW5jdGlvbnMuanM6CisgICAgICAgICogc3RyZXNz
L3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qczoKKyAgICAgICAg
KiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItYW5vbnltb3VzLWZ1bmN0aW9uLmpzOgorICAgICAg
ICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci1iYXNpYy5qczoKKyAgICAgICAgKiBzdHJlc3Mv
c2FtcGxpbmctcHJvZmlsZXItYm91bmQtZnVuY3Rpb24tbmFtZS5qczoKKyAgICAgICAgKiBzdHJl
c3Mvc2FtcGxpbmctcHJvZmlsZXItZGVlcC1zdGFjay5qczoKKyAgICAgICAgKiBzdHJlc3Mvc2Ft
cGxpbmctcHJvZmlsZXItZGlzcGxheS1uYW1lLmpzOgorICAgICAgICAqIHN0cmVzcy9zYW1wbGlu
Zy1wcm9maWxlci1pbnRlcm5hbC1mdW5jdGlvbi1uYW1lLmpzOgorICAgICAgICAqIHN0cmVzcy9z
YW1wbGluZy1wcm9maWxlci1taWNyb3Rhc2tzLmpzOgorICAgICAgICAqIHN0cmVzcy9zYW1wbGlu
Zy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qczoKKyAgICAgICAgKiBzdHJlc3Mvc2FtcGxp
bmctcHJvZmlsZXItd2FzbS5qczoKKyAgICAgICAgKiBzdHJlc3Mvc2hhZG93LWNoaWNrZW4tZGlz
YWJsZWQuanM6CisgICAgICAgICogc3RyZXNzL3NoYWRvdy1jaGlja2VuLWVuYWJsZWQuanM6Cisg
ICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktY29uc3RydWN0b3IuanM6CisgICAgICAgICogc3Ry
ZXNzL3R5cGVkYXJyYXktY29weVdpdGhpbi5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJh
eS1ldmVyeS5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1maWxsLmpzOgorICAgICAg
ICAqIHN0cmVzcy90eXBlZGFycmF5LWZpbHRlci5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRh
cnJheS1maW5kLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWZpbmRJbmRleC5qczoK
KyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1mb3JFYWNoLmpzOgorICAgICAgICAqIHN0cmVz
cy90eXBlZGFycmF5LWZyb20uanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktaW5jbHVk
ZXMuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktaW5kZXhPZi5qczoKKyAgICAgICAg
KiBzdHJlc3MvdHlwZWRhcnJheS1sYXN0SW5kZXhPZi5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlw
ZWRhcnJheS1tYXAuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktb2YuanM6CisgICAg
ICAgICogc3RyZXNzL3R5cGVkYXJyYXktcmVkdWNlLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBl
ZGFycmF5LXJlZHVjZVJpZ2h0LmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LXNldC5q
czoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1zbGljZS5qczoKKyAgICAgICAgKiBzdHJl
c3MvdHlwZWRhcnJheS1zb21lLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LXNvcnQu
anM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktc3ViYXJyYXkuanM6CisgICAgICAgICog
d2FzbS9CdWlsZGVyLmpzOgorICAgICAgICAqIHdhc20vQnVpbGRlcl9XZWJBc3NlbWJseUJpbmFy
eS5qczoKKyAgICAgICAgKiB3YXNtL0xvd0xldmVsQmluYXJ5LmpzOgorICAgICAgICAqIHdhc20v
UkVBRE1FLm1kOgorICAgICAgICAqIHdhc20vV0FTTS5qczoKKyAgICAgICAgKiB3YXNtL3JlZ3Jl
c3Mvc2VsZWN0ZjY0LmpzOgorCiAyMDIwLTA3LTA5ICBDYWlvIExpbWEgIDx0aWNhaW9saW1hQGdt
YWlsLmNvbT4KIAogICAgICAgICBbSlNDXVszMi1iaXRzXSBUZXN0IGdhcmRlbmluZyBKdWx5IDl0
aApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb2R1bGVzL2FsaWFzZWQtbmFtZXMuanMgYi9KU1Rlc3Rz
L21vZHVsZXMvYWxpYXNlZC1uYW1lcy5qcwppbmRleCA0Yzg3OTY1NDk1YzAwYzY0OTYzMjk1ZWRh
NGQ3OWRkYzk1NTdiNDM2Li43NzdmNzQyNWI5Mzc2OTZhNzIyOGVhNDk1Yzg0ZTlmZWM0Y2RjNDE0
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL21vZHVsZXMvYWxpYXNlZC1uYW1lcy5qcworKysgYi9KU1Rl
c3RzL21vZHVsZXMvYWxpYXNlZC1uYW1lcy5qcwpAQCAtMSw0ICsxLDQgQEAKLWltcG9ydCB7IGEs
IGIsIGNoYW5nZSB9IGZyb20gJ2FsaWFzZWQtbmFtZXMvbWFpbi5qcycKK2ltcG9ydCB7IGEsIGIs
IGNoYW5nZSB9IGZyb20gJy4vYWxpYXNlZC1uYW1lcy9tYWluLmpzJwogaW1wb3J0IHsgc2hvdWxk
QmUsIHNob3VsZFRocm93IH0gZnJvbSAiLi9yZXNvdXJjZXMvYXNzZXJ0LmpzIjsKIAogc2hvdWxk
QmUoYSwgNDIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb2R1bGVzL2FsaWFzaW5nL2RyaW5rLmpz
IGIvSlNUZXN0cy9tb2R1bGVzL2FsaWFzaW5nL2RyaW5rLmpzCmluZGV4IDFkYTg0YTBmOGYwYWFh
MGE0OTNjOWFiMTRlNjM4NGRlZmYzMWM2NjMuLmZjNTJlNDhlYWQxMWJiNmRmODVjNjVkYTJlZWIy
MzIwMGVjZjEwMmIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvbW9kdWxlcy9hbGlhc2luZy9kcmluay5q
cworKysgYi9KU1Rlc3RzL21vZHVsZXMvYWxpYXNpbmcvZHJpbmsuanMKQEAgLTMsNSArMyw1IEBA
IGV4cG9ydCBmdW5jdGlvbiBjaGFuZ2VDb2NvYSh2YWx1ZSkgewogICAgIENvY29hID0gdmFsdWU7
CiB9CiAKLWltcG9ydCB7IENhcHB1Y2Npbm8gYXMgU3ViRHJpbmssIGNoYW5nZUNhcHB1Y2Npbm8g
fSBmcm9tICJkcmluay0yLmpzIgoraW1wb3J0IHsgQ2FwcHVjY2lubyBhcyBTdWJEcmluaywgY2hh
bmdlQ2FwcHVjY2lubyB9IGZyb20gIi4vZHJpbmstMi5qcyIKIGV4cG9ydCB7IFN1YkRyaW5rLCBj
aGFuZ2VDYXBwdWNjaW5vIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvbW9kdWxlcy9jYWNoaW5nLXNo
b3VsZC1ub3QtbWFrZS1hbWJpZ3VvdXMuanMgYi9KU1Rlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91
bGQtbm90LW1ha2UtYW1iaWd1b3VzLmpzCmluZGV4IDQyNTEzZWQxNzBiM2Q3MTExMzk0YmIzNDkz
ZGI4YTY0ZDVjMmExZTAuLjU0YTQwODg5ZGIyYjE1ZWMyZGI1YmM1YTYwNWVmZTNkNTAxYjg5OTIg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1ub3QtbWFrZS1hbWJp
Z3VvdXMuanMKKysrIGIvSlNUZXN0cy9tb2R1bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1tYWtlLWFt
YmlndW91cy5qcwpAQCAtMiw0ICsyLDQgQEAKIC8vICAgICAgICAgICAgICAgIHwgICAgICAgICAg
ICAgICAgfAogLy8gICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB2CiAvLyAgIEAtPiAo
QSkgKi0tLS0rLS0tLT4gKEIpIC0tLT4gW0NdCi1pbXBvcnQgeyBBIH0gZnJvbSAiY2FjaGluZy1z
aG91bGQtbm90LW1ha2UtYW1iaWd1b3VzL21haW4uanMiCitpbXBvcnQgeyBBIH0gZnJvbSAiLi9j
YWNoaW5nLXNob3VsZC1ub3QtbWFrZS1hbWJpZ3VvdXMvbWFpbi5qcyIKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvbW9kdWxlcy9kZWZhdWx0LWVycm9yL21haW4uanMgYi9KU1Rlc3RzL21vZHVsZXMvZGVm
YXVsdC1lcnJvci9tYWluLmpzCmluZGV4IGRhYWIxMzU5MTgzNjU1ODI2ODhmNTg4YzFhOWU1M2Ix
NzU2NGI0MjYuLjVmYmU0NDRjZTM5NDFlMTRkYmU5NDZmNjAxNDlkMGFkMmE4NmMxZjIgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvbW9kdWxlcy9kZWZhdWx0LWVycm9yL21haW4uanMKKysrIGIvSlNUZXN0
cy9tb2R1bGVzL2RlZmF1bHQtZXJyb3IvbWFpbi5qcwpAQCAtMSArMSBAQAotaW1wb3J0ICJBIjsK
K2ltcG9ydCAiLi9BIjsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbW9kdWxlcy9leGVjdXRpb24tb3Jk
ZXItY3ljbGljLzUuanMgYi9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9uLW9yZGVyLWN5Y2xpYy81
LmpzCmluZGV4IGExZGVlZjkyZDEyZjVhYmM2ODZhMzE4YzJiYWE0OThiZjY0ODFlOGYuLmIyZDQ1
ODA1ZTk3ZjQ1YzIxY2ZkNTBhOWJmZmFmZmE0MzcyZDcxMGIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
bW9kdWxlcy9leGVjdXRpb24tb3JkZXItY3ljbGljLzUuanMKKysrIGIvSlNUZXN0cy9tb2R1bGVz
L2V4ZWN1dGlvbi1vcmRlci1jeWNsaWMvNS5qcwpAQCAtMSw1ICsxLDUgQEAKLWltcG9ydCAiMy5q
cyIKLWltcG9ydCAiNC5qcyIKK2ltcG9ydCAiLi8zLmpzIgoraW1wb3J0ICIuLzQuanMiCiAKIHZh
ciBnbG9iYWwgPSAoRnVuY3Rpb24oInJldHVybiB0aGlzIikpKCk7CiBpZiAoZ2xvYmFsLmNvdW50
ICE9PSA0KQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb2R1bGVzL2V4ZWN1dGlvbi1vcmRlci1kYWcv
NS5qcyBiL0pTVGVzdHMvbW9kdWxlcy9leGVjdXRpb24tb3JkZXItZGFnLzUuanMKaW5kZXggYTMz
YjYzY2Y1NGNhN2U1OTNjM2JiNzFhMDY5N2Y2Yjg1OTYzYmVjNS4uN2QxMTAyNTBlYjkyM2Y1MzYz
YWJkZTY5Zjk0MTNhZjhhYjNjMDYzYyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9tb2R1bGVzL2V4ZWN1
dGlvbi1vcmRlci1kYWcvNS5qcworKysgYi9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9uLW9yZGVy
LWRhZy81LmpzCkBAIC0xLDUgKzEsNSBAQAotaW1wb3J0ICI0LmpzIgotaW1wb3J0ICIxLmpzIgor
aW1wb3J0ICIuLzQuanMiCitpbXBvcnQgIi4vMS5qcyIKIAogdmFyIGdsb2JhbCA9IChGdW5jdGlv
bigicmV0dXJuIHRoaXMiKSkoKTsKIGlmIChnbG9iYWwuY291bnQgIT09IDQpCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9uLW9yZGVyLXRyZWUvNS5qcyBiL0pTVGVzdHMvbW9k
dWxlcy9leGVjdXRpb24tb3JkZXItdHJlZS81LmpzCmluZGV4IGExZGVlZjkyZDEyZjVhYmM2ODZh
MzE4YzJiYWE0OThiZjY0ODFlOGYuLmIyZDQ1ODA1ZTk3ZjQ1YzIxY2ZkNTBhOWJmZmFmZmE0Mzcy
ZDcxMGIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvbW9kdWxlcy9leGVjdXRpb24tb3JkZXItdHJlZS81
LmpzCisrKyBiL0pTVGVzdHMvbW9kdWxlcy9leGVjdXRpb24tb3JkZXItdHJlZS81LmpzCkBAIC0x
LDUgKzEsNSBAQAotaW1wb3J0ICIzLmpzIgotaW1wb3J0ICI0LmpzIgoraW1wb3J0ICIuLzMuanMi
CitpbXBvcnQgIi4vNC5qcyIKIAogdmFyIGdsb2JhbCA9IChGdW5jdGlvbigicmV0dXJuIHRoaXMi
KSkoKTsKIGlmIChnbG9iYWwuY291bnQgIT09IDQpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21vZHVs
ZXMvaW5kaXJlY3QtZXhwb3J0LWVycm9yL2luZGlyZWN0LWV4cG9ydC1kZWZhdWx0LTIuanMgYi9K
U1Rlc3RzL21vZHVsZXMvaW5kaXJlY3QtZXhwb3J0LWVycm9yL2luZGlyZWN0LWV4cG9ydC1kZWZh
dWx0LTIuanMKaW5kZXggYzE3N2IxNDM5NDUwY2QyYWYzMmNlMjlkYjZmN2M3N2ZlZDBjNjVmNi4u
ZDVmNTE4Mjc3ZDA1NmJjYTIxNzY5OGRiMjJkNmNiMTA0Y2Q5MzlmMCAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9tb2R1bGVzL2luZGlyZWN0LWV4cG9ydC1lcnJvci9pbmRpcmVjdC1leHBvcnQtZGVmYXVs
dC0yLmpzCisrKyBiL0pTVGVzdHMvbW9kdWxlcy9pbmRpcmVjdC1leHBvcnQtZXJyb3IvaW5kaXJl
Y3QtZXhwb3J0LWRlZmF1bHQtMi5qcwpAQCAtMSArMSBAQAotZXhwb3J0ICogZnJvbSAiaW5kaXJl
Y3QtZXhwb3J0LWRlZmF1bHQtMy5qcyIKK2V4cG9ydCAqIGZyb20gIi4vaW5kaXJlY3QtZXhwb3J0
LWRlZmF1bHQtMy5qcyIKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbW9kdWxlcy9uYW1lc3BhY2UtYW1i
aWd1b3VzL2FtYmlndW91cy0yLmpzIGIvSlNUZXN0cy9tb2R1bGVzL25hbWVzcGFjZS1hbWJpZ3Vv
dXMvYW1iaWd1b3VzLTIuanMKaW5kZXggNzgwOTNkNDY2ZDBjOGE1ZDg5MjgwODIxMjllZTk0ZmVm
ZmMxMmQ5NS4uYzFjM2VkNzlhY2YxOGIzZjI2YzcyODc3MzZkZTFhN2Y4ZjQ4MzIwYyAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9tb2R1bGVzL25hbWVzcGFjZS1hbWJpZ3VvdXMvYW1iaWd1b3VzLTIuanMK
KysrIGIvSlNUZXN0cy9tb2R1bGVzL25hbWVzcGFjZS1hbWJpZ3VvdXMvYW1iaWd1b3VzLTIuanMK
QEAgLTEsMiArMSwyIEBACi1leHBvcnQgKiBmcm9tICJhbWJpZ3VvdXMtMy5qcyIKLWV4cG9ydCAq
IGZyb20gImFtYmlndW91cy00LmpzIgorZXhwb3J0ICogZnJvbSAiLi9hbWJpZ3VvdXMtMy5qcyIK
K2V4cG9ydCAqIGZyb20gIi4vYW1iaWd1b3VzLTQuanMiCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21v
ZHVsZXMvbmFtZXNwYWNlLWFtYmlndW91cy9hbWJpZ3VvdXMuanMgYi9KU1Rlc3RzL21vZHVsZXMv
bmFtZXNwYWNlLWFtYmlndW91cy9hbWJpZ3VvdXMuanMKaW5kZXggZDI4OTJlYjlmN2M0Mjk3OTU0
NDU1ZTQxYWQ0MDgyOWY4MTA3ZjI3YS4uM2ZkNGY2ZDQyZmI0NzI3OWZlNDljODc5ZjM2NjM5Njgx
YzY0ODBhMSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9tb2R1bGVzL25hbWVzcGFjZS1hbWJpZ3VvdXMv
YW1iaWd1b3VzLmpzCisrKyBiL0pTVGVzdHMvbW9kdWxlcy9uYW1lc3BhY2UtYW1iaWd1b3VzL2Ft
YmlndW91cy5qcwpAQCAtMSArMSBAQAotaW1wb3J0ICogYXMgbmFtZXNwYWNlIGZyb20gImFtYmln
dW91cy0yLmpzIgoraW1wb3J0ICogYXMgbmFtZXNwYWNlIGZyb20gIi4vYW1iaWd1b3VzLTIuanMi
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21vZHVsZXMvbmFtZXNwYWNlLXJlLWV4cG9ydC5qcyBiL0pT
VGVzdHMvbW9kdWxlcy9uYW1lc3BhY2UtcmUtZXhwb3J0LmpzCmluZGV4IDljNzRlNjEyZDQ3ZTc1
YmQ5Mjc0ODZkYWU1MTFjOTA4OWZjMzFlZDUuLmIwYzc1YjU5NDk1MGNmZDY0NGFlZWU5ZGYwNjk4
NmZmNTMwNGY2MTcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvbW9kdWxlcy9uYW1lc3BhY2UtcmUtZXhw
b3J0LmpzCisrKyBiL0pTVGVzdHMvbW9kdWxlcy9uYW1lc3BhY2UtcmUtZXhwb3J0LmpzCkBAIC0x
ICsxIEBACi1pbXBvcnQgIm5hbWVzcGFjZS1yZS1leHBvcnQvbmFtZXNwYWNlLXJlLWV4cG9ydC5q
cyI7CitpbXBvcnQgIi4vbmFtZXNwYWNlLXJlLWV4cG9ydC9uYW1lc3BhY2UtcmUtZXhwb3J0Lmpz
IjsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFy
LmpzIGIvSlNUZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIuanMKaW5kZXgg
NDE5MmI1MTdmYWU4OWFjMzM1MDkwYjU1NmZkYzk1YjU5ODhjNDM4Ni4uNzUwMjk2NGE4MGE3N2Jj
YzgzNDdmZDc3NjU2MjZiMTFmYzgxZmNlYyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9tb2R1bGVzL3Vu
Y2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIuanMKKysrIGIvSlNUZXN0cy9tb2R1bGVzL3VuY2FjaGVh
YmxlLXdoZW4tc2VlLXN0YXIuanMKQEAgLTksNSArOSw1IEBACiAvLyAgICAgICAgICAgICAgICAg
fAogLy8gICAgICAgICAgICAgICAgIEAKIAotaW1wb3J0ICJ1bmNhY2hlYWJsZS13aGVuLXNlZS1z
dGFyL21haW4xLmpzIgotaW1wb3J0ICJ1bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL21haW4yLmpz
IgoraW1wb3J0ICIuL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvbWFpbjEuanMiCitpbXBvcnQg
Ii4vdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9tYWluMi5qcyIKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMi5qcyBiL0pTVGVz
dHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMi5qcwppbmRleCBm
Y2ZkZGY0OTQ5NzNjNjY0NTM2YjA3MTVlOTEwYjU2NjZjOWQzMzFkLi5hMjBhYzU3M2NjN2RmMWZk
MDg5MjhmNjEwNTMzYWRjZWM2OGUwYTQwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9nbG9i
YWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mv
Z2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy0yLmpzCkBAIC04LDggKzgsOCBAQCBm
dW5jdGlvbiBhc3NlcnQoYikgewogc2V0R2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uU2hvdWxkTm90
VGhyb3coKTsgLy8gQWxsb3cgZHVwbGljYXRlIGNvbnN0IGRlY2xhcmF0aW9ucyBhdCB0aGUgZ2xv
YmFsIGxldmVsLgogCiBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDsgaSsrKSB7Ci0gICAgbG9hZCgi
Li9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2ZpcnN0LmpzIik7CisgICAgbG9h
ZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2ZpcnN0LmpzIiwgImNhbGxl
ciByZWxhdGl2ZSIpOwogICAgIGFzc2VydChmb28gPT09IDIwKTsKLSAgICBsb2FkKCIuL2dsb2Jh
bC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvc2Vjb25kLmpzIik7CisgICAgbG9hZCgiLi9n
bG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL3NlY29uZC5qcyIsICJjYWxsZXIgcmVs
YXRpdmUiKTsKICAgICBhc3NlcnQoZm9vID09PSA0MCk7CiB9CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTMuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTMuanMKaW5kZXggMTE3
N2NiOTU4MTEzMDdiYjY2N2QzOTBjNjlhY2RlNzIyZjcxZTQ0Yi4uMTAyNDA5NmNlMWIzNWJmMjIw
ZjBhNWExOTBhMTE5MjU5ZjQ5NjcxOCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFs
LWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy0zLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2ds
b2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMy5qcwpAQCAtNywxMSArNywxMSBAQCBm
dW5jdGlvbiBhc3NlcnQoYikgewogCiBzZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRO
b3RUaHJvdygpOyAvLyBBbGxvdyBkdXBsaWNhdGUgY29uc3QgZGVjbGFyYXRpb25zIGF0IHRoZSBn
bG9iYWwgbGV2ZWwuCiAKLWxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGlu
Zy9maXJzdC5qcyIpOworbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5n
L2ZpcnN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogYXNzZXJ0KGZvbyA9PT0gMjApOwogbGV0
IHRocmV3ID0gZmFsc2U7CiB0cnkgewotICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFy
YXRpb24tc2V0dGluZy9zdHJpY3QuanMiKTsgLy8gV2UgaWdub3JlIHRoZSBzZXR0aW5nIGFuZCBh
bHdheXMgdGhyb3cgYW4gZXJyb3Igd2hlbiBpbiBzdHJpY3QgbW9kZSEKKyAgICBsb2FkKCIuL2ds
b2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvc3RyaWN0LmpzIiwgImNhbGxlciByZWxh
dGl2ZSIpOyAvLyBXZSBpZ25vcmUgdGhlIHNldHRpbmcgYW5kIGFsd2F5cyB0aHJvdyBhbiBlcnJv
ciB3aGVuIGluIHN0cmljdCBtb2RlIQogfSBjYXRjaChlKSB7CiAgICAgdGhyZXcgPSB0cnVlOwog
fQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24t
c2V0dGluZy00LmpzIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24t
c2V0dGluZy00LmpzCmluZGV4IGQ5NmEzZDZlMmU1M2ExNmMyMjc5OTFiYWYzZTZmN2Y0ZTEyNWEx
MzIuLjFmZjdkNzZiMjc5MjJmMjJlZmVjNzBmYzBlOTJhNTEwNjU1MmE3MzAgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNC5qcwor
KysgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTQu
anMKQEAgLTcsMTEgKzcsMTEgQEAgZnVuY3Rpb24gYXNzZXJ0KGIpIHsKIAogc2V0R2xvYmFsQ29u
c3RSZWRlY2xhcmF0aW9uU2hvdWxkTm90VGhyb3coKTsgLy8gQWxsb3cgZHVwbGljYXRlIGNvbnN0
IGRlY2xhcmF0aW9ucyBhdCB0aGUgZ2xvYmFsIGxldmVsLgogCi1sb2FkKCIuL2dsb2JhbC1jb25z
dC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiKTsKK2xvYWQoIi4vZ2xvYmFsLWNvbnN0
LXJlZGVjbGFyYXRpb24tc2V0dGluZy9maXJzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGFz
c2VydChmb28gPT09IDIwKTsKIGxldCB0aHJldyA9IGZhbHNlOwogdHJ5IHsKLSAgICBsb2FkKCIu
L2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvbGV0LmpzIik7IC8vIFJlZGVjbGFy
YXRpb24gYSAnbGV0JyB2YXJpYWJsZSBzaG91bGQgdGhyb3cgYmVjYXVzZSB0aGlzIGRvZXNuJ3Qg
YnJlYWsgYmFja3dhcmRzIGNvbXBhdC4KKyAgICBsb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xh
cmF0aW9uLXNldHRpbmcvbGV0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOyAvLyBSZWRlY2xhcmF0
aW9uIGEgJ2xldCcgdmFyaWFibGUgc2hvdWxkIHRocm93IGJlY2F1c2UgdGhpcyBkb2Vzbid0IGJy
ZWFrIGJhY2t3YXJkcyBjb21wYXQuCiB9IGNhdGNoKGUpIHsKICAgICB0aHJldyA9IHRydWU7CiB9
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1z
ZXR0aW5nLTUuanMgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1z
ZXR0aW5nLTUuanMKaW5kZXggZTNlYTA5MTgxNGNkYmEwY2M0ZDBlMzg0NDIwNzU2Y2I1NmViZTBk
Yi4uZmIxMjNkNjI2MzBlNzc1MGE3MDU4NTVkMDBkMGUyZmFiYTMzMzc0YyAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy01LmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNS5q
cwpAQCAtNywxMSArNywxMSBAQCBmdW5jdGlvbiBhc3NlcnQoYikgewogCiBzZXRHbG9iYWxDb25z
dFJlZGVjbGFyYXRpb25TaG91bGROb3RUaHJvdygpOyAvLyBBbGxvdyBkdXBsaWNhdGUgY29uc3Qg
ZGVjbGFyYXRpb25zIGF0IHRoZSBnbG9iYWwgbGV2ZWwuCiAKLWxvYWQoIi4vZ2xvYmFsLWNvbnN0
LXJlZGVjbGFyYXRpb24tc2V0dGluZy9sZXQuanMiKTsKK2xvYWQoIi4vZ2xvYmFsLWNvbnN0LXJl
ZGVjbGFyYXRpb24tc2V0dGluZy9sZXQuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBhc3NlcnQo
Zm9vID09PSA1MCk7CiBsZXQgdGhyZXcgPSBmYWxzZTsKIHRyeSB7Ci0gICAgbG9hZCgiLi9nbG9i
YWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2ZpcnN0LmpzIik7IC8vIFJlZGVjbGFyYXRp
b24gb2YgYSAnbGV0JyB0byAnY29uc3QnIHNob3VsZCBhbHdheXMgdGhyb3cgYmVjYXVzZSBpdCBp
c24ndCBicmVha2luZyBiYWNrd2FyZHMgY29tcGF0LgorICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0
LXJlZGVjbGFyYXRpb24tc2V0dGluZy9maXJzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsgLy8g
UmVkZWNsYXJhdGlvbiBvZiBhICdsZXQnIHRvICdjb25zdCcgc2hvdWxkIGFsd2F5cyB0aHJvdyBi
ZWNhdXNlIGl0IGlzbid0IGJyZWFraW5nIGJhY2t3YXJkcyBjb21wYXQuCiB9IGNhdGNoKGUpIHsK
ICAgICB0aHJldyA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwt
Y29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLmpzIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNv
bnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy5qcwppbmRleCBhZWQxYjQxYzRhYTM2OGVhYTkwZDI2
ZDk1Y2MzYTQzZWMzY2NkMGUyLi40Yzk0M2RlNjNhNjhlY2IyNTg1ZGY3YmE4N2FlMjZmOTc4ZDg2
OGM4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlv
bi1zZXR0aW5nLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0
aW9uLXNldHRpbmcuanMKQEAgLTcsNyArNyw3IEBAIGZ1bmN0aW9uIGFzc2VydChiKSB7CiAKIHNl
dEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZE5vdFRocm93KCk7IC8vIEFsbG93IGR1cGxp
Y2F0ZSBjb25zdCBkZWNsYXJhdGlvbnMgYXQgdGhlIGdsb2JhbCBsZXZlbC4KIAotbG9hZCgiLi9n
bG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2ZpcnN0LmpzIik7Citsb2FkKCIuL2ds
b2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiBhc3NlcnQoZm9vID09PSAyMCk7Ci1sb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xh
cmF0aW9uLXNldHRpbmcvc2Vjb25kLmpzIik7Citsb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xh
cmF0aW9uLXNldHRpbmcvc2Vjb25kLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogYXNzZXJ0KGZv
byA9PT0gNDApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtcmVk
ZWNsYXJlLXZhcmlhYmxlLmpzIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtcmVkZWNs
YXJlLXZhcmlhYmxlLmpzCmluZGV4IDZlYzI4N2I2ZDE2MDQzZjg4YWQxZjhlZGNiOWE5N2QyNmY3
YzcwOWQuLjUxNjMzOGMxNmQ5M2E5NWVhZDg0ZDljZmE1MGNiZDViZTM5ZThlZGEgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS5qcwor
KysgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUuanMK
QEAgLTMwLDM1ICszMCwzNSBAQCBmdW5jdGlvbiBhc3NlcnRQcm9wZXJFcnJvcihlKSB7CiBhc3Nl
cnRFeHBlY3RhdGlvbnMoKTsKIAogdHJ5IHsKLSAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRl
c3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9maXJzdC5qcyIpOworICAgIGxv
YWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlh
YmxlL2ZpcnN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRjaChlKSB7CiAgICAgYXNz
ZXJ0UHJvcGVyRXJyb3IoZSk7CiB9CiBhc3NlcnRFeHBlY3RhdGlvbnMoKTsKIAogdHJ5IHsKLSAg
ICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12
YXJpYWJsZS9zZWNvbmQuanMiKTsKKyAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2ds
b2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9zZWNvbmQuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiB9IGNhdGNoKGUpIHsKICAgICBhc3NlcnRQcm9wZXJFcnJvcihlKTsKIH0KIGFzc2Vy
dEV4cGVjdGF0aW9ucygpOwogCiB0cnkgewotICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVz
dHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL3RoaXJkLmpzIik7CisgICAgbG9h
ZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFi
bGUvdGhpcmQuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiB9IGNhdGNoKGUpIHsKICAgICBhc3Nl
cnRQcm9wZXJFcnJvcihlKTsKIH0KIGFzc2VydEV4cGVjdGF0aW9ucygpOwogCiB0cnkgewotICAg
IGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZh
cmlhYmxlL2ZvdXJ0aC5qcyIpOworICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xv
YmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL2ZvdXJ0aC5qcyIsICJjYWxsZXIgcmVsYXRp
dmUiKTsKIH0gY2F0Y2goZSkgewogICAgIGFzc2VydFByb3BlckVycm9yKGUpOwogfQogYXNzZXJ0
RXhwZWN0YXRpb25zKCk7CiAKIHRyeSB7Ci0gICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0
cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvZmlmdGguanMiKTsKKyAgICBsb2Fk
KCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJs
ZS9maWZ0aC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIH0gY2F0Y2goZSkgewogICAgIGFzc2Vy
dFByb3BlckVycm9yKGUpOwogfQpAQCAtNzAsNyArNzAsNyBAQCBhc3NlcnRFeHBlY3RhdGlvbnMo
KTsKIHRyeSB7CiAgICAgc2VudGluZWwgPSAiYmFkIjsKICAgICBhc3NlcnQoT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcih0aGlzLCAiZ2xvYmFsUHJvcGVydHkiKS5jb25maWd1cmFibGUp
OwotICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNs
YXJlLXZhcmlhYmxlL3NpeHRoLmpzIik7CisgICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0
cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvc2l4dGguanMiLCAiY2FsbGVyIHJl
bGF0aXZlIik7CiB9IGNhdGNoKGUpIHsKICAgICBhc3NlcnQoZmFsc2UpOwogfQpAQCAtNzksNyAr
NzksNyBAQCBhc3NlcnRFeHBlY3RhdGlvbnMoKTsKIHRyeSB7CiAgICAgc2VudGluZWwgPSAiYmFk
IjsKICAgICBhc3NlcnQoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzLCAiQXJy
YXkiKS5jb25maWd1cmFibGUpOwotICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xv
YmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL3NldmVudGguanMiKTsKKyAgICBsb2FkKCIu
L211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9z
ZXZlbnRoLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRjaChlKSB7CiAgICAgYXNzZXJ0
KGZhbHNlKTsKIH0KQEAgLTg4LDcgKzg4LDcgQEAgYXNzZXJ0RXhwZWN0YXRpb25zKCk7CiB0cnkg
ewogICAgIHNlbnRpbmVsID0gImJhZCI7CiAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMs
ICdmb28nLCB7dmFsdWU6IDUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWV9KTsK
LSAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFy
ZS12YXJpYWJsZS9laWdodGguanMiKTsKKyAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3Rz
L2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9laWdodGguanMiLCAiY2FsbGVyIHJl
bGF0aXZlIik7CiB9IGNhdGNoKGUpIHsKICAgICBhc3NlcnQoZmFsc2UpOwogfQpAQCAtOTYsNyAr
OTYsNyBAQCBhc3NlcnRFeHBlY3RhdGlvbnMoKTsKIAogdHJ5IHsKICAgICBPYmplY3QuZGVmaW5l
UHJvcGVydHkodGhpcywgJ2JhcicsIHt2YWx1ZTogNSwgY29uZmlndXJhYmxlOiBmYWxzZSwgd3Jp
dGFibGU6IHRydWV9KTsKLSAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1s
ZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9uaW50aC5qcyIpOworICAgIGxvYWQoIi4vbXVsdGlw
bGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL25pbnRoLmpz
IiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRjaChlKSB7CiAgICAgYXNzZXJ0UHJvcGVyRXJy
b3IoZSk7CiB9CkBAIC0xMDYsNyArMTA2LDcgQEAgYXNzZXJ0KGVycm9yQ291bnQgPT09IDYpOwog
CiB0cnkgewogICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnem9vJywge3ZhbHVlOiB1
bmRlZmluZWQsIGNvbmZpZ3VyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlfSk7Ci0gICAgbG9h
ZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFi
bGUvdGVudGguanMiKTsKKyAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1s
ZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS90ZW50aC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
IH0gY2F0Y2goZSkgewogICAgIGFzc2VydFByb3BlckVycm9yKGUpOwogfQpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtcmVkZWZpbmUtY29uc3QuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9nbG9iYWwtbGV4aWNhbC1yZWRlZmluZS1jb25zdC5qcwppbmRleCAxYzZiYWY3YzM3
MjI1MmNiMGM5N2IzNWZjODQ0NGY4NWMwNjZlOTFiLi45NGFjNGFkMzk0MjUyMDg2NGIwZDg2MjNl
NzVjYzA5MjdjOTRiYWJkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNh
bC1yZWRlZmluZS1jb25zdC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC1y
ZWRlZmluZS1jb25zdC5qcwpAQCAtMSwyICsxLDIgQEAKLWxvYWQoIi4vbXVsdGlwbGUtZmlsZXMt
dGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWZpbmUtY29uc3QvZmlyc3QuanMiKTsKLWxvYWQoIi4v
bXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWZpbmUtY29uc3Qvc2Vjb25k
LmpzIik7Citsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVm
aW5lLWNvbnN0L2ZpcnN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOworbG9hZCgiLi9tdWx0aXBs
ZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlZmluZS1jb25zdC9zZWNvbmQuanMiLCAi
Y2FsbGVyIHJlbGF0aXZlIik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4
aWNhbC12YXJpYWJsZS10ZHouanMgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC12YXJp
YWJsZS10ZHouanMKaW5kZXggZTg4Y2ZkNmEyNTYyMzdmZTNjMmQ1N2ZkMTFkNTAwMTU2NjA4OWEw
YS4uZTJhMWUxNzFjMTczZWYwYjFiNmFmZWQ4MzZhYTRiMzUyZWZkNWVmYyAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdGR6LmpzCisrKyBiL0pTVGVz
dHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXRkei5qcwpAQCAtMSwyICsxLDIgQEAK
LWxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdGR6
L2ZpcnN0LmpzIik7Ci1sb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2Fs
LXZhcmlhYmxlLXRkei9zZWNvbmQuanMiKTsKK2xvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMv
Z2xvYmFsLWxleGljYWwtdmFyaWFibGUtdGR6L2ZpcnN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OworbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS10
ZHovc2Vjb25kLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3MvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdW5yZXNvbHZlZC1wcm9wZXJ0eS5qcyBiL0pT
VGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXVucmVzb2x2ZWQtcHJvcGVydHku
anMKaW5kZXggZDYyMjE0NTQ0MWJhMDFkY2JlY2M1OGJmYjlkOWVmOGNiMDc2M2RkZS4uZGUxOTM4
YzYwZTA5MzBmMmQyYzllNWZmMWQ3NGI3MzdhZjAyMGU4NyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9z
dHJlc3MvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdW5yZXNvbHZlZC1wcm9wZXJ0eS5qcworKysg
Yi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS11bnJlc29sdmVkLXByb3Bl
cnR5LmpzCkBAIC0xLDIgKzEsMiBAQAotbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9i
YWwtbGV4aWNhbC12YXJpYWJsZS11bnJlc29sdmVkLXByb3BlcnR5L2ZpcnN0LmpzIik7Ci1sb2Fk
KCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXVucmVzb2x2
ZWQtcHJvcGVydHkvc2Vjb25kLmpzIik7Citsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2ds
b2JhbC1sZXhpY2FsLXZhcmlhYmxlLXVucmVzb2x2ZWQtcHJvcGVydHkvZmlyc3QuanMiLCAiY2Fs
bGVyIHJlbGF0aXZlIik7Citsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhp
Y2FsLXZhcmlhYmxlLXVucmVzb2x2ZWQtcHJvcGVydHkvc2Vjb25kLmpzIiwgImNhbGxlciByZWxh
dGl2ZSIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLXByb3BlcnR5LWludG8t
dmFyaWFibGUtZ2V0LWZyb20tc2NvcGUuanMgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtcHJvcGVy
dHktaW50by12YXJpYWJsZS1nZXQtZnJvbS1zY29wZS5qcwppbmRleCA5NDdjNGU4ZjEyMjBkNjE4
ODBmNWNkYzQwYjZhZWMyOTljYWRhMTFhLi40MWRlZTU5NWI2MjQ5YzgzZDJhZTY1MmIwZGViNDA5
NTgxM2IwMmE0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtcHJvcGVydHktaW50
by12YXJpYWJsZS1nZXQtZnJvbS1zY29wZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwt
cHJvcGVydHktaW50by12YXJpYWJsZS1nZXQtZnJvbS1zY29wZS5qcwpAQCAtNiw3ICs2LDcgQEAK
IC8vIG5vSW5saW5lIGFzIHRoZSBjdXJyZW50IGdsb2JhbCBvYmplY3Qgd291bGQgbm90IGhhdmUg
bm9JbmxpbmUgYXMgYSBwcm9wZXJ0eQogLy8gYXQgdGhhdCBwb2ludCBhbmQgd2Ugd291bGQgYXR0
ZW1wdCB0byBhY2Nlc3MgdGhlIHZhbHVlIGF0IGFuIGludmFsaWQgb2Zmc2V0LgogCi1sb2FkKCJy
ZXNvdXJjZXMvc3RhbmRhbG9uZS1wcmUuanMiKTsKK2xvYWQoInJlc291cmNlcy9zdGFuZGFsb25l
LXByZS5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogbm9JbmxpbmUoKTsKIApkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvaW1wb3J0LXdpdGgtZW1wdHktc3RyaW5nLmpzIGIvSlNUZXN0cy9z
dHJlc3MvaW1wb3J0LXdpdGgtZW1wdHktc3RyaW5nLmpzCmluZGV4IGQxNzRlYzllY2Y1MThjM2Zk
NGIwMmU3MzY0MDEyYTFhNjFkYjM4NDMuLmFhYWRlOTg5NjNiMzhkZTU2YmRmZTU3NzllMmE4OWQ3
NjMwNTNlMDQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2ltcG9ydC13aXRoLWVtcHR5LXN0
cmluZy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9pbXBvcnQtd2l0aC1lbXB0eS1zdHJpbmcuanMK
QEAgLTEsMiArMSwyIEBACi1pbXBvcnQoIiIpLnRoZW4oJHZtLmFib3J0LCBmdW5jdGlvbiAoKSB7
CitpbXBvcnQoIiIpLnRoZW4oJHZtLmFib3J0LCBmdW5jdGlvbiAoZSkgewogfSk7CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9qc29ucC1saXRlcmFsLXBhcnNlci1zZW1pY29sb24taXMtbm90
LWFzc2lnbm1lbnQuanMgYi9KU1Rlc3RzL3N0cmVzcy9qc29ucC1saXRlcmFsLXBhcnNlci1zZW1p
Y29sb24taXMtbm90LWFzc2lnbm1lbnQuanMKaW5kZXggODFhYTYyYWVjYmZjZjU2YmVmZGM5YTQ1
YmM0MTI2ZTIzOTEyOTYzNi4uZGFhYWUxYmJlZTlkYTkxZWU4ODBjODRhMTI3OGIxM2U1YzdjYWYw
NCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvanNvbnAtbGl0ZXJhbC1wYXJzZXItc2VtaWNv
bG9uLWlzLW5vdC1hc3NpZ25tZW50LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2pzb25wLWxpdGVy
YWwtcGFyc2VyLXNlbWljb2xvbi1pcy1ub3QtYXNzaWdubWVudC5qcwpAQCAtMSw0ICsxLDQgQEAK
IHggPSB1bmRlZmluZWQ7Ci1sb2FkKCIuL3Jlc291cmNlcy9saXRlcmFsLXBhcnNlci10ZXN0LWNh
c2UuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2xpdGVyYWwtcGFyc2VyLXRlc3QtY2FzZS5qcyIs
ICJjYWxsZXIgcmVsYXRpdmUiKTsKIGlmICh4ICE9PSB1bmRlZmluZWQpCiAgICAgdGhyb3cgbmV3
IEVycm9yKCJCYWQgcmVzdWx0Iik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9hZGQu
anMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9hZGQuanMKaW5kZXggNmI2MTNmYjY2Njg4NjkzNDBiZTY2
ZTA0NTM5MzJkOTIxOGIxMjNmYi4uNGRmYmMyZDNmM2YxYjA2ZDA1ZWUyYTI5NzNkYjYwMzEzZDc1
OTA4NyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfYWRkLmpzCisrKyBiL0pTVGVzdHMv
c3RyZXNzL29wX2FkZC5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRo
aXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBw
cmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRp
b25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsK
K2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfYml0YW5kLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
b3BfYml0YW5kLmpzCmluZGV4IDQ0NTU1ZjE5NjY4OWU0ZmQzYzU5YTM2MGY0NjY5NDQwZjE3NDk1
MjIuLmY3YmU0ZGEwODg4MjhiM2QyY2I1ZmQwMmIwYjlhMDJlNTdlMGZjZTcgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL29wX2JpdGFuZC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRh
bmQuanMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9k
dWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVy
cm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVk
ZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jl
c291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL29wX2JpdG9yLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfYml0b3IuanMK
aW5kZXggYzE5ODQ5MGViNDU1NWU3MmI0NGJlOGVkMDI4NTVkOTkwNmY4MjM3OS4uNTE0MjE3Mjhj
ZWY4Nzc3N2YyOTllN2Y3ZmU1OTJhZjE5ZTM3ZDVhNSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJl
c3Mvb3BfYml0b3IuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfYml0b3IuanMKQEAgLTQsNyAr
NCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWlu
YXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFy
eS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4v
cmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnkt
b3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L29wX2JpdHhvci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX2JpdHhvci5qcwppbmRleCAwZmY5ZjI3
MjU2MzQxMzA3ODRkNTZhZDc4MGFkMWJlODA3ODE3OTRjLi4xNGY2OTU0NjA5NWUzZDk1ODUxZTY3
OThhOWI1MjEzMDMyOGNjYzY5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9iaXR4b3Iu
anMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfYml0eG9yLmpzCkBAIC00LDcgKzQsNyBAQAogLy8g
SWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRs
eS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5q
cyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9i
aW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMi
LCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBj
b25maWd1cmF0aW9uIGRhdGE6CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtQ29u
c3RWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtQ29uc3RWYXIuanMKaW5kZXggNDUwODY1
NDNhZDYxMmJjNDQ3NjBiY2MzN2U2NTQ1YzdkZTc5N2Y5NS4uOGE2ODY0MzFmYzk1ZjQyNDRlZThi
N2IzZjI0YzkyYjk0Njk1Y2IyOSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfZGl2LUNv
bnN0VmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX2Rpdi1Db25zdFZhci5qcwpAQCAtNCw3
ICs0LDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJt
aW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmlu
YXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgi
Li9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFy
eS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTIsNyArMTIsNyBAQCBsb2FkKCIu
L3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJkaXYiOwogdmFy
IG9wID0gIi8iOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Cits
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwg
IkNvbnN0VmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
b3BfZGl2LVZhckNvbnN0LmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfZGl2LVZhckNvbnN0LmpzCmlu
ZGV4IDkxZmYyZjE0YWQ4OTc3ZTdkMDRlNTVhYTkxMDJiNDc2Y2ZmMTIzOWIuLjMzMzU2MWI1NjQw
MzA1NWU3YTE4YmJhOGI2MmViNjVjMWJmMTdiY2EgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNz
L29wX2Rpdi1WYXJDb25zdC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFyQ29uc3Qu
anMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxl
IHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9y
cy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQu
CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTEyLDcgKzEyLDcg
QEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAi
ZGl2IjsKIHZhciBvcCA9ICIvIjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVl
cy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIg
cmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9w
TmFtZSwgb3AsICJWYXJDb25zdCIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL29wX2Rpdi1WYXJWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFyVmFy
LmpzCmluZGV4IDgyOGEyMDMwNDVkMWNlZGVlYjBlOTQ0MjRkZGZiMmVhMzg4ZWExNmUuLjY0OWI4
MDk5NTE1Mjk5MjRjMjUyOWMzNTI3MjkzOGYwOGFmMjEwNDggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
c3RyZXNzL29wX2Rpdi1WYXJWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfZGl2LVZhclZh
ci5qcwpAQCAtNCw3ICs0LDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1
bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJy
b3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRl
ZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVz
b3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTIsNyArMTIs
NyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9
ICJkaXYiOwogdmFyIG9wID0gIi8iOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFs
dWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxl
ciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywg
b3BOYW1lLCBvcCwgIlZhclZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL29wX2xzaGlmdC1Db25zdFZhci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX2xzaGlm
dC1Db25zdFZhci5qcwppbmRleCBjMGIzOTk0YzU5OGJkMWY5ZmIwNTY2ZTA3NzIwNjkzOWM5ZDJj
NTkxLi44NzkzNTk4MmM3MWFlZTIxOGQ5MDdjZDg2MWI1ZjY2OWIwYWNmYTcxIDEwMDY0NAotLS0g
YS9KU1Rlc3RzL3N0cmVzcy9vcF9sc2hpZnQtQ29uc3RWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJl
c3Mvb3BfbHNoaWZ0LUNvbnN0VmFyLmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMg
d2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBp
dCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdn
aW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVz
dC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJl
bGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9u
IGRhdGE6CkBAIC0xMSw3ICsxMSw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0
LmpzIik7CiB2YXIgb3BOYW1lID0gImxzaGlmdCI7CiB2YXIgb3AgPSAiPDwiOwogCi1sb2FkKCIu
L3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5h
cnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2Vu
ZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIkNvbnN0VmFyIiwgdmFsdWVzLCB2
YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LVZhckNvbnN0Lmpz
IGIvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LVZhckNvbnN0LmpzCmluZGV4IDBlMzJiYTY5MmYw
ZWE4NTJhMWQwMTA4NDFhZTkyMzg4NzdhZDhkNWEuLmJlMzg1Y2ZjY2Y1NGE2MDUwOTcwNDI5MTEy
ZDJkYmFlNDk4OWEyMTkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX2xzaGlmdC1WYXJD
b25zdC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9sc2hpZnQtVmFyQ29uc3QuanMKQEAgLTMs
NyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVy
bWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJp
bmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQo
Ii4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5h
cnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgi
Li9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAibHNoaWZ0IjsK
IHZhciBvcCA9ICI8PCI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMi
KTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUs
IG9wLCAiVmFyQ29uc3QiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy9vcF9sc2hpZnQtVmFyVmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LVZhclZh
ci5qcwppbmRleCA4NzM0OWI4ZmU0NzM5MDk4NGNhOTQ4MzBiNzQ1ZDg1MTcxM2MxYjQ4Li41Mzgx
ZmQ0MjVhZmIxNDc5ODU0MDM5NzdkMTIwOTkxZmFmZjI0OTFlIDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3N0cmVzcy9vcF9sc2hpZnQtVmFyVmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX2xzaGlm
dC1WYXJWYXIuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRl
c3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQK
IC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBp
ZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2Fk
KCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAog
Ly89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTEx
LDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBv
cE5hbWUgPSAibHNoaWZ0IjsKIHZhciBvcCA9ICI8PCI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2Jp
bmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRl
c3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyVmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbW9kLUNvbnN0VmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
b3BfbW9kLUNvbnN0VmFyLmpzCmluZGV4IDQ4OTE4OGNlZDFhYTcxMjU4ZTlmZWQwYTQ3MzFmYjIy
NWZlZWNjNjEuLmJhZWE3ZThiYTczZGE0OWY2ZjcyNzY3MTQ3YTY3NjA5NzJhNzhkMjYgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX21vZC1Db25zdFZhci5qcworKysgYi9KU1Rlc3RzL3N0
cmVzcy9vcF9tb2QtQ29uc3RWYXIuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3
ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0
IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dp
bmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0
LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVs
YXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24g
ZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3Qu
anMiKTsKIHZhciBvcE5hbWUgPSAibW9kIjsKIHZhciBvcCA9ICIlIjsKIAotbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9w
LXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRl
QmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJDb25zdFZhciIsIHZhbHVlcywgdmFsdWVz
KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX21vZC1WYXJDb25zdC5qcyBiL0pTVGVz
dHMvc3RyZXNzL29wX21vZC1WYXJDb25zdC5qcwppbmRleCBmMDNhNGQ0MDRhZWFmN2YwY2IzZmVm
M2RjMDZlNWZmNTE2NmM2NTU1Li4zOTFjMjFhNjQ0MDdmYWNmM2QzNDBlOGY3YWRlYTkwZTYwZDNm
MTI2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9tb2QtVmFyQ29uc3QuanMKKysrIGIv
SlNUZXN0cy9zdHJlc3Mvb3BfbW9kLVZhckNvbnN0LmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYg
YWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4g
SWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBm
b3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5h
cnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAi
Y2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25m
aWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFy
eS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gIm1vZCI7CiB2YXIgb3AgPSAiJSI7CiAKLWxv
YWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107
CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyQ29uc3QiLCB2YWx1
ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9tb2QtVmFyVmFyLmpz
IGIvSlNUZXN0cy9zdHJlc3Mvb3BfbW9kLVZhclZhci5qcwppbmRleCAxMzQzNmE5N2UyMDU1ZjZl
ODZjMWFhNmQ1MjdkNGY5NGMzZDhmMTdjLi5jZjA1MTk0ZjMwMjNjYTU1ZGZhZmI1ZTQyY2I5MTli
YTg2NTMyODA5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9tb2QtVmFyVmFyLmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL29wX21vZC1WYXJWYXIuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJ
ZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5
LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0Lmpz
IGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2Jp
bmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIs
ICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNv
bmZpZ3VyYXRpb24gZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmlu
YXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAibW9kIjsKIHZhciBvcCA9ICIlIjsKIAot
bG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJj
ZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBb
XTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJWYXIiLCB2YWx1
ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtQ29uc3RWYXIu
anMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtQ29uc3RWYXIuanMKaW5kZXggM2RlMzY0ZTFmYjk5
N2YzZTQ3NjQ2ZGFhNzc5ZDRjMmFkOTMzNjlkYy4uZWNmOThlMjFhMGFlNjA4YzU3Njg0NGY2ODk4
NDczZTkyN2QyYTdlMyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbXVsLUNvbnN0VmFy
LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX211bC1Db25zdFZhci5qcwpAQCAtNCw3ICs0LDcg
QEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUg
c2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9w
LXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10
ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8v
IFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTIsNyArMTIsNyBAQCBsb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJtdWwiOwogdmFyIG9wID0g
IioiOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIu
L3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0
ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIkNvbnN0
VmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbXVs
LVZhckNvbnN0LmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbXVsLVZhckNvbnN0LmpzCmluZGV4IDQ4
ZTFlNzY1NDk3NjA2NjdkYWY0NmFjMmExYmIxNmJkNzkzNjAzOWMuLmM4ZmNkMDVkZjI3ZGVkNDUw
ZGQ4MTdhY2EwOWZjMDgwMzdlNmFjOTIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX211
bC1WYXJDb25zdC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtVmFyQ29uc3QuanMKQEAg
LTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwg
dGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2Vl
IGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxv
YWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9i
aW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTEyLDcgKzEyLDcgQEAgbG9h
ZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAibXVsIjsK
IHZhciBvcCA9ICIqIjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIp
OworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRp
dmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwg
b3AsICJWYXJDb25zdCIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL29wX211bC1WYXJWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtVmFyVmFyLmpzCmlu
ZGV4IDVlMWNjNTg3Mjg1ZGU0YzVjYTEwM2ZmZTM4NTI2ZDFlY2EwNDNhZWUuLmI3NzRlY2FkYjc5
M2YyYTBmOWViZjEzMmU0NzgzNmEwN2U0NTFmOTUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNz
L29wX211bC1WYXJWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbXVsLVZhclZhci5qcwpA
QCAtNCw3ICs0LDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2ls
bCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBT
ZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAot
bG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTIsNyArMTIsNyBAQCBs
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJtdWwi
OwogdmFyIG9wID0gIioiOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpz
Iik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxh
dGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1l
LCBvcCwgIlZhclZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL29wX25lZ2F0ZS5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX25lZ2F0ZS5qcwppbmRleCBkOThm
MDRkYmM3YzA1YzBjMWVkZGFhNmY4MGI0YWFmYWI1ODE2ZTEyLi41NWIwMmRmYWM4MzAzY2NiYTM4
MzJmYWViMTI5NDZhMDMwNWFjNDdmIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9uZWdh
dGUuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbmVnYXRlLmpzCkBAIC0zLDcgKzMsNyBAQAog
Ly8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxl
bnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSB1bmFyeS1vcC10ZXN0
LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2Vz
L3VuYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3VuYXJ5LW9wLXRlc3QuanMi
LCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBj
b25maWd1cmF0aW9uIGRhdGE6CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9wb3N0ZGVj
LmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfcG9zdGRlYy5qcwppbmRleCBiMmUxZmE3Mjk3M2M2ZjU3
NmQxNWEzODgzOTlkMGU2NDA5MTE5OTlhLi42MjliODViZmVkNDM0ODE1NmM3ODU3ZjYwNzE0MDdm
ZTEyZmE5N2I3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9wb3N0ZGVjLmpzCisrKyBi
L0pTVGVzdHMvc3RyZXNzL29wX3Bvc3RkZWMuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwg
Z29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBu
b3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIHVuYXJ5LW9wLXRlc3QuanMgZm9yIGRl
YnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvdW5hcnktb3At
dGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIg
cmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRp
b24gZGF0YToKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3Bvc3RpbmMuanMgYi9KU1Rl
c3RzL3N0cmVzcy9vcF9wb3N0aW5jLmpzCmluZGV4IDA4YWEzNWQ5ZDA4OGYwOTg0OGVjMGIyMDUz
NGRhNzZiZDMyYmNhOWYuLjNkZmQyZTViZDkwZjU5YzVmNDMwOTZmZTQxNGQ0MmI5YjBiZGE0YmYg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3Bvc3RpbmMuanMKKysrIGIvSlNUZXN0cy9z
dHJlc3Mvb3BfcG9zdGluYy5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGws
IHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2ls
bCBwcmludAogLy8gZXJyb3JzLiBTZWUgdW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9w
dGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIik7
Citsb2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfcHJlZGVjLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
b3BfcHJlZGVjLmpzCmluZGV4IGI4YzY1NjI3ZWJmYzNiNmU0MTBkODUzODc4YzFlYjNhZDc4MDQ0
MzUuLjVhOWNiNDZkNGFmOGUzYzU0ZWM4ODA1ZTgwYWJkMWJkYTIwYzE5YmUgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL29wX3ByZWRlYy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9wcmVk
ZWMuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9k
dWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVy
cm9ycy4gU2VlIHVuYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRl
ZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvdW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNv
dXJjZXMvdW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL29wX3ByZWluYy5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX3ByZWluYy5qcwpp
bmRleCAyMmZiNmVlNjE4N2FlNjU1NGUzZTNmNTA4OTRkZWMzM2NmMTU3MDUxLi4xYzc5M2QxNjNj
NDQwZTE3OWRiN2M5MzJkM2I3MmNjZjJmNGUwNzc1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVz
cy9vcF9wcmVpbmMuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfcHJlaW5jLmpzCkBAIC0zLDcg
KzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1p
bmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSB1bmFy
eS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4v
cmVzb3VyY2VzL3VuYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3VuYXJ5LW9w
LXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog
Ly8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9v
cF9yc2hpZnQtQ29uc3RWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQtQ29uc3RWYXIu
anMKaW5kZXggZjA1OTkzMTQ5YjRlZTliNDM2MGI3Njc3OTQyMDk2OGFlYmM3ZmQ3Zi4uZjk5OTkw
MDBjZmYyMjEwYTE2NTNkNDNiOWY3MGE5MDg4YzRmYzA5OSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9z
dHJlc3Mvb3BfcnNoaWZ0LUNvbnN0VmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlm
dC1Db25zdFZhci5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMg
dGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmlu
dAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25z
IGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xv
YWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwog
CiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAt
MTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFy
IG9wTmFtZSA9ICJyc2hpZnQiOwogdmFyIG9wID0gIj4+IjsKIAotbG9hZCgiLi9yZXNvdXJjZXMv
YmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVl
cy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5
VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJDb25zdFZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1WYXJDb25zdC5qcyBiL0pTVGVzdHMv
c3RyZXNzL29wX3JzaGlmdC1WYXJDb25zdC5qcwppbmRleCAxMDBjZDliYWQ1NWZkZDE4OTk1MzQx
NmQ1NDQwZTJkM2MzMTAyNmZmLi5hNWFhMDUxOTFiZmE4N2Y3MGRmMWJkZWVlNmYzNDc1M2NiNjNj
MjRlIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQtVmFyQ29uc3QuanMKKysr
IGIvSlNUZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LVZhckNvbnN0LmpzCkBAIC0zLDcgKzMsNyBAQAog
Ly8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxl
bnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVz
dC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNl
cy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3Qu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVz
dCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3IEBAIGxvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gInJzaGlmdCI7CiB2YXIgb3AgPSAi
Pj4iOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIu
L3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0
ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhckNv
bnN0IiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfcnNo
aWZ0LVZhclZhci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1WYXJWYXIuanMKaW5kZXgg
MTE2NjYwZDU4MWVmMjVmOGI2ZjQxZWJjOWViNjAyYjJjMTY3NmYxYi4uMmZlOGY5N2IyYjE4Njdh
ZGYzZTU2NmY4YmNkYTkxNzA3MDg5MzYyYiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3Bf
cnNoaWZ0LVZhclZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQtVmFyVmFyLmpz
CkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3
aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMu
IFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgog
Ci1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJj
ZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3IEBA
IGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gInJz
aGlmdCI7CiB2YXIgb3AgPSAiPj4iOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFs
dWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxl
ciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywg
b3BOYW1lLCBvcCwgIlZhclZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL29wX3N1Yi1Db25zdFZhci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX3N1Yi1Db25z
dFZhci5qcwppbmRleCBjOGZhMWZmMGRjMThhZTRlYjRmNzAwMTQ1MTA1ZDQ5NzU3MmEzODVhLi5m
MzAzNDM1Mjg3MzA0MTZmMmEwOTUzOWFjNDE0NmUyZmEyMzM2MDdmIDEwMDY0NAotLS0gYS9KU1Rl
c3RzL3N0cmVzcy9vcF9zdWItQ29uc3RWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3Bfc3Vi
LUNvbnN0VmFyLmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0
ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50
CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMg
aWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9h
ZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAK
IC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0x
Miw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIg
b3BOYW1lID0gInN1YiI7CiB2YXIgb3AgPSAiLSI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFy
eS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMi
LCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3Rz
KHRlc3RzLCBvcE5hbWUsIG9wLCAiQ29uc3RWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItVmFyQ29uc3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9v
cF9zdWItVmFyQ29uc3QuanMKaW5kZXggOTFlNzQ1NWY0NTcwMGQ4M2JjZWY1ZTQ2NzNjM2FkZDQ5
ZDE2YmFjMi4uZjFlNTc3NDI4ZGUzMzg5Mjg4NGI1N2RmZjdlMTg2MTIzYWYyMzYxMiAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLVZhckNvbnN0LmpzCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL29wX3N1Yi1WYXJDb25zdC5qcwpAQCAtNCw3ICs0LDcgQEAKIC8vIElmIGFsbCBnb2VzIHdl
bGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQg
d2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2lu
ZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3Qu
anMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxh
dGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBk
YXRhOgpAQCAtMTIsNyArMTIsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5q
cyIpOwogdmFyIG9wTmFtZSA9ICJzdWIiOwogdmFyIG9wID0gIi0iOwogCi1sb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3At
dmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVC
aW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhckNvbnN0IiwgdmFsdWVzLCB2YWx1ZXMp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLVZhclZhci5qcyBiL0pTVGVzdHMv
c3RyZXNzL29wX3N1Yi1WYXJWYXIuanMKaW5kZXggNmI5ZDE3Y2VmOGEwMTc5YTBlNjAzNWM1ZmVk
YWMxYWZhMTIzNmFkZi4uZDBmOGU5ZTIwMGMwZDNkNTlmOTI3YzZkMzgwNGE1NTdiOTg5ZTI5YyAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLVZhclZhci5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy9vcF9zdWItVmFyVmFyLmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMg
d2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBp
dCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdn
aW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVz
dC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJl
bGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9u
IGRhdGE6CkBAIC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0
LmpzIik7CiB2YXIgb3BOYW1lID0gInN1YiI7CiB2YXIgb3AgPSAiLSI7CiAKLWxvYWQoIi4vcmVz
b3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1v
cC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0
ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyVmFyIiwgdmFsdWVzLCB2YWx1ZXMp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC1Db25zdFZhci5qcyBiL0pT
VGVzdHMvc3RyZXNzL29wX3Vyc2hpZnQtQ29uc3RWYXIuanMKaW5kZXggZmRlZTBiZTZlOTUxN2Mz
MGFiZWNkYjU1NzZmNTFiZjc4NzU3M2RiYy4uZWI1MTg2MDlkZDc5OTQ1OGZjYmFlMTFjNmY1MDQ5
YWI2MmE2MzAyNCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC1Db25zdFZh
ci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LUNvbnN0VmFyLmpzCkBAIC0zLDcg
KzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1p
bmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5h
cnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIu
L3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5
LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3IEBAIGxvYWQoIi4v
cmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gInVyc2hpZnQiOwog
dmFyIG9wID0gIj4+PiI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMi
KTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUs
IG9wLCAiQ29uc3RWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy9vcF91cnNoaWZ0LVZhckNvbnN0LmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC1W
YXJDb25zdC5qcwppbmRleCA4YjRhY2VkYWJiMzVlMWJiMjMxYmY3ZjNiNjk0MDkzMjc4MTg4OWRj
Li4yOGRhMDUwM2VkMjlkYTE3MmI1ZjEyN2ZjNjhjZTJlOTcyOGJiNGFkIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LVZhckNvbnN0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L29wX3Vyc2hpZnQtVmFyQ29uc3QuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3
ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0
IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dp
bmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0
LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVs
YXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24g
ZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3Qu
anMiKTsKIHZhciBvcE5hbWUgPSAidXJzaGlmdCI7CiB2YXIgb3AgPSAiPj4+IjsKIAotbG9hZCgi
Li9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmlu
YXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdl
bmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJDb25zdCIsIHZhbHVlcywg
dmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3Vyc2hpZnQtVmFyVmFyLmpz
IGIvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC1WYXJWYXIuanMKaW5kZXggY2IxNGFlZGY1ZmQx
YTc2NmYwYjdhOWNjY2FlMmRhYmQ5MTlmMTY0Zi4uYjg0MDM3YTAyYzJiN2I4MTM1Zjc0MTcyZWMw
Njc2OWEyOWEzYjY1YiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC1WYXJW
YXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC1WYXJWYXIuanMKQEAgLTMsNyAr
Myw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWlu
YXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFy
eS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4v
cmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnkt
b3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgiLi9y
ZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAidXJzaGlmdCI7CiB2
YXIgb3AgPSAiPj4+IjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIp
OworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRp
dmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwg
b3AsICJWYXJWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9yZWdyZXNzLTE1OTc3OS0xLmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMS5q
cwppbmRleCBiMDcxNTFkNWFhMmVlMjAwNTg1ZWRhYTE5MjYwYTdjZWEyNTkyMzU3Li5lZTlmZTIw
Nzc0MzIwZWI0YjYxNzM3N2M4MzU2MzllY2IxNDAwZTU2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0
cmVzcy9yZWdyZXNzLTE1OTc3OS0xLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5
Nzc5LTEuanMKQEAgLTEyOTAsNyArMTI5MCw3IEBAIGZ1bmN0aW9uIG1ha2VVc2VSZWdyZXNzaW9u
VGVzdChkLCBiKQogICAgICAgICBicmVhazsKICAgICAgIGRlZmF1bHQ6CiAgICAgICAgIAotICAg
ICAgICBzICs9ICIvKiByZWdyZXNzaW9uLXRlc3QtbG9hZCAqLyAiICsgImxvYWQoIiArIHNpbXBs
ZVNvdXJjZShmaWxlKSArICIpOyI7CisgICAgICAgIHMgKz0gIi8qIHJlZ3Jlc3Npb24tdGVzdC1s
b2FkICovICIgKyAibG9hZCgiICsgc2ltcGxlU291cmNlKGZpbGUpICsgIiwgImNhbGxlciByZWxh
dGl2ZSIpOyI7CiAgICAgICAgIGJyZWFrOwogICAgICAgCiAgICAgfQpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMi5qcyBiL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3Mt
MTU5Nzc5LTIuanMKaW5kZXggNTg3OWViOTFmZjcxYzc1MWU1N2Q0NTIwNTA5NWQxZDQzZDNiNGY0
NS4uODlmYmNlMDk1MjJhZDJlNWIzYTE0MGY3ODc0ZWVkMmRmYjJkZjExZSAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9y
ZWdyZXNzLTE1OTc3OS0yLmpzCkBAIC0xMjkwLDcgKzEyOTAsNyBAQCBmdW5jdGlvbiBtYWtlVXNl
UmVncmVzc2lvblRlc3QoZCwgYikKICAgICAgICAgYnJlYWs7CiAgICAgICBkZWZhdWx0OgogICAg
ICAgICAKLSAgICAgICAgcyArPSAiLyogcmVncmVzc2lvbi10ZXN0LWxvYWQgKi8gIiArICJsb2Fk
KCIgKyBzaW1wbGVTb3VyY2UoZmlsZSkgKyAiKTsiOworICAgICAgICBzICs9ICIvKiByZWdyZXNz
aW9uLXRlc3QtbG9hZCAqLyAiICsgImxvYWQoIiArIHNpbXBsZVNvdXJjZShmaWxlKSArICIsICJj
YWxsZXIgcmVsYXRpdmUiKTsiOwogICAgICAgICBicmVhazsKICAgICAgIAogICAgIH0KZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL3Jlc291cmNlcy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLWhl
bHBlci1mdW5jdGlvbnMuanMgYi9KU1Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvdHlwZWRhcnJheS1j
b25zdHJ1Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzCmluZGV4IGJmMzRkYjRjNmFlNmFlZmM3Y2Y5
NzNiMWI1YzYxODdlYTY2OWI0ZTcuLjcyYjA4MTQxYjExNWJiMjJkNThiNmU4N2JmNGRjNzI1Y2Yz
YmZkOWMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3Jlc291cmNlcy90eXBlZGFycmF5LWNv
bnN0cnVjdG9yLWhlbHBlci1mdW5jdGlvbnMuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvcmVzb3Vy
Y2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5qcwpAQCAtMSw0ICsx
LDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3N0YW5kYWxvbmUtcHJlLmpzIik7Citsb2FkKCIuL3N0
YW5kYWxvbmUtcHJlLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAidXNlIHN0cmljdCI7CiAK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVs
cGVyLWZ1bmN0aW9ucy5qcyBiL0pTVGVzdHMvc3RyZXNzL3Jlc291cmNlcy90eXBlZGFycmF5LXRl
c3QtaGVscGVyLWZ1bmN0aW9ucy5qcwppbmRleCBjOTE1YjI2OTdjOTMxYmU4MjAxYmNhMjEzZjcy
YmQ2ZDE4MTQ3OGViLi41NzlkODAxMDYzNTVjMjJiNmY3M2VlOGExNjAwMjNjZmUyOTM3ZjVmIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBl
ci1mdW5jdGlvbnMuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvcmVzb3VyY2VzL3R5cGVkYXJyYXkt
dGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJj
ZXMvc3RhbmRhbG9uZS1wcmUuanMiKTsKK2xvYWQoIi4vc3RhbmRhbG9uZS1wcmUuanMiLCAiY2Fs
bGVyIHJlbGF0aXZlIik7CiAKIHZhciB0eXBlZEFycmF5cyA9IFtJbnQ4QXJyYXksIFVpbnQ4QXJy
YXksIFVpbnQ4Q2xhbXBlZEFycmF5LCBJbnQxNkFycmF5LCBVaW50MTZBcnJheSwgSW50MzJBcnJh
eSwgVWludDMyQXJyYXksIEZsb2F0MzJBcnJheSwgRmxvYXQ2NEFycmF5XTsKIApkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItYW5vbnltb3VzLWZ1bmN0aW9uLmpz
IGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItYW5vbnltb3VzLWZ1bmN0aW9uLmpz
CmluZGV4IDU4NzZkZjc0Y2M1NjQzM2VmNjEyZGY1NWYxMzg2YTg3YjUzZTBmNGQuLmE4MjFmMTc0
NTc2NjA5NTVjZDk3MTE5MmI0ZjQ3ZWNlM2Y4OWZkY2YgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWFub255bW91cy1mdW5jdGlvbi5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1hbm9ueW1vdXMtZnVuY3Rpb24uanMKQEAgLTEsNSAr
MSw1IEBACiBpZiAocGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJvZmlsZXIoKSkgewotICAgIGxv
YWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIpOworICAgIGxvYWQo
Ii4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIsICJjYWxsZXIgcmVsYXRp
dmUiKTsKIAogICAgIGZ1bmN0aW9uIGZvbyhmKSB7CiAgICAgICAgIGYoKTsKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWJhc2ljLmpzIGIvSlNUZXN0cy9zdHJl
c3Mvc2FtcGxpbmctcHJvZmlsZXItYmFzaWMuanMKaW5kZXggYzEyMjg3MGRhZGYyYTM2MTA2MDRi
ZWVmM2RmNmExYWM0YzA2YjEwZi4uYTc2N2QwYjQ3MWI3MWM5MDUxZWM0NjE5MWNhMzljMzUzNDBm
NmUwYSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItYmFzaWMu
anMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItYmFzaWMuanMKQEAgLTEs
NSArMSw1IEBACiBpZiAocGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJvZmlsZXIoKSkgewotICAg
IGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIpOworICAgIGxv
YWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIsICJjYWxsZXIgcmVs
YXRpdmUiKTsKIAogICAgIGZ1bmN0aW9uIGJhcih5KSB7CiAgICAgICAgIGxldCB4OwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItYm91bmQtZnVuY3Rpb24tbmFt
ZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWJvdW5kLWZ1bmN0aW9uLW5h
bWUuanMKaW5kZXggN2ViYWE0MzNhMTIxOGI2NzdkZjhlYzZhNDE2ZGRkMTE0OWUxMWUyZS4uZjM3
NzYyOTg5NTg1NjVkOTA3Y2IzNTYwYzZhNzMzOTNhMDdiNjNmYSAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItYm91bmQtZnVuY3Rpb24tbmFtZS5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1ib3VuZC1mdW5jdGlvbi1uYW1lLmpzCkBA
IC0xLDUgKzEsNSBAQAogaWYgKHBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKCkpIHsK
LSAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIuanMiKTsKKyAg
ICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIuanMiLCAiY2FsbGVy
IHJlbGF0aXZlIik7CiAKICAgICBmdW5jdGlvbiBmb28oKSB7CiAgICAgICAgIGxldCBvID0ge307
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1kZWVwLXN0YWNr
LmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItZGVlcC1zdGFjay5qcwppbmRl
eCBjMzM5NjkxNjM4ODQxN2JmOWNjZDZmNzRjYmNjODVhYWM5NTA2MDgzLi5iMWUzNTVhNDk0OTU3
OTg3YTIzY2ZiNWM0NzU5NmU5MGIzYjlhZDVjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9z
YW1wbGluZy1wcm9maWxlci1kZWVwLXN0YWNrLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBs
aW5nLXByb2ZpbGVyLWRlZXAtc3RhY2suanMKQEAgLTEsNSArMSw1IEBACiBpZiAocGxhdGZvcm1T
dXBwb3J0c1NhbXBsaW5nUHJvZmlsZXIoKSkgewotICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmls
ZXIvc2FtcGxpbmdQcm9maWxlci5qcyIpOworICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIv
c2FtcGxpbmdQcm9maWxlci5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogICAgIGZ1bmN0aW9u
IGZvbyh4KSB7IAogICAgICAgICBsZXQgbyA9IHt9OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3Mvc2FtcGxpbmctcHJvZmlsZXItZGlzcGxheS1uYW1lLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2Ft
cGxpbmctcHJvZmlsZXItZGlzcGxheS1uYW1lLmpzCmluZGV4IGRhYjcxMDgwYTc1Y2FjYjU5ZDU4
OWVmOGMwMTVlYWRjZTY2NTU1ZjUuLjVkOTc5YzFlNmJiNzI3NDQ5YzE0ZmQwNDNlNjk0MTE1YjNk
M2VhYzQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWRpc3Bs
YXktbmFtZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1kaXNwbGF5
LW5hbWUuanMKQEAgLTEsNSArMSw1IEBACiBpZiAocGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJv
ZmlsZXIoKSkgewotICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxl
ci5qcyIpOworICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5q
cyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogICAgIGZ1bmN0aW9uIGZvbygpIHsKICAgICAgICAg
bGV0IG8gPSB7fTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVy
LWludGVybmFsLWZ1bmN0aW9uLW5hbWUuanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9m
aWxlci1pbnRlcm5hbC1mdW5jdGlvbi1uYW1lLmpzCmluZGV4IDg4OTJjYTM1MDNjOTA0OTNhOWFj
NWFmMzRjOWEwNDZmMjkwZDE0MTkuLmFjZmM2Y2JlMTY5ZmUwOTczYWI4OTI3OTkzYzg0MTY1M2E0
ZDdhMTcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWludGVy
bmFsLWZ1bmN0aW9uLW5hbWUuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmls
ZXItaW50ZXJuYWwtZnVuY3Rpb24tbmFtZS5qcwpAQCAtMSw1ICsxLDUgQEAKIGlmIChwbGF0Zm9y
bVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpKSB7Ci0gICAgbG9hZCgiLi9zYW1wbGluZy1wcm9m
aWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIik7CisgICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxl
ci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAgICAgZnVuY3Rp
b24gZm9vKCkgewogICAgICAgICBsZXQgeDsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3Nh
bXBsaW5nLXByb2ZpbGVyLW1pY3JvdGFza3MuanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1w
cm9maWxlci1taWNyb3Rhc2tzLmpzCmluZGV4IGNlMzVkMTZhYjFiYWIyNzYwNTEwMjU3NGNhNTJh
MzRjMGE0MzZhMDAuLjlkYjE4NjYyYTQ4YjY4MmNjZDdmMTA2OGJkMzVjODMwZWY0MjZjOWIgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLW1pY3JvdGFza3MuanMK
KysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItbWljcm90YXNrcy5qcwpAQCAt
MSw3ICsxLDcgQEAKIHZhciBhYm9ydCA9ICR2bS5hYm9ydDsKIAogaWYgKHBsYXRmb3JtU3VwcG9y
dHNTYW1wbGluZ1Byb2ZpbGVyKCkpIHsKLSAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3Nh
bXBsaW5nUHJvZmlsZXIuanMiKTsKKyAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBs
aW5nUHJvZmlsZXIuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKICAgICBsZXQgdHJlZSA9IG51
bGw7CiAgICAgZnVuY3Rpb24gdGVzdFJlc3VsdHMoKSB7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2VjdGlvbi5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzCmluZGV4IGJhOWU1NmU2
ZDg1MWQ0ZGMwYTYyYTFjZDI2MTMyYTYwYWU2MDZjNWMuLjUyZDQ1ZTA0NzExYmVjZTViZTZjMGVh
OTRmNWQwZWQ0ODM0MzEwNWIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXBy
b2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5n
LXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzCkBAIC02NSw3ICs2NSw3IEBAIGlmIChwbGF0
Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpICYmICR2bS5pc1dhc21TdXBwb3J0ZWQoKSkg
ewogICAgIGNvbnN0IGluc3RhbmNlID0gY29tcGlsZSh3YXNtRmlsZSwgaW1wb3J0T2JqZWN0KTsK
ICAgICBjb25zdCByZXN1bHQgPSBpbnN0YW5jZS5leHBvcnRzLl9wYXJyb3QoMSk7CiAKLSAgICBs
b2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIuanMiKTsKKyAgICBsb2Fk
KCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiAgICAgdmFyIHdhc21FbnRyeSA9IGZ1bmN0aW9uKCkgewogICAgICAgICByZXR1cm4g
aW5zdGFuY2UuZXhwb3J0cy5fcGFycm90KDEpOwogICAgIH07CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxp
bmctcHJvZmlsZXItd2FzbS5qcwppbmRleCA3YWQ2NWQxZTJlMDAyYjk5ZTdmYjI3ODVkM2ZmZjc0
MjcyZmU0ODAzLi45Zjg3N2Q3MThmZGYyZDRhMTBhYjllZmYxYzYwYTVhNjJiZmUxZTU1IDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMKQEAgLTEsNyArMSw3IEBACiAv
L0AgcnVuRGVmYXVsdAogCiBpZiAocGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJvZmlsZXIoKSAm
JiAkdm0uaXNXYXNtU3VwcG9ydGVkKCkpIHsKLSAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVy
L3NhbXBsaW5nUHJvZmlsZXIuanMiKTsKKyAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3Nh
bXBsaW5nUHJvZmlsZXIuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAgICAgbGV0IGJ1ZiA9IHJl
YWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvbG9vcC53YXNtIiwgImJpbmFyeSIpOwogICAgIGxldCBt
b2R1bGUgPSBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJ1Zik7CiAgICAgbGV0IGluc3RhbmNlID0g
bmV3IFdlYkFzc2VtYmx5Lkluc3RhbmNlKG1vZHVsZSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy9zaGFkb3ctY2hpY2tlbi1kaXNhYmxlZC5qcyBiL0pTVGVzdHMvc3RyZXNzL3NoYWRvdy1j
aGlja2VuLWRpc2FibGVkLmpzCmluZGV4IGE3MzEwMDMxODhiZDVmM2ExMDA2MGZmNTg3ZTAwNGZi
MTQ4ZWYwNDkuLmIyYzA1YzQ0M2U0NmY0ZTU1YWFkZGRjYWVlOGJhNmZiMGIxNjFjMDMgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NoYWRvdy1jaGlja2VuLWRpc2FibGVkLmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL3NoYWRvdy1jaGlja2VuLWRpc2FibGVkLmpzCkBAIC0zLDcgKzMsNyBAQAog
InVzZSBzdHJpY3QiOwogCiB2YXIgdmVyYm9zZSA9IGZhbHNlOwotbG9hZCgicmVzb3VyY2VzL3No
YWRvdy1jaGlja2VuLXN1cHBvcnQuanMiKTsKK2xvYWQoInJlc291cmNlcy9zaGFkb3ctY2hpY2tl
bi1zdXBwb3J0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogaW5pdGlhbGl6ZSgpOwogCiAoZnVu
Y3Rpb24gdGVzdDEoKSB7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zaGFkb3ctY2hpY2tl
bi1lbmFibGVkLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4tZW5hYmxlZC5qcwpp
bmRleCAxOWNmNzNkMDQwMTE0NjFiYzBmZTVkODM2MmE1NGQ0MGZjYTBkYzgwLi5lN2ViZjlmMGM4
MTM0Mjg0ZTRmODk0ZmRlMDJhY2Q0ZjA0MWQ0M2M3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVz
cy9zaGFkb3ctY2hpY2tlbi1lbmFibGVkLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3NoYWRvdy1j
aGlja2VuLWVuYWJsZWQuanMKQEAgLTYsNyArNiw3IEBAIHZhciBzaGFkb3dDaGlja2VuRnVuY3Rp
b25zT25TdGFjayA9ICR2bS5zaGFkb3dDaGlja2VuRnVuY3Rpb25zT25TdGFjazsKIAogdmFyIHZl
cmJvc2UgPSBmYWxzZTsKIAotbG9hZCgicmVzb3VyY2VzL3NoYWRvdy1jaGlja2VuLXN1cHBvcnQu
anMiKTsKK2xvYWQoInJlc291cmNlcy9zaGFkb3ctY2hpY2tlbi1zdXBwb3J0LmpzIiwgImNhbGxl
ciByZWxhdGl2ZSIpOwogaW5pdGlhbGl6ZSgpOwogCiAoZnVuY3Rpb24gdGVzdDEoKSB7CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLmpzIGIvSlNUZXN0
cy9zdHJlc3MvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci5qcwppbmRleCAwZThlYWY3NDk4ODA4MmM0
YjE0MGI3NWYwNTQzMzExMTIyY2RhMmE2Li5iMjQ1MzU2MmYyMGYzYWFlODBiYWQzODQwNWQzNjhk
MDI2YmRmZDQ1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWNvbnN0cnVj
dG9yLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktY29uc3RydWN0b3IuanMKQEAg
LTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLWhl
bHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3Ry
dWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogbGV0IFR5
cGVkQXJyYXkgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoSW50MzJBcnJheSk7CiAKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktY29weVdpdGhpbi5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktY29weVdpdGhpbi5qcwppbmRleCBlNWU3OWFhMGU2MDk2MWIwYWE0ZTU1
MDAyNzY0N2RlZDJhYWFkZDg5Li4xNjkwODg1NmFkYWIyM2EyZmZhMTNmZDYxNjQ0MjNhZWJmZDI3
YmI4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWNvcHlXaXRoaW4uanMK
KysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1jb3B5V2l0aGluLmpzCkBAIC0xLDQgKzEs
NCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMu
anMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25z
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3Mg
dGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluIGZ1bmN0
aW9uIik7CiAKIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1ldmVyeS5q
cyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZXZlcnkuanMKaW5kZXggYzRlOTc5Y2FiNThh
Y2QzMTVmMjdkYTQwMmYzNGYzNjkwN2Q2MGJiZC4uMWQwYWJiZDE3ZDRhODBmOTc3Njg5MjllMWY1
NDUzMDdiZDdkM2I1YSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1ldmVy
eS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWV2ZXJ5LmpzCkBAIC0xLDQgKzEs
NCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMu
anMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25z
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNr
cyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLmV2ZXJ5IGZ1bmN0aW9u
IgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmlsbC5qcyBiL0pT
VGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmlsbC5qcwppbmRleCA3NTViNDQwNDdjYTdhNDQ4ZDBh
OTMxMmIzNTIyYjNjYjk4MzAxNGMyLi5mZDUzNzg4NDFkOGRlODgxMzg5NzY5YTg3MzAwYmFlODM0
OWU4YTY0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbGwuanMKKysr
IGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maWxsLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9h
ZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xv
YWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNh
bGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVo
YXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLmZpbGwgZnVuY3Rpb24iCiApOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maWx0ZXIuanMgYi9KU1Rlc3RzL3N0
cmVzcy90eXBlZGFycmF5LWZpbHRlci5qcwppbmRleCA3Y2U3YmJmNjM2Nzk3YmZkZTEzNTM1YWM0
ZjQ4MTg3YzViMGE0NTA2Li4zYTIyM2RmNGZmNzY2NzQ5ODdjYTRmMTY0ZGEzNGIxMzkxZDQ4YjQw
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbHRlci5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbHRlci5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQo
Ii4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2Fk
KCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2
aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5maWx0ZXIgZnVuY3Rpb24iCiApOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maW5kLmpzIGIvSlNUZXN0cy9zdHJl
c3MvdHlwZWRhcnJheS1maW5kLmpzCmluZGV4IGIxOTAyYzQ1YTBlZTgyZTVkMDlhZTJiMTcyNTUz
ZThiZjk1OTkyYWUuLmU4NjA1YjIyMTIwNmY0M2Y4YjRlOTNmNzBkYWFmNzNlMmNlYzUyOGQgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmluZC5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy90eXBlZGFycmF5LWZpbmQuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291
cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNv
dXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0
aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuZmluZCBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbmRJbmRleC5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5
cGVkYXJyYXktZmluZEluZGV4LmpzCmluZGV4IGUwMTViN2M1YTUyOTE5ZGM1MjdhY2YxZjJmODJh
ZWI1OWZlMzFlZDcuLjkwODYyMjI0MDE1MjBmODU1M2I5MzY2OTEwZTBkMDEzNjZhYjE1MTQgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmluZEluZGV4LmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmluZEluZGV4LmpzCkBAIC0xLDQgKzEsNCBAQAotbG9h
ZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xv
YWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNh
bGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVo
YXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLmZpbmRJbmRleCBmdW5jdGlvbiIKICk7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZvckVhY2guanMgYi9KU1Rl
c3RzL3N0cmVzcy90eXBlZGFycmF5LWZvckVhY2guanMKaW5kZXggMGQ2OWZmZWQ0YzQ2NDgxNGFm
YTEwYWIwYWZjZTc3YmU0MDAzNzM4NS4uMmFjZjI1YmMyZjMzYTU4M2I4NzM3ZGVkYjA3M2QwNjMx
ZjZiOThmYyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1mb3JFYWNoLmpz
CisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZm9yRWFjaC5qcwpAQCAtMSw0ICsxLDQg
QEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpz
Iik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5q
cyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3Mg
dGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5mb3JFYWNoIGZ1bmN0aW9u
IgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZnJvbS5qcyBiL0pT
VGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZnJvbS5qcwppbmRleCBkYmJmYzhhMmVkZmJkYzg3NmRm
NDM4OWYwN2U2OTYwYTBkYzFmN2ZkLi4yZmZjOWMxZTEwNWExOTNhMzg4N2NlMDBhMjc4OGUyZTFm
OTE4YTdjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZyb20uanMKKysr
IGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1mcm9tLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9h
ZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpz
Iik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLWhlbHBlci1mdW5j
dGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3Qg
Y2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5mcm9tIGZ1bmN0aW9uIgogKTsK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktaW5jbHVkZXMuanMgYi9KU1Rl
c3RzL3N0cmVzcy90eXBlZGFycmF5LWluY2x1ZGVzLmpzCmluZGV4IGQ2YzAzYWY4ZGEyZDMwNjRi
YTg4OTU0ODkzNzFlMmJjOGRiMDYyYjUuLmU2ODFhNDgzNTc0YWE5ZmI5MzU0YmRjY2YxZDljYmZh
YmE3NTMzODQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktaW5jbHVkZXMu
anMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1pbmNsdWRlcy5qcwpAQCAtMSw0ICsx
LDQgQEAKLWxvYWQoInJlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5q
cyIpOworbG9hZCgicmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpz
IiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiBmb3IgKGNvbnN0cnVjdG9yIG9mIHR5cGVkQXJyYXlz
KSB7CiAgICAgbGV0IGEgPSBuZXcgY29uc3RydWN0b3IoMTApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvdHlwZWRhcnJheS1pbmRleE9mLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJh
eS1pbmRleE9mLmpzCmluZGV4IDdkZDVmMDAxYWE2YTQ1OGVlMGUxZDFjZjRjMjM0Yzc2NmE1MjE0
ZGEuLjAzMjFhYmE1NWUzMTU4MzAwYjRmNmRkZWQwZGIwMzYxN2YxOWJiN2UgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktaW5kZXhPZi5qcworKysgYi9KU1Rlc3RzL3N0cmVz
cy90eXBlZGFycmF5LWluZGV4T2YuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNl
cy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJj
ZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZl
Iik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUg
VHlwZWRBcnJheS5wcm90b3R5cGUuaW5kZXhPZiBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWxhc3RJbmRleE9mLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
dHlwZWRhcnJheS1sYXN0SW5kZXhPZi5qcwppbmRleCBjNzQwMDQzMjQyYzA2N2U4YWRiMWZkOTYy
Y2M0MWFhNjFmM2NmNjA1Li4zYmE2Y2VjNTIwMWUwNGJjMjI3ZmFjYTZjMTMxN2E3MmIzYjNkMTY1
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWxhc3RJbmRleE9mLmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktbGFzdEluZGV4T2YuanMKQEAgLTEsNCArMSw0
IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5q
cyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tz
IHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgZnVu
Y3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1tYXAuanMg
Yi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LW1hcC5qcwppbmRleCA4ZGFkMjIyY2NmNTAxOWEz
YWYwOTM4NjZhZjkzYWRkNjdjMDY1YzEyLi45YTE2YWYzMmExNDQ1NTFiZDhjNDExMTA4OTVlZjRm
MThmZWYxMjk2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LW1hcC5qcwor
KysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LW1hcC5qcwpAQCAtMSw0ICsxLDQgQEAKLWxv
YWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Cits
b2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJj
YWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJl
aGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5tYXAgZnVuY3Rpb24iCiApOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1vZi5qcyBiL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktb2YuanMKaW5kZXggMGU4NTJkZDhjOGNhZmM4M2QwYjM4OTBhNmIzYjQ0NDE2
Mjg2ODgwZS4uMzY3NDMyN2E0ZDg5NzkzYTMyMWViMmIwYzY0YjBlYjMyZjhhYzA2YiAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1vZi5qcworKysgYi9KU1Rlc3RzL3N0cmVz
cy90eXBlZGFycmF5LW9mLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlw
ZWRhcnJheS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291
cmNlcy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVy
IHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlv
ciBvZiB0aGUgVHlwZWRBcnJheS5vZiBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy90eXBlZGFycmF5LXJlZHVjZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXkt
cmVkdWNlLmpzCmluZGV4IDM5YTZkYTMxYTQ2ZWQ4YjczZTJmMDU3MGQyMzQ5MDE0ZjQwYTBlNTYu
LmUxOWU1MDRlMWU2MTc3MzhiZmNjZThhYThhNjFlMjQ0MzEzNzg3NjUgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktcmVkdWNlLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5
cGVkYXJyYXktcmVkdWNlLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlw
ZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5
cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwog
ZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVk
QXJyYXkucHJvdG90eXBlLnJlZHVjZSBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy90eXBlZGFycmF5LXJlZHVjZVJpZ2h0LmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1yZWR1Y2VSaWdodC5qcwppbmRleCBkNWRiM2M3YjZlMzJkOGM0MzQzMDdhYmU3MWI4YjAx
ZjlhNDU5MTkxLi44ZjhiZGJlN2VhNGIzZjFkNTQ4NGVlMWQ5MmFjYzlhZmUxNmU4ZmQ1IDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXJlZHVjZVJpZ2h0LmpzCisrKyBiL0pT
VGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktcmVkdWNlUmlnaHQuanMKQEAgLTEsNCArMSw0IEBACi1s
b2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOwor
bG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAi
Y2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBi
ZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgZnVuY3Rpb24i
CiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zZXQuanMgYi9KU1Rl
c3RzL3N0cmVzcy90eXBlZGFycmF5LXNldC5qcwppbmRleCBmYWM1ZmM3Y2VkZGMyMTkxYzc0Mjk0
Y2M0Y2UxOGYyN2JjZTZjNThhLi5kODJlNTk4Nzc2YzhjMGM5YmRjODA2ZDBkNTRlZGI5ZDcwOTZl
NzQ4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNldC5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNldC5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4v
cmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIu
L3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIg
cmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBv
ZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuc2V0IGZ1bmN0aW9uIik7CiAKIHNob3VsZEJlKCJJ
bnQzMkFycmF5LnByb3RvdHlwZS5zZXQubGVuZ3RoIiwgIjEiKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL3R5cGVkYXJyYXktc2xpY2UuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5
LXNsaWNlLmpzCmluZGV4IGZiY2IxZjhiMTVkNGQ4MDg0ZmRlNjQ1MDFlYTdmNTBjNGU1YTQ4OWUu
Ljk1ZGVkMDM5NGVjMTE0YmM5MjllNWE2NWU0YzgzYWY1ZDljZmM1OTEgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc2xpY2UuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlw
ZWRhcnJheS1zbGljZS5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVk
YXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBl
ZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRl
c2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFy
cmF5LnByb3RvdHlwZS5zbGljZSBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy90eXBlZGFycmF5LXNvbWUuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNvbWUu
anMKaW5kZXggMDEzYzQ5Njg1MmRhNGMxZDI2ODM0ZWRkNTBjNDBkNjcwZWMzZWM1YS4uYzM4YTI4
OWM2NzRmMmQ5ZjVlMTQ1ODkwNmYzOTg4MzhhMDk3MzJmOCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9z
dHJlc3MvdHlwZWRhcnJheS1zb21lLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXkt
c29tZS5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVz
dC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRl
c3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9u
KAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3Rv
dHlwZS5zb21lIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVk
YXJyYXktc29ydC5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc29ydC5qcwppbmRleCA2
OTQxZTBhZDI5ZTQwZmM3ZDU5NzMxMWJmM2QxOTBhNDdhYWRiNDRlLi5mMzYzMTI3MjIzYWU5YWYw
NjQ2NTNkMDVkN2U2Y2M2ZjRlNzRlYmM4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBl
ZGFycmF5LXNvcnQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zb3J0LmpzCkBA
IC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1m
dW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXIt
ZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0
ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLnNvcnQg
ZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zdWJh
cnJheS5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc3ViYXJyYXkuanMKaW5kZXggOGYz
Mjk1ZjAxZjUyMTI5YjJiODM1MTJkMjdhNDBlODZjN2RlOThmNi4uMzBiYTI1NWM4NTg3YzU1MmYw
YzM0Mjc1YTgwMmExNWE0YTFkMmU5MSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1zdWJhcnJheS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXN1YmFycmF5
LmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhl
bHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1o
ZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAi
VGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBl
LnN1YmFycmF5IGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9CdWlsZGVy
LmpzIGIvSlNUZXN0cy93YXNtL0J1aWxkZXIuanMKaW5kZXggOTc2Mzc3ZjdiM2Q5MTNkNGI4ZGIx
ZjhhNzU5NmU3M2QyNzkxY2I0Ny4uYzc4ODNmNGY0MzVkYzVkZjQxMjQ2MDM2M2E4M2Y4MjQ2OWUx
YmU4YyAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL0J1aWxkZXIuanMKKysrIGIvSlNUZXN0cy93
YXNtL0J1aWxkZXIuanMKQEAgLTIzLDExICsyMywxMSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
Ci1pbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0LmpzJzsKLWltcG9ydCAqIGFzIEJ1aWxk
V2ViQXNzZW1ibHkgZnJvbSAnQnVpbGRlcl9XZWJBc3NlbWJseUJpbmFyeS5qcyc7Ci1pbXBvcnQg
KiBhcyBMTEIgZnJvbSAnTG93TGV2ZWxCaW5hcnkuanMnOwotaW1wb3J0ICogYXMgV0FTTSBmcm9t
ICdXQVNNLmpzJzsKLWltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbGl0aWVzLmpzJzsKK2ltcG9y
dCAqIGFzIGFzc2VydCBmcm9tICcuL2Fzc2VydC5qcyc7CitpbXBvcnQgKiBhcyBCdWlsZFdlYkFz
c2VtYmx5IGZyb20gJy4vQnVpbGRlcl9XZWJBc3NlbWJseUJpbmFyeS5qcyc7CitpbXBvcnQgKiBh
cyBMTEIgZnJvbSAnLi9Mb3dMZXZlbEJpbmFyeS5qcyc7CitpbXBvcnQgKiBhcyBXQVNNIGZyb20g
Jy4vV0FTTS5qcyc7CitpbXBvcnQgKiBhcyB1dGlsIGZyb20gJy4vdXRpbGl0aWVzLmpzJzsKIAog
Y29uc3QgX2lzVmFsaWRWYWx1ZSA9ICh2YWx1ZSwgdHlwZSkgPT4gewogICAgIHN3aXRjaCAodHlw
ZSkgewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL0J1aWxkZXJfV2ViQXNzZW1ibHlCaW5hcnku
anMgYi9KU1Rlc3RzL3dhc20vQnVpbGRlcl9XZWJBc3NlbWJseUJpbmFyeS5qcwppbmRleCA4NjMz
OGQzNDVkYzg5OTZkMTNhNDAwMTJiMzVkNTQxNzI5YWU2NWRhLi4xM2M1ODYyMjFlMzZiOTVjNWJl
MzIyYTNjNjM2OTEyNjE4OTM3NzI3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vQnVpbGRlcl9X
ZWJBc3NlbWJseUJpbmFyeS5qcworKysgYi9KU1Rlc3RzL3dhc20vQnVpbGRlcl9XZWJBc3NlbWJs
eUJpbmFyeS5qcwpAQCAtMjMsOSArMjMsOSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1pbXBv
cnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0LmpzJzsKLWltcG9ydCBMb3dMZXZlbEJpbmFyeSBm
cm9tICdMb3dMZXZlbEJpbmFyeS5qcyc7Ci1pbXBvcnQgKiBhcyBXQVNNIGZyb20gJ1dBU00uanMn
OworaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJy4vYXNzZXJ0LmpzJzsKK2ltcG9ydCBMb3dMZXZl
bEJpbmFyeSBmcm9tICcuL0xvd0xldmVsQmluYXJ5LmpzJzsKK2ltcG9ydCAqIGFzIFdBU00gZnJv
bSAnLi9XQVNNLmpzJzsKIAogY29uc3QgcHV0ID0gKGJpbiwgdHlwZSwgdmFsdWUpID0+IGJpblt0
eXBlXSh2YWx1ZSk7CiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9Mb3dMZXZlbEJpbmFyeS5q
cyBiL0pTVGVzdHMvd2FzbS9Mb3dMZXZlbEJpbmFyeS5qcwppbmRleCBmOWJjOGEzNzA2NTc0YWQ0
NDUzYTEwZTkxYTk0ZjJjMTEyNTA3ODc2Li5lZGMwYmVjZmRlM2EzYjM5NzNkZGM4N2U3MTBlNzM3
NTUxYTVmYjUzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vTG93TGV2ZWxCaW5hcnkuanMKKysr
IGIvSlNUZXN0cy93YXNtL0xvd0xldmVsQmluYXJ5LmpzCkBAIC0yMyw4ICsyMyw4IEBACiAgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKLWltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQuanMnOwot
aW1wb3J0ICogYXMgV0FTTSBmcm9tICdXQVNNLmpzJzsKK2ltcG9ydCAqIGFzIGFzc2VydCBmcm9t
ICcuL2Fzc2VydC5qcyc7CitpbXBvcnQgKiBhcyBXQVNNIGZyb20gJy4vV0FTTS5qcyc7CiAKIGNv
bnN0IF9pbml0aWFsQWxsb2NhdGlvblNpemUgPSAxMDI0OwogY29uc3QgX2dyb3dBbGxvY2F0aW9u
U2l6ZSA9IGFsbG9jYXRlZCA9PiBhbGxvY2F0ZWQgKiAyOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93
YXNtL1JFQURNRS5tZCBiL0pTVGVzdHMvd2FzbS9SRUFETUUubWQKaW5kZXggMDY1MTU3NTVmYjYy
ZDE0N2VkMzUzODBlNTMyYzAzNzJkMjk2MWM5OC4uMjU1ODljMTIxYjVmMWFmZTAxM2Y3MGJmNjMz
MTExMTM0NDFkODg4YyAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL1JFQURNRS5tZAorKysgYi9K
U1Rlc3RzL3dhc20vUkVBRE1FLm1kCkBAIC0yOSw3ICsyOSw3IEBAIGNyZWF0ZSBhIHNjb3BlIGNh
biBiZSBuZXN0ZWQgdXNpbmcgYSBsYW1iZGEuCiBBIHNpbXBsZSBleGFtcGxlOgogCiBgYGBqYXZh
c2NyaXB0Ci1pbXBvcnQgQnVpbGRlciBmcm9tICdCdWlsZGVyLmpzJzsKK2ltcG9ydCBCdWlsZGVy
IGZyb20gJy4vQnVpbGRlci5qcyc7CiAKIGNvbnN0IGJ1aWxkZXIgPSBuZXcgQnVpbGRlcigpOwog
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vV0FTTS5qcyBiL0pTVGVzdHMvd2FzbS9XQVNNLmpz
CmluZGV4IDNjOWRmNjg3MTRhMmE0MmY4MTdiZWViMWI5ZTZmYThhMmViNGZkZTcuLjA5NzU1NmNj
ZTY5ZjZkNTk4MThhZTk4YjA4ZGJkMDVlMTE2YjVlOTUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2Fz
bS9XQVNNLmpzCisrKyBiL0pTVGVzdHMvd2FzbS9XQVNNLmpzCkBAIC0yMyw3ICsyMyw3IEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKLWltcG9ydCAqIGFzIHV0aWxpdGllcyBmcm9tICd1dGlsaXRp
ZXMuanMnOworaW1wb3J0ICogYXMgdXRpbGl0aWVzIGZyb20gJy4vdXRpbGl0aWVzLmpzJzsKIAog
Y29uc3QgX21hcFZhbHVlcyA9IGZyb20gPT4gewogICAgIGxldCB2YWx1ZXMgPSB7fTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvd2FzbS9yZWdyZXNzL3NlbGVjdGY2NC5qcyBiL0pTVGVzdHMvd2FzbS9y
ZWdyZXNzL3NlbGVjdGY2NC5qcwppbmRleCBkZDQ5NmM5ODlhNWFlMWZhMzE1MWVhZjc3YjZkOTc4
ZDc2MDEzNTE3Li4wYTQwY2RiODhmMzM1NjdlZDM1NmExZGFlMWE4MDUzYjk2NmMzOTNlIDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3dhc20vcmVncmVzcy9zZWxlY3RmNjQuanMKKysrIGIvSlNUZXN0cy93
YXNtL3JlZ3Jlc3Mvc2VsZWN0ZjY0LmpzCkBAIC0xLDQgKzEsNCBAQAotaW1wb3J0IHsgdGVzdCB9
IGZyb20gJ3NlbGVjdGY2NC53YXNtJworaW1wb3J0IHsgdGVzdCB9IGZyb20gJy4vc2VsZWN0ZjY0
Lndhc20nCiBpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnLi4vYXNzZXJ0LmpzJzsKIAogYXNzZXJ0
LmVxKHRlc3QoKSwgNDMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404126</attachid>
            <date>2020-07-12 19:43:10 -0700</date>
            <delta_ts>2020-07-13 09:57:23 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-214205-20200712194309.patch</filename>
            <type>text/plain</type>
            <size>170160</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZjRjNjYxOTE5YWQ2ZDY2YzI3YzY0ZDQ5ODkzMzE3NzAxN2QzNzc2Li5kYTcxNTk5MjBjYWFmODlk
MDBhZDk1MDMxMjk0NTA3MjRkODM4ZDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMjAgQEAKKzIwMjAtMDctMTIgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgU291cmNlUHJvdmlkZXIgYW5kIGFkZCBjYWxsZXIg
cmVsYXRpdmUgbG9hZCBzY3JpcHQgdG8ganNjLmNwcAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MjA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVz
dWtlIFN1enVraS4KKworICAgICAgICBUaGlzIHBhdGNoIG9yaWdpbmFsbHkgd2FzIGp1c3QgdG8g
YWRkIGFuIG9wdGlvbmFsIHBhcmFtZXRlciB0byBvdXIKKyAgICAgICAgbG9hZCBmdW5jdGlvbiBz
byB0aGF0IGFueSByZWxhdGl2ZSBwYXRoIGlzIGNvbXB1dGVkIHdpdGggcmVzcGVjdAorICAgICAg
ICB0byBjYWxsaW5nIHNjcmlwdC4gIFJhdGhlciB0aGFuIGNvbXB1dGluZyB0aGUgcGF0aCByZWxh
dGl2ZSB0byB0aGUKKyAgICAgICAgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4gVGhlIG1haW4g
YWR2YW50YWdlIG9mIHRoaXMgaXMgbm93IHlvdQorICAgICAgICBjYW4gcnVuIGFsbCB0aGUgSlNU
ZXN0cy9zdHJlc3Mgc2NyaXB0cyBmcm9tIGFueXdoZXJlIHJhdGhlciB0aGFuCisgICAgICAgIG9u
bHkgZnJvbSB0aGUgc3RyZXNzIGRpcmVjdG9yeS4gVGhpcyBhbHNvIG1hdGNoZXMganNjLmNwcCdz
IG1vZHVsZQorICAgICAgICBsb2FkZXIgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgVG8gbWFr
ZSB0aGlzIHBvc3NpYmxlIGEgc3VycHJpc2luZyBudW1iZXIgb2YgY2hhbmdlcyB3ZXJlCisgICAg
ICAgIG5lZWRlZC4gU3BlY2lmaWNhbGx5LCBpdCB3YXMgbXVjaCBlYXNpZXIgdG8gZ2V0IHRoaXMg
dG8gd29yayBpZiB3ZQorICAgICAgICBjb252ZXJ0ZWQgU291cmNlT3JpZ2luJ3MgdXJsIHRvIGEg
V1RGOjpVUkwgcmF0aGVyIHRoYW4ganVzdCBhCisgICAgICAgIFdURjo6U3RyaW5nLiBBdCB0aGUg
c2FtZSB0aW1lIGl0IGJlY2FtZSBjbGVhciB0aGF0CisgICAgICAgIFNvdXJjZVByb3ZpZGVyJ3Mg
bV9zb3VyY2VVUkwgaXMgcmVhbGx5IG5vdCBhIFVSTCBidXQgbW9yZSBvZiBhCisgICAgICAgIGZp
bGUgbmFtZSwgd2hpY2ggY2FuIHNvbWV0aW1lcyBiZSBhIFVSTC4gSXQncyBwb3NzaWJsZSB0aGF0
IHdlCisgICAgICAgIGRvbid0IG5lZWQgbV9zb3VyY2VVUkwgYXQgYWxsIGJ1dCB3ZSBzaG91bGQg
ZG8gdGhhdCBpbiBhIGRpZmZlcmVudAorICAgICAgICBwYXRjaC4KKworICAgICAgICBBZGRpdGlv
bmFsbHksIGpzYy5jcHAgbm93IHVzZXMgV1RGOjpVUkwgZm9yIGhhbmRsaW5nIGZpbGUKKyAgICAg
ICAgcGF0aHMuIFRoaXMgaXMgY2xlYW5lciB0aGFuIG1hbmFnaW5nIHRyeWluZyB0byBkbyBpdCBv
dXJzZWx2ZXMgYW5kCisgICAgICAgIHNob3VsZCB3b3JrIGFjcm9zcyBhbGwgdGhlIHBvcnRzLgor
CisgICAgICAgIExhc3RseSwgdGhlIEpTQyBDTEkgbm8gbG9uZ2VyIGFjY2VwdHMgImJhcmUtbmFt
ZSIKKyAgICAgICAgc3BlY2lmaWVycy4gaS5lLiBhbGwgc3BlY2lmaWVycyBtdXN0IHN0YXJ0IHdp
dGggIi8iLCAiLi8iLCBvcgorICAgICAgICAiLi4vIi4gVGhpcyBtYXRjaGVzIHdoYXQgd2UgZG8g
aW4gb3VyIE9iai1DIEFQSSBhbmQgaW4KKyAgICAgICAgV2ViQ29yZS4gV2hpbGUgZml4aW5nIHRl
c3RzIEkgYWxzbyBub3RpY2VkIHRoYXQgdGhlIGVycm9yIG1lc3NhZ2UKKyAgICAgICAgd2FzIGFs
bW9zdCB1c2VsZXNzIHNpbmNlIGl0IGRpZG4ndCB0ZWxsIHlvdSB3aGF0IHRoZSBzcGVjaWZpZXIg
b3IKKyAgICAgICAgcmVmZXJyZXIgaW4gcXVlc3Rpb24gc28gdGhhdCBpbmZvcm1hdGlvbiBpcyBu
b3cgcGFydCBvZiB0aGUgdXNlcgorICAgICAgICB2aXNpYmxlIGVycm9yLgorCisgICAgICAgICog
QVBJL0pTQVBJR2xvYmFsT2JqZWN0Lm1tOgorICAgICAgICAoSlNDOjpjb21wdXRlVmFsaWRJbXBv
cnRTcGVjaWZpZXIpOgorICAgICAgICAoSlNDOjpKU0FQSUdsb2JhbE9iamVjdDo6bW9kdWxlTG9h
ZGVySW1wb3J0TW9kdWxlKToKKyAgICAgICAgKiBBUEkvSlNCYXNlLmNwcDoKKyAgICAgICAgKEpT
RXZhbHVhdGVTY3JpcHQpOgorICAgICAgICAoSlNDaGVja1NjcmlwdFN5bnRheCk6CisgICAgICAg
ICogQVBJL0pTT2JqZWN0UmVmLmNwcDoKKyAgICAgICAgKEpTT2JqZWN0TWFrZUZ1bmN0aW9uKToK
KyAgICAgICAgKiBBUEkvSlNTY3JpcHQubW06CisgICAgICAgICgtW0pTU2NyaXB0IHNvdXJjZUNv
ZGVdKToKKyAgICAgICAgKiBBUEkvSlNTY3JpcHRSZWYuY3BwOgorICAgICAgICAqIEFQSS9nbGli
L0pTQ0NvbnRleHQuY3BwOgorICAgICAgICAoanNjX2NvbnRleHRfY2hlY2tfc3ludGF4KToKKyAg
ICAgICAgKiBidWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwOgorICAgICAgICAoSlNDOjpC
dWlsdGluRXhlY3V0YWJsZXM6OkJ1aWx0aW5FeGVjdXRhYmxlcyk6CisgICAgICAgICogZGVidWdn
ZXIvRGVidWdnZXJMb2NhdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyTG9jYXRpb246
OkRlYnVnZ2VyTG9jYXRpb24pOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24u
aDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXJMb2NhdGlvbjo6RGVidWdnZXJMb2NhdGlvbik6Cisg
ICAgICAgICogaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKEluc3Bl
Y3Rvcjo6U2NyaXB0RGVidWdTZXJ2ZXI6OnNvdXJjZVBhcnNlZCk6CisgICAgICAgICoganNjLmNw
cDoKKyAgICAgICAgKGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KToKKyAgICAgICAgKGFic29sdXRl
UGF0aCk6CisgICAgICAgIChHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6
CisgICAgICAgIChHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlclJlc29sdmUpOgorICAgICAgICAo
anNjU291cmNlKToKKyAgICAgICAgKGZldGNoTW9kdWxlRnJvbUxvY2FsRmlsZVN5c3RlbSk6Cisg
ICAgICAgIChHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckZldGNoKToKKyAgICAgICAgKGZ1bmN0
aW9uTG9hZCk6CisgICAgICAgIChmdW5jdGlvbkNhbGxlclNvdXJjZU9yaWdpbik6CisgICAgICAg
IChmdW5jdGlvbkRvbGxhckFnZW50U3RhcnQpOgorICAgICAgICAoZnVuY3Rpb25DaGVja01vZHVs
ZVN5bnRheCk6CisgICAgICAgIChydW5XaXRoT3B0aW9ucyk6CisgICAgICAgIChydW5JbnRlcmFj
dGl2ZSk6CisgICAgICAgIChNb2R1bGVOYW1lOjpzdGFydHNXaXRoUm9vdCBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChNb2R1bGVOYW1lOjpNb2R1bGVOYW1lKTogRGVsZXRlZC4KKyAgICAgICAg
KGV4dHJhY3REaXJlY3RvcnlOYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKHJlc29sdmVQYXRoKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYXJzZXIvTm9kZXMuaDoKKyAgICAgICAgKEpTQzo6U2NvcGVO
b2RlOjpzb3VyY2UgY29uc3QpOgorICAgICAgICAoSlNDOjpTY29wZU5vZGU6OnNvdXJjZVVSTCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGFyc2VyL1NvdXJjZUNvZGUuaDoKKyAgICAgICAg
KEpTQzo6bWFrZVNvdXJjZSk6CisgICAgICAgICogcGFyc2VyL1NvdXJjZUNvZGVLZXkuaDoKKyAg
ICAgICAgKEpTQzo6U291cmNlQ29kZUtleTo6aG9zdCBjb25zdCk6CisgICAgICAgICogcGFyc2Vy
L1NvdXJjZVByb3ZpZGVyLmNwcDoKKyAgICAgICAgKEpTQzo6U291cmNlUHJvdmlkZXI6OlNvdXJj
ZVByb3ZpZGVyKToKKyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlkZXIuaDoKKyAgICAgICAg
KEpTQzo6U291cmNlUHJvdmlkZXI6OnNvdXJjZVVSTCBjb25zdCk6CisgICAgICAgIChKU0M6OlN0
cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpTdHJpbmdTb3VyY2VQ
cm92aWRlcjo6U3RyaW5nU291cmNlUHJvdmlkZXIpOgorICAgICAgICAoSlNDOjpTb3VyY2VQcm92
aWRlcjo6dXJsIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0NhY2hlZFR5cGVz
LmNwcDoKKyAgICAgICAgKEpTQzo6Q2FjaGVkU291cmNlT3JpZ2luOjplbmNvZGUpOgorICAgICAg
ICAoSlNDOjpDYWNoZWRTb3VyY2VPcmlnaW46OmRlY29kZSBjb25zdCk6CisgICAgICAgIChKU0M6
OkNhY2hlZFNvdXJjZVByb3ZpZGVyU2hhcGU6OmVuY29kZSk6CisgICAgICAgIChKU0M6OkNhY2hl
ZFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpkZWNvZGUgY29uc3QpOgorICAgICAgICAoSlNDOjpDYWNo
ZWRXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyOjpkZWNvZGUgY29uc3QpOgorICAgICAgICAqIHJ1
bnRpbWUvRXJyb3IuY3BwOgorICAgICAgICAoSlNDOjphZGRFcnJvckluZm8pOgorICAgICAgICAq
IHJ1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVj
dEZ1bmN0aW9uU2tpcHBpbmdFdmFsRW5hYmxlZENoZWNrKToKKyAgICAgICAgKiBydW50aW1lL1Nj
cmlwdEV4ZWN1dGFibGUuaDoKKyAgICAgICAgKEpTQzo6U2NyaXB0RXhlY3V0YWJsZTo6c291cmNl
VVJMIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL1NvdXJjZU9yaWdpbi5oOgorICAgICAgICAo
SlNDOjpTb3VyY2VPcmlnaW46OlNvdXJjZU9yaWdpbik6CisgICAgICAgIChKU0M6OlNvdXJjZU9y
aWdpbjo6dXJsIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U291cmNlT3JpZ2luOjpzdHJpbmcgY29u
c3QpOgorICAgICAgICAoSlNDOjpTb3VyY2VPcmlnaW46OmlzTnVsbCBjb25zdCk6CisgICAgICAg
ICogcnVudGltZS9UaHJvd1Njb3BlLmNwcDoKKyAgICAgICAgKEpTQzo6VGhyb3dTY29wZTo6dGhy
b3dFeGNlcHRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvVGhyb3dTY29wZS5oOgorICAgICAgICAo
SlNDOjpUaHJvd1Njb3BlOjp0aHJvd0V4Y2VwdGlvbik6CisgICAgICAgIChKU0M6OnRocm93Vk1F
eGNlcHRpb24pOgorICAgICAgICAqIHRvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcDoKKyAgICAg
ICAgKEpTQzo6aW5pdGlhbGl6ZU92ZXJyaWRlSW5mbyk6CisgICAgICAgICogdG9vbHMvSlNEb2xs
YXJWTS5jcHA6CisgICAgICAgIChKU0M6OmRvUHJpbnQpOgorICAgICAgICAoSlNDOjpmdW5jdGlv
bkNyYXNoKToKKwogMjAyMC0wNy0wOSAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSRUdSRVNTSU9OKHIyNjIzMDIpOiBJVE1MS2l0IGRlYnVnZ2FibGVzIGluIGxpc3Rp
bmdzIGFyZSBtaXNzaW5nIGEgdGl0bGUsIHVzZSBVVUlEIGluc3RlYWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYWExOWViMjll
YjNiOGY2OGY1NGI2NDRlODczNTU3ZDUyNDA2MWZjZi4uODFhNzNhODZkZDIwYzhkNzQ2MWE0ODg2
NDQ1NjkyNTZmMzNjZDc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0wNy0xMiAgS2VpdGgg
TWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBDbGVhbiB1cCBTb3Vy
Y2VQcm92aWRlciBhbmQgYWRkIGNhbGxlciByZWxhdGl2ZSBsb2FkIHNjcmlwdCB0byBqc2MuY3Bw
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyMDUK
KworICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpLgorCisgICAgICAgIFVzaW5nIGEg
VVJMIGFzIGEgYm9vbGVhbiBpbiBhIGNvbmRpdGlvbmFsIHNob3VsZCBiZSBhIGNvbXBpbGUKKyAg
ICAgICAgZXJyb3IuICBDdXJyZW50bHksIGl0ICJ3b3JrcyIgYmVjYXVzZSBpdCBhY3R1YWxseSBj
YWxscyBgb3BlcmF0b3IKKyAgICAgICAgTlNVUkwqKClgLi4uIHdoaWNoIGlzIGxpa2VseSBOT1Qg
d2hhdCB5b3Ugd2FudGVkLiBVbnRpbCB3ZSBkZWNpZGUKKyAgICAgICAgd2hhdCBpdCBtZWFucyB0
byBoYXZlIGEgVVJMIGluIGEgY29uZGl0aW9uYWwgaXQgd2lsbCBiZSBhIGNvbXBpbGUKKyAgICAg
ICAgZXJyb3IuCisKKyAgICAgICAgKiB3dGYvVVJMLmNwcDoKKyAgICAgICAgKFdURjo6VVJMOjpm
aWxlU3lzdGVtUGF0aCBjb25zdCk6CisgICAgICAgICogd3RmL1VSTC5oOgorCiAyMDIwLTA3LTA5
ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgU2ltcGxpZnkgQm94UHRyOjpjcmVhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhOTJlMjEwM2VkYTVjMmU5
MjU5NDJjZGNkMTBiZmQzNDBkY2Y0NjYxLi5iMzljYzA0YjMyN2E2MzAzNmIwZTAzZWYwOThkYzA1
ZmI1NmQyNWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjAtMDctMTIgIEtlaXRo
IE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgU291
cmNlUHJvdmlkZXIgYW5kIGFkZCBjYWxsZXIgcmVsYXRpdmUgbG9hZCBzY3JpcHQgdG8ganNjLmNw
cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MjA1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4KKworICAgICAgICBSZWZhY3Rv
ciBXZWJDb3JlIDwtPiBKU0MgYmluZGluZyBsYXllciBub3cgdGhhdCBKU0MgdXNlcyBXVEY6OlVS
THMKKyAgICAgICAgZm9yIFNvdXJjZU9yaWdpbnMuCisKKyAgICAgICAgQWxzbywgaW1wcm92ZSBt
b2R1bGUgbG9hZGluZyBlcnJvciBtZXNzYWdlcyB0byBpbmNsdWRlIHRoZQorICAgICAgICBzcGVj
aWZpZXIgYW5kIHJlZmVycmVyIHdoZW4gcHJvZHVjaW5nIGVycm9ycyBhcm91bmQgYmFyZS1uYW1l
CisgICAgICAgIHNwZWNpZmllcnMuCisKKyAgICAgICAgTmV3IGVycm9yIG1lc3NhZ2UgYmVoYXZp
b3IgaXMgYWxyZWFkeSB0ZXN0ZWQgc28gZXhpc3RpbmcgdGVzdHMKKyAgICAgICAgaGF2ZSBiZWVu
IHVwZGF0ZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92
aWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXI6OkNh
Y2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50
TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNFdmVudExpc3RlbmVyOjpoYW5kbGVF
dmVudCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpKU0V2ZW50TGlzdGVuZXI6OnNvdXJjZVVSTCBjb25zdCk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U0xhenlFdmVudExpc3RlbmVyOjpKU0xhenlFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTTGF6eUV2ZW50TGlzdGVuZXI6OmluaXRpYWxpemVKU0Z1bmN0aW9uIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTTGF6eUV2ZW50TGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxl
cjo6ZXZhbHVhdGVJbldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6
OmV2YWx1YXRlTW9kdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmNh
bGxJbldvcmxkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpzb3VyY2VVUkwgY29uc3QpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpyZXNvbHZlTW9kdWxlU3BlY2lmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OnJlamVjdFBy
b21pc2UpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdFNvdXJjZUNvZGU6OlNjcmlwdFNvdXJjZUNvZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U2NyaXB0U291cmNlQ29kZTo6dXJsIGNvbnN0KToKKwogMjAyMC0wNy0wOSAg
RnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2lu
Q2Fpcm9dW01lZGlhRm91bmRhdGlvbl0gVXNlIC9ERUxBWUxPQUQgZm9yIG1mLmRsbApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGZlNWYwYTFhZDVhZWFkZjQwM2VhOWNiNDJjYjc3MjM1
ZmRjYjE5MDkuLmQ4ZmE2NDc0Y2QzMTA4YWRmMmQ2ZGJiMDM1Yjk2ZGZmMTIxN2RjZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNy0xMiAgS2Vp
dGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBDbGVhbiB1cCBT
b3VyY2VQcm92aWRlciBhbmQgYWRkIGNhbGxlciByZWxhdGl2ZSBsb2FkIHNjcmlwdCB0byBqc2Mu
Y3BwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQy
MDUKKworICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpLgorCisgICAgICAgIFVzZSB0
aGUgc291cmNlIG9yaWdpbidzIFVSTCBmb3IgdGhlIGRlYnVnZ2VyIHNpbmNlIGl0J3MgdGhlIHRy
dWUgVVJMIGZvciB0aGUgc2NyaXB0LgorCisgICAgICAgICogV2ViVmlldy9XZWJTY3JpcHREZWJ1
Z2dlci5tbToKKyAgICAgICAgKFdlYlNjcmlwdERlYnVnZ2VyOjpzb3VyY2VQYXJzZWQpOgorCiAy
MDIwLTA3LTA2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUy9FTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
IHNob3VsZCBub3QgaGF2ZSB0cmFpbGluZyBzZW1pY29sb25zCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0Lm1tIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5tbQppbmRleCAwMmNiOWI3MzExMDUzYTQyYzdk
ZDU0NWVlODM5ZDFjODAxZTRiOTFmLi5kNjFhYWM3ZTQ1YzUzNzIwNWE4YWNhN2UwOGVmZDY5NGNi
ZWRjNDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFs
T2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElHbG9iYWxPYmpl
Y3QubW0KQEAgLTc2LDcgKzc2LDcgQEAgc3RhdGljIEV4cGVjdGVkPFVSTCwgU3RyaW5nPiBjb21w
dXRlVmFsaWRJbXBvcnRTcGVjaWZpZXIoY29uc3QgVVJMJiBiYXNlLCBjb25zdAogICAgICAgICBy
ZXR1cm4gYWJzb2x1dGVVUkw7CiAKICAgICBpZiAoIXNwZWNpZmllci5zdGFydHNXaXRoKCcvJykg
JiYgIXNwZWNpZmllci5zdGFydHNXaXRoKCIuLyIpICYmICFzcGVjaWZpZXIuc3RhcnRzV2l0aCgi
Li4vIikpCi0gICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJNb2R1bGUg
c3BlY2lmaWVyOiAiX3MsIHNwZWNpZmllciwgIiBkb2VzIG5vdCBzdGFydCB3aXRoIFwiL1wiLCBc
Ii4vXCIsIG9yIFwiLi4vXCIuIl9zKSk7CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCht
YWtlU3RyaW5nKCJNb2R1bGUgc3BlY2lmaWVyOiAiX3MsIHNwZWNpZmllciwgIiBkb2VzIG5vdCBz
dGFydCB3aXRoIFwiL1wiLCBcIi4vXCIsIG9yIFwiLi4vXCIuIFJlZmVyZW5jZWQgZnJvbTogIl9z
LCBiYXNlLnN0cmluZygpKSk7CiAKICAgICBpZiAoc3BlY2lmaWVyLnN0YXJ0c1dpdGgoJy8nKSkg
ewogICAgICAgICBhYnNvbHV0ZVVSTCA9IFVSTChVUkwoeyB9LCAiZmlsZTovLyIpLCBzcGVjaWZp
ZXIpOwpAQCAtMTUwLDkgKzE1MCw3IEBAIEpTSW50ZXJuYWxQcm9taXNlKiBKU0FQSUdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgICAg
IHJldHVybiByZWplY3QoZXhjZXB0aW9uLT52YWx1ZSgpKTsKICAgICB9CiAKLSAgICBTdHJpbmcg
cmVmZXJyZXIgPSAhc291cmNlT3JpZ2luLmlzTnVsbCgpID8gc291cmNlT3JpZ2luLnN0cmluZygp
IDogU3RyaW5nKCk7Ci0gICAgVVJMIGJhc2VVUkwoVVJMKCksIHJlZmVycmVyKTsKLSAgICBhdXRv
IHJlc3VsdCA9IGNvbXB1dGVWYWxpZEltcG9ydFNwZWNpZmllcihiYXNlVVJMLCBzcGVjaWZpZXIp
OworICAgIGF1dG8gcmVzdWx0ID0gY29tcHV0ZVZhbGlkSW1wb3J0U3BlY2lmaWVyKHNvdXJjZU9y
aWdpbi51cmwoKSwgc3BlY2lmaWVyKTsKICAgICBpZiAocmVzdWx0KQogICAgICAgICByZXR1cm4g
aW1wb3J0KHJlc3VsdC52YWx1ZSgpKTsKICAgICByZXR1cm4gcmVqZWN0KGNyZWF0ZUVycm9yKGds
b2JhbE9iamVjdCwgcmVzdWx0LmVycm9yKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNCYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNl
LmNwcAppbmRleCAxZDA0Y2YzZjk0OTBkZGY3NTM0YjIxMDMwMTNhYWM0ZDVmODRiNTUzLi4wOTYx
YzY3ZDg5NDVlNzU2YWVkY2Q2ZWRmZDg2MjE0N2M5MDhjMjMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQmFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0Jhc2UuY3BwCkBAIC03Myw3ICs3Myw3IEBAIEpTVmFsdWVSZWYgSlNFdmFsdWF0ZVNj
cmlwdEludGVybmFsKGNvbnN0IEpTTG9ja0hvbGRlciYsIEpTQ29udGV4dFJlZiBjdHgsIEpTT2Jq
CiAgICAgcmV0dXJuIHRvUmVmKGdsb2JhbE9iamVjdCwganNVbmRlZmluZWQoKSk7CiB9CiAKLUpT
VmFsdWVSZWYgSlNFdmFsdWF0ZVNjcmlwdChKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBz
Y3JpcHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW5nUmVmIHNvdXJjZVVSTCwgaW50
IHN0YXJ0aW5nTGluZU51bWJlciwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorSlNWYWx1ZVJlZiBK
U0V2YWx1YXRlU2NyaXB0KEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHNjcmlwdCwgSlNP
YmplY3RSZWYgdGhpc09iamVjdCwgSlNTdHJpbmdSZWYgc291cmNlVVJMU3RyaW5nLCBpbnQgc3Rh
cnRpbmdMaW5lTnVtYmVyLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKCFjdHgp
IHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC04NSwxMyArODUsMTMgQEAgSlNW
YWx1ZVJlZiBKU0V2YWx1YXRlU2NyaXB0KEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHNj
cmlwdCwgSlNPYmplY3RSZWYgdGgKIAogICAgIHN0YXJ0aW5nTGluZU51bWJlciA9IHN0ZDo6bWF4
KDEsIHN0YXJ0aW5nTGluZU51bWJlcik7CiAKLSAgICBhdXRvIHNvdXJjZVVSTFN0cmluZyA9IHNv
dXJjZVVSTCA/IHNvdXJjZVVSTC0+c3RyaW5nKCkgOiBTdHJpbmcoKTsKLSAgICBTb3VyY2VDb2Rl
IHNvdXJjZSA9IG1ha2VTb3VyY2Uoc2NyaXB0LT5zdHJpbmcoKSwgU291cmNlT3JpZ2luIHsgc291
cmNlVVJMU3RyaW5nIH0sIFVSTCh7IH0sIHNvdXJjZVVSTFN0cmluZyksIFRleHRQb3NpdGlvbihP
cmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRpbmdMaW5lTnVtYmVyKSwgT3JkaW5h
bE51bWJlcigpKSk7CisgICAgYXV0byBzb3VyY2VVUkwgPSBzb3VyY2VVUkxTdHJpbmcgPyBVUkwo
eyB9LCBzb3VyY2VVUkxTdHJpbmctPnN0cmluZygpKSA6IFVSTCgpOworICAgIFNvdXJjZUNvZGUg
c291cmNlID0gbWFrZVNvdXJjZShzY3JpcHQtPnN0cmluZygpLCBTb3VyY2VPcmlnaW4geyBzb3Vy
Y2VVUkwgfSwgc291cmNlVVJMLnN0cmluZygpLCBUZXh0UG9zaXRpb24oT3JkaW5hbE51bWJlcjo6
ZnJvbU9uZUJhc2VkSW50KHN0YXJ0aW5nTGluZU51bWJlciksIE9yZGluYWxOdW1iZXIoKSkpOwog
CiAgICAgcmV0dXJuIEpTRXZhbHVhdGVTY3JpcHRJbnRlcm5hbChsb2NrZXIsIGN0eCwgdGhpc09i
amVjdCwgc291cmNlLCBleGNlcHRpb24pOwogfQogCi1ib29sIEpTQ2hlY2tTY3JpcHRTeW50YXgo
SlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgc2NyaXB0LCBKU1N0cmluZ1JlZiBzb3VyY2VV
UkwsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK2Jvb2wg
SlNDaGVja1NjcmlwdFN5bnRheChKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBzY3JpcHQs
IEpTU3RyaW5nUmVmIHNvdXJjZVVSTFN0cmluZywgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGlmICghY3R4KSB7CiAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwpAQCAtMTAzLDggKzEwMyw4IEBAIGJvb2wgSlNDaGVja1NjcmlwdFN5bnRh
eChKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBzY3JpcHQsIEpTU3RyaW5nUmVmIHNvdXJj
CiAKICAgICBzdGFydGluZ0xpbmVOdW1iZXIgPSBzdGQ6Om1heCgxLCBzdGFydGluZ0xpbmVOdW1i
ZXIpOwogCi0gICAgYXV0byBzb3VyY2VVUkxTdHJpbmcgPSBzb3VyY2VVUkwgPyBzb3VyY2VVUkwt
PnN0cmluZygpIDogU3RyaW5nKCk7Ci0gICAgU291cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291cmNl
KHNjcmlwdC0+c3RyaW5nKCksIFNvdXJjZU9yaWdpbiB7IHNvdXJjZVVSTFN0cmluZyB9LCBVUkwo
eyB9LCBzb3VyY2VVUkxTdHJpbmcpLCBUZXh0UG9zaXRpb24oT3JkaW5hbE51bWJlcjo6ZnJvbU9u
ZUJhc2VkSW50KHN0YXJ0aW5nTGluZU51bWJlciksIE9yZGluYWxOdW1iZXIoKSkpOworICAgIGF1
dG8gc291cmNlVVJMID0gc291cmNlVVJMU3RyaW5nID8gVVJMKHsgfSwgc291cmNlVVJMU3RyaW5n
LT5zdHJpbmcoKSkgOiBVUkwoKTsKKyAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2Uo
c2NyaXB0LT5zdHJpbmcoKSwgU291cmNlT3JpZ2luIHsgc291cmNlVVJMIH0sIHNvdXJjZVVSTC5z
dHJpbmcoKSwgVGV4dFBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChzdGFy
dGluZ0xpbmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVyKCkpKTsKICAgICAKICAgICBKU1ZhbHVlIHN5
bnRheEV4Y2VwdGlvbjsKICAgICBib29sIGlzVmFsaWRTeW50YXggPSBjaGVja1N5bnRheChnbG9i
YWxPYmplY3QsIHNvdXJjZSwgJnN5bnRheEV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IGQ5YWViZjdjMWMwMGQ0N2ZjOWQ2NDgwYjYzNTM2
NzEzYzA1NmZlNjAuLjM2M2I4YWY0YjQ4YmI4YzA3NDVmODFiMWNlMGQ4ZmJlNjU2ZjI4YWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCkBAIC0xMjYsNyArMTI2
LDcgQEAgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtlQ29uc3RydWN0b3IoSlNDb250ZXh0UmVmIGN0
eCwgSlNDbGFzc1JlZiBqc0NsYXNzLCBKU09iamUKICAgICByZXR1cm4gdG9SZWYoY29uc3RydWN0
b3IpOwogfQogCi1KU09iamVjdFJlZiBKU09iamVjdE1ha2VGdW5jdGlvbihKU0NvbnRleHRSZWYg
Y3R4LCBKU1N0cmluZ1JlZiBuYW1lLCB1bnNpZ25lZCBwYXJhbWV0ZXJDb3VudCwgY29uc3QgSlNT
dHJpbmdSZWYgcGFyYW1ldGVyTmFtZXNbXSwgSlNTdHJpbmdSZWYgYm9keSwgSlNTdHJpbmdSZWYg
c291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
CitKU09iamVjdFJlZiBKU09iamVjdE1ha2VGdW5jdGlvbihKU0NvbnRleHRSZWYgY3R4LCBKU1N0
cmluZ1JlZiBuYW1lLCB1bnNpZ25lZCBwYXJhbWV0ZXJDb3VudCwgY29uc3QgSlNTdHJpbmdSZWYg
cGFyYW1ldGVyTmFtZXNbXSwgSlNTdHJpbmdSZWYgYm9keSwgSlNTdHJpbmdSZWYgc291cmNlVVJM
U3RyaW5nLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7
CiAgICAgaWYgKCFjdHgpIHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xNTEs
OCArMTUxLDggQEAgSlNPYmplY3RSZWYgSlNPYmplY3RNYWtlRnVuY3Rpb24oSlNDb250ZXh0UmVm
IGN0eCwgSlNTdHJpbmdSZWYgbmFtZSwgdW5zaWduZWQgcGEKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQogCi0gICAgYXV0byBzb3VyY2VVUkxTdHJpbmcgPSBzb3VyY2VVUkwgPyBzb3Vy
Y2VVUkwtPnN0cmluZygpIDogU3RyaW5nKCk7Ci0gICAgSlNPYmplY3QqIHJlc3VsdCA9IGNvbnN0
cnVjdEZ1bmN0aW9uKGdsb2JhbE9iamVjdCwgYXJncywgbmFtZUlELCBTb3VyY2VPcmlnaW4geyBz
b3VyY2VVUkxTdHJpbmcgfSwgc291cmNlVVJMU3RyaW5nLCBUZXh0UG9zaXRpb24oT3JkaW5hbE51
bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0YXJ0aW5nTGluZU51bWJlciksIE9yZGluYWxOdW1iZXIo
KSkpOworICAgIGF1dG8gc291cmNlVVJMID0gc291cmNlVVJMU3RyaW5nID8gVVJMKHsgfSwgc291
cmNlVVJMU3RyaW5nLT5zdHJpbmcoKSkgOiBVUkwoKTsKKyAgICBKU09iamVjdCogcmVzdWx0ID0g
Y29uc3RydWN0RnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBhcmdzLCBuYW1lSUQsIFNvdXJjZU9yaWdp
biB7IHNvdXJjZVVSTCB9LCBzb3VyY2VVUkwuc3RyaW5nKCksIFRleHRQb3NpdGlvbihPcmRpbmFs
TnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRpbmdMaW5lTnVtYmVyKSwgT3JkaW5hbE51bWJl
cigpKSk7CiAgICAgaWYgKGhhbmRsZUV4Y2VwdGlvbklmTmVlZGVkKHNjb3BlLCBjdHgsIGV4Y2Vw
dGlvbikgPT0gRXhjZXB0aW9uU3RhdHVzOjpEaWRUaHJvdykKICAgICAgICAgcmVzdWx0ID0gbnVs
bHB0cjsKICAgICByZXR1cm4gdG9SZWYocmVzdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNTY3JpcHQubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
U2NyaXB0Lm1tCmluZGV4IDAwYzg3NmE0ZTY0NWM0ZDhhN2Y1YWM4ZThkYzJjN2UxYjVjMjJmMzMu
LjllNDE0NTcxMjRiZjE0M2VhNDE3NjE1YzQ5ODJhNTE5YzFkOTNhN2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHQubW0KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1NjcmlwdC5tbQpAQCAtMjY3LDkgKzI2NywxMSBAQCBzdGF0aWMgYm9vbCB2
YWxpZGF0ZUJ5dGVjb2RlQ2FjaGVQYXRoKE5TVVJMKiBjYWNoZVBhdGgsIE5TRXJyb3IqKiBlcnJv
cikKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrZXIodm0pOwogCiAgICAgVGV4dFBvc2l0aW9u
IHN0YXJ0UG9zaXRpb24geyB9OwotICAgIFN0cmluZyB1cmwgPSBTdHJpbmcgeyBbW3NlbGYgc291
cmNlVVJMXSBhYnNvbHV0ZVN0cmluZ10gfTsKKyAgICBTdHJpbmcgZmlsZW5hbWUgPSBTdHJpbmcg
eyBbW3NlbGYgc291cmNlVVJMXSBhYnNvbHV0ZVN0cmluZ10gfTsKKyAgICBVUkwgdXJsID0gVVJM
KHsgfSwgZmlsZW5hbWUpOwogICAgIGF1dG8gdHlwZSA9IG1fdHlwZSA9PSBrSlNTY3JpcHRUeXBl
TW9kdWxlID8gSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSA6IEpTQzo6U291
cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtOwotICAgIFJlZjxKU1NjcmlwdFNvdXJjZVBy
b3ZpZGVyPiBzb3VyY2VQcm92aWRlciA9IEpTU2NyaXB0U291cmNlUHJvdmlkZXI6OmNyZWF0ZShz
ZWxmLCBKU0M6OlNvdXJjZU9yaWdpbih1cmwpLCBVUkwoeyB9LCB1cmwpLCBzdGFydFBvc2l0aW9u
LCB0eXBlKTsKKyAgICBKU0M6OlNvdXJjZU9yaWdpbiBvcmlnaW4odXJsKTsKKyAgICBSZWY8SlNT
Y3JpcHRTb3VyY2VQcm92aWRlcj4gc291cmNlUHJvdmlkZXIgPSBKU1NjcmlwdFNvdXJjZVByb3Zp
ZGVyOjpjcmVhdGUoc2VsZiwgb3JpZ2luLCBXVEZNb3ZlKGZpbGVuYW1lKSwgc3RhcnRQb3NpdGlv
biwgdHlwZSk7CiAgICAgSlNDOjpTb3VyY2VDb2RlIHNvdXJjZUNvZGUoV1RGTW92ZShzb3VyY2VQ
cm92aWRlciksIHN0YXJ0UG9zaXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCksIHN0YXJ0UG9zaXRp
b24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSk7CiAgICAgcmV0dXJuIHNvdXJjZUNvZGU7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwCmluZGV4IDg0MTU5YWM1MjU3
M2M3ODc0ZTNiNTJiMmE0MmUwZmVjNjNjZTdiYWEuLjc2MmNlYzA1ZTkyNDZjMGNiMWZhYzEyZGRh
ZjcyYzFhYzYxMDUwMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNT
Y3JpcHRSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYu
Y3BwCkBAIC0zOSw5ICszOSw5IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIHN0cnVjdCBPcGFx
dWVKU1NjcmlwdCBmaW5hbCA6IHB1YmxpYyBTb3VyY2VQcm92aWRlciB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFdURjo6UmVmPE9wYXF1ZUpTU2NyaXB0PiBjcmVhdGUoVk0mIHZtLCBjb25zdCBTb3Vy
Y2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVy
LCBjb25zdCBTdHJpbmcmIHNvdXJjZSkKKyAgICBzdGF0aWMgV1RGOjpSZWY8T3BhcXVlSlNTY3Jp
cHQ+IGNyZWF0ZShWTSYgdm0sIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJp
bmcgZmlsZW5hbWUsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNl
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIFdURjo6YWRvcHRSZWYoKm5ldyBPcGFxdWVKU1Njcmlw
dCh2bSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKHVybCksIHN0YXJ0aW5nTGluZU51bWJlciwgc291
cmNlKSk7CisgICAgICAgIHJldHVybiBXVEY6OmFkb3B0UmVmKCpuZXcgT3BhcXVlSlNTY3JpcHQo
dm0sIHNvdXJjZU9yaWdpbiwgV1RGTW92ZShmaWxlbmFtZSksIHN0YXJ0aW5nTGluZU51bWJlciwg
c291cmNlKSk7CiAgICAgfQogCiAgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0IGZpbmFsCkBAIC01
Nyw4ICs1Nyw4IEBAIHB1YmxpYzoKICAgICBWTSYgdm0oKSBjb25zdCB7IHJldHVybiBtX3ZtOyB9
CiAKIHByaXZhdGU6Ci0gICAgT3BhcXVlSlNTY3JpcHQoVk0mIHZtLCBjb25zdCBTb3VyY2VPcmln
aW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZSkKLSAgICAgICAgOiBTb3VyY2VQcm92aWRlcihzb3VyY2VPcmlnaW4s
IFdURk1vdmUodXJsKSwgVGV4dFBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZElu
dChzdGFydGluZ0xpbmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVyKCkpLCBTb3VyY2VQcm92aWRlclNv
dXJjZVR5cGU6OlByb2dyYW0pCisgICAgT3BhcXVlSlNTY3JpcHQoVk0mIHZtLCBjb25zdCBTb3Vy
Y2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nJiYgZmlsZW5hbWUsIGludCBzdGFydGluZ0xp
bmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlKQorICAgICAgICA6IFNvdXJjZVByb3ZpZGVy
KHNvdXJjZU9yaWdpbiwgV1RGTW92ZShmaWxlbmFtZSksIFRleHRQb3NpdGlvbihPcmRpbmFsTnVt
YmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRpbmdMaW5lTnVtYmVyKSwgT3JkaW5hbE51bWJlcigp
KSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtKQogICAgICAgICAsIG1fdm0odm0p
CiAgICAgICAgICwgbV9zb3VyY2Uoc291cmNlLmlzTnVsbCgpID8gKlN0cmluZ0ltcGw6OmVtcHR5
KCkgOiAqc291cmNlLmltcGwoKSkKICAgICB7CkBAIC04MCw3ICs4MCw3IEBAIHN0YXRpYyBib29s
IHBhcnNlU2NyaXB0KFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBQYXJzZXJFcnJv
ciYgZXJyb3IpCiAKIGV4dGVybiAiQyIgewogCi1KU1NjcmlwdFJlZiBKU1NjcmlwdENyZWF0ZVJl
ZmVyZW5jaW5nSW1tb3J0YWxBU0NJSVRleHQoSlNDb250ZXh0R3JvdXBSZWYgY29udGV4dEdyb3Vw
LCBKU1N0cmluZ1JlZiB1cmwsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIGNvbnN0IGNoYXIqIHNv
dXJjZSwgc2l6ZV90IGxlbmd0aCwgSlNTdHJpbmdSZWYqIGVycm9yTWVzc2FnZSwgaW50KiBlcnJv
ckxpbmUpCitKU1NjcmlwdFJlZiBKU1NjcmlwdENyZWF0ZVJlZmVyZW5jaW5nSW1tb3J0YWxBU0NJ
SVRleHQoSlNDb250ZXh0R3JvdXBSZWYgY29udGV4dEdyb3VwLCBKU1N0cmluZ1JlZiB1cmxTdHJp
bmcsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIGNvbnN0IGNoYXIqIHNvdXJjZSwgc2l6ZV90IGxl
bmd0aCwgSlNTdHJpbmdSZWYqIGVycm9yTWVzc2FnZSwgaW50KiBlcnJvckxpbmUpCiB7CiAgICAg
YXV0byYgdm0gPSAqdG9KUyhjb250ZXh0R3JvdXApOwogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIo
JnZtKTsKQEAgLTkxLDggKzkxLDggQEAgSlNTY3JpcHRSZWYgSlNTY3JpcHRDcmVhdGVSZWZlcmVu
Y2luZ0ltbW9ydGFsQVNDSUlUZXh0KEpTQ29udGV4dEdyb3VwUmVmIGNvbnRleHQKIAogICAgIHN0
YXJ0aW5nTGluZU51bWJlciA9IHN0ZDo6bWF4KDEsIHN0YXJ0aW5nTGluZU51bWJlcik7CiAKLSAg
ICBhdXRvIHNvdXJjZVVSTFN0cmluZyA9IHVybCA/IHVybC0+c3RyaW5nKCkgOiBTdHJpbmcoKTsK
LSAgICBhdXRvIHJlc3VsdCA9IE9wYXF1ZUpTU2NyaXB0OjpjcmVhdGUodm0sIFNvdXJjZU9yaWdp
biB7IHNvdXJjZVVSTFN0cmluZyB9LCBVUkwoeyB9LCBzb3VyY2VVUkxTdHJpbmcpLCBzdGFydGlu
Z0xpbmVOdW1iZXIsIFN0cmluZyhTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbChzb3VyY2Us
IGxlbmd0aCkpKTsKKyAgICBhdXRvIHNvdXJjZVVSTCA9IHVybFN0cmluZyA/IFVSTCh7IH0sIHVy
bFN0cmluZy0+c3RyaW5nKCkpIDogVVJMKCk7CisgICAgYXV0byByZXN1bHQgPSBPcGFxdWVKU1Nj
cmlwdDo6Y3JlYXRlKHZtLCBTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkwgfSwgc291cmNlVVJMLnN0
cmluZygpLCBzdGFydGluZ0xpbmVOdW1iZXIsIFN0cmluZyhTdHJpbmdJbXBsOjpjcmVhdGVGcm9t
TGl0ZXJhbChzb3VyY2UsIGxlbmd0aCkpKTsKIAogICAgIFBhcnNlckVycm9yIGVycm9yOwogICAg
IGlmICghcGFyc2VTY3JpcHQodm0sIFNvdXJjZUNvZGUocmVzdWx0LmNvcHlSZWYoKSksIGVycm9y
KSkgewpAQCAtMTA2LDE1ICsxMDYsMTUgQEAgSlNTY3JpcHRSZWYgSlNTY3JpcHRDcmVhdGVSZWZl
cmVuY2luZ0ltbW9ydGFsQVNDSUlUZXh0KEpTQ29udGV4dEdyb3VwUmVmIGNvbnRleHQKICAgICBy
ZXR1cm4gJnJlc3VsdC5sZWFrUmVmKCk7CiB9CiAKLUpTU2NyaXB0UmVmIEpTU2NyaXB0Q3JlYXRl
RnJvbVN0cmluZyhKU0NvbnRleHRHcm91cFJlZiBjb250ZXh0R3JvdXAsIEpTU3RyaW5nUmVmIHVy
bCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgSlNTdHJpbmdSZWYgc291cmNlLCBKU1N0cmluZ1Jl
ZiogZXJyb3JNZXNzYWdlLCBpbnQqIGVycm9yTGluZSkKK0pTU2NyaXB0UmVmIEpTU2NyaXB0Q3Jl
YXRlRnJvbVN0cmluZyhKU0NvbnRleHRHcm91cFJlZiBjb250ZXh0R3JvdXAsIEpTU3RyaW5nUmVm
IHVybFN0cmluZywgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgSlNTdHJpbmdSZWYgc291cmNlLCBK
U1N0cmluZ1JlZiogZXJyb3JNZXNzYWdlLCBpbnQqIGVycm9yTGluZSkKIHsKICAgICBhdXRvJiB2
bSA9ICp0b0pTKGNvbnRleHRHcm91cCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcigmdm0pOwog
CiAgICAgc3RhcnRpbmdMaW5lTnVtYmVyID0gc3RkOjptYXgoMSwgc3RhcnRpbmdMaW5lTnVtYmVy
KTsKIAotICAgIGF1dG8gc291cmNlVVJMU3RyaW5nID0gdXJsID8gdXJsLT5zdHJpbmcoKSA6IFN0
cmluZygpOwotICAgIGF1dG8gcmVzdWx0ID0gT3BhcXVlSlNTY3JpcHQ6OmNyZWF0ZSh2bSwgU291
cmNlT3JpZ2luIHsgc291cmNlVVJMU3RyaW5nIH0sIFVSTCh7IH0sIHNvdXJjZVVSTFN0cmluZyks
IHN0YXJ0aW5nTGluZU51bWJlciwgc291cmNlLT5zdHJpbmcoKSk7CisgICAgYXV0byBzb3VyY2VV
UkwgPSB1cmxTdHJpbmcgPyBVUkwoeyB9LCB1cmxTdHJpbmctPnN0cmluZygpKSA6IFVSTCgpOwor
ICAgIGF1dG8gcmVzdWx0ID0gT3BhcXVlSlNTY3JpcHQ6OmNyZWF0ZSh2bSwgU291cmNlT3JpZ2lu
IHsgc291cmNlVVJMIH0sIHNvdXJjZVVSTC5zdHJpbmcoKSwgc3RhcnRpbmdMaW5lTnVtYmVyLCBz
b3VyY2UtPnN0cmluZygpKTsKIAogICAgIFBhcnNlckVycm9yIGVycm9yOwogICAgIGlmICghcGFy
c2VTY3JpcHQodm0sIFNvdXJjZUNvZGUocmVzdWx0LmNvcHlSZWYoKSksIGVycm9yKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHQuY3BwCmluZGV4IGFiODA5
ZGQ3MWYwMTc3YzU4ZDMzM2NkZGY5ZGZiNjJlNWVlOTBiYjMuLjIyYjMxYWM3MjBiYjNlMmE0YjQ5
NTA2ZGRiNzcyNWQzNzRkNjUyMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvZ2xpYi9KU0NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2ds
aWIvSlNDQ29udGV4dC5jcHAKQEAgLTk1Niw5ICs5NTYsOSBAQCBKU0NDaGVja1N5bnRheFJlc3Vs
dCBqc2NfY29udGV4dF9jaGVja19zeW50YXgoSlNDQ29udGV4dCogY29udGV4dCwgY29uc3QgY2hh
ciogYwogICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIEpTQzo6SlNM
b2NrSG9sZGVyIGxvY2tlcih2bSk7CiAKLSAgICBTdHJpbmcgc291cmNlVVJMU3RyaW5nID0gdXJp
ID8gU3RyaW5nOjpmcm9tVVRGOCh1cmkpIDogU3RyaW5nKCk7Ci0gICAgSlNDOjpTb3VyY2VDb2Rl
IHNvdXJjZSA9IEpTQzo6bWFrZVNvdXJjZShTdHJpbmc6OmZyb21VVEY4KGNvZGUsIGxlbmd0aCA8
IDAgPyBzdHJsZW4oY29kZSkgOiBsZW5ndGgpLCBKU0M6OlNvdXJjZU9yaWdpbiB7IHNvdXJjZVVS
TFN0cmluZyB9LAotICAgICAgICBVUkwoeyB9LCBzb3VyY2VVUkxTdHJpbmcpLCBUZXh0UG9zaXRp
b24oT3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KGxpbmVOdW1iZXIpLCBPcmRpbmFsTnVt
YmVyKCkpKTsKKyAgICBVUkwgc291cmNlVVJMID0gdXJpID8gVVJMKHsgfSwgdXJpKSA6IFVSTCgp
OworICAgIEpTQzo6U291cmNlQ29kZSBzb3VyY2UgPSBKU0M6Om1ha2VTb3VyY2UoU3RyaW5nOjpm
cm9tVVRGOChjb2RlLCBsZW5ndGggPCAwID8gc3RybGVuKGNvZGUpIDogbGVuZ3RoKSwgSlNDOjpT
b3VyY2VPcmlnaW4geyBzb3VyY2VVUkwgfSwKKyAgICAgICAgc291cmNlVVJMLnN0cmluZygpICwg
VGV4dFBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChsaW5lTnVtYmVyKSwg
T3JkaW5hbE51bWJlcigpKSk7CiAgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7CiAgICAgSlNDOjpQ
YXJzZXJFcnJvciBlcnJvcjsKICAgICBzd2l0Y2ggKG1vZGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAKaW5kZXggYWJh
YWVmMDgxZmUyNGIyOTFkYmYzODc1ZmViNjdjMzk3OGFiZDQyYy4uODMwNDk0NGJhYzQzOGJjOTc5
MzRhNGEwMmQwMjE1OTU1YjRjYWNmYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J1aWx0aW5zL0J1aWx0aW5FeGVjdXRhYmxlcy5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKIEJ1aWx0aW5FeGVjdXRhYmxlczo6QnVpbHRpbkV4ZWN1dGFibGVzKFZN
JiB2bSkKICAgICA6IG1fdm0odm0pCi0gICAgLCBtX2NvbWJpbmVkU291cmNlUHJvdmlkZXIoU3Ry
aW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbChz
X0pTQ0NvbWJpbmVkQ29kZSwgc19KU0NDb21iaW5lZENvZGVMZW5ndGgpLCB7IH0sIFVSTCgpKSkK
KyAgICAsIG1fY29tYmluZWRTb3VyY2VQcm92aWRlcihTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3Jl
YXRlKFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKHNfSlNDQ29tYmluZWRDb2RlLCBzX0pT
Q0NvbWJpbmVkQ29kZUxlbmd0aCksIHsgfSwgU3RyaW5nKCkpKQogewogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJMb2NhdGlvbi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJMb2NhdGlvbi5jcHAKaW5kZXgg
OTJhY2E2Mjk2NWE4ZjI3YWM0N2Y0M2NhMjRhMzcwZTU0YzAzYmYyYS4uMGUxOTk5OGYxZTMyYWU5
NjJiMjNjZTM2N2RjMDk3N2YzNzM1NDEwYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmNwcApAQCAtMzksOSArMzksNiBAQCBEZWJ1
Z2dlckxvY2F0aW9uOjpEZWJ1Z2dlckxvY2F0aW9uKFNjcmlwdEV4ZWN1dGFibGUqIGV4ZWN1dGFi
bGUpCiAgICAgc291cmNlSUQgPSBleGVjdXRhYmxlLT5zb3VyY2VJRCgpOwogICAgIGxpbmUgPSBl
eGVjdXRhYmxlLT5maXJzdExpbmUoKTsKICAgICBjb2x1bW4gPSBleGVjdXRhYmxlLT5zdGFydENv
bHVtbigpOwotICAgIHVybCA9IGV4ZWN1dGFibGUtPnNvdXJjZVVSTCgpOwotICAgIGlmICh1cmwu
aXNFbXB0eSgpKQotICAgICAgICB1cmwgPSBleGVjdXRhYmxlLT5zb3VyY2UoKS5wcm92aWRlcigp
LT5zb3VyY2VVUkxEaXJlY3RpdmUoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJMb2NhdGlvbi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uaAppbmRleCAz
ZTFjNDE2NmIwYTdlOTA0MTA2NzdkNmI4MjZmMWQ2MjFmMjk0ZTU1Li5lOTQ4NzcxNjhjNDAwNGVi
OWNhZDM4ZTc1YjllMzhmYzIwMDYyMzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJMb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmgKQEAgLTM1LDE2ICszNSwxNCBAQCBjbGFzcyBT
Y3JpcHRFeGVjdXRhYmxlOwogc3RydWN0IERlYnVnZ2VyTG9jYXRpb24gewogCiAgICAgRGVidWdn
ZXJMb2NhdGlvbigpIHsgfQotICAgIERlYnVnZ2VyTG9jYXRpb24oY29uc3QgU3RyaW5nJiB1cmws
IGludHB0cl90IHNvdXJjZUlELCB1bnNpZ25lZCBsaW5lLCB1bnNpZ25lZCBjb2x1bW4pCi0gICAg
ICAgIDogdXJsKHVybCkKLSAgICAgICAgLCBzb3VyY2VJRChzb3VyY2VJRCkKKyAgICBEZWJ1Z2dl
ckxvY2F0aW9uKGludHB0cl90IHNvdXJjZUlELCB1bnNpZ25lZCBsaW5lLCB1bnNpZ25lZCBjb2x1
bW4pCisgICAgICAgIDogc291cmNlSUQoc291cmNlSUQpCiAgICAgICAgICwgbGluZShsaW5lKQog
ICAgICAgICAsIGNvbHVtbihjb2x1bW4pCiAgICAgeyB9CiAKICAgICBEZWJ1Z2dlckxvY2F0aW9u
KFNjcmlwdEV4ZWN1dGFibGUqKTsKIAotICAgIFN0cmluZyB1cmw7CiAgICAgaW50cHRyX3Qgc291
cmNlSUQgeyBub1NvdXJjZUlEIH07CiAgICAgdW5zaWduZWQgbGluZSB7IDAgfTsKICAgICB1bnNp
Z25lZCBjb2x1bW4geyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4IGZiYjA0YTQ4Y2NkMTc3ODk0MGQwNjQ3
MDZlNTI4NDA0ODIyZmM5NjAuLjhkZWQxMjk1Zjk0MzY4NzhjNzNlOWNlZGI2NjEzMTIzZTQyMjFk
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0RGVi
dWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0
RGVidWdTZXJ2ZXIuY3BwCkBAIC0xMzksMTEgKzEzOSwxMSBAQCB2b2lkIFNjcmlwdERlYnVnU2Vy
dmVyOjpzb3VyY2VQYXJzZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU291cmNlUHJv
dmlkZQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoZXJyb3JMaW5lICE9IC0xKSB7Ci0gICAg
ICAgIGF1dG8gdXJsID0gc291cmNlUHJvdmlkZXItPnVybCgpOworICAgICAgICBhdXRvIHNvdXJj
ZVVSTCA9IHNvdXJjZVByb3ZpZGVyLT5zb3VyY2VVUkwoKTsKICAgICAgICAgYXV0byBkYXRhID0g
c291cmNlUHJvdmlkZXItPnNvdXJjZSgpLnRvU3RyaW5nKCk7CiAgICAgICAgIGF1dG8gZmlyc3RM
aW5lID0gc291cmNlUHJvdmlkZXItPnN0YXJ0UG9zaXRpb24oKS5tX2xpbmUub25lQmFzZWRJbnQo
KTsKICAgICAgICAgZGlzcGF0Y2hGdW5jdGlvblRvTGlzdGVuZXJzKFsmXSAoU2NyaXB0RGVidWdM
aXN0ZW5lciYgbGlzdGVuZXIpIHsKLSAgICAgICAgICAgIGxpc3RlbmVyLmZhaWxlZFRvUGFyc2VT
b3VyY2UodXJsLnN0cmluZygpLCBkYXRhLCBmaXJzdExpbmUsIGVycm9yTGluZSwgZXJyb3JNZXNz
YWdlKTsKKyAgICAgICAgICAgIGxpc3RlbmVyLmZhaWxlZFRvUGFyc2VTb3VyY2Uoc291cmNlVVJM
LCBkYXRhLCBmaXJzdExpbmUsIGVycm9yTGluZSwgZXJyb3JNZXNzYWdlKTsKICAgICAgICAgfSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNTMsNyArMTUzLDcgQEAgdm9pZCBTY3JpcHRE
ZWJ1Z1NlcnZlcjo6c291cmNlUGFyc2VkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFNv
dXJjZVByb3ZpZGUKICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE2Mjc3Mz4g
V2ViIEluc3BlY3RvcjogU2ltcGxpZnkgU2NyaXB0RGVidWdMaXN0ZW5lcjo6U2NyaXB0IHRvIHVz
ZSBTb3VyY2VQcm92aWRlcgogICAgIFNjcmlwdERlYnVnTGlzdGVuZXI6OlNjcmlwdCBzY3JpcHQ7
CiAgICAgc2NyaXB0LnNvdXJjZVByb3ZpZGVyID0gc291cmNlUHJvdmlkZXI7Ci0gICAgc2NyaXB0
LnVybCA9IHNvdXJjZVByb3ZpZGVyLT51cmwoKS5zdHJpbmcoKTsKKyAgICBzY3JpcHQudXJsID0g
c291cmNlUHJvdmlkZXItPnNvdXJjZVVSTCgpOwogICAgIHNjcmlwdC5zb3VyY2UgPSBzb3VyY2VQ
cm92aWRlci0+c291cmNlKCkudG9TdHJpbmcoKTsKICAgICBzY3JpcHQuc3RhcnRMaW5lID0gc291
cmNlUHJvdmlkZXItPnN0YXJ0UG9zaXRpb24oKS5tX2xpbmUuemVyb0Jhc2VkSW50KCk7CiAgICAg
c2NyaXB0LnN0YXJ0Q29sdW1uID0gc291cmNlUHJvdmlkZXItPnN0YXJ0UG9zaXRpb24oKS5tX2Nv
bHVtbi56ZXJvQmFzZWRJbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
c2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggMGY3Y2IzYjJmYzkx
ODY3ZmYyMTEwYWM3YTg3NzgyYzViNDAwZjUzOC4uNTQ4MTJjZDI1OTQxMGQ4ZWI1MTRlZTcxYWU0
NWRkNTI1YzA4ZjhjNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTY3OSw1MSArNjc5LDcgQEAg
c3RhdGljIFVDaGFyIHBhdGhTZXBhcmF0b3IoKQogI2VuZGlmCiB9CiAKLXN0cnVjdCBEaXJlY3Rv
cnlOYW1lIHsKLSAgICAvLyBJbiB1bml4LCBpdCBpcyAiLyIuIEluIFdpbmRvd3MsIGl0IGJlY29t
ZXMgYSBkcml2ZSBsZXR0ZXIgbGlrZSAiQzpcIgotICAgIFN0cmluZyByb290TmFtZTsKLQotICAg
IC8vIElmIHRoZSBkaXJlY3RvcnkgbmFtZSBpcyAiL2hvbWUvV2ViS2l0IiwgdGhpcyBiZWNvbWVz
ICJob21lL1dlYktpdCIuIElmIHRoZSBkaXJlY3RvcnkgbmFtZSBpcyAiLyIsIHRoaXMgYmVjb21l
cyAiIi4KLSAgICBTdHJpbmcgcXVlcnlOYW1lOwotfTsKLQotc3RydWN0IE1vZHVsZU5hbWUgewot
ICAgIE1vZHVsZU5hbWUoY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lKTsKLQotICAgIGJvb2wgc3Rh
cnRzV2l0aFJvb3QoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICFxdWVyaWVzLmlzRW1w
dHkoKSAmJiBxdWVyaWVzWzBdLmlzRW1wdHkoKTsKLSAgICB9Ci0KLSAgICBWZWN0b3I8U3RyaW5n
PiBxdWVyaWVzOwotfTsKLQotTW9kdWxlTmFtZTo6TW9kdWxlTmFtZShjb25zdCBTdHJpbmcmIG1v
ZHVsZU5hbWUpCi17Ci0gICAgLy8gQSBtb2R1bGUgbmFtZSBnaXZlbiBmcm9tIGNvZGUgaXMgcmVw
cmVzZW50ZWQgYXMgdGhlIFVOSVggc3R5bGUgcGF0aC4gTGlrZSwgYC4vQS9CLmpzYC4KLSAgICBx
dWVyaWVzID0gbW9kdWxlTmFtZS5zcGxpdEFsbG93aW5nRW1wdHlFbnRyaWVzKCcvJyk7Ci19Ci0K
LXN0YXRpYyBPcHRpb25hbDxEaXJlY3RvcnlOYW1lPiBleHRyYWN0RGlyZWN0b3J5TmFtZShjb25z
dCBTdHJpbmcmIGFic29sdXRlUGF0aFRvRmlsZSkKLXsKLSAgICBzaXplX3QgZmlyc3RTZXBhcmF0
b3JQb3NpdGlvbiA9IGFic29sdXRlUGF0aFRvRmlsZS5maW5kKHBhdGhTZXBhcmF0b3IoKSk7Ci0g
ICAgaWYgKGZpcnN0U2VwYXJhdG9yUG9zaXRpb24gPT0gbm90Rm91bmQpCi0gICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7Ci0gICAgRGlyZWN0b3J5TmFtZSBkaXJlY3RvcnlOYW1lOwotICAgIGRp
cmVjdG9yeU5hbWUucm9vdE5hbWUgPSBhYnNvbHV0ZVBhdGhUb0ZpbGUuc3Vic3RyaW5nKDAsIGZp
cnN0U2VwYXJhdG9yUG9zaXRpb24gKyAxKTsgLy8gSW5jbHVkZSB0aGUgc2VwYXJhdG9yLgotICAg
IHNpemVfdCBsYXN0U2VwYXJhdG9yUG9zaXRpb24gPSBhYnNvbHV0ZVBhdGhUb0ZpbGUucmV2ZXJz
ZUZpbmQocGF0aFNlcGFyYXRvcigpKTsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKGxhc3RTZXBh
cmF0b3JQb3NpdGlvbiAhPSBub3RGb3VuZCwgIklmIHRoZSBzZXBhcmF0b3IgaXMgbm90IGZvdW5k
LCB0aGlzIGZ1bmN0aW9uIGFscmVhZHkgcmV0dXJucyB3aGVuIHBlcmZvcm1pbmcgdGhlIGZvcndh
cmQgc2VhcmNoLiIpOwotICAgIGlmIChmaXJzdFNlcGFyYXRvclBvc2l0aW9uID09IGxhc3RTZXBh
cmF0b3JQb3NpdGlvbikKLSAgICAgICAgZGlyZWN0b3J5TmFtZS5xdWVyeU5hbWUgPSBTdHJpbmdJ
bXBsOjplbXB0eSgpOwotICAgIGVsc2UgewotICAgICAgICBzaXplX3QgcXVlcnlTdGFydFBvc2l0
aW9uID0gZmlyc3RTZXBhcmF0b3JQb3NpdGlvbiArIDE7Ci0gICAgICAgIHNpemVfdCBxdWVyeUxl
bmd0aCA9IGxhc3RTZXBhcmF0b3JQb3NpdGlvbiAtIHF1ZXJ5U3RhcnRQb3NpdGlvbjsgLy8gTm90
IGluY2x1ZGUgdGhlIGxhc3Qgc2VwYXJhdG9yLgotICAgICAgICBkaXJlY3RvcnlOYW1lLnF1ZXJ5
TmFtZSA9IGFic29sdXRlUGF0aFRvRmlsZS5zdWJzdHJpbmcocXVlcnlTdGFydFBvc2l0aW9uLCBx
dWVyeUxlbmd0aCk7Ci0gICAgfQotICAgIHJldHVybiBkaXJlY3RvcnlOYW1lOwotfQotCi1zdGF0
aWMgT3B0aW9uYWw8RGlyZWN0b3J5TmFtZT4gY3VycmVudFdvcmtpbmdEaXJlY3RvcnkoKQorc3Rh
dGljIFVSTCBjdXJyZW50V29ya2luZ0RpcmVjdG9yeSgpCiB7CiAjaWYgT1MoV0lORE9XUykKICAg
ICAvLyBodHRwczovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3dpbmRvd3MvZGVz
a3RvcC9hYTM2NDkzNC5hc3B4CkBAIC03MzcsNyArNjkzLDcgQEAgc3RhdGljIE9wdGlvbmFsPERp
cmVjdG9yeU5hbWU+IGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KCkKICAgICAvLyBJbiB0aGUgcGF0
aCB1dGlsaXR5IGZ1bmN0aW9ucyBpbnNpZGUgdGhlIEpTQyBzaGVsbCwgd2UgZG9lcyBub3QgaGFu
ZGxlIHRoZSBVTkMgYW5kIFVOQ1cgaW5jbHVkaW5nIHRoZSBuZXR3b3JrIGhvc3QgbmFtZS4KICAg
ICBEV09SRCBidWZmZXJMZW5ndGggPSA6OkdldEN1cnJlbnREaXJlY3RvcnlXKDAsIG51bGxwdHIp
OwogICAgIGlmICghYnVmZmVyTGVuZ3RoKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
ICAgICAgICByZXR1cm4geyB9OwogICAgIC8vIEluIFdpbmRvd3MsIHdjaGFyX3QgaXMgdGhlIFVU
Ri0xNkxFLgogICAgIC8vIGh0dHBzOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkv
ZGQzNzQwODEuYXNweAogICAgIC8vIGh0dHBzOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xp
YnJhcnkvd2luZG93cy9kZXNrdG9wL2ZmMzgxNDA3LmFzcHgKQEAgLTc0Niw1NCArNzAyLDMxIEBA
IHN0YXRpYyBPcHRpb25hbDxEaXJlY3RvcnlOYW1lPiBjdXJyZW50V29ya2luZ0RpcmVjdG9yeSgp
CiAgICAgU3RyaW5nIGRpcmVjdG9yeVN0cmluZyhidWZmZXIuZGF0YSgpLCBsZW5ndGhOb3RJbmNs
dWRpbmdOdWxsKTsKICAgICAvLyBXZSBkb24ndCBzdXBwb3J0IG5ldHdvcmsgcGF0aCBsaWtlIFxc
aG9zdFxzaGFyZVw8cGF0aCBuYW1lPi4KICAgICBpZiAoZGlyZWN0b3J5U3RyaW5nLnN0YXJ0c1dp
dGgoIlxcXFwiKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJu
IHsgfTsKKwogI2Vsc2UKICAgICBWZWN0b3I8Y2hhcj4gYnVmZmVyKFBBVEhfTUFYKTsKICAgICBp
ZiAoIWdldGN3ZChidWZmZXIuZGF0YSgpLCBQQVRIX01BWCkpCi0gICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IH07CiAgICAgU3RyaW5nIGRpcmVjdG9yeVN0cmlu
ZyA9IFN0cmluZzo6ZnJvbVVURjgoYnVmZmVyLmRhdGEoKSk7CiAjZW5kaWYKICAgICBpZiAoZGly
ZWN0b3J5U3RyaW5nLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQot
ICAgIGlmIChkaXJlY3RvcnlTdHJpbmdbZGlyZWN0b3J5U3RyaW5nLmxlbmd0aCgpIC0gMV0gPT0g
cGF0aFNlcGFyYXRvcigpKQotICAgICAgICByZXR1cm4gZXh0cmFjdERpcmVjdG9yeU5hbWUoZGly
ZWN0b3J5U3RyaW5nKTsKLSAgICAvLyBBcHBlbmQgdGhlIHNlcGVyYXRvciB0byByZXByZXNlbnRz
IHRoZSBmaWxlIG5hbWUuIGV4dHJhY3REaXJlY3RvcnlOYW1lIG9ubHkgYWNjZXB0cyB0aGUgYWJz
b2x1dGUgZmlsZSBuYW1lLgotICAgIHJldHVybiBleHRyYWN0RGlyZWN0b3J5TmFtZShtYWtlU3Ry
aW5nKGRpcmVjdG9yeVN0cmluZywgcGF0aFNlcGFyYXRvcigpKSk7Ci19Ci0KLXN0YXRpYyBTdHJp
bmcgcmVzb2x2ZVBhdGgoY29uc3QgRGlyZWN0b3J5TmFtZSYgZGlyZWN0b3J5TmFtZSwgY29uc3Qg
TW9kdWxlTmFtZSYgbW9kdWxlTmFtZSkKLXsKLSAgICBWZWN0b3I8U3RyaW5nPiBkaXJlY3RvcnlQ
aWVjZXMgPSBkaXJlY3RvcnlOYW1lLnF1ZXJ5TmFtZS5zcGxpdChwYXRoU2VwYXJhdG9yKCkpOwot
Ci0gICAgLy8gT25seSBmaXJzdCAnLycgaXMgcmVjb2duaXplZCBhcyB0aGUgcGF0aCBmcm9tIHRo
ZSByb290LgotICAgIGlmIChtb2R1bGVOYW1lLnN0YXJ0c1dpdGhSb290KCkpCi0gICAgICAgIGRp
cmVjdG9yeVBpZWNlcy5jbGVhcigpOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgZm9yIChj
b25zdCBhdXRvJiBxdWVyeSA6IG1vZHVsZU5hbWUucXVlcmllcykgewotICAgICAgICBpZiAocXVl
cnkgPT0gU3RyaW5nKCIuLiJfcykpIHsKLSAgICAgICAgICAgIGlmICghZGlyZWN0b3J5UGllY2Vz
LmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBkaXJlY3RvcnlQaWVjZXMucmVtb3ZlTGFzdCgp
OwotICAgICAgICB9IGVsc2UgaWYgKCFxdWVyeS5pc0VtcHR5KCkgJiYgcXVlcnkgIT0gU3RyaW5n
KCIuIl9zKSkKLSAgICAgICAgICAgIGRpcmVjdG9yeVBpZWNlcy5hcHBlbmQocXVlcnkpOwotICAg
IH0KKyAgICAvLyBBZGQgYSB0cmFpbGluZyBzbGFzaCBpZiBuZWVkZWQgc28gdGhlIFVSTCByZXNv
bHZlcyB0byBhIGRpcmVjdG9yeSBhbmQgbm90IGEgZmlsZS4KKyAgICBpZiAoZGlyZWN0b3J5U3Ry
aW5nW2RpcmVjdG9yeVN0cmluZy5sZW5ndGgoKSAtIDFdICE9IHBhdGhTZXBhcmF0b3IoKSkKKyAg
ICAgICAgZGlyZWN0b3J5U3RyaW5nID0gbWFrZVN0cmluZyhkaXJlY3RvcnlTdHJpbmcsIHBhdGhT
ZXBhcmF0b3IoKSk7CiAKLSAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRlci5h
cHBlbmQoZGlyZWN0b3J5TmFtZS5yb290TmFtZSk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBkaXJlY3RvcnlQaWVjZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQo
ZGlyZWN0b3J5UGllY2VzW2ldKTsKLSAgICAgICAgaWYgKGkgKyAxICE9IGRpcmVjdG9yeVBpZWNl
cy5zaXplKCkpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZChwYXRoU2VwYXJhdG9yKCkpOwot
ICAgIH0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAgIHJldHVybiBVUkw6OmZp
bGVVUkxXaXRoRmlsZVN5c3RlbVBhdGgoZGlyZWN0b3J5U3RyaW5nKTsKIH0KIAotc3RhdGljIFN0
cmluZyBhYnNvbHV0ZVBhdGgoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSkKK3N0YXRpYyBVUkwgYWJz
b2x1dGVQYXRoKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUpCiB7CiAgICAgYXV0byBkaXJlY3RvcnlO
YW1lID0gY3VycmVudFdvcmtpbmdEaXJlY3RvcnkoKTsKLSAgICBpZiAoIWRpcmVjdG9yeU5hbWUp
Ci0gICAgICAgIHJldHVybiBmaWxlTmFtZTsKLSAgICByZXR1cm4gcmVzb2x2ZVBhdGgoZGlyZWN0
b3J5TmFtZS52YWx1ZSgpLCBNb2R1bGVOYW1lKGZpbGVOYW1lLmltcGwoKSkpOworICAgIGlmICgh
ZGlyZWN0b3J5TmFtZS5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBVUkw6OmZpbGVVUkxXaXRo
RmlsZVN5c3RlbVBhdGgoZmlsZU5hbWUpOworCisgICAgcmV0dXJuIFVSTChkaXJlY3RvcnlOYW1l
LCBmaWxlTmFtZSk7CiB9CiAKIEpTSW50ZXJuYWxQcm9taXNlKiBHbG9iYWxPYmplY3Q6Om1vZHVs
ZUxvYWRlckltcG9ydE1vZHVsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU01vZHVs
ZUxvYWRlciosIEpTU3RyaW5nKiBtb2R1bGVOYW1lVmFsdWUsIEpTVmFsdWUgcGFyYW1ldGVycywg
Y29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4pCkBAIC04MTEsMjAgKzc0NCwyMyBAQCBK
U0ludGVybmFsUHJvbWlzZSogR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgICAgICByZXR1cm4gcHJvbWlzZTsKICAgICB9Owog
Ci0gICAgaWYgKHNvdXJjZU9yaWdpbi5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuIHJlamVjdChj
cmVhdGVFcnJvcihnbG9iYWxPYmplY3QsICJDb3VsZCBub3QgcmVzb2x2ZSB0aGUgbW9kdWxlIHNw
ZWNpZmllci4iX3MpKTsKLQotICAgIGF1dG8gcmVmZXJyZXIgPSBzb3VyY2VPcmlnaW4uc3RyaW5n
KCk7Ci0gICAgYXV0byBtb2R1bGVOYW1lID0gbW9kdWxlTmFtZVZhbHVlLT52YWx1ZShnbG9iYWxP
YmplY3QpOworICAgIGF1dG8gcmVmZXJyZXIgPSBzb3VyY2VPcmlnaW4udXJsKCk7CisgICAgYXV0
byBzcGVjaWZpZXIgPSBtb2R1bGVOYW1lVmFsdWUtPnZhbHVlKGdsb2JhbE9iamVjdCk7CiAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBudWxscHRyKTsKICAgICBpZiAoVU5MSUtF
TFkoY2F0Y2hTY29wZS5leGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiByZWplY3QoY2F0Y2hT
Y29wZS5leGNlcHRpb24oKS0+dmFsdWUoKSk7CiAKLSAgICBhdXRvIGRpcmVjdG9yeU5hbWUgPSBl
eHRyYWN0RGlyZWN0b3J5TmFtZShyZWZlcnJlci5pbXBsKCkpOwotICAgIGlmICghZGlyZWN0b3J5
TmFtZSkKLSAgICAgICAgcmV0dXJuIHJlamVjdChjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsIG1h
a2VTdHJpbmcoIkNvdWxkIG5vdCByZXNvbHZlIHRoZSByZWZlcnJlciBuYW1lICciLCBTdHJpbmco
cmVmZXJyZXIuaW1wbCgpKSwgIicuIikpKTsKKyAgICBpZiAoIXJlZmVycmVyLmlzTG9jYWxGaWxl
KCkpCisgICAgICAgIHJldHVybiByZWplY3QoY3JlYXRlRXJyb3IoZ2xvYmFsT2JqZWN0LCBtYWtl
U3RyaW5nKCJDb3VsZCBub3QgcmVzb2x2ZSB0aGUgcmVmZXJyZXIncyBwYXRoICciLCByZWZlcnJl
ci5zdHJpbmcoKSwgIicsIHdoaWxlIHRyeWluZyB0byByZXNvbHZlIG1vZHVsZSAnIiwgc3BlY2lm
aWVyLCAiJy4iKSkpOworCisgICAgaWYgKCFzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLycpICYmICFz
cGVjaWZpZXIuc3RhcnRzV2l0aCgiLi8iKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4uLyIp
KQorICAgICAgICByZXR1cm4gcmVqZWN0KGNyZWF0ZVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIG1h
a2VTdHJpbmcoIk1vZHVsZSBzcGVjaWZpZXIsICciX3MsIHNwZWNpZmllciwgIicgZG9lcyBub3Qg
c3RhcnQgd2l0aCBcIi9cIiwgXCIuL1wiLCBvciBcIi4uL1wiLiBSZWZlcmVuY2VkIGZyb206ICJf
cywgcmVmZXJyZXIuZmlsZVN5c3RlbVBhdGgoKSkpKTsKIAotICAgIGF1dG8gcmVzdWx0ID0gSlND
OjppbXBvcnRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBy
ZXNvbHZlUGF0aChkaXJlY3RvcnlOYW1lLnZhbHVlKCksIE1vZHVsZU5hbWUobW9kdWxlTmFtZSkp
KSwgcGFyYW1ldGVycywganNVbmRlZmluZWQoKSk7CisgICAgVVJMIG1vZHVsZVVSTChyZWZlcnJl
ciwgc3BlY2lmaWVyKTsKKyAgICBpZiAoIW1vZHVsZVVSTC5pc0xvY2FsRmlsZSgpKQorICAgICAg
ICByZXR1cm4gcmVqZWN0KGNyZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgbWFrZVN0cmluZygiTW9k
dWxlIHVybCwgJyIsIG1vZHVsZVVSTC5zdHJpbmcoKSwgIicgZG9lcyBub3QgbWFwIHRvIGEgbG9j
YWwgZmlsZS4iKSkpOworCisgICAgYXV0byByZXN1bHQgPSBKU0M6OmltcG9ydE1vZHVsZShnbG9i
YWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIG1vZHVsZVVSTC5zdHJpbmcoKSks
IHBhcmFtZXRlcnMsIGpzVW5kZWZpbmVkKCkpOwogICAgIGlmIChVTkxJS0VMWShjYXRjaFNjb3Bl
LmV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIHJlamVjdChjYXRjaFNjb3BlLmV4Y2VwdGlv
bigpLT52YWx1ZSgpKTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtODQyLDM0ICs3NzgsNDEgQEAg
SWRlbnRpZmllciBHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlclJlc29sdmUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNNb2QKICAgICBpZiAoa2V5LmlzU3ltYm9sKCkpCiAgICAgICAg
IHJldHVybiBrZXk7CiAKLSAgICBpZiAocmVmZXJyZXJWYWx1ZS5pc1VuZGVmaW5lZCgpKSB7Ci0g
ICAgICAgIGF1dG8gZGlyZWN0b3J5TmFtZSA9IGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KCk7Ci0g
ICAgICAgIGlmICghZGlyZWN0b3J5TmFtZSkgewotICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24o
Z2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IoZ2xvYmFsT2JqZWN0LCAiQ291bGQgbm90
IHJlc29sdmUgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuIl9zKSk7CisgICAgYXV0byBy
ZXNvbHZlUGF0aCA9IFsmXSAoY29uc3QgVVJMJiBkaXJlY3RvcnlVUkwpIC0+IElkZW50aWZpZXIg
eworICAgICAgICBTdHJpbmcgc3BlY2lmaWVyID0ga2V5LmltcGwoKTsKKyAgICAgICAgaWYgKCFz
cGVjaWZpZXIuc3RhcnRzV2l0aCgnLycpICYmICFzcGVjaWZpZXIuc3RhcnRzV2l0aCgiLi8iKSAm
JiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4uLyIpKSB7CisgICAgICAgICAgICB0aHJvd1R5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBtYWtlU3RyaW5nKCJNb2R1bGUgc3BlY2lmaWVyLCAn
Il9zLCBzcGVjaWZpZXIsICInIGRvZXMgbm90IHN0YXJ0IHdpdGggXCIvXCIsIFwiLi9cIiwgb3Ig
XCIuLi9cIi4gUmVmZXJlbmNlZCBmcm9tOiAiX3MsIGRpcmVjdG9yeVVSTC5maWxlU3lzdGVtUGF0
aCgpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9Ci0gICAgICAgIHJldHVy
biBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZXNvbHZlUGF0aChkaXJlY3RvcnlOYW1lLnZh
bHVlKCksIE1vZHVsZU5hbWUoa2V5LmltcGwoKSkpKTsKLSAgICB9CiAKLSAgICBjb25zdCBJZGVu
dGlmaWVyIHJlZmVycmVyID0gcmVmZXJyZXJWYWx1ZS50b1Byb3BlcnR5S2V5KGdsb2JhbE9iamVj
dCk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICAgICAgaWYgKCFk
aXJlY3RvcnlVUkwuaXNMb2NhbEZpbGUoKSkgeworICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24o
Z2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IoZ2xvYmFsT2JqZWN0LCBtYWtlU3RyaW5n
KCJDb3VsZCBub3QgcmVzb2x2ZSB0aGUgcmVmZXJyZXIncyBwYXRoOiAiLCBkaXJlY3RvcnlVUkwu
c3RyaW5nKCkpKSk7CisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICB9CiAKLSAgICBp
ZiAocmVmZXJyZXIuaXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGRpcmVjdG9yeU5hbWUgPSBj
dXJyZW50V29ya2luZ0RpcmVjdG9yeSgpOwotICAgICAgICBpZiAoIWRpcmVjdG9yeU5hbWUpIHsK
LSAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVy
cm9yKGdsb2JhbE9iamVjdCwgIkNvdWxkIG5vdCByZXNvbHZlIHRoZSBjdXJyZW50IHdvcmtpbmcg
ZGlyZWN0b3J5LiJfcykpOworICAgICAgICBVUkwgcmVzb2x2ZWRVUkwoZGlyZWN0b3J5VVJMLCBz
cGVjaWZpZXIpOworICAgICAgICBpZiAoIXJlc29sdmVkVVJMLmlzVmFsaWQoKSkgeworICAgICAg
ICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBtYWtlU3RyaW5nKCJSZXNvbHZlZCBtb2R1bGUgdXJsIGlzIG5vdCB2YWxpZDog
IiwgcmVzb2x2ZWRVUkwuc3RyaW5nKCkpKSk7CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZXNvbHZl
UGF0aChkaXJlY3RvcnlOYW1lLnZhbHVlKCksIE1vZHVsZU5hbWUoa2V5LmltcGwoKSkpKTsKLSAg
ICB9CisgICAgICAgIEFTU0VSVChyZXNvbHZlZFVSTC5pc0xvY2FsRmlsZSgpKTsKIAotICAgIC8v
IElmIHRoZSByZWZlcnJlciBleGlzdHMsIHdlIGFzc3VtZSB0aGF0IHRoZSByZWZlcnJlciBpcyB0
aGUgY29ycmVjdCBhYnNvbHV0ZSBwYXRoLgotICAgIGF1dG8gZGlyZWN0b3J5TmFtZSA9IGV4dHJh
Y3REaXJlY3RvcnlOYW1lKHJlZmVycmVyLmltcGwoKSk7Ci0gICAgaWYgKCFkaXJlY3RvcnlOYW1l
KSB7Ci0gICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVy
cm9yKGdsb2JhbE9iamVjdCwgbWFrZVN0cmluZygiQ291bGQgbm90IHJlc29sdmUgdGhlIHJlZmVy
cmVyIG5hbWUgJyIsIFN0cmluZyhyZWZlcnJlci5pbXBsKCkpLCAiJy4iKSkpOwotICAgICAgICBy
ZXR1cm4geyB9OwotICAgIH0KLSAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
cmVzb2x2ZVBhdGgoZGlyZWN0b3J5TmFtZS52YWx1ZSgpLCBNb2R1bGVOYW1lKGtleS5pbXBsKCkp
KSk7CisgICAgICAgIHJldHVybiBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZXNvbHZlZFVS
TC5zdHJpbmcoKSk7CisgICAgfTsKKworICAgIGlmIChyZWZlcnJlclZhbHVlLmlzVW5kZWZpbmVk
KCkpCisgICAgICAgIHJldHVybiByZXNvbHZlUGF0aChjdXJyZW50V29ya2luZ0RpcmVjdG9yeSgp
KTsKKworICAgIGNvbnN0IElkZW50aWZpZXIgcmVmZXJyZXIgPSByZWZlcnJlclZhbHVlLnRvUHJv
cGVydHlLZXkoZ2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOworCisgICAgaWYgKHJlZmVycmVyLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiByZXNv
bHZlUGF0aChjdXJyZW50V29ya2luZ0RpcmVjdG9yeSgpKTsKKworICAgIC8vIElmIHRoZSByZWZl
cnJlciBleGlzdHMsIHdlIGFzc3VtZSB0aGF0IHRoZSByZWZlcnJlciBpcyB0aGUgY29ycmVjdCBm
aWxlIHVybC4KKyAgICBVUkwgdXJsID0gVVJMKHsgfSwgcmVmZXJyZXIuaW1wbCgpKTsKKyAgICBB
U1NFUlQodXJsLmlzTG9jYWxGaWxlKCkpOworICAgIHJldHVybiByZXNvbHZlUGF0aCh1cmwpOwog
fQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3I+CkBAIC05NTQsOSArODk3LDkgQEAgc3RhdGlj
IGJvb2wgZmV0Y2hTY3JpcHRGcm9tTG9jYWxGaWxlU3lzdGVtKGNvbnN0IFN0cmluZyYgZmlsZU5h
bWUsIFZlY3RvcjxjaGFyPiYKIAogY2xhc3MgU2hlbGxTb3VyY2VQcm92aWRlciBmaW5hbCA6IHB1
YmxpYyBTdHJpbmdTb3VyY2VQcm92aWRlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTaGVs
bFNvdXJjZVByb3ZpZGVyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNvdXJj
ZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3Rh
cnRQb3NpdGlvbiwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUpCisgICAgc3Rh
dGljIFJlZjxTaGVsbFNvdXJjZVByb3ZpZGVyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzb3VyY2Us
IGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJpbmcmJiBzb3VyY2VVUkwsIGNv
bnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBl
IHNvdXJjZVR5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGVsbFNv
dXJjZVByb3ZpZGVyKHNvdXJjZSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKHVybCksIHN0YXJ0UG9z
aXRpb24sIHNvdXJjZVR5cGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hlbGxT
b3VyY2VQcm92aWRlcihzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZShzb3VyY2VVUkwpLCBz
dGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSk7CiAgICAgfQogCiAgICAgflNoZWxsU291cmNlUHJv
dmlkZXIoKSBmaW5hbApAQCAtMTAzNyw3ICs5ODAsNyBAQCBwcml2YXRlOgogICAgICAgICBpZiAo
IWNhY2hlRW5hYmxlZCgpKQogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IGNo
YXIqPihudWxscHRyKTsKICAgICAgICAgY29uc3QgY2hhciogY2FjaGVQYXRoID0gT3B0aW9uczo6
ZGlza0NhY2hlUGF0aCgpOwotICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBGaWxlU3lzdGVtOjpl
bmNvZGVGb3JGaWxlTmFtZShGaWxlU3lzdGVtOjpsYXN0Q29tcG9uZW50T2ZQYXRoSWdub3JpbmdU
cmFpbGluZ1NsYXNoKHNvdXJjZU9yaWdpbigpLnN0cmluZygpKSk7CisgICAgICAgIFN0cmluZyBm
aWxlbmFtZSA9IEZpbGVTeXN0ZW06OmVuY29kZUZvckZpbGVOYW1lKEZpbGVTeXN0ZW06Omxhc3RD
b21wb25lbnRPZlBhdGhJZ25vcmluZ1RyYWlsaW5nU2xhc2goc291cmNlT3JpZ2luKCkudXJsKCku
ZmlsZVN5c3RlbVBhdGgoKSkpOwogICAgICAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50KGNhY2hlUGF0aCwgbWFrZVN0cmluZyhzb3VyY2UoKS50b1N0cmluZygp
Lmhhc2goKSwgJy0nLCBmaWxlbmFtZSwgIi5ieXRlY29kZS1jYWNoZSIpKTsKICAgICB9CiAKQEAg
LTEwNjcsOCArMTAxMCw4IEBAIHByaXZhdGU6CiAgICAgICAgIG1fY2FjaGVkQnl0ZWNvZGUgPSBD
YWNoZWRCeXRlY29kZTo6Y3JlYXRlKFdURk1vdmUobWFwcGVkRmlsZURhdGEpKTsKICAgICB9CiAK
LSAgICBTaGVsbFNvdXJjZVByb3ZpZGVyKGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTb3Vy
Y2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0
YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlKQotICAgICAg
ICA6IFN0cmluZ1NvdXJjZVByb3ZpZGVyKHNvdXJjZSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKHVy
bCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpCisgICAgU2hlbGxTb3VyY2VQcm92aWRlcihj
b25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0
cmluZyYmIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3Vy
Y2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSkKKyAgICAgICAgOiBTdHJpbmdTb3VyY2VQ
cm92aWRlcihzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZShzb3VyY2VVUkwpLCBzdGFydFBv
c2l0aW9uLCBzb3VyY2VUeXBlKQogICAgIHsKICAgICB9CiAKQEAgLTEwODEsOSArMTAyNCw5IEBA
IHByaXZhdGU6CiAgICAgbXV0YWJsZSBSZWZQdHI8Q2FjaGVkQnl0ZWNvZGU+IG1fY2FjaGVkQnl0
ZWNvZGU7CiB9OwogCi1zdGF0aWMgaW5saW5lIFNvdXJjZUNvZGUganNjU291cmNlKGNvbnN0IFN0
cmluZyYgc291cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJs
ID0gVVJMKCksIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiA9IFRleHRQb3NpdGlv
bigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSA9IFNvdXJjZVByb3ZpZGVy
U291cmNlVHlwZTo6UHJvZ3JhbSkKK3N0YXRpYyBpbmxpbmUgU291cmNlQ29kZSBqc2NTb3VyY2Uo
Y29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBT
dHJpbmcgc291cmNlVVJMID0gU3RyaW5nKCksIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3Np
dGlvbiA9IFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlw
ZSA9IFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSkKIHsKLSAgICByZXR1cm4gU291
cmNlQ29kZShTaGVsbFNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCBzb3VyY2VPcmlnaW4s
IFdURk1vdmUodXJsKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSksIHN0YXJ0UG9zaXRpb24u
bV9saW5lLm9uZUJhc2VkSW50KCksIHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQo
KSk7CisgICAgcmV0dXJuIFNvdXJjZUNvZGUoU2hlbGxTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNv
dXJjZSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKHNvdXJjZVVSTCksIHN0YXJ0UG9zaXRpb24sIHNv
dXJjZVR5cGUpLCBzdGFydFBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpLCBzdGFydFBvc2l0
aW9uLm1fY29sdW1uLm9uZUJhc2VkSW50KCkpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0
b3I+CkBAIC0xMDkxLDEzICsxMDM0LDEzIEBAIHN0YXRpYyBpbmxpbmUgU291cmNlQ29kZSBqc2NT
b3VyY2UoY29uc3QgVmVjdG9yJiB1dGY4LCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjCiB7CiAg
ICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHVzZSBhbiBhYnNvbHV0ZSBmaWxlIFVSTCBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMDc3CiAgICAgU3RyaW5nIHN0ciA9
IHN0cmluZ0Zyb21VVEYodXRmOCk7Ci0gICAgcmV0dXJuIGpzY1NvdXJjZShzdHIsIHNvdXJjZU9y
aWdpbiwgVVJMKHsgfSwgZmlsZW5hbWUpKTsKKyAgICByZXR1cm4ganNjU291cmNlKHN0ciwgc291
cmNlT3JpZ2luLCBmaWxlbmFtZSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3Rvcj4KLXN0
YXRpYyBib29sIGZldGNoTW9kdWxlRnJvbUxvY2FsRmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIGZp
bGVOYW1lLCBWZWN0b3ImIGJ1ZmZlcikKK3N0YXRpYyBib29sIGZldGNoTW9kdWxlRnJvbUxvY2Fs
RmlsZVN5c3RlbShjb25zdCBVUkwmIGZpbGVVUkwsIFZlY3RvciYgYnVmZmVyKQogewotICAgIC8v
IFdlIGFzc3VtZSB0aGF0IGZpbGVOYW1lIGlzIGFsd2F5cyBhbiBhYnNvbHV0ZSBwYXRoLgorICAg
IFN0cmluZyBmaWxlTmFtZSA9IGZpbGVVUkwuZmlsZVN5c3RlbVBhdGgoKTsKICNpZiBPUyhXSU5E
T1dTKQogICAgIC8vIGh0dHBzOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvd2lu
ZG93cy9kZXNrdG9wL2FhMzY1MjQ3LmFzcHgjbWF4cGF0aAogICAgIC8vIFVzZSBsb25nIFVOQyB0
byBwYXNzIHRoZSBsb25nIHBhdGggbmFtZSB0byB0aGUgV2luZG93cyBBUElzLgpAQCAtMTE0OSwx
OCArMTA5MiwyMCBAQCBKU0ludGVybmFsUHJvbWlzZSogR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2Fk
ZXJGZXRjaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIGlmIChVTkxJS0VMWShj
YXRjaFNjb3BlLmV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIHJlamVjdChjYXRjaFNjb3Bl
LmV4Y2VwdGlvbigpLT52YWx1ZSgpKTsKIAotICAgIC8vIEhlcmUsIG5vdyB3ZSBjb25zaWRlciBt
b2R1bGVLZXkgYXMgdGhlIGZpbGVOYW1lLgorICAgIFVSTCBtb2R1bGVVUkwoeyB9LCBtb2R1bGVL
ZXkpOworICAgIEFTU0VSVChtb2R1bGVVUkwuaXNMb2NhbEZpbGUoKSk7CisgICAgLy8gU3RyaXAg
dGhlIFVSSSBmcm9tIG91ciBrZXkgc28gRXJyb3JzIHByaW50IGNhbm9uaWNhbCBzeXN0ZW0gcGF0
aHMuCisgICAgbW9kdWxlS2V5ID0gbW9kdWxlVVJMLmZpbGVTeXN0ZW1QYXRoKCk7CisKICAgICBW
ZWN0b3I8dWludDhfdD4gYnVmZmVyOwotICAgIGlmICghZmV0Y2hNb2R1bGVGcm9tTG9jYWxGaWxl
U3lzdGVtKG1vZHVsZUtleSwgYnVmZmVyKSkKKyAgICBpZiAoIWZldGNoTW9kdWxlRnJvbUxvY2Fs
RmlsZVN5c3RlbShtb2R1bGVVUkwsIGJ1ZmZlcikpCiAgICAgICAgIHJldHVybiByZWplY3QoY3Jl
YXRlRXJyb3IoZ2xvYmFsT2JqZWN0LCBtYWtlU3RyaW5nKCJDb3VsZCBub3Qgb3BlbiBmaWxlICci
LCBtb2R1bGVLZXksICInLiIpKSk7CiAKLQotICAgIFVSTCBtb2R1bGVVUkwgPSBVUkwoeyB9LCBt
b2R1bGVLZXkpOwogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICAvLyBGaWxlU3lzdGVtIGRv
ZXMgbm90IGhhdmUgbWltZS10eXBlIGhlYWRlci4gVGhlIEpTQyBzaGVsbCByZWNvZ25pemVzIFdl
YkFzc2VtYmx5J3MgbWFnaWMgaGVhZGVyLgogICAgIGlmIChidWZmZXIuc2l6ZSgpID49IDQpIHsK
ICAgICAgICAgaWYgKGJ1ZmZlclswXSA9PSAnXDAnICYmIGJ1ZmZlclsxXSA9PSAnYScgJiYgYnVm
ZmVyWzJdID09ICdzJyAmJiBidWZmZXJbM10gPT0gJ20nKSB7Ci0gICAgICAgICAgICBhdXRvIHNv
dXJjZSA9IFNvdXJjZUNvZGUoV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKFdURk1v
dmUoYnVmZmVyKSwgU291cmNlT3JpZ2luIHsgbW9kdWxlS2V5IH0sIFdURk1vdmUobW9kdWxlVVJM
KSkpOworICAgICAgICAgICAgYXV0byBzb3VyY2UgPSBTb3VyY2VDb2RlKFdlYkFzc2VtYmx5U291
cmNlUHJvdmlkZXI6OmNyZWF0ZShXVEZNb3ZlKGJ1ZmZlciksIFNvdXJjZU9yaWdpbiB7IG1vZHVs
ZVVSTCB9LCBXVEZNb3ZlKG1vZHVsZUtleSkpKTsKICAgICAgICAgICAgIGNhdGNoU2NvcGUucmVs
ZWFzZUFzc2VydE5vRXhjZXB0aW9uKCk7CiAgICAgICAgICAgICBhdXRvIHNvdXJjZUNvZGUgPSBK
U1NvdXJjZUNvZGU6OmNyZWF0ZSh2bSwgV1RGTW92ZShzb3VyY2UpKTsKICAgICAgICAgICAgIGNh
dGNoU2NvcGUucmVsZWFzZUFzc2VydE5vRXhjZXB0aW9uKCk7CkBAIC0xMTcxLDcgKzExMTYsNyBA
QCBKU0ludGVybmFsUHJvbWlzZSogR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJGZXRjaChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIH0KICNlbmRpZgogCi0gICAgYXV0byBzb3Vy
Y2VDb2RlID0gSlNTb3VyY2VDb2RlOjpjcmVhdGUodm0sIGpzY1NvdXJjZShzdHJpbmdGcm9tVVRG
KGJ1ZmZlciksIFNvdXJjZU9yaWdpbiB7IG1vZHVsZUtleSB9LCBXVEZNb3ZlKG1vZHVsZVVSTCks
IFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSkpOworICAg
IGF1dG8gc291cmNlQ29kZSA9IEpTU291cmNlQ29kZTo6Y3JlYXRlKHZtLCBqc2NTb3VyY2Uoc3Ry
aW5nRnJvbVVURihidWZmZXIpLCBTb3VyY2VPcmlnaW4geyBtb2R1bGVVUkwgfSwgV1RGTW92ZSht
b2R1bGVLZXkpLCBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpNb2R1
bGUpKTsKICAgICBjYXRjaFNjb3BlLnJlbGVhc2VBc3NlcnROb0V4Y2VwdGlvbigpOwogICAgIHBy
b21pc2UtPnJlc29sdmUoZ2xvYmFsT2JqZWN0LCBzb3VyY2VDb2RlKTsKICAgICBjYXRjaFNjb3Bl
LmNsZWFyRXhjZXB0aW9uKCk7CkBAIC0xNTE1LDE0ICsxNDYwLDI1IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAorICAgIGJvb2wgY2FsbGVyUmVsYXRpdmUg
PSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpLmdldFN0cmluZyhnbG9iYWxPYmplY3QpID09ICJjYWxs
ZXIgcmVsYXRpdmUiX3M7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpT
VmFsdWUoKSk7CisKICAgICBTdHJpbmcgZmlsZU5hbWUgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDAp
LnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisKKyAgICBVUkwgcGF0aDsKKyAgICBpZiAoY2FsbGVyUmVs
YXRpdmUpIHsKKyAgICAgICAgcGF0aCA9IFVSTChjYWxsRnJhbWUtPmNhbGxlclNvdXJjZU9yaWdp
bih2bSkudXJsKCksIGZpbGVOYW1lKTsKKyAgICAgICAgaWYgKCFwYXRoLmlzTG9jYWxGaWxlKCkp
CisgICAgICAgICAgICByZXR1cm4gdGhyb3dWTUV4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3Bl
LCBjcmVhdGVVUklFcnJvcihnbG9iYWxPYmplY3QsIG1ha2VTdHJpbmcoImNhbGxlciByZWxhdGl2
ZSBVUkwgcGF0aCBpcyBub3QgYSBsb2NhbCBmaWxlOiAiLCBwYXRoLnN0cmluZygpKSkpOworICAg
IH0gZWxzZQorICAgICAgICBwYXRoID0gYWJzb2x1dGVQYXRoKGZpbGVOYW1lKTsKICAgICBWZWN0
b3I8Y2hhcj4gc2NyaXB0OwotICAgIGlmICghZmV0Y2hTY3JpcHRGcm9tTG9jYWxGaWxlU3lzdGVt
KGZpbGVOYW1lLCBzY3JpcHQpKQorICAgIGlmICghZmV0Y2hTY3JpcHRGcm9tTG9jYWxGaWxlU3lz
dGVtKHBhdGguZmlsZVN5c3RlbVBhdGgoKSwgc2NyaXB0KSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVFcnJv
cihnbG9iYWxPYmplY3QsICJDb3VsZCBub3Qgb3BlbiBmaWxlLiJfcykpKTsKIAogICAgIE5ha2Vk
UHRyPEV4Y2VwdGlvbj4gZXZhbHVhdGlvbkV4Y2VwdGlvbjsKLSAgICBKU1ZhbHVlIHJlc3VsdCA9
IGV2YWx1YXRlKGdsb2JhbE9iamVjdCwganNjU291cmNlKHNjcmlwdCwgU291cmNlT3JpZ2luIHsg
YWJzb2x1dGVQYXRoKGZpbGVOYW1lKSB9LCBmaWxlTmFtZSksIEpTVmFsdWUoKSwgZXZhbHVhdGlv
bkV4Y2VwdGlvbik7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBldmFsdWF0ZShnbG9iYWxPYmplY3Qs
IGpzY1NvdXJjZShzY3JpcHQsIFNvdXJjZU9yaWdpbiB7IHBhdGggfSwgZmlsZU5hbWUpLCBKU1Zh
bHVlKCksIGV2YWx1YXRpb25FeGNlcHRpb24pOwogICAgIGlmIChldmFsdWF0aW9uRXhjZXB0aW9u
KQogICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBldmFsdWF0aW9u
RXhjZXB0aW9uKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CkBAIC0xNjQ4
LDcgKzE2MDQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ2FsbGVy
U291cmNlT3JpZ2luKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBTb3VyY2VPcmlnaW4gc291cmNlT3JpZ2luID0gY2FsbEZy
YW1lLT5jYWxsZXJTb3VyY2VPcmlnaW4odm0pOwotICAgIGlmIChzb3VyY2VPcmlnaW4uaXNOdWxs
KCkpCisgICAgaWYgKHNvdXJjZU9yaWdpbi51cmwoKS5pc051bGwoKSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bGwoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1N0cmluZyh2bSwgc291cmNlT3JpZ2luLnN0cmluZygpKSk7CiB9CkBAIC0xOTEyLDcgKzE4Njgs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFyQWdlbnRTdGFy
dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgTmFrZWRQdHI8RXhjZXB0aW9uPiBldmFsdWF0aW9uRXhjZXB0aW9uOwog
ICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdDsKLSAgICAgICAgICAgICAgICAgICAg
cmVzdWx0ID0gZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBqc2NTb3VyY2Uoc291cmNlQ29kZSwgU291
cmNlT3JpZ2luKCJ3b3JrZXIiX3MpKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9uKTsK
KyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBqc2NT
b3VyY2Uoc291cmNlQ29kZSwgU291cmNlT3JpZ2luKFVSTCh7IH0sICJ3b3JrZXIiX3MpKSksIEpT
VmFsdWUoKSwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7CiAgICAgICAgICAgICAgICAgICAgIGlmIChl
dmFsdWF0aW9uRXhjZXB0aW9uKQogICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZXZh
bHVhdGlvbkV4Y2VwdGlvbi0+dmFsdWUoKTsKICAgICAgICAgICAgICAgICAgICAgY2hlY2tFeGNl
cHRpb24oZ2xvYmFsT2JqZWN0LCB0cnVlLCBldmFsdWF0aW9uRXhjZXB0aW9uLCByZXN1bHQsIGNv
bW1hbmRMaW5lLCBzdWNjZXNzKTsKQEAgLTIzMzYsNyArMjI5Miw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DaGVja01vZHVsZVN5bnRheChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqCiAgICAgc3RvcFdhdGNoLnN0YXJ0KCk7CiAKICAgICBQYXJzZXJFcnJvciBlcnJv
cjsKLSAgICBib29sIHZhbGlkU3ludGF4ID0gY2hlY2tNb2R1bGVTeW50YXgoZ2xvYmFsT2JqZWN0
LCBqc2NTb3VyY2Uoc291cmNlLCB7IH0sIFVSTCgpLCBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJv
dmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUpLCBlcnJvcik7CisgICAgYm9vbCB2YWxpZFN5bnRheCA9
IGNoZWNrTW9kdWxlU3ludGF4KGdsb2JhbE9iamVjdCwganNjU291cmNlKHNvdXJjZSwgeyB9LCBT
dHJpbmcoKSwgVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxl
KSwgZXJyb3IpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVl
KCkpOwogICAgIHN0b3BXYXRjaC5zdG9wKCk7CiAKQEAgLTI3OTYsNiArMjc1Miw4IEBAIHN0YXRp
YyB2b2lkIHJ1bldpdGhPcHRpb25zKEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb21tYW5k
TGluZSYgb3B0aW9ucywgYm9vCiAgICAgICAgICAgICAgICAgc2NyaXB0QnVmZmVyLmFwcGVuZCgi
XCJ1c2Ugc3RyaWN0XCI7XG4iLCBzdHJsZW4oIlwidXNlIHN0cmljdFwiO1xuIikpOwogCiAgICAg
ICAgICAgICBpZiAoaXNNb2R1bGUpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgcGFzc2Vk
IGZpbGUgaXNuJ3QgYW4gYWJzb2x1dGUgcGF0aCBhcHBlbmQgIi4vIiBzbyB0aGUgbW9kdWxlIGxv
YWRlciBkb2Vzbid0IHRoaW5rIHRoaXMgaXMgYSBiYXJlLW5hbWUgc3BlY2lmaWVyLgorICAgICAg
ICAgICAgICAgIGZpbGVOYW1lID0gZmlsZU5hbWUuc3RhcnRzV2l0aCgnLycpID8gZmlsZU5hbWUg
OiBtYWtlU3RyaW5nKCIuLyIsIGZpbGVOYW1lKTsKICAgICAgICAgICAgICAgICBwcm9taXNlID0g
bG9hZEFuZEV2YWx1YXRlTW9kdWxlKGdsb2JhbE9iamVjdCwgZmlsZU5hbWUsIGpzVW5kZWZpbmVk
KCksIGpzVW5kZWZpbmVkKCkpOwogICAgICAgICAgICAgICAgIHNjb3BlLnJlbGVhc2VBc3NlcnRO
b0V4Y2VwdGlvbigpOwogICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTI4MTIsMTAgKzI3NzAsMTEg
QEAgc3RhdGljIHZvaWQgcnVuV2l0aE9wdGlvbnMoR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENvbW1hbmRMaW5lJiBvcHRpb25zLCBib28KICAgICAgICAgfQogCiAgICAgICAgIGJvb2wgaXNM
YXN0RmlsZSA9IGkgPT0gc2NyaXB0cy5zaXplKCkgLSAxOworICAgICAgICBTb3VyY2VPcmlnaW4g
c291cmNlT3JpZ2luIHsgYWJzb2x1dGVQYXRoKGZpbGVOYW1lKSB9OwogICAgICAgICBpZiAoaXNN
b2R1bGUpIHsKICAgICAgICAgICAgIGlmICghcHJvbWlzZSkgewogICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBUaGlzIHNob3VsZCB1c2UgYW4gYWJzb2x1dGUgZmlsZSBVUkwgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzA3NwotICAgICAgICAgICAgICAgIHByb21p
c2UgPSBsb2FkQW5kRXZhbHVhdGVNb2R1bGUoZ2xvYmFsT2JqZWN0LCBqc2NTb3VyY2Uoc3RyaW5n
RnJvbVVURihzY3JpcHRCdWZmZXIpLCBTb3VyY2VPcmlnaW4geyBhYnNvbHV0ZVBhdGgoZmlsZU5h
bWUpIH0sIFVSTCh7IH0sIGZpbGVOYW1lKSwgVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVy
U291cmNlVHlwZTo6TW9kdWxlKSwganNVbmRlZmluZWQoKSk7CisgICAgICAgICAgICAgICAgcHJv
bWlzZSA9IGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShnbG9iYWxPYmplY3QsIGpzY1NvdXJjZShzdHJp
bmdGcm9tVVRGKHNjcmlwdEJ1ZmZlciksIHNvdXJjZU9yaWdpbiwgZmlsZU5hbWUsIFRleHRQb3Np
dGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSksIGpzVW5kZWZpbmVkKCkp
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKIApA
QCAtMjgzNCw3ICsyNzkzLDcgQEAgc3RhdGljIHZvaWQgcnVuV2l0aE9wdGlvbnMoR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENvbW1hbmRMaW5lJiBvcHRpb25zLCBib28KICAgICAgICAgICAg
IHZtLmRyYWluTWljcm90YXNrcygpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgTmFr
ZWRQdHI8RXhjZXB0aW9uPiBldmFsdWF0aW9uRXhjZXB0aW9uOwotICAgICAgICAgICAgSlNWYWx1
ZSByZXR1cm5WYWx1ZSA9IGV2YWx1YXRlKGdsb2JhbE9iamVjdCwganNjU291cmNlKHNjcmlwdEJ1
ZmZlciwgU291cmNlT3JpZ2luIHsgYWJzb2x1dGVQYXRoKGZpbGVOYW1lKSB9LCBmaWxlTmFtZSks
IEpTVmFsdWUoKSwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7CisgICAgICAgICAgICBKU1ZhbHVlIHJl
dHVyblZhbHVlID0gZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBqc2NTb3VyY2Uoc2NyaXB0QnVmZmVy
LCBzb3VyY2VPcmlnaW4gLCBmaWxlTmFtZSksIEpTVmFsdWUoKSwgZXZhbHVhdGlvbkV4Y2VwdGlv
bik7CiAgICAgICAgICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogICAgICAgICAgICAg
aWYgKGV2YWx1YXRpb25FeGNlcHRpb24pCiAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBl
dmFsdWF0aW9uRXhjZXB0aW9uLT52YWx1ZSgpOwpAQCAtMjg1NywxMCArMjgxNiwxMCBAQCBzdGF0
aWMgdm9pZCBydW5JbnRlcmFjdGl2ZShHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FU
Q0hfU0NPUEUodm0pOwogCi0gICAgT3B0aW9uYWw8RGlyZWN0b3J5TmFtZT4gZGlyZWN0b3J5TmFt
ZSA9IGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KCk7Ci0gICAgaWYgKCFkaXJlY3RvcnlOYW1lKQor
ICAgIFVSTCBkaXJlY3RvcnlOYW1lID0gY3VycmVudFdvcmtpbmdEaXJlY3RvcnkoKTsKKyAgICBp
ZiAoIWRpcmVjdG9yeU5hbWUuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47Ci0gICAgU291cmNl
T3JpZ2luIHNvdXJjZU9yaWdpbihyZXNvbHZlUGF0aChkaXJlY3RvcnlOYW1lLnZhbHVlKCksIE1v
ZHVsZU5hbWUoImludGVycHJldGVyIikpKTsKKyAgICBTb3VyY2VPcmlnaW4gc291cmNlT3JpZ2lu
KFVSTChkaXJlY3RvcnlOYW1lLCAiLi9pbnRlcnByZXRlciJfcykpOwogICAgIAogICAgIGJvb2wg
c2hvdWxkUXVpdCA9IGZhbHNlOwogICAgIHdoaWxlICghc2hvdWxkUXVpdCkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IDcxMDE1Y2JlOTFjNWRkNTlhZGMzODRkZmQ5MmFi
NGRhZTVkN2MxM2QuLjlhMmVmY2FkMjg2YTMyNzMwYzc1OGFjMjYyNWExMzgxMWE3NGIwNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAgLTE4NTgsNyArMTg1OCw2IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBTY29wZU5vZGUoUGFyc2VyQXJlbmEmLCBjb25zdCBKU1Rv
a2VuTG9jYXRpb24mIHN0YXJ0LCBjb25zdCBKU1Rva2VuTG9jYXRpb24mIGVuZCwgY29uc3QgU291
cmNlQ29kZSYsIFNvdXJjZUVsZW1lbnRzKiwgVmFyaWFibGVFbnZpcm9ubWVudCYsIEZ1bmN0aW9u
U3RhY2smJiwgVmFyaWFibGVFbnZpcm9ubWVudCYsIFVuaXF1ZWRTdHJpbmdJbXBsUHRyU2V0JiYs
IENvZGVGZWF0dXJlcywgSW5uZXJBcnJvd0Z1bmN0aW9uQ29kZUZlYXR1cmVzLCBpbnQgbnVtQ29u
c3RhbnRzKTsKIAogICAgICAgICBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UoKSBjb25zdCB7IHJl
dHVybiBtX3NvdXJjZTsgfQotICAgICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCgpIGNvbnN0
IHsgcmV0dXJuIG1fc291cmNlLnByb3ZpZGVyKCktPnVybCgpLnN0cmluZygpOyB9CiAgICAgICAg
IGludHB0cl90IHNvdXJjZUlEKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UucHJvdmlkZXJJRCgp
OyB9CiAKICAgICAgICAgaW50IHN0YXJ0TGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRMaW5l
TnVtYmVyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJj
ZUNvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZS5oCmluZGV4
IGFhZDI4N2RkZTg3NzFiNzliMTg2MGM1ZWQ0Yjk3MDgxZWFmMmJmOTYuLjk5MmQ4OWEyMTAzZGUz
NmMwZmRkNjc1YTUzZmY4YjEzMTBjMDFmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvU291cmNlQ29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvU291cmNlQ29kZS5oCkBAIC05Niw5ICs5Niw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBPcmRpbmFsTnVtYmVyIG1fc3RhcnRDb2x1bW47CiAgICAgfTsKIAotICAgIGlubGluZSBTb3Vy
Y2VDb2RlIG1ha2VTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNvdXJjZU9yaWdp
biYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwgPSBVUkwoKSwgY29uc3QgVGV4dFBvc2l0aW9uJiBz
dGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBz
b3VyY2VUeXBlID0gU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtKQorICAgIGlubGlu
ZSBTb3VyY2VDb2RlIG1ha2VTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNvdXJj
ZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJpbmcgZmlsZW5hbWUgPSBTdHJpbmcoKSwgY29uc3Qg
VGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3Zp
ZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlID0gU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9n
cmFtKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFNvdXJjZUNvZGUoU3RyaW5nU291cmNlUHJvdmlk
ZXI6OmNyZWF0ZShzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpLCBzdGFydFBvc2l0
aW9uLCBzb3VyY2VUeXBlKSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJbnQoKSwgc3Rh
cnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKTsKKyAgICAgICAgcmV0dXJuIFNvdXJj
ZUNvZGUoU3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIHNvdXJjZU9yaWdpbiwg
V1RGTW92ZShmaWxlbmFtZSksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpLCBzdGFydFBvc2l0
aW9uLm1fbGluZS5vbmVCYXNlZEludCgpLCBzdGFydFBvc2l0aW9uLm1fY29sdW1uLm9uZUJhc2Vk
SW50KCkpOwogICAgIH0KICAgICAKICAgICBpbmxpbmUgU291cmNlQ29kZSBTb3VyY2VDb2RlOjpz
dWJFeHByZXNzaW9uKHVuc2lnbmVkIG9wZW5CcmFjZSwgdW5zaWduZWQgY2xvc2VCcmFjZSwgaW50
IGZpcnN0TGluZSwgaW50IHN0YXJ0Q29sdW1uKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlS2V5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1NvdXJjZUNvZGVLZXkuaAppbmRleCA2NzhhZTlkN2QzNmI3MDVlNTA5OWFkYjc1
ZDk2ZDA1NWM2NTA0ZDMzLi42NDIzMjcwZDhhZTA5MWE3MzAxY2E4Yzg1MzU5MGI4YTM3YmNhNDY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGVLZXku
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGVLZXkuaApAQCAt
MTA2LDcgKzEwNiw3IEBAIHB1YmxpYzoKICAgICAvLyBwcm92aWRlcnMgY2FjaGUgdGhlaXIgc3Ry
aW5ncyB0byBtYWtlIHRoaXMgZWZmaWNpZW50LgogICAgIFN0cmluZ1ZpZXcgc3RyaW5nKCkgY29u
c3QgeyByZXR1cm4gbV9zb3VyY2VDb2RlLnZpZXcoKTsgfQogCi0gICAgU3RyaW5nVmlldyBob3N0
KCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VDb2RlLnByb3ZpZGVyKCkudXJsKCkuaG9zdCgpOyB9
CisgICAgU3RyaW5nVmlldyBob3N0KCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VDb2RlLnByb3Zp
ZGVyKCkuc291cmNlT3JpZ2luKCkudXJsKCkuaG9zdCgpOyB9CiAKICAgICBib29sIG9wZXJhdG9y
PT0oY29uc3QgU291cmNlQ29kZUtleSYgb3RoZXIpIGNvbnN0CiAgICAgewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmNwcAppbmRleCBjMTQxNmYxNDk1
YjY4M2FmOTVlNzc1OGVjMmExYTAzMTdlNWViOGIwLi4wM2U1NWVlM2QxZmYyMDI1ODZhZjJiZWE4
ZDc5MWQ1MTUzYTE4N2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1NvdXJjZVByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Nv
dXJjZVByb3ZpZGVyLmNwcApAQCAtMzIsMTAgKzMyLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogCiBE
RUZJTkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKFN0cmluZ1NvdXJjZVByb3ZpZGVy
KTsKIAotU291cmNlUHJvdmlkZXI6OlNvdXJjZVByb3ZpZGVyKGNvbnN0IFNvdXJjZU9yaWdpbiYg
c291cmNlT3JpZ2luLCBVUkwmJiB1cmwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlv
biwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUpCitTb3VyY2VQcm92aWRlcjo6
U291cmNlUHJvdmlkZXIoY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0cmluZyYm
IHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92
aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSkKICAgICA6IG1fc291cmNlVHlwZShzb3VyY2VUeXBl
KQotICAgICwgbV91cmwoV1RGTW92ZSh1cmwpKQogICAgICwgbV9zb3VyY2VPcmlnaW4oc291cmNl
T3JpZ2luKQorICAgICwgbV9zb3VyY2VVUkwoV1RGTW92ZShzb3VyY2VVUkwpKQogICAgICwgbV9z
dGFydFBvc2l0aW9uKHN0YXJ0UG9zaXRpb24pCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKaW5kZXggYjYyZjM5MzJjMjEzMjI5OTY2OWUyZDA1
Mjk5N2Y3MjViNzYwMDNjMC4uMTI5ZWU1YzQ5ZTI0N2FmY2Q5ZjA4ZDU5ZWZlOWZiMTI4ZjlhYmJl
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRl
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaApA
QCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKICNp
bmNsdWRlICJTb3VyY2VPcmlnaW4uaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2lu
Y2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRpb24uaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTQsNyArNTMsNyBAQCBjbGFzcyBV
bmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOwogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIGNv
bnN0IGludHB0cl90IG51bGxJRCA9IDE7CiAgICAgICAgIAotICAgICAgICBKU19FWFBPUlRfUFJJ
VkFURSBTb3VyY2VQcm92aWRlcihjb25zdCBTb3VyY2VPcmlnaW4mLCBVUkwmJiwgY29uc3QgVGV4
dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUpOworICAg
ICAgICBKU19FWFBPUlRfUFJJVkFURSBTb3VyY2VQcm92aWRlcihjb25zdCBTb3VyY2VPcmlnaW4m
LCBTdHJpbmcmJiBzb3VyY2VVUkwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwg
U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlKTsKIAogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB2
aXJ0dWFsIH5Tb3VyY2VQcm92aWRlcigpOwogCkBAIC03MSw3ICs3MCw5IEBAIGNsYXNzIFVubGlu
a2VkRnVuY3Rpb25Db2RlQmxvY2s7CiAgICAgICAgIH0KIAogICAgICAgICBjb25zdCBTb3VyY2VP
cmlnaW4mIHNvdXJjZU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlT3JpZ2luOyB9Ci0g
ICAgICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KKworICAgICAg
ICAvLyBUaGlzIGlzIE5PVCB0aGUgcGF0aCB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciBjb21wdXRp
bmcgcmVsYXRpdmUgcGF0aHMgZnJvbSBhIHNjcmlwdC4gVXNlIFNvdXJjZU9yaWdpbidzIFVSTCBm
b3IgdGhhdCwgdGhlIHZhbHVlcyBtYXkgb3IgbWF5IG5vdCBiZSB0aGUgc2FtZS4uLgorICAgICAg
ICBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlVVJMOyB9
CiAgICAgICAgIGNvbnN0IFN0cmluZyYgc291cmNlVVJMRGlyZWN0aXZlKCkgY29uc3QgeyByZXR1
cm4gbV9zb3VyY2VVUkxEaXJlY3RpdmU7IH0KICAgICAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2VN
YXBwaW5nVVJMRGlyZWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VNYXBwaW5nVVJMRGly
ZWN0aXZlOyB9CiAKQEAgLTkyLDggKzkzLDggQEAgY2xhc3MgVW5saW5rZWRGdW5jdGlvbkNvZGVC
bG9jazsKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBnZXRJRCgpOwogCiAgICAgICAg
IFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBtX3NvdXJjZVR5cGU7Ci0gICAgICAgIFVSTCBtX3Vy
bDsKICAgICAgICAgU291cmNlT3JpZ2luIG1fc291cmNlT3JpZ2luOworICAgICAgICBTdHJpbmcg
bV9zb3VyY2VVUkw7CiAgICAgICAgIFN0cmluZyBtX3NvdXJjZVVSTERpcmVjdGl2ZTsKICAgICAg
ICAgU3RyaW5nIG1fc291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZTsKICAgICAgICAgVGV4dFBvc2l0
aW9uIG1fc3RhcnRQb3NpdGlvbjsKQEAgLTEwNCw5ICsxMDUsOSBAQCBjbGFzcyBVbmxpbmtlZEZ1
bmN0aW9uQ29kZUJsb2NrOwogICAgIGNsYXNzIFN0cmluZ1NvdXJjZVByb3ZpZGVyIDogcHVibGlj
IFNvdXJjZVByb3ZpZGVyIHsKICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURURfV0lUSF9I
RUFQX0lERU5USUZJRVIoU3RyaW5nU291cmNlUHJvdmlkZXIpOwogICAgIHB1YmxpYzoKLSAgICAg
ICAgc3RhdGljIFJlZjxTdHJpbmdTb3VyY2VQcm92aWRlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYg
c291cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsLCBjb25z
dCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJv
dmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUgPSBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlBy
b2dyYW0pCisgICAgICAgIHN0YXRpYyBSZWY8U3RyaW5nU291cmNlUHJvdmlkZXI+IGNyZWF0ZShj
b25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0
cmluZyBzb3VyY2VVUkwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiA9IFRleHRQ
b3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSA9IFNvdXJjZVBy
b3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU3RyaW5nU291cmNlUHJvdmlkZXIoc291cmNlLCBzb3VyY2VPcmlnaW4s
IFdURk1vdmUodXJsKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkpOworICAgICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RyaW5nU291cmNlUHJvdmlkZXIoc291cmNlLCBzb3VyY2VP
cmlnaW4sIFdURk1vdmUoc291cmNlVVJMKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkpOwog
ICAgICAgICB9CiAgICAgICAgIAogICAgICAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Qgb3ZlcnJp
ZGUKQEAgLTEyMCw4ICsxMjEsOCBAQCBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOwog
ICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIFN0cmluZ1NvdXJjZVByb3ZpZGVy
KGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwg
VVJMJiYgdXJsLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3Zp
ZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlKQotICAgICAgICAgICAgOiBTb3VyY2VQcm92aWRlcihz
b3VyY2VPcmlnaW4sIFdURk1vdmUodXJsKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkKKyAg
ICAgICAgU3RyaW5nU291cmNlUHJvdmlkZXIoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNv
dXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJpbmcmJiBzb3VyY2VVUkwsIGNvbnN0IFRleHRQ
b3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5
cGUpCisgICAgICAgICAgICA6IFNvdXJjZVByb3ZpZGVyKHNvdXJjZU9yaWdpbiwgV1RGTW92ZShz
b3VyY2VVUkwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKQogICAgICAgICAgICAgLCBtX3Nv
dXJjZShzb3VyY2UuaXNOdWxsKCkgPyAqU3RyaW5nSW1wbDo6ZW1wdHkoKSA6ICpzb3VyY2UuaW1w
bCgpKQogICAgICAgICB7CiAgICAgICAgIH0KQEAgLTEzMyw5ICsxMzQsOSBAQCBjbGFzcyBVbmxp
bmtlZEZ1bmN0aW9uQ29kZUJsb2NrOwogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICBjbGFz
cyBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyIGZpbmFsIDogcHVibGljIFNvdXJjZVByb3ZpZGVy
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8V2ViQXNzZW1ibHlTb3VyY2VQcm92
aWRlcj4gY3JlYXRlKFZlY3Rvcjx1aW50OF90PiYmIGRhdGEsIGNvbnN0IFNvdXJjZU9yaWdpbiYg
c291cmNlT3JpZ2luLCBVUkwmJiB1cmwpCisgICAgICAgIHN0YXRpYyBSZWY8V2ViQXNzZW1ibHlT
b3VyY2VQcm92aWRlcj4gY3JlYXRlKFZlY3Rvcjx1aW50OF90PiYmIGRhdGEsIGNvbnN0IFNvdXJj
ZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJpbmcgc291cmNlVVJMKQogICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyKFdU
Rk1vdmUoZGF0YSksIHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpKSk7CisgICAgICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyKFdURk1vdmUoZGF0
YSksIHNvdXJjZU9yaWdpbiwgV1RGTW92ZShzb3VyY2VVUkwpKSk7CiAgICAgICAgIH0KIAogICAg
ICAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QgZmluYWwKQEAgLTE1NCw4ICsxNTUsOCBAQCBjbGFz
cyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgot
ICAgICAgICBXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyKFZlY3Rvcjx1aW50OF90PiYmIGRhdGEs
IGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBVUkwmJiB1cmwpCi0gICAgICAgICAg
ICA6IFNvdXJjZVByb3ZpZGVyKHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpLCBUZXh0UG9zaXRp
b24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpXZWJBc3NlbWJseSkKKyAgICAgICAgV2Vi
QXNzZW1ibHlTb3VyY2VQcm92aWRlcihWZWN0b3I8dWludDhfdD4mJiBkYXRhLCBjb25zdCBTb3Vy
Y2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nJiYgc291cmNlVVJMKQorICAgICAgICAgICAg
OiBTb3VyY2VQcm92aWRlcihzb3VyY2VPcmlnaW4sIFdURk1vdmUoc291cmNlVVJMKSwgVGV4dFBv
c2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6V2ViQXNzZW1ibHkpCiAgICAgICAg
ICAgICAsIG1fc291cmNlKCJbV2ViQXNzZW1ibHkgc291cmNlXSIpCiAgICAgICAgICAgICAsIG1f
ZGF0YShXVEZNb3ZlKGRhdGEpKQogICAgICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9DYWNoZWRUeXBlcy5jcHAKaW5kZXggM2QyNTA2NGRkOTIzNzEzYTE0NGQ4MWZmY2Vi
ODIyNTI1MTJiNGIyYS4uMjJmNzE2NGUwOWY3YjM2NTA0ZmY4ODhiZmM5ZjFjM2Q0NDRmM2QzNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlwZXMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5cGVzLmNwcApAQCAt
MTUxMCwxMiArMTUxMCwxMiBAQCBjbGFzcyBDYWNoZWRTb3VyY2VPcmlnaW4gOiBwdWJsaWMgQ2Fj
aGVkT2JqZWN0PFNvdXJjZU9yaWdpbj4gewogcHVibGljOgogICAgIHZvaWQgZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luKQogICAgIHsKLSAg
ICAgICAgbV9zdHJpbmcuZW5jb2RlKGVuY29kZXIsIHNvdXJjZU9yaWdpbi5zdHJpbmcoKSk7Cisg
ICAgICAgIG1fc3RyaW5nLmVuY29kZShlbmNvZGVyLCBzb3VyY2VPcmlnaW4udXJsKCkuc3RyaW5n
KCkpOwogICAgIH0KIAogICAgIFNvdXJjZU9yaWdpbiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rlcikg
Y29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBTb3VyY2VPcmlnaW4geyBtX3N0cmluZy5kZWNv
ZGUoZGVjb2RlcikgfTsKKyAgICAgICAgcmV0dXJuIFNvdXJjZU9yaWdpbiB7IFVSTCh7IH0sIG1f
c3RyaW5nLmRlY29kZShkZWNvZGVyKSkgfTsKICAgICB9CiAKIHByaXZhdGU6CkBAIC0xNTQ2LDcg
KzE1NDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgU291cmNlUHJvdmlkZXImIHNvdXJjZVByb3ZpZGVyKQogICAgIHsKICAgICAgICAgbV9zb3Vy
Y2VPcmlnaW4uZW5jb2RlKGVuY29kZXIsIHNvdXJjZVByb3ZpZGVyLnNvdXJjZU9yaWdpbigpKTsK
LSAgICAgICAgbV91cmwuZW5jb2RlKGVuY29kZXIsIHNvdXJjZVByb3ZpZGVyLnVybCgpLnN0cmlu
ZygpKTsKKyAgICAgICAgbV9zb3VyY2VVUkwuZW5jb2RlKGVuY29kZXIsIHNvdXJjZVByb3ZpZGVy
LnNvdXJjZVVSTCgpKTsKICAgICAgICAgbV9zb3VyY2VVUkxEaXJlY3RpdmUuZW5jb2RlKGVuY29k
ZXIsIHNvdXJjZVByb3ZpZGVyLnNvdXJjZVVSTERpcmVjdGl2ZSgpKTsKICAgICAgICAgbV9zb3Vy
Y2VNYXBwaW5nVVJMRGlyZWN0aXZlLmVuY29kZShlbmNvZGVyLCBzb3VyY2VQcm92aWRlci5zb3Vy
Y2VNYXBwaW5nVVJMRGlyZWN0aXZlKCkpOwogICAgICAgICBtX3N0YXJ0UG9zaXRpb24uZW5jb2Rl
KGVuY29kZXIsIHNvdXJjZVByb3ZpZGVyLnN0YXJ0UG9zaXRpb24oKSk7CkBAIC0xNTYwLDcgKzE1
NjAsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBDYWNoZWRTb3VyY2VPcmlnaW4gbV9z
b3VyY2VPcmlnaW47Ci0gICAgQ2FjaGVkU3RyaW5nIG1fdXJsOworICAgIENhY2hlZFN0cmluZyBt
X3NvdXJjZVVSTDsKICAgICBDYWNoZWRTdHJpbmcgbV9zb3VyY2VVUkxEaXJlY3RpdmU7CiAgICAg
Q2FjaGVkU3RyaW5nIG1fc291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZTsKICAgICBDYWNoZWRUZXh0
UG9zaXRpb24gbV9zdGFydFBvc2l0aW9uOwpAQCAtMTU4MCwxMCArMTU4MCwxMCBAQCBwdWJsaWM6
CiAgICAgewogICAgICAgICBTdHJpbmcgZGVjb2RlZFNvdXJjZSA9IG1fc291cmNlLmRlY29kZShk
ZWNvZGVyKTsKICAgICAgICAgU291cmNlT3JpZ2luIGRlY29kZWRTb3VyY2VPcmlnaW4gPSBtX3Nv
dXJjZU9yaWdpbi5kZWNvZGUoZGVjb2Rlcik7Ci0gICAgICAgIFN0cmluZyBkZWNvZGVkVVJMID0g
bV91cmwuZGVjb2RlKGRlY29kZXIpOworICAgICAgICBTdHJpbmcgZGVjb2RlZFNvdXJjZVVSTCA9
IG1fc291cmNlVVJMLmRlY29kZShkZWNvZGVyKTsKICAgICAgICAgVGV4dFBvc2l0aW9uIGRlY29k
ZWRTdGFydFBvc2l0aW9uID0gbV9zdGFydFBvc2l0aW9uLmRlY29kZShkZWNvZGVyKTsKIAotICAg
ICAgICBSZWY8U3RyaW5nU291cmNlUHJvdmlkZXI+IHNvdXJjZVByb3ZpZGVyID0gU3RyaW5nU291
cmNlUHJvdmlkZXI6OmNyZWF0ZShkZWNvZGVkU291cmNlLCBkZWNvZGVkU291cmNlT3JpZ2luLCBV
UkwoVVJMKCksIGRlY29kZWRVUkwpLCBkZWNvZGVkU3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSk7
CisgICAgICAgIFJlZjxTdHJpbmdTb3VyY2VQcm92aWRlcj4gc291cmNlUHJvdmlkZXIgPSBTdHJp
bmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKGRlY29kZWRTb3VyY2UsIGRlY29kZWRTb3VyY2VPcmln
aW4sIGRlY29kZWRTb3VyY2VVUkwsIGRlY29kZWRTdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKTsK
ICAgICAgICAgQmFzZTo6ZGVjb2RlKGRlY29kZXIsIHNvdXJjZVByb3ZpZGVyLmdldCgpKTsKICAg
ICAgICAgcmV0dXJuICZzb3VyY2VQcm92aWRlci5sZWFrUmVmKCk7CiAgICAgfQpAQCAtMTYwNywx
MSArMTYwNywxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBWZWN0b3I8dWludDhfdD4gZGVj
b2RlZERhdGE7CiAgICAgICAgIFNvdXJjZU9yaWdpbiBkZWNvZGVkU291cmNlT3JpZ2luID0gbV9z
b3VyY2VPcmlnaW4uZGVjb2RlKGRlY29kZXIpOwotICAgICAgICBTdHJpbmcgZGVjb2RlZFVSTCA9
IG1fdXJsLmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgU3RyaW5nIGRlY29kZWRTb3VyY2VVUkwg
PSBtX3NvdXJjZVVSTC5kZWNvZGUoZGVjb2Rlcik7CiAKICAgICAgICAgbV9kYXRhLmRlY29kZShk
ZWNvZGVyLCBkZWNvZGVkRGF0YSk7CiAKLSAgICAgICAgUmVmPFdlYkFzc2VtYmx5U291cmNlUHJv
dmlkZXI+IHNvdXJjZVByb3ZpZGVyID0gV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6Y3JlYXRl
KFdURk1vdmUoZGVjb2RlZERhdGEpLCBkZWNvZGVkU291cmNlT3JpZ2luLCBVUkwoVVJMKCksIGRl
Y29kZWRVUkwpKTsKKyAgICAgICAgUmVmPFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI+IHNvdXJj
ZVByb3ZpZGVyID0gV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKFdURk1vdmUoZGVj
b2RlZERhdGEpLCBkZWNvZGVkU291cmNlT3JpZ2luLCBkZWNvZGVkU291cmNlVVJMKTsKICAgICAg
ICAgQmFzZTo6ZGVjb2RlKGRlY29kZXIsIHNvdXJjZVByb3ZpZGVyLmdldCgpKTsKIAogICAgICAg
ICByZXR1cm4gJnNvdXJjZVByb3ZpZGVyLmxlYWtSZWYoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9yLmNwcAppbmRleCAxNWNjYTk1MTYyMzM5ZTJkOGY1NzQ5NzhiYWMzN2Y1NDY2
ZDY3OGRkLi5mNDczYjgxODFlYzJmMDJhMGNjNzhhMjZjMGMyMGRjOTYzMWZkYzc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCkBAIC0yMzAsNyArMjMwLDcgQEAgdm9p
ZCBhZGRFcnJvckluZm8oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9i
aiwgYm9vbCB1c2VDdXJyZW50RnIKIAogSlNPYmplY3QqIGFkZEVycm9ySW5mbyhWTSYgdm0sIEpT
T2JqZWN0KiBlcnJvciwgaW50IGxpbmUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSkKIHsKLSAg
ICBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCA9IHNvdXJjZS5wcm92aWRlcigpLT51cmwoKS5zdHJp
bmcoKTsKKyAgICBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCA9IHNvdXJjZS5wcm92aWRlcigpLT5z
b3VyY2VVUkwoKTsKICAgICAKICAgICAvLyBUaGUgcHV0RGlyZWN0KCkgY2FsbHMgYmVsb3cgc2hv
dWxkIHJlYWxseSBiZSBwdXQoKSBzbyB0aGF0IHRoZXkgdHJpZ2dlciBtYXRlcmlhbGl6YXRpb24g
b2YKICAgICAvLyB0aGUgbGluZS9zb3VyY2VVUkwgcHJvcGVydGllcy4gT3RoZXJ3aXNlLCB3aGF0
IHdlIHNldCBoZXJlIHdpbGwganVzdCBiZSBvdmVyd3JpdHRlbiBsYXRlci4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKaW5k
ZXggMTI2MTRkZWRhMzk1NmJhNDRmMjA4MjlkZGQ0OTA2ZjBiNGYyN2Y4Yy4uNGMxMDE2Zjg3OThk
ZGFjM2FjYWUxMTZkOWVjMTIxYTQ0NmZhY2E4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKQEAgLTE0OCw3ICsxNDgs
NyBAQCBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxFbmFibGVkQ2hlY2so
CiAgICAgICAgIHByb2dyYW0gPSBidWlsZGVyLnRvU3RyaW5nKCk7CiAgICAgfQogCi0gICAgU291
cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291cmNlKHByb2dyYW0sIHNvdXJjZU9yaWdpbiwgVVJMKHsg
fSwgc291cmNlVVJMKSwgcG9zaXRpb24pOworICAgIFNvdXJjZUNvZGUgc291cmNlID0gbWFrZVNv
dXJjZShwcm9ncmFtLCBzb3VyY2VPcmlnaW4sIHNvdXJjZVVSTCwgcG9zaXRpb24pOwogICAgIEpT
T2JqZWN0KiBleGNlcHRpb24gPSBudWxscHRyOwogICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVu
Y3Rpb24gPSBGdW5jdGlvbkV4ZWN1dGFibGU6OmZyb21HbG9iYWxDb2RlKGZ1bmN0aW9uTmFtZSwg
Z2xvYmFsT2JqZWN0LCBzb3VyY2UsIGV4Y2VwdGlvbiwgb3ZlcnJpZGVMaW5lTnVtYmVyLCBmdW5j
dGlvbkNvbnN0cnVjdG9yUGFyYW1ldGVyc0VuZFBvc2l0aW9uKTsKICAgICBpZiAoVU5MSUtFTFko
IWZ1bmN0aW9uKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2NyaXB0RXhlY3V0YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NyaXB0
RXhlY3V0YWJsZS5oCmluZGV4IGY0YjQyNWJjZmIwMjRjZDg3YjZlZDJjMTc4ODA3Y2FmMDFjYmQ5
MDYuLjUyZDkyMTkwZDAyNDE4MzU1NTAwNmQ2ZGUxYTcwNWEwMTUzYmZhMDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmgKQEAgLTQ3LDcg
KzQ3LDggQEAgcHVibGljOgogICAgIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc291cmNlOyB9CiAgICAgaW50cHRyX3Qgc291cmNlSUQoKSBjb25zdCB7IHJldHVy
biBtX3NvdXJjZS5wcm92aWRlcklEKCk7IH0KICAgICBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJj
ZU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnByb3ZpZGVyKCktPnNvdXJjZU9yaWdp
bigpOyB9Ci0gICAgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiBtX3Nv
dXJjZS5wcm92aWRlcigpLT51cmwoKS5zdHJpbmcoKTsgfQorICAgIC8vIFRoaXMgaXMgTk9UIHRo
ZSBwYXRoIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIGNvbXB1dGluZyByZWxhdGl2ZSBwYXRocyBm
cm9tIGEgc2NyaXB0LiBVc2UgU291cmNlT3JpZ2luJ3MgVVJMIGZvciB0aGF0LCB0aGUgdmFsdWVz
IG1heSBvciBtYXkgbm90IGJlIHRoZSBzYW1lLi4uIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBm
b3IgYGVycm9yLnNvdXJjZVVSTGAgYW5kIHN0YWNrIHRyYWNlcy4KKyAgICBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnByb3ZpZGVyKCktPnNvdXJjZVVS
TCgpOyB9CiAgICAgaW50IGZpcnN0TGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLmZpcnN0
TGluZSgpLm9uZUJhc2VkSW50KCk7IH0KICAgICBKU19FWFBPUlRfUFJJVkFURSBpbnQgbGFzdExp
bmUoKSBjb25zdDsKICAgICB1bnNpZ25lZCBzdGFydENvbHVtbigpIGNvbnN0IHsgcmV0dXJuIG1f
c291cmNlLnN0YXJ0Q29sdW1uKCkub25lQmFzZWRJbnQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU291cmNlT3JpZ2luLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Tb3VyY2VPcmlnaW4uaAppbmRleCA3YzNjZGViN2M5YWRiMjFiODUyOTZh
NDNjYzY3OTk1MDAxOGI3MmJkLi44ZTdhMDkwNTMzZTc1YmEzODVlOGJhNTYwYWY1YWY1YmJmMmE4
MWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Tb3VyY2VPcmln
aW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Tb3VyY2VPcmlnaW4uaApA
QCAtMjYsMzIgKzI2LDMzIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNjcmlwdEZldGNo
ZXIuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVVJM
Lmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBTb3VyY2VPcmlnaW4gewogcHVibGljOgot
ICAgIGV4cGxpY2l0IFNvdXJjZU9yaWdpbihjb25zdCBTdHJpbmcmIHN0cmluZykKLSAgICAgICAg
OiBtX3N0cmluZyhzdHJpbmcpCisgICAgZXhwbGljaXQgU291cmNlT3JpZ2luKGNvbnN0IFVSTCYg
dXJsKQorICAgICAgICA6IG1fdXJsKHVybCkKICAgICB7CiAgICAgfQogCi0gICAgZXhwbGljaXQg
U291cmNlT3JpZ2luKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBSZWY8U2NyaXB0RmV0Y2hlcj4mJiBm
ZXRjaGVyKQotICAgICAgICA6IG1fc3RyaW5nKHN0cmluZykKKyAgICBleHBsaWNpdCBTb3VyY2VP
cmlnaW4oY29uc3QgVVJMJiB1cmwsIFJlZjxTY3JpcHRGZXRjaGVyPiYmIGZldGNoZXIpCisgICAg
ICAgIDogbV91cmwodXJsKQogICAgICAgICAsIG1fZmV0Y2hlcihXVEZNb3ZlKGZldGNoZXIpKQog
ICAgIHsKICAgICB9CiAKICAgICBTb3VyY2VPcmlnaW4oKSA9IGRlZmF1bHQ7CiAKLSAgICBjb25z
dCBTdHJpbmcmIHN0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5nOyB9Ci0gICAgYm9vbCBp
c051bGwoKSBjb25zdCB7IHJldHVybiBtX3N0cmluZy5pc051bGwoKTsgfQorICAgIGNvbnN0IFVS
TCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KKyAgICBjb25zdCBTdHJpbmcmIHN0cmlu
ZygpIGNvbnN0IHsgcmV0dXJuIG1fdXJsLnN0cmluZygpOyB9CisgICAgYm9vbCBpc051bGwoKSBj
b25zdCB7IHJldHVybiB1cmwoKS5pc051bGwoKTsgfQogCiAgICAgU2NyaXB0RmV0Y2hlciogZmV0
Y2hlcigpIGNvbnN0IHsgcmV0dXJuIG1fZmV0Y2hlci5nZXQoKTsgfQogCiBwcml2YXRlOgotICAg
IFN0cmluZyBtX3N0cmluZzsKKyAgICBVUkwgbV91cmw7CiAgICAgUmVmUHRyPFNjcmlwdEZldGNo
ZXI+IG1fZmV0Y2hlcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Rocm93U2NvcGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGhy
b3dTY29wZS5jcHAKaW5kZXggYTMxY2U5ZGQzYjA0MjI4M2RmN2RjZDg1NWRhOGVmMGEyNjQ5NzUw
OC4uZGVjNjlhNDgzMTZlMTZhZTUzN2I1ODE1ZDA2ZTBjYmI3NGZhMTk1NSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGhyb3dTY29wZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGhyb3dTY29wZS5jcHAKQEAgLTgwLDE4ICs4MCwxMiBA
QCBFeGNlcHRpb24qIFRocm93U2NvcGU6OnRocm93RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEV4Y2VwdGlvbiogZQogCiBFeGNlcHRpb24qIFRocm93U2NvcGU6OnRocm93
RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgZXJyb3IpCiB7
Ci0gICAgaWYgKCFlcnJvci5pc0NlbGwoKSB8fCAhanNEeW5hbWljQ2FzdDxFeGNlcHRpb24qPiht
X3ZtLCBlcnJvci5hc0NlbGwoKSkpCisgICAgaWYgKCFlcnJvci5pc0NlbGwoKSB8fCBlcnJvci5p
c09iamVjdCgpIHx8ICFqc0R5bmFtaWNDYXN0PEV4Y2VwdGlvbio+KG1fdm0sIGVycm9yLmFzQ2Vs
bCgpKSkKICAgICAgICAgbV92bS52ZXJpZnlFeGNlcHRpb25DaGVja05lZWRJc1NhdGlzZmllZCht
X3JlY3Vyc2lvbkRlcHRoLCBtX2xvY2F0aW9uKTsKICAgICAKICAgICByZXR1cm4gbV92bS50aHJv
d0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIGVycm9yKTsKIH0KIAotRXhjZXB0aW9uKiBUaHJvd1Nj
b3BlOjp0aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVj
dCogb2JqKQotewotICAgIG1fdm0udmVyaWZ5RXhjZXB0aW9uQ2hlY2tOZWVkSXNTYXRpc2ZpZWQo
bV9yZWN1cnNpb25EZXB0aCwgbV9sb2NhdGlvbik7Ci0gICAgcmV0dXJuIG1fdm0udGhyb3dFeGNl
cHRpb24oZ2xvYmFsT2JqZWN0LCBvYmopOwotfQotCiB2b2lkIFRocm93U2NvcGU6OnNpbXVsYXRl
VGhyb3coKQogewogICAgIFJFTEVBU0VfQVNTRVJUKG1fdm0ubV90b3BFeGNlcHRpb25TY29wZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UaHJvd1Njb3BlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UaHJvd1Njb3BlLmgKaW5kZXggNjkzMjE5
N2U4MDU4YjlkNjgyOWUxNjY2YWFkMDA3NDE2NDMxNjFhNC4uY2YzMzZmYzI0M2I2MDRhOGU3ZDVm
MTRhODFiNjMxODJmMzg4NzhhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVGhyb3dTY29wZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Ro
cm93U2NvcGUuaApAQCAtNDksNyArNDksNiBAQCBwdWJsaWM6CiAKICAgICBKU19FWFBPUlRfUFJJ
VkFURSBFeGNlcHRpb24qIHRocm93RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiwgRXhjZXB0aW9u
Kik7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgRXhjZXB0aW9uKiB0aHJvd0V4Y2VwdGlvbihKU0ds
b2JhbE9iamVjdCosIEpTVmFsdWUpOwotICAgIEpTX0VYUE9SVF9QUklWQVRFIEV4Y2VwdGlvbiog
dGhyb3dFeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCopOwogCiAgICAgdm9pZCBy
ZWxlYXNlKCkgeyBtX2lzUmVsZWFzZWQgPSB0cnVlOyB9CiAKQEAgLTc5LDcgKzc4LDYgQEAgcHVi
bGljOgogCiAgICAgQUxXQVlTX0lOTElORSBFeGNlcHRpb24qIHRocm93RXhjZXB0aW9uKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEV4Y2VwdGlvbiogZXhjZXB0aW9uKSB7IHJldHVybiBt
X3ZtLnRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgZXhjZXB0aW9uKTsgfQogICAgIEFMV0FZ
U19JTkxJTkUgRXhjZXB0aW9uKiB0aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHZhbHVlKSB7IHJldHVybiBtX3ZtLnRocm93RXhjZXB0aW9uKGdsb2Jh
bE9iamVjdCwgdmFsdWUpOyB9Ci0gICAgQUxXQVlTX0lOTElORSBFeGNlcHRpb24qIHRocm93RXhj
ZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmopIHsgcmV0
dXJuIG1fdm0udGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBvYmopOyB9CiAKICAgICBBTFdB
WVNfSU5MSU5FIHZvaWQgcmVsZWFzZSgpIHsgfQogfTsKQEAgLTk5LDkgKzk3LDE2IEBAIEFMV0FZ
U19JTkxJTkUgRXhjZXB0aW9uKiB0aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBUaHJvd1Njb3BlCiAgICAgcmV0dXJuIHNjb3BlLnRocm93RXhjZXB0aW9uKGdsb2Jh
bE9iamVjdCwgdmFsdWUpOwogfQogCi1BTFdBWVNfSU5MSU5FIEV4Y2VwdGlvbiogdGhyb3dFeGNl
cHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIEpT
T2JqZWN0KiBvYmopCitBTFdBWVNfSU5MSU5FIEVuY29kZWRKU1ZhbHVlIHRocm93Vk1FeGNlcHRp
b24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIEV4Y2Vw
dGlvbiogZXhjZXB0aW9uKQogewotICAgIHJldHVybiBzY29wZS50aHJvd0V4Y2VwdGlvbihnbG9i
YWxPYmplY3QsIG9iaik7CisgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwg
ZXhjZXB0aW9uKTsKKyAgICByZXR1cm4gZW5jb2RlZEpTVmFsdWUoKTsKK30KKworQUxXQVlTX0lO
TElORSBFbmNvZGVkSlNWYWx1ZSB0aHJvd1ZNRXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFRocm93U2NvcGUmIHNjb3BlLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIHRocm93
RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIHZhbHVlKTsKKyAgICByZXR1cm4gZW5jb2Rl
ZEpTVmFsdWUoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcAppbmRleCBlMDkzOTZmNzQyZWVk
NzUzYjZkYmVhNGNkOWE3OGVmNjY1N2RkNDg1Li40OGIyZGE1ZTJmMjYxZmM5ZTA2YmVhYjdkOTRm
ZjcxOTQwZWY3ZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVu
Y3Rpb25PdmVycmlkZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5j
dGlvbk92ZXJyaWRlcy5jcHAKQEAgLTEzNyw3ICsxMzcsOSBAQCBzdGF0aWMgdm9pZCBpbml0aWFs
aXplT3ZlcnJpZGVJbmZvKGNvbnN0IFNvdXJjZUNvZGUmIG9yaWdDb2RlLCBjb25zdCBTdHJpbmcm
IG5ldwogICAgIG5ld1Byb3ZpZGVyU3RyLmFwcGVuZChvcmlnSGVhZGVyKTsKICAgICBuZXdQcm92
aWRlclN0ci5hcHBlbmQobmV3Qm9keSk7CiAKLSAgICBSZWY8U291cmNlUHJvdmlkZXI+IG5ld1By
b3ZpZGVyID0gU3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShuZXdQcm92aWRlclN0ciwgU291
cmNlT3JpZ2luIHsgIjxvdmVycmlkZGVuPiIgfSwgVVJMKHsgfSwgIjxvdmVycmlkZGVuPiIpKTsK
KyAgICBhdXRvIG92ZXJyaWRkZW4gPSAiPG92ZXJyaWRkZW4+Il9zOworICAgIFVSTCB1cmwoeyB9
LCBvdmVycmlkZGVuKTsKKyAgICBSZWY8U291cmNlUHJvdmlkZXI+IG5ld1Byb3ZpZGVyID0gU3Ry
aW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShuZXdQcm92aWRlclN0ciwgU291cmNlT3JpZ2luIHsg
dXJsIH0sIG92ZXJyaWRkZW4pOwogCiAgICAgaW5mby5maXJzdExpbmUgPSAxOwogICAgIGluZm8u
bGluZUNvdW50ID0gMTsgLy8gRmFraW5nIGl0LiBUaGlzIGRvZXNuJ3QgcmVhbGx5IG1hdHRlciBm
b3Igbm93LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFy
Vk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCmluZGV4
IGUxMmY0ODE2YzNlMTQ0MjU1YzFhNGY1MzJhMjg2NzdkZGIzZDI1NTYuLjhkNjdmNTMxN2M2NjQ1
NTU0NmZhZmI3N2VhZGIyN2YyNWE1NDVmOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9v
bHMvSlNEb2xsYXJWTS5jcHAKQEAgLTE2NDgsMTEgKzE2NDgsNDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKIGNvbnN0IENsYXNzSW5mbyBKU0RvbGxhclZNOjpzX2luZm8gPSB7ICJEb2xsYXJWTSIsICZC
YXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNEb2xs
YXJWTSkgfTsKIAotLy8gVHJpZ2dlcnMgYSBjcmFzaCBpbW1lZGlhdGVseS4KLS8vIFVzYWdlOiAk
dm0uY3Jhc2goKQotc3RhdGljIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyYXNoKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikK
K3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBkb1ByaW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBib29sIGFkZExpbmVGZWVkKQogewogICAgIERvbGxh
clZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUoZ2xvYmFsT2JqZWN0LT52bSgpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCk7ICsraSkgeworICAgICAgICBKU1ZhbHVlIGFy
ZyA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoaSk7CisgICAgICAgIGlmIChhcmcuaXND
ZWxsKCkKKyAgICAgICAgICAgICYmICFhcmcuaXNPYmplY3QoKQorICAgICAgICAgICAgJiYgIWFy
Zy5pc1N0cmluZygpCisgICAgICAgICAgICAmJiAhYXJnLmlzQmlnSW50KCkpIHsKKyAgICAgICAg
ICAgIGRhdGFMb2coYXJnKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAg
ICAgIFN0cmluZyBhcmdTdHIgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KGkpLnRvV1RG
U3RyaW5nKGdsb2JhbE9iamVjdCk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGVuY29kZWRKU1ZhbHVlKCkpOworICAgICAgICBkYXRhTG9nKGFyZ1N0cik7CisgICAgfQorICAg
IGlmIChhZGRMaW5lRmVlZCkKKyAgICAgICAgZGF0YUxvZygiXG4iKTsKKyAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQorCisvLyBUcmlnZ2VycyBhIGNyYXNoIGFm
dGVyIGR1bXBpbmcgYW55IHBhcmFtYXRlciBwYXNzZWQgdG8gaXQuCisvLyBVc2FnZTogJHZtLmNy
YXNoKC4uLikKK3N0YXRpYyBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25DcmFzaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK3sKKyAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNj
b3BlOworCisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKyAgICBpZiAoY2FsbEZyYW1lLT5hcmd1bWVudENv
dW50KCkpIHsKKyAgICAgICAgZGF0YUxvZ0xuKCJEdW1waW5nICIsIGNhbGxGcmFtZS0+YXJndW1l
bnRDb3VudCgpLCAiIHZhbHVlcyBiZWZvcmUgY3Jhc2hpbmc6Iik7CisgICAgICAgIGNvbnN0IGJv
b2wgYWRkTGluZUZlZWQgPSB0cnVlOworICAgICAgICBkb1ByaW50KGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLCBhZGRMaW5lRmVlZCk7CisgICAgICAgIGlmIChzY29wZS5leGNlcHRpb24oKSkgewor
ICAgICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IHNjb3BlLmV4Y2VwdGlvbigpLT52YWx1ZSgpOwor
ICAgICAgICAgICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIGRhdGFMb2dM
bigiRXJyb3IgdGhyb3duIHdoaWxlIGNyYXNoaW5nOiAiLCB2YWx1ZS50b1dURlN0cmluZyhnbG9i
YWxPYmplY3QpKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIENSQVNIKCk7CiB9CiAKQEAgLTIw
MjgsMjggKzIwNjQsNiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkR1bXBCeXRlY29kZUZvcihKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBk
b1ByaW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
LCBib29sIGFkZExpbmVGZWVkKQotewotICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2Nv
cGU7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZ2xvYmFsT2JqZWN0LT52
bSgpKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY2FsbEZyYW1lLT5hcmd1bWVudENv
dW50KCk7ICsraSkgewotICAgICAgICBKU1ZhbHVlIGFyZyA9IGNhbGxGcmFtZS0+dW5jaGVja2Vk
QXJndW1lbnQoaSk7Ci0gICAgICAgIGlmIChhcmcuaXNDZWxsKCkKLSAgICAgICAgICAgICYmICFh
cmcuaXNPYmplY3QoKQotICAgICAgICAgICAgJiYgIWFyZy5pc1N0cmluZygpCi0gICAgICAgICAg
ICAmJiAhYXJnLmlzQmlnSW50KCkpIHsKLSAgICAgICAgICAgIGRhdGFMb2coYXJnKTsKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIFN0cmluZyBhcmdTdHIgPSBjYWxs
RnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KGkpLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7Ci0g
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAg
ICAgICBkYXRhTG9nKGFyZ1N0cik7Ci0gICAgfQotICAgIGlmIChhZGRMaW5lRmVlZCkKLSAgICAg
ICAgZGF0YUxvZygiXG4iKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwotfQotCiAvLyBQcmludHMgYSBzZXJpZXMgb2YgY29tbWEgc2VwYXJhdGUgc3RyaW5ncyB3
aXRob3V0IGFwcGVuZGluZyBhIG5ld2xpbmUuCiAvLyBVc2FnZTogJHZtLmRhdGFMb2coc3RyMSwg
c3RyMiwgc3RyMykKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
RGF0YUxvZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1VSTC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9V
UkwuY3BwCmluZGV4IGZlMjljYTc3NzZjNTM4YmY4MDNkNmJjNjFiYWU3OTFmMjNjNGNhZmIuLjFk
MzE0YmY4ZDA0Y2M0ZWU5YTVhOWQxZDU2ZjhlNmNhMmViMGY0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1VSTC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVVJMLmNwcApAQCAtMjEzLDcg
KzIxMywxMSBAQCBTdHJpbmcgVVJMOjpmaWxlU3lzdGVtUGF0aCgpIGNvbnN0CiAgICAgaWYgKCFp
c0xvY2FsRmlsZSgpKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIGRlY29kZUVz
Y2FwZVNlcXVlbmNlc0Zyb21QYXJzZWRVUkwocGF0aCgpKTsKKyAgICBhdXRvIHJlc3VsdCA9IGRl
Y29kZUVzY2FwZVNlcXVlbmNlc0Zyb21QYXJzZWRVUkwocGF0aCgpKTsKKyNpZiBQTEFURk9STShX
SU4pCisgICAgcmVzdWx0ID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHJlc3VsdCk7CisjZW5k
aWYKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1VSTC5oIGIvU291cmNlL1dURi93dGYvVVJMLmgKaW5kZXggOGIyMmUxNmM2Y2E0MDEy
NWMwMmY2ODgxMjMwMjQ5NTZlMGY0NDc5Ni4uOTljOTA0NzNiMTM3ZGIzY2M2MDJiN2M5MDY3YTVk
MmMwODRlYTliMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVVJMLmgKKysrIGIvU291cmNl
L1dURi93dGYvVVJMLmgKQEAgLTc3LDYgKzc3LDEwIEBAIHB1YmxpYzoKICAgICBib29sIGlzRW1w
dHkoKSBjb25zdDsKICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKIAorICAgIC8vIFNpbmNlIHdl
IG92ZXJsb2FkIG9wZXJhdG9yIE5TVVJMKiB3ZSBoYXZlIHRoaXMgdG8gcHJldmVudCBhY2NpZGVu
dGFsbHkgdXNpbmcgdGhhdCBvcGVyYXRvcgorICAgIC8vIHdoZW4gcGxhY2luZyBhIFVSTCBpbiBh
biBpZiBzdGF0bWVudC4KKyAgICBvcGVyYXRvciBib29sKCkgY29uc3QgPSBkZWxldGU7CisKICAg
ICAvLyBSZXR1cm5zIHRydWUgaWYgeW91IGNhbiBzZXQgdGhlIGhvc3QgYW5kIHBvcnQgZm9yIHRo
ZSBVUkwuCiAgICAgLy8gTm9uLWhpZXJhcmNoaWNhbCBVUkxzIGRvbid0IGhhdmUgYSBob3N0IGFu
ZCBwb3J0LgogICAgIGJvb2wgY2FuU2V0SG9zdE9yUG9ydCgpIGNvbnN0IHsgcmV0dXJuIGlzSGll
cmFyY2hpY2FsKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0Nh
Y2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9D
YWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oCmluZGV4IDBlODAxZmNjOTg4MjQ3NzVhNmQ1YjIw
MjVjZjJiNzRlOTZiOGE3NjcuLmZmNmMyMGZkYmFhYzEyNzJhNDRkNzIwMWMxYjU3Y2Q3OTVhZDNi
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNv
dXJjZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2Ny
aXB0U291cmNlUHJvdmlkZXIuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6
CiAgICAgQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIoQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3Jp
cHQsIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUsIFJlZjxDYWNoZWRT
Y3JpcHRGZXRjaGVyPiYmIHNjcmlwdEZldGNoZXIpCi0gICAgICAgIDogU291cmNlUHJvdmlkZXIo
SlNDOjpTb3VyY2VPcmlnaW4geyBjYWNoZWRTY3JpcHQtPnJlc3BvbnNlKCkudXJsKCkuc3RyaW5n
KCksIFdURk1vdmUoc2NyaXB0RmV0Y2hlcikgfSwgVVJMKGNhY2hlZFNjcmlwdC0+cmVzcG9uc2Uo
KS51cmwoKSksIFRleHRQb3NpdGlvbigpLCBzb3VyY2VUeXBlKQorICAgICAgICA6IFNvdXJjZVBy
b3ZpZGVyKEpTQzo6U291cmNlT3JpZ2luIHsgY2FjaGVkU2NyaXB0LT5yZXNwb25zZSgpLnVybCgp
LCBXVEZNb3ZlKHNjcmlwdEZldGNoZXIpIH0sIFN0cmluZyhjYWNoZWRTY3JpcHQtPnJlc3BvbnNl
KCkudXJsKCkuc3RyaW5nKCkpLCBUZXh0UG9zaXRpb24oKSwgc291cmNlVHlwZSkKICAgICAgICAg
LCBtX2NhY2hlZFNjcmlwdChjYWNoZWRTY3JpcHQpCiAgICAgewogICAgICAgICBtX2NhY2hlZFNj
cmlwdC0+YWRkQ2xpZW50KCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V2ZW50TGlzdGVuZXIuY3BwCmluZGV4IDQ0OGMzYmIzMDQ0MmNlNDAzMGQzZThlZDgyNjU2NGNi
NDBhZDg4YjUuLmJjZGFmOTU3ODk2NzljOGRkNDE2Zjk4NzE0Y2I2YjE1OWYzMWZlZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcApAQCAtMTIy
LDcgKzEyMiw3IEBAIHZvaWQgSlNFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0CiAgICAgICAgIEpTRE9NV2luZG93
KiB3aW5kb3cgPSBqc0Nhc3Q8SlNET01XaW5kb3cqPihnbG9iYWxPYmplY3QpOwogICAgICAgICBp
ZiAoIXdpbmRvdy0+d3JhcHBlZCgpLmlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQogICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAod2FzQ3JlYXRlZEZyb21NYXJrdXAoKSAmJiAh
c2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dJbmxp
bmVFdmVudEhhbmRsZXJzKHNvdXJjZVVSTCgpLCBzb3VyY2VQb3NpdGlvbigpLm1fbGluZSkpCisg
ICAgICAgIGlmICh3YXNDcmVhdGVkRnJvbU1hcmt1cCgpICYmICFzY3JpcHRFeGVjdXRpb25Db250
ZXh0LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0lubGluZUV2ZW50SGFuZGxlcnMoc291
cmNlVVJMKCkuc3RyaW5nKCksIHNvdXJjZVBvc2l0aW9uKCkubV9saW5lKSkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgLy8gRklYTUU6IElzIHRoaXMgY2hlY2sgbmVlZGVkIGZvciBvdGhl
ciBjb250ZXh0cz8KICAgICAgICAgU2NyaXB0Q29udHJvbGxlciYgc2NyaXB0ID0gd2luZG93LT53
cmFwcGVkKCkuZnJhbWUoKS0+c2NyaXB0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRMaXN0ZW5lci5oCmluZGV4IGQ1MTUzYWYxMjU1ZDM1ZGNkZTRhNjI3ZmZiMThlNTAx
Y2YyNGUzMjMuLjExOTMyNzg0MzJmY2RjZTFhMDdkZmM0NjZkNDY5MWM1NzZkNTZjYjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oCkBAIC01NSw3ICs1
NSw3IEBAIHB1YmxpYzoKICAgICBKU0M6OkpTT2JqZWN0KiBqc0Z1bmN0aW9uKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9qc0Z1bmN0aW9uLmdldCgpOyB9CiAgICAgSlNDOjpKU09iamVjdCogd3Jh
cHBlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fd3JhcHBlci5nZXQoKTsgfQogCi0gICAgdmly
dHVhbCBTdHJpbmcgc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KKyAgICB2
aXJ0dWFsIFVSTCBzb3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiB7IH07IH0KICAgICB2aXJ0dWFs
IFRleHRQb3NpdGlvbiBzb3VyY2VQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIFRleHRQb3NpdGlv
bigpOyB9CiAKICAgICBTdHJpbmcgZnVuY3Rpb25OYW1lKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IDFiNGIy
MWVkYWQ1MTM0OTNkOGI1MWJmMmE1ZjcxZWJiYTE3MzFmZGQuLjE1YzdhMTY0MGZmYzIxNDU4Yjgx
ZmVhYzE3MGEyYzY3Njc1YjEzZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwCkBAIC02Niw3ICs2Niw3IEBAIHN0YXRpYyBUZXh0
UG9zaXRpb24gY29udmVydFplcm9Ub09uZShjb25zdCBUZXh0UG9zaXRpb24mIHBvc2l0aW9uKQog
ICAgIHJldHVybiBwb3NpdGlvbjsKIH0KIAotSlNMYXp5RXZlbnRMaXN0ZW5lcjo6SlNMYXp5RXZl
bnRMaXN0ZW5lcihDcmVhdGlvbkFyZ3VtZW50cyYmIGFyZ3VtZW50cywgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkwsIGNvbnN0IFRleHRQb3NpdGlvbiYgc291cmNlUG9zaXRpb24pCitKU0xhenlFdmVu
dExpc3RlbmVyOjpKU0xhenlFdmVudExpc3RlbmVyKENyZWF0aW9uQXJndW1lbnRzJiYgYXJndW1l
bnRzLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzb3VyY2VQb3Np
dGlvbikKICAgICA6IEpTRXZlbnRMaXN0ZW5lcihudWxscHRyLCBhcmd1bWVudHMud3JhcHBlciwg
dHJ1ZSwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpCiAgICAgLCBtX2Z1bmN0aW9uTmFtZShhcmd1
bWVudHMuYXR0cmlidXRlTmFtZS5sb2NhbE5hbWUoKS5zdHJpbmcoKSkKICAgICAsIG1fZXZlbnRQ
YXJhbWV0ZXJOYW1lKGV2ZW50UGFyYW1ldGVyTmFtZShhcmd1bWVudHMuc2hvdWxkVXNlU1ZHRXZl
bnROYW1lKSkKQEAgLTEzMCw3ICsxMzAsNyBAQCBKU09iamVjdCogSlNMYXp5RXZlbnRMaXN0ZW5l
cjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgZXhlYwogICAg
IGlmICghZG9jdW1lbnQuZnJhbWUoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBp
ZiAoIWRvY3VtZW50LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0lubGluZUV2ZW50SGFu
ZGxlcnMobV9zb3VyY2VVUkwsIG1fc291cmNlUG9zaXRpb24ubV9saW5lKSkKKyAgICBpZiAoIWRv
Y3VtZW50LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0lubGluZUV2ZW50SGFuZGxlcnMo
bV9zb3VyY2VVUkwuc3RyaW5nKCksIG1fc291cmNlUG9zaXRpb24ubV9saW5lKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKICAgICBhdXRvJiBzY3JpcHQgPSBkb2N1bWVudC5mcmFtZSgpLT5z
Y3JpcHQoKTsKQEAgLTE2MCw3ICsxNjAsNyBAQCBKU09iamVjdCogSlNMYXp5RXZlbnRMaXN0ZW5l
cjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgZXhlYwogICAg
IEpTT2JqZWN0KiBqc0Z1bmN0aW9uID0gY29uc3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxFbmFi
bGVkQ2hlY2soCiAgICAgICAgIGxleGljYWxHbG9iYWxPYmplY3QsIGFyZ3MsIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sIG1fZnVuY3Rpb25OYW1lKSwKICAgICAgICAgU291cmNlT3JpZ2luIHsg
bV9zb3VyY2VVUkwsIENhY2hlZFNjcmlwdEZldGNoZXI6OmNyZWF0ZShkb2N1bWVudC5jaGFyc2V0
KCkpIH0sCi0gICAgICAgIG1fc291cmNlVVJMLCBtX3NvdXJjZVBvc2l0aW9uLCBvdmVycmlkZUxp
bmVOdW1iZXIpOworICAgICAgICBtX3NvdXJjZVVSTC5zdHJpbmcoKSwgbV9zb3VyY2VQb3NpdGlv
biwgb3ZlcnJpZGVMaW5lTnVtYmVyKTsKICAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9u
KCkpKSB7CiAgICAgICAgIHJlcG9ydEN1cnJlbnRFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgICAgIHNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7CkBAIC0xOTEsMTIgKzE5MSwxMiBA
QCBSZWZQdHI8SlNMYXp5RXZlbnRMaXN0ZW5lcj4gSlNMYXp5RXZlbnRMaXN0ZW5lcjo6Y3JlYXRl
KENyZWF0aW9uQXJndW1lbnRzJiYgYXJndQogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSBh
YmxlIHRvIHByb3ZpZGUgc291cmNlIGluZm9ybWF0aW9uIGZvciBmcmFtZWxlc3MgZG9jdW1lbnRz
IHRvbyAoZS5nLiBmb3IgaW1wb3J0aW5nIG5vZGVzIGZyb20gWE1MSHR0cFJlcXVlc3QucmVzcG9u
c2VYTUwpLgogICAgIFRleHRQb3NpdGlvbiBwb3NpdGlvbjsKLSAgICBTdHJpbmcgc291cmNlVVJM
OworICAgIFVSTCBzb3VyY2VVUkw7CiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGFyZ3VtZW50cy5k
b2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGlmICghZnJhbWUtPnNjcmlwdCgpLmNhbkV4ZWN1
dGVTY3JpcHRzKEFib3V0VG9DcmVhdGVFdmVudExpc3RlbmVyKSkKICAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgICAgICBwb3NpdGlvbiA9IGZyYW1lLT5zY3JpcHQoKS5ldmVudEhhbmRs
ZXJQb3NpdGlvbigpOwotICAgICAgICBzb3VyY2VVUkwgPSBhcmd1bWVudHMuZG9jdW1lbnQudXJs
KCkuc3RyaW5nKCk7CisgICAgICAgIHNvdXJjZVVSTCA9IGFyZ3VtZW50cy5kb2N1bWVudC51cmwo
KTsKICAgICB9CiAKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBKU0xhenlFdmVudExpc3RlbmVy
KFdURk1vdmUoYXJndW1lbnRzKSwgc291cmNlVVJMLCBwb3NpdGlvbikpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5oCmluZGV4IDE3OWViNDM3
OGRjZDI4YTRiNDNiZWU3MGIzM2U1N2JlYTllOGI1MTMuLjcyODg2OWRkYmRkYjA5MzAyNTc5YWJk
ZTFlNjRmNjAyMGU3YjIyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTGF6eUV2ZW50TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0xhenlFdmVudExpc3RlbmVyLmgKQEAgLTM5LDEzICszOSwxMyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIH5KU0xhenlFdmVudExpc3RlbmVyKCk7CiAKLSAgICBTdHJpbmcgc291cmNlVVJMKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0KKyAgICBVUkwgc291cmNlVVJMKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0KICAgICBUZXh0UG9zaXRpb24gc291
cmNlUG9zaXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NvdXJjZVBvc2l0aW9uOyB9CiAK
IHByaXZhdGU6CiAgICAgc3RydWN0IENyZWF0aW9uQXJndW1lbnRzOwogICAgIHN0YXRpYyBSZWZQ
dHI8SlNMYXp5RXZlbnRMaXN0ZW5lcj4gY3JlYXRlKENyZWF0aW9uQXJndW1lbnRzJiYpOwotICAg
IEpTTGF6eUV2ZW50TGlzdGVuZXIoQ3JlYXRpb25Bcmd1bWVudHMmJiwgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkwsIGNvbnN0IFRleHRQb3NpdGlvbiYpOworICAgIEpTTGF6eUV2ZW50TGlzdGVuZXIo
Q3JlYXRpb25Bcmd1bWVudHMmJiwgY29uc3QgVVJMJiBzb3VyY2VVUkwsIGNvbnN0IFRleHRQb3Np
dGlvbiYpOwogCiAjaWYgQVNTRVJUX0VOQUJMRUQKICAgICB2b2lkIGNoZWNrVmFsaWRpdHlGb3JF
dmVudFRhcmdldChFdmVudFRhcmdldCYpIGZpbmFsOwpAQCAtNTcsNyArNTcsNyBAQCBwcml2YXRl
OgogICAgIFN0cmluZyBtX2Z1bmN0aW9uTmFtZTsKICAgICBjb25zdCBTdHJpbmcmIG1fZXZlbnRQ
YXJhbWV0ZXJOYW1lOwogICAgIFN0cmluZyBtX2NvZGU7Ci0gICAgU3RyaW5nIG1fc291cmNlVVJM
OworICAgIFVSTCBtX3NvdXJjZVVSTDsKICAgICBUZXh0UG9zaXRpb24gbV9zb3VyY2VQb3NpdGlv
bjsKICAgICBXZWFrUHRyPENvbnRhaW5lck5vZGU+IG1fb3JpZ2luYWxOb2RlOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggY2My
MDEyMTdiZjEwNmQ3Y2FjMTFlY2NmN2YzZTI2M2RmOGFhYjY3Ni4uZWQzNjQxOTc2ODg3Nzg3ZWFj
ZmI4YmYwNWI5MmVmZjdlYzI0MmFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTEyNSw3ICsxMjUsNyBAQCBWYWx1ZU9yRXhjZXB0
aW9uIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5Xb3JsZChjb25zdCBTY3JpcHRTb3VyY2VD
b2RlJiBzb3VyYwogICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOwogCiAgICAgY29u
c3QgU291cmNlQ29kZSYganNTb3VyY2VDb2RlID0gc291cmNlQ29kZS5qc1NvdXJjZUNvZGUoKTsK
LSAgICBTdHJpbmcgc291cmNlVVJMID0ganNTb3VyY2VDb2RlLnByb3ZpZGVyKCktPnVybCgpLnN0
cmluZygpOworICAgIGNvbnN0IFVSTCYgc291cmNlVVJMID0ganNTb3VyY2VDb2RlLnByb3ZpZGVy
KCktPnNvdXJjZU9yaWdpbigpLnVybCgpOwogCiAgICAgLy8gZXZhbHVhdGUgY29kZS4gUmV0dXJu
cyB0aGUgSlMgcmV0dXJuIHZhbHVlIG9yIDAKICAgICAvLyBpZiB0aGVyZSB3YXMgbm9uZSwgYW4g
ZXJyb3Igb2NjdXJyZWQgb3IgdGhlIHR5cGUgY291bGRuJ3QgYmUgY29udmVydGVkLgpAQCAtMTM2
LDEyICsxMzYsMTEgQEAgVmFsdWVPckV4Y2VwdGlvbiBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0
ZUluV29ybGQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmMKICAgICAvLyBTZWUgc21hcnQg
d2luZG93Lm9wZW4gcG9saWN5IGZvciB3aGVyZSB0aGlzIGlzIHVzZWQuCiAgICAgYXV0byYgcHJv
eHkgPSBqc1dpbmRvd1Byb3h5KHdvcmxkKTsKICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqcHJv
eHkud2luZG93KCk7Ci0gICAgY29uc3QgU3RyaW5nKiBzYXZlZFNvdXJjZVVSTCA9IG1fc291cmNl
VVJMOwotICAgIG1fc291cmNlVVJMID0gJnNvdXJjZVVSTDsKKyAgICBTZXRGb3JTY29wZTxjb25z
dCBVUkwqPiBzb3VyY2VVUkxTY29wZShtX3NvdXJjZVVSTCwgJnNvdXJjZVVSTCk7CiAKICAgICBS
ZWY8RnJhbWU+IHByb3RlY3RvcihtX2ZyYW1lKTsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6d2lsbEV2YWx1YXRlU2NyaXB0KG1fZnJhbWUsIHNvdXJjZVVSTCwgc291cmNlQ29kZS5z
dGFydExpbmUoKSwgc291cmNlQ29kZS5zdGFydENvbHVtbigpKTsKKyAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVNjcmlwdChtX2ZyYW1lLCBzb3VyY2VVUkwuc3RyaW5n
KCksIHNvdXJjZUNvZGUuc3RhcnRMaW5lKCksIHNvdXJjZUNvZGUuc3RhcnRDb2x1bW4oKSk7CiAK
ICAgICBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4gZXZhbHVhdGlvbkV4Y2VwdGlvbjsKICAgICBK
U1ZhbHVlIHJldHVyblZhbHVlID0gSlNFeGVjU3RhdGU6OnByb2ZpbGVkRXZhbHVhdGUoJmdsb2Jh
bE9iamVjdCwgSlNDOjpQcm9maWxpbmdSZWFzb246Ok90aGVyLCBqc1NvdXJjZUNvZGUsICZwcm94
eSwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7CkBAIC0xNTUsNyArMTU0LDYgQEAgVmFsdWVPckV4Y2Vw
dGlvbiBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZUluV29ybGQoY29uc3QgU2NyaXB0U291cmNl
Q29kZSYgc291cmMKICAgICAgICAgb3B0aW9uYWxEZXRhaWxzID0gV1RGTW92ZShkZXRhaWxzKTsK
ICAgICB9CiAKLSAgICBtX3NvdXJjZVVSTCA9IHNhdmVkU291cmNlVVJMOwogICAgIGlmIChvcHRp
b25hbERldGFpbHMpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCgqb3B0aW9uYWxEZXRh
aWxzKTsKIApAQCAtMjM1LDcgKzIzMyw3IEBAIEpTQzo6SlNWYWx1ZSBTY3JpcHRDb250cm9sbGVy
OjpldmFsdWF0ZU1vZHVsZShjb25zdCBVUkwmIHNvdXJjZVVSTCwgSlNNb2R1bGVSZWNvCiAKICAg
ICBhdXRvJiBwcm94eSA9IGpzV2luZG93UHJveHkod29ybGQpOwogICAgIGF1dG8mIGxleGljYWxH
bG9iYWxPYmplY3QgPSAqcHJveHkud2luZG93KCk7Ci0gICAgU2V0Rm9yU2NvcGU8Y29uc3QgU3Ry
aW5nKj4gc291cmNlVVJMU2NvcGUobV9zb3VyY2VVUkwsICZzb3VyY2VVUkwuc3RyaW5nKCkpOwor
ICAgIFNldEZvclNjb3BlPGNvbnN0IFVSTCo+IHNvdXJjZVVSTFNjb3BlKG1fc291cmNlVVJMLCAm
c291cmNlVVJMKTsKIAogICAgIFJlZjxGcmFtZT4gcHJvdGVjdG9yKG1fZnJhbWUpOwogCkBAIC02
NDksMTMgKzY0NywxMiBAQCBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlwdENvbnRyb2xsZXI6OmNhbGxJ
bldvcmxkKFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzJiYgcGFyYW1ldAogICAgIGF1dG8gc291cmNl
Q29kZSA9IFNjcmlwdFNvdXJjZUNvZGUgeyBmdW5jdGlvblN0cmluZ0J1aWxkZXIudG9TdHJpbmco
KSwgV1RGTW92ZShwYXJhbWV0ZXJzLnNvdXJjZVVSTCksIFRleHRQb3NpdGlvbigpLCBKU0M6OlNv
dXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSwgQ2FjaGVkU2NyaXB0RmV0Y2hlcjo6Y3Jl
YXRlKG1fZnJhbWUuZG9jdW1lbnQoKS0+Y2hhcnNldCgpKSB9OwogICAgIGNvbnN0IGF1dG8mIGpz
U291cmNlQ29kZSA9IHNvdXJjZUNvZGUuanNTb3VyY2VDb2RlKCk7CiAKLSAgICBTdHJpbmcgc291
cmNlVVJMID0ganNTb3VyY2VDb2RlLnByb3ZpZGVyKCktPnVybCgpLnN0cmluZygpOwotICAgIGNv
bnN0IFN0cmluZyogc2F2ZWRTb3VyY2VVUkwgPSBtX3NvdXJjZVVSTDsKLSAgICBtX3NvdXJjZVVS
TCA9ICZzb3VyY2VVUkw7CisgICAgY29uc3QgVVJMJiBzb3VyY2VVUkwgPSBqc1NvdXJjZUNvZGUu
cHJvdmlkZXIoKS0+c291cmNlT3JpZ2luKCkudXJsKCk7CisgICAgU2V0Rm9yU2NvcGU8Y29uc3Qg
VVJMKj4gc291cmNlVVJMU2NvcGUobV9zb3VyY2VVUkwsICZzb3VyY2VVUkwpOwogCiAgICAgUmVm
PEZyYW1lPiBwcm90ZWN0b3IobV9mcmFtZSk7CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OndpbGxFdmFsdWF0ZVNjcmlwdChtX2ZyYW1lLCBzb3VyY2VVUkwsIHNvdXJjZUNvZGUuc3Rh
cnRMaW5lKCksIHNvdXJjZUNvZGUuc3RhcnRDb2x1bW4oKSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsRXZhbHVhdGVTY3JpcHQobV9mcmFtZSwgc291cmNlVVJMLnN0cmluZygp
LCBzb3VyY2VDb2RlLnN0YXJ0TGluZSgpLCBzb3VyY2VDb2RlLnN0YXJ0Q29sdW1uKCkpOwogCiAg
ICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IGV2YWx1YXRpb25FeGNlcHRpb247CiAgICAgT3B0
aW9uYWw8RXhjZXB0aW9uRGV0YWlscz4gb3B0aW9uYWxEZXRhaWxzOwpAQCAtNjkwLDggKzY4Nyw2
IEBAIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29udHJvbGxlcjo6Y2FsbEluV29ybGQoUnVuSmF2
YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0CiAgICAgICAgIG9wdGlvbmFsRGV0YWlscyA9IFdU
Rk1vdmUoZGV0YWlscyk7CiAgICAgfQogCi0gICAgbV9zb3VyY2VVUkwgPSBzYXZlZFNvdXJjZVVS
TDsKLQogICAgIGlmIChvcHRpb25hbERldGFpbHMpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZCgqb3B0aW9uYWxEZXRhaWxzKTsKICAgICByZXR1cm4gcmV0dXJuVmFsdWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKaW5kZXggMjZkOWZjNjY2
M2RkYTQwOWFkMDZiZTViMTM5N2UyZmY0YzgzZjVjOC4uYzVhNmNjMDNkZTg5Njg5Y2FjZWMzYTFj
ZmVlYWJmMmQ2ZDNlOTc3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dENvbnRyb2xsZXIuaApAQCAtMTM4LDcgKzEzOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBh
dXNlZChib29sIGIpIHsgbV9wYXVzZWQgPSBiOyB9CiAgICAgYm9vbCBpc1BhdXNlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fcGF1c2VkOyB9CiAKLSAgICBjb25zdCBTdHJpbmcqIHNvdXJjZVVSTCgpIGNv
bnN0IHsgcmV0dXJuIG1fc291cmNlVVJMOyB9IC8vIDAgaWYgd2UgYXJlIG5vdCBldmFsdWF0aW5n
IGFueSBzY3JpcHQKKyAgICBjb25zdCBVUkwqIHNvdXJjZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1f
c291cmNlVVJMOyB9IC8vIG51bGxwdHIgaWYgd2UgYXJlIG5vdCBldmFsdWF0aW5nIGFueSBzY3Jp
cHQKIAogICAgIHZvaWQgdXBkYXRlRG9jdW1lbnQoKTsKIApAQCAtMTg4LDcgKzE4OCw3IEBAIHBy
aXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgSlNXaW5kb3dQcm94eSYganNXaW5kb3dQcm94eShE
T01XcmFwcGVyV29ybGQmKTsKIAogICAgIEZyYW1lJiBtX2ZyYW1lOwotICAgIGNvbnN0IFN0cmlu
ZyogbV9zb3VyY2VVUkw7CisgICAgY29uc3QgVVJMKiBtX3NvdXJjZVVSTCB7IG51bGxwdHIgfTsK
IAogICAgIGJvb2wgbV9wYXVzZWQ7CiAgICAgYm9vbCBtX3dpbGxSZXBsYWNlV2l0aFJlc3VsdE9m
RXhlY3V0aW5nSmF2YXNjcmlwdFVSTCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcAppbmRleCBjODY2NGIxMmM1M2JjMzI3
YjVjODhhZjU2NzYyN2NmODA0ZjE2NTRjLi5hYTViODBiNTg2Yjc5ZTBlNTc1MDFjZDUxMDc4ZGYy
NWE2MjVlNWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRN
b2R1bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1v
ZHVsZUxvYWRlci5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgc3RhdGljIGJvb2wgaXNSb290TW9kdWxl
KEpTQzo6SlNWYWx1ZSBpbXBvcnRlck1vZHVsZUtleSkKICAgICByZXR1cm4gaW1wb3J0ZXJNb2R1
bGVLZXkuaXNTeW1ib2woKSB8fCBpbXBvcnRlck1vZHVsZUtleS5pc1VuZGVmaW5lZCgpOwogfQog
Ci1zdGF0aWMgRXhwZWN0ZWQ8VVJMLCBBU0NJSUxpdGVyYWw+IHJlc29sdmVNb2R1bGVTcGVjaWZp
ZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHNwZWNpZmllciwgY29uc3QgVVJM
JiBiYXNlVVJMKQorc3RhdGljIEV4cGVjdGVkPFVSTCwgU3RyaW5nPiByZXNvbHZlTW9kdWxlU3Bl
Y2lmaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBzcGVjaWZpZXIsIGNvbnN0
IFVSTCYgYmFzZVVSTCkKIHsKICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211
bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjcmVzb2x2ZS1hLW1vZHVsZS1zcGVjaWZpZXIKIApAQCAt
NzcsMTEgKzc3LDExIEBAIHN0YXRpYyBFeHBlY3RlZDxVUkwsIEFTQ0lJTGl0ZXJhbD4gcmVzb2x2
ZU1vZHVsZVNwZWNpZmllcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvCiAgICAgICAgIHJldHVybiBh
YnNvbHV0ZVVSTDsKIAogICAgIGlmICghc3BlY2lmaWVyLnN0YXJ0c1dpdGgoJy8nKSAmJiAhc3Bl
Y2lmaWVyLnN0YXJ0c1dpdGgoIi4vIikgJiYgIXNwZWNpZmllci5zdGFydHNXaXRoKCIuLi8iKSkK
LSAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKCJNb2R1bGUgc3BlY2lmaWVyIGRvZXMgbm90
IHN0YXJ0IHdpdGggXCIvXCIsIFwiLi9cIiwgb3IgXCIuLi9cIi4iX3MpOworICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiTW9kdWxlIHNwZWNpZmllciwgJyJfcywgc3Bl
Y2lmaWVyLCAiJyBkb2VzIG5vdCBzdGFydCB3aXRoIFwiL1wiLCBcIi4vXCIsIG9yIFwiLi4vXCIu
IFJlZmVyZW5jZWQgZnJvbSAiX3MsIGJhc2VVUkwuc3RyaW5nKCkpKTsKIAogICAgIGF1dG8gcmVz
dWx0ID0gZG9jdW1lbnQuY29tcGxldGVVUkwoc3BlY2lmaWVyLCBiYXNlVVJMKTsKICAgICBpZiAo
IXJlc3VsdC5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCgiTW9kdWxl
IG5hbWUgZG9lcyBub3QgcmVzb2x2ZSB0byBhIHZhbGlkIFVSTC4iX3MpOworICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiTW9kdWxlIG5hbWUsICciX3MsIHJlc3VsdC5z
dHJpbmcoKSwgIicgZG9lcyBub3QgcmVzb2x2ZSB0byBhIHZhbGlkIFVSTC4iX3MpKTsKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCkBAIC0yMjQsNyArMjI0LDcgQEAgSlNDOjpKU1ZhbHVlIFNjcmlw
dE1vZHVsZUxvYWRlcjo6ZXZhbHVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCoganNHbG9iYWxPYmpl
Y3QsIEoKICAgICByZXR1cm4gSlNDOjpqc1VuZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgSlNDOjpK
U0ludGVybmFsUHJvbWlzZSogcmVqZWN0UHJvbWlzZShKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFs
T2JqZWN0LCBFeGNlcHRpb25Db2RlIGVjLCBBU0NJSUxpdGVyYWwgbWVzc2FnZSkKK3N0YXRpYyBK
U0M6OkpTSW50ZXJuYWxQcm9taXNlKiByZWplY3RQcm9taXNlKEpTRE9NR2xvYmFsT2JqZWN0JiBn
bG9iYWxPYmplY3QsIEV4Y2VwdGlvbkNvZGUgZWMsIFN0cmluZyBtZXNzYWdlKQogewogICAgIGF1
dG8qIGpzUHJvbWlzZSA9IEpTQzo6SlNJbnRlcm5hbFByb21pc2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3Qudm0oKSwgZ2xvYmFsT2JqZWN0LmludGVybmFsUHJvbWlzZVN0cnVjdHVyZSgpKTsKICAgICBS
RUxFQVNFX0FTU0VSVChqc1Byb21pc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0U291cmNlQ29kZS5oCmluZGV4IGZjYTU3NGNmZGFhYzQ5YmFkZjRkODI5ZjE5MjAwMjEx
MTQzNzE5OGIuLmM3MDQ2MjZmYjczM2RiNDcyYmRhNTAyMzYyNDFhNmU3NDBlMjc4MmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKQEAgLTQ1LDcg
KzQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU2NyaXB0U291cmNlQ29kZSB7CiBw
dWJsaWM6CiAgICAgU2NyaXB0U291cmNlQ29kZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgVVJMJiYg
dXJsID0gVVJMKCksIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiA9IFRleHRQb3Np
dGlvbigpLCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlID0gSlNDOjpT
b3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pCi0gICAgICAgIDogbV9wcm92aWRlcihK
U0M6OlN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCBKU0M6OlNvdXJjZU9yaWdp
biB7IHVybC5zdHJpbmcoKSB9LCBXVEZNb3ZlKHVybCksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5
cGUpKQorICAgICAgICA6IG1fcHJvdmlkZXIoSlNDOjpTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3Jl
YXRlKHNvdXJjZSwgSlNDOjpTb3VyY2VPcmlnaW4geyB1cmwgfSwgdXJsLnN0cmluZygpLCBzdGFy
dFBvc2l0aW9uLCBzb3VyY2VUeXBlKSkKICAgICAgICAgLCBtX2NvZGUobV9wcm92aWRlci5jb3B5
UmVmKCksIHN0YXJ0UG9zaXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCksIHN0YXJ0UG9zaXRpb24u
bV9jb2x1bW4ub25lQmFzZWRJbnQoKSkKICAgICB7CiAgICAgfQpAQCAtNTgsNyArNTgsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiAgICAgU2NyaXB0U291cmNlQ29kZShjb25zdCBTdHJpbmcmIHNvdXJj
ZSwgVVJMJiYgdXJsLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIEpTQzo6U291
cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUsIFJlZjxDYWNoZWRTY3JpcHRGZXRjaGVy
PiYmIHNjcmlwdEZldGNoZXIpCi0gICAgICAgIDogbV9wcm92aWRlcihKU0M6OlN0cmluZ1NvdXJj
ZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCBKU0M6OlNvdXJjZU9yaWdpbiB7IHVybC5zdHJpbmco
KSwgV1RGTW92ZShzY3JpcHRGZXRjaGVyKSB9LCBXVEZNb3ZlKHVybCksIHN0YXJ0UG9zaXRpb24s
IHNvdXJjZVR5cGUpKQorICAgICAgICA6IG1fcHJvdmlkZXIoSlNDOjpTdHJpbmdTb3VyY2VQcm92
aWRlcjo6Y3JlYXRlKHNvdXJjZSwgSlNDOjpTb3VyY2VPcmlnaW4geyB1cmwsIFdURk1vdmUoc2Ny
aXB0RmV0Y2hlcikgfSwgdXJsLnN0cmluZygpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSkK
ICAgICAgICAgLCBtX2NvZGUobV9wcm92aWRlci5jb3B5UmVmKCksIHN0YXJ0UG9zaXRpb24ubV9s
aW5lLm9uZUJhc2VkSW50KCksIHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSkK
ICAgICB7CiAgICAgfQpAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAKICAgICBDYWNoZWRTY3Jp
cHQqIGNhY2hlZFNjcmlwdCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkU2NyaXB0LmdldCgpOyB9
CiAKLSAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdmlkZXItPnVybCgp
OyB9CisgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3Byb3ZpZGVyLT5zb3Vy
Y2VPcmlnaW4oKS51cmwoKTsgfQogICAgIAogcHJpdmF0ZToKICAgICBSZWY8SlNDOjpTb3VyY2VQ
cm92aWRlcj4gbV9wcm92aWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViU2NyaXB0RGVidWdnZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlNjcmlwdERlYnVnZ2VyLm1tCmluZGV4IDFhNTg4NDI3ZTI5ZDA0YjQwZTlmYjIz
ZDUzY2NkNGM4NzIzNWQxNWYuLmJkOWIxMTg0Yzg0NTRiNDczZTQzNzRjMjI4YjRiZDY3YTlhM2Y5
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViU2NyaXB0
RGVidWdnZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJTY3Jp
cHREZWJ1Z2dlci5tbQpAQCAtNzksNyArNzksNyBAQCB2b2lkIFdlYlNjcmlwdERlYnVnZ2VyOjpz
b3VyY2VQYXJzZWQoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSgog
ICAgIG1fY2FsbGluZ0RlbGVnYXRlID0gdHJ1ZTsKIAogICAgIE5TU3RyaW5nICpuc1NvdXJjZSA9
IHRvTlNTdHJpbmcoc291cmNlUHJvdmlkZXIpOwotICAgIE5TVVJMICpuc1VSTCA9IHNvdXJjZVBy
b3ZpZGVyLT51cmwoKTsKKyAgICBOU1VSTCAqbnNVUkwgPSBzb3VyY2VQcm92aWRlci0+c291cmNl
T3JpZ2luKCkudXJsKCk7CiAgICAgaW50IGZpcnN0TGluZSA9IHNvdXJjZVByb3ZpZGVyLT5zdGFy
dFBvc2l0aW9uKCkubV9saW5lLm9uZUJhc2VkSW50KCk7CiAKICAgICBKU0M6OlZNJiB2bSA9IGxl
eGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGRjZmI4NzdhZmI3NGQ4OWMwYzlmOWYz
MDMyZmU5MTQxZmJkMWM2Zi4uNzRmOTI2YTJhODBkMjQ4YWMxZWE4M2I1ODMyZWIyMTE0MTliNjM0
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA3LTEyICBLZWl0aCBNaWxsZXIgIDxrZWl0
aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIFNvdXJjZVByb3ZpZGVyIGFu
ZCBhZGQgY2FsbGVyIHJlbGF0aXZlIGxvYWQgc2NyaXB0IHRvIGpzYy5jcHAKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDIwNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAganMtdGVzdC1wcmUgbmVlZHMgdG8g
c3RyaXAgdGhlIHBhcnRzIG9mIGZpbGUgdXJscyBiZXR3ZWVuIGZpbGU6Ly8vCisgICAgICAgIGFu
ZCBMYXlvdXRUZXN0cyBiZWNhdXNlIHRoYXQgaXMgZGVwZW5kZW50IG9uIHRoZSBzeXN0ZW0gcnVu
bmluZworICAgICAgICB0aGUgdGVzdHMuIFRlc3RzIHVzaW5nIHRoZXNlIGhhcm5lc3NlcyBtYXkg
bm90IGJlIHVzaW5nIGEgc2VydmVyCisgICAgICAgIHRvIGhvc3QgdGhlIHRlc3QgZmlsZXMuCisK
KyAgICAgICAgUmViYXNlbGluZSBtb2R1bGUgbG9hZGVyIGVycm9yIG1lc3NhZ2VzIGFnYWluc3Qg
dGhlIG5ldyBzdHJpbmcuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qczoKKyAgICAgICAgKGVzY2FwZUhUTUxBbmRTdHJpcEZpbGVVUkxzKToKKyAgICAgICAg
KHRlc3RGYWlsZWQpOgorICAgICAgICAoZXNjYXBlSFRNTCk6IERlbGV0ZWQuCisgICAgICAgICh0
ZXN0UGFzc2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBqcy9kb20vbW9kdWxlcy9pbXBvcnQtaW5j
b3JyZWN0LXJlbGF0aXZlLXNwZWNpZmllci1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvZG9t
L21vZHVsZXMvbW9kdWxlLWluY29ycmVjdC1yZWxhdGl2ZS1zcGVjaWZpZXItZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHJlc291cmNlcy9qcy10ZXN0LXByZS5qczoKKyAgICAgICAgKGVzY2FwZUhU
TUxBbmRTdHJpcEZpbGVVUkxzKToKKyAgICAgICAgKHRlc3RGYWlsZWQpOgorICAgICAgICAoZXNj
YXBlSFRNTCk6IERlbGV0ZWQuCisgICAgICAgICh0ZXN0UGFzc2VkKTogRGVsZXRlZC4KKwogMjAy
MC0wNy0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OIChyMjU5ODQwKTogUHJlc3NpbmcgRXNjIG9yIOKMmCsiLiIgZG9lcyBub3Qg
ZGlzbWlzcyB0aW1lIHBpY2tlciBvbiBpT1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmlu
ZGV4IGY0ODFkNDAyNDQ0ZGI5YTc4Zjc1MjU2YjY5YjEzMTMyMmFkNDA1ZjQuLjQwY2Q3NGJhNWIw
MGZmZjAyMjMwN2Y2MDQzYzNkMmYzZTI0MjEwMDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA3LTEyICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9t
aWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIFNvdXJjZVByb3ZpZGVyIGFuZCBh
ZGQgY2FsbGVyIHJlbGF0aXZlIGxvYWQgc2NyaXB0IHRvIGpzYy5jcHAKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDIwNQorCisgICAgICAgIFJldmll
d2VkIGJ5IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAgUmViYXNlbGluZSBtb2R1bGUgbG9hZGVy
IGVycm9yIG1lc3NhZ2VzIGFnYWluc3QgdGhlIG5ldyBzdHJpbmcuCisKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVt
ZW50L21vZHVsZS9zcGVjaWZpZXItZXJyb3ItZXhwZWN0ZWQudHh0OgorCiAyMDIwLTA3LTA5ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzeW5jIHdlYi1wbGF0
Zm9ybS10ZXN0cy93b3JrZXJzIGZyb20gdXBzdHJlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMKaW5kZXggOWE2ZGVhMzJhMjJlMmZiNGEwNGM1
OTU3NDcxMzMwYThjNzU1NDQ2Mi4uODZiY2I3MTNlYWQxMjVjMGFhZWI0YmZhMGE2MDY0OTMxNGQ5
MTM1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMKQEAgLTEwNCw5ICsxMDQsOSBAQCBmdW5jdGlvbiBpc1dvcmtlcigpCiAKIGZ1bmN0aW9u
IGRlc2NyaXB0aW9uUXVpZXQobXNnKSB7IGRlc2NyaXB0aW9uKG1zZywgdHJ1ZSk7IH0KIAotZnVu
Y3Rpb24gZXNjYXBlSFRNTCh0ZXh0KQorZnVuY3Rpb24gZXNjYXBlSFRNTEFuZFN0cmlwRmlsZVVS
THModGV4dCkKIHsKLSAgICByZXR1cm4gdGV4dC5yZXBsYWNlKC8mL2csICImYW1wOyIpLnJlcGxh
Y2UoLzwvZywgIiZsdDsiKS5yZXBsYWNlKC9cMC9nLCAiXFwwIik7CisgICAgcmV0dXJuIHRleHQu
cmVwbGFjZSgvJi9nLCAiJmFtcDsiKS5yZXBsYWNlKC88L2csICImbHQ7IikucmVwbGFjZSgvXDAv
ZywgIlxcMCIpLnJlcGxhY2UoL2ZpbGU6XC9cLy4qTGF5b3V0VGVzdHMvZywgImZpbGU6Ly8vTGF5
b3V0VGVzdHMiKTsKIH0KIAogZnVuY3Rpb24gdGVzdFBhc3NlZChtc2cpCkBAIC0xMTQsMTMgKzEx
NCwxMyBAQCBmdW5jdGlvbiB0ZXN0UGFzc2VkKG1zZykKICAgICBpZiAoc2lsZW50VGVzdFBhc3Mp
CiAgICAgICAgIGRpZFBhc3NTb21lVGVzdHNTaWxlbnRseSA9IHRydWU7CiAgICAgZWxzZQotICAg
ICAgICBkZWJ1ZygnPHNwYW4+PHNwYW4gY2xhc3M9InBhc3MiPlBBU1M8L3NwYW4+ICcgKyBlc2Nh
cGVIVE1MKG1zZykgKyAnPC9zcGFuPicpOworICAgICAgICBkZWJ1ZygnPHNwYW4+PHNwYW4gY2xh
c3M9InBhc3MiPlBBU1M8L3NwYW4+ICcgKyBlc2NhcGVIVE1MQW5kU3RyaXBGaWxlVVJMcyhtc2cp
ICsgJzwvc3Bhbj4nKTsKIH0KIAogZnVuY3Rpb24gdGVzdEZhaWxlZChtc2cpCiB7CiAgICAgZGlk
RmFpbFNvbWVUZXN0cyA9IHRydWU7Ci0gICAgZGVidWcoJzxzcGFuPjxzcGFuIGNsYXNzPSJmYWls
Ij5GQUlMPC9zcGFuPiAnICsgZXNjYXBlSFRNTChtc2cpICsgJzwvc3Bhbj4nKTsKKyAgICBkZWJ1
ZygnPHNwYW4+PHNwYW4gY2xhc3M9ImZhaWwiPkZBSUw8L3NwYW4+ICcgKyBlc2NhcGVIVE1MQW5k
U3RyaXBGaWxlVVJMcyhtc2cpICsgJzwvc3Bhbj4nKTsKIH0KIAogZnVuY3Rpb24gYXJlTnVtYmVy
c0VxdWFsKF9hY3R1YWwsIF9leHBlY3RlZCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhl
LXNjcmlwdC1lbGVtZW50L21vZHVsZS9zcGVjaWZpZXItZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL3NwZWNpZmllci1lcnJvci1leHBl
Y3RlZC50eHQKaW5kZXggNGU5ZWE5MWI3OWUzZDRmYmRkM2UyMjcwYjdkMzg0MTQwMTJhZmZiZi4u
Njk2ZGYzMTMwMTg3ZTEyZGQ1ZGZmOThhMGE2ZDYwNTQ4MTdiYjhmNSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL3NwZWNpZmllci1lcnJvci1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxlL3Nw
ZWNpZmllci1lcnJvci1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1DT05TT0xFIE1FU1NB
R0U6IFR5cGVFcnJvcjogTW9kdWxlIHNwZWNpZmllciBkb2VzIG5vdCBzdGFydCB3aXRoICIvIiwg
Ii4vIiwgb3IgIi4uLyIuCitDT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjogTW9kdWxlIHNwZWNp
ZmllciwgJ3N0cmluZy13aXRob3V0LWRvdC1zbGFzaC1wcmVmaXgnIGRvZXMgbm90IHN0YXJ0IHdp
dGggIi8iLCAiLi8iLCBvciAiLi4vIi4gUmVmZXJlbmNlZCBmcm9tIGh0dHA6Ly9sb2NhbGhvc3Q6
ODgwMC9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQvbW9kdWxl
L2JhZC1tb2R1bGUtc3BlY2lmaWVyLmpzCiAKIEZBSUwgVGVzdCB0aGF0IGludmFsaWQgbW9kdWxl
IHNwZWNpZmllciBsZWFkcyB0byBUeXBlRXJyb3Igb24gd2luZG93LiBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCBmdW5jdGlvbiAiZnVuY3Rpb24gVHlwZUVycm9yKCkgewogICAgIFtuYXRpdmUgY29k
ZV0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGVzL2ltcG9ydC1pbmNvcnJl
Y3QtcmVsYXRpdmUtc3BlY2lmaWVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGVzL2ltcG9ydC1pbmNvcnJlY3QtcmVsYXRpdmUtc3BlY2lmaWVyLWV4cGVjdGVkLnR4dApp
bmRleCAyNzBhNzhkOTBkNzUxNWViNWJjMWZmZDY0YzU1ODk4Zjg1YWE0MDllLi5hYTY5NDhmYzdh
ZDlmNDE1NDJkOWZmZTNmZGFiM2FjNGZkNzU3NWU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9q
cy9kb20vbW9kdWxlcy9pbXBvcnQtaW5jb3JyZWN0LXJlbGF0aXZlLXNwZWNpZmllci1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZXMvaW1wb3J0LWluY29ycmVjdC1y
ZWxhdGl2ZS1zcGVjaWZpZXItZXhwZWN0ZWQudHh0CkBAIC0zLDkgKzMsOSBAQCBUZXN0IGltcG9y
dCByZWplY3RzIHRoZSBpbmNvcnJlY3QgcmVsYXRpdmUgc3BlY2lmaWVycy4KIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGltcG9ydCgiaW5jb3JyZWN0IikgcmVqZWN0ZWQgcHJv
bWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1vZHVsZSBzcGVjaWZpZXIgZG9lcyBub3Qgc3RhcnQgd2l0
aCAiLyIsICIuLyIsIG9yICIuLi8iLi4KLVBBU1MgaW1wb3J0KCIkaGVsbG8iKSByZWplY3RlZCBw
cm9taXNlICB3aXRoIFR5cGVFcnJvcjogTW9kdWxlIHNwZWNpZmllciBkb2VzIG5vdCBzdGFydCB3
aXRoICIvIiwgIi4vIiwgb3IgIi4uLyIuLgotUEFTUyBpbXBvcnQoIi4uLi90ZXN0IikgcmVqZWN0
ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1vZHVsZSBzcGVjaWZpZXIgZG9lcyBub3Qgc3Rh
cnQgd2l0aCAiLyIsICIuLyIsIG9yICIuLi8iLi4KK1BBU1MgaW1wb3J0KCJpbmNvcnJlY3QiKSBy
ZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTW9kdWxlIHNwZWNpZmllciwgJ2luY29y
cmVjdCcgZG9lcyBub3Qgc3RhcnQgd2l0aCAiLyIsICIuLyIsIG9yICIuLi8iLiBSZWZlcmVuY2Vk
IGZyb20gZmlsZTovLy9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMuCitQQVNT
IGltcG9ydCgiJGhlbGxvIikgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1vZHVs
ZSBzcGVjaWZpZXIsICckaGVsbG8nIGRvZXMgbm90IHN0YXJ0IHdpdGggIi8iLCAiLi8iLCBvciAi
Li4vIi4gUmVmZXJlbmNlZCBmcm9tIGZpbGU6Ly8vTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzLgorUEFTUyBpbXBvcnQoIi4uLi90ZXN0IikgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0
aCBUeXBlRXJyb3I6IE1vZHVsZSBzcGVjaWZpZXIsICcuLi4vdGVzdCcgZG9lcyBub3Qgc3RhcnQg
d2l0aCAiLyIsICIuLyIsIG9yICIuLi8iLiBSZWZlcmVuY2VkIGZyb20gZmlsZTovLy9MYXlvdXRU
ZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9t
b2R1bGVzL21vZHVsZS1pbmNvcnJlY3QtcmVsYXRpdmUtc3BlY2lmaWVyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGVzL21vZHVsZS1pbmNvcnJlY3QtcmVsYXRpdmUtc3Bl
Y2lmaWVyLWV4cGVjdGVkLnR4dAppbmRleCA2NGE1OTVhZWFjYmQxOWI4MThiZDdiYmMxYzQ1M2M1
YzljOTQ5ZjAwLi5lZTdjZDZjMGNiZjVmNGZiZDZiMjM3Yzg3NTA4NmYxYzFmY2M4YjcxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlcy9tb2R1bGUtaW5jb3JyZWN0LXJlbGF0
aXZlLXNwZWNpZmllci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVs
ZXMvbW9kdWxlLWluY29ycmVjdC1yZWxhdGl2ZS1zcGVjaWZpZXItZXhwZWN0ZWQudHh0CkBAIC0x
LDYgKzEsNiBAQAotQ09OU09MRSBNRVNTQUdFOiBUeXBlRXJyb3I6IE1vZHVsZSBzcGVjaWZpZXIg
ZG9lcyBub3Qgc3RhcnQgd2l0aCAiLyIsICIuLyIsIG9yICIuLi8iLgotQ09OU09MRSBNRVNTQUdF
OiBUeXBlRXJyb3I6IE1vZHVsZSBzcGVjaWZpZXIgZG9lcyBub3Qgc3RhcnQgd2l0aCAiLyIsICIu
LyIsIG9yICIuLi8iLgotQ09OU09MRSBNRVNTQUdFOiBUeXBlRXJyb3I6IE1vZHVsZSBzcGVjaWZp
ZXIgZG9lcyBub3Qgc3RhcnQgd2l0aCAiLyIsICIuLyIsIG9yICIuLi8iLgorQ09OU09MRSBNRVNT
QUdFOiBUeXBlRXJyb3I6IE1vZHVsZSBzcGVjaWZpZXIsICdpbmNvcnJlY3QnIGRvZXMgbm90IHN0
YXJ0IHdpdGggIi8iLCAiLi8iLCBvciAiLi4vIi4gUmVmZXJlbmNlZCBmcm9tIG1vZHVsZS1pbmNv
cnJlY3QtcmVsYXRpdmUtc3BlY2lmaWVyLmh0bWwKK0NPTlNPTEUgTUVTU0FHRTogVHlwZUVycm9y
OiBNb2R1bGUgc3BlY2lmaWVyLCAnJGhlbGxvJyBkb2VzIG5vdCBzdGFydCB3aXRoICIvIiwgIi4v
Iiwgb3IgIi4uLyIuIFJlZmVyZW5jZWQgZnJvbSBtb2R1bGUtaW5jb3JyZWN0LXJlbGF0aXZlLXNw
ZWNpZmllci5odG1sCitDT05TT0xFIE1FU1NBR0U6IFR5cGVFcnJvcjogTW9kdWxlIHNwZWNpZmll
ciwgJy4uLi90ZXN0JyBkb2VzIG5vdCBzdGFydCB3aXRoICIvIiwgIi4vIiwgb3IgIi4uLyIuIFJl
ZmVyZW5jZWQgZnJvbSBtb2R1bGUtaW5jb3JyZWN0LXJlbGF0aXZlLXNwZWNpZmllci5odG1sCiBU
ZXN0IHNjcmlwdC5vbmVycm9yIHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgaW5jb3JyZWN0IHJlbGF0
aXZlIHNwZWNpZmllciBpcyBzcGVjaWZpZWQuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyBiL0xheW91
dFRlc3RzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcwppbmRleCA5YTZkZWEzMmEyMmUyZmI0YTA0
YzU5NTc0NzEzMzBhOGM3NTU0NDYyLi44NmJjYjcxM2VhZDEyNWMwYWFlYjRiZmEwYTYwNjQ5MzE0
ZDkxMzVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMK
KysrIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCkBAIC0xMDQsOSArMTA0
LDkgQEAgZnVuY3Rpb24gaXNXb3JrZXIoKQogCiBmdW5jdGlvbiBkZXNjcmlwdGlvblF1aWV0KG1z
ZykgeyBkZXNjcmlwdGlvbihtc2csIHRydWUpOyB9CiAKLWZ1bmN0aW9uIGVzY2FwZUhUTUwodGV4
dCkKK2Z1bmN0aW9uIGVzY2FwZUhUTUxBbmRTdHJpcEZpbGVVUkxzKHRleHQpCiB7Ci0gICAgcmV0
dXJuIHRleHQucmVwbGFjZSgvJi9nLCAiJmFtcDsiKS5yZXBsYWNlKC88L2csICImbHQ7IikucmVw
bGFjZSgvXDAvZywgIlxcMCIpOworICAgIHJldHVybiB0ZXh0LnJlcGxhY2UoLyYvZywgIiZhbXA7
IikucmVwbGFjZSgvPC9nLCAiJmx0OyIpLnJlcGxhY2UoL1wwL2csICJcXDAiKS5yZXBsYWNlKC9m
aWxlOlwvXC8uKkxheW91dFRlc3RzL2csICJmaWxlOi8vL0xheW91dFRlc3RzIik7CiB9CiAKIGZ1
bmN0aW9uIHRlc3RQYXNzZWQobXNnKQpAQCAtMTE0LDEzICsxMTQsMTMgQEAgZnVuY3Rpb24gdGVz
dFBhc3NlZChtc2cpCiAgICAgaWYgKHNpbGVudFRlc3RQYXNzKQogICAgICAgICBkaWRQYXNzU29t
ZVRlc3RzU2lsZW50bHkgPSB0cnVlOwogICAgIGVsc2UKLSAgICAgICAgZGVidWcoJzxzcGFuPjxz
cGFuIGNsYXNzPSJwYXNzIj5QQVNTPC9zcGFuPiAnICsgZXNjYXBlSFRNTChtc2cpICsgJzwvc3Bh
bj4nKTsKKyAgICAgICAgZGVidWcoJzxzcGFuPjxzcGFuIGNsYXNzPSJwYXNzIj5QQVNTPC9zcGFu
PiAnICsgZXNjYXBlSFRNTEFuZFN0cmlwRmlsZVVSTHMobXNnKSArICc8L3NwYW4+Jyk7CiB9CiAK
IGZ1bmN0aW9uIHRlc3RGYWlsZWQobXNnKQogewogICAgIGRpZEZhaWxTb21lVGVzdHMgPSB0cnVl
OwotICAgIGRlYnVnKCc8c3Bhbj48c3BhbiBjbGFzcz0iZmFpbCI+RkFJTDwvc3Bhbj4gJyArIGVz
Y2FwZUhUTUwobXNnKSArICc8L3NwYW4+Jyk7CisgICAgZGVidWcoJzxzcGFuPjxzcGFuIGNsYXNz
PSJmYWlsIj5GQUlMPC9zcGFuPiAnICsgZXNjYXBlSFRNTEFuZFN0cmlwRmlsZVVSTHMobXNnKSAr
ICc8L3NwYW4+Jyk7CiB9CiAKIGZ1bmN0aW9uIGFyZU51bWJlcnNFcXVhbChfYWN0dWFsLCBfZXhw
ZWN0ZWQpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDgwZWYzNTIwOGE0YzVmMjlmNDgzYzgwODU2ODRmYTVkZjAzYTQ2MjQuLjJiMzNhNmE3
OGNhZGI1YTM0ZDM5YzU5NjcwMzY5ODkyMThlZWFiNjkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIwIEBACisyMDIwLTA3
LTEyICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIENs
ZWFuIHVwIFNvdXJjZVByb3ZpZGVyIGFuZCBhZGQgY2FsbGVyIHJlbGF0aXZlIGxvYWQgc2NyaXB0
IHRvIGpzYy5jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNDIwNQorCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kuCisKKyAgICAg
ICAgVGhlcmUgYXJlIHR3byBtYWluIGNoYW5nZXMgaGVyZS4gVGhlIGZpcnN0IGlzIGNvbnZlcnRp
bmcgbW9zdAorICAgICAgICBpbnZvY2F0aW9ucyBvZiBsb2FkIHRvIGFsc28gcGFzcyAiY2FsbGVy
IHJlbGF0aXZlIiBhcyB0aGUgc2Vjb25kCisgICAgICAgIHBhcmFtZXRlci4gVGhpcyBsZXRzIHRo
b3NlIHRlc3RzIGJlIHJ1biBmcm9tIGFueSB3b3JraW5nIGRpcmVjdG9yeQorICAgICAgICByYXRo
ZXIgdGhhbiBvbmx5IHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGUgdGVzdCBzY3JpcHQuCisKKyAg
ICAgICAgVGhlIHNlY29uZCBjaGFuZ2UgaXMgdG8gcHJvaGliaXQgImJhcmUtbmFtZSIgc3BlY2lm
aWVycyBpbiBvdXIKKyAgICAgICAgQ0xJJ3MgbW9kdWxlIGxvYWRlci4gVGhpcyBtYXRjaGVzIHBy
ZXR0eSBtdWNoIGFsbCBvdGhlciBtb2R1bGUKKyAgICAgICAgbG9hZGVycywgaW5jbHVkaW5nIFdl
YkNvcmUgYW5kIG91ciBPYmotQyBBUEkuCisKKyAgICAgICAgKiBtb2R1bGVzL2FsaWFzZWQtbmFt
ZXMuanM6CisgICAgICAgICogbW9kdWxlcy9hbGlhc2luZy9kcmluay5qczoKKyAgICAgICAgKiBt
b2R1bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1tYWtlLWFtYmlndW91cy5qczoKKyAgICAgICAgKiBt
b2R1bGVzL2RlZmF1bHQtZXJyb3IvbWFpbi5qczoKKyAgICAgICAgKiBtb2R1bGVzL2V4ZWN1dGlv
bi1vcmRlci1jeWNsaWMvNS5qczoKKyAgICAgICAgKiBtb2R1bGVzL2V4ZWN1dGlvbi1vcmRlci1k
YWcvNS5qczoKKyAgICAgICAgKiBtb2R1bGVzL2V4ZWN1dGlvbi1vcmRlci10cmVlLzUuanM6Cisg
ICAgICAgICogbW9kdWxlcy9pbmRpcmVjdC1leHBvcnQtZXJyb3IvaW5kaXJlY3QtZXhwb3J0LWRl
ZmF1bHQtMi5qczoKKyAgICAgICAgKiBtb2R1bGVzL25hbWVzcGFjZS1hbWJpZ3VvdXMvYW1iaWd1
b3VzLTIuanM6CisgICAgICAgICogbW9kdWxlcy9uYW1lc3BhY2UtYW1iaWd1b3VzL2FtYmlndW91
cy5qczoKKyAgICAgICAgKiBtb2R1bGVzL25hbWVzcGFjZS1yZS1leHBvcnQuanM6CisgICAgICAg
ICogbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyLmpzOgorICAgICAgICAqIHN0cmVz
cy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTIuanM6CisgICAgICAgICogc3Ry
ZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMy5qczoKKyAgICAgICAgKiBz
dHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy00LmpzOgorICAgICAgICAq
IHN0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTUuanM6CisgICAgICAg
ICogc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcuanM6CisgICAgICAg
ICogc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS5qczoKKyAgICAgICAg
KiBzdHJlc3MvZ2xvYmFsLWxleGljYWwtcmVkZWZpbmUtY29uc3QuanM6CisgICAgICAgICogc3Ry
ZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXRkei5qczoKKyAgICAgICAgKiBzdHJlc3MvZ2xv
YmFsLWxleGljYWwtdmFyaWFibGUtdW5yZXNvbHZlZC1wcm9wZXJ0eS5qczoKKyAgICAgICAgKiBz
dHJlc3MvZ2xvYmFsLXByb3BlcnR5LWludG8tdmFyaWFibGUtZ2V0LWZyb20tc2NvcGUuanM6Cisg
ICAgICAgICogc3RyZXNzL2ltcG9ydC13aXRoLWVtcHR5LXN0cmluZy5qczoKKyAgICAgICAgKiBz
dHJlc3MvanNvbnAtbGl0ZXJhbC1wYXJzZXItc2VtaWNvbG9uLWlzLW5vdC1hc3NpZ25tZW50Lmpz
OgorICAgICAgICAqIHN0cmVzcy9vcF9hZGQuanM6CisgICAgICAgICogc3RyZXNzL29wX2JpdGFu
ZC5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfYml0b3IuanM6CisgICAgICAgICogc3RyZXNzL29w
X2JpdHhvci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfZGl2LUNvbnN0VmFyLmpzOgorICAgICAg
ICAqIHN0cmVzcy9vcF9kaXYtVmFyQ29uc3QuanM6CisgICAgICAgICogc3RyZXNzL29wX2Rpdi1W
YXJWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX2xzaGlmdC1Db25zdFZhci5qczoKKyAgICAg
ICAgKiBzdHJlc3Mvb3BfbHNoaWZ0LVZhckNvbnN0LmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9s
c2hpZnQtVmFyVmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9tb2QtQ29uc3RWYXIuanM6Cisg
ICAgICAgICogc3RyZXNzL29wX21vZC1WYXJDb25zdC5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3Bf
bW9kLVZhclZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfbXVsLUNvbnN0VmFyLmpzOgorICAg
ICAgICAqIHN0cmVzcy9vcF9tdWwtVmFyQ29uc3QuanM6CisgICAgICAgICogc3RyZXNzL29wX211
bC1WYXJWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX25lZ2F0ZS5qczoKKyAgICAgICAgKiBz
dHJlc3Mvb3BfcG9zdGRlYy5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfcG9zdGluYy5qczoKKyAg
ICAgICAgKiBzdHJlc3Mvb3BfcHJlZGVjLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9wcmVpbmMu
anM6CisgICAgICAgICogc3RyZXNzL29wX3JzaGlmdC1Db25zdFZhci5qczoKKyAgICAgICAgKiBz
dHJlc3Mvb3BfcnNoaWZ0LVZhckNvbnN0LmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9yc2hpZnQt
VmFyVmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9zdWItQ29uc3RWYXIuanM6CisgICAgICAg
ICogc3RyZXNzL29wX3N1Yi1WYXJDb25zdC5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3Bfc3ViLVZh
clZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfdXJzaGlmdC1Db25zdFZhci5qczoKKyAgICAg
ICAgKiBzdHJlc3Mvb3BfdXJzaGlmdC1WYXJDb25zdC5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3Bf
dXJzaGlmdC1WYXJWYXIuanM6CisgICAgICAgICogc3RyZXNzL3JlZ3Jlc3MtMTU5Nzc5LTEuanM6
CisgICAgICAgIChtYWtlVXNlUmVncmVzc2lvblRlc3QpOgorICAgICAgICAqIHN0cmVzcy9yZWdy
ZXNzLTE1OTc3OS0yLmpzOgorICAgICAgICAobWFrZVVzZVJlZ3Jlc3Npb25UZXN0KToKKyAgICAg
ICAgKiBzdHJlc3MvcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1bmN0
aW9ucy5qczoKKyAgICAgICAgKiBzdHJlc3MvcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxw
ZXItZnVuY3Rpb25zLmpzOgorICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci1hbm9u
eW1vdXMtZnVuY3Rpb24uanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWJh
c2ljLmpzOgorICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci1ib3VuZC1mdW5jdGlv
bi1uYW1lLmpzOgorICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci1kZWVwLXN0YWNr
LmpzOgorICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci1kaXNwbGF5LW5hbWUuanM6
CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWludGVybmFsLWZ1bmN0aW9uLW5h
bWUuanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLW1pY3JvdGFza3MuanM6
CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpz
OgorICAgICAgICAqIHN0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLmpzOgorICAgICAgICAq
IHN0cmVzcy9zaGFkb3ctY2hpY2tlbi1kaXNhYmxlZC5qczoKKyAgICAgICAgKiBzdHJlc3Mvc2hh
ZG93LWNoaWNrZW4tZW5hYmxlZC5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1jb25z
dHJ1Y3Rvci5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1jb3B5V2l0aGluLmpzOgor
ICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWV2ZXJ5LmpzOgorICAgICAgICAqIHN0cmVzcy90
eXBlZGFycmF5LWZpbGwuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktZmlsdGVyLmpz
OgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWZpbmQuanM6CisgICAgICAgICogc3RyZXNz
L3R5cGVkYXJyYXktZmluZEluZGV4LmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWZv
ckVhY2guanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktZnJvbS5qczoKKyAgICAgICAg
KiBzdHJlc3MvdHlwZWRhcnJheS1pbmNsdWRlcy5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRh
cnJheS1pbmRleE9mLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWxhc3RJbmRleE9m
LmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LW1hcC5qczoKKyAgICAgICAgKiBzdHJl
c3MvdHlwZWRhcnJheS1vZi5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1yZWR1Y2Uu
anM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktcmVkdWNlUmlnaHQuanM6CisgICAgICAg
ICogc3RyZXNzL3R5cGVkYXJyYXktc2V0LmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5
LXNsaWNlLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LXNvbWUuanM6CisgICAgICAg
ICogc3RyZXNzL3R5cGVkYXJyYXktc29ydC5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJh
eS1zdWJhcnJheS5qczoKKyAgICAgICAgKiB3YXNtL0J1aWxkZXIuanM6CisgICAgICAgICogd2Fz
bS9CdWlsZGVyX1dlYkFzc2VtYmx5QmluYXJ5LmpzOgorICAgICAgICAqIHdhc20vTG93TGV2ZWxC
aW5hcnkuanM6CisgICAgICAgICogd2FzbS9SRUFETUUubWQ6CisgICAgICAgICogd2FzbS9XQVNN
LmpzOgorICAgICAgICAqIHdhc20vcmVncmVzcy9zZWxlY3RmNjQuanM6CisgICAgICAgICogd2Fz
bS9zcGVjLWhhcm5lc3MuanM6CisgICAgICAgIChpbXBvcnQuc3RyaW5nX2FwcGVhcmVkX2hlcmUu
dGhlbik6CisKIDIwMjAtMDctMDkgIENhaW8gTGltYSAgPHRpY2Fpb2xpbWFAZ21haWwuY29tPgog
CiAgICAgICAgIFtKU0NdWzMyLWJpdHNdIFRlc3QgZ2FyZGVuaW5nIEp1bHkgOXRoCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL21vZHVsZXMvYWxpYXNlZC1uYW1lcy5qcyBiL0pTVGVzdHMvbW9kdWxlcy9h
bGlhc2VkLW5hbWVzLmpzCmluZGV4IDRjODc5NjU0OTVjMDBjNjQ5NjMyOTVlZGE0ZDc5ZGRjOTU1
N2I0MzYuLjc3N2Y3NDI1YjkzNzY5NmE3MjI4ZWE0OTVjODRlOWZlYzRjZGM0MTQgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvbW9kdWxlcy9hbGlhc2VkLW5hbWVzLmpzCisrKyBiL0pTVGVzdHMvbW9kdWxl
cy9hbGlhc2VkLW5hbWVzLmpzCkBAIC0xLDQgKzEsNCBAQAotaW1wb3J0IHsgYSwgYiwgY2hhbmdl
IH0gZnJvbSAnYWxpYXNlZC1uYW1lcy9tYWluLmpzJworaW1wb3J0IHsgYSwgYiwgY2hhbmdlIH0g
ZnJvbSAnLi9hbGlhc2VkLW5hbWVzL21haW4uanMnCiBpbXBvcnQgeyBzaG91bGRCZSwgc2hvdWxk
VGhyb3cgfSBmcm9tICIuL3Jlc291cmNlcy9hc3NlcnQuanMiOwogCiBzaG91bGRCZShhLCA0Mik7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL21vZHVsZXMvYWxpYXNpbmcvZHJpbmsuanMgYi9KU1Rlc3Rz
L21vZHVsZXMvYWxpYXNpbmcvZHJpbmsuanMKaW5kZXggMWRhODRhMGY4ZjBhYWEwYTQ5M2M5YWIx
NGU2Mzg0ZGVmZjMxYzY2My4uZmM1MmU0OGVhZDExYmI2ZGY4NWM2NWRhMmVlYjIzMjAwZWNmMTAy
YiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9tb2R1bGVzL2FsaWFzaW5nL2RyaW5rLmpzCisrKyBiL0pT
VGVzdHMvbW9kdWxlcy9hbGlhc2luZy9kcmluay5qcwpAQCAtMyw1ICszLDUgQEAgZXhwb3J0IGZ1
bmN0aW9uIGNoYW5nZUNvY29hKHZhbHVlKSB7CiAgICAgQ29jb2EgPSB2YWx1ZTsKIH0KIAotaW1w
b3J0IHsgQ2FwcHVjY2lubyBhcyBTdWJEcmluaywgY2hhbmdlQ2FwcHVjY2lubyB9IGZyb20gImRy
aW5rLTIuanMiCitpbXBvcnQgeyBDYXBwdWNjaW5vIGFzIFN1YkRyaW5rLCBjaGFuZ2VDYXBwdWNj
aW5vIH0gZnJvbSAiLi9kcmluay0yLmpzIgogZXhwb3J0IHsgU3ViRHJpbmssIGNoYW5nZUNhcHB1
Y2Npbm8gfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb2R1bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1t
YWtlLWFtYmlndW91cy5qcyBiL0pTVGVzdHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1ub3QtbWFr
ZS1hbWJpZ3VvdXMuanMKaW5kZXggNDI1MTNlZDE3MGIzZDcxMTEzOTRiYjM0OTNkYjhhNjRkNWMy
YTFlMC4uNTRhNDA4ODlkYjJiMTVlYzJkYjViYzVhNjA1ZWZlM2Q1MDFiODk5MiAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9tb2R1bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1tYWtlLWFtYmlndW91cy5qcwor
KysgYi9KU1Rlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzLmpz
CkBAIC0yLDQgKzIsNCBAQAogLy8gICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8CiAv
LyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHYKIC8vICAgQC0+IChBKSAqLS0tLSst
LS0tPiAoQikgLS0tPiBbQ10KLWltcG9ydCB7IEEgfSBmcm9tICJjYWNoaW5nLXNob3VsZC1ub3Qt
bWFrZS1hbWJpZ3VvdXMvbWFpbi5qcyIKK2ltcG9ydCB7IEEgfSBmcm9tICIuL2NhY2hpbmctc2hv
dWxkLW5vdC1tYWtlLWFtYmlndW91cy9tYWluLmpzIgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb2R1
bGVzL2RlZmF1bHQtZXJyb3IvbWFpbi5qcyBiL0pTVGVzdHMvbW9kdWxlcy9kZWZhdWx0LWVycm9y
L21haW4uanMKaW5kZXggZGFhYjEzNTkxODM2NTU4MjY4OGY1ODhjMWE5ZTUzYjE3NTY0YjQyNi4u
NWZiZTQ0NGNlMzk0MWUxNGRiZTk0NmY2MDE0OWQwYWQyYTg2YzFmMiAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9tb2R1bGVzL2RlZmF1bHQtZXJyb3IvbWFpbi5qcworKysgYi9KU1Rlc3RzL21vZHVsZXMv
ZGVmYXVsdC1lcnJvci9tYWluLmpzCkBAIC0xICsxIEBACi1pbXBvcnQgIkEiOworaW1wb3J0ICIu
L0EiOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb2R1bGVzL2V4ZWN1dGlvbi1vcmRlci1jeWNsaWMv
NS5qcyBiL0pTVGVzdHMvbW9kdWxlcy9leGVjdXRpb24tb3JkZXItY3ljbGljLzUuanMKaW5kZXgg
YTFkZWVmOTJkMTJmNWFiYzY4NmEzMThjMmJhYTQ5OGJmNjQ4MWU4Zi4uYjJkNDU4MDVlOTdmNDVj
MjFjZmQ1MGE5YmZmYWZmYTQzNzJkNzEwYiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9tb2R1bGVzL2V4
ZWN1dGlvbi1vcmRlci1jeWNsaWMvNS5qcworKysgYi9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9u
LW9yZGVyLWN5Y2xpYy81LmpzCkBAIC0xLDUgKzEsNSBAQAotaW1wb3J0ICIzLmpzIgotaW1wb3J0
ICI0LmpzIgoraW1wb3J0ICIuLzMuanMiCitpbXBvcnQgIi4vNC5qcyIKIAogdmFyIGdsb2JhbCA9
IChGdW5jdGlvbigicmV0dXJuIHRoaXMiKSkoKTsKIGlmIChnbG9iYWwuY291bnQgIT09IDQpCmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9uLW9yZGVyLWRhZy81LmpzIGIvSlNU
ZXN0cy9tb2R1bGVzL2V4ZWN1dGlvbi1vcmRlci1kYWcvNS5qcwppbmRleCBhMzNiNjNjZjU0Y2E3
ZTU5M2MzYmI3MWEwNjk3ZjZiODU5NjNiZWM1Li43ZDExMDI1MGViOTIzZjUzNjNhYmRlNjlmOTQx
M2FmOGFiM2MwNjNjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9uLW9yZGVy
LWRhZy81LmpzCisrKyBiL0pTVGVzdHMvbW9kdWxlcy9leGVjdXRpb24tb3JkZXItZGFnLzUuanMK
QEAgLTEsNSArMSw1IEBACi1pbXBvcnQgIjQuanMiCi1pbXBvcnQgIjEuanMiCitpbXBvcnQgIi4v
NC5qcyIKK2ltcG9ydCAiLi8xLmpzIgogCiB2YXIgZ2xvYmFsID0gKEZ1bmN0aW9uKCJyZXR1cm4g
dGhpcyIpKSgpOwogaWYgKGdsb2JhbC5jb3VudCAhPT0gNCkKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
bW9kdWxlcy9leGVjdXRpb24tb3JkZXItdHJlZS81LmpzIGIvSlNUZXN0cy9tb2R1bGVzL2V4ZWN1
dGlvbi1vcmRlci10cmVlLzUuanMKaW5kZXggYTFkZWVmOTJkMTJmNWFiYzY4NmEzMThjMmJhYTQ5
OGJmNjQ4MWU4Zi4uYjJkNDU4MDVlOTdmNDVjMjFjZmQ1MGE5YmZmYWZmYTQzNzJkNzEwYiAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9tb2R1bGVzL2V4ZWN1dGlvbi1vcmRlci10cmVlLzUuanMKKysrIGIv
SlNUZXN0cy9tb2R1bGVzL2V4ZWN1dGlvbi1vcmRlci10cmVlLzUuanMKQEAgLTEsNSArMSw1IEBA
Ci1pbXBvcnQgIjMuanMiCi1pbXBvcnQgIjQuanMiCitpbXBvcnQgIi4vMy5qcyIKK2ltcG9ydCAi
Li80LmpzIgogCiB2YXIgZ2xvYmFsID0gKEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKSgpOwogaWYg
KGdsb2JhbC5jb3VudCAhPT0gNCkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbW9kdWxlcy9pbmRpcmVj
dC1leHBvcnQtZXJyb3IvaW5kaXJlY3QtZXhwb3J0LWRlZmF1bHQtMi5qcyBiL0pTVGVzdHMvbW9k
dWxlcy9pbmRpcmVjdC1leHBvcnQtZXJyb3IvaW5kaXJlY3QtZXhwb3J0LWRlZmF1bHQtMi5qcwpp
bmRleCBjMTc3YjE0Mzk0NTBjZDJhZjMyY2UyOWRiNmY3Yzc3ZmVkMGM2NWY2Li5kNWY1MTgyNzdk
MDU2YmNhMjE3Njk4ZGIyMmQ2Y2IxMDRjZDkzOWYwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL21vZHVs
ZXMvaW5kaXJlY3QtZXhwb3J0LWVycm9yL2luZGlyZWN0LWV4cG9ydC1kZWZhdWx0LTIuanMKKysr
IGIvSlNUZXN0cy9tb2R1bGVzL2luZGlyZWN0LWV4cG9ydC1lcnJvci9pbmRpcmVjdC1leHBvcnQt
ZGVmYXVsdC0yLmpzCkBAIC0xICsxIEBACi1leHBvcnQgKiBmcm9tICJpbmRpcmVjdC1leHBvcnQt
ZGVmYXVsdC0zLmpzIgorZXhwb3J0ICogZnJvbSAiLi9pbmRpcmVjdC1leHBvcnQtZGVmYXVsdC0z
LmpzIgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb2R1bGVzL25hbWVzcGFjZS1hbWJpZ3VvdXMvYW1i
aWd1b3VzLTIuanMgYi9KU1Rlc3RzL21vZHVsZXMvbmFtZXNwYWNlLWFtYmlndW91cy9hbWJpZ3Vv
dXMtMi5qcwppbmRleCA3ODA5M2Q0NjZkMGM4YTVkODkyODA4MjEyOWVlOTRmZWZmYzEyZDk1Li5j
MWMzZWQ3OWFjZjE4YjNmMjZjNzI4NzczNmRlMWE3ZjhmNDgzMjBjIDEwMDY0NAotLS0gYS9KU1Rl
c3RzL21vZHVsZXMvbmFtZXNwYWNlLWFtYmlndW91cy9hbWJpZ3VvdXMtMi5qcworKysgYi9KU1Rl
c3RzL21vZHVsZXMvbmFtZXNwYWNlLWFtYmlndW91cy9hbWJpZ3VvdXMtMi5qcwpAQCAtMSwyICsx
LDIgQEAKLWV4cG9ydCAqIGZyb20gImFtYmlndW91cy0zLmpzIgotZXhwb3J0ICogZnJvbSAiYW1i
aWd1b3VzLTQuanMiCitleHBvcnQgKiBmcm9tICIuL2FtYmlndW91cy0zLmpzIgorZXhwb3J0ICog
ZnJvbSAiLi9hbWJpZ3VvdXMtNC5qcyIKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbW9kdWxlcy9uYW1l
c3BhY2UtYW1iaWd1b3VzL2FtYmlndW91cy5qcyBiL0pTVGVzdHMvbW9kdWxlcy9uYW1lc3BhY2Ut
YW1iaWd1b3VzL2FtYmlndW91cy5qcwppbmRleCBkMjg5MmViOWY3YzQyOTc5NTQ0NTVlNDFhZDQw
ODI5ZjgxMDdmMjdhLi4zZmQ0ZjZkNDJmYjQ3Mjc5ZmU0OWM4NzlmMzY2Mzk2ODFjNjQ4MGExIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL21vZHVsZXMvbmFtZXNwYWNlLWFtYmlndW91cy9hbWJpZ3VvdXMu
anMKKysrIGIvSlNUZXN0cy9tb2R1bGVzL25hbWVzcGFjZS1hbWJpZ3VvdXMvYW1iaWd1b3VzLmpz
CkBAIC0xICsxIEBACi1pbXBvcnQgKiBhcyBuYW1lc3BhY2UgZnJvbSAiYW1iaWd1b3VzLTIuanMi
CitpbXBvcnQgKiBhcyBuYW1lc3BhY2UgZnJvbSAiLi9hbWJpZ3VvdXMtMi5qcyIKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvbW9kdWxlcy9uYW1lc3BhY2UtcmUtZXhwb3J0LmpzIGIvSlNUZXN0cy9tb2R1
bGVzL25hbWVzcGFjZS1yZS1leHBvcnQuanMKaW5kZXggOWM3NGU2MTJkNDdlNzViZDkyNzQ4NmRh
ZTUxMWM5MDg5ZmMzMWVkNS4uYjBjNzViNTk0OTUwY2ZkNjQ0YWVlZTlkZjA2OTg2ZmY1MzA0ZjYx
NyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9tb2R1bGVzL25hbWVzcGFjZS1yZS1leHBvcnQuanMKKysr
IGIvSlNUZXN0cy9tb2R1bGVzL25hbWVzcGFjZS1yZS1leHBvcnQuanMKQEAgLTEgKzEgQEAKLWlt
cG9ydCAibmFtZXNwYWNlLXJlLWV4cG9ydC9uYW1lc3BhY2UtcmUtZXhwb3J0LmpzIjsKK2ltcG9y
dCAiLi9uYW1lc3BhY2UtcmUtZXhwb3J0L25hbWVzcGFjZS1yZS1leHBvcnQuanMiOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIuanMgYi9KU1Rl
c3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci5qcwppbmRleCA0MTkyYjUxN2Zh
ZTg5YWMzMzUwOTBiNTU2ZmRjOTViNTk4OGM0Mzg2Li43NTAyOTY0YTgwYTc3YmNjODM0N2ZkNzc2
NTYyNmIxMWZjODFmY2VjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUt
d2hlbi1zZWUtc3Rhci5qcworKysgYi9KU1Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1z
ZWUtc3Rhci5qcwpAQCAtOSw1ICs5LDUgQEAKIC8vICAgICAgICAgICAgICAgICB8CiAvLyAgICAg
ICAgICAgICAgICAgQAogCi1pbXBvcnQgInVuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvbWFpbjEu
anMiCi1pbXBvcnQgInVuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvbWFpbjIuanMiCitpbXBvcnQg
Ii4vdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9tYWluMS5qcyIKK2ltcG9ydCAiLi91bmNhY2hl
YWJsZS13aGVuLXNlZS1zdGFyL21haW4yLmpzIgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
Z2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy0yLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
Z2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy0yLmpzCmluZGV4IGZjZmRkZjQ5NDk3
M2M2NjQ1MzZiMDcxNWU5MTBiNTY2NmM5ZDMzMWQuLmEyMGFjNTczY2M3ZGYxZmQwODkyOGY2MTA1
MzNhZGNlYzY4ZTBhNDAgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1y
ZWRlY2xhcmF0aW9uLXNldHRpbmctMi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29u
c3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTIuanMKQEAgLTgsOCArOCw4IEBAIGZ1bmN0aW9uIGFz
c2VydChiKSB7CiBzZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGROb3RUaHJvdygpOyAv
LyBBbGxvdyBkdXBsaWNhdGUgY29uc3QgZGVjbGFyYXRpb25zIGF0IHRoZSBnbG9iYWwgbGV2ZWwu
CiAKIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwOyBpKyspIHsKLSAgICBsb2FkKCIuL2dsb2JhbC1j
b25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiKTsKKyAgICBsb2FkKCIuL2dsb2Jh
bC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZl
Iik7CiAgICAgYXNzZXJ0KGZvbyA9PT0gMjApOwotICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJl
ZGVjbGFyYXRpb24tc2V0dGluZy9zZWNvbmQuanMiKTsKKyAgICBsb2FkKCIuL2dsb2JhbC1jb25z
dC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvc2Vjb25kLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwog
ICAgIGFzc2VydChmb28gPT09IDQwKTsKIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2ds
b2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMy5qcyBiL0pTVGVzdHMvc3RyZXNzL2ds
b2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMy5qcwppbmRleCAxMTc3Y2I5NTgxMTMw
N2JiNjY3ZDM5MGM2OWFjZGU3MjJmNzFlNDRiLi4xMDI0MDk2Y2UxYjM1YmYyMjBmMGE1YTE5MGEx
MTkyNTlmNDk2NzE4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVk
ZWNsYXJhdGlvbi1zZXR0aW5nLTMuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0
LXJlZGVjbGFyYXRpb24tc2V0dGluZy0zLmpzCkBAIC03LDExICs3LDExIEBAIGZ1bmN0aW9uIGFz
c2VydChiKSB7CiAKIHNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZE5vdFRocm93KCk7
IC8vIEFsbG93IGR1cGxpY2F0ZSBjb25zdCBkZWNsYXJhdGlvbnMgYXQgdGhlIGdsb2JhbCBsZXZl
bC4KIAotbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2ZpcnN0Lmpz
Iik7Citsb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMi
LCAiY2FsbGVyIHJlbGF0aXZlIik7CiBhc3NlcnQoZm9vID09PSAyMCk7CiBsZXQgdGhyZXcgPSBm
YWxzZTsKIHRyeSB7Ci0gICAgbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0
aW5nL3N0cmljdC5qcyIpOyAvLyBXZSBpZ25vcmUgdGhlIHNldHRpbmcgYW5kIGFsd2F5cyB0aHJv
dyBhbiBlcnJvciB3aGVuIGluIHN0cmljdCBtb2RlIQorICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0
LXJlZGVjbGFyYXRpb24tc2V0dGluZy9zdHJpY3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7IC8v
IFdlIGlnbm9yZSB0aGUgc2V0dGluZyBhbmQgYWx3YXlzIHRocm93IGFuIGVycm9yIHdoZW4gaW4g
c3RyaWN0IG1vZGUhCiB9IGNhdGNoKGUpIHsKICAgICB0aHJldyA9IHRydWU7CiB9CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTQu
anMgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTQu
anMKaW5kZXggZDk2YTNkNmUyZTUzYTE2YzIyNzk5MWJhZjNlNmY3ZjRlMTI1YTEzMi4uMWZmN2Q3
NmIyNzkyMmYyMmVmZWM3MGZjMGU5MmE1MTA2NTUyYTczMCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9z
dHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy00LmpzCisrKyBiL0pTVGVz
dHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNC5qcwpAQCAtNywx
MSArNywxMSBAQCBmdW5jdGlvbiBhc3NlcnQoYikgewogCiBzZXRHbG9iYWxDb25zdFJlZGVjbGFy
YXRpb25TaG91bGROb3RUaHJvdygpOyAvLyBBbGxvdyBkdXBsaWNhdGUgY29uc3QgZGVjbGFyYXRp
b25zIGF0IHRoZSBnbG9iYWwgbGV2ZWwuCiAKLWxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFy
YXRpb24tc2V0dGluZy9maXJzdC5qcyIpOworbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJh
dGlvbi1zZXR0aW5nL2ZpcnN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogYXNzZXJ0KGZvbyA9
PT0gMjApOwogbGV0IHRocmV3ID0gZmFsc2U7CiB0cnkgewotICAgIGxvYWQoIi4vZ2xvYmFsLWNv
bnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9sZXQuanMiKTsgLy8gUmVkZWNsYXJhdGlvbiBhICds
ZXQnIHZhcmlhYmxlIHNob3VsZCB0aHJvdyBiZWNhdXNlIHRoaXMgZG9lc24ndCBicmVhayBiYWNr
d2FyZHMgY29tcGF0LgorICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0
dGluZy9sZXQuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7IC8vIFJlZGVjbGFyYXRpb24gYSAnbGV0
JyB2YXJpYWJsZSBzaG91bGQgdGhyb3cgYmVjYXVzZSB0aGlzIGRvZXNuJ3QgYnJlYWsgYmFja3dh
cmRzIGNvbXBhdC4KIH0gY2F0Y2goZSkgewogICAgIHRocmV3ID0gdHJ1ZTsKIH0KZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNS5q
cyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNS5q
cwppbmRleCBlM2VhMDkxODE0Y2RiYTBjYzRkMGUzODQ0MjA3NTZjYjU2ZWJlMGRiLi5mYjEyM2Q2
MjYzMGU3NzUwYTcwNTg1NWQwMGQwZTJmYWJhMzMzNzRjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0
cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTUuanMKKysrIGIvSlNUZXN0
cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy01LmpzCkBAIC03LDEx
ICs3LDExIEBAIGZ1bmN0aW9uIGFzc2VydChiKSB7CiAKIHNldEdsb2JhbENvbnN0UmVkZWNsYXJh
dGlvblNob3VsZE5vdFRocm93KCk7IC8vIEFsbG93IGR1cGxpY2F0ZSBjb25zdCBkZWNsYXJhdGlv
bnMgYXQgdGhlIGdsb2JhbCBsZXZlbC4KIAotbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJh
dGlvbi1zZXR0aW5nL2xldC5qcyIpOworbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlv
bi1zZXR0aW5nL2xldC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGFzc2VydChmb28gPT09IDUw
KTsKIGxldCB0aHJldyA9IGZhbHNlOwogdHJ5IHsKLSAgICBsb2FkKCIuL2dsb2JhbC1jb25zdC1y
ZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiKTsgLy8gUmVkZWNsYXJhdGlvbiBvZiBhICds
ZXQnIHRvICdjb25zdCcgc2hvdWxkIGFsd2F5cyB0aHJvdyBiZWNhdXNlIGl0IGlzbid0IGJyZWFr
aW5nIGJhY2t3YXJkcyBjb21wYXQuCisgICAgbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJh
dGlvbi1zZXR0aW5nL2ZpcnN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOyAvLyBSZWRlY2xhcmF0
aW9uIG9mIGEgJ2xldCcgdG8gJ2NvbnN0JyBzaG91bGQgYWx3YXlzIHRocm93IGJlY2F1c2UgaXQg
aXNuJ3QgYnJlYWtpbmcgYmFja3dhcmRzIGNvbXBhdC4KIH0gY2F0Y2goZSkgewogICAgIHRocmV3
ID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRl
Y2xhcmF0aW9uLXNldHRpbmcuanMgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNs
YXJhdGlvbi1zZXR0aW5nLmpzCmluZGV4IGFlZDFiNDFjNGFhMzY4ZWFhOTBkMjZkOTVjYzNhNDNl
YzNjY2QwZTIuLjRjOTQzZGU2M2E2OGVjYjI1ODVkZjdiYTg3YWUyNmY5NzhkODY4YzggMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcu
anMKKysrIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGlu
Zy5qcwpAQCAtNyw3ICs3LDcgQEAgZnVuY3Rpb24gYXNzZXJ0KGIpIHsKIAogc2V0R2xvYmFsQ29u
c3RSZWRlY2xhcmF0aW9uU2hvdWxkTm90VGhyb3coKTsgLy8gQWxsb3cgZHVwbGljYXRlIGNvbnN0
IGRlY2xhcmF0aW9ucyBhdCB0aGUgZ2xvYmFsIGxldmVsLgogCi1sb2FkKCIuL2dsb2JhbC1jb25z
dC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiKTsKK2xvYWQoIi4vZ2xvYmFsLWNvbnN0
LXJlZGVjbGFyYXRpb24tc2V0dGluZy9maXJzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGFz
c2VydChmb28gPT09IDIwKTsKLWxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0
dGluZy9zZWNvbmQuanMiKTsKK2xvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0
dGluZy9zZWNvbmQuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBhc3NlcnQoZm9vID09PSA0MCk7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFy
aWFibGUuanMgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFi
bGUuanMKaW5kZXggNmVjMjg3YjZkMTYwNDNmODhhZDFmOGVkY2I5YTk3ZDI2ZjdjNzA5ZC4uNTE2
MzM4YzE2ZDkzYTk1ZWFkODRkOWNmYTUwY2JkNWJlMzllOGVkYSAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlLmpzCisrKyBiL0pTVGVz
dHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS5qcwpAQCAtMzAsMzUg
KzMwLDM1IEBAIGZ1bmN0aW9uIGFzc2VydFByb3BlckVycm9yKGUpIHsKIGFzc2VydEV4cGVjdGF0
aW9ucygpOwogCiB0cnkgewotICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFs
LWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL2ZpcnN0LmpzIik7CisgICAgbG9hZCgiLi9tdWx0
aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvZmlyc3Qu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiB9IGNhdGNoKGUpIHsKICAgICBhc3NlcnRQcm9wZXJF
cnJvcihlKTsKIH0KIGFzc2VydEV4cGVjdGF0aW9ucygpOwogCiB0cnkgewotICAgIGxvYWQoIi4v
bXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL3Nl
Y29uZC5qcyIpOworICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGlj
YWwtcmVkZWNsYXJlLXZhcmlhYmxlL3NlY29uZC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIH0g
Y2F0Y2goZSkgewogICAgIGFzc2VydFByb3BlckVycm9yKGUpOwogfQogYXNzZXJ0RXhwZWN0YXRp
b25zKCk7CiAKIHRyeSB7Ci0gICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwt
bGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvdGhpcmQuanMiKTsKKyAgICBsb2FkKCIuL211bHRp
cGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS90aGlyZC5q
cyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIH0gY2F0Y2goZSkgewogICAgIGFzc2VydFByb3BlckVy
cm9yKGUpOwogfQogYXNzZXJ0RXhwZWN0YXRpb25zKCk7CiAKIHRyeSB7Ci0gICAgbG9hZCgiLi9t
dWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvZm91
cnRoLmpzIik7CisgICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNh
bC1yZWRlY2xhcmUtdmFyaWFibGUvZm91cnRoLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBj
YXRjaChlKSB7CiAgICAgYXNzZXJ0UHJvcGVyRXJyb3IoZSk7CiB9CiBhc3NlcnRFeHBlY3RhdGlv
bnMoKTsKIAogdHJ5IHsKLSAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1s
ZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9maWZ0aC5qcyIpOworICAgIGxvYWQoIi4vbXVsdGlw
bGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL2ZpZnRoLmpz
IiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRjaChlKSB7CiAgICAgYXNzZXJ0UHJvcGVyRXJy
b3IoZSk7CiB9CkBAIC03MCw3ICs3MCw3IEBAIGFzc2VydEV4cGVjdGF0aW9ucygpOwogdHJ5IHsK
ICAgICBzZW50aW5lbCA9ICJiYWQiOwogICAgIGFzc2VydChPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKHRoaXMsICJnbG9iYWxQcm9wZXJ0eSIpLmNvbmZpZ3VyYWJsZSk7Ci0gICAgbG9h
ZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFi
bGUvc2l4dGguanMiKTsKKyAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1s
ZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9zaXh0aC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
IH0gY2F0Y2goZSkgewogICAgIGFzc2VydChmYWxzZSk7CiB9CkBAIC03OSw3ICs3OSw3IEBAIGFz
c2VydEV4cGVjdGF0aW9ucygpOwogdHJ5IHsKICAgICBzZW50aW5lbCA9ICJiYWQiOwogICAgIGFz
c2VydChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMsICJBcnJheSIpLmNvbmZp
Z3VyYWJsZSk7Ci0gICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNh
bC1yZWRlY2xhcmUtdmFyaWFibGUvc2V2ZW50aC5qcyIpOworICAgIGxvYWQoIi4vbXVsdGlwbGUt
ZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL3NldmVudGguanMi
LCAiY2FsbGVyIHJlbGF0aXZlIik7CiB9IGNhdGNoKGUpIHsKICAgICBhc3NlcnQoZmFsc2UpOwog
fQpAQCAtODgsNyArODgsNyBAQCBhc3NlcnRFeHBlY3RhdGlvbnMoKTsKIHRyeSB7CiAgICAgc2Vu
dGluZWwgPSAiYmFkIjsKICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2ZvbycsIHt2
YWx1ZTogNSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZX0pOwotICAgIGxvYWQo
Ii4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxl
L2VpZ2h0aC5qcyIpOworICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxl
eGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL2VpZ2h0aC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
IH0gY2F0Y2goZSkgewogICAgIGFzc2VydChmYWxzZSk7CiB9CkBAIC05Niw3ICs5Niw3IEBAIGFz
c2VydEV4cGVjdGF0aW9ucygpOwogCiB0cnkgewogICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0
aGlzLCAnYmFyJywge3ZhbHVlOiA1LCBjb25maWd1cmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1
ZX0pOwotICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVk
ZWNsYXJlLXZhcmlhYmxlL25pbnRoLmpzIik7CisgICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10
ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvbmludGguanMiLCAiY2FsbGVy
IHJlbGF0aXZlIik7CiB9IGNhdGNoKGUpIHsKICAgICBhc3NlcnRQcm9wZXJFcnJvcihlKTsKIH0K
QEAgLTEwNiw3ICsxMDYsNyBAQCBhc3NlcnQoZXJyb3JDb3VudCA9PT0gNik7CiAKIHRyeSB7CiAg
ICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICd6b28nLCB7dmFsdWU6IHVuZGVmaW5lZCwg
Y29uZmlndXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWV9KTsKLSAgICBsb2FkKCIuL211bHRp
cGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS90ZW50aC5q
cyIpOworICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVk
ZWNsYXJlLXZhcmlhYmxlL3RlbnRoLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRjaChl
KSB7CiAgICAgYXNzZXJ0UHJvcGVyRXJyb3IoZSk7CiB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy9nbG9iYWwtbGV4aWNhbC1yZWRlZmluZS1jb25zdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2ds
b2JhbC1sZXhpY2FsLXJlZGVmaW5lLWNvbnN0LmpzCmluZGV4IDFjNmJhZjdjMzcyMjUyY2IwYzk3
YjM1ZmM4NDQ0Zjg1YzA2NmU5MWIuLjk0YWM0YWQzOTQyNTIwODY0YjBkODYyM2U3NWNjMDkyN2M5
NGJhYmQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXJlZGVmaW5l
LWNvbnN0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXJlZGVmaW5lLWNv
bnN0LmpzCkBAIC0xLDIgKzEsMiBAQAotbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9i
YWwtbGV4aWNhbC1yZWRlZmluZS1jb25zdC9maXJzdC5qcyIpOwotbG9hZCgiLi9tdWx0aXBsZS1m
aWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlZmluZS1jb25zdC9zZWNvbmQuanMiKTsKK2xv
YWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWZpbmUtY29uc3Qv
Zmlyc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7Citsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRl
c3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVmaW5lLWNvbnN0L3NlY29uZC5qcyIsICJjYWxsZXIgcmVs
YXRpdmUiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlh
YmxlLXRkei5qcyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXRkei5q
cwppbmRleCBlODhjZmQ2YTI1NjIzN2ZlM2MyZDU3ZmQxMWQ1MDAxNTY2MDg5YTBhLi5lMmExZTE3
MWMxNzNlZjBiMWI2YWZlZDgzNmFhNGIzNTJlZmQ1ZWZjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0
cmVzcy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS10ZHouanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mv
Z2xvYmFsLWxleGljYWwtdmFyaWFibGUtdGR6LmpzCkBAIC0xLDIgKzEsMiBAQAotbG9hZCgiLi9t
dWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS10ZHovZmlyc3QuanMi
KTsKLWxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUt
dGR6L3NlY29uZC5qcyIpOworbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4
aWNhbC12YXJpYWJsZS10ZHovZmlyc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7Citsb2FkKCIu
L211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXRkei9zZWNvbmQu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nbG9i
YWwtbGV4aWNhbC12YXJpYWJsZS11bnJlc29sdmVkLXByb3BlcnR5LmpzIGIvSlNUZXN0cy9zdHJl
c3MvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdW5yZXNvbHZlZC1wcm9wZXJ0eS5qcwppbmRleCBk
NjIyMTQ1NDQxYmEwMWRjYmVjYzU4YmZiOWQ5ZWY4Y2IwNzYzZGRlLi5kZTE5MzhjNjBlMDkzMGYy
ZDJjOWU1ZmYxZDc0YjczN2FmMDIwZTg3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9nbG9i
YWwtbGV4aWNhbC12YXJpYWJsZS11bnJlc29sdmVkLXByb3BlcnR5LmpzCisrKyBiL0pTVGVzdHMv
c3RyZXNzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXVucmVzb2x2ZWQtcHJvcGVydHkuanMKQEAg
LTEsMiArMSwyIEBACi1sb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2Fs
LXZhcmlhYmxlLXVucmVzb2x2ZWQtcHJvcGVydHkvZmlyc3QuanMiKTsKLWxvYWQoIi4vbXVsdGlw
bGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdW5yZXNvbHZlZC1wcm9wZXJ0
eS9zZWNvbmQuanMiKTsKK2xvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGlj
YWwtdmFyaWFibGUtdW5yZXNvbHZlZC1wcm9wZXJ0eS9maXJzdC5qcyIsICJjYWxsZXIgcmVsYXRp
dmUiKTsKK2xvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtdmFyaWFi
bGUtdW5yZXNvbHZlZC1wcm9wZXJ0eS9zZWNvbmQuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtcHJvcGVydHktaW50by12YXJpYWJsZS1n
ZXQtZnJvbS1zY29wZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1wcm9wZXJ0eS1pbnRvLXZh
cmlhYmxlLWdldC1mcm9tLXNjb3BlLmpzCmluZGV4IDk0N2M0ZThmMTIyMGQ2MTg4MGY1Y2RjNDBi
NmFlYzI5OWNhZGExMWEuLjQxZGVlNTk1YjYyNDljODNkMmFlNjUyYjBkZWI0MDk1ODEzYjAyYTQg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1wcm9wZXJ0eS1pbnRvLXZhcmlhYmxl
LWdldC1mcm9tLXNjb3BlLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1wcm9wZXJ0eS1p
bnRvLXZhcmlhYmxlLWdldC1mcm9tLXNjb3BlLmpzCkBAIC02LDcgKzYsNyBAQAogLy8gbm9Jbmxp
bmUgYXMgdGhlIGN1cnJlbnQgZ2xvYmFsIG9iamVjdCB3b3VsZCBub3QgaGF2ZSBub0lubGluZSBh
cyBhIHByb3BlcnR5CiAvLyBhdCB0aGF0IHBvaW50IGFuZCB3ZSB3b3VsZCBhdHRlbXB0IHRvIGFj
Y2VzcyB0aGUgdmFsdWUgYXQgYW4gaW52YWxpZCBvZmZzZXQuCiAKLWxvYWQoInJlc291cmNlcy9z
dGFuZGFsb25lLXByZS5qcyIpOworbG9hZCgicmVzb3VyY2VzL3N0YW5kYWxvbmUtcHJlLmpzIiwg
ImNhbGxlciByZWxhdGl2ZSIpOwogCiBub0lubGluZSgpOwogCmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy9pbXBvcnQtd2l0aC1lbXB0eS1zdHJpbmcuanMgYi9KU1Rlc3RzL3N0cmVzcy9pbXBv
cnQtd2l0aC1lbXB0eS1zdHJpbmcuanMKaW5kZXggZDE3NGVjOWVjZjUxOGMzZmQ0YjAyZTczNjQw
MTJhMWE2MWRiMzg0My4uYWFhZGU5ODk2M2IzOGRlNTZiZGZlNTc3OWUyYTg5ZDc2MzA1M2UwNCAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvaW1wb3J0LXdpdGgtZW1wdHktc3RyaW5nLmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2ltcG9ydC13aXRoLWVtcHR5LXN0cmluZy5qcwpAQCAtMSwyICsx
LDIgQEAKLWltcG9ydCgiIikudGhlbigkdm0uYWJvcnQsIGZ1bmN0aW9uICgpIHsKK2ltcG9ydCgi
IikudGhlbigkdm0uYWJvcnQsIGZ1bmN0aW9uIChlKSB7CiB9KTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL2pzb25wLWxpdGVyYWwtcGFyc2VyLXNlbWljb2xvbi1pcy1ub3QtYXNzaWdubWVu
dC5qcyBiL0pTVGVzdHMvc3RyZXNzL2pzb25wLWxpdGVyYWwtcGFyc2VyLXNlbWljb2xvbi1pcy1u
b3QtYXNzaWdubWVudC5qcwppbmRleCA4MWFhNjJhZWNiZmNmNTZiZWZkYzlhNDViYzQxMjZlMjM5
MTI5NjM2Li5kYWFhZTFiYmVlOWRhOTFlZTg4MGM4NGExMjc4YjEzZTVjN2NhZjA0IDEwMDY0NAot
LS0gYS9KU1Rlc3RzL3N0cmVzcy9qc29ucC1saXRlcmFsLXBhcnNlci1zZW1pY29sb24taXMtbm90
LWFzc2lnbm1lbnQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvanNvbnAtbGl0ZXJhbC1wYXJzZXIt
c2VtaWNvbG9uLWlzLW5vdC1hc3NpZ25tZW50LmpzCkBAIC0xLDQgKzEsNCBAQAogeCA9IHVuZGVm
aW5lZDsKLWxvYWQoIi4vcmVzb3VyY2VzL2xpdGVyYWwtcGFyc2VyLXRlc3QtY2FzZS5qcyIpOwor
bG9hZCgiLi9yZXNvdXJjZXMvbGl0ZXJhbC1wYXJzZXItdGVzdC1jYXNlLmpzIiwgImNhbGxlciBy
ZWxhdGl2ZSIpOwogaWYgKHggIT09IHVuZGVmaW5lZCkKICAgICB0aHJvdyBuZXcgRXJyb3IoIkJh
ZCByZXN1bHQiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX2FkZC5qcyBiL0pTVGVz
dHMvc3RyZXNzL29wX2FkZC5qcwppbmRleCA2YjYxM2ZiNjY2ODg2OTM0MGJlNjZlMDQ1MzkzMmQ5
MjE4YjEyM2ZiLi40ZGZiYzJkM2YzZjFiMDZkMDVlZTJhMjk3M2RiNjAzMTNkNzU5MDg3IDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9hZGQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3Bf
YWRkLmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1v
ZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBl
cnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVl
ZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9y
ZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRhbmQuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRhbmQu
anMKaW5kZXggNDQ1NTVmMTk2Njg5ZTRmZDNjNTlhMzYwZjQ2Njk0NDBmMTc0OTUyMi4uZjdiZTRk
YTA4ODgyOGIzZDJjYjVmZDAyYjBiOWEwMmU1N2UwZmNlNyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9z
dHJlc3Mvb3BfYml0YW5kLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX2JpdGFuZC5qcwpAQCAt
NCw3ICs0LDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0
ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUg
YmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9h
ZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2Jp
bmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3Mvb3BfYml0b3IuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRvci5qcwppbmRleCBjMTk4
NDkwZWI0NTU1ZTcyYjQ0YmU4ZWQwMjg1NWQ5OTA2ZjgyMzc5Li41MTQyMTcyOGNlZjg3Nzc3ZjI5
OWU3ZjdmZTU5MmFmMTllMzdkNWE1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRv
ci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9iaXRvci5qcwpAQCAtNCw3ICs0LDcgQEAKIC8v
IElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50
bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3Qu
anMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMv
YmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0Lmpz
IiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3Qg
Y29uZmlndXJhdGlvbiBkYXRhOgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfYml0eG9y
LmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfYml0eG9yLmpzCmluZGV4IDBmZjlmMjcyNTYzNDEzMDc4
NGQ1NmFkNzgwYWQxYmU4MDc4MTc5NGMuLjE0ZjY5NTQ2MDk1ZTNkOTU4NTFlNjc5OGE5YjUyMTMw
MzI4Y2NjNjkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX2JpdHhvci5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy9vcF9iaXR4b3IuanMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29l
cyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3Qs
IGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1
Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10
ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIg
cmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRp
b24gZGF0YToKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX2Rpdi1Db25zdFZhci5qcyBi
L0pTVGVzdHMvc3RyZXNzL29wX2Rpdi1Db25zdFZhci5qcwppbmRleCA0NTA4NjU0M2FkNjEyYmM0
NDc2MGJjYzM3ZTY1NDVjN2RlNzk3Zjk1Li44YTY4NjQzMWZjOTVmNDI0NGVlOGI3YjNmMjRjOTJi
OTQ2OTVjYjI5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtQ29uc3RWYXIuanMK
KysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfZGl2LUNvbnN0VmFyLmpzCkBAIC00LDcgKzQsNyBAQAog
Ly8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxl
bnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVz
dC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNl
cy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3Qu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVz
dCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gImRpdiI7CiB2YXIgb3AgPSAiLyI7
CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVz
b3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3Rz
ID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiQ29uc3RWYXIi
LCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFy
Q29uc3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFyQ29uc3QuanMKaW5kZXggOTFmZjJm
MTRhZDg5NzdlN2QwNGU1NWFhOTEwMmI0NzZjZmYxMjM5Yi4uMzMzNTYxYjU2NDAzMDU1ZTdhMThi
YmE4YjYyZWI2NWMxYmYxN2JjYSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfZGl2LVZh
ckNvbnN0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX2Rpdi1WYXJDb25zdC5qcwpAQCAtNCw3
ICs0LDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJt
aW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmlu
YXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgi
Li9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFy
eS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTIsNyArMTIsNyBAQCBsb2FkKCIu
L3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJkaXYiOwogdmFy
IG9wID0gIi8iOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Cits
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwg
IlZhckNvbnN0IiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
b3BfZGl2LVZhclZhci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX2Rpdi1WYXJWYXIuanMKaW5kZXgg
ODI4YTIwMzA0NWQxY2VkZWViMGU5NDQyNGRkZmIyZWEzODhlYTE2ZS4uNjQ5YjgwOTk1MTUyOTky
NGMyNTI5YzM1MjcyOTM4ZjA4YWYyMTA0OCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3Bf
ZGl2LVZhclZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFyVmFyLmpzCkBAIC00
LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRl
cm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBi
aW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2Fk
KCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmlu
YXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMiw3ICsxMiw3IEBAIGxvYWQo
Ii4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gImRpdiI7CiB2
YXIgb3AgPSAiLyI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsK
K2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZl
Iik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9w
LCAiVmFyVmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
b3BfbHNoaWZ0LUNvbnN0VmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LUNvbnN0VmFy
LmpzCmluZGV4IGMwYjM5OTRjNTk4YmQxZjlmYjA1NjZlMDc3MjA2OTM5YzlkMmM1OTEuLjg3OTM1
OTgyYzcxYWVlMjE4ZDkwN2NkODYxYjVmNjY5YjBhY2ZhNzEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
c3RyZXNzL29wX2xzaGlmdC1Db25zdFZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9sc2hp
ZnQtQ29uc3RWYXIuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlz
IHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJp
bnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9u
cyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Cits
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
IAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAg
LTExLDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZh
ciBvcE5hbWUgPSAibHNoaWZ0IjsKIHZhciBvcCA9ICI8PCI7CiAKLWxvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1
ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFy
eVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiQ29uc3RWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9sc2hpZnQtVmFyQ29uc3QuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9vcF9sc2hpZnQtVmFyQ29uc3QuanMKaW5kZXggMGUzMmJhNjkyZjBlYTg1MmExZDAx
MDg0MWFlOTIzODg3N2FkOGQ1YS4uYmUzODVjZmNjZjU0YTYwNTA5NzA0MjkxMTJkMmRiYWU0OTg5
YTIxOSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LVZhckNvbnN0LmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL29wX2xzaGlmdC1WYXJDb25zdC5qcwpAQCAtMyw3ICszLDcgQEAK
IC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2ls
ZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRl
c3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJj
ZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0
LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRl
c3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNl
cy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJsc2hpZnQiOwogdmFyIG9wID0g
Ijw8IjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgi
Li9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAog
dGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJD
b25zdCIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX2xz
aGlmdC1WYXJWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9sc2hpZnQtVmFyVmFyLmpzCmluZGV4
IDg3MzQ5YjhmZTQ3MzkwOTg0Y2E5NDgzMGI3NDVkODUxNzEzYzFiNDguLjUzODFmZDQyNWFmYjE0
Nzk4NTQwMzk3N2QxMjA5OTFmYWZmMjQ5MWUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29w
X2xzaGlmdC1WYXJWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LVZhclZhci5q
cwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUg
d2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3Jz
LiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4K
IAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3Vy
Y2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBA
QCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJs
c2hpZnQiOwogdmFyIG9wID0gIjw8IjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZh
bHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMs
IG9wTmFtZSwgb3AsICJWYXJWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9vcF9tb2QtQ29uc3RWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tb2QtQ29u
c3RWYXIuanMKaW5kZXggNDg5MTg4Y2VkMWFhNzEyNThlOWZlZDBhNDczMWZiMjI1ZmVlY2M2MS4u
YmFlYTdlOGJhNzNkYTQ5ZjZmNzI3NjcxNDdhNjc2MDk3MmE3OGQyNiAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9zdHJlc3Mvb3BfbW9kLUNvbnN0VmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX21v
ZC1Db25zdFZhci5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMg
dGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmlu
dAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25z
IGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xv
YWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwog
CiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAt
MTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFy
IG9wTmFtZSA9ICJtb2QiOwogdmFyIG9wID0gIiUiOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5h
cnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpz
IiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0
cyh0ZXN0cywgb3BOYW1lLCBvcCwgIkNvbnN0VmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbW9kLVZhckNvbnN0LmpzIGIvSlNUZXN0cy9zdHJlc3Mv
b3BfbW9kLVZhckNvbnN0LmpzCmluZGV4IGYwM2E0ZDQwNGFlYWY3ZjBjYjNmZWYzZGMwNmU1ZmY1
MTY2YzY1NTUuLjM5MWMyMWE2NDQwN2ZhY2YzZDM0MGU4ZjdhZGVhOTBlNjBkM2YxMjYgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX21vZC1WYXJDb25zdC5qcworKysgYi9KU1Rlc3RzL3N0
cmVzcy9vcF9tb2QtVmFyQ29uc3QuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3
ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0
IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dp
bmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0
LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVs
YXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24g
ZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3Qu
anMiKTsKIHZhciBvcE5hbWUgPSAibW9kIjsKIHZhciBvcCA9ICIlIjsKIAotbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9w
LXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRl
QmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJDb25zdCIsIHZhbHVlcywgdmFsdWVz
KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX21vZC1WYXJWYXIuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9vcF9tb2QtVmFyVmFyLmpzCmluZGV4IDEzNDM2YTk3ZTIwNTVmNmU4NmMxYWE2ZDUy
N2Q0Zjk0YzNkOGYxN2MuLmNmMDUxOTRmMzAyM2NhNTVkZmFmYjVlNDJjYjkxOWJhODY1MzI4MDkg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX21vZC1WYXJWYXIuanMKKysrIGIvSlNUZXN0
cy9zdHJlc3Mvb3BfbW9kLVZhclZhci5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2Vz
IHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwg
aXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVn
Z2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRl
c3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciBy
ZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlv
biBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVz
dC5qcyIpOwogdmFyIG9wTmFtZSA9ICJtb2QiOwogdmFyIG9wID0gIiUiOwogCi1sb2FkKCIuL3Jl
c291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnkt
b3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJh
dGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhclZhciIsIHZhbHVlcywgdmFsdWVz
KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX211bC1Db25zdFZhci5qcyBiL0pTVGVz
dHMvc3RyZXNzL29wX211bC1Db25zdFZhci5qcwppbmRleCAzZGUzNjRlMWZiOTk3ZjNlNDc2NDZk
YWE3NzlkNGMyYWQ5MzM2OWRjLi5lY2Y5OGUyMWEwYWU2MDhjNTc2ODQ0ZjY4OTg0NzNlOTI3ZDJh
N2UzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtQ29uc3RWYXIuanMKKysrIGIv
SlNUZXN0cy9zdHJlc3Mvb3BfbXVsLUNvbnN0VmFyLmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYg
YWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4g
SWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBm
b3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5h
cnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAi
Y2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25m
aWd1cmF0aW9uIGRhdGE6CkBAIC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFy
eS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gIm11bCI7CiB2YXIgb3AgPSAiKiI7CiAKLWxv
YWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107
CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiQ29uc3RWYXIiLCB2YWx1
ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtVmFyQ29uc3Qu
anMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtVmFyQ29uc3QuanMKaW5kZXggNDhlMWU3NjU0OTc2
MDY2N2RhZjQ2YWMyYTFiYjE2YmQ3OTM2MDM5Yy4uYzhmY2QwNWRmMjdkZWQ0NTBkZDgxN2FjYTA5
ZmMwODAzN2U2YWM5MiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbXVsLVZhckNvbnN0
LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX211bC1WYXJDb25zdC5qcwpAQCAtNCw3ICs0LDcg
QEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUg
c2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9w
LXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10
ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8v
IFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTIsNyArMTIsNyBAQCBsb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJtdWwiOwogdmFyIG9wID0g
IioiOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIu
L3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0
ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhckNv
bnN0IiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbXVs
LVZhclZhci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX211bC1WYXJWYXIuanMKaW5kZXggNWUxY2M1
ODcyODVkZTRjNWNhMTAzZmZlMzg1MjZkMWVjYTA0M2FlZS4uYjc3NGVjYWRiNzkzZjJhMGY5ZWJm
MTMyZTQ3ODM2YTA3ZTQ1MWY5NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbXVsLVZh
clZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtVmFyVmFyLmpzCkBAIC00LDcgKzQs
NyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0
ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnkt
b3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jl
c291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9w
LXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog
Ly8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4vcmVz
b3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gIm11bCI7CiB2YXIgb3Ag
PSAiKiI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQo
Ii4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAK
IHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFy
VmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbmVn
YXRlLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbmVnYXRlLmpzCmluZGV4IGQ5OGYwNGRiYzdjMDVj
MGMxZWRkYWE2ZjgwYjRhYWZhYjU4MTZlMTIuLjU1YjAyZGZhYzgzMDNjY2JhMzgzMmZhZWIxMjk0
NmEwMzA1YWM0N2YgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX25lZ2F0ZS5qcworKysg
Yi9KU1Rlc3RzL3N0cmVzcy9vcF9uZWdhdGUuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwg
Z29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBu
b3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIHVuYXJ5LW9wLXRlc3QuanMgZm9yIGRl
YnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvdW5hcnktb3At
dGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIg
cmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRp
b24gZGF0YToKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3Bvc3RkZWMuanMgYi9KU1Rl
c3RzL3N0cmVzcy9vcF9wb3N0ZGVjLmpzCmluZGV4IGIyZTFmYTcyOTczYzZmNTc2ZDE1YTM4ODM5
OWQwZTY0MDkxMTk5OWEuLjYyOWI4NWJmZWQ0MzQ4MTU2Yzc4NTdmNjA3MTQwN2ZlMTJmYTk3Yjcg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3Bvc3RkZWMuanMKKysrIGIvSlNUZXN0cy9z
dHJlc3Mvb3BfcG9zdGRlYy5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGws
IHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2ls
bCBwcmludAogLy8gZXJyb3JzLiBTZWUgdW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9w
dGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIik7
Citsb2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfcG9zdGluYy5qcyBiL0pTVGVzdHMvc3RyZXNz
L29wX3Bvc3RpbmMuanMKaW5kZXggMDhhYTM1ZDlkMDg4ZjA5ODQ4ZWMwYjIwNTM0ZGE3NmJkMzJi
Y2E5Zi4uM2RmZDJlNWJkOTBmNTljNWY0MzA5NmZlNDE0ZDQyYjliMGJkYTRiZiAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9zdHJlc3Mvb3BfcG9zdGluYy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9w
b3N0aW5jLmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0
IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAv
LyBlcnJvcnMuIFNlZSB1bmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBu
ZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL3VuYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4v
cmVzb3VyY2VzL3VuYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9vcF9wcmVkZWMuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9wcmVkZWMu
anMKaW5kZXggYjhjNjU2MjdlYmZjM2I2ZTQxMGQ4NTM4NzhjMWViM2FkNzgwNDQzNS4uNWE5Y2I0
NmQ0YWY4ZTNjNTRlYzg4MDVlODBhYmQxYmRhMjBjMTliZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9z
dHJlc3Mvb3BfcHJlZGVjLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX3ByZWRlYy5qcwpAQCAt
Myw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0
ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUg
dW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2Fk
KCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy91bmFy
eS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3Mvb3BfcHJlaW5jLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfcHJlaW5jLmpzCmluZGV4IDIyZmI2
ZWU2MTg3YWU2NTU0ZTNlM2Y1MDg5NGRlYzMzY2YxNTcwNTEuLjFjNzkzZDE2M2M0NDBlMTc5ZGI3
YzkzMmQzYjcyY2NmMmY0ZTA3NzUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3ByZWlu
Yy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9wcmVpbmMuanMKQEAgLTMsNyArMyw3IEBACiAv
LyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVu
dGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIHVuYXJ5LW9wLXRlc3Qu
anMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMv
dW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdW5hcnktb3AtdGVzdC5qcyIs
ICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNv
bmZpZ3VyYXRpb24gZGF0YToKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1D
b25zdFZhci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1Db25zdFZhci5qcwppbmRleCBm
MDU5OTMxNDliNGVlOWI0MzYwYjc2Nzc5NDIwOTY4YWViYzdmZDdmLi5mOTk5OTAwMGNmZjIyMTBh
MTY1M2Q0M2I5ZjcwYTkwODhjNGZjMDk5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9y
c2hpZnQtQ29uc3RWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LUNvbnN0VmFy
LmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVs
ZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJv
cnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVk
LgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3
IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0g
InJzaGlmdCI7CiB2YXIgb3AgPSAiPj4iOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3At
dmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNh
bGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0
cywgb3BOYW1lLCBvcCwgIkNvbnN0VmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LVZhckNvbnN0LmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3Bf
cnNoaWZ0LVZhckNvbnN0LmpzCmluZGV4IDEwMGNkOWJhZDU1ZmRkMTg5OTUzNDE2ZDU0NDBlMmQz
YzMxMDI2ZmYuLmE1YWEwNTE5MWJmYTg3ZjcwZGYxYmRlZWU2ZjM0NzUzY2I2M2MyNGUgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1WYXJDb25zdC5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy9vcF9yc2hpZnQtVmFyQ29uc3QuanMKQEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwg
Z29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBu
b3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBk
ZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1v
cC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3Vy
YXRpb24gZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9w
LXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAicnNoaWZ0IjsKIHZhciBvcCA9ICI+PiI7CiAKLWxv
YWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107
CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyQ29uc3QiLCB2YWx1
ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQtVmFyVmFy
LmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LVZhclZhci5qcwppbmRleCAxMTY2NjBkNTgx
ZWYyNWY4YjZmNDFlYmM5ZWI2MDJiMmMxNjc2ZjFiLi4yZmU4Zjk3YjJiMTg2N2FkZjNlNTY2Zjhi
Y2RhOTE3MDcwODkzNjJiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQtVmFy
VmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1WYXJWYXIuanMKQEAgLTMsNyAr
Myw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWlu
YXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFy
eS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4v
cmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnkt
b3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgiLi9y
ZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAicnNoaWZ0IjsKIHZh
ciBvcCA9ICI+PiI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsK
K2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZl
Iik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9w
LCAiVmFyVmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
b3Bfc3ViLUNvbnN0VmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLUNvbnN0VmFyLmpzCmlu
ZGV4IGM4ZmExZmYwZGMxOGFlNGViNGY3MDAxNDUxMDVkNDk3NTcyYTM4NWEuLmYzMDM0MzUyODcz
MDQxNmYyYTA5NTM5YWM0MTQ2ZTJmYTIzMzYwN2YgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNz
L29wX3N1Yi1Db25zdFZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItQ29uc3RWYXIu
anMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxl
IHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9y
cy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQu
CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTEyLDcgKzEyLDcg
QEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAi
c3ViIjsKIHZhciBvcCA9ICItIjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVl
cy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIg
cmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9w
TmFtZSwgb3AsICJDb25zdFZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL29wX3N1Yi1WYXJDb25zdC5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX3N1Yi1WYXJD
b25zdC5qcwppbmRleCA5MWU3NDU1ZjQ1NzAwZDgzYmNlZjVlNDY3M2MzYWRkNDlkMTZiYWMyLi5m
MWU1Nzc0MjhkZTMzODkyODg0YjU3ZGZmN2UxODYxMjNhZjIzNjEyIDEwMDY0NAotLS0gYS9KU1Rl
c3RzL3N0cmVzcy9vcF9zdWItVmFyQ29uc3QuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3Bfc3Vi
LVZhckNvbnN0LmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0
ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50
CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMg
aWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9h
ZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAK
IC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0x
Miw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIg
b3BOYW1lID0gInN1YiI7CiB2YXIgb3AgPSAiLSI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFy
eS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMi
LCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3Rz
KHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyQ29uc3QiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItVmFyVmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3Bf
c3ViLVZhclZhci5qcwppbmRleCA2YjlkMTdjZWY4YTAxNzlhMGU2MDM1YzVmZWRhYzFhZmExMjM2
YWRmLi5kMGY4ZTllMjAwYzBkM2Q1OWY5MjdjNmQzODA0YTU1N2I5ODllMjljIDEwMDY0NAotLS0g
YS9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItVmFyVmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29w
X3N1Yi1WYXJWYXIuanMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlz
IHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJp
bnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9u
cyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Cits
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
IAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAg
LTEyLDcgKzEyLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZh
ciBvcE5hbWUgPSAic3ViIjsKIHZhciBvcCA9ICItIjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmlu
YXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5q
cyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVz
dHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LUNvbnN0VmFyLmpzIGIvSlNUZXN0cy9zdHJl
c3Mvb3BfdXJzaGlmdC1Db25zdFZhci5qcwppbmRleCBmZGVlMGJlNmU5NTE3YzMwYWJlY2RiNTU3
NmY1MWJmNzg3NTczZGJjLi5lYjUxODYwOWRkNzk5NDU4ZmNiYWUxMWM2ZjUwNDlhYjYyYTYzMDI0
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LUNvbnN0VmFyLmpzCisrKyBi
L0pTVGVzdHMvc3RyZXNzL29wX3Vyc2hpZnQtQ29uc3RWYXIuanMKQEAgLTMsNyArMyw3IEBACiAv
LyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVu
dGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0
LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5q
cyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0
IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMv
YmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAidXJzaGlmdCI7CiB2YXIgb3AgPSAi
Pj4+IjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgi
Li9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAog
dGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJDb25z
dFZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3Vy
c2hpZnQtVmFyQ29uc3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LVZhckNvbnN0Lmpz
CmluZGV4IDhiNGFjZWRhYmIzNWUxYmIyMzFiZjdmM2I2OTQwOTMyNzgxODg5ZGMuLjI4ZGEwNTAz
ZWQyOWRhMTcyYjVmMTI3ZmM2OGNlMmU5NzI4YmI0YWQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL29wX3Vyc2hpZnQtVmFyQ29uc3QuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlm
dC1WYXJDb25zdC5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMg
dGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmlu
dAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25z
IGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xv
YWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwog
CiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAt
MTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFy
IG9wTmFtZSA9ICJ1cnNoaWZ0IjsKIHZhciBvcCA9ICI+Pj4iOwogCi1sb2FkKCIuL3Jlc291cmNl
cy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFs
dWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5h
cnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhckNvbnN0IiwgdmFsdWVzLCB2YWx1ZXMpOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC1WYXJWYXIuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9vcF91cnNoaWZ0LVZhclZhci5qcwppbmRleCBjYjE0YWVkZjVmZDFhNzY2ZjBiN2E5
Y2NjYWUyZGFiZDkxOWYxNjRmLi5iODQwMzdhMDJjMmI3YjgxMzVmNzQxNzJlYzA2NzY5YTI5YTNi
NjViIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LVZhclZhci5qcworKysg
Yi9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LVZhclZhci5qcwpAQCAtMyw3ICszLDcgQEAKIC8v
IElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50
bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3Qu
anMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMv
YmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0Lmpz
IiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3Qg
Y29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9i
aW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJ1cnNoaWZ0IjsKIHZhciBvcCA9ICI+
Pj4iOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIu
L3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0
ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhclZh
ciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3Mt
MTU5Nzc5LTEuanMgYi9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE1OTc3OS0xLmpzCmluZGV4IGIw
NzE1MWQ1YWEyZWUyMDA1ODVlZGFhMTkyNjBhN2NlYTI1OTIzNTcuLmVlOWZlMjA3NzQzMjBlYjRi
NjE3Mzc3YzgzNTYzOWVjYjE0MDBlNTYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3JlZ3Jl
c3MtMTU5Nzc5LTEuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMS5qcwpA
QCAtMTI5MCw3ICsxMjkwLDcgQEAgZnVuY3Rpb24gbWFrZVVzZVJlZ3Jlc3Npb25UZXN0KGQsIGIp
CiAgICAgICAgIGJyZWFrOwogICAgICAgZGVmYXVsdDoKICAgICAgICAgCi0gICAgICAgIHMgKz0g
Ii8qIHJlZ3Jlc3Npb24tdGVzdC1sb2FkICovICIgKyAibG9hZCgiICsgc2ltcGxlU291cmNlKGZp
bGUpICsgIik7IjsKKyAgICAgICAgcyArPSAiLyogcmVncmVzc2lvbi10ZXN0LWxvYWQgKi8gIiAr
ICJsb2FkKCIgKyBzaW1wbGVTb3VyY2UoZmlsZSkgKyAiLCAiY2FsbGVyIHJlbGF0aXZlIik7IjsK
ICAgICAgICAgYnJlYWs7CiAgICAgICAKICAgICB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9yZWdyZXNzLTE1OTc3OS0yLmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMi5q
cwppbmRleCA1ODc5ZWI5MWZmNzFjNzUxZTU3ZDQ1MjA1MDk1ZDFkNDNkM2I0ZjQ1Li44OWZiY2Uw
OTUyMmFkMmU1YjNhMTQwZjc4NzRlZWQyZGZiMmRmMTFlIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0
cmVzcy9yZWdyZXNzLTE1OTc3OS0yLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5
Nzc5LTIuanMKQEAgLTEyOTAsNyArMTI5MCw3IEBAIGZ1bmN0aW9uIG1ha2VVc2VSZWdyZXNzaW9u
VGVzdChkLCBiKQogICAgICAgICBicmVhazsKICAgICAgIGRlZmF1bHQ6CiAgICAgICAgIAotICAg
ICAgICBzICs9ICIvKiByZWdyZXNzaW9uLXRlc3QtbG9hZCAqLyAiICsgImxvYWQoIiArIHNpbXBs
ZVNvdXJjZShmaWxlKSArICIpOyI7CisgICAgICAgIHMgKz0gIi8qIHJlZ3Jlc3Npb24tdGVzdC1s
b2FkICovICIgKyAibG9hZCgiICsgc2ltcGxlU291cmNlKGZpbGUpICsgIiwgImNhbGxlciByZWxh
dGl2ZSIpOyI7CiAgICAgICAgIGJyZWFrOwogICAgICAgCiAgICAgfQpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1bmN0
aW9ucy5qcyBiL0pTVGVzdHMvc3RyZXNzL3Jlc291cmNlcy90eXBlZGFycmF5LWNvbnN0cnVjdG9y
LWhlbHBlci1mdW5jdGlvbnMuanMKaW5kZXggYmYzNGRiNGM2YWU2YWVmYzdjZjk3M2IxYjVjNjE4
N2VhNjY5YjRlNy4uNzJiMDgxNDFiMTE1YmIyMmQ1OGI2ZTg3YmY0ZGM3MjVjZjNiZmQ5YyAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3It
aGVscGVyLWZ1bmN0aW9ucy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvdHlwZWRh
cnJheS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9h
ZCgiLi9yZXNvdXJjZXMvc3RhbmRhbG9uZS1wcmUuanMiKTsKK2xvYWQoIi4vc3RhbmRhbG9uZS1w
cmUuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKICJ1c2Ugc3RyaWN0IjsKIApkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rp
b25zLmpzIGIvSlNUZXN0cy9zdHJlc3MvcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXIt
ZnVuY3Rpb25zLmpzCmluZGV4IGM5MTViMjY5N2M5MzFiZTgyMDFiY2EyMTNmNzJiZDZkMTgxNDc4
ZWIuLjU3OWQ4MDEwNjM1NWMyMmI2ZjczZWU4YTE2MDAyM2NmZTI5MzdmNWYgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9u
cy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBl
ci1mdW5jdGlvbnMuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy9zdGFuZGFs
b25lLXByZS5qcyIpOworbG9hZCgiLi9zdGFuZGFsb25lLXByZS5qcyIsICJjYWxsZXIgcmVsYXRp
dmUiKTsKIAogdmFyIHR5cGVkQXJyYXlzID0gW0ludDhBcnJheSwgVWludDhBcnJheSwgVWludDhD
bGFtcGVkQXJyYXksIEludDE2QXJyYXksIFVpbnQxNkFycmF5LCBJbnQzMkFycmF5LCBVaW50MzJB
cnJheSwgRmxvYXQzMkFycmF5LCBGbG9hdDY0QXJyYXldOwogCmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1hbm9ueW1vdXMtZnVuY3Rpb24uanMgYi9KU1Rlc3Rz
L3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1hbm9ueW1vdXMtZnVuY3Rpb24uanMKaW5kZXggNTg3
NmRmNzRjYzU2NDMzZWY2MTJkZjU1ZjEzODZhODdiNTNlMGY0ZC4uYTgyMWYxNzQ1NzY2MDk1NWNk
OTcxMTkyYjRmNDdlY2UzZjg5ZmRjZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxp
bmctcHJvZmlsZXItYW5vbnltb3VzLWZ1bmN0aW9uLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3Nh
bXBsaW5nLXByb2ZpbGVyLWFub255bW91cy1mdW5jdGlvbi5qcwpAQCAtMSw1ICsxLDUgQEAKIGlm
IChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpKSB7Ci0gICAgbG9hZCgiLi9zYW1w
bGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIik7CisgICAgbG9hZCgiLi9zYW1wbGlu
Zy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAg
ICAgZnVuY3Rpb24gZm9vKGYpIHsKICAgICAgICAgZigpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItYmFzaWMuanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGlu
Zy1wcm9maWxlci1iYXNpYy5qcwppbmRleCBjMTIyODcwZGFkZjJhMzYxMDYwNGJlZWYzZGY2YTFh
YzRjMDZiMTBmLi5hNzY3ZDBiNDcxYjcxYzkwNTFlYzQ2MTkxY2EzOWMzNTM0MGY2ZTBhIDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1iYXNpYy5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1iYXNpYy5qcwpAQCAtMSw1ICsxLDUgQEAK
IGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpKSB7Ci0gICAgbG9hZCgiLi9z
YW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIik7CisgICAgbG9hZCgiLi9zYW1w
bGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwog
CiAgICAgZnVuY3Rpb24gYmFyKHkpIHsKICAgICAgICAgbGV0IHg7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1ib3VuZC1mdW5jdGlvbi1uYW1lLmpzIGIvSlNU
ZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItYm91bmQtZnVuY3Rpb24tbmFtZS5qcwppbmRl
eCA3ZWJhYTQzM2ExMjE4YjY3N2RmOGVjNmE0MTZkZGQxMTQ5ZTExZTJlLi5mMzc3NjI5ODk1ODU2
NWQ5MDdjYjM1NjBjNmE3MzM5M2EwN2I2M2ZhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9z
YW1wbGluZy1wcm9maWxlci1ib3VuZC1mdW5jdGlvbi1uYW1lLmpzCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWJvdW5kLWZ1bmN0aW9uLW5hbWUuanMKQEAgLTEsNSArMSw1
IEBACiBpZiAocGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJvZmlsZXIoKSkgewotICAgIGxvYWQo
Ii4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIpOworICAgIGxvYWQoIi4v
c2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIsICJjYWxsZXIgcmVsYXRpdmUi
KTsKIAogICAgIGZ1bmN0aW9uIGZvbygpIHsKICAgICAgICAgbGV0IG8gPSB7fTsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWRlZXAtc3RhY2suanMgYi9KU1Rl
c3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1kZWVwLXN0YWNrLmpzCmluZGV4IGMzMzk2OTE2
Mzg4NDE3YmY5Y2NkNmY3NGNiY2M4NWFhYzk1MDYwODMuLmIxZTM1NWE0OTQ5NTc5ODdhMjNjZmI1
YzQ3NTk2ZTkwYjNiOWFkNWMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXBy
b2ZpbGVyLWRlZXAtc3RhY2suanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmls
ZXItZGVlcC1zdGFjay5qcwpAQCAtMSw1ICsxLDUgQEAKIGlmIChwbGF0Zm9ybVN1cHBvcnRzU2Ft
cGxpbmdQcm9maWxlcigpKSB7Ci0gICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGlu
Z1Byb2ZpbGVyLmpzIik7CisgICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1By
b2ZpbGVyLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAgICAgZnVuY3Rpb24gZm9vKHgpIHsg
CiAgICAgICAgIGxldCBvID0ge307CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGlu
Zy1wcm9maWxlci1kaXNwbGF5LW5hbWUuanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9m
aWxlci1kaXNwbGF5LW5hbWUuanMKaW5kZXggZGFiNzEwODBhNzVjYWNiNTlkNTg5ZWY4YzAxNWVh
ZGNlNjY1NTVmNS4uNWQ5NzljMWU2YmI3Mjc0NDljMTRmZDA0M2U2OTQxMTViM2QzZWFjNCAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItZGlzcGxheS1uYW1lLmpz
CisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWRpc3BsYXktbmFtZS5qcwpA
QCAtMSw1ICsxLDUgQEAKIGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpKSB7
Ci0gICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIik7Cisg
ICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwgImNhbGxl
ciByZWxhdGl2ZSIpOwogCiAgICAgZnVuY3Rpb24gZm9vKCkgewogICAgICAgICBsZXQgbyA9IHt9
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItaW50ZXJuYWwt
ZnVuY3Rpb24tbmFtZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWludGVy
bmFsLWZ1bmN0aW9uLW5hbWUuanMKaW5kZXggODg5MmNhMzUwM2M5MDQ5M2E5YWM1YWYzNGM5YTA0
NmYyOTBkMTQxOS4uYWNmYzZjYmUxNjlmZTA5NzNhYjg5Mjc5OTNjODQxNjUzYTRkN2ExNyAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItaW50ZXJuYWwtZnVuY3Rp
b24tbmFtZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1pbnRlcm5h
bC1mdW5jdGlvbi1uYW1lLmpzCkBAIC0xLDUgKzEsNSBAQAogaWYgKHBsYXRmb3JtU3VwcG9ydHNT
YW1wbGluZ1Byb2ZpbGVyKCkpIHsKLSAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBs
aW5nUHJvZmlsZXIuanMiKTsKKyAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5n
UHJvZmlsZXIuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKICAgICBmdW5jdGlvbiBmb28oKSB7
CiAgICAgICAgIGxldCB4OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJv
ZmlsZXItbWljcm90YXNrcy5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLW1p
Y3JvdGFza3MuanMKaW5kZXggY2UzNWQxNmFiMWJhYjI3NjA1MTAyNTc0Y2E1MmEzNGMwYTQzNmEw
MC4uOWRiMTg2NjJhNDhiNjgyY2NkN2YxMDY4YmQzNWM4MzBlZjQyNmM5YiAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItbWljcm90YXNrcy5qcworKysgYi9KU1Rl
c3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1taWNyb3Rhc2tzLmpzCkBAIC0xLDcgKzEsNyBA
QAogdmFyIGFib3J0ID0gJHZtLmFib3J0OwogCiBpZiAocGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5n
UHJvZmlsZXIoKSkgewotICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9m
aWxlci5qcyIpOworICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxl
ci5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogICAgIGxldCB0cmVlID0gbnVsbDsKICAgICBm
dW5jdGlvbiB0ZXN0UmVzdWx0cygpIHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBs
aW5nLXByb2ZpbGVyLXdhc20tbmFtZS1zZWN0aW9uLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxp
bmctcHJvZmlsZXItd2FzbS1uYW1lLXNlY3Rpb24uanMKaW5kZXggYmE5ZTU2ZTZkODUxZDRkYzBh
NjJhMWNkMjYxMzJhNjBhZTYwNmM1Yy4uNTJkNDVlMDQ3MTFiZWNlNWJlNmMwZWE5NGY1ZDBlZDQ4
MzQzMTA1YiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2Fz
bS1uYW1lLXNlY3Rpb24uanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXIt
d2FzbS1uYW1lLXNlY3Rpb24uanMKQEAgLTY1LDcgKzY1LDcgQEAgaWYgKHBsYXRmb3JtU3VwcG9y
dHNTYW1wbGluZ1Byb2ZpbGVyKCkgJiYgJHZtLmlzV2FzbVN1cHBvcnRlZCgpKSB7CiAgICAgY29u
c3QgaW5zdGFuY2UgPSBjb21waWxlKHdhc21GaWxlLCBpbXBvcnRPYmplY3QpOwogICAgIGNvbnN0
IHJlc3VsdCA9IGluc3RhbmNlLmV4cG9ydHMuX3BhcnJvdCgxKTsKIAotICAgIGxvYWQoIi4vc2Ft
cGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIpOworICAgIGxvYWQoIi4vc2FtcGxp
bmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKICAg
ICB2YXIgd2FzbUVudHJ5ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIHJldHVybiBpbnN0YW5jZS5l
eHBvcnRzLl9wYXJyb3QoMSk7CiAgICAgfTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3Nh
bXBsaW5nLXByb2ZpbGVyLXdhc20uanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxl
ci13YXNtLmpzCmluZGV4IDdhZDY1ZDFlMmUwMDJiOTllN2ZiMjc4NWQzZmZmNzQyNzJmZTQ4MDMu
LjlmODc3ZDcxOGZkZjJkNGExMGFiOWVmZjFjNjBhNWE2MmJmZTFlNTUgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMKKysrIGIvSlNUZXN0cy9zdHJl
c3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qcwpAQCAtMSw3ICsxLDcgQEAKIC8vQCBydW5EZWZh
dWx0CiAKIGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpICYmICR2bS5pc1dh
c21TdXBwb3J0ZWQoKSkgewotICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQ
cm9maWxlci5qcyIpOworICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9m
aWxlci5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKICAgICBsZXQgYnVmID0gcmVhZCgiLi9zYW1w
bGluZy1wcm9maWxlci9sb29wLndhc20iLCAiYmluYXJ5Iik7CiAgICAgbGV0IG1vZHVsZSA9IG5l
dyBXZWJBc3NlbWJseS5Nb2R1bGUoYnVmKTsKICAgICBsZXQgaW5zdGFuY2UgPSBuZXcgV2ViQXNz
ZW1ibHkuSW5zdGFuY2UobW9kdWxlKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NoYWRv
dy1jaGlja2VuLWRpc2FibGVkLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4tZGlz
YWJsZWQuanMKaW5kZXggYTczMTAwMzE4OGJkNWYzYTEwMDYwZmY1ODdlMDA0ZmIxNDhlZjA0OS4u
YjJjMDVjNDQzZTQ2ZjRlNTVhYWRkZGNhZWU4YmE2ZmIwYjE2MWMwMyAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4tZGlzYWJsZWQuanMKKysrIGIvSlNUZXN0cy9zdHJl
c3Mvc2hhZG93LWNoaWNrZW4tZGlzYWJsZWQuanMKQEAgLTMsNyArMyw3IEBACiAidXNlIHN0cmlj
dCI7CiAKIHZhciB2ZXJib3NlID0gZmFsc2U7Ci1sb2FkKCJyZXNvdXJjZXMvc2hhZG93LWNoaWNr
ZW4tc3VwcG9ydC5qcyIpOworbG9hZCgicmVzb3VyY2VzL3NoYWRvdy1jaGlja2VuLXN1cHBvcnQu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBpbml0aWFsaXplKCk7CiAKIChmdW5jdGlvbiB0ZXN0
MSgpIHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NoYWRvdy1jaGlja2VuLWVuYWJsZWQu
anMgYi9KU1Rlc3RzL3N0cmVzcy9zaGFkb3ctY2hpY2tlbi1lbmFibGVkLmpzCmluZGV4IDE5Y2Y3
M2QwNDAxMTQ2MWJjMGZlNWQ4MzYyYTU0ZDQwZmNhMGRjODAuLmU3ZWJmOWYwYzgxMzQyODRlNGY4
OTRmZGUwMmFjZDRmMDQxZDQzYzcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NoYWRvdy1j
aGlja2VuLWVuYWJsZWQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4tZW5h
YmxlZC5qcwpAQCAtNiw3ICs2LDcgQEAgdmFyIHNoYWRvd0NoaWNrZW5GdW5jdGlvbnNPblN0YWNr
ID0gJHZtLnNoYWRvd0NoaWNrZW5GdW5jdGlvbnNPblN0YWNrOwogCiB2YXIgdmVyYm9zZSA9IGZh
bHNlOwogCi1sb2FkKCJyZXNvdXJjZXMvc2hhZG93LWNoaWNrZW4tc3VwcG9ydC5qcyIpOworbG9h
ZCgicmVzb3VyY2VzL3NoYWRvdy1jaGlja2VuLXN1cHBvcnQuanMiLCAiY2FsbGVyIHJlbGF0aXZl
Iik7CiBpbml0aWFsaXplKCk7CiAKIChmdW5jdGlvbiB0ZXN0MSgpIHsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktY29uc3RydWN0b3IuanMgYi9KU1Rlc3RzL3N0cmVzcy90
eXBlZGFycmF5LWNvbnN0cnVjdG9yLmpzCmluZGV4IDBlOGVhZjc0OTg4MDgyYzRiMTQwYjc1ZjA1
NDMzMTExMjJjZGEyYTYuLmIyNDUzNTYyZjIwZjNhYWU4MGJhZDM4NDA1ZDM2OGQwMjZiZGZkNDUg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktY29uc3RydWN0b3IuanMKKysr
IGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci5qcwpAQCAtMSw0ICsxLDQg
QEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1bmN0
aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci1oZWxw
ZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiBsZXQgVHlwZWRBcnJheSA9
IE9iamVjdC5nZXRQcm90b3R5cGVPZihJbnQzMkFycmF5KTsKIApkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvdHlwZWRhcnJheS1jb3B5V2l0aGluLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1jb3B5V2l0aGluLmpzCmluZGV4IGU1ZTc5YWEwZTYwOTYxYjBhYTRlNTUwMDI3NjQ3ZGVk
MmFhYWRkODkuLjE2OTA4ODU2YWRhYjIzYTJmZmExM2ZkNjE2NDQyM2FlYmZkMjdiYjggMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktY29weVdpdGhpbi5qcworKysgYi9KU1Rl
c3RzL3N0cmVzcy90eXBlZGFycmF5LWNvcHlXaXRoaW4uanMKQEAgLTEsNCArMSw0IEBACi1sb2Fk
KCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9h
ZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2Fs
bGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZp
b3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4gZnVuY3Rpb24iKTsKIAog
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWV2ZXJ5LmpzIGIvSlNUZXN0
cy9zdHJlc3MvdHlwZWRhcnJheS1ldmVyeS5qcwppbmRleCBjNGU5NzljYWI1OGFjZDMxNWYyN2Rh
NDAyZjM0ZjM2OTA3ZDYwYmJkLi4xZDBhYmJkMTdkNGE4MGY5Nzc2ODkyOWUxZjU0NTMwN2JkN2Qz
YjVhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWV2ZXJ5LmpzCisrKyBi
L0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZXZlcnkuanMKQEAgLTEsNCArMSw0IEBACi1sb2Fk
KCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9h
ZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2Fs
bGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhh
dmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuZXZlcnkgZnVuY3Rpb24iCiApOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maWxsLmpzIGIvSlNUZXN0cy9zdHJl
c3MvdHlwZWRhcnJheS1maWxsLmpzCmluZGV4IDc1NWI0NDA0N2NhN2E0NDhkMGE5MzEyYjM1MjJi
M2NiOTgzMDE0YzIuLmZkNTM3ODg0MWQ4ZGU4ODEzODk3NjlhODczMDBiYWU4MzQ5ZThhNjQgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmlsbC5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy90eXBlZGFycmF5LWZpbGwuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291
cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNv
dXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0
aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuZmlsbCBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbHRlci5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVk
YXJyYXktZmlsdGVyLmpzCmluZGV4IDdjZTdiYmY2MzY3OTdiZmRlMTM1MzVhYzRmNDgxODdjNWIw
YTQ1MDYuLjNhMjIzZGY0ZmY3NjY3NDk4N2NhNGYxNjRkYTM0YjEzOTFkNDhiNDAgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmlsdGVyLmpzCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktZmlsdGVyLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJj
ZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3Vy
Y2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2
ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhl
IFR5cGVkQXJyYXkucHJvdG90eXBlLmZpbHRlciBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbmQuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFy
cmF5LWZpbmQuanMKaW5kZXggYjE5MDJjNDVhMGVlODJlNWQwOWFlMmIxNzI1NTNlOGJmOTU5OTJh
ZS4uZTg2MDViMjIxMjA2ZjQzZjhiNGU5M2Y3MGRhYWY3M2UyY2VjNTI4ZCAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maW5kLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5
cGVkYXJyYXktZmluZC5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVk
YXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBl
ZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRl
c2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFy
cmF5LnByb3RvdHlwZS5maW5kIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktZmluZEluZGV4LmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1m
aW5kSW5kZXguanMKaW5kZXggZTAxNWI3YzVhNTI5MTlkYzUyN2FjZjFmMmY4MmFlYjU5ZmUzMWVk
Ny4uOTA4NjIyMjQwMTUyMGY4NTUzYjkzNjY5MTBlMGQwMTM2NmFiMTUxNCAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maW5kSW5kZXguanMKKysrIGIvSlNUZXN0cy9zdHJl
c3MvdHlwZWRhcnJheS1maW5kSW5kZXguanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291
cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNv
dXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0
aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuZmluZEluZGV4IGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZm9yRWFjaC5qcyBiL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktZm9yRWFjaC5qcwppbmRleCAwZDY5ZmZlZDRjNDY0ODE0YWZhMTBhYjBhZmNl
NzdiZTQwMDM3Mzg1Li4yYWNmMjViYzJmMzNhNTgzYjg3MzdkZWRiMDczZDA2MzFmNmI5OGZjIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZvckVhY2guanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1mb3JFYWNoLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgi
Li9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQo
Ii4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxl
ciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZp
b3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLmZvckVhY2ggZnVuY3Rpb24iCiApOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1mcm9tLmpzIGIvSlNUZXN0cy9zdHJl
c3MvdHlwZWRhcnJheS1mcm9tLmpzCmluZGV4IGRiYmZjOGEyZWRmYmRjODc2ZGY0Mzg5ZjA3ZTY5
NjBhMGRjMWY3ZmQuLjJmZmM5YzFlMTA1YTE5M2EzODg3Y2UwMGEyNzg4ZTJlMWY5MThhN2MgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZnJvbS5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy90eXBlZGFycmF5LWZyb20uanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291
cmNlcy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQo
Ii4vcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5qcyIs
ICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhl
IGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LmZyb20gZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1pbmNsdWRlcy5qcyBiL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktaW5jbHVkZXMuanMKaW5kZXggZDZjMDNhZjhkYTJkMzA2NGJhODg5NTQ4OTM3
MWUyYmM4ZGIwNjJiNS4uZTY4MWE0ODM1NzRhYTlmYjkzNTRiZGNjZjFkOWNiZmFiYTc1MzM4NCAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1pbmNsdWRlcy5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWluY2x1ZGVzLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9h
ZCgicmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2Fk
KCJyZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVy
IHJlbGF0aXZlIik7CiAKIGZvciAoY29uc3RydWN0b3Igb2YgdHlwZWRBcnJheXMpIHsKICAgICBs
ZXQgYSA9IG5ldyBjb25zdHJ1Y3RvcigxMCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90
eXBlZGFycmF5LWluZGV4T2YuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWluZGV4T2Yu
anMKaW5kZXggN2RkNWYwMDFhYTZhNDU4ZWUwZTFkMWNmNGMyMzRjNzY2YTUyMTRkYS4uMDMyMWFi
YTU1ZTMxNTgzMDBiNGY2ZGRlZDBkYjAzNjE3ZjE5YmI3ZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9z
dHJlc3MvdHlwZWRhcnJheS1pbmRleE9mLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJy
YXktaW5kZXhPZi5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJy
YXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFy
cmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2Ny
aXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5
LnByb3RvdHlwZS5pbmRleE9mIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktbGFzdEluZGV4T2YuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5
LWxhc3RJbmRleE9mLmpzCmluZGV4IGM3NDAwNDMyNDJjMDY3ZThhZGIxZmQ5NjJjYzQxYWE2MWYz
Y2Y2MDUuLjNiYTZjZWM1MjAxZTA0YmMyMjdmYWNhNmMxMzE3YTcyYjNiM2QxNjUgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktbGFzdEluZGV4T2YuanMKKysrIGIvSlNUZXN0
cy9zdHJlc3MvdHlwZWRhcnJheS1sYXN0SW5kZXhPZi5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQo
Ii4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2Fk
KCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2
aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiBmdW5jdGlvbiIKICk7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LW1hcC5qcyBiL0pTVGVzdHMv
c3RyZXNzL3R5cGVkYXJyYXktbWFwLmpzCmluZGV4IDhkYWQyMjJjY2Y1MDE5YTNhZjA5Mzg2NmFm
OTNhZGQ2N2MwNjVjMTIuLjlhMTZhZjMyYTE0NDU1MWJkOGM0MTExMDg5NWVmNGYxOGZlZjEyOTYg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktbWFwLmpzCisrKyBiL0pTVGVz
dHMvc3RyZXNzL3R5cGVkYXJyYXktbWFwLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNv
dXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVz
b3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxh
dGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2Yg
dGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLm1hcCBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LW9mLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJh
eS1vZi5qcwppbmRleCAwZTg1MmRkOGM4Y2FmYzgzZDBiMzg5MGE2YjNiNDQ0MTYyODY4ODBlLi4z
Njc0MzI3YTRkODk3OTNhMzIxZWIyYjBjNjRiMGViMzJmOGFjMDZiIDEwMDY0NAotLS0gYS9KU1Rl
c3RzL3N0cmVzcy90eXBlZGFycmF5LW9mLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJy
YXktb2YuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LWNv
bnN0cnVjdG9yLWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVk
YXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUi
KTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBU
eXBlZEFycmF5Lm9mIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5
cGVkYXJyYXktcmVkdWNlLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1yZWR1Y2UuanMK
aW5kZXggMzlhNmRhMzFhNDZlZDhiNzNlMmYwNTcwZDIzNDkwMTRmNDBhMGU1Ni4uZTE5ZTUwNGUx
ZTYxNzczOGJmY2NlOGFhOGE2MWUyNDQzMTM3ODc2NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJl
c3MvdHlwZWRhcnJheS1yZWR1Y2UuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1y
ZWR1Y2UuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRl
c3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10
ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlv
bigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90
b3R5cGUucmVkdWNlIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5
cGVkYXJyYXktcmVkdWNlUmlnaHQuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXJlZHVj
ZVJpZ2h0LmpzCmluZGV4IGQ1ZGIzYzdiNmUzMmQ4YzQzNDMwN2FiZTcxYjhiMDFmOWE0NTkxOTEu
LjhmOGJkYmU3ZWE0YjNmMWQ1NDg0ZWUxZDkyYWNjOWFmZTE2ZThmZDUgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktcmVkdWNlUmlnaHQuanMKKysrIGIvSlNUZXN0cy9zdHJl
c3MvdHlwZWRhcnJheS1yZWR1Y2VSaWdodC5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVz
b3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jl
c291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVs
YXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9m
IHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCBmdW5jdGlvbiIKICk7CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNldC5qcyBiL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktc2V0LmpzCmluZGV4IGZhYzVmYzdjZWRkYzIxOTFjNzQyOTRjYzRjZTE4ZjI3
YmNlNmM1OGEuLmQ4MmU1OTg3NzZjOGMwYzliZGM4MDZkMGQ1NGVkYjlkNzA5NmU3NDggMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc2V0LmpzCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktc2V0LmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMv
dHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2Vz
L3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBl
ZEFycmF5LnByb3RvdHlwZS5zZXQgZnVuY3Rpb24iKTsKIAogc2hvdWxkQmUoIkludDMyQXJyYXku
cHJvdG90eXBlLnNldC5sZW5ndGgiLCAiMSIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
dHlwZWRhcnJheS1zbGljZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc2xpY2UuanMK
aW5kZXggZmJjYjFmOGIxNWQ0ZDgwODRmZGU2NDUwMWVhN2Y1MGM0ZTVhNDg5ZS4uOTVkZWQwMzk0
ZWMxMTRiYzkyOWU1YTY1ZTRjODNhZjVkOWNmYzU5MSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJl
c3MvdHlwZWRhcnJheS1zbGljZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNs
aWNlLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0
LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVz
dC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24o
CiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90
eXBlLnNsaWNlIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVk
YXJyYXktc29tZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc29tZS5qcwppbmRleCAw
MTNjNDk2ODUyZGE0YzFkMjY4MzRlZGQ1MGM0MGQ2NzBlYzNlYzVhLi5jMzhhMjg5YzY3NGYyZDlm
NWUxNDU4OTA2ZjM5ODgzOGEwOTczMmY4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBl
ZGFycmF5LXNvbWUuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zb21lLmpzCkBA
IC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1m
dW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXIt
ZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0
ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBlLnNvbWUg
ZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zb3J0
LmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zb3J0LmpzCmluZGV4IDY5NDFlMGFkMjll
NDBmYzdkNTk3MzExYmYzZDE5MGE0N2FhZGI0NGUuLmYzNjMxMjcyMjNhZTlhZjA2NDY1M2QwNWQ3
ZTZjYzZmNGU3NGViYzggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc29y
dC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNvcnQuanMKQEAgLTEsNCArMSw0
IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5q
cyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tz
IHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuc29ydCBmdW5jdGlvbiIK
ICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXN1YmFycmF5LmpzIGIv
SlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zdWJhcnJheS5qcwppbmRleCA4ZjMyOTVmMDFmNTIx
MjliMmI4MzUxMmQyN2E0MGU4NmM3ZGU5OGY2Li4zMGJhMjU1Yzg1ODdjNTUyZjBjMzQyNzVhODAy
YTE1YTRhMWQyZTkxIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXN1YmFy
cmF5LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc3ViYXJyYXkuanMKQEAgLTEs
NCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0
aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5j
dGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3Qg
Y2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuc3ViYXJyYXkg
ZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL0J1aWxkZXIuanMgYi9KU1Rl
c3RzL3dhc20vQnVpbGRlci5qcwppbmRleCA5NzYzNzdmN2IzZDkxM2Q0YjhkYjFmOGE3NTk2ZTcz
ZDI3OTFjYjQ3Li5jNzg4M2Y0ZjQzNWRjNWRmNDEyNDYwMzYzYTgzZjgyNDY5ZTFiZThjIDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3dhc20vQnVpbGRlci5qcworKysgYi9KU1Rlc3RzL3dhc20vQnVpbGRl
ci5qcwpAQCAtMjMsMTEgKzIzLDExIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLWltcG9ydCAq
IGFzIGFzc2VydCBmcm9tICdhc3NlcnQuanMnOwotaW1wb3J0ICogYXMgQnVpbGRXZWJBc3NlbWJs
eSBmcm9tICdCdWlsZGVyX1dlYkFzc2VtYmx5QmluYXJ5LmpzJzsKLWltcG9ydCAqIGFzIExMQiBm
cm9tICdMb3dMZXZlbEJpbmFyeS5qcyc7Ci1pbXBvcnQgKiBhcyBXQVNNIGZyb20gJ1dBU00uanMn
OwotaW1wb3J0ICogYXMgdXRpbCBmcm9tICd1dGlsaXRpZXMuanMnOworaW1wb3J0ICogYXMgYXNz
ZXJ0IGZyb20gJy4vYXNzZXJ0LmpzJzsKK2ltcG9ydCAqIGFzIEJ1aWxkV2ViQXNzZW1ibHkgZnJv
bSAnLi9CdWlsZGVyX1dlYkFzc2VtYmx5QmluYXJ5LmpzJzsKK2ltcG9ydCAqIGFzIExMQiBmcm9t
ICcuL0xvd0xldmVsQmluYXJ5LmpzJzsKK2ltcG9ydCAqIGFzIFdBU00gZnJvbSAnLi9XQVNNLmpz
JzsKK2ltcG9ydCAqIGFzIHV0aWwgZnJvbSAnLi91dGlsaXRpZXMuanMnOwogCiBjb25zdCBfaXNW
YWxpZFZhbHVlID0gKHZhbHVlLCB0eXBlKSA9PiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3dhc20vQnVpbGRlcl9XZWJBc3NlbWJseUJpbmFyeS5qcyBiL0pTVGVz
dHMvd2FzbS9CdWlsZGVyX1dlYkFzc2VtYmx5QmluYXJ5LmpzCmluZGV4IDg2MzM4ZDM0NWRjODk5
NmQxM2E0MDAxMmIzNWQ1NDE3MjlhZTY1ZGEuLjEzYzU4NjIyMWUzNmI5NWM1YmUzMjJhM2M2MzY5
MTI2MTg5Mzc3MjcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9CdWlsZGVyX1dlYkFzc2VtYmx5
QmluYXJ5LmpzCisrKyBiL0pTVGVzdHMvd2FzbS9CdWlsZGVyX1dlYkFzc2VtYmx5QmluYXJ5Lmpz
CkBAIC0yMyw5ICsyMyw5IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLWltcG9ydCAqIGFzIGFz
c2VydCBmcm9tICdhc3NlcnQuanMnOwotaW1wb3J0IExvd0xldmVsQmluYXJ5IGZyb20gJ0xvd0xl
dmVsQmluYXJ5LmpzJzsKLWltcG9ydCAqIGFzIFdBU00gZnJvbSAnV0FTTS5qcyc7CitpbXBvcnQg
KiBhcyBhc3NlcnQgZnJvbSAnLi9hc3NlcnQuanMnOworaW1wb3J0IExvd0xldmVsQmluYXJ5IGZy
b20gJy4vTG93TGV2ZWxCaW5hcnkuanMnOworaW1wb3J0ICogYXMgV0FTTSBmcm9tICcuL1dBU00u
anMnOwogCiBjb25zdCBwdXQgPSAoYmluLCB0eXBlLCB2YWx1ZSkgPT4gYmluW3R5cGVdKHZhbHVl
KTsKIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL0xvd0xldmVsQmluYXJ5LmpzIGIvSlNUZXN0
cy93YXNtL0xvd0xldmVsQmluYXJ5LmpzCmluZGV4IGY5YmM4YTM3MDY1NzRhZDQ0NTNhMTBlOTFh
OTRmMmMxMTI1MDc4NzYuLmVkYzBiZWNmZGUzYTNiMzk3M2RkYzg3ZTcxMGU3Mzc1NTFhNWZiNTMg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9Mb3dMZXZlbEJpbmFyeS5qcworKysgYi9KU1Rlc3Rz
L3dhc20vTG93TGV2ZWxCaW5hcnkuanMKQEAgLTIzLDggKzIzLDggQEAKICAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydC5qcyc7Ci1pbXBvcnQgKiBh
cyBXQVNNIGZyb20gJ1dBU00uanMnOworaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJy4vYXNzZXJ0
LmpzJzsKK2ltcG9ydCAqIGFzIFdBU00gZnJvbSAnLi9XQVNNLmpzJzsKIAogY29uc3QgX2luaXRp
YWxBbGxvY2F0aW9uU2l6ZSA9IDEwMjQ7CiBjb25zdCBfZ3Jvd0FsbG9jYXRpb25TaXplID0gYWxs
b2NhdGVkID0+IGFsbG9jYXRlZCAqIDI7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vUkVBRE1F
Lm1kIGIvSlNUZXN0cy93YXNtL1JFQURNRS5tZAppbmRleCAwNjUxNTc1NWZiNjJkMTQ3ZWQzNTM4
MGU1MzJjMDM3MmQyOTYxYzk4Li4yNTU4OWMxMjFiNWYxYWZlMDEzZjcwYmY2MzMxMTExMzQ0MWQ4
ODhjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vUkVBRE1FLm1kCisrKyBiL0pTVGVzdHMvd2Fz
bS9SRUFETUUubWQKQEAgLTI5LDcgKzI5LDcgQEAgY3JlYXRlIGEgc2NvcGUgY2FuIGJlIG5lc3Rl
ZCB1c2luZyBhIGxhbWJkYS4KIEEgc2ltcGxlIGV4YW1wbGU6CiAKIGBgYGphdmFzY3JpcHQKLWlt
cG9ydCBCdWlsZGVyIGZyb20gJ0J1aWxkZXIuanMnOworaW1wb3J0IEJ1aWxkZXIgZnJvbSAnLi9C
dWlsZGVyLmpzJzsKIAogY29uc3QgYnVpbGRlciA9IG5ldyBCdWlsZGVyKCk7CiAKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvd2FzbS9XQVNNLmpzIGIvSlNUZXN0cy93YXNtL1dBU00uanMKaW5kZXggM2M5
ZGY2ODcxNGEyYTQyZjgxN2JlZWIxYjllNmZhOGEyZWI0ZmRlNy4uMDk3NTU2Y2NlNjlmNmQ1OTgx
OGFlOThiMDhkYmQwNWUxMTZiNWU5NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL1dBU00uanMK
KysrIGIvSlNUZXN0cy93YXNtL1dBU00uanMKQEAgLTIzLDcgKzIzLDcgQEAKICAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIAotaW1wb3J0ICogYXMgdXRpbGl0aWVzIGZyb20gJ3V0aWxpdGllcy5qcyc7Citp
bXBvcnQgKiBhcyB1dGlsaXRpZXMgZnJvbSAnLi91dGlsaXRpZXMuanMnOwogCiBjb25zdCBfbWFw
VmFsdWVzID0gZnJvbSA9PiB7CiAgICAgbGV0IHZhbHVlcyA9IHt9OwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy93YXNtL3JlZ3Jlc3Mvc2VsZWN0ZjY0LmpzIGIvSlNUZXN0cy93YXNtL3JlZ3Jlc3Mvc2Vs
ZWN0ZjY0LmpzCmluZGV4IGRkNDk2Yzk4OWE1YWUxZmEzMTUxZWFmNzdiNmQ5NzhkNzYwMTM1MTcu
LjBhNDBjZGI4OGYzMzU2N2VkMzU2YTFkYWUxYTgwNTNiOTY2YzM5M2UgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvd2FzbS9yZWdyZXNzL3NlbGVjdGY2NC5qcworKysgYi9KU1Rlc3RzL3dhc20vcmVncmVz
cy9zZWxlY3RmNjQuanMKQEAgLTEsNCArMSw0IEBACi1pbXBvcnQgeyB0ZXN0IH0gZnJvbSAnc2Vs
ZWN0ZjY0Lndhc20nCitpbXBvcnQgeyB0ZXN0IH0gZnJvbSAnLi9zZWxlY3RmNjQud2FzbScKIGlt
cG9ydCAqIGFzIGFzc2VydCBmcm9tICcuLi9hc3NlcnQuanMnOwogCiBhc3NlcnQuZXEodGVzdCgp
LCA0MykKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9zcGVjLWhhcm5lc3MuanMgYi9KU1Rlc3Rz
L3dhc20vc3BlYy1oYXJuZXNzLmpzCmluZGV4IGNiNzkyMzQ4YzA5ZDc1Y2IwNmY1MzQwNTc4NjE5
ZDY1NjAwYWY3ODEuLjMzMDk0YWI5MTkxNTZhOTg2MDU3M2NiY2VkNjZiZjRjOTFlZDJlZTAgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9zcGVjLWhhcm5lc3MuanMKKysrIGIvSlNUZXN0cy93YXNt
L3NwZWMtaGFybmVzcy5qcwpAQCAtMiw5ICsyLDkgQEAKIAogLy8gVGhpcyBpcyBvdXIgbmlmdHkg
d2F5IHRvIG1ha2UgbW9kdWxlcyBzeW5jaHJvbm91cy4KIGxldCBhc3NlcnQ7Ci1pbXBvcnQoJ2Fz
c2VydC5qcycpLnRoZW4oKG1vZHVsZSkgPT4geworaW1wb3J0KCcuL2Fzc2VydC5qcycpLnRoZW4o
KG1vZHVsZSkgPT4gewogICAgIGFzc2VydCA9IG1vZHVsZTsKLX0pOworfSwgJHZtLmNyYXNoKTsK
IGRyYWluTWljcm90YXNrcygpOwogCiBmdW5jdGlvbiB0ZXN0KGZ1bmMsIGRlc2NyaXB0aW9uKSB7
CkBAIC0zMyw3ICszMyw2IEBAIGxldCBjb25zb2xlID0gewogICAgIH0KIH07CiAKLS8vIFRoaXMg
aXMgcnVuIGZyb20gdGhlIHNwZWMtdGVzdHMgZGlyZWN0b3J5Ci1sb2FkKCIuLi9zcGVjLWhhcm5l
c3Mvc3luY19pbmRleC5qcyIpOwotbG9hZCgiLi4vc3BlYy1oYXJuZXNzL3dhc20tY29uc3RhbnRz
LmpzIik7Ci1sb2FkKCIuLi9zcGVjLWhhcm5lc3Mvd2FzbS1tb2R1bGUtYnVpbGRlci5qcyIpOwor
bG9hZCgiLi9zcGVjLWhhcm5lc3Mvc3luY19pbmRleC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsK
K2xvYWQoIi4vc3BlYy1oYXJuZXNzL3dhc20tY29uc3RhbnRzLmpzIiwgImNhbGxlciByZWxhdGl2
ZSIpOworbG9hZCgiLi9zcGVjLWhhcm5lc3Mvd2FzbS1tb2R1bGUtYnVpbGRlci5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404152</attachid>
            <date>2020-07-13 09:57:26 -0700</date>
            <delta_ts>2020-07-13 10:35:42 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-214205-20200713095725.patch</filename>
            <type>text/plain</type>
            <size>170492</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MzAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YmJlNjgzMTdmYmI4ZjRkYTY4N2ZhMDkwMGJiNmViZTU0ZGY2YjIxLi4xMjM1NmM3MTJkMDExNGY3
ZjUwZWM0YzRkYTA2YmI0MzhjMjkzYTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMjAgQEAKKzIwMjAtMDctMTMgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgU291cmNlUHJvdmlkZXIgYW5kIGFkZCBjYWxsZXIg
cmVsYXRpdmUgbG9hZCBzY3JpcHQgdG8ganNjLmNwcAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MjA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVz
dWtlIFN1enVraS4KKworICAgICAgICBUaGlzIHBhdGNoIG9yaWdpbmFsbHkgd2FzIGp1c3QgdG8g
YWRkIGFuIG9wdGlvbmFsIHBhcmFtZXRlciB0byBvdXIKKyAgICAgICAgbG9hZCBmdW5jdGlvbiBz
byB0aGF0IGFueSByZWxhdGl2ZSBwYXRoIGlzIGNvbXB1dGVkIHdpdGggcmVzcGVjdAorICAgICAg
ICB0byBjYWxsaW5nIHNjcmlwdC4gIFJhdGhlciB0aGFuIGNvbXB1dGluZyB0aGUgcGF0aCByZWxh
dGl2ZSB0byB0aGUKKyAgICAgICAgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4gVGhlIG1haW4g
YWR2YW50YWdlIG9mIHRoaXMgaXMgbm93IHlvdQorICAgICAgICBjYW4gcnVuIGFsbCB0aGUgSlNU
ZXN0cy9zdHJlc3Mgc2NyaXB0cyBmcm9tIGFueXdoZXJlIHJhdGhlciB0aGFuCisgICAgICAgIG9u
bHkgZnJvbSB0aGUgc3RyZXNzIGRpcmVjdG9yeS4gVGhpcyBhbHNvIG1hdGNoZXMganNjLmNwcCdz
IG1vZHVsZQorICAgICAgICBsb2FkZXIgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgVG8gbWFr
ZSB0aGlzIHBvc3NpYmxlIGEgc3VycHJpc2luZyBudW1iZXIgb2YgY2hhbmdlcyB3ZXJlCisgICAg
ICAgIG5lZWRlZC4gU3BlY2lmaWNhbGx5LCBpdCB3YXMgbXVjaCBlYXNpZXIgdG8gZ2V0IHRoaXMg
dG8gd29yayBpZiB3ZQorICAgICAgICBjb252ZXJ0ZWQgU291cmNlT3JpZ2luJ3MgdXJsIHRvIGEg
V1RGOjpVUkwgcmF0aGVyIHRoYW4ganVzdCBhCisgICAgICAgIFdURjo6U3RyaW5nLiBBdCB0aGUg
c2FtZSB0aW1lIGl0IGJlY2FtZSBjbGVhciB0aGF0CisgICAgICAgIFNvdXJjZVByb3ZpZGVyJ3Mg
bV9zb3VyY2VVUkwgaXMgcmVhbGx5IG5vdCBhIFVSTCBidXQgbW9yZSBvZiBhCisgICAgICAgIGZp
bGUgbmFtZSwgd2hpY2ggY2FuIHNvbWV0aW1lcyBiZSBhIFVSTC4gSXQncyBwb3NzaWJsZSB0aGF0
IHdlCisgICAgICAgIGRvbid0IG5lZWQgbV9zb3VyY2VVUkwgYXQgYWxsIGJ1dCB3ZSBzaG91bGQg
ZG8gdGhhdCBpbiBhIGRpZmZlcmVudAorICAgICAgICBwYXRjaC4KKworICAgICAgICBBZGRpdGlv
bmFsbHksIGpzYy5jcHAgbm93IHVzZXMgV1RGOjpVUkwgZm9yIGhhbmRsaW5nIGZpbGUKKyAgICAg
ICAgcGF0aHMuIFRoaXMgaXMgY2xlYW5lciB0aGFuIG1hbmFnaW5nIHRyeWluZyB0byBkbyBpdCBv
dXJzZWx2ZXMgYW5kCisgICAgICAgIHNob3VsZCB3b3JrIGFjcm9zcyBhbGwgdGhlIHBvcnRzLgor
CisgICAgICAgIExhc3RseSwgdGhlIEpTQyBDTEkgbm8gbG9uZ2VyIGFjY2VwdHMgImJhcmUtbmFt
ZSIKKyAgICAgICAgc3BlY2lmaWVycy4gaS5lLiBhbGwgc3BlY2lmaWVycyBtdXN0IHN0YXJ0IHdp
dGggIi8iLCAiLi8iLCBvcgorICAgICAgICAiLi4vIi4gVGhpcyBtYXRjaGVzIHdoYXQgd2UgZG8g
aW4gb3VyIE9iai1DIEFQSSBhbmQgaW4KKyAgICAgICAgV2ViQ29yZS4gV2hpbGUgZml4aW5nIHRl
c3RzIEkgYWxzbyBub3RpY2VkIHRoYXQgdGhlIGVycm9yIG1lc3NhZ2UKKyAgICAgICAgd2FzIGFs
bW9zdCB1c2VsZXNzIHNpbmNlIGl0IGRpZG4ndCB0ZWxsIHlvdSB3aGF0IHRoZSBzcGVjaWZpZXIg
b3IKKyAgICAgICAgcmVmZXJyZXIgaW4gcXVlc3Rpb24gc28gdGhhdCBpbmZvcm1hdGlvbiBpcyBu
b3cgcGFydCBvZiB0aGUgdXNlcgorICAgICAgICB2aXNpYmxlIGVycm9yLgorCisgICAgICAgICog
QVBJL0pTQVBJR2xvYmFsT2JqZWN0Lm1tOgorICAgICAgICAoSlNDOjpjb21wdXRlVmFsaWRJbXBv
cnRTcGVjaWZpZXIpOgorICAgICAgICAoSlNDOjpKU0FQSUdsb2JhbE9iamVjdDo6bW9kdWxlTG9h
ZGVySW1wb3J0TW9kdWxlKToKKyAgICAgICAgKiBBUEkvSlNCYXNlLmNwcDoKKyAgICAgICAgKEpT
RXZhbHVhdGVTY3JpcHQpOgorICAgICAgICAoSlNDaGVja1NjcmlwdFN5bnRheCk6CisgICAgICAg
ICogQVBJL0pTT2JqZWN0UmVmLmNwcDoKKyAgICAgICAgKEpTT2JqZWN0TWFrZUZ1bmN0aW9uKToK
KyAgICAgICAgKiBBUEkvSlNTY3JpcHQubW06CisgICAgICAgICgtW0pTU2NyaXB0IHNvdXJjZUNv
ZGVdKToKKyAgICAgICAgKiBBUEkvSlNTY3JpcHRSZWYuY3BwOgorICAgICAgICAqIEFQSS9nbGli
L0pTQ0NvbnRleHQuY3BwOgorICAgICAgICAoanNjX2NvbnRleHRfY2hlY2tfc3ludGF4KToKKyAg
ICAgICAgKiBidWlsdGlucy9CdWlsdGluRXhlY3V0YWJsZXMuY3BwOgorICAgICAgICAoSlNDOjpC
dWlsdGluRXhlY3V0YWJsZXM6OkJ1aWx0aW5FeGVjdXRhYmxlcyk6CisgICAgICAgICogZGVidWdn
ZXIvRGVidWdnZXJMb2NhdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyTG9jYXRpb246
OkRlYnVnZ2VyTG9jYXRpb24pOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24u
aDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXJMb2NhdGlvbjo6RGVidWdnZXJMb2NhdGlvbik6Cisg
ICAgICAgICogaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKEluc3Bl
Y3Rvcjo6U2NyaXB0RGVidWdTZXJ2ZXI6OnNvdXJjZVBhcnNlZCk6CisgICAgICAgICoganNjLmNw
cDoKKyAgICAgICAgKGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KToKKyAgICAgICAgKGFic29sdXRl
UGF0aCk6CisgICAgICAgIChHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1vZHVsZSk6
CisgICAgICAgIChHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlclJlc29sdmUpOgorICAgICAgICAo
anNjU291cmNlKToKKyAgICAgICAgKGZldGNoTW9kdWxlRnJvbUxvY2FsRmlsZVN5c3RlbSk6Cisg
ICAgICAgIChHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckZldGNoKToKKyAgICAgICAgKGZ1bmN0
aW9uTG9hZCk6CisgICAgICAgIChmdW5jdGlvbkNhbGxlclNvdXJjZU9yaWdpbik6CisgICAgICAg
IChmdW5jdGlvbkRvbGxhckFnZW50U3RhcnQpOgorICAgICAgICAoZnVuY3Rpb25DaGVja01vZHVs
ZVN5bnRheCk6CisgICAgICAgIChydW5XaXRoT3B0aW9ucyk6CisgICAgICAgIChydW5JbnRlcmFj
dGl2ZSk6CisgICAgICAgIChNb2R1bGVOYW1lOjpzdGFydHNXaXRoUm9vdCBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChNb2R1bGVOYW1lOjpNb2R1bGVOYW1lKTogRGVsZXRlZC4KKyAgICAgICAg
KGV4dHJhY3REaXJlY3RvcnlOYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKHJlc29sdmVQYXRoKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYXJzZXIvTm9kZXMuaDoKKyAgICAgICAgKEpTQzo6U2NvcGVO
b2RlOjpzb3VyY2UgY29uc3QpOgorICAgICAgICAoSlNDOjpTY29wZU5vZGU6OnNvdXJjZVVSTCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGFyc2VyL1NvdXJjZUNvZGUuaDoKKyAgICAgICAg
KEpTQzo6bWFrZVNvdXJjZSk6CisgICAgICAgICogcGFyc2VyL1NvdXJjZUNvZGVLZXkuaDoKKyAg
ICAgICAgKEpTQzo6U291cmNlQ29kZUtleTo6aG9zdCBjb25zdCk6CisgICAgICAgICogcGFyc2Vy
L1NvdXJjZVByb3ZpZGVyLmNwcDoKKyAgICAgICAgKEpTQzo6U291cmNlUHJvdmlkZXI6OlNvdXJj
ZVByb3ZpZGVyKToKKyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlkZXIuaDoKKyAgICAgICAg
KEpTQzo6U291cmNlUHJvdmlkZXI6OnNvdXJjZVVSTCBjb25zdCk6CisgICAgICAgIChKU0M6OlN0
cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpTdHJpbmdTb3VyY2VQ
cm92aWRlcjo6U3RyaW5nU291cmNlUHJvdmlkZXIpOgorICAgICAgICAoSlNDOjpTb3VyY2VQcm92
aWRlcjo6dXJsIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0NhY2hlZFR5cGVz
LmNwcDoKKyAgICAgICAgKEpTQzo6Q2FjaGVkU291cmNlT3JpZ2luOjplbmNvZGUpOgorICAgICAg
ICAoSlNDOjpDYWNoZWRTb3VyY2VPcmlnaW46OmRlY29kZSBjb25zdCk6CisgICAgICAgIChKU0M6
OkNhY2hlZFNvdXJjZVByb3ZpZGVyU2hhcGU6OmVuY29kZSk6CisgICAgICAgIChKU0M6OkNhY2hl
ZFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpkZWNvZGUgY29uc3QpOgorICAgICAgICAoSlNDOjpDYWNo
ZWRXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyOjpkZWNvZGUgY29uc3QpOgorICAgICAgICAqIHJ1
bnRpbWUvRXJyb3IuY3BwOgorICAgICAgICAoSlNDOjphZGRFcnJvckluZm8pOgorICAgICAgICAq
IHJ1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OmNvbnN0cnVj
dEZ1bmN0aW9uU2tpcHBpbmdFdmFsRW5hYmxlZENoZWNrKToKKyAgICAgICAgKiBydW50aW1lL1Nj
cmlwdEV4ZWN1dGFibGUuaDoKKyAgICAgICAgKEpTQzo6U2NyaXB0RXhlY3V0YWJsZTo6c291cmNl
VVJMIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL1NvdXJjZU9yaWdpbi5oOgorICAgICAgICAo
SlNDOjpTb3VyY2VPcmlnaW46OlNvdXJjZU9yaWdpbik6CisgICAgICAgIChKU0M6OlNvdXJjZU9y
aWdpbjo6dXJsIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U291cmNlT3JpZ2luOjpzdHJpbmcgY29u
c3QpOgorICAgICAgICAoSlNDOjpTb3VyY2VPcmlnaW46OmlzTnVsbCBjb25zdCk6CisgICAgICAg
ICogcnVudGltZS9UaHJvd1Njb3BlLmNwcDoKKyAgICAgICAgKEpTQzo6VGhyb3dTY29wZTo6dGhy
b3dFeGNlcHRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvVGhyb3dTY29wZS5oOgorICAgICAgICAo
SlNDOjpUaHJvd1Njb3BlOjp0aHJvd0V4Y2VwdGlvbik6CisgICAgICAgIChKU0M6OnRocm93Vk1F
eGNlcHRpb24pOgorICAgICAgICAqIHRvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcDoKKyAgICAg
ICAgKEpTQzo6aW5pdGlhbGl6ZU92ZXJyaWRlSW5mbyk6CisgICAgICAgICogdG9vbHMvSlNEb2xs
YXJWTS5jcHA6CisgICAgICAgIChKU0M6OmRvUHJpbnQpOgorICAgICAgICAoSlNDOjpmdW5jdGlv
bkNyYXNoKToKKwogMjAyMC0wNy0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgogCiAgICAgICAgIFtKU0NdIFN0cmluZy5wcm90b3l0cGUudG9Mb2NhbGVMb3dlckNhc2UncyBh
dmFpbGFibGVMb2NhbGVzIEhhc2hTZXQgaXMgaW5lZmZpY2llbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggODk0ODQxMzIwNjNi
YTI5ZWNkMTc0NTgzMzNmMWQ3NjcyNTZjNWYyNS4uZGYxYmY0NzJkNmVlYTFhZmQ3ZDYwODAxNTQ4
MWU2MTg5NjBmNGE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0wNy0xMyAgS2VpdGggTWls
bGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBDbGVhbiB1cCBTb3VyY2VQ
cm92aWRlciBhbmQgYWRkIGNhbGxlciByZWxhdGl2ZSBsb2FkIHNjcmlwdCB0byBqc2MuY3BwCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyMDUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpLgorCisgICAgICAgIFVzaW5nIGEgVVJM
IGFzIGEgYm9vbGVhbiBpbiBhIGNvbmRpdGlvbmFsIHNob3VsZCBiZSBhIGNvbXBpbGUKKyAgICAg
ICAgZXJyb3IuICBDdXJyZW50bHksIGl0ICJ3b3JrcyIgYmVjYXVzZSBpdCBhY3R1YWxseSBjYWxs
cyBgb3BlcmF0b3IKKyAgICAgICAgTlNVUkwqKClgLi4uIHdoaWNoIGlzIGxpa2VseSBOT1Qgd2hh
dCB5b3Ugd2FudGVkLiBVbnRpbCB3ZSBkZWNpZGUKKyAgICAgICAgd2hhdCBpdCBtZWFucyB0byBo
YXZlIGEgVVJMIGluIGEgY29uZGl0aW9uYWwgaXQgd2lsbCBiZSBhIGNvbXBpbGUKKyAgICAgICAg
ZXJyb3IuCisKKyAgICAgICAgKiB3dGYvVVJMLmNwcDoKKyAgICAgICAgKFdURjo6VVJMOjpmaWxl
U3lzdGVtUGF0aCBjb25zdCk6CisgICAgICAgICogd3RmL1VSTC5oOgorCiAyMDIwLTA3LTEyICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gU3RyaW5n
LnByb3RveXRwZS50b0xvY2FsZUxvd2VyQ2FzZSdzIGF2YWlsYWJsZUxvY2FsZXMgSGFzaFNldCBp
cyBpbmVmZmljaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU4Y2YwMmQ4NGRkNzQyMjExMTU5YmQ0YmNhNDc4
ZjU3OTZiMGVjM2IuLjJkZDU4YjA1N2FkOTkxMjc5ZjZhOTUxN2I0MTYyODMxNDRlMmM3OTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMC0wNy0xMyAgS2VpdGggTWlsbGVyICA8a2Vp
dGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBDbGVhbiB1cCBTb3VyY2VQcm92aWRlciBh
bmQgYWRkIGNhbGxlciByZWxhdGl2ZSBsb2FkIHNjcmlwdCB0byBqc2MuY3BwCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyMDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpLgorCisgICAgICAgIFJlZmFjdG9yIFdlYkNvcmUgPC0+
IEpTQyBiaW5kaW5nIGxheWVyIG5vdyB0aGF0IEpTQyB1c2VzIFdURjo6VVJMcworICAgICAgICBm
b3IgU291cmNlT3JpZ2lucy4KKworICAgICAgICBBbHNvLCBpbXByb3ZlIG1vZHVsZSBsb2FkaW5n
IGVycm9yIG1lc3NhZ2VzIHRvIGluY2x1ZGUgdGhlCisgICAgICAgIHNwZWNpZmllciBhbmQgcmVm
ZXJyZXIgd2hlbiBwcm9kdWNpbmcgZXJyb3JzIGFyb3VuZCBiYXJlLW5hbWUKKyAgICAgICAgc3Bl
Y2lmaWVycy4KKworICAgICAgICBOZXcgZXJyb3IgbWVzc2FnZSBiZWhhdmlvciBpcyBhbHJlYWR5
IHRlc3RlZCBzbyBleGlzdGluZyB0ZXN0cworICAgICAgICBoYXZlIGJlZW4gdXBkYXRlZC4KKwor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcjo6Q2FjaGVkU2NyaXB0U291
cmNlUHJvdmlkZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
RXZlbnRMaXN0ZW5lcjo6c291cmNlVVJMIGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0xhenlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTGF6eUV2ZW50TGlz
dGVuZXI6OkpTTGF6eUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNMYXp5RXZl
bnRMaXN0ZW5lcjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNMYXp5RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0xhenlFdmVudExpc3RlbmVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZUlu
V29ybGQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1
bGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6Y2FsbEluV29ybGQpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdENvbnRyb2xsZXI6OnNvdXJjZVVSTCBjb25zdCk6CisgICAgICAgICogYmluZGlu
Z3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlc29sdmVN
b2R1bGVTcGVjaWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6cmVqZWN0UHJvbWlzZSk6CisgICAg
ICAgICogYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0U291cmNlQ29kZTo6U2NyaXB0U291cmNlQ29kZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRTb3VyY2VDb2RlOjp1cmwgY29uc3QpOgorCiAyMDIwLTA3LTEzICBBbGljaWEgQm95YSBH
YXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbTVNFXVtHU3RyZWFtZXJdIERp
c2NhcmQgUFRTLWxlc3Mgc2FtcGxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGEz
M2NkYzYxMmYwZmZkMzgwZmU2ZDIyM2QzZTMwODFiZjBkNWY1MTAuLmUzMjRlZjQyNWI1ZTI2Yjcx
YTQ4Y2RjNGFiYzYzNmI2NWY1MmI2ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAyMC0wNy0xMyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFw
cGxlLmNvbT4KKworICAgICAgICBDbGVhbiB1cCBTb3VyY2VQcm92aWRlciBhbmQgYWRkIGNhbGxl
ciByZWxhdGl2ZSBsb2FkIHNjcmlwdCB0byBqc2MuY3BwCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyMDUKKworICAgICAgICBSZXZpZXdlZCBieSBZ
dXN1a2UgU3V6dWtpLgorCisgICAgICAgIFVzZSB0aGUgc291cmNlIG9yaWdpbidzIFVSTCBmb3Ig
dGhlIGRlYnVnZ2VyIHNpbmNlIGl0J3MgdGhlIHRydWUgVVJMIGZvciB0aGUgc2NyaXB0LgorCisg
ICAgICAgICogV2ViVmlldy9XZWJTY3JpcHREZWJ1Z2dlci5tbToKKyAgICAgICAgKFdlYlNjcmlw
dERlYnVnZ2VyOjpzb3VyY2VQYXJzZWQpOgorCiAyMDIwLTA3LTA4ICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgbGl2ZSByYW5nZXMgZnJvbSBEb2N1bWVu
dC5oLCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmgsIERpY3Rpb25hcnlMb29rdXAuaCwgYW5k
IFdlYlBhZ2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUds
b2JhbE9iamVjdC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElHbG9iYWxPYmpl
Y3QubW0KaW5kZXggMDJjYjliNzMxMTA1M2E0MmM3ZGQ1NDVlZTgzOWQxYzgwMWU0YjkxZi4uZDYx
YWFjN2U0NWM1MzcyMDVhOGFjYTdlMDhlZmQ2OTRjYmVkYzQyMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSUdsb2JhbE9iamVjdC5tbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0Lm1tCkBAIC03Niw3ICs3Niw3IEBAIHN0
YXRpYyBFeHBlY3RlZDxVUkwsIFN0cmluZz4gY29tcHV0ZVZhbGlkSW1wb3J0U3BlY2lmaWVyKGNv
bnN0IFVSTCYgYmFzZSwgY29uc3QKICAgICAgICAgcmV0dXJuIGFic29sdXRlVVJMOwogCiAgICAg
aWYgKCFzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLycpICYmICFzcGVjaWZpZXIuc3RhcnRzV2l0aCgi
Li8iKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4uLyIpKQotICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiTW9kdWxlIHNwZWNpZmllcjogIl9zLCBzcGVjaWZpZXIs
ICIgZG9lcyBub3Qgc3RhcnQgd2l0aCBcIi9cIiwgXCIuL1wiLCBvciBcIi4uL1wiLiJfcykpOwor
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiTW9kdWxlIHNwZWNpZmll
cjogIl9zLCBzcGVjaWZpZXIsICIgZG9lcyBub3Qgc3RhcnQgd2l0aCBcIi9cIiwgXCIuL1wiLCBv
ciBcIi4uL1wiLiBSZWZlcmVuY2VkIGZyb206ICJfcywgYmFzZS5zdHJpbmcoKSkpOwogCiAgICAg
aWYgKHNwZWNpZmllci5zdGFydHNXaXRoKCcvJykpIHsKICAgICAgICAgYWJzb2x1dGVVUkwgPSBV
UkwoVVJMKHsgfSwgImZpbGU6Ly8iKSwgc3BlY2lmaWVyKTsKQEAgLTE1MCw5ICsxNTAsNyBAQCBK
U0ludGVybmFsUHJvbWlzZSogSlNBUElHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckltcG9ydE1v
ZHVsZShKU0dsb2JhbE9iamVjdCogZwogICAgICAgICByZXR1cm4gcmVqZWN0KGV4Y2VwdGlvbi0+
dmFsdWUoKSk7CiAgICAgfQogCi0gICAgU3RyaW5nIHJlZmVycmVyID0gIXNvdXJjZU9yaWdpbi5p
c051bGwoKSA/IHNvdXJjZU9yaWdpbi5zdHJpbmcoKSA6IFN0cmluZygpOwotICAgIFVSTCBiYXNl
VVJMKFVSTCgpLCByZWZlcnJlcik7Ci0gICAgYXV0byByZXN1bHQgPSBjb21wdXRlVmFsaWRJbXBv
cnRTcGVjaWZpZXIoYmFzZVVSTCwgc3BlY2lmaWVyKTsKKyAgICBhdXRvIHJlc3VsdCA9IGNvbXB1
dGVWYWxpZEltcG9ydFNwZWNpZmllcihzb3VyY2VPcmlnaW4udXJsKCksIHNwZWNpZmllcik7CiAg
ICAgaWYgKHJlc3VsdCkKICAgICAgICAgcmV0dXJuIGltcG9ydChyZXN1bHQudmFsdWUoKSk7CiAg
ICAgcmV0dXJuIHJlamVjdChjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsIHJlc3VsdC5lcnJvcigp
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQmFzZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQmFzZS5jcHAKaW5kZXggMWQwNGNmM2Y5NDkwZGRm
NzUzNGIyMTAzMDEzYWFjNGQ1Zjg0YjU1My4uMDk2MWM2N2Q4OTQ1ZTc1NmFlZGNkNmVkZmQ4NjIx
NDdjOTA4YzIzMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Jhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNCYXNlLmNwcApAQCAtNzMsNyAr
NzMsNyBAQCBKU1ZhbHVlUmVmIEpTRXZhbHVhdGVTY3JpcHRJbnRlcm5hbChjb25zdCBKU0xvY2tI
b2xkZXImLCBKU0NvbnRleHRSZWYgY3R4LCBKU09iagogICAgIHJldHVybiB0b1JlZihnbG9iYWxP
YmplY3QsIGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU1ZhbHVlUmVmIEpTRXZhbHVhdGVTY3JpcHQo
SlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgc2NyaXB0LCBKU09iamVjdFJlZiB0aGlzT2Jq
ZWN0LCBKU1N0cmluZ1JlZiBzb3VyY2VVUkwsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKK0pTVmFsdWVSZWYgSlNFdmFsdWF0ZVNjcmlwdChKU0NvbnRleHRS
ZWYgY3R4LCBKU1N0cmluZ1JlZiBzY3JpcHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3Ry
aW5nUmVmIHNvdXJjZVVSTFN0cmluZywgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKQogewogICAgIGlmICghY3R4KSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwpAQCAtODUsMTMgKzg1LDEzIEBAIEpTVmFsdWVSZWYgSlNFdmFsdWF0ZVNjcmlwdChK
U0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiBzY3JpcHQsIEpTT2JqZWN0UmVmIHRoCiAKICAg
ICBzdGFydGluZ0xpbmVOdW1iZXIgPSBzdGQ6Om1heCgxLCBzdGFydGluZ0xpbmVOdW1iZXIpOwog
Ci0gICAgYXV0byBzb3VyY2VVUkxTdHJpbmcgPSBzb3VyY2VVUkwgPyBzb3VyY2VVUkwtPnN0cmlu
ZygpIDogU3RyaW5nKCk7Ci0gICAgU291cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291cmNlKHNjcmlw
dC0+c3RyaW5nKCksIFNvdXJjZU9yaWdpbiB7IHNvdXJjZVVSTFN0cmluZyB9LCBVUkwoeyB9LCBz
b3VyY2VVUkxTdHJpbmcpLCBUZXh0UG9zaXRpb24oT3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2Vk
SW50KHN0YXJ0aW5nTGluZU51bWJlciksIE9yZGluYWxOdW1iZXIoKSkpOworICAgIGF1dG8gc291
cmNlVVJMID0gc291cmNlVVJMU3RyaW5nID8gVVJMKHsgfSwgc291cmNlVVJMU3RyaW5nLT5zdHJp
bmcoKSkgOiBVUkwoKTsKKyAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2Uoc2NyaXB0
LT5zdHJpbmcoKSwgU291cmNlT3JpZ2luIHsgc291cmNlVVJMIH0sIHNvdXJjZVVSTC5zdHJpbmco
KSwgVGV4dFBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChzdGFydGluZ0xp
bmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVyKCkpKTsKIAogICAgIHJldHVybiBKU0V2YWx1YXRlU2Ny
aXB0SW50ZXJuYWwobG9ja2VyLCBjdHgsIHRoaXNPYmplY3QsIHNvdXJjZSwgZXhjZXB0aW9uKTsK
IH0KIAotYm9vbCBKU0NoZWNrU2NyaXB0U3ludGF4KEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5n
UmVmIHNjcmlwdCwgSlNTdHJpbmdSZWYgc291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVy
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCitib29sIEpTQ2hlY2tTY3JpcHRTeW50YXgoSlNDb250
ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgc2NyaXB0LCBKU1N0cmluZ1JlZiBzb3VyY2VVUkxTdHJp
bmcsIGludCBzdGFydGluZ0xpbmVOdW1iZXIsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAg
ICBpZiAoIWN0eCkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEwMyw4ICsx
MDMsOCBAQCBib29sIEpTQ2hlY2tTY3JpcHRTeW50YXgoSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJp
bmdSZWYgc2NyaXB0LCBKU1N0cmluZ1JlZiBzb3VyYwogCiAgICAgc3RhcnRpbmdMaW5lTnVtYmVy
ID0gc3RkOjptYXgoMSwgc3RhcnRpbmdMaW5lTnVtYmVyKTsKIAotICAgIGF1dG8gc291cmNlVVJM
U3RyaW5nID0gc291cmNlVVJMID8gc291cmNlVVJMLT5zdHJpbmcoKSA6IFN0cmluZygpOwotICAg
IFNvdXJjZUNvZGUgc291cmNlID0gbWFrZVNvdXJjZShzY3JpcHQtPnN0cmluZygpLCBTb3VyY2VP
cmlnaW4geyBzb3VyY2VVUkxTdHJpbmcgfSwgVVJMKHsgfSwgc291cmNlVVJMU3RyaW5nKSwgVGV4
dFBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChzdGFydGluZ0xpbmVOdW1i
ZXIpLCBPcmRpbmFsTnVtYmVyKCkpKTsKKyAgICBhdXRvIHNvdXJjZVVSTCA9IHNvdXJjZVVSTFN0
cmluZyA/IFVSTCh7IH0sIHNvdXJjZVVSTFN0cmluZy0+c3RyaW5nKCkpIDogVVJMKCk7CisgICAg
U291cmNlQ29kZSBzb3VyY2UgPSBtYWtlU291cmNlKHNjcmlwdC0+c3RyaW5nKCksIFNvdXJjZU9y
aWdpbiB7IHNvdXJjZVVSTCB9LCBzb3VyY2VVUkwuc3RyaW5nKCksIFRleHRQb3NpdGlvbihPcmRp
bmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRpbmdMaW5lTnVtYmVyKSwgT3JkaW5hbE51
bWJlcigpKSk7CiAgICAgCiAgICAgSlNWYWx1ZSBzeW50YXhFeGNlcHRpb247CiAgICAgYm9vbCBp
c1ZhbGlkU3ludGF4ID0gY2hlY2tTeW50YXgoZ2xvYmFsT2JqZWN0LCBzb3VyY2UsICZzeW50YXhF
eGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVj
dFJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcAppbmRl
eCBkOWFlYmY3YzFjMDBkNDdmYzlkNjQ4MGI2MzUzNjcxM2MwNTZmZTYwLi4zNjNiOGFmNGI0OGJi
OGMwNzQ1ZjgxYjFjZTBkOGZiZTY1NmYyOGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTT2JqZWN0UmVmLmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIEpTT2JqZWN0UmVmIEpTT2JqZWN0
TWFrZUNvbnN0cnVjdG9yKEpTQ29udGV4dFJlZiBjdHgsIEpTQ2xhc3NSZWYganNDbGFzcywgSlNP
YmplCiAgICAgcmV0dXJuIHRvUmVmKGNvbnN0cnVjdG9yKTsKIH0KIAotSlNPYmplY3RSZWYgSlNP
YmplY3RNYWtlRnVuY3Rpb24oSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgbmFtZSwgdW5z
aWduZWQgcGFyYW1ldGVyQ291bnQsIGNvbnN0IEpTU3RyaW5nUmVmIHBhcmFtZXRlck5hbWVzW10s
IEpTU3RyaW5nUmVmIGJvZHksIEpTU3RyaW5nUmVmIHNvdXJjZVVSTCwgaW50IHN0YXJ0aW5nTGlu
ZU51bWJlciwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorSlNPYmplY3RSZWYgSlNPYmplY3RNYWtl
RnVuY3Rpb24oSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgbmFtZSwgdW5zaWduZWQgcGFy
YW1ldGVyQ291bnQsIGNvbnN0IEpTU3RyaW5nUmVmIHBhcmFtZXRlck5hbWVzW10sIEpTU3RyaW5n
UmVmIGJvZHksIEpTU3RyaW5nUmVmIHNvdXJjZVVSTFN0cmluZywgaW50IHN0YXJ0aW5nTGluZU51
bWJlciwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGlmICghY3R4KSB7CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTUxLDggKzE1MSw4IEBAIEpTT2JqZWN0UmVmIEpT
T2JqZWN0TWFrZUZ1bmN0aW9uKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIG5hbWUsIHVu
c2lnbmVkIHBhCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGF1dG8gc291
cmNlVVJMU3RyaW5nID0gc291cmNlVVJMID8gc291cmNlVVJMLT5zdHJpbmcoKSA6IFN0cmluZygp
OwotICAgIEpTT2JqZWN0KiByZXN1bHQgPSBjb25zdHJ1Y3RGdW5jdGlvbihnbG9iYWxPYmplY3Qs
IGFyZ3MsIG5hbWVJRCwgU291cmNlT3JpZ2luIHsgc291cmNlVVJMU3RyaW5nIH0sIHNvdXJjZVVS
TFN0cmluZywgVGV4dFBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChzdGFy
dGluZ0xpbmVOdW1iZXIpLCBPcmRpbmFsTnVtYmVyKCkpKTsKKyAgICBhdXRvIHNvdXJjZVVSTCA9
IHNvdXJjZVVSTFN0cmluZyA/IFVSTCh7IH0sIHNvdXJjZVVSTFN0cmluZy0+c3RyaW5nKCkpIDog
VVJMKCk7CisgICAgSlNPYmplY3QqIHJlc3VsdCA9IGNvbnN0cnVjdEZ1bmN0aW9uKGdsb2JhbE9i
amVjdCwgYXJncywgbmFtZUlELCBTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkwgfSwgc291cmNlVVJM
LnN0cmluZygpLCBUZXh0UG9zaXRpb24oT3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0
YXJ0aW5nTGluZU51bWJlciksIE9yZGluYWxOdW1iZXIoKSkpOwogICAgIGlmIChoYW5kbGVFeGNl
cHRpb25JZk5lZWRlZChzY29wZSwgY3R4LCBleGNlcHRpb24pID09IEV4Y2VwdGlvblN0YXR1czo6
RGlkVGhyb3cpCiAgICAgICAgIHJlc3VsdCA9IG51bGxwdHI7CiAgICAgcmV0dXJuIHRvUmVmKHJl
c3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0Lm1t
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdC5tbQppbmRleCAwMGM4NzZhNGU2
NDVjNGQ4YTdmNWFjOGU4ZGMyYzdlMWI1YzIyZjMzLi45ZTQxNDU3MTI0YmYxNDNlYTQxNzYxNWM0
OTgyYTUxOWMxZDkzYTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
U2NyaXB0Lm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHQubW0KQEAg
LTI2Nyw5ICsyNjcsMTEgQEAgc3RhdGljIGJvb2wgdmFsaWRhdGVCeXRlY29kZUNhY2hlUGF0aChO
U1VSTCogY2FjaGVQYXRoLCBOU0Vycm9yKiogZXJyb3IpCiAgICAgSlNDOjpKU0xvY2tIb2xkZXIg
bG9ja2VyKHZtKTsKIAogICAgIFRleHRQb3NpdGlvbiBzdGFydFBvc2l0aW9uIHsgfTsKLSAgICBT
dHJpbmcgdXJsID0gU3RyaW5nIHsgW1tzZWxmIHNvdXJjZVVSTF0gYWJzb2x1dGVTdHJpbmddIH07
CisgICAgU3RyaW5nIGZpbGVuYW1lID0gU3RyaW5nIHsgW1tzZWxmIHNvdXJjZVVSTF0gYWJzb2x1
dGVTdHJpbmddIH07CisgICAgVVJMIHVybCA9IFVSTCh7IH0sIGZpbGVuYW1lKTsKICAgICBhdXRv
IHR5cGUgPSBtX3R5cGUgPT0ga0pTU2NyaXB0VHlwZU1vZHVsZSA/IEpTQzo6U291cmNlUHJvdmlk
ZXJTb3VyY2VUeXBlOjpNb2R1bGUgOiBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJv
Z3JhbTsKLSAgICBSZWY8SlNTY3JpcHRTb3VyY2VQcm92aWRlcj4gc291cmNlUHJvdmlkZXIgPSBK
U1NjcmlwdFNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc2VsZiwgSlNDOjpTb3VyY2VPcmlnaW4odXJs
KSwgVVJMKHsgfSwgdXJsKSwgc3RhcnRQb3NpdGlvbiwgdHlwZSk7CisgICAgSlNDOjpTb3VyY2VP
cmlnaW4gb3JpZ2luKHVybCk7CisgICAgUmVmPEpTU2NyaXB0U291cmNlUHJvdmlkZXI+IHNvdXJj
ZVByb3ZpZGVyID0gSlNTY3JpcHRTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNlbGYsIG9yaWdpbiwg
V1RGTW92ZShmaWxlbmFtZSksIHN0YXJ0UG9zaXRpb24sIHR5cGUpOwogICAgIEpTQzo6U291cmNl
Q29kZSBzb3VyY2VDb2RlKFdURk1vdmUoc291cmNlUHJvdmlkZXIpLCBzdGFydFBvc2l0aW9uLm1f
bGluZS5vbmVCYXNlZEludCgpLCBzdGFydFBvc2l0aW9uLm1fY29sdW1uLm9uZUJhc2VkSW50KCkp
OwogICAgIHJldHVybiBzb3VyY2VDb2RlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
U2NyaXB0UmVmLmNwcAppbmRleCA4NDE1OWFjNTI1NzNjNzg3NGUzYjUyYjJhNDJlMGZlYzYzY2U3
YmFhLi43NjJjZWMwNWU5MjQ2YzBjYjFmYWMxMmRkYWY3MmMxYWM2MTA1MDIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcApAQCAtMzksOSArMzksOSBAQCB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCiBzdHJ1Y3QgT3BhcXVlSlNTY3JpcHQgZmluYWwgOiBwdWJsaWMg
U291cmNlUHJvdmlkZXIgewogcHVibGljOgotICAgIHN0YXRpYyBXVEY6OlJlZjxPcGFxdWVKU1Nj
cmlwdD4gY3JlYXRlKFZNJiB2bSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVS
TCYmIHVybCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2UpCisg
ICAgc3RhdGljIFdURjo6UmVmPE9wYXF1ZUpTU2NyaXB0PiBjcmVhdGUoVk0mIHZtLCBjb25zdCBT
b3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nIGZpbGVuYW1lLCBpbnQgc3RhcnRpbmdM
aW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBX
VEY6OmFkb3B0UmVmKCpuZXcgT3BhcXVlSlNTY3JpcHQodm0sIHNvdXJjZU9yaWdpbiwgV1RGTW92
ZSh1cmwpLCBzdGFydGluZ0xpbmVOdW1iZXIsIHNvdXJjZSkpOworICAgICAgICByZXR1cm4gV1RG
OjphZG9wdFJlZigqbmV3IE9wYXF1ZUpTU2NyaXB0KHZtLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUo
ZmlsZW5hbWUpLCBzdGFydGluZ0xpbmVOdW1iZXIsIHNvdXJjZSkpOwogICAgIH0KIAogICAgIHVu
c2lnbmVkIGhhc2goKSBjb25zdCBmaW5hbApAQCAtNTcsOCArNTcsOCBAQCBwdWJsaWM6CiAgICAg
Vk0mIHZtKCkgY29uc3QgeyByZXR1cm4gbV92bTsgfQogCiBwcml2YXRlOgotICAgIE9wYXF1ZUpT
U2NyaXB0KFZNJiB2bSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVy
bCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2UpCi0gICAgICAg
IDogU291cmNlUHJvdmlkZXIoc291cmNlT3JpZ2luLCBXVEZNb3ZlKHVybCksIFRleHRQb3NpdGlv
bihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RhcnRpbmdMaW5lTnVtYmVyKSwgT3Jk
aW5hbE51bWJlcigpKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtKQorICAgIE9w
YXF1ZUpTU2NyaXB0KFZNJiB2bSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0
cmluZyYmIGZpbGVuYW1lLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNv
dXJjZSkKKyAgICAgICAgOiBTb3VyY2VQcm92aWRlcihzb3VyY2VPcmlnaW4sIFdURk1vdmUoZmls
ZW5hbWUpLCBUZXh0UG9zaXRpb24oT3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0YXJ0
aW5nTGluZU51bWJlciksIE9yZGluYWxOdW1iZXIoKSksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlw
ZTo6UHJvZ3JhbSkKICAgICAgICAgLCBtX3ZtKHZtKQogICAgICAgICAsIG1fc291cmNlKHNvdXJj
ZS5pc051bGwoKSA/ICpTdHJpbmdJbXBsOjplbXB0eSgpIDogKnNvdXJjZS5pbXBsKCkpCiAgICAg
ewpAQCAtODAsNyArODAsNyBAQCBzdGF0aWMgYm9vbCBwYXJzZVNjcmlwdChWTSYgdm0sIGNvbnN0
IFNvdXJjZUNvZGUmIHNvdXJjZSwgUGFyc2VyRXJyb3ImIGVycm9yKQogCiBleHRlcm4gIkMiIHsK
IAotSlNTY3JpcHRSZWYgSlNTY3JpcHRDcmVhdGVSZWZlcmVuY2luZ0ltbW9ydGFsQVNDSUlUZXh0
KEpTQ29udGV4dEdyb3VwUmVmIGNvbnRleHRHcm91cCwgSlNTdHJpbmdSZWYgdXJsLCBpbnQgc3Rh
cnRpbmdMaW5lTnVtYmVyLCBjb25zdCBjaGFyKiBzb3VyY2UsIHNpemVfdCBsZW5ndGgsIEpTU3Ry
aW5nUmVmKiBlcnJvck1lc3NhZ2UsIGludCogZXJyb3JMaW5lKQorSlNTY3JpcHRSZWYgSlNTY3Jp
cHRDcmVhdGVSZWZlcmVuY2luZ0ltbW9ydGFsQVNDSUlUZXh0KEpTQ29udGV4dEdyb3VwUmVmIGNv
bnRleHRHcm91cCwgSlNTdHJpbmdSZWYgdXJsU3RyaW5nLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVy
LCBjb25zdCBjaGFyKiBzb3VyY2UsIHNpemVfdCBsZW5ndGgsIEpTU3RyaW5nUmVmKiBlcnJvck1l
c3NhZ2UsIGludCogZXJyb3JMaW5lKQogewogICAgIGF1dG8mIHZtID0gKnRvSlMoY29udGV4dEdy
b3VwKTsKICAgICBKU0xvY2tIb2xkZXIgbG9ja2VyKCZ2bSk7CkBAIC05MSw4ICs5MSw4IEBAIEpT
U2NyaXB0UmVmIEpTU2NyaXB0Q3JlYXRlUmVmZXJlbmNpbmdJbW1vcnRhbEFTQ0lJVGV4dChKU0Nv
bnRleHRHcm91cFJlZiBjb250ZXh0CiAKICAgICBzdGFydGluZ0xpbmVOdW1iZXIgPSBzdGQ6Om1h
eCgxLCBzdGFydGluZ0xpbmVOdW1iZXIpOwogCi0gICAgYXV0byBzb3VyY2VVUkxTdHJpbmcgPSB1
cmwgPyB1cmwtPnN0cmluZygpIDogU3RyaW5nKCk7Ci0gICAgYXV0byByZXN1bHQgPSBPcGFxdWVK
U1NjcmlwdDo6Y3JlYXRlKHZtLCBTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkxTdHJpbmcgfSwgVVJM
KHsgfSwgc291cmNlVVJMU3RyaW5nKSwgc3RhcnRpbmdMaW5lTnVtYmVyLCBTdHJpbmcoU3RyaW5n
SW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwoc291cmNlLCBsZW5ndGgpKSk7CisgICAgYXV0byBzb3Vy
Y2VVUkwgPSB1cmxTdHJpbmcgPyBVUkwoeyB9LCB1cmxTdHJpbmctPnN0cmluZygpKSA6IFVSTCgp
OworICAgIGF1dG8gcmVzdWx0ID0gT3BhcXVlSlNTY3JpcHQ6OmNyZWF0ZSh2bSwgU291cmNlT3Jp
Z2luIHsgc291cmNlVVJMIH0sIHNvdXJjZVVSTC5zdHJpbmcoKSwgc3RhcnRpbmdMaW5lTnVtYmVy
LCBTdHJpbmcoU3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwoc291cmNlLCBsZW5ndGgpKSk7
CiAKICAgICBQYXJzZXJFcnJvciBlcnJvcjsKICAgICBpZiAoIXBhcnNlU2NyaXB0KHZtLCBTb3Vy
Y2VDb2RlKHJlc3VsdC5jb3B5UmVmKCkpLCBlcnJvcikpIHsKQEAgLTEwNiwxNSArMTA2LDE1IEBA
IEpTU2NyaXB0UmVmIEpTU2NyaXB0Q3JlYXRlUmVmZXJlbmNpbmdJbW1vcnRhbEFTQ0lJVGV4dChK
U0NvbnRleHRHcm91cFJlZiBjb250ZXh0CiAgICAgcmV0dXJuICZyZXN1bHQubGVha1JlZigpOwog
fQogCi1KU1NjcmlwdFJlZiBKU1NjcmlwdENyZWF0ZUZyb21TdHJpbmcoSlNDb250ZXh0R3JvdXBS
ZWYgY29udGV4dEdyb3VwLCBKU1N0cmluZ1JlZiB1cmwsIGludCBzdGFydGluZ0xpbmVOdW1iZXIs
IEpTU3RyaW5nUmVmIHNvdXJjZSwgSlNTdHJpbmdSZWYqIGVycm9yTWVzc2FnZSwgaW50KiBlcnJv
ckxpbmUpCitKU1NjcmlwdFJlZiBKU1NjcmlwdENyZWF0ZUZyb21TdHJpbmcoSlNDb250ZXh0R3Jv
dXBSZWYgY29udGV4dEdyb3VwLCBKU1N0cmluZ1JlZiB1cmxTdHJpbmcsIGludCBzdGFydGluZ0xp
bmVOdW1iZXIsIEpTU3RyaW5nUmVmIHNvdXJjZSwgSlNTdHJpbmdSZWYqIGVycm9yTWVzc2FnZSwg
aW50KiBlcnJvckxpbmUpCiB7CiAgICAgYXV0byYgdm0gPSAqdG9KUyhjb250ZXh0R3JvdXApOwog
ICAgIEpTTG9ja0hvbGRlciBsb2NrZXIoJnZtKTsKIAogICAgIHN0YXJ0aW5nTGluZU51bWJlciA9
IHN0ZDo6bWF4KDEsIHN0YXJ0aW5nTGluZU51bWJlcik7CiAKLSAgICBhdXRvIHNvdXJjZVVSTFN0
cmluZyA9IHVybCA/IHVybC0+c3RyaW5nKCkgOiBTdHJpbmcoKTsKLSAgICBhdXRvIHJlc3VsdCA9
IE9wYXF1ZUpTU2NyaXB0OjpjcmVhdGUodm0sIFNvdXJjZU9yaWdpbiB7IHNvdXJjZVVSTFN0cmlu
ZyB9LCBVUkwoeyB9LCBzb3VyY2VVUkxTdHJpbmcpLCBzdGFydGluZ0xpbmVOdW1iZXIsIHNvdXJj
ZS0+c3RyaW5nKCkpOworICAgIGF1dG8gc291cmNlVVJMID0gdXJsU3RyaW5nID8gVVJMKHsgfSwg
dXJsU3RyaW5nLT5zdHJpbmcoKSkgOiBVUkwoKTsKKyAgICBhdXRvIHJlc3VsdCA9IE9wYXF1ZUpT
U2NyaXB0OjpjcmVhdGUodm0sIFNvdXJjZU9yaWdpbiB7IHNvdXJjZVVSTCB9LCBzb3VyY2VVUkwu
c3RyaW5nKCksIHN0YXJ0aW5nTGluZU51bWJlciwgc291cmNlLT5zdHJpbmcoKSk7CiAKICAgICBQ
YXJzZXJFcnJvciBlcnJvcjsKICAgICBpZiAoIXBhcnNlU2NyaXB0KHZtLCBTb3VyY2VDb2RlKHJl
c3VsdC5jb3B5UmVmKCkpLCBlcnJvcikpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvZ2xpYi9KU0NDb250ZXh0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
Z2xpYi9KU0NDb250ZXh0LmNwcAppbmRleCBhYjgwOWRkNzFmMDE3N2M1OGQzMzNjZGRmOWRmYjYy
ZTVlZTkwYmIzLi4yMmIzMWFjNzIwYmIzZTJhNGI0OTUwNmRkYjc3MjVkMzc0ZDY1MjE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHQuY3BwCkBAIC05NTYs
OSArOTU2LDkgQEAgSlNDQ2hlY2tTeW50YXhSZXN1bHQganNjX2NvbnRleHRfY2hlY2tfc3ludGF4
KEpTQ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IGNoYXIqIGMKICAgICBKU0M6OlZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrZXIodm0pOwogCi0g
ICAgU3RyaW5nIHNvdXJjZVVSTFN0cmluZyA9IHVyaSA/IFN0cmluZzo6ZnJvbVVURjgodXJpKSA6
IFN0cmluZygpOwotICAgIEpTQzo6U291cmNlQ29kZSBzb3VyY2UgPSBKU0M6Om1ha2VTb3VyY2Uo
U3RyaW5nOjpmcm9tVVRGOChjb2RlLCBsZW5ndGggPCAwID8gc3RybGVuKGNvZGUpIDogbGVuZ3Ro
KSwgSlNDOjpTb3VyY2VPcmlnaW4geyBzb3VyY2VVUkxTdHJpbmcgfSwKLSAgICAgICAgVVJMKHsg
fSwgc291cmNlVVJMU3RyaW5nKSwgVGV4dFBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVC
YXNlZEludChsaW5lTnVtYmVyKSwgT3JkaW5hbE51bWJlcigpKSk7CisgICAgVVJMIHNvdXJjZVVS
TCA9IHVyaSA/IFVSTCh7IH0sIHVyaSkgOiBVUkwoKTsKKyAgICBKU0M6OlNvdXJjZUNvZGUgc291
cmNlID0gSlNDOjptYWtlU291cmNlKFN0cmluZzo6ZnJvbVVURjgoY29kZSwgbGVuZ3RoIDwgMCA/
IHN0cmxlbihjb2RlKSA6IGxlbmd0aCksIEpTQzo6U291cmNlT3JpZ2luIHsgc291cmNlVVJMIH0s
CisgICAgICAgIHNvdXJjZVVSTC5zdHJpbmcoKSAsIFRleHRQb3NpdGlvbihPcmRpbmFsTnVtYmVy
Ojpmcm9tT25lQmFzZWRJbnQobGluZU51bWJlciksIE9yZGluYWxOdW1iZXIoKSkpOwogICAgIGJv
b2wgc3VjY2VzcyA9IGZhbHNlOwogICAgIEpTQzo6UGFyc2VyRXJyb3IgZXJyb3I7CiAgICAgc3dp
dGNoIChtb2RlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMv
QnVpbHRpbkV4ZWN1dGFibGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9C
dWlsdGluRXhlY3V0YWJsZXMuY3BwCmluZGV4IGFiYWFlZjA4MWZlMjRiMjkxZGJmMzg3NWZlYjY3
YzM5NzhhYmQ0MmMuLjgzMDQ5NDRiYWM0MzhiYzk3OTM0YTRhMDJkMDIxNTk1NWI0Y2FjZmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0YWJs
ZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluRXhlY3V0
YWJsZXMuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBCdWlsdGluRXhl
Y3V0YWJsZXM6OkJ1aWx0aW5FeGVjdXRhYmxlcyhWTSYgdm0pCiAgICAgOiBtX3ZtKHZtKQotICAg
ICwgbV9jb21iaW5lZFNvdXJjZVByb3ZpZGVyKFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUo
U3RyaW5nSW1wbDo6Y3JlYXRlRnJvbUxpdGVyYWwoc19KU0NDb21iaW5lZENvZGUsIHNfSlNDQ29t
YmluZWRDb2RlTGVuZ3RoKSwgeyB9LCBVUkwoKSkpCisgICAgLCBtX2NvbWJpbmVkU291cmNlUHJv
dmlkZXIoU3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShTdHJpbmdJbXBsOjpjcmVhdGVGcm9t
TGl0ZXJhbChzX0pTQ0NvbWJpbmVkQ29kZSwgc19KU0NDb21iaW5lZENvZGVMZW5ndGgpLCB7IH0s
IFN0cmluZygpKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVn
Z2VyL0RlYnVnZ2VyTG9jYXRpb24uY3BwCmluZGV4IDkyYWNhNjI5NjVhOGYyN2FjNDdmNDNjYTI0
YTM3MGU1NGMwM2JmMmEuLjBlMTk5OThmMWUzMmFlOTYyYjIzY2UzNjdkYzA5NzdmMzczNTQxMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0
aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJMb2Nh
dGlvbi5jcHAKQEAgLTM5LDkgKzM5LDYgQEAgRGVidWdnZXJMb2NhdGlvbjo6RGVidWdnZXJMb2Nh
dGlvbihTY3JpcHRFeGVjdXRhYmxlKiBleGVjdXRhYmxlKQogICAgIHNvdXJjZUlEID0gZXhlY3V0
YWJsZS0+c291cmNlSUQoKTsKICAgICBsaW5lID0gZXhlY3V0YWJsZS0+Zmlyc3RMaW5lKCk7CiAg
ICAgY29sdW1uID0gZXhlY3V0YWJsZS0+c3RhcnRDb2x1bW4oKTsKLSAgICB1cmwgPSBleGVjdXRh
YmxlLT5zb3VyY2VVUkwoKTsKLSAgICBpZiAodXJsLmlzRW1wdHkoKSkKLSAgICAgICAgdXJsID0g
ZXhlY3V0YWJsZS0+c291cmNlKCkucHJvdmlkZXIoKS0+c291cmNlVVJMRGlyZWN0aXZlKCk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmgKaW5kZXggM2UxYzQxNjZiMGE3ZTkwNDEwNjc3ZDZiODI2
ZjFkNjIxZjI5NGU1NS4uZTk0ODc3MTY4YzQwMDRlYjljYWQzOGU3NWI5ZTM4ZmMyMDA2MjMwYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRp
b24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJMb2NhdGlv
bi5oCkBAIC0zNSwxNiArMzUsMTQgQEAgY2xhc3MgU2NyaXB0RXhlY3V0YWJsZTsKIHN0cnVjdCBE
ZWJ1Z2dlckxvY2F0aW9uIHsKIAogICAgIERlYnVnZ2VyTG9jYXRpb24oKSB7IH0KLSAgICBEZWJ1
Z2dlckxvY2F0aW9uKGNvbnN0IFN0cmluZyYgdXJsLCBpbnRwdHJfdCBzb3VyY2VJRCwgdW5zaWdu
ZWQgbGluZSwgdW5zaWduZWQgY29sdW1uKQotICAgICAgICA6IHVybCh1cmwpCi0gICAgICAgICwg
c291cmNlSUQoc291cmNlSUQpCisgICAgRGVidWdnZXJMb2NhdGlvbihpbnRwdHJfdCBzb3VyY2VJ
RCwgdW5zaWduZWQgbGluZSwgdW5zaWduZWQgY29sdW1uKQorICAgICAgICA6IHNvdXJjZUlEKHNv
dXJjZUlEKQogICAgICAgICAsIGxpbmUobGluZSkKICAgICAgICAgLCBjb2x1bW4oY29sdW1uKQog
ICAgIHsgfQogCiAgICAgRGVidWdnZXJMb2NhdGlvbihTY3JpcHRFeGVjdXRhYmxlKik7CiAKLSAg
ICBTdHJpbmcgdXJsOwogICAgIGludHB0cl90IHNvdXJjZUlEIHsgbm9Tb3VyY2VJRCB9OwogICAg
IHVuc2lnbmVkIGxpbmUgeyAwIH07CiAgICAgdW5zaWduZWQgY29sdW1uIHsgMCB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHREZWJ1Z1NlcnZlci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmNw
cAppbmRleCBmYmIwNGE0OGNjZDE3Nzg5NDBkMDY0NzA2ZTUyODQwNDgyMmZjOTYwLi44ZGVkMTI5
NWY5NDM2ODc4YzczZTljZWRiNjYxMzEyM2U0MjIxZGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmNwcApAQCAtMTM5LDEx
ICsxMzksMTEgQEAgdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6c291cmNlUGFyc2VkKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFNvdXJjZVByb3ZpZGUKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgaWYgKGVycm9yTGluZSAhPSAtMSkgewotICAgICAgICBhdXRvIHVybCA9IHNvdXJjZVByb3Zp
ZGVyLT51cmwoKTsKKyAgICAgICAgYXV0byBzb3VyY2VVUkwgPSBzb3VyY2VQcm92aWRlci0+c291
cmNlVVJMKCk7CiAgICAgICAgIGF1dG8gZGF0YSA9IHNvdXJjZVByb3ZpZGVyLT5zb3VyY2UoKS50
b1N0cmluZygpOwogICAgICAgICBhdXRvIGZpcnN0TGluZSA9IHNvdXJjZVByb3ZpZGVyLT5zdGFy
dFBvc2l0aW9uKCkubV9saW5lLm9uZUJhc2VkSW50KCk7CiAgICAgICAgIGRpc3BhdGNoRnVuY3Rp
b25Ub0xpc3RlbmVycyhbJl0gKFNjcmlwdERlYnVnTGlzdGVuZXImIGxpc3RlbmVyKSB7Ci0gICAg
ICAgICAgICBsaXN0ZW5lci5mYWlsZWRUb1BhcnNlU291cmNlKHVybC5zdHJpbmcoKSwgZGF0YSwg
Zmlyc3RMaW5lLCBlcnJvckxpbmUsIGVycm9yTWVzc2FnZSk7CisgICAgICAgICAgICBsaXN0ZW5l
ci5mYWlsZWRUb1BhcnNlU291cmNlKHNvdXJjZVVSTCwgZGF0YSwgZmlyc3RMaW5lLCBlcnJvckxp
bmUsIGVycm9yTWVzc2FnZSk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtMTUzLDcgKzE1Myw3IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnNvdXJjZVBhcnNlZChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTb3VyY2VQcm92aWRlCiAgICAgLy8gRklYTUU6
IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNjI3NzM+IFdlYiBJbnNwZWN0b3I6IFNpbXBsaWZ5IFNj
cmlwdERlYnVnTGlzdGVuZXI6OlNjcmlwdCB0byB1c2UgU291cmNlUHJvdmlkZXIKICAgICBTY3Jp
cHREZWJ1Z0xpc3RlbmVyOjpTY3JpcHQgc2NyaXB0OwogICAgIHNjcmlwdC5zb3VyY2VQcm92aWRl
ciA9IHNvdXJjZVByb3ZpZGVyOwotICAgIHNjcmlwdC51cmwgPSBzb3VyY2VQcm92aWRlci0+dXJs
KCkuc3RyaW5nKCk7CisgICAgc2NyaXB0LnVybCA9IHNvdXJjZVByb3ZpZGVyLT5zb3VyY2VVUkwo
KTsKICAgICBzY3JpcHQuc291cmNlID0gc291cmNlUHJvdmlkZXItPnNvdXJjZSgpLnRvU3RyaW5n
KCk7CiAgICAgc2NyaXB0LnN0YXJ0TGluZSA9IHNvdXJjZVByb3ZpZGVyLT5zdGFydFBvc2l0aW9u
KCkubV9saW5lLnplcm9CYXNlZEludCgpOwogICAgIHNjcmlwdC5zdGFydENvbHVtbiA9IHNvdXJj
ZVByb3ZpZGVyLT5zdGFydFBvc2l0aW9uKCkubV9jb2x1bW4uemVyb0Jhc2VkSW50KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qc2MuY3BwCmluZGV4IDBmN2NiM2IyZmM5MTg2N2ZmMjExMGFjN2E4Nzc4MmM1YjQwMGY1
MzguLjU0ODEyY2QyNTk0MTBkOGViNTE0ZWU3MWFlNDVkZDUyNWMwOGY4YzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwCkBAIC02NzksNTEgKzY3OSw3IEBAIHN0YXRpYyBVQ2hhciBwYXRoU2VwYXJhdG9y
KCkKICNlbmRpZgogfQogCi1zdHJ1Y3QgRGlyZWN0b3J5TmFtZSB7Ci0gICAgLy8gSW4gdW5peCwg
aXQgaXMgIi8iLiBJbiBXaW5kb3dzLCBpdCBiZWNvbWVzIGEgZHJpdmUgbGV0dGVyIGxpa2UgIkM6
XCIKLSAgICBTdHJpbmcgcm9vdE5hbWU7Ci0KLSAgICAvLyBJZiB0aGUgZGlyZWN0b3J5IG5hbWUg
aXMgIi9ob21lL1dlYktpdCIsIHRoaXMgYmVjb21lcyAiaG9tZS9XZWJLaXQiLiBJZiB0aGUgZGly
ZWN0b3J5IG5hbWUgaXMgIi8iLCB0aGlzIGJlY29tZXMgIiIuCi0gICAgU3RyaW5nIHF1ZXJ5TmFt
ZTsKLX07Ci0KLXN0cnVjdCBNb2R1bGVOYW1lIHsKLSAgICBNb2R1bGVOYW1lKGNvbnN0IFN0cmlu
ZyYgbW9kdWxlTmFtZSk7Ci0KLSAgICBib29sIHN0YXJ0c1dpdGhSb290KCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIHJldHVybiAhcXVlcmllcy5pc0VtcHR5KCkgJiYgcXVlcmllc1swXS5pc0VtcHR5
KCk7Ci0gICAgfQotCi0gICAgVmVjdG9yPFN0cmluZz4gcXVlcmllczsKLX07Ci0KLU1vZHVsZU5h
bWU6Ok1vZHVsZU5hbWUoY29uc3QgU3RyaW5nJiBtb2R1bGVOYW1lKQotewotICAgIC8vIEEgbW9k
dWxlIG5hbWUgZ2l2ZW4gZnJvbSBjb2RlIGlzIHJlcHJlc2VudGVkIGFzIHRoZSBVTklYIHN0eWxl
IHBhdGguIExpa2UsIGAuL0EvQi5qc2AuCi0gICAgcXVlcmllcyA9IG1vZHVsZU5hbWUuc3BsaXRB
bGxvd2luZ0VtcHR5RW50cmllcygnLycpOwotfQotCi1zdGF0aWMgT3B0aW9uYWw8RGlyZWN0b3J5
TmFtZT4gZXh0cmFjdERpcmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJiBhYnNvbHV0ZVBhdGhUb0Zp
bGUpCi17Ci0gICAgc2l6ZV90IGZpcnN0U2VwYXJhdG9yUG9zaXRpb24gPSBhYnNvbHV0ZVBhdGhU
b0ZpbGUuZmluZChwYXRoU2VwYXJhdG9yKCkpOwotICAgIGlmIChmaXJzdFNlcGFyYXRvclBvc2l0
aW9uID09IG5vdEZvdW5kKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIERpcmVj
dG9yeU5hbWUgZGlyZWN0b3J5TmFtZTsKLSAgICBkaXJlY3RvcnlOYW1lLnJvb3ROYW1lID0gYWJz
b2x1dGVQYXRoVG9GaWxlLnN1YnN0cmluZygwLCBmaXJzdFNlcGFyYXRvclBvc2l0aW9uICsgMSk7
IC8vIEluY2x1ZGUgdGhlIHNlcGFyYXRvci4KLSAgICBzaXplX3QgbGFzdFNlcGFyYXRvclBvc2l0
aW9uID0gYWJzb2x1dGVQYXRoVG9GaWxlLnJldmVyc2VGaW5kKHBhdGhTZXBhcmF0b3IoKSk7Ci0g
ICAgQVNTRVJUX1dJVEhfTUVTU0FHRShsYXN0U2VwYXJhdG9yUG9zaXRpb24gIT0gbm90Rm91bmQs
ICJJZiB0aGUgc2VwYXJhdG9yIGlzIG5vdCBmb3VuZCwgdGhpcyBmdW5jdGlvbiBhbHJlYWR5IHJl
dHVybnMgd2hlbiBwZXJmb3JtaW5nIHRoZSBmb3J3YXJkIHNlYXJjaC4iKTsKLSAgICBpZiAoZmly
c3RTZXBhcmF0b3JQb3NpdGlvbiA9PSBsYXN0U2VwYXJhdG9yUG9zaXRpb24pCi0gICAgICAgIGRp
cmVjdG9yeU5hbWUucXVlcnlOYW1lID0gU3RyaW5nSW1wbDo6ZW1wdHkoKTsKLSAgICBlbHNlIHsK
LSAgICAgICAgc2l6ZV90IHF1ZXJ5U3RhcnRQb3NpdGlvbiA9IGZpcnN0U2VwYXJhdG9yUG9zaXRp
b24gKyAxOwotICAgICAgICBzaXplX3QgcXVlcnlMZW5ndGggPSBsYXN0U2VwYXJhdG9yUG9zaXRp
b24gLSBxdWVyeVN0YXJ0UG9zaXRpb247IC8vIE5vdCBpbmNsdWRlIHRoZSBsYXN0IHNlcGFyYXRv
ci4KLSAgICAgICAgZGlyZWN0b3J5TmFtZS5xdWVyeU5hbWUgPSBhYnNvbHV0ZVBhdGhUb0ZpbGUu
c3Vic3RyaW5nKHF1ZXJ5U3RhcnRQb3NpdGlvbiwgcXVlcnlMZW5ndGgpOwotICAgIH0KLSAgICBy
ZXR1cm4gZGlyZWN0b3J5TmFtZTsKLX0KLQotc3RhdGljIE9wdGlvbmFsPERpcmVjdG9yeU5hbWU+
IGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5KCkKK3N0YXRpYyBVUkwgY3VycmVudFdvcmtpbmdEaXJl
Y3RvcnkoKQogewogI2lmIE9TKFdJTkRPV1MpCiAgICAgLy8gaHR0cHM6Ly9tc2RuLm1pY3Jvc29m
dC5jb20vZW4tdXMvbGlicmFyeS93aW5kb3dzL2Rlc2t0b3AvYWEzNjQ5MzQuYXNweApAQCAtNzM3
LDcgKzY5Myw3IEBAIHN0YXRpYyBPcHRpb25hbDxEaXJlY3RvcnlOYW1lPiBjdXJyZW50V29ya2lu
Z0RpcmVjdG9yeSgpCiAgICAgLy8gSW4gdGhlIHBhdGggdXRpbGl0eSBmdW5jdGlvbnMgaW5zaWRl
IHRoZSBKU0Mgc2hlbGwsIHdlIGRvZXMgbm90IGhhbmRsZSB0aGUgVU5DIGFuZCBVTkNXIGluY2x1
ZGluZyB0aGUgbmV0d29yayBob3N0IG5hbWUuCiAgICAgRFdPUkQgYnVmZmVyTGVuZ3RoID0gOjpH
ZXRDdXJyZW50RGlyZWN0b3J5VygwLCBudWxscHRyKTsKICAgICBpZiAoIWJ1ZmZlckxlbmd0aCkK
LSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICAv
LyBJbiBXaW5kb3dzLCB3Y2hhcl90IGlzIHRoZSBVVEYtMTZMRS4KICAgICAvLyBodHRwczovL21z
ZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L2RkMzc0MDgxLmFzcHgKICAgICAvLyBodHRw
czovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3dpbmRvd3MvZGVza3RvcC9mZjM4
MTQwNy5hc3B4CkBAIC03NDYsNTQgKzcwMiwzMSBAQCBzdGF0aWMgT3B0aW9uYWw8RGlyZWN0b3J5
TmFtZT4gY3VycmVudFdvcmtpbmdEaXJlY3RvcnkoKQogICAgIFN0cmluZyBkaXJlY3RvcnlTdHJp
bmcoYnVmZmVyLmRhdGEoKSwgbGVuZ3RoTm90SW5jbHVkaW5nTnVsbCk7CiAgICAgLy8gV2UgZG9u
J3Qgc3VwcG9ydCBuZXR3b3JrIHBhdGggbGlrZSBcXGhvc3Rcc2hhcmVcPHBhdGggbmFtZT4uCiAg
ICAgaWYgKGRpcmVjdG9yeVN0cmluZy5zdGFydHNXaXRoKCJcXFxcIikpCi0gICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7IH07CisKICNlbHNlCiAgICAgVmVjdG9y
PGNoYXI+IGJ1ZmZlcihQQVRIX01BWCk7CiAgICAgaWYgKCFnZXRjd2QoYnVmZmVyLmRhdGEoKSwg
UEFUSF9NQVgpKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICByZXR1cm4g
eyB9OwogICAgIFN0cmluZyBkaXJlY3RvcnlTdHJpbmcgPSBTdHJpbmc6OmZyb21VVEY4KGJ1ZmZl
ci5kYXRhKCkpOwogI2VuZGlmCiAgICAgaWYgKGRpcmVjdG9yeVN0cmluZy5pc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICBpZiAoZGlyZWN0b3J5U3RyaW5nW2Rp
cmVjdG9yeVN0cmluZy5sZW5ndGgoKSAtIDFdID09IHBhdGhTZXBhcmF0b3IoKSkKLSAgICAgICAg
cmV0dXJuIGV4dHJhY3REaXJlY3RvcnlOYW1lKGRpcmVjdG9yeVN0cmluZyk7Ci0gICAgLy8gQXBw
ZW5kIHRoZSBzZXBlcmF0b3IgdG8gcmVwcmVzZW50cyB0aGUgZmlsZSBuYW1lLiBleHRyYWN0RGly
ZWN0b3J5TmFtZSBvbmx5IGFjY2VwdHMgdGhlIGFic29sdXRlIGZpbGUgbmFtZS4KLSAgICByZXR1
cm4gZXh0cmFjdERpcmVjdG9yeU5hbWUobWFrZVN0cmluZyhkaXJlY3RvcnlTdHJpbmcsIHBhdGhT
ZXBhcmF0b3IoKSkpOwotfQotCi1zdGF0aWMgU3RyaW5nIHJlc29sdmVQYXRoKGNvbnN0IERpcmVj
dG9yeU5hbWUmIGRpcmVjdG9yeU5hbWUsIGNvbnN0IE1vZHVsZU5hbWUmIG1vZHVsZU5hbWUpCi17
Ci0gICAgVmVjdG9yPFN0cmluZz4gZGlyZWN0b3J5UGllY2VzID0gZGlyZWN0b3J5TmFtZS5xdWVy
eU5hbWUuc3BsaXQocGF0aFNlcGFyYXRvcigpKTsKLQotICAgIC8vIE9ubHkgZmlyc3QgJy8nIGlz
IHJlY29nbml6ZWQgYXMgdGhlIHBhdGggZnJvbSB0aGUgcm9vdC4KLSAgICBpZiAobW9kdWxlTmFt
ZS5zdGFydHNXaXRoUm9vdCgpKQotICAgICAgICBkaXJlY3RvcnlQaWVjZXMuY2xlYXIoKTsKKyAg
ICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGZvciAoY29uc3QgYXV0byYgcXVlcnkgOiBtb2R1bGVO
YW1lLnF1ZXJpZXMpIHsKLSAgICAgICAgaWYgKHF1ZXJ5ID09IFN0cmluZygiLi4iX3MpKSB7Ci0g
ICAgICAgICAgICBpZiAoIWRpcmVjdG9yeVBpZWNlcy5pc0VtcHR5KCkpCi0gICAgICAgICAgICAg
ICAgZGlyZWN0b3J5UGllY2VzLnJlbW92ZUxhc3QoKTsKLSAgICAgICAgfSBlbHNlIGlmICghcXVl
cnkuaXNFbXB0eSgpICYmIHF1ZXJ5ICE9IFN0cmluZygiLiJfcykpCi0gICAgICAgICAgICBkaXJl
Y3RvcnlQaWVjZXMuYXBwZW5kKHF1ZXJ5KTsKLSAgICB9CisgICAgLy8gQWRkIGEgdHJhaWxpbmcg
c2xhc2ggaWYgbmVlZGVkIHNvIHRoZSBVUkwgcmVzb2x2ZXMgdG8gYSBkaXJlY3RvcnkgYW5kIG5v
dCBhIGZpbGUuCisgICAgaWYgKGRpcmVjdG9yeVN0cmluZ1tkaXJlY3RvcnlTdHJpbmcubGVuZ3Ro
KCkgLSAxXSAhPSBwYXRoU2VwYXJhdG9yKCkpCisgICAgICAgIGRpcmVjdG9yeVN0cmluZyA9IG1h
a2VTdHJpbmcoZGlyZWN0b3J5U3RyaW5nLCBwYXRoU2VwYXJhdG9yKCkpOwogCi0gICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKGRpcmVjdG9yeU5hbWUucm9vdE5h
bWUpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZGlyZWN0b3J5UGllY2VzLnNpemUoKTsg
KytpKSB7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGRpcmVjdG9yeVBpZWNlc1tpXSk7Ci0gICAg
ICAgIGlmIChpICsgMSAhPSBkaXJlY3RvcnlQaWVjZXMuc2l6ZSgpKQotICAgICAgICAgICAgYnVp
bGRlci5hcHBlbmQocGF0aFNlcGFyYXRvcigpKTsKLSAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICByZXR1cm4gVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRoKGRp
cmVjdG9yeVN0cmluZyk7CiB9CiAKLXN0YXRpYyBTdHJpbmcgYWJzb2x1dGVQYXRoKGNvbnN0IFN0
cmluZyYgZmlsZU5hbWUpCitzdGF0aWMgVVJMIGFic29sdXRlUGF0aChjb25zdCBTdHJpbmcmIGZp
bGVOYW1lKQogewogICAgIGF1dG8gZGlyZWN0b3J5TmFtZSA9IGN1cnJlbnRXb3JraW5nRGlyZWN0
b3J5KCk7Ci0gICAgaWYgKCFkaXJlY3RvcnlOYW1lKQotICAgICAgICByZXR1cm4gZmlsZU5hbWU7
Ci0gICAgcmV0dXJuIHJlc29sdmVQYXRoKGRpcmVjdG9yeU5hbWUudmFsdWUoKSwgTW9kdWxlTmFt
ZShmaWxlTmFtZS5pbXBsKCkpKTsKKyAgICBpZiAoIWRpcmVjdG9yeU5hbWUuaXNWYWxpZCgpKQor
ICAgICAgICByZXR1cm4gVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRoKGZpbGVOYW1lKTsK
KworICAgIHJldHVybiBVUkwoZGlyZWN0b3J5TmFtZSwgZmlsZU5hbWUpOwogfQogCiBKU0ludGVy
bmFsUHJvbWlzZSogR2xvYmFsT2JqZWN0Ojptb2R1bGVMb2FkZXJJbXBvcnRNb2R1bGUoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNNb2R1bGVMb2FkZXIqLCBKU1N0cmluZyogbW9kdWxl
TmFtZVZhbHVlLCBKU1ZhbHVlIHBhcmFtZXRlcnMsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNl
T3JpZ2luKQpAQCAtODExLDIwICs3NDQsMjMgQEAgSlNJbnRlcm5hbFByb21pc2UqIEdsb2JhbE9i
amVjdDo6bW9kdWxlTG9hZGVySW1wb3J0TW9kdWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAg
ICAgICAgcmV0dXJuIHByb21pc2U7CiAgICAgfTsKIAotICAgIGlmIChzb3VyY2VPcmlnaW4uaXNO
dWxsKCkpCi0gICAgICAgIHJldHVybiByZWplY3QoY3JlYXRlRXJyb3IoZ2xvYmFsT2JqZWN0LCAi
Q291bGQgbm90IHJlc29sdmUgdGhlIG1vZHVsZSBzcGVjaWZpZXIuIl9zKSk7Ci0KLSAgICBhdXRv
IHJlZmVycmVyID0gc291cmNlT3JpZ2luLnN0cmluZygpOwotICAgIGF1dG8gbW9kdWxlTmFtZSA9
IG1vZHVsZU5hbWVWYWx1ZS0+dmFsdWUoZ2xvYmFsT2JqZWN0KTsKKyAgICBhdXRvIHJlZmVycmVy
ID0gc291cmNlT3JpZ2luLnVybCgpOworICAgIGF1dG8gc3BlY2lmaWVyID0gbW9kdWxlTmFtZVZh
bHVlLT52YWx1ZShnbG9iYWxPYmplY3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dT
Y29wZSwgbnVsbHB0cik7CiAgICAgaWYgKFVOTElLRUxZKGNhdGNoU2NvcGUuZXhjZXB0aW9uKCkp
KQogICAgICAgICByZXR1cm4gcmVqZWN0KGNhdGNoU2NvcGUuZXhjZXB0aW9uKCktPnZhbHVlKCkp
OwogCi0gICAgYXV0byBkaXJlY3RvcnlOYW1lID0gZXh0cmFjdERpcmVjdG9yeU5hbWUocmVmZXJy
ZXIuaW1wbCgpKTsKLSAgICBpZiAoIWRpcmVjdG9yeU5hbWUpCi0gICAgICAgIHJldHVybiByZWpl
Y3QoY3JlYXRlRXJyb3IoZ2xvYmFsT2JqZWN0LCBtYWtlU3RyaW5nKCJDb3VsZCBub3QgcmVzb2x2
ZSB0aGUgcmVmZXJyZXIgbmFtZSAnIiwgU3RyaW5nKHJlZmVycmVyLmltcGwoKSksICInLiIpKSk7
CisgICAgaWYgKCFyZWZlcnJlci5pc0xvY2FsRmlsZSgpKQorICAgICAgICByZXR1cm4gcmVqZWN0
KGNyZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgbWFrZVN0cmluZygiQ291bGQgbm90IHJlc29sdmUg
dGhlIHJlZmVycmVyJ3MgcGF0aCAnIiwgcmVmZXJyZXIuc3RyaW5nKCksICInLCB3aGlsZSB0cnlp
bmcgdG8gcmVzb2x2ZSBtb2R1bGUgJyIsIHNwZWNpZmllciwgIicuIikpKTsKKworICAgIGlmICgh
c3BlY2lmaWVyLnN0YXJ0c1dpdGgoJy8nKSAmJiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4vIikg
JiYgIXNwZWNpZmllci5zdGFydHNXaXRoKCIuLi8iKSkKKyAgICAgICAgcmV0dXJuIHJlamVjdChj
cmVhdGVUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBtYWtlU3RyaW5nKCJNb2R1bGUgc3BlY2lmaWVy
LCAnIl9zLCBzcGVjaWZpZXIsICInIGRvZXMgbm90IHN0YXJ0IHdpdGggXCIvXCIsIFwiLi9cIiwg
b3IgXCIuLi9cIi4gUmVmZXJlbmNlZCBmcm9tOiAiX3MsIHJlZmVycmVyLmZpbGVTeXN0ZW1QYXRo
KCkpKSk7CiAKLSAgICBhdXRvIHJlc3VsdCA9IEpTQzo6aW1wb3J0TW9kdWxlKGdsb2JhbE9iamVj
dCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVzb2x2ZVBhdGgoZGlyZWN0b3J5TmFtZS52
YWx1ZSgpLCBNb2R1bGVOYW1lKG1vZHVsZU5hbWUpKSksIHBhcmFtZXRlcnMsIGpzVW5kZWZpbmVk
KCkpOworICAgIFVSTCBtb2R1bGVVUkwocmVmZXJyZXIsIHNwZWNpZmllcik7CisgICAgaWYgKCFt
b2R1bGVVUkwuaXNMb2NhbEZpbGUoKSkKKyAgICAgICAgcmV0dXJuIHJlamVjdChjcmVhdGVFcnJv
cihnbG9iYWxPYmplY3QsIG1ha2VTdHJpbmcoIk1vZHVsZSB1cmwsICciLCBtb2R1bGVVUkwuc3Ry
aW5nKCksICInIGRvZXMgbm90IG1hcCB0byBhIGxvY2FsIGZpbGUuIikpKTsKKworICAgIGF1dG8g
cmVzdWx0ID0gSlNDOjppbXBvcnRNb2R1bGUoZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCBtb2R1bGVVUkwuc3RyaW5nKCkpLCBwYXJhbWV0ZXJzLCBqc1VuZGVmaW5lZCgp
KTsKICAgICBpZiAoVU5MSUtFTFkoY2F0Y2hTY29wZS5leGNlcHRpb24oKSkpCiAgICAgICAgIHJl
dHVybiByZWplY3QoY2F0Y2hTY29wZS5leGNlcHRpb24oKS0+dmFsdWUoKSk7CiAgICAgcmV0dXJu
IHJlc3VsdDsKQEAgLTg0MiwzNCArNzc4LDQxIEBAIElkZW50aWZpZXIgR2xvYmFsT2JqZWN0Ojpt
b2R1bGVMb2FkZXJSZXNvbHZlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTTW9kCiAg
ICAgaWYgKGtleS5pc1N5bWJvbCgpKQogICAgICAgICByZXR1cm4ga2V5OwogCi0gICAgaWYgKHJl
ZmVycmVyVmFsdWUuaXNVbmRlZmluZWQoKSkgewotICAgICAgICBhdXRvIGRpcmVjdG9yeU5hbWUg
PSBjdXJyZW50V29ya2luZ0RpcmVjdG9yeSgpOwotICAgICAgICBpZiAoIWRpcmVjdG9yeU5hbWUp
IHsKLSAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0
ZUVycm9yKGdsb2JhbE9iamVjdCwgIkNvdWxkIG5vdCByZXNvbHZlIHRoZSBjdXJyZW50IHdvcmtp
bmcgZGlyZWN0b3J5LiJfcykpOworICAgIGF1dG8gcmVzb2x2ZVBhdGggPSBbJl0gKGNvbnN0IFVS
TCYgZGlyZWN0b3J5VVJMKSAtPiBJZGVudGlmaWVyIHsKKyAgICAgICAgU3RyaW5nIHNwZWNpZmll
ciA9IGtleS5pbXBsKCk7CisgICAgICAgIGlmICghc3BlY2lmaWVyLnN0YXJ0c1dpdGgoJy8nKSAm
JiAhc3BlY2lmaWVyLnN0YXJ0c1dpdGgoIi4vIikgJiYgIXNwZWNpZmllci5zdGFydHNXaXRoKCIu
Li8iKSkgeworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
bWFrZVN0cmluZygiTW9kdWxlIHNwZWNpZmllciwgJyJfcywgc3BlY2lmaWVyLCAiJyBkb2VzIG5v
dCBzdGFydCB3aXRoIFwiL1wiLCBcIi4vXCIsIG9yIFwiLi4vXCIuIFJlZmVyZW5jZWQgZnJvbTog
Il9zLCBkaXJlY3RvcnlVUkwuZmlsZVN5c3RlbVBhdGgoKSkpOwogICAgICAgICAgICAgcmV0dXJu
IHsgfTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgcmVzb2x2ZVBhdGgoZGlyZWN0b3J5TmFtZS52YWx1ZSgpLCBNb2R1bGVOYW1lKGtleS5pbXBs
KCkpKSk7Ci0gICAgfQogCi0gICAgY29uc3QgSWRlbnRpZmllciByZWZlcnJlciA9IHJlZmVycmVy
VmFsdWUudG9Qcm9wZXJ0eUtleShnbG9iYWxPYmplY3QpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7CisgICAgICAgIGlmICghZGlyZWN0b3J5VVJMLmlzTG9jYWxGaWxlKCkp
IHsKKyAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0
ZUVycm9yKGdsb2JhbE9iamVjdCwgbWFrZVN0cmluZygiQ291bGQgbm90IHJlc29sdmUgdGhlIHJl
ZmVycmVyJ3MgcGF0aDogIiwgZGlyZWN0b3J5VVJMLnN0cmluZygpKSkpOworICAgICAgICAgICAg
cmV0dXJuIHsgfTsKKyAgICAgICAgfQogCi0gICAgaWYgKHJlZmVycmVyLmlzU3ltYm9sKCkpIHsK
LSAgICAgICAgYXV0byBkaXJlY3RvcnlOYW1lID0gY3VycmVudFdvcmtpbmdEaXJlY3RvcnkoKTsK
LSAgICAgICAgaWYgKCFkaXJlY3RvcnlOYW1lKSB7Ci0gICAgICAgICAgICB0aHJvd0V4Y2VwdGlv
bihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsICJDb3VsZCBu
b3QgcmVzb2x2ZSB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4iX3MpKTsKKyAgICAgICAg
VVJMIHJlc29sdmVkVVJMKGRpcmVjdG9yeVVSTCwgc3BlY2lmaWVyKTsKKyAgICAgICAgaWYgKCFy
ZXNvbHZlZFVSTC5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2Jh
bE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgbWFrZVN0cmluZygiUmVz
b2x2ZWQgbW9kdWxlIHVybCBpcyBub3QgdmFsaWQ6ICIsIHJlc29sdmVkVVJMLnN0cmluZygpKSkp
OwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVzb2x2ZVBhdGgoZGlyZWN0b3J5TmFtZS52YWx1ZSgp
LCBNb2R1bGVOYW1lKGtleS5pbXBsKCkpKSk7Ci0gICAgfQorICAgICAgICBBU1NFUlQocmVzb2x2
ZWRVUkwuaXNMb2NhbEZpbGUoKSk7CiAKLSAgICAvLyBJZiB0aGUgcmVmZXJyZXIgZXhpc3RzLCB3
ZSBhc3N1bWUgdGhhdCB0aGUgcmVmZXJyZXIgaXMgdGhlIGNvcnJlY3QgYWJzb2x1dGUgcGF0aC4K
LSAgICBhdXRvIGRpcmVjdG9yeU5hbWUgPSBleHRyYWN0RGlyZWN0b3J5TmFtZShyZWZlcnJlci5p
bXBsKCkpOwotICAgIGlmICghZGlyZWN0b3J5TmFtZSkgewotICAgICAgICB0aHJvd0V4Y2VwdGlv
bihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVFcnJvcihnbG9iYWxPYmplY3QsIG1ha2VTdHJp
bmcoIkNvdWxkIG5vdCByZXNvbHZlIHRoZSByZWZlcnJlciBuYW1lICciLCBTdHJpbmcocmVmZXJy
ZXIuaW1wbCgpKSwgIicuIikpKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0gICAgcmV0
dXJuIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlc29sdmVQYXRoKGRpcmVjdG9yeU5hbWUu
dmFsdWUoKSwgTW9kdWxlTmFtZShrZXkuaW1wbCgpKSkpOworICAgICAgICByZXR1cm4gSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgcmVzb2x2ZWRVUkwuc3RyaW5nKCkpOworICAgIH07CisKKyAg
ICBpZiAocmVmZXJyZXJWYWx1ZS5pc1VuZGVmaW5lZCgpKQorICAgICAgICByZXR1cm4gcmVzb2x2
ZVBhdGgoY3VycmVudFdvcmtpbmdEaXJlY3RvcnkoKSk7CisKKyAgICBjb25zdCBJZGVudGlmaWVy
IHJlZmVycmVyID0gcmVmZXJyZXJWYWx1ZS50b1Byb3BlcnR5S2V5KGdsb2JhbE9iamVjdCk7Cisg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKworICAgIGlmIChyZWZlcnJlci5p
c1N5bWJvbCgpKQorICAgICAgICByZXR1cm4gcmVzb2x2ZVBhdGgoY3VycmVudFdvcmtpbmdEaXJl
Y3RvcnkoKSk7CisKKyAgICAvLyBJZiB0aGUgcmVmZXJyZXIgZXhpc3RzLCB3ZSBhc3N1bWUgdGhh
dCB0aGUgcmVmZXJyZXIgaXMgdGhlIGNvcnJlY3QgZmlsZSB1cmwuCisgICAgVVJMIHVybCA9IFVS
TCh7IH0sIHJlZmVycmVyLmltcGwoKSk7CisgICAgQVNTRVJUKHVybC5pc0xvY2FsRmlsZSgpKTsK
KyAgICByZXR1cm4gcmVzb2x2ZVBhdGgodXJsKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmVj
dG9yPgpAQCAtOTU0LDkgKzg5Nyw5IEBAIHN0YXRpYyBib29sIGZldGNoU2NyaXB0RnJvbUxvY2Fs
RmlsZVN5c3RlbShjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBWZWN0b3I8Y2hhcj4mCiAKIGNsYXNz
IFNoZWxsU291cmNlUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgU3RyaW5nU291cmNlUHJvdmlkZXIg
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U2hlbGxTb3VyY2VQcm92aWRlcj4gY3JlYXRlKGNv
bnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJM
JiYgdXJsLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVy
U291cmNlVHlwZSBzb3VyY2VUeXBlKQorICAgIHN0YXRpYyBSZWY8U2hlbGxTb3VyY2VQcm92aWRl
cj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJj
ZU9yaWdpbiwgU3RyaW5nJiYgc291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9z
aXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hlbGxTb3VyY2VQcm92aWRlcihzb3VyY2UsIHNvdXJj
ZU9yaWdpbiwgV1RGTW92ZSh1cmwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNoZWxsU291cmNlUHJvdmlkZXIoc291cmNlLCBzb3Vy
Y2VPcmlnaW4sIFdURk1vdmUoc291cmNlVVJMKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkp
OwogICAgIH0KIAogICAgIH5TaGVsbFNvdXJjZVByb3ZpZGVyKCkgZmluYWwKQEAgLTEwMzcsNyAr
OTgwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKCFjYWNoZUVuYWJsZWQoKSkKICAgICAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4obnVsbHB0cik7CiAgICAgICAgIGNv
bnN0IGNoYXIqIGNhY2hlUGF0aCA9IE9wdGlvbnM6OmRpc2tDYWNoZVBhdGgoKTsKLSAgICAgICAg
U3RyaW5nIGZpbGVuYW1lID0gRmlsZVN5c3RlbTo6ZW5jb2RlRm9yRmlsZU5hbWUoRmlsZVN5c3Rl
bTo6bGFzdENvbXBvbmVudE9mUGF0aElnbm9yaW5nVHJhaWxpbmdTbGFzaChzb3VyY2VPcmlnaW4o
KS5zdHJpbmcoKSkpOworICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBGaWxlU3lzdGVtOjplbmNv
ZGVGb3JGaWxlTmFtZShGaWxlU3lzdGVtOjpsYXN0Q29tcG9uZW50T2ZQYXRoSWdub3JpbmdUcmFp
bGluZ1NsYXNoKHNvdXJjZU9yaWdpbigpLnVybCgpLmZpbGVTeXN0ZW1QYXRoKCkpKTsKICAgICAg
ICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjYWNoZVBhdGgs
IG1ha2VTdHJpbmcoc291cmNlKCkudG9TdHJpbmcoKS5oYXNoKCksICctJywgZmlsZW5hbWUsICIu
Ynl0ZWNvZGUtY2FjaGUiKSk7CiAgICAgfQogCkBAIC0xMDY3LDggKzEwMTAsOCBAQCBwcml2YXRl
OgogICAgICAgICBtX2NhY2hlZEJ5dGVjb2RlID0gQ2FjaGVkQnl0ZWNvZGU6OmNyZWF0ZShXVEZN
b3ZlKG1hcHBlZEZpbGVEYXRhKSk7CiAgICAgfQogCi0gICAgU2hlbGxTb3VyY2VQcm92aWRlcihj
b25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVS
TCYmIHVybCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92aWRl
clNvdXJjZVR5cGUgc291cmNlVHlwZSkKLSAgICAgICAgOiBTdHJpbmdTb3VyY2VQcm92aWRlcihz
b3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VU
eXBlKQorICAgIFNoZWxsU291cmNlUHJvdmlkZXIoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0
IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJpbmcmJiBzb3VyY2VVUkwsIGNvbnN0IFRl
eHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJj
ZVR5cGUpCisgICAgICAgIDogU3RyaW5nU291cmNlUHJvdmlkZXIoc291cmNlLCBzb3VyY2VPcmln
aW4sIFdURk1vdmUoc291cmNlVVJMKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkKICAgICB7
CiAgICAgfQogCkBAIC0xMDgxLDkgKzEwMjQsOSBAQCBwcml2YXRlOgogICAgIG11dGFibGUgUmVm
UHRyPENhY2hlZEJ5dGVjb2RlPiBtX2NhY2hlZEJ5dGVjb2RlOwogfTsKIAotc3RhdGljIGlubGlu
ZSBTb3VyY2VDb2RlIGpzY1NvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNl
T3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVybCA9IFVSTCgpLCBjb25zdCBUZXh0UG9zaXRp
b24mIHN0YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VU
eXBlIHNvdXJjZVR5cGUgPSBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pCitzdGF0
aWMgaW5saW5lIFNvdXJjZUNvZGUganNjU291cmNlKGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25z
dCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3RyaW5nIHNvdXJjZVVSTCA9IFN0cmluZygp
LCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRpb24oKSwgU291
cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUgPSBTb3VyY2VQcm92aWRlclNvdXJjZVR5
cGU6OlByb2dyYW0pCiB7Ci0gICAgcmV0dXJuIFNvdXJjZUNvZGUoU2hlbGxTb3VyY2VQcm92aWRl
cjo6Y3JlYXRlKHNvdXJjZSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKHVybCksIHN0YXJ0UG9zaXRp
b24sIHNvdXJjZVR5cGUpLCBzdGFydFBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpLCBzdGFy
dFBvc2l0aW9uLm1fY29sdW1uLm9uZUJhc2VkSW50KCkpOworICAgIHJldHVybiBTb3VyY2VDb2Rl
KFNoZWxsU291cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92
ZShzb3VyY2VVUkwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSwgc3RhcnRQb3NpdGlvbi5t
X2xpbmUub25lQmFzZWRJbnQoKSwgc3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgp
KTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yPgpAQCAtMTA5MSwxMyArMTAzNCwxMyBA
QCBzdGF0aWMgaW5saW5lIFNvdXJjZUNvZGUganNjU291cmNlKGNvbnN0IFZlY3RvciYgdXRmOCwg
Y29uc3QgU291cmNlT3JpZ2luJiBzb3VyYwogewogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCB1
c2UgYW4gYWJzb2x1dGUgZmlsZSBVUkwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5MzA3NwogICAgIFN0cmluZyBzdHIgPSBzdHJpbmdGcm9tVVRGKHV0ZjgpOwotICAg
IHJldHVybiBqc2NTb3VyY2Uoc3RyLCBzb3VyY2VPcmlnaW4sIFVSTCh7IH0sIGZpbGVuYW1lKSk7
CisgICAgcmV0dXJuIGpzY1NvdXJjZShzdHIsIHNvdXJjZU9yaWdpbiwgZmlsZW5hbWUpOwogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3I+Ci1zdGF0aWMgYm9vbCBmZXRjaE1vZHVsZUZyb21M
b2NhbEZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgVmVjdG9yJiBidWZmZXIpCitz
dGF0aWMgYm9vbCBmZXRjaE1vZHVsZUZyb21Mb2NhbEZpbGVTeXN0ZW0oY29uc3QgVVJMJiBmaWxl
VVJMLCBWZWN0b3ImIGJ1ZmZlcikKIHsKLSAgICAvLyBXZSBhc3N1bWUgdGhhdCBmaWxlTmFtZSBp
cyBhbHdheXMgYW4gYWJzb2x1dGUgcGF0aC4KKyAgICBTdHJpbmcgZmlsZU5hbWUgPSBmaWxlVVJM
LmZpbGVTeXN0ZW1QYXRoKCk7CiAjaWYgT1MoV0lORE9XUykKICAgICAvLyBodHRwczovL21zZG4u
bWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3dpbmRvd3MvZGVza3RvcC9hYTM2NTI0Ny5hc3B4
I21heHBhdGgKICAgICAvLyBVc2UgbG9uZyBVTkMgdG8gcGFzcyB0aGUgbG9uZyBwYXRoIG5hbWUg
dG8gdGhlIFdpbmRvd3MgQVBJcy4KQEAgLTExNDksMTggKzEwOTIsMjAgQEAgSlNJbnRlcm5hbFBy
b21pc2UqIEdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyRmV0Y2goSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwKICAgICBpZiAoVU5MSUtFTFkoY2F0Y2hTY29wZS5leGNlcHRpb24oKSkpCiAg
ICAgICAgIHJldHVybiByZWplY3QoY2F0Y2hTY29wZS5leGNlcHRpb24oKS0+dmFsdWUoKSk7CiAK
LSAgICAvLyBIZXJlLCBub3cgd2UgY29uc2lkZXIgbW9kdWxlS2V5IGFzIHRoZSBmaWxlTmFtZS4K
KyAgICBVUkwgbW9kdWxlVVJMKHsgfSwgbW9kdWxlS2V5KTsKKyAgICBBU1NFUlQobW9kdWxlVVJM
LmlzTG9jYWxGaWxlKCkpOworICAgIC8vIFN0cmlwIHRoZSBVUkkgZnJvbSBvdXIga2V5IHNvIEVy
cm9ycyBwcmludCBjYW5vbmljYWwgc3lzdGVtIHBhdGhzLgorICAgIG1vZHVsZUtleSA9IG1vZHVs
ZVVSTC5maWxlU3lzdGVtUGF0aCgpOworCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKLSAg
ICBpZiAoIWZldGNoTW9kdWxlRnJvbUxvY2FsRmlsZVN5c3RlbShtb2R1bGVLZXksIGJ1ZmZlcikp
CisgICAgaWYgKCFmZXRjaE1vZHVsZUZyb21Mb2NhbEZpbGVTeXN0ZW0obW9kdWxlVVJMLCBidWZm
ZXIpKQogICAgICAgICByZXR1cm4gcmVqZWN0KGNyZWF0ZUVycm9yKGdsb2JhbE9iamVjdCwgbWFr
ZVN0cmluZygiQ291bGQgbm90IG9wZW4gZmlsZSAnIiwgbW9kdWxlS2V5LCAiJy4iKSkpOwogCi0K
LSAgICBVUkwgbW9kdWxlVVJMID0gVVJMKHsgfSwgbW9kdWxlS2V5KTsKICNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCiAgICAgLy8gRmlsZVN5c3RlbSBkb2VzIG5vdCBoYXZlIG1pbWUtdHlwZSBoZWFk
ZXIuIFRoZSBKU0Mgc2hlbGwgcmVjb2duaXplcyBXZWJBc3NlbWJseSdzIG1hZ2ljIGhlYWRlci4K
ICAgICBpZiAoYnVmZmVyLnNpemUoKSA+PSA0KSB7CiAgICAgICAgIGlmIChidWZmZXJbMF0gPT0g
J1wwJyAmJiBidWZmZXJbMV0gPT0gJ2EnICYmIGJ1ZmZlclsyXSA9PSAncycgJiYgYnVmZmVyWzNd
ID09ICdtJykgewotICAgICAgICAgICAgYXV0byBzb3VyY2UgPSBTb3VyY2VDb2RlKFdlYkFzc2Vt
Ymx5U291cmNlUHJvdmlkZXI6OmNyZWF0ZShXVEZNb3ZlKGJ1ZmZlciksIFNvdXJjZU9yaWdpbiB7
IG1vZHVsZUtleSB9LCBXVEZNb3ZlKG1vZHVsZVVSTCkpKTsKKyAgICAgICAgICAgIGF1dG8gc291
cmNlID0gU291cmNlQ29kZShXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyOjpjcmVhdGUoV1RGTW92
ZShidWZmZXIpLCBTb3VyY2VPcmlnaW4geyBtb2R1bGVVUkwgfSwgV1RGTW92ZShtb2R1bGVLZXkp
KSk7CiAgICAgICAgICAgICBjYXRjaFNjb3BlLnJlbGVhc2VBc3NlcnROb0V4Y2VwdGlvbigpOwog
ICAgICAgICAgICAgYXV0byBzb3VyY2VDb2RlID0gSlNTb3VyY2VDb2RlOjpjcmVhdGUodm0sIFdU
Rk1vdmUoc291cmNlKSk7CiAgICAgICAgICAgICBjYXRjaFNjb3BlLnJlbGVhc2VBc3NlcnROb0V4
Y2VwdGlvbigpOwpAQCAtMTE3MSw3ICsxMTE2LDcgQEAgSlNJbnRlcm5hbFByb21pc2UqIEdsb2Jh
bE9iamVjdDo6bW9kdWxlTG9hZGVyRmV0Y2goSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwK
ICAgICB9CiAjZW5kaWYKIAotICAgIGF1dG8gc291cmNlQ29kZSA9IEpTU291cmNlQ29kZTo6Y3Jl
YXRlKHZtLCBqc2NTb3VyY2Uoc3RyaW5nRnJvbVVURihidWZmZXIpLCBTb3VyY2VPcmlnaW4geyBt
b2R1bGVLZXkgfSwgV1RGTW92ZShtb2R1bGVVUkwpLCBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJv
dmlkZXJTb3VyY2VUeXBlOjpNb2R1bGUpKTsKKyAgICBhdXRvIHNvdXJjZUNvZGUgPSBKU1NvdXJj
ZUNvZGU6OmNyZWF0ZSh2bSwganNjU291cmNlKHN0cmluZ0Zyb21VVEYoYnVmZmVyKSwgU291cmNl
T3JpZ2luIHsgbW9kdWxlVVJMIH0sIFdURk1vdmUobW9kdWxlS2V5KSwgVGV4dFBvc2l0aW9uKCks
IFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlKSk7CiAgICAgY2F0Y2hTY29wZS5yZWxl
YXNlQXNzZXJ0Tm9FeGNlcHRpb24oKTsKICAgICBwcm9taXNlLT5yZXNvbHZlKGdsb2JhbE9iamVj
dCwgc291cmNlQ29kZSk7CiAgICAgY2F0Y2hTY29wZS5jbGVhckV4Y2VwdGlvbigpOwpAQCAtMTUx
NSwxNCArMTQ2MCwyNSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTG9h
ZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbQogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAKKyAgICBib29sIGNhbGxlclJlbGF0aXZlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgxKS5n
ZXRTdHJpbmcoZ2xvYmFsT2JqZWN0KSA9PSAiY2FsbGVyIHJlbGF0aXZlIl9zOworICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworCiAgICAgU3RyaW5nIGZp
bGVOYW1lID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b1dURlN0cmluZyhnbG9iYWxPYmplY3Qp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworCisg
ICAgVVJMIHBhdGg7CisgICAgaWYgKGNhbGxlclJlbGF0aXZlKSB7CisgICAgICAgIHBhdGggPSBV
UkwoY2FsbEZyYW1lLT5jYWxsZXJTb3VyY2VPcmlnaW4odm0pLnVybCgpLCBmaWxlTmFtZSk7Cisg
ICAgICAgIGlmICghcGF0aC5pc0xvY2FsRmlsZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRocm93
Vk1FeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlVVJJRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCBtYWtlU3RyaW5nKCJjYWxsZXIgcmVsYXRpdmUgVVJMIHBhdGggaXMgbm90IGEgbG9jYWwg
ZmlsZTogIiwgcGF0aC5zdHJpbmcoKSkpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgcGF0aCA9IGFi
c29sdXRlUGF0aChmaWxlTmFtZSk7CiAgICAgVmVjdG9yPGNoYXI+IHNjcmlwdDsKLSAgICBpZiAo
IWZldGNoU2NyaXB0RnJvbUxvY2FsRmlsZVN5c3RlbShmaWxlTmFtZSwgc2NyaXB0KSkKKyAgICBp
ZiAoIWZldGNoU2NyaXB0RnJvbUxvY2FsRmlsZVN5c3RlbShwYXRoLmZpbGVTeXN0ZW1QYXRoKCks
IHNjcmlwdCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dFeGNlcHRpb24o
Z2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IoZ2xvYmFsT2JqZWN0LCAiQ291bGQgbm90
IG9wZW4gZmlsZS4iX3MpKSk7CiAKICAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV2YWx1YXRpb25F
eGNlcHRpb247Ci0gICAgSlNWYWx1ZSByZXN1bHQgPSBldmFsdWF0ZShnbG9iYWxPYmplY3QsIGpz
Y1NvdXJjZShzY3JpcHQsIFNvdXJjZU9yaWdpbiB7IGFic29sdXRlUGF0aChmaWxlTmFtZSkgfSwg
ZmlsZU5hbWUpLCBKU1ZhbHVlKCksIGV2YWx1YXRpb25FeGNlcHRpb24pOworICAgIEpTVmFsdWUg
cmVzdWx0ID0gZXZhbHVhdGUoZ2xvYmFsT2JqZWN0LCBqc2NTb3VyY2Uoc2NyaXB0LCBTb3VyY2VP
cmlnaW4geyBwYXRoIH0sIGZpbGVOYW1lKSwgSlNWYWx1ZSgpLCBldmFsdWF0aW9uRXhjZXB0aW9u
KTsKICAgICBpZiAoZXZhbHVhdGlvbkV4Y2VwdGlvbikKICAgICAgICAgdGhyb3dFeGNlcHRpb24o
Z2xvYmFsT2JqZWN0LCBzY29wZSwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtMTY0OCw3ICsxNjA0LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNhbGxlclNvdXJjZU9yaWdpbihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2IKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgU291
cmNlT3JpZ2luIHNvdXJjZU9yaWdpbiA9IGNhbGxGcmFtZS0+Y2FsbGVyU291cmNlT3JpZ2luKHZt
KTsKLSAgICBpZiAoc291cmNlT3JpZ2luLmlzTnVsbCgpKQorICAgIGlmIChzb3VyY2VPcmlnaW4u
dXJsKCkuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcodm0sIHNvdXJjZU9yaWdpbi5z
dHJpbmcoKSkpOwogfQpAQCAtMTkxMiw3ICsxODY4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50U3RhcnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amUKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIE5ha2VkUHRyPEV4
Y2VwdGlvbj4gZXZhbHVhdGlvbkV4Y2VwdGlvbjsKICAgICAgICAgICAgICAgICAgICAgSlNWYWx1
ZSByZXN1bHQ7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGV2YWx1YXRlKGdsb2JhbE9i
amVjdCwganNjU291cmNlKHNvdXJjZUNvZGUsIFNvdXJjZU9yaWdpbigid29ya2VyIl9zKSksIEpT
VmFsdWUoKSwgZXZhbHVhdGlvbkV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgICAgIHJlc3Vs
dCA9IGV2YWx1YXRlKGdsb2JhbE9iamVjdCwganNjU291cmNlKHNvdXJjZUNvZGUsIFNvdXJjZU9y
aWdpbihVUkwoeyB9LCAid29ya2VyIl9zKSkpLCBKU1ZhbHVlKCksIGV2YWx1YXRpb25FeGNlcHRp
b24pOwogICAgICAgICAgICAgICAgICAgICBpZiAoZXZhbHVhdGlvbkV4Y2VwdGlvbikKICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGV2YWx1YXRpb25FeGNlcHRpb24tPnZhbHVlKCk7
CiAgICAgICAgICAgICAgICAgICAgIGNoZWNrRXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgdHJ1ZSwg
ZXZhbHVhdGlvbkV4Y2VwdGlvbiwgcmVzdWx0LCBjb21tYW5kTGluZSwgc3VjY2Vzcyk7CkBAIC0y
MzM2LDcgKzIyOTIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ2hl
Y2tNb2R1bGVTeW50YXgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogICAgIHN0b3BXYXRjaC5z
dGFydCgpOwogCiAgICAgUGFyc2VyRXJyb3IgZXJyb3I7Ci0gICAgYm9vbCB2YWxpZFN5bnRheCA9
IGNoZWNrTW9kdWxlU3ludGF4KGdsb2JhbE9iamVjdCwganNjU291cmNlKHNvdXJjZSwgeyB9LCBV
UkwoKSwgVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6TW9kdWxlKSwg
ZXJyb3IpOworICAgIGJvb2wgdmFsaWRTeW50YXggPSBjaGVja01vZHVsZVN5bnRheChnbG9iYWxP
YmplY3QsIGpzY1NvdXJjZShzb3VyY2UsIHsgfSwgU3RyaW5nKCksIFRleHRQb3NpdGlvbigpLCBT
b3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSksIGVycm9yKTsKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICBzdG9wV2F0Y2guc3RvcCgp
OwogCkBAIC0yNzk2LDYgKzI3NTIsOCBAQCBzdGF0aWMgdm9pZCBydW5XaXRoT3B0aW9ucyhHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29tbWFuZExpbmUmIG9wdGlvbnMsIGJvbwogICAgICAg
ICAgICAgICAgIHNjcmlwdEJ1ZmZlci5hcHBlbmQoIlwidXNlIHN0cmljdFwiO1xuIiwgc3RybGVu
KCJcInVzZSBzdHJpY3RcIjtcbiIpKTsKIAogICAgICAgICAgICAgaWYgKGlzTW9kdWxlKSB7Cisg
ICAgICAgICAgICAgICAgLy8gSWYgdGhlIHBhc3NlZCBmaWxlIGlzbid0IGFuIGFic29sdXRlIHBh
dGggYXBwZW5kICIuLyIgc28gdGhlIG1vZHVsZSBsb2FkZXIgZG9lc24ndCB0aGluayB0aGlzIGlz
IGEgYmFyZS1uYW1lIHNwZWNpZmllci4KKyAgICAgICAgICAgICAgICBmaWxlTmFtZSA9IGZpbGVO
YW1lLnN0YXJ0c1dpdGgoJy8nKSA/IGZpbGVOYW1lIDogbWFrZVN0cmluZygiLi8iLCBmaWxlTmFt
ZSk7CiAgICAgICAgICAgICAgICAgcHJvbWlzZSA9IGxvYWRBbmRFdmFsdWF0ZU1vZHVsZShnbG9i
YWxPYmplY3QsIGZpbGVOYW1lLCBqc1VuZGVmaW5lZCgpLCBqc1VuZGVmaW5lZCgpKTsKICAgICAg
ICAgICAgICAgICBzY29wZS5yZWxlYXNlQXNzZXJ0Tm9FeGNlcHRpb24oKTsKICAgICAgICAgICAg
IH0gZWxzZSB7CkBAIC0yODEyLDEwICsyNzcwLDExIEBAIHN0YXRpYyB2b2lkIHJ1bldpdGhPcHRp
b25zKEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb21tYW5kTGluZSYgb3B0aW9ucywgYm9v
CiAgICAgICAgIH0KIAogICAgICAgICBib29sIGlzTGFzdEZpbGUgPSBpID09IHNjcmlwdHMuc2l6
ZSgpIC0gMTsKKyAgICAgICAgU291cmNlT3JpZ2luIHNvdXJjZU9yaWdpbiB7IGFic29sdXRlUGF0
aChmaWxlTmFtZSkgfTsKICAgICAgICAgaWYgKGlzTW9kdWxlKSB7CiAgICAgICAgICAgICBpZiAo
IXByb21pc2UpIHsKICAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgdXNlIGFu
IGFic29sdXRlIGZpbGUgVVJMIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTMwNzcKLSAgICAgICAgICAgICAgICBwcm9taXNlID0gbG9hZEFuZEV2YWx1YXRlTW9kdWxl
KGdsb2JhbE9iamVjdCwganNjU291cmNlKHN0cmluZ0Zyb21VVEYoc2NyaXB0QnVmZmVyKSwgU291
cmNlT3JpZ2luIHsgYWJzb2x1dGVQYXRoKGZpbGVOYW1lKSB9LCBVUkwoeyB9LCBmaWxlTmFtZSks
IFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSksIGpzVW5k
ZWZpbmVkKCkpOworICAgICAgICAgICAgICAgIHByb21pc2UgPSBsb2FkQW5kRXZhbHVhdGVNb2R1
bGUoZ2xvYmFsT2JqZWN0LCBqc2NTb3VyY2Uoc3RyaW5nRnJvbVVURihzY3JpcHRCdWZmZXIpLCBz
b3VyY2VPcmlnaW4sIGZpbGVOYW1lLCBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3Vy
Y2VUeXBlOjpNb2R1bGUpLCBqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIHNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7CiAKQEAgLTI4MzQsNyArMjc5Myw3IEBAIHN0YXRp
YyB2b2lkIHJ1bldpdGhPcHRpb25zKEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb21tYW5k
TGluZSYgb3B0aW9ucywgYm9vCiAgICAgICAgICAgICB2bS5kcmFpbk1pY3JvdGFza3MoKTsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXZhbHVhdGlv
bkV4Y2VwdGlvbjsKLSAgICAgICAgICAgIEpTVmFsdWUgcmV0dXJuVmFsdWUgPSBldmFsdWF0ZShn
bG9iYWxPYmplY3QsIGpzY1NvdXJjZShzY3JpcHRCdWZmZXIsIFNvdXJjZU9yaWdpbiB7IGFic29s
dXRlUGF0aChmaWxlTmFtZSkgfSwgZmlsZU5hbWUpLCBKU1ZhbHVlKCksIGV2YWx1YXRpb25FeGNl
cHRpb24pOworICAgICAgICAgICAgSlNWYWx1ZSByZXR1cm5WYWx1ZSA9IGV2YWx1YXRlKGdsb2Jh
bE9iamVjdCwganNjU291cmNlKHNjcmlwdEJ1ZmZlciwgc291cmNlT3JpZ2luICwgZmlsZU5hbWUp
LCBKU1ZhbHVlKCksIGV2YWx1YXRpb25FeGNlcHRpb24pOwogICAgICAgICAgICAgc2NvcGUuYXNz
ZXJ0Tm9FeGNlcHRpb24oKTsKICAgICAgICAgICAgIGlmIChldmFsdWF0aW9uRXhjZXB0aW9uKQog
ICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gZXZhbHVhdGlvbkV4Y2VwdGlvbi0+dmFsdWUo
KTsKQEAgLTI4NTcsMTAgKzI4MTYsMTAgQEAgc3RhdGljIHZvaWQgcnVuSW50ZXJhY3RpdmUoR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKIAotICAgIE9wdGlv
bmFsPERpcmVjdG9yeU5hbWU+IGRpcmVjdG9yeU5hbWUgPSBjdXJyZW50V29ya2luZ0RpcmVjdG9y
eSgpOwotICAgIGlmICghZGlyZWN0b3J5TmFtZSkKKyAgICBVUkwgZGlyZWN0b3J5TmFtZSA9IGN1
cnJlbnRXb3JraW5nRGlyZWN0b3J5KCk7CisgICAgaWYgKCFkaXJlY3RvcnlOYW1lLmlzVmFsaWQo
KSkKICAgICAgICAgcmV0dXJuOwotICAgIFNvdXJjZU9yaWdpbiBzb3VyY2VPcmlnaW4ocmVzb2x2
ZVBhdGgoZGlyZWN0b3J5TmFtZS52YWx1ZSgpLCBNb2R1bGVOYW1lKCJpbnRlcnByZXRlciIpKSk7
CisgICAgU291cmNlT3JpZ2luIHNvdXJjZU9yaWdpbihVUkwoZGlyZWN0b3J5TmFtZSwgIi4vaW50
ZXJwcmV0ZXIiX3MpKTsKICAgICAKICAgICBib29sIHNob3VsZFF1aXQgPSBmYWxzZTsKICAgICB3
aGlsZSAoIXNob3VsZFF1aXQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTm9kZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRl
eCA3MTAxNWNiZTkxYzVkZDU5YWRjMzg0ZGZkOTJhYjRkYWU1ZDdjMTNkLi45YTJlZmNhZDI4NmEz
MjczMGM3NThhYzI2MjVhMTM4MTFhNzRiMDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL05vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9O
b2Rlcy5oCkBAIC0xODU4LDcgKzE4NTgsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU2Nv
cGVOb2RlKFBhcnNlckFyZW5hJiwgY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBzdGFydCwgY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiBlbmQsIGNvbnN0IFNvdXJjZUNvZGUmLCBTb3VyY2VFbGVtZW50cyos
IFZhcmlhYmxlRW52aXJvbm1lbnQmLCBGdW5jdGlvblN0YWNrJiYsIFZhcmlhYmxlRW52aXJvbm1l
bnQmLCBVbmlxdWVkU3RyaW5nSW1wbFB0clNldCYmLCBDb2RlRmVhdHVyZXMsIElubmVyQXJyb3dG
dW5jdGlvbkNvZGVGZWF0dXJlcywgaW50IG51bUNvbnN0YW50cyk7CiAKICAgICAgICAgY29uc3Qg
U291cmNlQ29kZSYgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2U7IH0KLSAgICAgICAg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5wcm92aWRl
cigpLT51cmwoKS5zdHJpbmcoKTsgfQogICAgICAgICBpbnRwdHJfdCBzb3VyY2VJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fc291cmNlLnByb3ZpZGVySUQoKTsgfQogCiAgICAgICAgIGludCBzdGFydExp
bmUoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0TGluZU51bWJlcjsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1NvdXJjZUNvZGUuaAppbmRleCBhYWQyODdkZGU4NzcxYjc5YjE4NjBjNWVk
NGI5NzA4MWVhZjJiZjk2Li45OTJkODlhMjEwM2RlMzZjMGZkZDY3NWE1M2ZmOGIxMzEwYzAxZjM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGUuaApAQCAtOTYsOSAr
OTYsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgT3JkaW5hbE51bWJlciBtX3N0YXJ0Q29s
dW1uOwogICAgIH07CiAKLSAgICBpbmxpbmUgU291cmNlQ29kZSBtYWtlU291cmNlKGNvbnN0IFN0
cmluZyYgc291cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJs
ID0gVVJMKCksIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiA9IFRleHRQb3NpdGlv
bigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSA9IFNvdXJjZVByb3ZpZGVy
U291cmNlVHlwZTo6UHJvZ3JhbSkKKyAgICBpbmxpbmUgU291cmNlQ29kZSBtYWtlU291cmNlKGNv
bnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3Ry
aW5nIGZpbGVuYW1lID0gU3RyaW5nKCksIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlv
biA9IFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSA9
IFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBTb3VyY2VDb2RlKFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCBzb3VyY2VP
cmlnaW4sIFdURk1vdmUodXJsKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSksIHN0YXJ0UG9z
aXRpb24ubV9saW5lLm9uZUJhc2VkSW50KCksIHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFz
ZWRJbnQoKSk7CisgICAgICAgIHJldHVybiBTb3VyY2VDb2RlKFN0cmluZ1NvdXJjZVByb3ZpZGVy
OjpjcmVhdGUoc291cmNlLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUoZmlsZW5hbWUpLCBzdGFydFBv
c2l0aW9uLCBzb3VyY2VUeXBlKSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJbnQoKSwg
c3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKTsKICAgICB9CiAgICAgCiAgICAg
aW5saW5lIFNvdXJjZUNvZGUgU291cmNlQ29kZTo6c3ViRXhwcmVzc2lvbih1bnNpZ25lZCBvcGVu
QnJhY2UsIHVuc2lnbmVkIGNsb3NlQnJhY2UsIGludCBmaXJzdExpbmUsIGludCBzdGFydENvbHVt
bikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNl
Q29kZUtleS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlS2V5LmgK
aW5kZXggNjc4YWU5ZDdkMzZiNzA1ZTUwOTlhZGI3NWQ5NmQwNTVjNjUwNGQzMy4uNjQyMzI3MGQ4
YWUwOTFhNzMwMWNhOGM4NTM1OTBiOGEzN2JjYTQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlS2V5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9Tb3VyY2VDb2RlS2V5LmgKQEAgLTEwNiw3ICsxMDYsNyBAQCBwdWJsaWM6CiAg
ICAgLy8gcHJvdmlkZXJzIGNhY2hlIHRoZWlyIHN0cmluZ3MgdG8gbWFrZSB0aGlzIGVmZmljaWVu
dC4KICAgICBTdHJpbmdWaWV3IHN0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlQ29kZS52
aWV3KCk7IH0KIAotICAgIFN0cmluZ1ZpZXcgaG9zdCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNl
Q29kZS5wcm92aWRlcigpLnVybCgpLmhvc3QoKTsgfQorICAgIFN0cmluZ1ZpZXcgaG9zdCgpIGNv
bnN0IHsgcmV0dXJuIG1fc291cmNlQ29kZS5wcm92aWRlcigpLnNvdXJjZU9yaWdpbigpLnVybCgp
Lmhvc3QoKTsgfQogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNvdXJjZUNvZGVLZXkmIG90
aGVyKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvU291cmNlUHJvdmlkZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3Vy
Y2VQcm92aWRlci5jcHAKaW5kZXggYzE0MTZmMTQ5NWI2ODNhZjk1ZTc3NThlYzJhMWEwMzE3ZTVl
YjhiMC4uMDNlNTVlZTNkMWZmMjAyNTg2YWYyYmVhOGQ3OTFkNTE1M2ExODdiMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAKQEAgLTMyLDEw
ICszMiwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogREVGSU5FX0FMTE9DQVRPUl9XSVRIX0hFQVBf
SURFTlRJRklFUihTdHJpbmdTb3VyY2VQcm92aWRlcik7CiAKLVNvdXJjZVByb3ZpZGVyOjpTb3Vy
Y2VQcm92aWRlcihjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsLCBj
b25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlw
ZSBzb3VyY2VUeXBlKQorU291cmNlUHJvdmlkZXI6OlNvdXJjZVByb3ZpZGVyKGNvbnN0IFNvdXJj
ZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJpbmcmJiBzb3VyY2VVUkwsIGNvbnN0IFRleHRQb3Np
dGlvbiYgc3RhcnRQb3NpdGlvbiwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUp
CiAgICAgOiBtX3NvdXJjZVR5cGUoc291cmNlVHlwZSkKLSAgICAsIG1fdXJsKFdURk1vdmUodXJs
KSkKICAgICAsIG1fc291cmNlT3JpZ2luKHNvdXJjZU9yaWdpbikKKyAgICAsIG1fc291cmNlVVJM
KFdURk1vdmUoc291cmNlVVJMKSkKICAgICAsIG1fc3RhcnRQb3NpdGlvbihzdGFydFBvc2l0aW9u
KQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQ
cm92aWRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5o
CmluZGV4IGI2MmYzOTMyYzIxMzIyOTk2NjllMmQwNTI5OTdmNzI1Yjc2MDAzYzAuLjEyOWVlNWM0
OWUyNDdhZmNkOWYwOGQ1OWVmZTlmYjEyOGY5YWJiZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRl
ICJDb2RlU3BlY2lhbGl6YXRpb25LaW5kLmgiCiAjaW5jbHVkZSAiU291cmNlT3JpZ2luLmgiCiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvVGV4dFBvc2l0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKQEAgLTU0LDcgKzUzLDcgQEAgY2xhc3MgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jazsK
ICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnRwdHJfdCBudWxsSUQgPSAxOwog
ICAgICAgICAKLSAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgU291cmNlUHJvdmlkZXIoY29uc3Qg
U291cmNlT3JpZ2luJiwgVVJMJiYsIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlvbiwg
U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlKTsKKyAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgU291
cmNlUHJvdmlkZXIoY29uc3QgU291cmNlT3JpZ2luJiwgU3RyaW5nJiYgc291cmNlVVJMLCBjb25z
dCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSk7
CiAKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB+U291cmNlUHJvdmlkZXIoKTsK
IApAQCAtNzEsNyArNzAsOSBAQCBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOwogICAg
ICAgICB9CiAKICAgICAgICAgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4oKSBjb25z
dCB7IHJldHVybiBtX3NvdXJjZU9yaWdpbjsgfQotICAgICAgICBjb25zdCBVUkwmIHVybCgpIGNv
bnN0IHsgcmV0dXJuIG1fdXJsOyB9CisKKyAgICAgICAgLy8gVGhpcyBpcyBOT1QgdGhlIHBhdGgg
dGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgY29tcHV0aW5nIHJlbGF0aXZlIHBhdGhzIGZyb20gYSBz
Y3JpcHQuIFVzZSBTb3VyY2VPcmlnaW4ncyBVUkwgZm9yIHRoYXQsIHRoZSB2YWx1ZXMgbWF5IG9y
IG1heSBub3QgYmUgdGhlIHNhbWUuLi4KKyAgICAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwo
KSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVVSTDsgfQogICAgICAgICBjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTERpcmVjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlVVJMRGlyZWN0aXZlOyB9
CiAgICAgICAgIGNvbnN0IFN0cmluZyYgc291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZTsgfQogCkBAIC05Miw4ICs5Myw4
IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7CiAgICAgICAgIEpTX0VYUE9SVF9Q
UklWQVRFIHZvaWQgZ2V0SUQoKTsKIAogICAgICAgICBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUg
bV9zb3VyY2VUeXBlOwotICAgICAgICBVUkwgbV91cmw7CiAgICAgICAgIFNvdXJjZU9yaWdpbiBt
X3NvdXJjZU9yaWdpbjsKKyAgICAgICAgU3RyaW5nIG1fc291cmNlVVJMOwogICAgICAgICBTdHJp
bmcgbV9zb3VyY2VVUkxEaXJlY3RpdmU7CiAgICAgICAgIFN0cmluZyBtX3NvdXJjZU1hcHBpbmdV
UkxEaXJlY3RpdmU7CiAgICAgICAgIFRleHRQb3NpdGlvbiBtX3N0YXJ0UG9zaXRpb247CkBAIC0x
MDQsOSArMTA1LDkgQEAgY2xhc3MgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jazsKICAgICBjbGFz
cyBTdHJpbmdTb3VyY2VQcm92aWRlciA6IHB1YmxpYyBTb3VyY2VQcm92aWRlciB7CiAgICAgICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEX1dJVEhfSEVBUF9JREVOVElGSUVSKFN0cmluZ1NvdXJj
ZVByb3ZpZGVyKTsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8U3RyaW5nU291cmNl
UHJvdmlkZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2lu
JiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVybCwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0
aW9uID0gVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBl
ID0gU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtKQorICAgICAgICBzdGF0aWMgUmVm
PFN0cmluZ1NvdXJjZVByb3ZpZGVyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0
IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJpbmcgc291cmNlVVJMLCBjb25zdCBUZXh0
UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJT
b3VyY2VUeXBlIHNvdXJjZVR5cGUgPSBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0p
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0cmluZ1NvdXJj
ZVByb3ZpZGVyKHNvdXJjZSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKHVybCksIHN0YXJ0UG9zaXRp
b24sIHNvdXJjZVR5cGUpKTsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0cmlu
Z1NvdXJjZVByb3ZpZGVyKHNvdXJjZSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKHNvdXJjZVVSTCks
IHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAg
ICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0IG92ZXJyaWRlCkBAIC0xMjAsOCArMTIxLDggQEAgY2xh
c3MgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jazsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVk
OgotICAgICAgICBTdHJpbmdTb3VyY2VQcm92aWRlcihjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29u
c3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVybCwgY29uc3QgVGV4dFBvc2l0
aW9uJiBzdGFydFBvc2l0aW9uLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSkK
LSAgICAgICAgICAgIDogU291cmNlUHJvdmlkZXIoc291cmNlT3JpZ2luLCBXVEZNb3ZlKHVybCks
IHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpCisgICAgICAgIFN0cmluZ1NvdXJjZVByb3ZpZGVy
KGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwg
U3RyaW5nJiYgc291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNv
dXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlKQorICAgICAgICAgICAgOiBTb3VyY2VQ
cm92aWRlcihzb3VyY2VPcmlnaW4sIFdURk1vdmUoc291cmNlVVJMKSwgc3RhcnRQb3NpdGlvbiwg
c291cmNlVHlwZSkKICAgICAgICAgICAgICwgbV9zb3VyY2Uoc291cmNlLmlzTnVsbCgpID8gKlN0
cmluZ0ltcGw6OmVtcHR5KCkgOiAqc291cmNlLmltcGwoKSkKICAgICAgICAgewogICAgICAgICB9
CkBAIC0xMzMsOSArMTM0LDkgQEAgY2xhc3MgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jazsKICNp
ZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgY2xhc3MgV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRl
ciBmaW5hbCA6IHB1YmxpYyBTb3VyY2VQcm92aWRlciB7CiAgICAgcHVibGljOgotICAgICAgICBz
dGF0aWMgUmVmPFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI+IGNyZWF0ZShWZWN0b3I8dWludDhf
dD4mJiBkYXRhLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsKQor
ICAgICAgICBzdGF0aWMgUmVmPFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXI+IGNyZWF0ZShWZWN0
b3I8dWludDhfdD4mJiBkYXRhLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3Ry
aW5nIHNvdXJjZVVSTCkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgV2ViQXNzZW1ibHlTb3VyY2VQcm92aWRlcihXVEZNb3ZlKGRhdGEpLCBzb3VyY2VPcmlnaW4s
IFdURk1vdmUodXJsKSkpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQXNz
ZW1ibHlTb3VyY2VQcm92aWRlcihXVEZNb3ZlKGRhdGEpLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUo
c291cmNlVVJMKSkpOwogICAgICAgICB9CiAKICAgICAgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0
IGZpbmFsCkBAIC0xNTQsOCArMTU1LDggQEAgY2xhc3MgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9j
azsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgV2ViQXNzZW1ibHlTb3VyY2VQ
cm92aWRlcihWZWN0b3I8dWludDhfdD4mJiBkYXRhLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJj
ZU9yaWdpbiwgVVJMJiYgdXJsKQotICAgICAgICAgICAgOiBTb3VyY2VQcm92aWRlcihzb3VyY2VP
cmlnaW4sIFdURk1vdmUodXJsKSwgVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNl
VHlwZTo6V2ViQXNzZW1ibHkpCisgICAgICAgIFdlYkFzc2VtYmx5U291cmNlUHJvdmlkZXIoVmVj
dG9yPHVpbnQ4X3Q+JiYgZGF0YSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0
cmluZyYmIHNvdXJjZVVSTCkKKyAgICAgICAgICAgIDogU291cmNlUHJvdmlkZXIoc291cmNlT3Jp
Z2luLCBXVEZNb3ZlKHNvdXJjZVVSTCksIFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNv
dXJjZVR5cGU6OldlYkFzc2VtYmx5KQogICAgICAgICAgICAgLCBtX3NvdXJjZSgiW1dlYkFzc2Vt
Ymx5IHNvdXJjZV0iKQogICAgICAgICAgICAgLCBtX2RhdGEoV1RGTW92ZShkYXRhKSkKICAgICAg
ICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlw
ZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkVHlwZXMuY3BwCmlu
ZGV4IDNkMjUwNjRkZDkyMzcxM2ExNDRkODFmZmNlYjgyMjUyNTEyYjRiMmEuLjIyZjcxNjRlMDlm
N2IzNjUwNGZmODg4YmZjOWYxYzNkNDQ0ZjNkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NhY2hlZFR5cGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9DYWNoZWRUeXBlcy5jcHAKQEAgLTE1MTAsMTIgKzE1MTAsMTIgQEAgY2xhc3Mg
Q2FjaGVkU291cmNlT3JpZ2luIDogcHVibGljIENhY2hlZE9iamVjdDxTb3VyY2VPcmlnaW4+IHsK
IHB1YmxpYzoKICAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTb3VyY2VP
cmlnaW4mIHNvdXJjZU9yaWdpbikKICAgICB7Ci0gICAgICAgIG1fc3RyaW5nLmVuY29kZShlbmNv
ZGVyLCBzb3VyY2VPcmlnaW4uc3RyaW5nKCkpOworICAgICAgICBtX3N0cmluZy5lbmNvZGUoZW5j
b2Rlciwgc291cmNlT3JpZ2luLnVybCgpLnN0cmluZygpKTsKICAgICB9CiAKICAgICBTb3VyY2VP
cmlnaW4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1
cm4gU291cmNlT3JpZ2luIHsgbV9zdHJpbmcuZGVjb2RlKGRlY29kZXIpIH07CisgICAgICAgIHJl
dHVybiBTb3VyY2VPcmlnaW4geyBVUkwoeyB9LCBtX3N0cmluZy5kZWNvZGUoZGVjb2RlcikpIH07
CiAgICAgfQogCiBwcml2YXRlOgpAQCAtMTU0Niw3ICsxNTQ2LDcgQEAgcHVibGljOgogICAgIHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNvdXJjZVByb3ZpZGVyJiBzb3VyY2VQ
cm92aWRlcikKICAgICB7CiAgICAgICAgIG1fc291cmNlT3JpZ2luLmVuY29kZShlbmNvZGVyLCBz
b3VyY2VQcm92aWRlci5zb3VyY2VPcmlnaW4oKSk7Ci0gICAgICAgIG1fdXJsLmVuY29kZShlbmNv
ZGVyLCBzb3VyY2VQcm92aWRlci51cmwoKS5zdHJpbmcoKSk7CisgICAgICAgIG1fc291cmNlVVJM
LmVuY29kZShlbmNvZGVyLCBzb3VyY2VQcm92aWRlci5zb3VyY2VVUkwoKSk7CiAgICAgICAgIG1f
c291cmNlVVJMRGlyZWN0aXZlLmVuY29kZShlbmNvZGVyLCBzb3VyY2VQcm92aWRlci5zb3VyY2VV
UkxEaXJlY3RpdmUoKSk7CiAgICAgICAgIG1fc291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZS5lbmNv
ZGUoZW5jb2Rlciwgc291cmNlUHJvdmlkZXIuc291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZSgpKTsK
ICAgICAgICAgbV9zdGFydFBvc2l0aW9uLmVuY29kZShlbmNvZGVyLCBzb3VyY2VQcm92aWRlci5z
dGFydFBvc2l0aW9uKCkpOwpAQCAtMTU2MCw3ICsxNTYwLDcgQEAgcHVibGljOgogCiBwcm90ZWN0
ZWQ6CiAgICAgQ2FjaGVkU291cmNlT3JpZ2luIG1fc291cmNlT3JpZ2luOwotICAgIENhY2hlZFN0
cmluZyBtX3VybDsKKyAgICBDYWNoZWRTdHJpbmcgbV9zb3VyY2VVUkw7CiAgICAgQ2FjaGVkU3Ry
aW5nIG1fc291cmNlVVJMRGlyZWN0aXZlOwogICAgIENhY2hlZFN0cmluZyBtX3NvdXJjZU1hcHBp
bmdVUkxEaXJlY3RpdmU7CiAgICAgQ2FjaGVkVGV4dFBvc2l0aW9uIG1fc3RhcnRQb3NpdGlvbjsK
QEAgLTE1ODAsMTAgKzE1ODAsMTAgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgU3RyaW5nIGRl
Y29kZWRTb3VyY2UgPSBtX3NvdXJjZS5kZWNvZGUoZGVjb2Rlcik7CiAgICAgICAgIFNvdXJjZU9y
aWdpbiBkZWNvZGVkU291cmNlT3JpZ2luID0gbV9zb3VyY2VPcmlnaW4uZGVjb2RlKGRlY29kZXIp
OwotICAgICAgICBTdHJpbmcgZGVjb2RlZFVSTCA9IG1fdXJsLmRlY29kZShkZWNvZGVyKTsKKyAg
ICAgICAgU3RyaW5nIGRlY29kZWRTb3VyY2VVUkwgPSBtX3NvdXJjZVVSTC5kZWNvZGUoZGVjb2Rl
cik7CiAgICAgICAgIFRleHRQb3NpdGlvbiBkZWNvZGVkU3RhcnRQb3NpdGlvbiA9IG1fc3RhcnRQ
b3NpdGlvbi5kZWNvZGUoZGVjb2Rlcik7CiAKLSAgICAgICAgUmVmPFN0cmluZ1NvdXJjZVByb3Zp
ZGVyPiBzb3VyY2VQcm92aWRlciA9IFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoZGVjb2Rl
ZFNvdXJjZSwgZGVjb2RlZFNvdXJjZU9yaWdpbiwgVVJMKFVSTCgpLCBkZWNvZGVkVVJMKSwgZGVj
b2RlZFN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpOworICAgICAgICBSZWY8U3RyaW5nU291cmNl
UHJvdmlkZXI+IHNvdXJjZVByb3ZpZGVyID0gU3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShk
ZWNvZGVkU291cmNlLCBkZWNvZGVkU291cmNlT3JpZ2luLCBkZWNvZGVkU291cmNlVVJMLCBkZWNv
ZGVkU3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSk7CiAgICAgICAgIEJhc2U6OmRlY29kZShkZWNv
ZGVyLCBzb3VyY2VQcm92aWRlci5nZXQoKSk7CiAgICAgICAgIHJldHVybiAmc291cmNlUHJvdmlk
ZXIubGVha1JlZigpOwogICAgIH0KQEAgLTE2MDcsMTEgKzE2MDcsMTEgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGRlY29kZWREYXRhOwogICAgICAgICBTb3VyY2VP
cmlnaW4gZGVjb2RlZFNvdXJjZU9yaWdpbiA9IG1fc291cmNlT3JpZ2luLmRlY29kZShkZWNvZGVy
KTsKLSAgICAgICAgU3RyaW5nIGRlY29kZWRVUkwgPSBtX3VybC5kZWNvZGUoZGVjb2Rlcik7Cisg
ICAgICAgIFN0cmluZyBkZWNvZGVkU291cmNlVVJMID0gbV9zb3VyY2VVUkwuZGVjb2RlKGRlY29k
ZXIpOwogCiAgICAgICAgIG1fZGF0YS5kZWNvZGUoZGVjb2RlciwgZGVjb2RlZERhdGEpOwogCi0g
ICAgICAgIFJlZjxXZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyPiBzb3VyY2VQcm92aWRlciA9IFdl
YkFzc2VtYmx5U291cmNlUHJvdmlkZXI6OmNyZWF0ZShXVEZNb3ZlKGRlY29kZWREYXRhKSwgZGVj
b2RlZFNvdXJjZU9yaWdpbiwgVVJMKFVSTCgpLCBkZWNvZGVkVVJMKSk7CisgICAgICAgIFJlZjxX
ZWJBc3NlbWJseVNvdXJjZVByb3ZpZGVyPiBzb3VyY2VQcm92aWRlciA9IFdlYkFzc2VtYmx5U291
cmNlUHJvdmlkZXI6OmNyZWF0ZShXVEZNb3ZlKGRlY29kZWREYXRhKSwgZGVjb2RlZFNvdXJjZU9y
aWdpbiwgZGVjb2RlZFNvdXJjZVVSTCk7CiAgICAgICAgIEJhc2U6OmRlY29kZShkZWNvZGVyLCBz
b3VyY2VQcm92aWRlci5nZXQoKSk7CiAKICAgICAgICAgcmV0dXJuICZzb3VyY2VQcm92aWRlci5s
ZWFrUmVmKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAKaW5kZXggMTVj
Y2E5NTE2MjMzOWUyZDhmNTc0OTc4YmFjMzdmNTQ2NmQ2NzhkZC4uZjQ3M2I4MTgxZWMyZjAyYTBj
Yzc4YTI2YzBjMjBkYzk2MzFmZGM3NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9yLmNwcApAQCAtMjMwLDcgKzIzMCw3IEBAIHZvaWQgYWRkRXJyb3JJbmZvKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmosIGJvb2wgdXNlQ3VycmVudEZyCiAKIEpT
T2JqZWN0KiBhZGRFcnJvckluZm8oVk0mIHZtLCBKU09iamVjdCogZXJyb3IsIGludCBsaW5lLCBj
b25zdCBTb3VyY2VDb2RlJiBzb3VyY2UpCiB7Ci0gICAgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwg
PSBzb3VyY2UucHJvdmlkZXIoKS0+dXJsKCkuc3RyaW5nKCk7CisgICAgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkwgPSBzb3VyY2UucHJvdmlkZXIoKS0+c291cmNlVVJMKCk7CiAgICAgCiAgICAgLy8g
VGhlIHB1dERpcmVjdCgpIGNhbGxzIGJlbG93IHNob3VsZCByZWFsbHkgYmUgcHV0KCkgc28gdGhh
dCB0aGV5IHRyaWdnZXIgbWF0ZXJpYWxpemF0aW9uIG9mCiAgICAgLy8gdGhlIGxpbmUvc291cmNl
VVJMIHByb3BlcnRpZXMuIE90aGVyd2lzZSwgd2hhdCB3ZSBzZXQgaGVyZSB3aWxsIGp1c3QgYmUg
b3ZlcndyaXR0ZW4gbGF0ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IDEyNjE0ZGVkYTM5NTZiYTQ0ZjIwODI5
ZGRkNDkwNmYwYjRmMjdmOGMuLjRjMTAxNmY4Nzk4ZGRhYzNhY2FlMTE2ZDllYzEyMWE0NDZmYWNh
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9u
Q29uc3RydWN0b3IuY3BwCkBAIC0xNDgsNyArMTQ4LDcgQEAgSlNPYmplY3QqIGNvbnN0cnVjdEZ1
bmN0aW9uU2tpcHBpbmdFdmFsRW5hYmxlZENoZWNrKAogICAgICAgICBwcm9ncmFtID0gYnVpbGRl
ci50b1N0cmluZygpOwogICAgIH0KIAotICAgIFNvdXJjZUNvZGUgc291cmNlID0gbWFrZVNvdXJj
ZShwcm9ncmFtLCBzb3VyY2VPcmlnaW4sIFVSTCh7IH0sIHNvdXJjZVVSTCksIHBvc2l0aW9uKTsK
KyAgICBTb3VyY2VDb2RlIHNvdXJjZSA9IG1ha2VTb3VyY2UocHJvZ3JhbSwgc291cmNlT3JpZ2lu
LCBzb3VyY2VVUkwsIHBvc2l0aW9uKTsKICAgICBKU09iamVjdCogZXhjZXB0aW9uID0gbnVsbHB0
cjsKICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9uID0gRnVuY3Rpb25FeGVjdXRhYmxl
Ojpmcm9tR2xvYmFsQ29kZShmdW5jdGlvbk5hbWUsIGdsb2JhbE9iamVjdCwgc291cmNlLCBleGNl
cHRpb24sIG92ZXJyaWRlTGluZU51bWJlciwgZnVuY3Rpb25Db25zdHJ1Y3RvclBhcmFtZXRlcnNF
bmRQb3NpdGlvbik7CiAgICAgaWYgKFVOTElLRUxZKCFmdW5jdGlvbikpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaAppbmRleCBmNGI0MjVi
Y2ZiMDI0Y2Q4N2I2ZWQyYzE3ODgwN2NhZjAxY2JkOTA2Li41MmQ5MjE5MGQwMjQxODM1NTUwMDZk
NmRlMWE3MDVhMDE1M2JmYTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TY3JpcHRFeGVjdXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2NyaXB0RXhlY3V0YWJsZS5oCkBAIC00Nyw3ICs0Nyw4IEBAIHB1YmxpYzoKICAgICBjb25z
dCBTb3VyY2VDb2RlJiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZTsgfQogICAgIGlu
dHB0cl90IHNvdXJjZUlEKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UucHJvdmlkZXJJRCgpOyB9
CiAgICAgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4oKSBjb25zdCB7IHJldHVybiBt
X3NvdXJjZS5wcm92aWRlcigpLT5zb3VyY2VPcmlnaW4oKTsgfQotICAgIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UucHJvdmlkZXIoKS0+dXJsKCkuc3Ry
aW5nKCk7IH0KKyAgICAvLyBUaGlzIGlzIE5PVCB0aGUgcGF0aCB0aGF0IHNob3VsZCBiZSB1c2Vk
IGZvciBjb21wdXRpbmcgcmVsYXRpdmUgcGF0aHMgZnJvbSBhIHNjcmlwdC4gVXNlIFNvdXJjZU9y
aWdpbidzIFVSTCBmb3IgdGhhdCwgdGhlIHZhbHVlcyBtYXkgb3IgbWF5IG5vdCBiZSB0aGUgc2Ft
ZS4uLiBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgZm9yIGBlcnJvci5zb3VyY2VVUkxgIGFuZCBz
dGFjayB0cmFjZXMuCisgICAgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwoKSBjb25zdCB7IHJldHVy
biBtX3NvdXJjZS5wcm92aWRlcigpLT5zb3VyY2VVUkwoKTsgfQogICAgIGludCBmaXJzdExpbmUo
KSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5maXJzdExpbmUoKS5vbmVCYXNlZEludCgpOyB9CiAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgaW50IGxhc3RMaW5lKCkgY29uc3Q7CiAgICAgdW5zaWduZWQg
c3RhcnRDb2x1bW4oKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5zdGFydENvbHVtbigpLm9uZUJh
c2VkSW50KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nv
dXJjZU9yaWdpbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU291cmNlT3JpZ2lu
LmgKaW5kZXggN2MzY2RlYjdjOWFkYjIxYjg1Mjk2YTQzY2M2Nzk5NTAwMThiNzJiZC4uOGU3YTA5
MDUzM2U3NWJhMzg1ZThiYTU2MGFmNWFmNWJiZjJhODFhZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU291cmNlT3JpZ2luLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU291cmNlT3JpZ2luLmgKQEAgLTI2LDMyICsyNiwzMyBAQAogI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlICJTY3JpcHRGZXRjaGVyLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIAog
Y2xhc3MgU291cmNlT3JpZ2luIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBTb3VyY2VPcmlnaW4o
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCi0gICAgICAgIDogbV9zdHJpbmcoc3RyaW5nKQorICAgIGV4
cGxpY2l0IFNvdXJjZU9yaWdpbihjb25zdCBVUkwmIHVybCkKKyAgICAgICAgOiBtX3VybCh1cmwp
CiAgICAgewogICAgIH0KIAotICAgIGV4cGxpY2l0IFNvdXJjZU9yaWdpbihjb25zdCBTdHJpbmcm
IHN0cmluZywgUmVmPFNjcmlwdEZldGNoZXI+JiYgZmV0Y2hlcikKLSAgICAgICAgOiBtX3N0cmlu
ZyhzdHJpbmcpCisgICAgZXhwbGljaXQgU291cmNlT3JpZ2luKGNvbnN0IFVSTCYgdXJsLCBSZWY8
U2NyaXB0RmV0Y2hlcj4mJiBmZXRjaGVyKQorICAgICAgICA6IG1fdXJsKHVybCkKICAgICAgICAg
LCBtX2ZldGNoZXIoV1RGTW92ZShmZXRjaGVyKSkKICAgICB7CiAgICAgfQogCiAgICAgU291cmNl
T3JpZ2luKCkgPSBkZWZhdWx0OwogCi0gICAgY29uc3QgU3RyaW5nJiBzdHJpbmcoKSBjb25zdCB7
IHJldHVybiBtX3N0cmluZzsgfQotICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gbV9z
dHJpbmcuaXNOdWxsKCk7IH0KKyAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1f
dXJsOyB9CisgICAgY29uc3QgU3RyaW5nJiBzdHJpbmcoKSBjb25zdCB7IHJldHVybiBtX3VybC5z
dHJpbmcoKTsgfQorICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gdXJsKCkuaXNOdWxs
KCk7IH0KIAogICAgIFNjcmlwdEZldGNoZXIqIGZldGNoZXIoKSBjb25zdCB7IHJldHVybiBtX2Zl
dGNoZXIuZ2V0KCk7IH0KIAogcHJpdmF0ZToKLSAgICBTdHJpbmcgbV9zdHJpbmc7CisgICAgVVJM
IG1fdXJsOwogICAgIFJlZlB0cjxTY3JpcHRGZXRjaGVyPiBtX2ZldGNoZXI7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UaHJvd1Njb3BlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rocm93U2NvcGUuY3BwCmluZGV4IGEzMWNlOWRk
M2IwNDIyODNkZjdkY2Q4NTVkYThlZjBhMjY0OTc1MDguLmRlYzY5YTQ4MzE2ZTE2YWU1MzdiNTgx
NWQwNmUwY2JiNzRmYTE5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Rocm93U2NvcGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Ro
cm93U2NvcGUuY3BwCkBAIC04MCwxOCArODAsMTIgQEAgRXhjZXB0aW9uKiBUaHJvd1Njb3BlOjp0
aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFeGNlcHRpb24qIGUK
IAogRXhjZXB0aW9uKiBUaHJvd1Njb3BlOjp0aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGVycm9yKQogewotICAgIGlmICghZXJyb3IuaXNDZWxsKCkg
fHwgIWpzRHluYW1pY0Nhc3Q8RXhjZXB0aW9uKj4obV92bSwgZXJyb3IuYXNDZWxsKCkpKQorICAg
IGlmICghZXJyb3IuaXNDZWxsKCkgfHwgZXJyb3IuaXNPYmplY3QoKSB8fCAhanNEeW5hbWljQ2Fz
dDxFeGNlcHRpb24qPihtX3ZtLCBlcnJvci5hc0NlbGwoKSkpCiAgICAgICAgIG1fdm0udmVyaWZ5
RXhjZXB0aW9uQ2hlY2tOZWVkSXNTYXRpc2ZpZWQobV9yZWN1cnNpb25EZXB0aCwgbV9sb2NhdGlv
bik7CiAgICAgCiAgICAgcmV0dXJuIG1fdm0udGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBl
cnJvcik7CiB9CiAKLUV4Y2VwdGlvbiogVGhyb3dTY29wZTo6dGhyb3dFeGNlcHRpb24oSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iaikKLXsKLSAgICBtX3ZtLnZlcmlm
eUV4Y2VwdGlvbkNoZWNrTmVlZElzU2F0aXNmaWVkKG1fcmVjdXJzaW9uRGVwdGgsIG1fbG9jYXRp
b24pOwotICAgIHJldHVybiBtX3ZtLnRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgb2JqKTsK
LX0KLQogdm9pZCBUaHJvd1Njb3BlOjpzaW11bGF0ZVRocm93KCkKIHsKICAgICBSRUxFQVNFX0FT
U0VSVChtX3ZtLm1fdG9wRXhjZXB0aW9uU2NvcGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVGhyb3dTY29wZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVGhyb3dTY29wZS5oCmluZGV4IDY5MzIxOTdlODA1OGI5ZDY4MjllMTY2NmFhZDAwNzQx
NjQzMTYxYTQuLmNmMzM2ZmMyNDNiNjA0YThlN2Q1ZjE0YTgxYjYzMTgyZjM4ODc4YWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rocm93U2NvcGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UaHJvd1Njb3BlLmgKQEAgLTQ5LDcgKzQ5LDYg
QEAgcHVibGljOgogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgRXhjZXB0aW9uKiB0aHJvd0V4Y2Vw
dGlvbihKU0dsb2JhbE9iamVjdCosIEV4Y2VwdGlvbiopOwogICAgIEpTX0VYUE9SVF9QUklWQVRF
IEV4Y2VwdGlvbiogdGhyb3dFeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKLSAg
ICBKU19FWFBPUlRfUFJJVkFURSBFeGNlcHRpb24qIHRocm93RXhjZXB0aW9uKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNPYmplY3QqKTsKIAogICAgIHZvaWQgcmVsZWFzZSgpIHsgbV9pc1JlbGVhc2VkID0g
dHJ1ZTsgfQogCkBAIC03OSw3ICs3OCw2IEBAIHB1YmxpYzoKIAogICAgIEFMV0FZU19JTkxJTkUg
RXhjZXB0aW9uKiB0aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
eGNlcHRpb24qIGV4Y2VwdGlvbikgeyByZXR1cm4gbV92bS50aHJvd0V4Y2VwdGlvbihnbG9iYWxP
YmplY3QsIGV4Y2VwdGlvbik7IH0KICAgICBBTFdBWVNfSU5MSU5FIEV4Y2VwdGlvbiogdGhyb3dF
eGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkgeyBy
ZXR1cm4gbV92bS50aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHZhbHVlKTsgfQotICAgIEFM
V0FZU19JTkxJTkUgRXhjZXB0aW9uKiB0aHJvd0V4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU09iamVjdCogb2JqKSB7IHJldHVybiBtX3ZtLnRocm93RXhjZXB0aW9uKGds
b2JhbE9iamVjdCwgb2JqKTsgfQogCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHJlbGVhc2UoKSB7
IH0KIH07CkBAIC05OSw5ICs5NywxNiBAQCBBTFdBWVNfSU5MSU5FIEV4Y2VwdGlvbiogdGhyb3dF
eGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZQogICAgIHJl
dHVybiBzY29wZS50aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHZhbHVlKTsKIH0KIAotQUxX
QVlTX0lOTElORSBFeGNlcHRpb24qIHRocm93RXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFRocm93U2NvcGUmIHNjb3BlLCBKU09iamVjdCogb2JqKQorQUxXQVlTX0lOTElO
RSBFbmNvZGVkSlNWYWx1ZSB0aHJvd1ZNRXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFRocm93U2NvcGUmIHNjb3BlLCBFeGNlcHRpb24qIGV4Y2VwdGlvbikKIHsKLSAgICBy
ZXR1cm4gc2NvcGUudGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBvYmopOworICAgIHRocm93
RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGV4Y2VwdGlvbik7CisgICAgcmV0dXJuIGVu
Y29kZWRKU1ZhbHVlKCk7Cit9CisKK0FMV0FZU19JTkxJTkUgRW5jb2RlZEpTVmFsdWUgdGhyb3dW
TUV4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29w
ZSwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNj
b3BlLCB2YWx1ZSk7CisgICAgcmV0dXJuIGVuY29kZWRKU1ZhbHVlKCk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0
aW9uT3ZlcnJpZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92
ZXJyaWRlcy5jcHAKaW5kZXggZTA5Mzk2Zjc0MmVlZDc1M2I2ZGJlYTRjZDlhNzhlZjY2NTdkZDQ4
NS4uNDhiMmRhNWUyZjI2MWZjOWUwNmJlYWI3ZDk0ZmY3MTk0MGVmN2ZkNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwCkBAIC0xMzcs
NyArMTM3LDkgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZU92ZXJyaWRlSW5mbyhjb25zdCBTb3Vy
Y2VDb2RlJiBvcmlnQ29kZSwgY29uc3QgU3RyaW5nJiBuZXcKICAgICBuZXdQcm92aWRlclN0ci5h
cHBlbmQob3JpZ0hlYWRlcik7CiAgICAgbmV3UHJvdmlkZXJTdHIuYXBwZW5kKG5ld0JvZHkpOwog
Ci0gICAgUmVmPFNvdXJjZVByb3ZpZGVyPiBuZXdQcm92aWRlciA9IFN0cmluZ1NvdXJjZVByb3Zp
ZGVyOjpjcmVhdGUobmV3UHJvdmlkZXJTdHIsIFNvdXJjZU9yaWdpbiB7ICI8b3ZlcnJpZGRlbj4i
IH0sIFVSTCh7IH0sICI8b3ZlcnJpZGRlbj4iKSk7CisgICAgYXV0byBvdmVycmlkZGVuID0gIjxv
dmVycmlkZGVuPiJfczsKKyAgICBVUkwgdXJsKHsgfSwgb3ZlcnJpZGRlbik7CisgICAgUmVmPFNv
dXJjZVByb3ZpZGVyPiBuZXdQcm92aWRlciA9IFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUo
bmV3UHJvdmlkZXJTdHIsIFNvdXJjZU9yaWdpbiB7IHVybCB9LCBvdmVycmlkZGVuKTsKIAogICAg
IGluZm8uZmlyc3RMaW5lID0gMTsKICAgICBpbmZvLmxpbmVDb3VudCA9IDE7IC8vIEZha2luZyBp
dC4gVGhpcyBkb2Vzbid0IHJlYWxseSBtYXR0ZXIgZm9yIG5vdy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAppbmRleCBlMTJmNDgxNmMzZTE0NDI1NWMxYTRmNTMy
YTI4Njc3ZGRiM2QyNTU2Li44ZDY3ZjUzMTdjNjY0NTU1NDZmYWZiNzdlYWRiMjdmMjVhNTQ1Zjkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCkBAIC0xNjQ4
LDExICsxNjQ4LDQ3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gSlNEb2xs
YXJWTTo6c19pbmZvID0geyAiRG9sbGFyVk0iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTRG9sbGFyVk0pIH07CiAKLS8vIFRyaWdnZXJzIGEg
Y3Jhc2ggaW1tZWRpYXRlbHkuCi0vLyBVc2FnZTogJHZtLmNyYXNoKCkKLXN0YXRpYyBOT19SRVRV
Uk5fRFVFX1RPX0NSQVNIIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmFz
aChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZG9Q
cmludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
Ym9vbCBhZGRMaW5lRmVlZCkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3Bl
OworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9iamVjdC0+dm0o
KSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNhbGxGcmFtZS0+YXJndW1lbnRDb3Vu
dCgpOyArK2kpIHsKKyAgICAgICAgSlNWYWx1ZSBhcmcgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFy
Z3VtZW50KGkpOworICAgICAgICBpZiAoYXJnLmlzQ2VsbCgpCisgICAgICAgICAgICAmJiAhYXJn
LmlzT2JqZWN0KCkKKyAgICAgICAgICAgICYmICFhcmcuaXNTdHJpbmcoKQorICAgICAgICAgICAg
JiYgIWFyZy5pc0JpZ0ludCgpKSB7CisgICAgICAgICAgICBkYXRhTG9nKGFyZyk7CisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgYXJnU3RyID0gY2FsbEZy
YW1lLT51bmNoZWNrZWRBcmd1bWVudChpKS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOworICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICAg
ICAgZGF0YUxvZyhhcmdTdHIpOworICAgIH0KKyAgICBpZiAoYWRkTGluZUZlZWQpCisgICAgICAg
IGRhdGFMb2coIlxuIik7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKK30KKworLy8gVHJpZ2dlcnMgYSBjcmFzaCBhZnRlciBkdW1waW5nIGFueSBwYXJhbWF0ZXIg
cGFzc2VkIHRvIGl0LgorLy8gVXNhZ2U6ICR2bS5jcmFzaCguLi4pCitzdGF0aWMgTk9fUkVUVVJO
X0RVRV9UT19DUkFTSCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3Jhc2go
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7Cisg
ICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKKworICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7
CisgICAgaWYgKGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpKSB7CisgICAgICAgIGRhdGFMb2dM
bigiRHVtcGluZyAiLCBjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSwgIiB2YWx1ZXMgYmVmb3Jl
IGNyYXNoaW5nOiIpOworICAgICAgICBjb25zdCBib29sIGFkZExpbmVGZWVkID0gdHJ1ZTsKKyAg
ICAgICAgZG9QcmludChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYWRkTGluZUZlZWQpOworICAg
ICAgICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkpIHsKKyAgICAgICAgICAgIEpTVmFsdWUgdmFsdWUg
PSBzY29wZS5leGNlcHRpb24oKS0+dmFsdWUoKTsKKyAgICAgICAgICAgIHNjb3BlLmNsZWFyRXhj
ZXB0aW9uKCk7CisgICAgICAgICAgICBkYXRhTG9nTG4oIkVycm9yIHRocm93biB3aGlsZSBjcmFz
aGluZzogIiwgdmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KSk7CisgICAgICAgIH0KKyAg
ICB9CisKICAgICBDUkFTSCgpOwogfQogCkBAIC0yMDI4LDI4ICsyMDY0LDYgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wQnl0ZWNvZGVGb3IoSlNHbG9i
YWxPYmplY3QqIGdsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgZG9QcmludChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgYm9vbCBhZGRMaW5lRmVlZCkKLXsKLSAg
ICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwotICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9iamVjdC0+dm0oKSk7Ci0gICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKLSAgICAgICAgSlNW
YWx1ZSBhcmcgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KGkpOwotICAgICAgICBpZiAo
YXJnLmlzQ2VsbCgpCi0gICAgICAgICAgICAmJiAhYXJnLmlzT2JqZWN0KCkKLSAgICAgICAgICAg
ICYmICFhcmcuaXNTdHJpbmcoKQotICAgICAgICAgICAgJiYgIWFyZy5pc0JpZ0ludCgpKSB7Ci0g
ICAgICAgICAgICBkYXRhTG9nKGFyZyk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
fQotICAgICAgICBTdHJpbmcgYXJnU3RyID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudChp
KS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICAgICAgZGF0YUxvZyhhcmdTdHIpOwotICAg
IH0KLSAgICBpZiAoYWRkTGluZUZlZWQpCi0gICAgICAgIGRhdGFMb2coIlxuIik7Ci0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLX0KLQogLy8gUHJpbnRzIGEgc2Vy
aWVzIG9mIGNvbW1hIHNlcGFyYXRlIHN0cmluZ3Mgd2l0aG91dCBhcHBlbmRpbmcgYSBuZXdsaW5l
LgogLy8gVXNhZ2U6ICR2bS5kYXRhTG9nKHN0cjEsIHN0cjIsIHN0cjMpCiBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRhdGFMb2coSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9VUkwuY3BwIGIvU291cmNlL1dURi93dGYvVVJMLmNwcAppbmRleCA1OWYxNDViM2VhMjM1
OWMyZmMxZGI5ZmRiYzBiYjkxNTcwOWJlNGVkLi41Y2RjMzgwMWJhZjFiMDljODUyMDJlNDJkMDQw
YWFjNjczZDQwZmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1VSTC5jcHAKQEAgLTIxMyw3ICsyMTMsMTEgQEAgU3RyaW5nIFVSTDo6Zmls
ZVN5c3RlbVBhdGgoKSBjb25zdAogICAgIGlmICghaXNMb2NhbEZpbGUoKSkKICAgICAgICAgcmV0
dXJuIHsgfTsKIAotICAgIHJldHVybiBkZWNvZGVFc2NhcGVTZXF1ZW5jZXNGcm9tUGFyc2VkVVJM
KHBhdGgoKSk7CisgICAgYXV0byByZXN1bHQgPSBkZWNvZGVFc2NhcGVTZXF1ZW5jZXNGcm9tUGFy
c2VkVVJMKHBhdGgoKSk7CisjaWYgUExBVEZPUk0oV0lOKQorICAgIHJlc3VsdCA9IGZpbGVTeXN0
ZW1SZXByZXNlbnRhdGlvbihyZXN1bHQpOworI2VuZGlmCisgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9VUkwuaCBiL1NvdXJjZS9XVEYv
d3RmL1VSTC5oCmluZGV4IDhiMjJlMTZjNmNhNDAxMjVjMDJmNjg4MTIzMDI0OTU2ZTBmNDQ3OTYu
Ljk5YzkwNDczYjEzN2RiM2NjNjAyYjdjOTA2N2E1ZDJjMDg0ZWE5YjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1VSTC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1VSTC5oCkBAIC03Nyw2ICs3
NywxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CiAgICAgYm9vbCBpc1Zh
bGlkKCkgY29uc3Q7CiAKKyAgICAvLyBTaW5jZSB3ZSBvdmVybG9hZCBvcGVyYXRvciBOU1VSTCog
d2UgaGF2ZSB0aGlzIHRvIHByZXZlbnQgYWNjaWRlbnRhbGx5IHVzaW5nIHRoYXQgb3BlcmF0b3IK
KyAgICAvLyB3aGVuIHBsYWNpbmcgYSBVUkwgaW4gYW4gaWYgc3RhdG1lbnQuCisgICAgb3BlcmF0
b3IgYm9vbCgpIGNvbnN0ID0gZGVsZXRlOworCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHlvdSBj
YW4gc2V0IHRoZSBob3N0IGFuZCBwb3J0IGZvciB0aGUgVVJMLgogICAgIC8vIE5vbi1oaWVyYXJj
aGljYWwgVVJMcyBkb24ndCBoYXZlIGEgaG9zdCBhbmQgcG9ydC4KICAgICBib29sIGNhblNldEhv
c3RPclBvcnQoKSBjb25zdCB7IHJldHVybiBpc0hpZXJhcmNoaWNhbCgpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIu
aAppbmRleCAwZTgwMWZjYzk4ODI0Nzc1YTZkNWIyMDI1Y2YyYjc0ZTk2YjhhNzY3Li5mZjZjMjBm
ZGJhYWMxMjcyYTQ0ZDcyMDFjMWI1N2NkNzk1YWQzYjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgKQEAgLTQ4
LDcgKzQ4LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIENhY2hlZFNjcmlwdFNvdXJjZVBy
b3ZpZGVyKENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0LCBKU0M6OlNvdXJjZVByb3ZpZGVyU291
cmNlVHlwZSBzb3VyY2VUeXBlLCBSZWY8Q2FjaGVkU2NyaXB0RmV0Y2hlcj4mJiBzY3JpcHRGZXRj
aGVyKQotICAgICAgICA6IFNvdXJjZVByb3ZpZGVyKEpTQzo6U291cmNlT3JpZ2luIHsgY2FjaGVk
U2NyaXB0LT5yZXNwb25zZSgpLnVybCgpLnN0cmluZygpLCBXVEZNb3ZlKHNjcmlwdEZldGNoZXIp
IH0sIFVSTChjYWNoZWRTY3JpcHQtPnJlc3BvbnNlKCkudXJsKCkpLCBUZXh0UG9zaXRpb24oKSwg
c291cmNlVHlwZSkKKyAgICAgICAgOiBTb3VyY2VQcm92aWRlcihKU0M6OlNvdXJjZU9yaWdpbiB7
IGNhY2hlZFNjcmlwdC0+cmVzcG9uc2UoKS51cmwoKSwgV1RGTW92ZShzY3JpcHRGZXRjaGVyKSB9
LCBTdHJpbmcoY2FjaGVkU2NyaXB0LT5yZXNwb25zZSgpLnVybCgpLnN0cmluZygpKSwgVGV4dFBv
c2l0aW9uKCksIHNvdXJjZVR5cGUpCiAgICAgICAgICwgbV9jYWNoZWRTY3JpcHQoY2FjaGVkU2Ny
aXB0KQogICAgIHsKICAgICAgICAgbV9jYWNoZWRTY3JpcHQtPmFkZENsaWVudCgqdGhpcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAppbmRleCA0
NDhjM2JiMzA0NDJjZTQwMzBkM2U4ZWQ4MjY1NjRjYjQwYWQ4OGI1Li5iY2RhZjk1Nzg5Njc5Yzhk
ZDQxNmY5ODcxNGNiNmIxNTlmMzFmZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIEpTRXZlbnRM
aXN0ZW5lcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dAogICAgICAgICBKU0RPTVdpbmRvdyogd2luZG93ID0ganNDYXN0PEpTRE9NV2lu
ZG93Kj4oZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgaWYgKCF3aW5kb3ctPndyYXBwZWQoKS5pc0N1
cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
aWYgKHdhc0NyZWF0ZWRGcm9tTWFya3VwKCkgJiYgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY29u
dGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93SW5saW5lRXZlbnRIYW5kbGVycyhzb3VyY2VVUkwo
KSwgc291cmNlUG9zaXRpb24oKS5tX2xpbmUpKQorICAgICAgICBpZiAod2FzQ3JlYXRlZEZyb21N
YXJrdXAoKSAmJiAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jb250ZW50U2VjdXJpdHlQb2xpY3ko
KS0+YWxsb3dJbmxpbmVFdmVudEhhbmRsZXJzKHNvdXJjZVVSTCgpLnN0cmluZygpLCBzb3VyY2VQ
b3NpdGlvbigpLm1fbGluZSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIC8vIEZJWE1F
OiBJcyB0aGlzIGNoZWNrIG5lZWRlZCBmb3Igb3RoZXIgY29udGV4dHM/CiAgICAgICAgIFNjcmlw
dENvbnRyb2xsZXImIHNjcmlwdCA9IHdpbmRvdy0+d3JhcHBlZCgpLmZyYW1lKCktPnNjcmlwdCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaAppbmRleCBk
NTE1M2FmMTI1NWQzNWRjZGU0YTYyN2ZmYjE4ZTUwMWNmMjRlMzIzLi4xMTkzMjc4NDMyZmNkY2Ux
YTA3ZGZjNDY2ZDQ2OTFjNTc2ZDU2Y2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0V2ZW50TGlzdGVuZXIuaApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgSlNDOjpK
U09iamVjdCoganNGdW5jdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fanNGdW5jdGlvbi5n
ZXQoKTsgfQogICAgIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX3dyYXBwZXIuZ2V0KCk7IH0KIAotICAgIHZpcnR1YWwgU3RyaW5nIHNvdXJjZVVSTCgpIGNv
bnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CisgICAgdmlydHVhbCBVUkwgc291cmNlVVJMKCkgY29u
c3QgeyByZXR1cm4geyB9OyB9CiAgICAgdmlydHVhbCBUZXh0UG9zaXRpb24gc291cmNlUG9zaXRp
b24oKSBjb25zdCB7IHJldHVybiBUZXh0UG9zaXRpb24oKTsgfQogCiAgICAgU3RyaW5nIGZ1bmN0
aW9uTmFtZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xh
enlFdmVudExpc3RlbmVyLmNwcAppbmRleCAxYjRiMjFlZGFkNTEzNDkzZDhiNTFiZjJhNWY3MWVi
YmExNzMxZmRkLi4xNWM3YTE2NDBmZmMyMTQ1OGI4MWZlYWMxNzBhMmM2NzY3NWIxM2RkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNw
cApAQCAtNjYsNyArNjYsNyBAQCBzdGF0aWMgVGV4dFBvc2l0aW9uIGNvbnZlcnRaZXJvVG9PbmUo
Y29uc3QgVGV4dFBvc2l0aW9uJiBwb3NpdGlvbikKICAgICByZXR1cm4gcG9zaXRpb247CiB9CiAK
LUpTTGF6eUV2ZW50TGlzdGVuZXI6OkpTTGF6eUV2ZW50TGlzdGVuZXIoQ3JlYXRpb25Bcmd1bWVu
dHMmJiBhcmd1bWVudHMsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRp
b24mIHNvdXJjZVBvc2l0aW9uKQorSlNMYXp5RXZlbnRMaXN0ZW5lcjo6SlNMYXp5RXZlbnRMaXN0
ZW5lcihDcmVhdGlvbkFyZ3VtZW50cyYmIGFyZ3VtZW50cywgY29uc3QgVVJMJiBzb3VyY2VVUkws
IGNvbnN0IFRleHRQb3NpdGlvbiYgc291cmNlUG9zaXRpb24pCiAgICAgOiBKU0V2ZW50TGlzdGVu
ZXIobnVsbHB0ciwgYXJndW1lbnRzLndyYXBwZXIsIHRydWUsIG1haW5UaHJlYWROb3JtYWxXb3Js
ZCgpKQogICAgICwgbV9mdW5jdGlvbk5hbWUoYXJndW1lbnRzLmF0dHJpYnV0ZU5hbWUubG9jYWxO
YW1lKCkuc3RyaW5nKCkpCiAgICAgLCBtX2V2ZW50UGFyYW1ldGVyTmFtZShldmVudFBhcmFtZXRl
ck5hbWUoYXJndW1lbnRzLnNob3VsZFVzZVNWR0V2ZW50TmFtZSkpCkBAIC0xMzAsNyArMTMwLDcg
QEAgSlNPYmplY3QqIEpTTGF6eUV2ZW50TGlzdGVuZXI6OmluaXRpYWxpemVKU0Z1bmN0aW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGV4ZWMKICAgICBpZiAoIWRvY3VtZW50LmZyYW1lKCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgaWYgKCFkb2N1bWVudC5jb250ZW50U2VjdXJp
dHlQb2xpY3koKS0+YWxsb3dJbmxpbmVFdmVudEhhbmRsZXJzKG1fc291cmNlVVJMLCBtX3NvdXJj
ZVBvc2l0aW9uLm1fbGluZSkpCisgICAgaWYgKCFkb2N1bWVudC5jb250ZW50U2VjdXJpdHlQb2xp
Y3koKS0+YWxsb3dJbmxpbmVFdmVudEhhbmRsZXJzKG1fc291cmNlVVJMLnN0cmluZygpLCBtX3Nv
dXJjZVBvc2l0aW9uLm1fbGluZSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgYXV0
byYgc2NyaXB0ID0gZG9jdW1lbnQuZnJhbWUoKS0+c2NyaXB0KCk7CkBAIC0xNjAsNyArMTYwLDcg
QEAgSlNPYmplY3QqIEpTTGF6eUV2ZW50TGlzdGVuZXI6OmluaXRpYWxpemVKU0Z1bmN0aW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGV4ZWMKICAgICBKU09iamVjdCoganNGdW5jdGlvbiA9IGNv
bnN0cnVjdEZ1bmN0aW9uU2tpcHBpbmdFdmFsRW5hYmxlZENoZWNrKAogICAgICAgICBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBhcmdzLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBtX2Z1bmN0aW9u
TmFtZSksCiAgICAgICAgIFNvdXJjZU9yaWdpbiB7IG1fc291cmNlVVJMLCBDYWNoZWRTY3JpcHRG
ZXRjaGVyOjpjcmVhdGUoZG9jdW1lbnQuY2hhcnNldCgpKSB9LAotICAgICAgICBtX3NvdXJjZVVS
TCwgbV9zb3VyY2VQb3NpdGlvbiwgb3ZlcnJpZGVMaW5lTnVtYmVyKTsKKyAgICAgICAgbV9zb3Vy
Y2VVUkwuc3RyaW5nKCksIG1fc291cmNlUG9zaXRpb24sIG92ZXJyaWRlTGluZU51bWJlcik7CiAg
ICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkgewogICAgICAgICByZXBvcnRDdXJy
ZW50RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgICAgICBzY29wZS5jbGVhckV4
Y2VwdGlvbigpOwpAQCAtMTkxLDEyICsxOTEsMTIgQEAgUmVmUHRyPEpTTGF6eUV2ZW50TGlzdGVu
ZXI+IEpTTGF6eUV2ZW50TGlzdGVuZXI6OmNyZWF0ZShDcmVhdGlvbkFyZ3VtZW50cyYmIGFyZ3UK
IAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgYWJsZSB0byBwcm92aWRlIHNvdXJjZSBpbmZv
cm1hdGlvbiBmb3IgZnJhbWVsZXNzIGRvY3VtZW50cyB0b28gKGUuZy4gZm9yIGltcG9ydGluZyBu
b2RlcyBmcm9tIFhNTEh0dHBSZXF1ZXN0LnJlc3BvbnNlWE1MKS4KICAgICBUZXh0UG9zaXRpb24g
cG9zaXRpb247Ci0gICAgU3RyaW5nIHNvdXJjZVVSTDsKKyAgICBVUkwgc291cmNlVVJMOwogICAg
IGlmIChGcmFtZSogZnJhbWUgPSBhcmd1bWVudHMuZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAg
ICBpZiAoIWZyYW1lLT5zY3JpcHQoKS5jYW5FeGVjdXRlU2NyaXB0cyhBYm91dFRvQ3JlYXRlRXZl
bnRMaXN0ZW5lcikpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgcG9zaXRp
b24gPSBmcmFtZS0+c2NyaXB0KCkuZXZlbnRIYW5kbGVyUG9zaXRpb24oKTsKLSAgICAgICAgc291
cmNlVVJMID0gYXJndW1lbnRzLmRvY3VtZW50LnVybCgpLnN0cmluZygpOworICAgICAgICBzb3Vy
Y2VVUkwgPSBhcmd1bWVudHMuZG9jdW1lbnQudXJsKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSlNMYXp5RXZlbnRMaXN0ZW5lcihXVEZNb3ZlKGFyZ3VtZW50cyksIHNvdXJj
ZVVSTCwgcG9zaXRpb24pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTGF6eUV2ZW50TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6
eUV2ZW50TGlzdGVuZXIuaAppbmRleCAxNzllYjQzNzhkY2QyOGE0YjQzYmVlNzBiMzNlNTdiZWE5
ZThiNTEzLi43Mjg4NjlkZGJkZGIwOTMwMjU3OWFiZGUxZTY0ZjYwMjBlN2IyMmM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5oCkBAIC0z
OSwxMyArMzksMTMgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+SlNMYXp5RXZlbnRMaXN0ZW5l
cigpOwogCi0gICAgU3RyaW5nIHNvdXJjZVVSTCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc291
cmNlVVJMOyB9CisgICAgVVJMIHNvdXJjZVVSTCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc291
cmNlVVJMOyB9CiAgICAgVGV4dFBvc2l0aW9uIHNvdXJjZVBvc2l0aW9uKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9zb3VyY2VQb3NpdGlvbjsgfQogCiBwcml2YXRlOgogICAgIHN0cnVjdCBDcmVh
dGlvbkFyZ3VtZW50czsKICAgICBzdGF0aWMgUmVmUHRyPEpTTGF6eUV2ZW50TGlzdGVuZXI+IGNy
ZWF0ZShDcmVhdGlvbkFyZ3VtZW50cyYmKTsKLSAgICBKU0xhenlFdmVudExpc3RlbmVyKENyZWF0
aW9uQXJndW1lbnRzJiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRp
b24mKTsKKyAgICBKU0xhenlFdmVudExpc3RlbmVyKENyZWF0aW9uQXJndW1lbnRzJiYsIGNvbnN0
IFVSTCYgc291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRpb24mKTsKIAogI2lmIEFTU0VSVF9FTkFC
TEVECiAgICAgdm9pZCBjaGVja1ZhbGlkaXR5Rm9yRXZlbnRUYXJnZXQoRXZlbnRUYXJnZXQmKSBm
aW5hbDsKQEAgLTU3LDcgKzU3LDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9mdW5jdGlvbk5h
bWU7CiAgICAgY29uc3QgU3RyaW5nJiBtX2V2ZW50UGFyYW1ldGVyTmFtZTsKICAgICBTdHJpbmcg
bV9jb2RlOwotICAgIFN0cmluZyBtX3NvdXJjZVVSTDsKKyAgICBVUkwgbV9zb3VyY2VVUkw7CiAg
ICAgVGV4dFBvc2l0aW9uIG1fc291cmNlUG9zaXRpb247CiAgICAgV2Vha1B0cjxDb250YWluZXJO
b2RlPiBtX29yaWdpbmFsTm9kZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGNjMjAxMjE3YmYxMDZkN2NhYzExZWNjZjdmM2Uy
NjNkZjhhYWI2NzYuLmVkMzY0MTk3Njg4Nzc4N2VhY2ZiOGJmMDViOTJlZmY3ZWMyNDJhYWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBA
IC0xMjUsNyArMTI1LDcgQEAgVmFsdWVPckV4Y2VwdGlvbiBTY3JpcHRDb250cm9sbGVyOjpldmFs
dWF0ZUluV29ybGQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmMKICAgICBKU0xvY2tIb2xk
ZXIgbG9jayh3b3JsZC52bSgpKTsKIAogICAgIGNvbnN0IFNvdXJjZUNvZGUmIGpzU291cmNlQ29k
ZSA9IHNvdXJjZUNvZGUuanNTb3VyY2VDb2RlKCk7Ci0gICAgU3RyaW5nIHNvdXJjZVVSTCA9IGpz
U291cmNlQ29kZS5wcm92aWRlcigpLT51cmwoKS5zdHJpbmcoKTsKKyAgICBjb25zdCBVUkwmIHNv
dXJjZVVSTCA9IGpzU291cmNlQ29kZS5wcm92aWRlcigpLT5zb3VyY2VPcmlnaW4oKS51cmwoKTsK
IAogICAgIC8vIGV2YWx1YXRlIGNvZGUuIFJldHVybnMgdGhlIEpTIHJldHVybiB2YWx1ZSBvciAw
CiAgICAgLy8gaWYgdGhlcmUgd2FzIG5vbmUsIGFuIGVycm9yIG9jY3VycmVkIG9yIHRoZSB0eXBl
IGNvdWxkbid0IGJlIGNvbnZlcnRlZC4KQEAgLTEzNiwxMiArMTM2LDExIEBAIFZhbHVlT3JFeGNl
cHRpb24gU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJj
ZUNvZGUmIHNvdXJjCiAgICAgLy8gU2VlIHNtYXJ0IHdpbmRvdy5vcGVuIHBvbGljeSBmb3Igd2hl
cmUgdGhpcyBpcyB1c2VkLgogICAgIGF1dG8mIHByb3h5ID0ganNXaW5kb3dQcm94eSh3b3JsZCk7
CiAgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKnByb3h5LndpbmRvdygpOwotICAgIGNvbnN0IFN0
cmluZyogc2F2ZWRTb3VyY2VVUkwgPSBtX3NvdXJjZVVSTDsKLSAgICBtX3NvdXJjZVVSTCA9ICZz
b3VyY2VVUkw7CisgICAgU2V0Rm9yU2NvcGU8Y29uc3QgVVJMKj4gc291cmNlVVJMU2NvcGUobV9z
b3VyY2VVUkwsICZzb3VyY2VVUkwpOwogCiAgICAgUmVmPEZyYW1lPiBwcm90ZWN0b3IobV9mcmFt
ZSk7CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVNjcmlwdCht
X2ZyYW1lLCBzb3VyY2VVUkwsIHNvdXJjZUNvZGUuc3RhcnRMaW5lKCksIHNvdXJjZUNvZGUuc3Rh
cnRDb2x1bW4oKSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRXZhbHVhdGVT
Y3JpcHQobV9mcmFtZSwgc291cmNlVVJMLnN0cmluZygpLCBzb3VyY2VDb2RlLnN0YXJ0TGluZSgp
LCBzb3VyY2VDb2RlLnN0YXJ0Q29sdW1uKCkpOwogCiAgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRp
b24+IGV2YWx1YXRpb25FeGNlcHRpb247CiAgICAgSlNWYWx1ZSByZXR1cm5WYWx1ZSA9IEpTRXhl
Y1N0YXRlOjpwcm9maWxlZEV2YWx1YXRlKCZnbG9iYWxPYmplY3QsIEpTQzo6UHJvZmlsaW5nUmVh
c29uOjpPdGhlciwganNTb3VyY2VDb2RlLCAmcHJveHksIGV2YWx1YXRpb25FeGNlcHRpb24pOwpA
QCAtMTU1LDcgKzE1NCw2IEBAIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29udHJvbGxlcjo6ZXZh
bHVhdGVJbldvcmxkKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjCiAgICAgICAgIG9wdGlv
bmFsRGV0YWlscyA9IFdURk1vdmUoZGV0YWlscyk7CiAgICAgfQogCi0gICAgbV9zb3VyY2VVUkwg
PSBzYXZlZFNvdXJjZVVSTDsKICAgICBpZiAob3B0aW9uYWxEZXRhaWxzKQogICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQoKm9wdGlvbmFsRGV0YWlscyk7CiAKQEAgLTIzNSw3ICsyMzMsNyBA
QCBKU0M6OkpTVmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGVNb2R1bGUoY29uc3QgVVJM
JiBzb3VyY2VVUkwsIEpTTW9kdWxlUmVjbwogCiAgICAgYXV0byYgcHJveHkgPSBqc1dpbmRvd1By
b3h5KHdvcmxkKTsKICAgICBhdXRvJiBsZXhpY2FsR2xvYmFsT2JqZWN0ID0gKnByb3h5LndpbmRv
dygpOwotICAgIFNldEZvclNjb3BlPGNvbnN0IFN0cmluZyo+IHNvdXJjZVVSTFNjb3BlKG1fc291
cmNlVVJMLCAmc291cmNlVVJMLnN0cmluZygpKTsKKyAgICBTZXRGb3JTY29wZTxjb25zdCBVUkwq
PiBzb3VyY2VVUkxTY29wZShtX3NvdXJjZVVSTCwgJnNvdXJjZVVSTCk7CiAKICAgICBSZWY8RnJh
bWU+IHByb3RlY3RvcihtX2ZyYW1lKTsKIApAQCAtNjQ5LDEzICs2NDcsMTIgQEAgVmFsdWVPckV4
Y2VwdGlvbiBTY3JpcHRDb250cm9sbGVyOjpjYWxsSW5Xb3JsZChSdW5KYXZhU2NyaXB0UGFyYW1l
dGVycyYmIHBhcmFtZXQKICAgICBhdXRvIHNvdXJjZUNvZGUgPSBTY3JpcHRTb3VyY2VDb2RlIHsg
ZnVuY3Rpb25TdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCksIFdURk1vdmUocGFyYW1ldGVycy5zb3Vy
Y2VVUkwpLCBUZXh0UG9zaXRpb24oKSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlBy
b2dyYW0sIENhY2hlZFNjcmlwdEZldGNoZXI6OmNyZWF0ZShtX2ZyYW1lLmRvY3VtZW50KCktPmNo
YXJzZXQoKSkgfTsKICAgICBjb25zdCBhdXRvJiBqc1NvdXJjZUNvZGUgPSBzb3VyY2VDb2RlLmpz
U291cmNlQ29kZSgpOwogCi0gICAgU3RyaW5nIHNvdXJjZVVSTCA9IGpzU291cmNlQ29kZS5wcm92
aWRlcigpLT51cmwoKS5zdHJpbmcoKTsKLSAgICBjb25zdCBTdHJpbmcqIHNhdmVkU291cmNlVVJM
ID0gbV9zb3VyY2VVUkw7Ci0gICAgbV9zb3VyY2VVUkwgPSAmc291cmNlVVJMOworICAgIGNvbnN0
IFVSTCYgc291cmNlVVJMID0ganNTb3VyY2VDb2RlLnByb3ZpZGVyKCktPnNvdXJjZU9yaWdpbigp
LnVybCgpOworICAgIFNldEZvclNjb3BlPGNvbnN0IFVSTCo+IHNvdXJjZVVSTFNjb3BlKG1fc291
cmNlVVJMLCAmc291cmNlVVJMKTsKIAogICAgIFJlZjxGcmFtZT4gcHJvdGVjdG9yKG1fZnJhbWUp
OwogCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRXZhbHVhdGVTY3JpcHQobV9m
cmFtZSwgc291cmNlVVJMLCBzb3VyY2VDb2RlLnN0YXJ0TGluZSgpLCBzb3VyY2VDb2RlLnN0YXJ0
Q29sdW1uKCkpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEV2YWx1YXRlU2Ny
aXB0KG1fZnJhbWUsIHNvdXJjZVVSTC5zdHJpbmcoKSwgc291cmNlQ29kZS5zdGFydExpbmUoKSwg
c291cmNlQ29kZS5zdGFydENvbHVtbigpKTsKIAogICAgIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9u
PiBldmFsdWF0aW9uRXhjZXB0aW9uOwogICAgIE9wdGlvbmFsPEV4Y2VwdGlvbkRldGFpbHM+IG9w
dGlvbmFsRGV0YWlsczsKQEAgLTY5MCw4ICs2ODcsNiBAQCBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlw
dENvbnRyb2xsZXI6OmNhbGxJbldvcmxkKFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzJiYgcGFyYW1l
dAogICAgICAgICBvcHRpb25hbERldGFpbHMgPSBXVEZNb3ZlKGRldGFpbHMpOwogICAgIH0KIAot
ICAgIG1fc291cmNlVVJMID0gc2F2ZWRTb3VyY2VVUkw7Ci0KICAgICBpZiAob3B0aW9uYWxEZXRh
aWxzKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoKm9wdGlvbmFsRGV0YWlscyk7CiAg
ICAgcmV0dXJuIHJldHVyblZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlci5oCmluZGV4IDI2ZDlmYzY2NjNkZGE0MDlhZDA2YmU1YjEzOTdlMmZmNGM4
M2Y1YzguLmM1YTZjYzAzZGU4OTY4OWNhY2VjM2ExY2ZlZWFiZjJkNmQzZTk3N2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKQEAgLTEzOCw3ICsx
MzgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQYXVzZWQoYm9vbCBiKSB7IG1fcGF1c2VkID0g
YjsgfQogICAgIGJvb2wgaXNQYXVzZWQoKSBjb25zdCB7IHJldHVybiBtX3BhdXNlZDsgfQogCi0g
ICAgY29uc3QgU3RyaW5nKiBzb3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVVSTDsg
fSAvLyAwIGlmIHdlIGFyZSBub3QgZXZhbHVhdGluZyBhbnkgc2NyaXB0CisgICAgY29uc3QgVVJM
KiBzb3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVVSTDsgfSAvLyBudWxscHRyIGlm
IHdlIGFyZSBub3QgZXZhbHVhdGluZyBhbnkgc2NyaXB0CiAKICAgICB2b2lkIHVwZGF0ZURvY3Vt
ZW50KCk7CiAKQEAgLTE4OCw3ICsxODgsNyBAQCBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JU
IEpTV2luZG93UHJveHkmIGpzV2luZG93UHJveHkoRE9NV3JhcHBlcldvcmxkJik7CiAKICAgICBG
cmFtZSYgbV9mcmFtZTsKLSAgICBjb25zdCBTdHJpbmcqIG1fc291cmNlVVJMOworICAgIGNvbnN0
IFVSTCogbV9zb3VyY2VVUkwgeyBudWxscHRyIH07CiAKICAgICBib29sIG1fcGF1c2VkOwogICAg
IGJvb2wgbV93aWxsUmVwbGFjZVdpdGhSZXN1bHRPZkV4ZWN1dGluZ0phdmFzY3JpcHRVUkwgeyBm
YWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9k
dWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE1vZHVsZUxv
YWRlci5jcHAKaW5kZXggYzg2NjRiMTJjNTNiYzMyN2I1Yzg4YWY1Njc2MjdjZjgwNGYxNjU0Yy4u
YWE1YjgwYjU4NmI3OWUwZTU3NTAxY2Q1MTA3OGRmMjVhNjI1ZTVkOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRNb2R1bGVMb2FkZXIuY3BwCkBAIC02OCw3ICs2
OCw3IEBAIHN0YXRpYyBib29sIGlzUm9vdE1vZHVsZShKU0M6OkpTVmFsdWUgaW1wb3J0ZXJNb2R1
bGVLZXkpCiAgICAgcmV0dXJuIGltcG9ydGVyTW9kdWxlS2V5LmlzU3ltYm9sKCkgfHwgaW1wb3J0
ZXJNb2R1bGVLZXkuaXNVbmRlZmluZWQoKTsKIH0KIAotc3RhdGljIEV4cGVjdGVkPFVSTCwgQVND
SUlMaXRlcmFsPiByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgU3RyaW5nJiBzcGVjaWZpZXIsIGNvbnN0IFVSTCYgYmFzZVVSTCkKK3N0YXRpYyBFeHBlY3Rl
ZDxVUkwsIFN0cmluZz4gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFN0cmluZyYgc3BlY2lmaWVyLCBjb25zdCBVUkwmIGJhc2VVUkwpCiB7CiAgICAgLy8g
aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViYXBwYXBpcy5odG1sI3Jl
c29sdmUtYS1tb2R1bGUtc3BlY2lmaWVyCiAKQEAgLTc3LDExICs3NywxMSBAQCBzdGF0aWMgRXhw
ZWN0ZWQ8VVJMLCBBU0NJSUxpdGVyYWw+IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoRG9jdW1lbnQm
IGRvY3VtZW50LCBjbwogICAgICAgICByZXR1cm4gYWJzb2x1dGVVUkw7CiAKICAgICBpZiAoIXNw
ZWNpZmllci5zdGFydHNXaXRoKCcvJykgJiYgIXNwZWNpZmllci5zdGFydHNXaXRoKCIuLyIpICYm
ICFzcGVjaWZpZXIuc3RhcnRzV2l0aCgiLi4vIikpCi0gICAgICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZCgiTW9kdWxlIHNwZWNpZmllciBkb2VzIG5vdCBzdGFydCB3aXRoIFwiL1wiLCBcIi4vXCIs
IG9yIFwiLi4vXCIuIl9zKTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJp
bmcoIk1vZHVsZSBzcGVjaWZpZXIsICciX3MsIHNwZWNpZmllciwgIicgZG9lcyBub3Qgc3RhcnQg
d2l0aCBcIi9cIiwgXCIuL1wiLCBvciBcIi4uL1wiLiBSZWZlcmVuY2VkIGZyb20gIl9zLCBiYXNl
VVJMLnN0cmluZygpKSk7CiAKICAgICBhdXRvIHJlc3VsdCA9IGRvY3VtZW50LmNvbXBsZXRlVVJM
KHNwZWNpZmllciwgYmFzZVVSTCk7CiAgICAgaWYgKCFyZXN1bHQuaXNWYWxpZCgpKQotICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIk1vZHVsZSBuYW1lIGRvZXMgbm90IHJlc29sdmUgdG8g
YSB2YWxpZCBVUkwuIl9zKTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJp
bmcoIk1vZHVsZSBuYW1lLCAnIl9zLCByZXN1bHQuc3RyaW5nKCksICInIGRvZXMgbm90IHJlc29s
dmUgdG8gYSB2YWxpZCBVUkwuIl9zKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMjI0
LDcgKzIyNCw3IEBAIEpTQzo6SlNWYWx1ZSBTY3JpcHRNb2R1bGVMb2FkZXI6OmV2YWx1YXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGpzR2xvYmFsT2JqZWN0LCBKCiAgICAgcmV0dXJuIEpTQzo6anNV
bmRlZmluZWQoKTsKIH0KIAotc3RhdGljIEpTQzo6SlNJbnRlcm5hbFByb21pc2UqIHJlamVjdFBy
b21pc2UoSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgRXhjZXB0aW9uQ29kZSBlYywg
QVNDSUlMaXRlcmFsIG1lc3NhZ2UpCitzdGF0aWMgSlNDOjpKU0ludGVybmFsUHJvbWlzZSogcmVq
ZWN0UHJvbWlzZShKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBFeGNlcHRpb25Db2Rl
IGVjLCBTdHJpbmcgbWVzc2FnZSkKIHsKICAgICBhdXRvKiBqc1Byb21pc2UgPSBKU0M6OkpTSW50
ZXJuYWxQcm9taXNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LnZtKCksIGdsb2JhbE9iamVjdC5pbnRl
cm5hbFByb21pc2VTdHJ1Y3R1cmUoKSk7CiAgICAgUkVMRUFTRV9BU1NFUlQoanNQcm9taXNlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaAppbmRleCBm
Y2E1NzRjZmRhYWM0OWJhZGY0ZDgyOWYxOTIwMDIxMTE0MzcxOThiLi5jNzA0NjI2ZmI3MzNkYjQ3
MmJkYTUwMjM2MjQxYTZlNzQwZTI3ODJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0U291cmNlQ29kZS5oCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGUgewogcHVibGljOgogICAgIFNjcmlwdFNvdXJjZUNv
ZGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIFVSTCYmIHVybCA9IFVSTCgpLCBjb25zdCBUZXh0UG9z
aXRpb24mIHN0YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRpb24oKSwgSlNDOjpTb3VyY2VQcm92aWRl
clNvdXJjZVR5cGUgc291cmNlVHlwZSA9IEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQ
cm9ncmFtKQotICAgICAgICA6IG1fcHJvdmlkZXIoSlNDOjpTdHJpbmdTb3VyY2VQcm92aWRlcjo6
Y3JlYXRlKHNvdXJjZSwgSlNDOjpTb3VyY2VPcmlnaW4geyB1cmwuc3RyaW5nKCkgfSwgV1RGTW92
ZSh1cmwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSkKKyAgICAgICAgOiBtX3Byb3ZpZGVy
KEpTQzo6U3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIEpTQzo6U291cmNlT3Jp
Z2luIHsgdXJsIH0sIHVybC5zdHJpbmcoKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkpCiAg
ICAgICAgICwgbV9jb2RlKG1fcHJvdmlkZXIuY29weVJlZigpLCBzdGFydFBvc2l0aW9uLm1fbGlu
ZS5vbmVCYXNlZEludCgpLCBzdGFydFBvc2l0aW9uLm1fY29sdW1uLm9uZUJhc2VkSW50KCkpCiAg
ICAgewogICAgIH0KQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIFNjcmlw
dFNvdXJjZUNvZGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIFVSTCYmIHVybCwgY29uc3QgVGV4dFBv
c2l0aW9uJiBzdGFydFBvc2l0aW9uLCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3Vy
Y2VUeXBlLCBSZWY8Q2FjaGVkU2NyaXB0RmV0Y2hlcj4mJiBzY3JpcHRGZXRjaGVyKQotICAgICAg
ICA6IG1fcHJvdmlkZXIoSlNDOjpTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwg
SlNDOjpTb3VyY2VPcmlnaW4geyB1cmwuc3RyaW5nKCksIFdURk1vdmUoc2NyaXB0RmV0Y2hlcikg
fSwgV1RGTW92ZSh1cmwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSkKKyAgICAgICAgOiBt
X3Byb3ZpZGVyKEpTQzo6U3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIEpTQzo6
U291cmNlT3JpZ2luIHsgdXJsLCBXVEZNb3ZlKHNjcmlwdEZldGNoZXIpIH0sIHVybC5zdHJpbmco
KSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSkpCiAgICAgICAgICwgbV9jb2RlKG1fcHJvdmlk
ZXIuY29weVJlZigpLCBzdGFydFBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpLCBzdGFydFBv
c2l0aW9uLm1fY29sdW1uLm9uZUJhc2VkSW50KCkpCiAgICAgewogICAgIH0KQEAgLTc0LDcgKzc0
LDcgQEAgcHVibGljOgogCiAgICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQoKSBjb25zdCB7
IHJldHVybiBtX2NhY2hlZFNjcmlwdC5nZXQoKTsgfQogCi0gICAgY29uc3QgVVJMJiB1cmwoKSBj
b25zdCB7IHJldHVybiBtX3Byb3ZpZGVyLT51cmwoKTsgfQorICAgIGNvbnN0IFVSTCYgdXJsKCkg
Y29uc3QgeyByZXR1cm4gbV9wcm92aWRlci0+c291cmNlT3JpZ2luKCkudXJsKCk7IH0KICAgICAK
IHByaXZhdGU6CiAgICAgUmVmPEpTQzo6U291cmNlUHJvdmlkZXI+IG1fcHJvdmlkZXI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlNjcmlwdERlYnVnZ2Vy
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJTY3JpcHREZWJ1Z2dlci5t
bQppbmRleCAxYTU4ODQyN2UyOWQwNGI0MGU5ZmIyM2Q1M2NjZDRjODcyMzVkMTVmLi5iZDliMTE4
NGM4NDU0YjQ3M2U0Mzc0YzIyOGI0YmQ2N2E5YTNmOTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlNjcmlwdERlYnVnZ2VyLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViU2NyaXB0RGVidWdnZXIubW0KQEAgLTc5LDcgKzc5
LDcgQEAgdm9pZCBXZWJTY3JpcHREZWJ1Z2dlcjo6c291cmNlUGFyc2VkKEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEoKICAgICBtX2NhbGxpbmdEZWxlZ2F0ZSA9IHRy
dWU7CiAKICAgICBOU1N0cmluZyAqbnNTb3VyY2UgPSB0b05TU3RyaW5nKHNvdXJjZVByb3ZpZGVy
KTsKLSAgICBOU1VSTCAqbnNVUkwgPSBzb3VyY2VQcm92aWRlci0+dXJsKCk7CisgICAgTlNVUkwg
Km5zVVJMID0gc291cmNlUHJvdmlkZXItPnNvdXJjZU9yaWdpbigpLnVybCgpOwogICAgIGludCBm
aXJzdExpbmUgPSBzb3VyY2VQcm92aWRlci0+c3RhcnRQb3NpdGlvbigpLm1fbGluZS5vbmVCYXNl
ZEludCgpOwogCiAgICAgSlNDOjpWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGNhOTc0YmQ5MGY3NDBiNjc2MDc5YjJiOTUzZTljODRmNmY4NDJiNjMuLjc2NzAyMzA1
YzlhNDhkYTljNzY3YjdmNjEzMjFkZGFkNmU2YjJhYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAor
MjAyMC0wNy0xMyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBDbGVhbiB1cCBTb3VyY2VQcm92aWRlciBhbmQgYWRkIGNhbGxlciByZWxhdGl2ZSBsb2Fk
IHNjcmlwdCB0byBqc2MuY3BwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTQyMDUKKworICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpLgor
CisgICAgICAgIGpzLXRlc3QtcHJlIG5lZWRzIHRvIHN0cmlwIHRoZSBwYXJ0cyBvZiBmaWxlIHVy
bHMgYmV0d2VlbiBmaWxlOi8vLworICAgICAgICBhbmQgTGF5b3V0VGVzdHMgYmVjYXVzZSB0aGF0
IGlzIGRlcGVuZGVudCBvbiB0aGUgc3lzdGVtIHJ1bm5pbmcKKyAgICAgICAgdGhlIHRlc3RzLiBU
ZXN0cyB1c2luZyB0aGVzZSBoYXJuZXNzZXMgbWF5IG5vdCBiZSB1c2luZyBhIHNlcnZlcgorICAg
ICAgICB0byBob3N0IHRoZSB0ZXN0IGZpbGVzLgorCisgICAgICAgIFJlYmFzZWxpbmUgbW9kdWxl
IGxvYWRlciBlcnJvciBtZXNzYWdlcyBhZ2FpbnN0IHRoZSBuZXcgc3RyaW5nLgorCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanM6CisgICAgICAgIChlc2NhcGVI
VE1MQW5kU3RyaXBGaWxlVVJMcyk6CisgICAgICAgICh0ZXN0RmFpbGVkKToKKyAgICAgICAgKGVz
Y2FwZUhUTUwpOiBEZWxldGVkLgorICAgICAgICAodGVzdFBhc3NlZCk6IERlbGV0ZWQuCisgICAg
ICAgICoganMvZG9tL21vZHVsZXMvaW1wb3J0LWluY29ycmVjdC1yZWxhdGl2ZS1zcGVjaWZpZXIt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2RvbS9tb2R1bGVzL21vZHVsZS1pbmNvcnJlY3Qt
cmVsYXRpdmUtc3BlY2lmaWVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiByZXNvdXJjZXMvanMt
dGVzdC1wcmUuanM6CisgICAgICAgIChlc2NhcGVIVE1MQW5kU3RyaXBGaWxlVVJMcyk6CisgICAg
ICAgICh0ZXN0RmFpbGVkKToKKyAgICAgICAgKGVzY2FwZUhUTUwpOiBEZWxldGVkLgorICAgICAg
ICAodGVzdFBhc3NlZCk6IERlbGV0ZWQuCisKIDIwMjAtMDctMTMgIEthcmwgUmFja2xlciAgPHJh
Y2tsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFsgaU9TIFdLMiBSZWxlYXNlIF0gZmFzdC9zY3Jv
bGxpbmcvaW9zL25vbi1pbnZlcnRpYmxlLXRyYW5zZm9ybWVkLXNjcm9sbGVyLWFuY2VzdG9yLmh0
bWwgaXMgZmxha3kgZmFpbGluZy4gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA0
OTA4MjhlMTg1OGM5MDRhMDQzNGE2OTg3MzM2Mzg5NDE4NjRkN2FiLi43NzAyYzE4OGFlZmJmNTFh
Yjg2NWMxYmFkNDY0M2M3ZGFiZThlYjk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAyMC0wNy0xMyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVy
QGFwcGxlLmNvbT4KKworICAgICAgICBDbGVhbiB1cCBTb3VyY2VQcm92aWRlciBhbmQgYWRkIGNh
bGxlciByZWxhdGl2ZSBsb2FkIHNjcmlwdCB0byBqc2MuY3BwCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQyMDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBZdXN1a2UgU3V6dWtpLgorCisgICAgICAgIFJlYmFzZWxpbmUgbW9kdWxlIGxvYWRlciBlcnJv
ciBtZXNzYWdlcyBhZ2FpbnN0IHRoZSBuZXcgc3RyaW5nLgorCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9t
b2R1bGUvc3BlY2lmaWVyLWVycm9yLWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wNy0xMyAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGRyb3AgYSBj
b3VwbGUgb2YgcGF5bWVudC1yZXF1ZXN0cyBXUFQgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMKaW5kZXggOWE2ZGVhMzJhMjJlMmZiNGEw
NGM1OTU3NDcxMzMwYThjNzU1NDQ2Mi4uNzFmYjgzODQwNzAwYmYxOTA1NmRiMTZhZmU4NTA4MWU4
NThhMTM5OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMKQEAgLTEwOSwxOCArMTA5LDIzIEBAIGZ1bmN0aW9uIGVzY2FwZUhUTUwodGV4dCkK
ICAgICByZXR1cm4gdGV4dC5yZXBsYWNlKC8mL2csICImYW1wOyIpLnJlcGxhY2UoLzwvZywgIiZs
dDsiKS5yZXBsYWNlKC9cMC9nLCAiXFwwIik7CiB9CiAKK2Z1bmN0aW9uIGVzY2FwZUhUTUxBbmRT
dHJpcEZpbGVVUkxzKHRleHQpCit7CisgICAgcmV0dXJuIGVzY2FwZUhUTUwodGV4dCkucmVwbGFj
ZSgvZmlsZTpcL1wvLipMYXlvdXRUZXN0cy9nLCAiZmlsZTovLy9MYXlvdXRUZXN0cyIpOworfQor
CiBmdW5jdGlvbiB0ZXN0UGFzc2VkKG1zZykKIHsKICAgICBpZiAoc2lsZW50VGVzdFBhc3MpCiAg
ICAgICAgIGRpZFBhc3NTb21lVGVzdHNTaWxlbnRseSA9IHRydWU7CiAgICAgZWxzZQotICAgICAg
ICBkZWJ1ZygnPHNwYW4+PHNwYW4gY2xhc3M9InBhc3MiPlBBU1M8L3NwYW4+ICcgKyBlc2NhcGVI
VE1MKG1zZykgKyAnPC9zcGFuPicpOworICAgICAgICBkZWJ1ZygnPHNwYW4+PHNwYW4gY2xhc3M9
InBhc3MiPlBBU1M8L3NwYW4+ICcgKyBlc2NhcGVIVE1MQW5kU3RyaXBGaWxlVVJMcyhtc2cpICsg
Jzwvc3Bhbj4nKTsKIH0KIAogZnVuY3Rpb24gdGVzdEZhaWxlZChtc2cpCiB7CiAgICAgZGlkRmFp
bFNvbWVUZXN0cyA9IHRydWU7Ci0gICAgZGVidWcoJzxzcGFuPjxzcGFuIGNsYXNzPSJmYWlsIj5G
QUlMPC9zcGFuPiAnICsgZXNjYXBlSFRNTChtc2cpICsgJzwvc3Bhbj4nKTsKKyAgICBkZWJ1Zygn
PHNwYW4+PHNwYW4gY2xhc3M9ImZhaWwiPkZBSUw8L3NwYW4+ICcgKyBlc2NhcGVIVE1MQW5kU3Ry
aXBGaWxlVVJMcyhtc2cpICsgJzwvc3Bhbj4nKTsKIH0KIAogZnVuY3Rpb24gYXJlTnVtYmVyc0Vx
dWFsKF9hY3R1YWwsIF9leHBlY3RlZCkKQEAgLTIyMCw3ICsyMjUsNyBAQCBmdW5jdGlvbiBldmFs
QW5kTG9nUmVzdWx0KF9hKQogICAgICAgICB0ZXN0RmFpbGVkKF9hICsgIiB0aHJldyBleGNlcHRp
b24gIiArIGUpOwogICAgIH0KIAotICAgIGRlYnVnKCc8c3Bhbj4nICsgX2EgKyAiIGlzICIgKyBl
c2NhcGVIVE1MKF9hdikgKyAnPC9zcGFuPicpOworICAgIGRlYnVnKCc8c3Bhbj4nICsgX2EgKyAi
IGlzICIgKyBlc2NhcGVIVE1MQW5kU3RyaXBGaWxlVVJMcyhfYXYpICsgJzwvc3Bhbj4nKTsKIH0K
IAogZnVuY3Rpb24gc2hvdWxkQmUoX2EsIF9iLCBfcXVpZXQpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Njcmlw
dGluZy0xL3RoZS1zY3JpcHQtZWxlbWVudC9tb2R1bGUvc3BlY2lmaWVyLWVycm9yLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9zcGVjaWZpZXIt
ZXJyb3ItZXhwZWN0ZWQudHh0CmluZGV4IDRlOWVhOTFiNzllM2Q0ZmJkZDNlMjI3MGI3ZDM4NDE0
MDEyYWZmYmYuLjY5NmRmMzEzMDE4N2UxMmRkNWRmZjk4YTBhNmQ2MDU0ODE3YmI4ZjUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50L21vZHVsZS9zcGVjaWZpZXIt
ZXJyb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50
L21vZHVsZS9zcGVjaWZpZXItZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ09O
U09MRSBNRVNTQUdFOiBUeXBlRXJyb3I6IE1vZHVsZSBzcGVjaWZpZXIgZG9lcyBub3Qgc3RhcnQg
d2l0aCAiLyIsICIuLyIsIG9yICIuLi8iLgorQ09OU09MRSBNRVNTQUdFOiBUeXBlRXJyb3I6IE1v
ZHVsZSBzcGVjaWZpZXIsICdzdHJpbmctd2l0aG91dC1kb3Qtc2xhc2gtcHJlZml4JyBkb2VzIG5v
dCBzdGFydCB3aXRoICIvIiwgIi4vIiwgb3IgIi4uLyIuIFJlZmVyZW5jZWQgZnJvbSBodHRwOi8v
bG9jYWxob3N0Ojg4MDAvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVt
ZW50L21vZHVsZS9iYWQtbW9kdWxlLXNwZWNpZmllci5qcwogCiBGQUlMIFRlc3QgdGhhdCBpbnZh
bGlkIG1vZHVsZSBzcGVjaWZpZXIgbGVhZHMgdG8gVHlwZUVycm9yIG9uIHdpbmRvdy4gYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgZnVuY3Rpb24gImZ1bmN0aW9uIFR5cGVFcnJvcigpIHsKICAgICBb
bmF0aXZlIGNvZGVdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlcy9pbXBv
cnQtaW5jb3JyZWN0LXJlbGF0aXZlLXNwZWNpZmllci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlcy9pbXBvcnQtaW5jb3JyZWN0LXJlbGF0aXZlLXNwZWNpZmllci1leHBl
Y3RlZC50eHQKaW5kZXggMjcwYTc4ZDkwZDc1MTVlYjViYzFmZmQ2NGM1NTg5OGY4NWFhNDA5ZS4u
YWE2OTQ4ZmM3YWQ5ZjQxNTQyZDlmZmUzZmRhYjNhYzRmZDc1NzVlNCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvanMvZG9tL21vZHVsZXMvaW1wb3J0LWluY29ycmVjdC1yZWxhdGl2ZS1zcGVjaWZp
ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9tb2R1bGVzL2ltcG9ydC1p
bmNvcnJlY3QtcmVsYXRpdmUtc3BlY2lmaWVyLWV4cGVjdGVkLnR4dApAQCAtMyw5ICszLDkgQEAg
VGVzdCBpbXBvcnQgcmVqZWN0cyB0aGUgaW5jb3JyZWN0IHJlbGF0aXZlIHNwZWNpZmllcnMuCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBpbXBvcnQoImluY29ycmVjdCIpIHJl
amVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBNb2R1bGUgc3BlY2lmaWVyIGRvZXMgbm90
IHN0YXJ0IHdpdGggIi8iLCAiLi8iLCBvciAiLi4vIi4uCi1QQVNTIGltcG9ydCgiJGhlbGxvIikg
cmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1vZHVsZSBzcGVjaWZpZXIgZG9lcyBu
b3Qgc3RhcnQgd2l0aCAiLyIsICIuLyIsIG9yICIuLi8iLi4KLVBBU1MgaW1wb3J0KCIuLi4vdGVz
dCIpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBNb2R1bGUgc3BlY2lmaWVyIGRv
ZXMgbm90IHN0YXJ0IHdpdGggIi8iLCAiLi8iLCBvciAiLi4vIi4uCitQQVNTIGltcG9ydCgiaW5j
b3JyZWN0IikgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1vZHVsZSBzcGVjaWZp
ZXIsICdpbmNvcnJlY3QnIGRvZXMgbm90IHN0YXJ0IHdpdGggIi8iLCAiLi8iLCBvciAiLi4vIi4g
UmVmZXJlbmNlZCBmcm9tIGZpbGU6Ly8vTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzLgorUEFTUyBpbXBvcnQoIiRoZWxsbyIpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVy
cm9yOiBNb2R1bGUgc3BlY2lmaWVyLCAnJGhlbGxvJyBkb2VzIG5vdCBzdGFydCB3aXRoICIvIiwg
Ii4vIiwgb3IgIi4uLyIuIFJlZmVyZW5jZWQgZnJvbSBmaWxlOi8vL0xheW91dFRlc3RzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcy4KK1BBU1MgaW1wb3J0KCIuLi4vdGVzdCIpIHJlamVjdGVkIHBy
b21pc2UgIHdpdGggVHlwZUVycm9yOiBNb2R1bGUgc3BlY2lmaWVyLCAnLi4uL3Rlc3QnIGRvZXMg
bm90IHN0YXJ0IHdpdGggIi8iLCAiLi8iLCBvciAiLi4vIi4gUmVmZXJlbmNlZCBmcm9tIGZpbGU6
Ly8vTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzLgogUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9kb20vbW9kdWxlcy9tb2R1bGUtaW5jb3JyZWN0LXJlbGF0aXZlLXNwZWNpZmllci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vbW9kdWxlcy9tb2R1bGUtaW5jb3JyZWN0LXJl
bGF0aXZlLXNwZWNpZmllci1leHBlY3RlZC50eHQKaW5kZXggNjRhNTk1YWVhY2JkMTliODE4YmQ3
YmJjMWM0NTNjNWM5Yzk0OWYwMC4uZWU3Y2Q2YzBjYmY1ZjRmYmQ2YjIzN2M4NzUwODZmMWMxZmNj
OGI3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL21vZHVsZXMvbW9kdWxlLWluY29y
cmVjdC1yZWxhdGl2ZS1zcGVjaWZpZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pz
L2RvbS9tb2R1bGVzL21vZHVsZS1pbmNvcnJlY3QtcmVsYXRpdmUtc3BlY2lmaWVyLWV4cGVjdGVk
LnR4dApAQCAtMSw2ICsxLDYgQEAKLUNPTlNPTEUgTUVTU0FHRTogVHlwZUVycm9yOiBNb2R1bGUg
c3BlY2lmaWVyIGRvZXMgbm90IHN0YXJ0IHdpdGggIi8iLCAiLi8iLCBvciAiLi4vIi4KLUNPTlNP
TEUgTUVTU0FHRTogVHlwZUVycm9yOiBNb2R1bGUgc3BlY2lmaWVyIGRvZXMgbm90IHN0YXJ0IHdp
dGggIi8iLCAiLi8iLCBvciAiLi4vIi4KLUNPTlNPTEUgTUVTU0FHRTogVHlwZUVycm9yOiBNb2R1
bGUgc3BlY2lmaWVyIGRvZXMgbm90IHN0YXJ0IHdpdGggIi8iLCAiLi8iLCBvciAiLi4vIi4KK0NP
TlNPTEUgTUVTU0FHRTogVHlwZUVycm9yOiBNb2R1bGUgc3BlY2lmaWVyLCAnaW5jb3JyZWN0JyBk
b2VzIG5vdCBzdGFydCB3aXRoICIvIiwgIi4vIiwgb3IgIi4uLyIuIFJlZmVyZW5jZWQgZnJvbSBt
b2R1bGUtaW5jb3JyZWN0LXJlbGF0aXZlLXNwZWNpZmllci5odG1sCitDT05TT0xFIE1FU1NBR0U6
IFR5cGVFcnJvcjogTW9kdWxlIHNwZWNpZmllciwgJyRoZWxsbycgZG9lcyBub3Qgc3RhcnQgd2l0
aCAiLyIsICIuLyIsIG9yICIuLi8iLiBSZWZlcmVuY2VkIGZyb20gbW9kdWxlLWluY29ycmVjdC1y
ZWxhdGl2ZS1zcGVjaWZpZXIuaHRtbAorQ09OU09MRSBNRVNTQUdFOiBUeXBlRXJyb3I6IE1vZHVs
ZSBzcGVjaWZpZXIsICcuLi4vdGVzdCcgZG9lcyBub3Qgc3RhcnQgd2l0aCAiLyIsICIuLyIsIG9y
ICIuLi8iLiBSZWZlcmVuY2VkIGZyb20gbW9kdWxlLWluY29ycmVjdC1yZWxhdGl2ZS1zcGVjaWZp
ZXIuaHRtbAogVGVzdCBzY3JpcHQub25lcnJvciB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIGluY29y
cmVjdCByZWxhdGl2ZSBzcGVjaWZpZXIgaXMgc3BlY2lmaWVkLgogCiBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMKaW5kZXggOWE2ZGVhMzJh
MjJlMmZiNGEwNGM1OTU3NDcxMzMwYThjNzU1NDQ2Mi4uNzFmYjgzODQwNzAwYmYxOTA1NmRiMTZh
ZmU4NTA4MWU4NThhMTM5OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcwpAQCAt
MTA5LDE4ICsxMDksMjMgQEAgZnVuY3Rpb24gZXNjYXBlSFRNTCh0ZXh0KQogICAgIHJldHVybiB0
ZXh0LnJlcGxhY2UoLyYvZywgIiZhbXA7IikucmVwbGFjZSgvPC9nLCAiJmx0OyIpLnJlcGxhY2Uo
L1wwL2csICJcXDAiKTsKIH0KIAorZnVuY3Rpb24gZXNjYXBlSFRNTEFuZFN0cmlwRmlsZVVSTHMo
dGV4dCkKK3sKKyAgICByZXR1cm4gZXNjYXBlSFRNTCh0ZXh0KS5yZXBsYWNlKC9maWxlOlwvXC8u
KkxheW91dFRlc3RzL2csICJmaWxlOi8vL0xheW91dFRlc3RzIik7Cit9CisKIGZ1bmN0aW9uIHRl
c3RQYXNzZWQobXNnKQogewogICAgIGlmIChzaWxlbnRUZXN0UGFzcykKICAgICAgICAgZGlkUGFz
c1NvbWVUZXN0c1NpbGVudGx5ID0gdHJ1ZTsKICAgICBlbHNlCi0gICAgICAgIGRlYnVnKCc8c3Bh
bj48c3BhbiBjbGFzcz0icGFzcyI+UEFTUzwvc3Bhbj4gJyArIGVzY2FwZUhUTUwobXNnKSArICc8
L3NwYW4+Jyk7CisgICAgICAgIGRlYnVnKCc8c3Bhbj48c3BhbiBjbGFzcz0icGFzcyI+UEFTUzwv
c3Bhbj4gJyArIGVzY2FwZUhUTUxBbmRTdHJpcEZpbGVVUkxzKG1zZykgKyAnPC9zcGFuPicpOwog
fQogCiBmdW5jdGlvbiB0ZXN0RmFpbGVkKG1zZykKIHsKICAgICBkaWRGYWlsU29tZVRlc3RzID0g
dHJ1ZTsKLSAgICBkZWJ1ZygnPHNwYW4+PHNwYW4gY2xhc3M9ImZhaWwiPkZBSUw8L3NwYW4+ICcg
KyBlc2NhcGVIVE1MKG1zZykgKyAnPC9zcGFuPicpOworICAgIGRlYnVnKCc8c3Bhbj48c3BhbiBj
bGFzcz0iZmFpbCI+RkFJTDwvc3Bhbj4gJyArIGVzY2FwZUhUTUxBbmRTdHJpcEZpbGVVUkxzKG1z
ZykgKyAnPC9zcGFuPicpOwogfQogCiBmdW5jdGlvbiBhcmVOdW1iZXJzRXF1YWwoX2FjdHVhbCwg
X2V4cGVjdGVkKQpAQCAtMjIwLDcgKzIyNSw3IEBAIGZ1bmN0aW9uIGV2YWxBbmRMb2dSZXN1bHQo
X2EpCiAgICAgICAgIHRlc3RGYWlsZWQoX2EgKyAiIHRocmV3IGV4Y2VwdGlvbiAiICsgZSk7CiAg
ICAgfQogCi0gICAgZGVidWcoJzxzcGFuPicgKyBfYSArICIgaXMgIiArIGVzY2FwZUhUTUwoX2F2
KSArICc8L3NwYW4+Jyk7CisgICAgZGVidWcoJzxzcGFuPicgKyBfYSArICIgaXMgIiArIGVzY2Fw
ZUhUTUxBbmRTdHJpcEZpbGVVUkxzKF9hdikgKyAnPC9zcGFuPicpOwogfQogCiBmdW5jdGlvbiBz
aG91bGRCZShfYSwgX2IsIF9xdWlldCkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIv
SlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzAwZTNkNDk1MDg3ZDkzYTFjNGQwOThkNWQ0YjVmYTZk
NmVjYTAwYS4uYTQyYzQ3Y2U1MTJjYmJmZjgxY2Q0Y2VlMjU5MzJiOGI4ZWM4M2ZhNiAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMjAgQEAKKzIwMjAtMDctMTMgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5j
b20+CisKKyAgICAgICAgQ2xlYW4gdXAgU291cmNlUHJvdmlkZXIgYW5kIGFkZCBjYWxsZXIgcmVs
YXRpdmUgbG9hZCBzY3JpcHQgdG8ganNjLmNwcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MjA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtl
IFN1enVraS4KKworICAgICAgICBUaGVyZSBhcmUgdHdvIG1haW4gY2hhbmdlcyBoZXJlLiBUaGUg
Zmlyc3QgaXMgY29udmVydGluZyBtb3N0CisgICAgICAgIGludm9jYXRpb25zIG9mIGxvYWQgdG8g
YWxzbyBwYXNzICJjYWxsZXIgcmVsYXRpdmUiIGFzIHRoZSBzZWNvbmQKKyAgICAgICAgcGFyYW1l
dGVyLiBUaGlzIGxldHMgdGhvc2UgdGVzdHMgYmUgcnVuIGZyb20gYW55IHdvcmtpbmcgZGlyZWN0
b3J5CisgICAgICAgIHJhdGhlciB0aGFuIG9ubHkgdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRoZSB0
ZXN0IHNjcmlwdC4KKworICAgICAgICBUaGUgc2Vjb25kIGNoYW5nZSBpcyB0byBwcm9oaWJpdCAi
YmFyZS1uYW1lIiBzcGVjaWZpZXJzIGluIG91cgorICAgICAgICBDTEkncyBtb2R1bGUgbG9hZGVy
LiBUaGlzIG1hdGNoZXMgcHJldHR5IG11Y2ggYWxsIG90aGVyIG1vZHVsZQorICAgICAgICBsb2Fk
ZXJzLCBpbmNsdWRpbmcgV2ViQ29yZSBhbmQgb3VyIE9iai1DIEFQSS4KKworICAgICAgICAqIG1v
ZHVsZXMvYWxpYXNlZC1uYW1lcy5qczoKKyAgICAgICAgKiBtb2R1bGVzL2FsaWFzaW5nL2RyaW5r
LmpzOgorICAgICAgICAqIG1vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3Vz
LmpzOgorICAgICAgICAqIG1vZHVsZXMvZGVmYXVsdC1lcnJvci9tYWluLmpzOgorICAgICAgICAq
IG1vZHVsZXMvZXhlY3V0aW9uLW9yZGVyLWN5Y2xpYy81LmpzOgorICAgICAgICAqIG1vZHVsZXMv
ZXhlY3V0aW9uLW9yZGVyLWRhZy81LmpzOgorICAgICAgICAqIG1vZHVsZXMvZXhlY3V0aW9uLW9y
ZGVyLXRyZWUvNS5qczoKKyAgICAgICAgKiBtb2R1bGVzL2luZGlyZWN0LWV4cG9ydC1lcnJvci9p
bmRpcmVjdC1leHBvcnQtZGVmYXVsdC0yLmpzOgorICAgICAgICAqIG1vZHVsZXMvbmFtZXNwYWNl
LWFtYmlndW91cy9hbWJpZ3VvdXMtMi5qczoKKyAgICAgICAgKiBtb2R1bGVzL25hbWVzcGFjZS1h
bWJpZ3VvdXMvYW1iaWd1b3VzLmpzOgorICAgICAgICAqIG1vZHVsZXMvbmFtZXNwYWNlLXJlLWV4
cG9ydC5qczoKKyAgICAgICAgKiBtb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIuanM6
CisgICAgICAgICogc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctMi5q
czoKKyAgICAgICAgKiBzdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy0z
LmpzOgorICAgICAgICAqIHN0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5n
LTQuanM6CisgICAgICAgICogc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRp
bmctNS5qczoKKyAgICAgICAgKiBzdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0
dGluZy5qczoKKyAgICAgICAgKiBzdHJlc3MvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlh
YmxlLmpzOgorICAgICAgICAqIHN0cmVzcy9nbG9iYWwtbGV4aWNhbC1yZWRlZmluZS1jb25zdC5q
czoKKyAgICAgICAgKiBzdHJlc3MvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdGR6LmpzOgorICAg
ICAgICAqIHN0cmVzcy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS11bnJlc29sdmVkLXByb3BlcnR5
LmpzOgorICAgICAgICAqIHN0cmVzcy9nbG9iYWwtcHJvcGVydHktaW50by12YXJpYWJsZS1nZXQt
ZnJvbS1zY29wZS5qczoKKyAgICAgICAgKiBzdHJlc3MvaW1wb3J0LXdpdGgtZW1wdHktc3RyaW5n
LmpzOgorICAgICAgICAqIHN0cmVzcy9qc29ucC1saXRlcmFsLXBhcnNlci1zZW1pY29sb24taXMt
bm90LWFzc2lnbm1lbnQuanM6CisgICAgICAgICogc3RyZXNzL29wX2FkZC5qczoKKyAgICAgICAg
KiBzdHJlc3Mvb3BfYml0YW5kLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9iaXRvci5qczoKKyAg
ICAgICAgKiBzdHJlc3Mvb3BfYml0eG9yLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9kaXYtQ29u
c3RWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX2Rpdi1WYXJDb25zdC5qczoKKyAgICAgICAg
KiBzdHJlc3Mvb3BfZGl2LVZhclZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfbHNoaWZ0LUNv
bnN0VmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9sc2hpZnQtVmFyQ29uc3QuanM6CisgICAg
ICAgICogc3RyZXNzL29wX2xzaGlmdC1WYXJWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX21v
ZC1Db25zdFZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfbW9kLVZhckNvbnN0LmpzOgorICAg
ICAgICAqIHN0cmVzcy9vcF9tb2QtVmFyVmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9tdWwt
Q29uc3RWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX211bC1WYXJDb25zdC5qczoKKyAgICAg
ICAgKiBzdHJlc3Mvb3BfbXVsLVZhclZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfbmVnYXRl
LmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9wb3N0ZGVjLmpzOgorICAgICAgICAqIHN0cmVzcy9v
cF9wb3N0aW5jLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9wcmVkZWMuanM6CisgICAgICAgICog
c3RyZXNzL29wX3ByZWluYy5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3BfcnNoaWZ0LUNvbnN0VmFy
LmpzOgorICAgICAgICAqIHN0cmVzcy9vcF9yc2hpZnQtVmFyQ29uc3QuanM6CisgICAgICAgICog
c3RyZXNzL29wX3JzaGlmdC1WYXJWYXIuanM6CisgICAgICAgICogc3RyZXNzL29wX3N1Yi1Db25z
dFZhci5qczoKKyAgICAgICAgKiBzdHJlc3Mvb3Bfc3ViLVZhckNvbnN0LmpzOgorICAgICAgICAq
IHN0cmVzcy9vcF9zdWItVmFyVmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF91cnNoaWZ0LUNv
bnN0VmFyLmpzOgorICAgICAgICAqIHN0cmVzcy9vcF91cnNoaWZ0LVZhckNvbnN0LmpzOgorICAg
ICAgICAqIHN0cmVzcy9vcF91cnNoaWZ0LVZhclZhci5qczoKKyAgICAgICAgKiBzdHJlc3MvcmVn
cmVzcy0xNTk3NzktMS5qczoKKyAgICAgICAgKG1ha2VVc2VSZWdyZXNzaW9uVGVzdCk6CisgICAg
ICAgICogc3RyZXNzL3JlZ3Jlc3MtMTU5Nzc5LTIuanM6CisgICAgICAgIChtYWtlVXNlUmVncmVz
c2lvblRlc3QpOgorICAgICAgICAqIHN0cmVzcy9yZXNvdXJjZXMvdHlwZWRhcnJheS1jb25zdHJ1
Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzOgorICAgICAgICAqIHN0cmVzcy9yZXNvdXJjZXMvdHlw
ZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanM6CisgICAgICAgICogc3RyZXNzL3NhbXBs
aW5nLXByb2ZpbGVyLWFub255bW91cy1mdW5jdGlvbi5qczoKKyAgICAgICAgKiBzdHJlc3Mvc2Ft
cGxpbmctcHJvZmlsZXItYmFzaWMuanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2Zp
bGVyLWJvdW5kLWZ1bmN0aW9uLW5hbWUuanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXBy
b2ZpbGVyLWRlZXAtc3RhY2suanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVy
LWRpc3BsYXktbmFtZS5qczoKKyAgICAgICAgKiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItaW50
ZXJuYWwtZnVuY3Rpb24tbmFtZS5qczoKKyAgICAgICAgKiBzdHJlc3Mvc2FtcGxpbmctcHJvZmls
ZXItbWljcm90YXNrcy5qczoKKyAgICAgICAgKiBzdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItd2Fz
bS1uYW1lLXNlY3Rpb24uanM6CisgICAgICAgICogc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdh
c20uanM6CisgICAgICAgICogc3RyZXNzL3NoYWRvdy1jaGlja2VuLWRpc2FibGVkLmpzOgorICAg
ICAgICAqIHN0cmVzcy9zaGFkb3ctY2hpY2tlbi1lbmFibGVkLmpzOgorICAgICAgICAqIHN0cmVz
cy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5
LWNvcHlXaXRoaW4uanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktZXZlcnkuanM6Cisg
ICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktZmlsbC5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlw
ZWRhcnJheS1maWx0ZXIuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktZmluZC5qczoK
KyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1maW5kSW5kZXguanM6CisgICAgICAgICogc3Ry
ZXNzL3R5cGVkYXJyYXktZm9yRWFjaC5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1m
cm9tLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWluY2x1ZGVzLmpzOgorICAgICAg
ICAqIHN0cmVzcy90eXBlZGFycmF5LWluZGV4T2YuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVk
YXJyYXktbGFzdEluZGV4T2YuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktbWFwLmpz
OgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LW9mLmpzOgorICAgICAgICAqIHN0cmVzcy90
eXBlZGFycmF5LXJlZHVjZS5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1yZWR1Y2VS
aWdodC5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1zZXQuanM6CisgICAgICAgICog
c3RyZXNzL3R5cGVkYXJyYXktc2xpY2UuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXkt
c29tZS5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1zb3J0LmpzOgorICAgICAgICAq
IHN0cmVzcy90eXBlZGFycmF5LXN1YmFycmF5LmpzOgorICAgICAgICAqIHdhc20vQnVpbGRlci5q
czoKKyAgICAgICAgKiB3YXNtL0J1aWxkZXJfV2ViQXNzZW1ibHlCaW5hcnkuanM6CisgICAgICAg
ICogd2FzbS9Mb3dMZXZlbEJpbmFyeS5qczoKKyAgICAgICAgKiB3YXNtL1JFQURNRS5tZDoKKyAg
ICAgICAgKiB3YXNtL1dBU00uanM6CisgICAgICAgICogd2FzbS9yZWdyZXNzL3NlbGVjdGY2NC5q
czoKKyAgICAgICAgKiB3YXNtL3NwZWMtaGFybmVzcy5qczoKKyAgICAgICAgKGltcG9ydC5zdHJp
bmdfYXBwZWFyZWRfaGVyZS50aGVuKToKKwogMjAyMC0wNy0xMiAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIG1hcmsgd2FzbS9yZWZlcmVu
Y2VzL211bHRpdGFibGUuanMgYXMgbWVtb3J5LWV4aGF1c3RpbmcKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvbW9kdWxlcy9hbGlhc2VkLW5hbWVzLmpzIGIvSlNUZXN0cy9tb2R1bGVzL2FsaWFzZWQtbmFt
ZXMuanMKaW5kZXggNGM4Nzk2NTQ5NWMwMGM2NDk2MzI5NWVkYTRkNzlkZGM5NTU3YjQzNi4uNzc3
Zjc0MjViOTM3Njk2YTcyMjhlYTQ5NWM4NGU5ZmVjNGNkYzQxNCAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9tb2R1bGVzL2FsaWFzZWQtbmFtZXMuanMKKysrIGIvSlNUZXN0cy9tb2R1bGVzL2FsaWFzZWQt
bmFtZXMuanMKQEAgLTEsNCArMSw0IEBACi1pbXBvcnQgeyBhLCBiLCBjaGFuZ2UgfSBmcm9tICdh
bGlhc2VkLW5hbWVzL21haW4uanMnCitpbXBvcnQgeyBhLCBiLCBjaGFuZ2UgfSBmcm9tICcuL2Fs
aWFzZWQtbmFtZXMvbWFpbi5qcycKIGltcG9ydCB7IHNob3VsZEJlLCBzaG91bGRUaHJvdyB9IGZy
b20gIi4vcmVzb3VyY2VzL2Fzc2VydC5qcyI7CiAKIHNob3VsZEJlKGEsIDQyKTsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvbW9kdWxlcy9hbGlhc2luZy9kcmluay5qcyBiL0pTVGVzdHMvbW9kdWxlcy9h
bGlhc2luZy9kcmluay5qcwppbmRleCAxZGE4NGEwZjhmMGFhYTBhNDkzYzlhYjE0ZTYzODRkZWZm
MzFjNjYzLi5mYzUyZTQ4ZWFkMTFiYjZkZjg1YzY1ZGEyZWViMjMyMDBlY2YxMDJiIDEwMDY0NAot
LS0gYS9KU1Rlc3RzL21vZHVsZXMvYWxpYXNpbmcvZHJpbmsuanMKKysrIGIvSlNUZXN0cy9tb2R1
bGVzL2FsaWFzaW5nL2RyaW5rLmpzCkBAIC0zLDUgKzMsNSBAQCBleHBvcnQgZnVuY3Rpb24gY2hh
bmdlQ29jb2EodmFsdWUpIHsKICAgICBDb2NvYSA9IHZhbHVlOwogfQogCi1pbXBvcnQgeyBDYXBw
dWNjaW5vIGFzIFN1YkRyaW5rLCBjaGFuZ2VDYXBwdWNjaW5vIH0gZnJvbSAiZHJpbmstMi5qcyIK
K2ltcG9ydCB7IENhcHB1Y2Npbm8gYXMgU3ViRHJpbmssIGNoYW5nZUNhcHB1Y2Npbm8gfSBmcm9t
ICIuL2RyaW5rLTIuanMiCiBleHBvcnQgeyBTdWJEcmluaywgY2hhbmdlQ2FwcHVjY2lubyB9CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1
b3VzLmpzIGIvSlNUZXN0cy9tb2R1bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1tYWtlLWFtYmlndW91
cy5qcwppbmRleCA0MjUxM2VkMTcwYjNkNzExMTM5NGJiMzQ5M2RiOGE2NGQ1YzJhMWUwLi41NGE0
MDg4OWRiMmIxNWVjMmRiNWJjNWE2MDVlZmUzZDUwMWI4OTkyIDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzLmpzCisrKyBiL0pTVGVz
dHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1ub3QtbWFrZS1hbWJpZ3VvdXMuanMKQEAgLTIsNCAr
Miw0IEBACiAvLyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwKIC8vICAgICAgICAg
ICAgICAgIHwgICAgICAgICAgICAgICAgdgogLy8gICBALT4gKEEpICotLS0tKy0tLS0+IChCKSAt
LS0+IFtDXQotaW1wb3J0IHsgQSB9IGZyb20gImNhY2hpbmctc2hvdWxkLW5vdC1tYWtlLWFtYmln
dW91cy9tYWluLmpzIgoraW1wb3J0IHsgQSB9IGZyb20gIi4vY2FjaGluZy1zaG91bGQtbm90LW1h
a2UtYW1iaWd1b3VzL21haW4uanMiCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21vZHVsZXMvZGVmYXVs
dC1lcnJvci9tYWluLmpzIGIvSlNUZXN0cy9tb2R1bGVzL2RlZmF1bHQtZXJyb3IvbWFpbi5qcwpp
bmRleCBkYWFiMTM1OTE4MzY1NTgyNjg4ZjU4OGMxYTllNTNiMTc1NjRiNDI2Li41ZmJlNDQ0Y2Uz
OTQxZTE0ZGJlOTQ2ZjYwMTQ5ZDBhZDJhODZjMWYyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL21vZHVs
ZXMvZGVmYXVsdC1lcnJvci9tYWluLmpzCisrKyBiL0pTVGVzdHMvbW9kdWxlcy9kZWZhdWx0LWVy
cm9yL21haW4uanMKQEAgLTEgKzEgQEAKLWltcG9ydCAiQSI7CitpbXBvcnQgIi4vQSI7CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9uLW9yZGVyLWN5Y2xpYy81LmpzIGIvSlNU
ZXN0cy9tb2R1bGVzL2V4ZWN1dGlvbi1vcmRlci1jeWNsaWMvNS5qcwppbmRleCBhMWRlZWY5MmQx
MmY1YWJjNjg2YTMxOGMyYmFhNDk4YmY2NDgxZThmLi5iMmQ0NTgwNWU5N2Y0NWMyMWNmZDUwYTli
ZmZhZmZhNDM3MmQ3MTBiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9uLW9y
ZGVyLWN5Y2xpYy81LmpzCisrKyBiL0pTVGVzdHMvbW9kdWxlcy9leGVjdXRpb24tb3JkZXItY3lj
bGljLzUuanMKQEAgLTEsNSArMSw1IEBACi1pbXBvcnQgIjMuanMiCi1pbXBvcnQgIjQuanMiCitp
bXBvcnQgIi4vMy5qcyIKK2ltcG9ydCAiLi80LmpzIgogCiB2YXIgZ2xvYmFsID0gKEZ1bmN0aW9u
KCJyZXR1cm4gdGhpcyIpKSgpOwogaWYgKGdsb2JhbC5jb3VudCAhPT0gNCkKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvbW9kdWxlcy9leGVjdXRpb24tb3JkZXItZGFnLzUuanMgYi9KU1Rlc3RzL21vZHVs
ZXMvZXhlY3V0aW9uLW9yZGVyLWRhZy81LmpzCmluZGV4IGEzM2I2M2NmNTRjYTdlNTkzYzNiYjcx
YTA2OTdmNmI4NTk2M2JlYzUuLjdkMTEwMjUwZWI5MjNmNTM2M2FiZGU2OWY5NDEzYWY4YWIzYzA2
M2MgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvbW9kdWxlcy9leGVjdXRpb24tb3JkZXItZGFnLzUuanMK
KysrIGIvSlNUZXN0cy9tb2R1bGVzL2V4ZWN1dGlvbi1vcmRlci1kYWcvNS5qcwpAQCAtMSw1ICsx
LDUgQEAKLWltcG9ydCAiNC5qcyIKLWltcG9ydCAiMS5qcyIKK2ltcG9ydCAiLi80LmpzIgoraW1w
b3J0ICIuLzEuanMiCiAKIHZhciBnbG9iYWwgPSAoRnVuY3Rpb24oInJldHVybiB0aGlzIikpKCk7
CiBpZiAoZ2xvYmFsLmNvdW50ICE9PSA0KQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb2R1bGVzL2V4
ZWN1dGlvbi1vcmRlci10cmVlLzUuanMgYi9KU1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9uLW9yZGVy
LXRyZWUvNS5qcwppbmRleCBhMWRlZWY5MmQxMmY1YWJjNjg2YTMxOGMyYmFhNDk4YmY2NDgxZThm
Li5iMmQ0NTgwNWU5N2Y0NWMyMWNmZDUwYTliZmZhZmZhNDM3MmQ3MTBiIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL21vZHVsZXMvZXhlY3V0aW9uLW9yZGVyLXRyZWUvNS5qcworKysgYi9KU1Rlc3RzL21v
ZHVsZXMvZXhlY3V0aW9uLW9yZGVyLXRyZWUvNS5qcwpAQCAtMSw1ICsxLDUgQEAKLWltcG9ydCAi
My5qcyIKLWltcG9ydCAiNC5qcyIKK2ltcG9ydCAiLi8zLmpzIgoraW1wb3J0ICIuLzQuanMiCiAK
IHZhciBnbG9iYWwgPSAoRnVuY3Rpb24oInJldHVybiB0aGlzIikpKCk7CiBpZiAoZ2xvYmFsLmNv
dW50ICE9PSA0KQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb2R1bGVzL2luZGlyZWN0LWV4cG9ydC1l
cnJvci9pbmRpcmVjdC1leHBvcnQtZGVmYXVsdC0yLmpzIGIvSlNUZXN0cy9tb2R1bGVzL2luZGly
ZWN0LWV4cG9ydC1lcnJvci9pbmRpcmVjdC1leHBvcnQtZGVmYXVsdC0yLmpzCmluZGV4IGMxNzdi
MTQzOTQ1MGNkMmFmMzJjZTI5ZGI2ZjdjNzdmZWQwYzY1ZjYuLmQ1ZjUxODI3N2QwNTZiY2EyMTc2
OThkYjIyZDZjYjEwNGNkOTM5ZjAgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvbW9kdWxlcy9pbmRpcmVj
dC1leHBvcnQtZXJyb3IvaW5kaXJlY3QtZXhwb3J0LWRlZmF1bHQtMi5qcworKysgYi9KU1Rlc3Rz
L21vZHVsZXMvaW5kaXJlY3QtZXhwb3J0LWVycm9yL2luZGlyZWN0LWV4cG9ydC1kZWZhdWx0LTIu
anMKQEAgLTEgKzEgQEAKLWV4cG9ydCAqIGZyb20gImluZGlyZWN0LWV4cG9ydC1kZWZhdWx0LTMu
anMiCitleHBvcnQgKiBmcm9tICIuL2luZGlyZWN0LWV4cG9ydC1kZWZhdWx0LTMuanMiCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL21vZHVsZXMvbmFtZXNwYWNlLWFtYmlndW91cy9hbWJpZ3VvdXMtMi5q
cyBiL0pTVGVzdHMvbW9kdWxlcy9uYW1lc3BhY2UtYW1iaWd1b3VzL2FtYmlndW91cy0yLmpzCmlu
ZGV4IDc4MDkzZDQ2NmQwYzhhNWQ4OTI4MDgyMTI5ZWU5NGZlZmZjMTJkOTUuLmMxYzNlZDc5YWNm
MThiM2YyNmM3Mjg3NzM2ZGUxYTdmOGY0ODMyMGMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvbW9kdWxl
cy9uYW1lc3BhY2UtYW1iaWd1b3VzL2FtYmlndW91cy0yLmpzCisrKyBiL0pTVGVzdHMvbW9kdWxl
cy9uYW1lc3BhY2UtYW1iaWd1b3VzL2FtYmlndW91cy0yLmpzCkBAIC0xLDIgKzEsMiBAQAotZXhw
b3J0ICogZnJvbSAiYW1iaWd1b3VzLTMuanMiCi1leHBvcnQgKiBmcm9tICJhbWJpZ3VvdXMtNC5q
cyIKK2V4cG9ydCAqIGZyb20gIi4vYW1iaWd1b3VzLTMuanMiCitleHBvcnQgKiBmcm9tICIuL2Ft
YmlndW91cy00LmpzIgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9tb2R1bGVzL25hbWVzcGFjZS1hbWJp
Z3VvdXMvYW1iaWd1b3VzLmpzIGIvSlNUZXN0cy9tb2R1bGVzL25hbWVzcGFjZS1hbWJpZ3VvdXMv
YW1iaWd1b3VzLmpzCmluZGV4IGQyODkyZWI5ZjdjNDI5Nzk1NDQ1NWU0MWFkNDA4MjlmODEwN2Yy
N2EuLjNmZDRmNmQ0MmZiNDcyNzlmZTQ5Yzg3OWYzNjYzOTY4MWM2NDgwYTEgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvbW9kdWxlcy9uYW1lc3BhY2UtYW1iaWd1b3VzL2FtYmlndW91cy5qcworKysgYi9K
U1Rlc3RzL21vZHVsZXMvbmFtZXNwYWNlLWFtYmlndW91cy9hbWJpZ3VvdXMuanMKQEAgLTEgKzEg
QEAKLWltcG9ydCAqIGFzIG5hbWVzcGFjZSBmcm9tICJhbWJpZ3VvdXMtMi5qcyIKK2ltcG9ydCAq
IGFzIG5hbWVzcGFjZSBmcm9tICIuL2FtYmlndW91cy0yLmpzIgpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9tb2R1bGVzL25hbWVzcGFjZS1yZS1leHBvcnQuanMgYi9KU1Rlc3RzL21vZHVsZXMvbmFtZXNw
YWNlLXJlLWV4cG9ydC5qcwppbmRleCA5Yzc0ZTYxMmQ0N2U3NWJkOTI3NDg2ZGFlNTExYzkwODlm
YzMxZWQ1Li5iMGM3NWI1OTQ5NTBjZmQ2NDRhZWVlOWRmMDY5ODZmZjUzMDRmNjE3IDEwMDY0NAot
LS0gYS9KU1Rlc3RzL21vZHVsZXMvbmFtZXNwYWNlLXJlLWV4cG9ydC5qcworKysgYi9KU1Rlc3Rz
L21vZHVsZXMvbmFtZXNwYWNlLXJlLWV4cG9ydC5qcwpAQCAtMSArMSBAQAotaW1wb3J0ICJuYW1l
c3BhY2UtcmUtZXhwb3J0L25hbWVzcGFjZS1yZS1leHBvcnQuanMiOworaW1wb3J0ICIuL25hbWVz
cGFjZS1yZS1leHBvcnQvbmFtZXNwYWNlLXJlLWV4cG9ydC5qcyI7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci5qcyBiL0pTVGVzdHMvbW9kdWxl
cy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyLmpzCmluZGV4IDQxOTJiNTE3ZmFlODlhYzMzNTA5
MGI1NTZmZGM5NWI1OTg4YzQzODYuLjc1MDI5NjRhODBhNzdiY2M4MzQ3ZmQ3NzY1NjI2YjExZmM4
MWZjZWMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1z
dGFyLmpzCisrKyBiL0pTVGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyLmpz
CkBAIC05LDUgKzksNSBAQAogLy8gICAgICAgICAgICAgICAgIHwKIC8vICAgICAgICAgICAgICAg
ICBACiAKLWltcG9ydCAidW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9tYWluMS5qcyIKLWltcG9y
dCAidW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9tYWluMi5qcyIKK2ltcG9ydCAiLi91bmNhY2hl
YWJsZS13aGVuLXNlZS1zdGFyL21haW4xLmpzIgoraW1wb3J0ICIuL3VuY2FjaGVhYmxlLXdoZW4t
c2VlLXN0YXIvbWFpbjIuanMiCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29u
c3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTIuanMgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29u
c3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTIuanMKaW5kZXggZmNmZGRmNDk0OTczYzY2NDUzNmIw
NzE1ZTkxMGI1NjY2YzlkMzMxZC4uYTIwYWM1NzNjYzdkZjFmZDA4OTI4ZjYxMDUzM2FkY2VjNjhl
MGE0MCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRp
b24tc2V0dGluZy0yLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xh
cmF0aW9uLXNldHRpbmctMi5qcwpAQCAtOCw4ICs4LDggQEAgZnVuY3Rpb24gYXNzZXJ0KGIpIHsK
IHNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZE5vdFRocm93KCk7IC8vIEFsbG93IGR1
cGxpY2F0ZSBjb25zdCBkZWNsYXJhdGlvbnMgYXQgdGhlIGdsb2JhbCBsZXZlbC4KIAogZm9yIChs
ZXQgaSA9IDA7IGkgPCAxMDA7IGkrKykgewotICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVj
bGFyYXRpb24tc2V0dGluZy9maXJzdC5qcyIpOworICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJl
ZGVjbGFyYXRpb24tc2V0dGluZy9maXJzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKICAgICBh
c3NlcnQoZm9vID09PSAyMCk7Ci0gICAgbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlv
bi1zZXR0aW5nL3NlY29uZC5qcyIpOworICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFy
YXRpb24tc2V0dGluZy9zZWNvbmQuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAgICAgYXNzZXJ0
KGZvbyA9PT0gNDApOwogfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0
LXJlZGVjbGFyYXRpb24tc2V0dGluZy0zLmpzIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0
LXJlZGVjbGFyYXRpb24tc2V0dGluZy0zLmpzCmluZGV4IDExNzdjYjk1ODExMzA3YmI2NjdkMzkw
YzY5YWNkZTcyMmY3MWU0NGIuLjEwMjQwOTZjZTFiMzViZjIyMGYwYTVhMTkwYTExOTI1OWY0OTY3
MTggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9u
LXNldHRpbmctMy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJh
dGlvbi1zZXR0aW5nLTMuanMKQEAgLTcsMTEgKzcsMTEgQEAgZnVuY3Rpb24gYXNzZXJ0KGIpIHsK
IAogc2V0R2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uU2hvdWxkTm90VGhyb3coKTsgLy8gQWxsb3cg
ZHVwbGljYXRlIGNvbnN0IGRlY2xhcmF0aW9ucyBhdCB0aGUgZ2xvYmFsIGxldmVsLgogCi1sb2Fk
KCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvZmlyc3QuanMiKTsKK2xvYWQo
Ii4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy9maXJzdC5qcyIsICJjYWxsZXIg
cmVsYXRpdmUiKTsKIGFzc2VydChmb28gPT09IDIwKTsKIGxldCB0aHJldyA9IGZhbHNlOwogdHJ5
IHsKLSAgICBsb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcvc3RyaWN0
LmpzIik7IC8vIFdlIGlnbm9yZSB0aGUgc2V0dGluZyBhbmQgYWx3YXlzIHRocm93IGFuIGVycm9y
IHdoZW4gaW4gc3RyaWN0IG1vZGUhCisgICAgbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJh
dGlvbi1zZXR0aW5nL3N0cmljdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsgLy8gV2UgaWdub3Jl
IHRoZSBzZXR0aW5nIGFuZCBhbHdheXMgdGhyb3cgYW4gZXJyb3Igd2hlbiBpbiBzdHJpY3QgbW9k
ZSEKIH0gY2F0Y2goZSkgewogICAgIHRocmV3ID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNC5qcyBiL0pTVGVz
dHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNC5qcwppbmRleCBk
OTZhM2Q2ZTJlNTNhMTZjMjI3OTkxYmFmM2U2ZjdmNGUxMjVhMTMyLi4xZmY3ZDc2YjI3OTIyZjIy
ZWZlYzcwZmMwZTkyYTUxMDY1NTJhNzMwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9nbG9i
YWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mv
Z2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy00LmpzCkBAIC03LDExICs3LDExIEBA
IGZ1bmN0aW9uIGFzc2VydChiKSB7CiAKIHNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3Vs
ZE5vdFRocm93KCk7IC8vIEFsbG93IGR1cGxpY2F0ZSBjb25zdCBkZWNsYXJhdGlvbnMgYXQgdGhl
IGdsb2JhbCBsZXZlbC4KIAotbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0
aW5nL2ZpcnN0LmpzIik7Citsb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRp
bmcvZmlyc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBhc3NlcnQoZm9vID09PSAyMCk7CiBs
ZXQgdGhyZXcgPSBmYWxzZTsKIHRyeSB7Ci0gICAgbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNs
YXJhdGlvbi1zZXR0aW5nL2xldC5qcyIpOyAvLyBSZWRlY2xhcmF0aW9uIGEgJ2xldCcgdmFyaWFi
bGUgc2hvdWxkIHRocm93IGJlY2F1c2UgdGhpcyBkb2Vzbid0IGJyZWFrIGJhY2t3YXJkcyBjb21w
YXQuCisgICAgbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL2xldC5q
cyIsICJjYWxsZXIgcmVsYXRpdmUiKTsgLy8gUmVkZWNsYXJhdGlvbiBhICdsZXQnIHZhcmlhYmxl
IHNob3VsZCB0aHJvdyBiZWNhdXNlIHRoaXMgZG9lc24ndCBicmVhayBiYWNrd2FyZHMgY29tcGF0
LgogfSBjYXRjaChlKSB7CiAgICAgdGhyZXcgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy01LmpzIGIvSlNUZXN0
cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy01LmpzCmluZGV4IGUz
ZWEwOTE4MTRjZGJhMGNjNGQwZTM4NDQyMDc1NmNiNTZlYmUwZGIuLmZiMTIzZDYyNjMwZTc3NTBh
NzA1ODU1ZDAwZDBlMmZhYmEzMzM3NGMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2Jh
bC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmctNS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9n
bG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLTUuanMKQEAgLTcsMTEgKzcsMTEgQEAg
ZnVuY3Rpb24gYXNzZXJ0KGIpIHsKIAogc2V0R2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uU2hvdWxk
Tm90VGhyb3coKTsgLy8gQWxsb3cgZHVwbGljYXRlIGNvbnN0IGRlY2xhcmF0aW9ucyBhdCB0aGUg
Z2xvYmFsIGxldmVsLgogCi1sb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRp
bmcvbGV0LmpzIik7Citsb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRpbmcv
bGV0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogYXNzZXJ0KGZvbyA9PT0gNTApOwogbGV0IHRo
cmV3ID0gZmFsc2U7CiB0cnkgewotICAgIGxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRp
b24tc2V0dGluZy9maXJzdC5qcyIpOyAvLyBSZWRlY2xhcmF0aW9uIG9mIGEgJ2xldCcgdG8gJ2Nv
bnN0JyBzaG91bGQgYWx3YXlzIHRocm93IGJlY2F1c2UgaXQgaXNuJ3QgYnJlYWtpbmcgYmFja3dh
cmRzIGNvbXBhdC4KKyAgICBsb2FkKCIuL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNldHRp
bmcvZmlyc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7IC8vIFJlZGVjbGFyYXRpb24gb2YgYSAn
bGV0JyB0byAnY29uc3QnIHNob3VsZCBhbHdheXMgdGhyb3cgYmVjYXVzZSBpdCBpc24ndCBicmVh
a2luZyBiYWNrd2FyZHMgY29tcGF0LgogfSBjYXRjaChlKSB7CiAgICAgdGhyZXcgPSB0cnVlOwog
fQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24t
c2V0dGluZy5qcyBiL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1jb25zdC1yZWRlY2xhcmF0aW9uLXNl
dHRpbmcuanMKaW5kZXggYWVkMWI0MWM0YWEzNjhlYWE5MGQyNmQ5NWNjM2E0M2VjM2NjZDBlMi4u
NGM5NDNkZTYzYTY4ZWNiMjU4NWRmN2JhODdhZTI2Zjk3OGQ4NjhjOCAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9zdHJlc3MvZ2xvYmFsLWNvbnN0LXJlZGVjbGFyYXRpb24tc2V0dGluZy5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nLmpzCkBAIC03
LDcgKzcsNyBAQCBmdW5jdGlvbiBhc3NlcnQoYikgewogCiBzZXRHbG9iYWxDb25zdFJlZGVjbGFy
YXRpb25TaG91bGROb3RUaHJvdygpOyAvLyBBbGxvdyBkdXBsaWNhdGUgY29uc3QgZGVjbGFyYXRp
b25zIGF0IHRoZSBnbG9iYWwgbGV2ZWwuCiAKLWxvYWQoIi4vZ2xvYmFsLWNvbnN0LXJlZGVjbGFy
YXRpb24tc2V0dGluZy9maXJzdC5qcyIpOworbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJh
dGlvbi1zZXR0aW5nL2ZpcnN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogYXNzZXJ0KGZvbyA9
PT0gMjApOwotbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL3NlY29u
ZC5qcyIpOworbG9hZCgiLi9nbG9iYWwtY29uc3QtcmVkZWNsYXJhdGlvbi1zZXR0aW5nL3NlY29u
ZC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGFzc2VydChmb28gPT09IDQwKTsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS5qcyBi
L0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS5qcwppbmRl
eCA2ZWMyODdiNmQxNjA0M2Y4OGFkMWY4ZWRjYjlhOTdkMjZmN2M3MDlkLi41MTYzMzhjMTZkOTNh
OTVlYWQ4NGQ5Y2ZhNTBjYmQ1YmUzOWU4ZWRhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9n
bG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mv
Z2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlLmpzCkBAIC0zMCwzNSArMzAsMzUgQEAg
ZnVuY3Rpb24gYXNzZXJ0UHJvcGVyRXJyb3IoZSkgewogYXNzZXJ0RXhwZWN0YXRpb25zKCk7CiAK
IHRyeSB7Ci0gICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1y
ZWRlY2xhcmUtdmFyaWFibGUvZmlyc3QuanMiKTsKKyAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVz
LXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9maXJzdC5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKIH0gY2F0Y2goZSkgewogICAgIGFzc2VydFByb3BlckVycm9yKGUpOwog
fQogYXNzZXJ0RXhwZWN0YXRpb25zKCk7CiAKIHRyeSB7Ci0gICAgbG9hZCgiLi9tdWx0aXBsZS1m
aWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvc2Vjb25kLmpzIik7
CisgICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xh
cmUtdmFyaWFibGUvc2Vjb25kLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRjaChlKSB7
CiAgICAgYXNzZXJ0UHJvcGVyRXJyb3IoZSk7CiB9CiBhc3NlcnRFeHBlY3RhdGlvbnMoKTsKIAog
dHJ5IHsKLSAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJl
ZGVjbGFyZS12YXJpYWJsZS90aGlyZC5qcyIpOworICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMt
dGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL3RoaXJkLmpzIiwgImNhbGxl
ciByZWxhdGl2ZSIpOwogfSBjYXRjaChlKSB7CiAgICAgYXNzZXJ0UHJvcGVyRXJyb3IoZSk7CiB9
CiBhc3NlcnRFeHBlY3RhdGlvbnMoKTsKIAogdHJ5IHsKLSAgICBsb2FkKCIuL211bHRpcGxlLWZp
bGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9mb3VydGguanMiKTsK
KyAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFy
ZS12YXJpYWJsZS9mb3VydGguanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiB9IGNhdGNoKGUpIHsK
ICAgICBhc3NlcnRQcm9wZXJFcnJvcihlKTsKIH0KIGFzc2VydEV4cGVjdGF0aW9ucygpOwogCiB0
cnkgewotICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVk
ZWNsYXJlLXZhcmlhYmxlL2ZpZnRoLmpzIik7CisgICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10
ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvZmlmdGguanMiLCAiY2FsbGVy
IHJlbGF0aXZlIik7CiB9IGNhdGNoKGUpIHsKICAgICBhc3NlcnRQcm9wZXJFcnJvcihlKTsKIH0K
QEAgLTcwLDcgKzcwLDcgQEAgYXNzZXJ0RXhwZWN0YXRpb25zKCk7CiB0cnkgewogICAgIHNlbnRp
bmVsID0gImJhZCI7CiAgICAgYXNzZXJ0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
dGhpcywgImdsb2JhbFByb3BlcnR5IikuY29uZmlndXJhYmxlKTsKLSAgICBsb2FkKCIuL211bHRp
cGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9zaXh0aC5q
cyIpOworICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtcmVk
ZWNsYXJlLXZhcmlhYmxlL3NpeHRoLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRjaChl
KSB7CiAgICAgYXNzZXJ0KGZhbHNlKTsKIH0KQEAgLTc5LDcgKzc5LDcgQEAgYXNzZXJ0RXhwZWN0
YXRpb25zKCk7CiB0cnkgewogICAgIHNlbnRpbmVsID0gImJhZCI7CiAgICAgYXNzZXJ0KE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcywgIkFycmF5IikuY29uZmlndXJhYmxlKTsK
LSAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXJlZGVjbGFy
ZS12YXJpYWJsZS9zZXZlbnRoLmpzIik7CisgICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0
cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvc2V2ZW50aC5qcyIsICJjYWxsZXIg
cmVsYXRpdmUiKTsKIH0gY2F0Y2goZSkgewogICAgIGFzc2VydChmYWxzZSk7CiB9CkBAIC04OCw3
ICs4OCw3IEBAIGFzc2VydEV4cGVjdGF0aW9ucygpOwogdHJ5IHsKICAgICBzZW50aW5lbCA9ICJi
YWQiOwogICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnZm9vJywge3ZhbHVlOiA1LCBj
b25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlfSk7Ci0gICAgbG9hZCgiLi9tdWx0aXBs
ZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFyaWFibGUvZWlnaHRoLmpz
Iik7CisgICAgbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRl
Y2xhcmUtdmFyaWFibGUvZWlnaHRoLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogfSBjYXRjaChl
KSB7CiAgICAgYXNzZXJ0KGZhbHNlKTsKIH0KQEAgLTk2LDcgKzk2LDcgQEAgYXNzZXJ0RXhwZWN0
YXRpb25zKCk7CiAKIHRyeSB7CiAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdiYXIn
LCB7dmFsdWU6IDUsIGNvbmZpZ3VyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlfSk7Ci0gICAg
bG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFy
aWFibGUvbmludGguanMiKTsKKyAgICBsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2Jh
bC1sZXhpY2FsLXJlZGVjbGFyZS12YXJpYWJsZS9uaW50aC5qcyIsICJjYWxsZXIgcmVsYXRpdmUi
KTsKIH0gY2F0Y2goZSkgewogICAgIGFzc2VydFByb3BlckVycm9yKGUpOwogfQpAQCAtMTA2LDcg
KzEwNiw3IEBAIGFzc2VydChlcnJvckNvdW50ID09PSA2KTsKIAogdHJ5IHsKICAgICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkodGhpcywgJ3pvbycsIHt2YWx1ZTogdW5kZWZpbmVkLCBjb25maWd1cmFi
bGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZX0pOwotICAgIGxvYWQoIi4vbXVsdGlwbGUtZmlsZXMt
dGVzdHMvZ2xvYmFsLWxleGljYWwtcmVkZWNsYXJlLXZhcmlhYmxlL3RlbnRoLmpzIik7CisgICAg
bG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlY2xhcmUtdmFy
aWFibGUvdGVudGguanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiB9IGNhdGNoKGUpIHsKICAgICBh
c3NlcnRQcm9wZXJFcnJvcihlKTsKIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dsb2Jh
bC1sZXhpY2FsLXJlZGVmaW5lLWNvbnN0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWxleGlj
YWwtcmVkZWZpbmUtY29uc3QuanMKaW5kZXggMWM2YmFmN2MzNzIyNTJjYjBjOTdiMzVmYzg0NDRm
ODVjMDY2ZTkxYi4uOTRhYzRhZDM5NDI1MjA4NjRiMGQ4NjIzZTc1Y2MwOTI3Yzk0YmFiZCAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtcmVkZWZpbmUtY29uc3QuanMK
KysrIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtcmVkZWZpbmUtY29uc3QuanMKQEAg
LTEsMiArMSwyIEBACi1sb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2Fs
LXJlZGVmaW5lLWNvbnN0L2ZpcnN0LmpzIik7Ci1sb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3Rz
L2dsb2JhbC1sZXhpY2FsLXJlZGVmaW5lLWNvbnN0L3NlY29uZC5qcyIpOworbG9hZCgiLi9tdWx0
aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC1yZWRlZmluZS1jb25zdC9maXJzdC5qcyIs
ICJjYWxsZXIgcmVsYXRpdmUiKTsKK2xvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFs
LWxleGljYWwtcmVkZWZpbmUtY29uc3Qvc2Vjb25kLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdGR6Lmpz
IGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdGR6LmpzCmluZGV4IGU4
OGNmZDZhMjU2MjM3ZmUzYzJkNTdmZDExZDUwMDE1NjYwODlhMGEuLmUyYTFlMTcxYzE3M2VmMGIx
YjZhZmVkODM2YWE0YjM1MmVmZDVlZmMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2Jh
bC1sZXhpY2FsLXZhcmlhYmxlLXRkei5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwtbGV4
aWNhbC12YXJpYWJsZS10ZHouanMKQEAgLTEsMiArMSwyIEBACi1sb2FkKCIuL211bHRpcGxlLWZp
bGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXZhcmlhYmxlLXRkei9maXJzdC5qcyIpOwotbG9hZCgi
Li9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS10ZHovc2Vjb25k
LmpzIik7Citsb2FkKCIuL211bHRpcGxlLWZpbGVzLXRlc3RzL2dsb2JhbC1sZXhpY2FsLXZhcmlh
YmxlLXRkei9maXJzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKK2xvYWQoIi4vbXVsdGlwbGUt
ZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUtdGR6L3NlY29uZC5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2Fs
LXZhcmlhYmxlLXVucmVzb2x2ZWQtcHJvcGVydHkuanMgYi9KU1Rlc3RzL3N0cmVzcy9nbG9iYWwt
bGV4aWNhbC12YXJpYWJsZS11bnJlc29sdmVkLXByb3BlcnR5LmpzCmluZGV4IGQ2MjIxNDU0NDFi
YTAxZGNiZWNjNThiZmI5ZDllZjhjYjA3NjNkZGUuLmRlMTkzOGM2MGUwOTMwZjJkMmM5ZTVmZjFk
NzRiNzM3YWYwMjBlODcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1sZXhpY2Fs
LXZhcmlhYmxlLXVucmVzb2x2ZWQtcHJvcGVydHkuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvZ2xv
YmFsLWxleGljYWwtdmFyaWFibGUtdW5yZXNvbHZlZC1wcm9wZXJ0eS5qcwpAQCAtMSwyICsxLDIg
QEAKLWxvYWQoIi4vbXVsdGlwbGUtZmlsZXMtdGVzdHMvZ2xvYmFsLWxleGljYWwtdmFyaWFibGUt
dW5yZXNvbHZlZC1wcm9wZXJ0eS9maXJzdC5qcyIpOwotbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10
ZXN0cy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS11bnJlc29sdmVkLXByb3BlcnR5L3NlY29uZC5q
cyIpOworbG9hZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC12YXJpYWJs
ZS11bnJlc29sdmVkLXByb3BlcnR5L2ZpcnN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOworbG9h
ZCgiLi9tdWx0aXBsZS1maWxlcy10ZXN0cy9nbG9iYWwtbGV4aWNhbC12YXJpYWJsZS11bnJlc29s
dmVkLXByb3BlcnR5L3NlY29uZC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL2dsb2JhbC1wcm9wZXJ0eS1pbnRvLXZhcmlhYmxlLWdldC1mcm9tLXNj
b3BlLmpzIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLXByb3BlcnR5LWludG8tdmFyaWFibGUtZ2V0
LWZyb20tc2NvcGUuanMKaW5kZXggOTQ3YzRlOGYxMjIwZDYxODgwZjVjZGM0MGI2YWVjMjk5Y2Fk
YTExYS4uNDFkZWU1OTViNjI0OWM4M2QyYWU2NTJiMGRlYjQwOTU4MTNiMDJhNCAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLXByb3BlcnR5LWludG8tdmFyaWFibGUtZ2V0LWZyb20t
c2NvcGUuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvZ2xvYmFsLXByb3BlcnR5LWludG8tdmFyaWFi
bGUtZ2V0LWZyb20tc2NvcGUuanMKQEAgLTYsNyArNiw3IEBACiAvLyBub0lubGluZSBhcyB0aGUg
Y3VycmVudCBnbG9iYWwgb2JqZWN0IHdvdWxkIG5vdCBoYXZlIG5vSW5saW5lIGFzIGEgcHJvcGVy
dHkKIC8vIGF0IHRoYXQgcG9pbnQgYW5kIHdlIHdvdWxkIGF0dGVtcHQgdG8gYWNjZXNzIHRoZSB2
YWx1ZSBhdCBhbiBpbnZhbGlkIG9mZnNldC4KIAotbG9hZCgicmVzb3VyY2VzL3N0YW5kYWxvbmUt
cHJlLmpzIik7Citsb2FkKCJyZXNvdXJjZXMvc3RhbmRhbG9uZS1wcmUuanMiLCAiY2FsbGVyIHJl
bGF0aXZlIik7CiAKIG5vSW5saW5lKCk7CiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2lt
cG9ydC13aXRoLWVtcHR5LXN0cmluZy5qcyBiL0pTVGVzdHMvc3RyZXNzL2ltcG9ydC13aXRoLWVt
cHR5LXN0cmluZy5qcwppbmRleCBkMTc0ZWM5ZWNmNTE4YzNmZDRiMDJlNzM2NDAxMmExYTYxZGIz
ODQzLi5hYWFkZTk4OTYzYjM4ZGU1NmJkZmU1Nzc5ZTJhODlkNzYzMDUzZTA0IDEwMDY0NAotLS0g
YS9KU1Rlc3RzL3N0cmVzcy9pbXBvcnQtd2l0aC1lbXB0eS1zdHJpbmcuanMKKysrIGIvSlNUZXN0
cy9zdHJlc3MvaW1wb3J0LXdpdGgtZW1wdHktc3RyaW5nLmpzCkBAIC0xLDIgKzEsMiBAQAotaW1w
b3J0KCIiKS50aGVuKCR2bS5hYm9ydCwgZnVuY3Rpb24gKCkgeworaW1wb3J0KCIiKS50aGVuKCR2
bS5hYm9ydCwgZnVuY3Rpb24gKGUpIHsKIH0pOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
anNvbnAtbGl0ZXJhbC1wYXJzZXItc2VtaWNvbG9uLWlzLW5vdC1hc3NpZ25tZW50LmpzIGIvSlNU
ZXN0cy9zdHJlc3MvanNvbnAtbGl0ZXJhbC1wYXJzZXItc2VtaWNvbG9uLWlzLW5vdC1hc3NpZ25t
ZW50LmpzCmluZGV4IDgxYWE2MmFlY2JmY2Y1NmJlZmRjOWE0NWJjNDEyNmUyMzkxMjk2MzYuLmRh
YWFlMWJiZWU5ZGE5MWVlODgwYzg0YTEyNzhiMTNlNWM3Y2FmMDQgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvc3RyZXNzL2pzb25wLWxpdGVyYWwtcGFyc2VyLXNlbWljb2xvbi1pcy1ub3QtYXNzaWdubWVu
dC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9qc29ucC1saXRlcmFsLXBhcnNlci1zZW1pY29sb24t
aXMtbm90LWFzc2lnbm1lbnQuanMKQEAgLTEsNCArMSw0IEBACiB4ID0gdW5kZWZpbmVkOwotbG9h
ZCgiLi9yZXNvdXJjZXMvbGl0ZXJhbC1wYXJzZXItdGVzdC1jYXNlLmpzIik7Citsb2FkKCIuL3Jl
c291cmNlcy9saXRlcmFsLXBhcnNlci10ZXN0LWNhc2UuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7
CiBpZiAoeCAhPT0gdW5kZWZpbmVkKQogICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJlc3VsdCIp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfYWRkLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
b3BfYWRkLmpzCmluZGV4IDZiNjEzZmI2NjY4ODY5MzQwYmU2NmUwNDUzOTMyZDkyMThiMTIzZmIu
LjRkZmJjMmQzZjNmMWIwNmQwNWVlMmEyOTczZGI2MDMxM2Q3NTkwODcgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL29wX2FkZC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9hZGQuanMKQEAg
LTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwg
dGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2Vl
IGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxv
YWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9i
aW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL29wX2JpdGFuZC5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX2JpdGFuZC5qcwppbmRleCA0
NDU1NWYxOTY2ODllNGZkM2M1OWEzNjBmNDY2OTQ0MGYxNzQ5NTIyLi5mN2JlNGRhMDg4ODI4YjNk
MmNiNWZkMDJiMGI5YTAyZTU3ZTBmY2U3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9i
aXRhbmQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfYml0YW5kLmpzCkBAIC00LDcgKzQsNyBA
QAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBz
aWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3At
dGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRl
c3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8g
VGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9i
aXRvci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX2JpdG9yLmpzCmluZGV4IGMxOTg0OTBlYjQ1NTVl
NzJiNDRiZThlZDAyODU1ZDk5MDZmODIzNzkuLjUxNDIxNzI4Y2VmODc3NzdmMjk5ZTdmN2ZlNTky
YWYxOWUzN2Q1YTUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX2JpdG9yLmpzCisrKyBi
L0pTVGVzdHMvc3RyZXNzL29wX2JpdG9yLmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYgYWxsIGdv
ZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90
LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVi
dWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3At
dGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVy
IHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0
aW9uIGRhdGE6CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9iaXR4b3IuanMgYi9KU1Rl
c3RzL3N0cmVzcy9vcF9iaXR4b3IuanMKaW5kZXggMGZmOWYyNzI1NjM0MTMwNzg0ZDU2YWQ3ODBh
ZDFiZTgwNzgxNzk0Yy4uMTRmNjk1NDYwOTVlM2Q5NTg1MWU2Nzk4YTliNTIxMzAzMjhjY2M2OSAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfYml0eG9yLmpzCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL29wX2JpdHhvci5qcwpAQCAtNCw3ICs0LDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRo
aXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBw
cmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRp
b25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsK
K2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfZGl2LUNvbnN0VmFyLmpzIGIvSlNUZXN0cy9z
dHJlc3Mvb3BfZGl2LUNvbnN0VmFyLmpzCmluZGV4IDQ1MDg2NTQzYWQ2MTJiYzQ0NzYwYmNjMzdl
NjU0NWM3ZGU3OTdmOTUuLjhhNjg2NDMxZmM5NWY0MjQ0ZWU4YjdiM2YyNGM5MmI5NDY5NWNiMjkg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX2Rpdi1Db25zdFZhci5qcworKysgYi9KU1Rl
c3RzL3N0cmVzcy9vcF9kaXYtQ29uc3RWYXIuanMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwg
Z29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBu
b3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBk
ZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1v
cC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3Vy
YXRpb24gZGF0YToKQEAgLTEyLDcgKzEyLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9w
LXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAiZGl2IjsKIHZhciBvcCA9ICIvIjsKIAotbG9hZCgi
Li9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmlu
YXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdl
bmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJDb25zdFZhciIsIHZhbHVlcywg
dmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX2Rpdi1WYXJDb25zdC5qcyBi
L0pTVGVzdHMvc3RyZXNzL29wX2Rpdi1WYXJDb25zdC5qcwppbmRleCA5MWZmMmYxNGFkODk3N2U3
ZDA0ZTU1YWE5MTAyYjQ3NmNmZjEyMzliLi4zMzM1NjFiNTY0MDMwNTVlN2ExOGJiYThiNjJlYjY1
YzFiZjE3YmNhIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFyQ29uc3QuanMK
KysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfZGl2LVZhckNvbnN0LmpzCkBAIC00LDcgKzQsNyBAQAog
Ly8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxl
bnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVz
dC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNl
cy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3Qu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVz
dCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gImRpdiI7CiB2YXIgb3AgPSAiLyI7
CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVz
b3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3Rz
ID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyQ29uc3Qi
LCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFy
VmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfZGl2LVZhclZhci5qcwppbmRleCA4MjhhMjAzMDQ1
ZDFjZWRlZWIwZTk0NDI0ZGRmYjJlYTM4OGVhMTZlLi42NDliODA5OTUxNTI5OTI0YzI1MjljMzUy
NzI5MzhmMDhhZjIxMDQ4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9kaXYtVmFyVmFy
LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX2Rpdi1WYXJWYXIuanMKQEAgLTQsNyArNCw3IEBA
CiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNp
bGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10
ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3Vy
Y2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVz
dC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBU
ZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTEyLDcgKzEyLDcgQEAgbG9hZCgiLi9yZXNvdXJj
ZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAiZGl2IjsKIHZhciBvcCA9ICIv
IjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9y
ZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVz
dHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJWYXIi
LCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9sc2hpZnQt
Q29uc3RWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9sc2hpZnQtQ29uc3RWYXIuanMKaW5kZXgg
YzBiMzk5NGM1OThiZDFmOWZiMDU2NmUwNzcyMDY5MzljOWQyYzU5MS4uODc5MzU5ODJjNzFhZWUy
MThkOTA3Y2Q4NjFiNWY2NjliMGFjZmE3MSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3Bf
bHNoaWZ0LUNvbnN0VmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX2xzaGlmdC1Db25zdFZh
ci5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1
bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJy
b3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRl
ZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVz
b3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEs
NyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9
ICJsc2hpZnQiOwogdmFyIG9wID0gIjw8IjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9w
LXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJj
YWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVz
dHMsIG9wTmFtZSwgb3AsICJDb25zdFZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL29wX2xzaGlmdC1WYXJDb25zdC5qcyBiL0pTVGVzdHMvc3RyZXNzL29w
X2xzaGlmdC1WYXJDb25zdC5qcwppbmRleCAwZTMyYmE2OTJmMGVhODUyYTFkMDEwODQxYWU5MjM4
ODc3YWQ4ZDVhLi5iZTM4NWNmY2NmNTRhNjA1MDk3MDQyOTExMmQyZGJhZTQ5ODlhMjE5IDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9sc2hpZnQtVmFyQ29uc3QuanMKKysrIGIvSlNUZXN0
cy9zdHJlc3Mvb3BfbHNoaWZ0LVZhckNvbnN0LmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxs
IGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYg
bm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3Ig
ZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnkt
b3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2Fs
bGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1
cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1v
cC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gImxzaGlmdCI7CiB2YXIgb3AgPSAiPDwiOwogCi1s
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNl
cy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtd
OwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhckNvbnN0IiwgdmFs
dWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LVZhclZh
ci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX2xzaGlmdC1WYXJWYXIuanMKaW5kZXggODczNDliOGZl
NDczOTA5ODRjYTk0ODMwYjc0NWQ4NTE3MTNjMWI0OC4uNTM4MWZkNDI1YWZiMTQ3OTg1NDAzOTc3
ZDEyMDk5MWZhZmYyNDkxZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbHNoaWZ0LVZh
clZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9sc2hpZnQtVmFyVmFyLmpzCkBAIC0zLDcg
KzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1p
bmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5h
cnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIu
L3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5
LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3IEBAIGxvYWQoIi4v
cmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gImxzaGlmdCI7CiB2
YXIgb3AgPSAiPDwiOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7
Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2
ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBv
cCwgIlZhclZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L29wX21vZC1Db25zdFZhci5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX21vZC1Db25zdFZhci5qcwpp
bmRleCA0ODkxODhjZWQxYWE3MTI1OGU5ZmVkMGE0NzMxZmIyMjVmZWVjYzYxLi5iYWVhN2U4YmE3
M2RhNDlmNmY3Mjc2NzE0N2E2NzYwOTcyYTc4ZDI2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVz
cy9vcF9tb2QtQ29uc3RWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfbW9kLUNvbnN0VmFy
LmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVs
ZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJv
cnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVk
LgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3
IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0g
Im1vZCI7CiB2YXIgb3AgPSAiJSI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1
ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVy
IHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBv
cE5hbWUsIG9wLCAiQ29uc3RWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9vcF9tb2QtVmFyQ29uc3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9tb2QtVmFy
Q29uc3QuanMKaW5kZXggZjAzYTRkNDA0YWVhZjdmMGNiM2ZlZjNkYzA2ZTVmZjUxNjZjNjU1NS4u
MzkxYzIxYTY0NDA3ZmFjZjNkMzQwZThmN2FkZWE5MGU2MGQzZjEyNiAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9zdHJlc3Mvb3BfbW9kLVZhckNvbnN0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX21v
ZC1WYXJDb25zdC5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMg
dGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmlu
dAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25z
IGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xv
YWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwog
CiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAt
MTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFy
IG9wTmFtZSA9ICJtb2QiOwogdmFyIG9wID0gIiUiOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5h
cnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpz
IiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0
cyh0ZXN0cywgb3BOYW1lLCBvcCwgIlZhckNvbnN0IiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbW9kLVZhclZhci5qcyBiL0pTVGVzdHMvc3RyZXNzL29w
X21vZC1WYXJWYXIuanMKaW5kZXggMTM0MzZhOTdlMjA1NWY2ZTg2YzFhYTZkNTI3ZDRmOTRjM2Q4
ZjE3Yy4uY2YwNTE5NGYzMDIzY2E1NWRmYWZiNWU0MmNiOTE5YmE4NjUzMjgwOSAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbW9kLVZhclZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9v
cF9tb2QtVmFyVmFyLmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhp
cyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHBy
aW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlv
bnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwor
bG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7
CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBA
IC0xMSw3ICsxMSw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2
YXIgb3BOYW1lID0gIm1vZCI7CiB2YXIgb3AgPSAiJSI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2Jp
bmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRl
c3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyVmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfbXVsLUNvbnN0VmFyLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
b3BfbXVsLUNvbnN0VmFyLmpzCmluZGV4IDNkZTM2NGUxZmI5OTdmM2U0NzY0NmRhYTc3OWQ0YzJh
ZDkzMzY5ZGMuLmVjZjk4ZTIxYTBhZTYwOGM1NzY4NDRmNjg5ODQ3M2U5MjdkMmE3ZTMgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX211bC1Db25zdFZhci5qcworKysgYi9KU1Rlc3RzL3N0
cmVzcy9vcF9tdWwtQ29uc3RWYXIuanMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3
ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0
IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dp
bmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0
LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVs
YXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24g
ZGF0YToKQEAgLTEyLDcgKzEyLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3Qu
anMiKTsKIHZhciBvcE5hbWUgPSAibXVsIjsKIHZhciBvcCA9ICIqIjsKIAotbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9w
LXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRl
QmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJDb25zdFZhciIsIHZhbHVlcywgdmFsdWVz
KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX211bC1WYXJDb25zdC5qcyBiL0pTVGVz
dHMvc3RyZXNzL29wX211bC1WYXJDb25zdC5qcwppbmRleCA0OGUxZTc2NTQ5NzYwNjY3ZGFmNDZh
YzJhMWJiMTZiZDc5MzYwMzljLi5jOGZjZDA1ZGYyN2RlZDQ1MGRkODE3YWNhMDlmYzA4MDM3ZTZh
YzkyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtVmFyQ29uc3QuanMKKysrIGIv
SlNUZXN0cy9zdHJlc3Mvb3BfbXVsLVZhckNvbnN0LmpzCkBAIC00LDcgKzQsNyBAQAogLy8gSWYg
YWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4g
SWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBm
b3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5h
cnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAi
Y2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25m
aWd1cmF0aW9uIGRhdGE6CkBAIC0xMiw3ICsxMiw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFy
eS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gIm11bCI7CiB2YXIgb3AgPSAiKiI7CiAKLWxv
YWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107
CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyQ29uc3QiLCB2YWx1
ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtVmFyVmFyLmpz
IGIvSlNUZXN0cy9zdHJlc3Mvb3BfbXVsLVZhclZhci5qcwppbmRleCA1ZTFjYzU4NzI4NWRlNGM1
Y2ExMDNmZmUzODUyNmQxZWNhMDQzYWVlLi5iNzc0ZWNhZGI3OTNmMmEwZjllYmYxMzJlNDc4MzZh
MDdlNDUxZjk1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9tdWwtVmFyVmFyLmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL29wX211bC1WYXJWYXIuanMKQEAgLTQsNyArNCw3IEBACiAvLyBJ
ZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVybWluYXRlIHNpbGVudGx5
LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJpbmFyeS1vcC10ZXN0Lmpz
IGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL2Jp
bmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIs
ICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUZXN0IGNv
bmZpZ3VyYXRpb24gZGF0YToKQEAgLTEyLDcgKzEyLDcgQEAgbG9hZCgiLi9yZXNvdXJjZXMvYmlu
YXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAibXVsIjsKIHZhciBvcCA9ICIqIjsKIAot
bG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJj
ZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBb
XTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJWYXIiLCB2YWx1
ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9uZWdhdGUuanMgYi9K
U1Rlc3RzL3N0cmVzcy9vcF9uZWdhdGUuanMKaW5kZXggZDk4ZjA0ZGJjN2MwNWMwYzFlZGRhYTZm
ODBiNGFhZmFiNTgxNmUxMi4uNTViMDJkZmFjODMwM2NjYmEzODMyZmFlYjEyOTQ2YTAzMDVhYzQ3
ZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfbmVnYXRlLmpzCisrKyBiL0pTVGVzdHMv
c3RyZXNzL29wX25lZ2F0ZS5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGws
IHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2ls
bCBwcmludAogLy8gZXJyb3JzLiBTZWUgdW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9w
dGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIik7
Citsb2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfcG9zdGRlYy5qcyBiL0pTVGVzdHMvc3RyZXNz
L29wX3Bvc3RkZWMuanMKaW5kZXggYjJlMWZhNzI5NzNjNmY1NzZkMTVhMzg4Mzk5ZDBlNjQwOTEx
OTk5YS4uNjI5Yjg1YmZlZDQzNDgxNTZjNzg1N2Y2MDcxNDA3ZmUxMmZhOTdiNyAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9zdHJlc3Mvb3BfcG9zdGRlYy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9w
b3N0ZGVjLmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0
IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAv
LyBlcnJvcnMuIFNlZSB1bmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBu
ZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3VyY2VzL3VuYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4v
cmVzb3VyY2VzL3VuYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9vcF9wb3N0aW5jLmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3BfcG9zdGlu
Yy5qcwppbmRleCAwOGFhMzVkOWQwODhmMDk4NDhlYzBiMjA1MzRkYTc2YmQzMmJjYTlmLi4zZGZk
MmU1YmQ5MGY1OWM1ZjQzMDk2ZmU0MTRkNDJiOWIwYmRhNGJmIDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3N0cmVzcy9vcF9wb3N0aW5jLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX3Bvc3RpbmMuanMK
QEAgLTMsNyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdp
bGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4g
U2VlIHVuYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAot
bG9hZCgiLi9yZXNvdXJjZXMvdW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMv
dW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL29wX3ByZWRlYy5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX3ByZWRlYy5qcwppbmRleCBi
OGM2NTYyN2ViZmMzYjZlNDEwZDg1Mzg3OGMxZWIzYWQ3ODA0NDM1Li41YTljYjQ2ZDRhZjhlM2M1
NGVjODgwNWU4MGFiZDFiZGEyMGMxOWJlIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9vcF9w
cmVkZWMuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3BfcHJlZGVjLmpzCkBAIC0zLDcgKzMsNyBA
QAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBz
aWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSB1bmFyeS1vcC10
ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQoIi4vcmVzb3Vy
Y2VzL3VuYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3VuYXJ5LW9wLXRlc3Qu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVz
dCBjb25maWd1cmF0aW9uIGRhdGE6CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9wcmVp
bmMuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9wcmVpbmMuanMKaW5kZXggMjJmYjZlZTYxODdhZTY1
NTRlM2UzZjUwODk0ZGVjMzNjZjE1NzA1MS4uMWM3OTNkMTYzYzQ0MGUxNzlkYjdjOTMyZDNiNzJj
Y2YyZjRlMDc3NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfcHJlaW5jLmpzCisrKyBi
L0pTVGVzdHMvc3RyZXNzL29wX3ByZWluYy5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBn
b2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5v
dCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgdW5hcnktb3AtdGVzdC5qcyBmb3IgZGVi
dWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10
ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy91bmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciBy
ZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlv
biBkYXRhOgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LUNvbnN0VmFyLmpz
IGIvSlNUZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LUNvbnN0VmFyLmpzCmluZGV4IGYwNTk5MzE0OWI0
ZWU5YjQzNjBiNzY3Nzk0MjA5NjhhZWJjN2ZkN2YuLmY5OTk5MDAwY2ZmMjIxMGExNjUzZDQzYjlm
NzBhOTA4OGM0ZmMwOTkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1Db25z
dFZhci5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQtQ29uc3RWYXIuanMKQEAgLTMs
NyArMyw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxlIHdpbGwgdGVy
bWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9ycy4gU2VlIGJp
bmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQuCiAKLWxvYWQo
Ii4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5h
cnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTExLDcgKzExLDcgQEAgbG9hZCgi
Li9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAicnNoaWZ0IjsK
IHZhciBvcCA9ICI+PiI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMi
KTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0
aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUs
IG9wLCAiQ29uc3RWYXIiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy9vcF9yc2hpZnQtVmFyQ29uc3QuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9yc2hpZnQtVmFy
Q29uc3QuanMKaW5kZXggMTAwY2Q5YmFkNTVmZGQxODk5NTM0MTZkNTQ0MGUyZDNjMzEwMjZmZi4u
YTVhYTA1MTkxYmZhODdmNzBkZjFiZGVlZTZmMzQ3NTNjYjYzYzI0ZSAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LVZhckNvbnN0LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29w
X3JzaGlmdC1WYXJDb25zdC5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGws
IHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2ls
bCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBv
cHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMi
KTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2
ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRh
OgpAQCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIp
OwogdmFyIG9wTmFtZSA9ICJyc2hpZnQiOwogdmFyIG9wID0gIj4+IjsKIAotbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9w
LXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRl
QmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJDb25zdCIsIHZhbHVlcywgdmFsdWVz
KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1WYXJWYXIuanMgYi9KU1Rl
c3RzL3N0cmVzcy9vcF9yc2hpZnQtVmFyVmFyLmpzCmluZGV4IDExNjY2MGQ1ODFlZjI1ZjhiNmY0
MWViYzllYjYwMmIyYzE2NzZmMWIuLjJmZThmOTdiMmIxODY3YWRmM2U1NjZmOGJjZGE5MTcwNzA4
OTM2MmIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3JzaGlmdC1WYXJWYXIuanMKKysr
IGIvSlNUZXN0cy9zdHJlc3Mvb3BfcnNoaWZ0LVZhclZhci5qcwpAQCAtMyw3ICszLDcgQEAKIC8v
IElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50
bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3Qu
anMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMv
YmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0Lmpz
IiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3Qg
Y29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9i
aW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJyc2hpZnQiOwogdmFyIG9wID0gIj4+
IjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIpOworbG9hZCgiLi9y
ZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogdGVz
dHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9wTmFtZSwgb3AsICJWYXJWYXIi
LCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItQ29u
c3RWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItQ29uc3RWYXIuanMKaW5kZXggYzhmYTFm
ZjBkYzE4YWU0ZWI0ZjcwMDE0NTEwNWQ0OTc1NzJhMzg1YS4uZjMwMzQzNTI4NzMwNDE2ZjJhMDk1
MzlhYzQxNDZlMmZhMjMzNjA3ZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLUNv
bnN0VmFyLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL29wX3N1Yi1Db25zdFZhci5qcwpAQCAtNCw3
ICs0LDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJt
aW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmlu
YXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgi
Li9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFy
eS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTIsNyArMTIsNyBAQCBsb2FkKCIu
L3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJzdWIiOwogdmFy
IG9wID0gIi0iOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Cits
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIp
OwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwg
IkNvbnN0VmFyIiwgdmFsdWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mv
b3Bfc3ViLVZhckNvbnN0LmpzIGIvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLVZhckNvbnN0LmpzCmlu
ZGV4IDkxZTc0NTVmNDU3MDBkODNiY2VmNWU0NjczYzNhZGQ0OWQxNmJhYzIuLmYxZTU3NzQyOGRl
MzM4OTI4ODRiNTdkZmY3ZTE4NjEyM2FmMjM2MTIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNz
L29wX3N1Yi1WYXJDb25zdC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItVmFyQ29uc3Qu
anMKQEAgLTQsNyArNCw3IEBACiAvLyBJZiBhbGwgZ29lcyB3ZWxsLCB0aGlzIHRlc3QgbW9kdWxl
IHdpbGwgdGVybWluYXRlIHNpbGVudGx5LiBJZiBub3QsIGl0IHdpbGwgcHJpbnQKIC8vIGVycm9y
cy4gU2VlIGJpbmFyeS1vcC10ZXN0LmpzIGZvciBkZWJ1Z2dpbmcgb3B0aW9ucyBpZiBuZWVkZWQu
CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7Citsb2FkKCIuL3Jlc291
cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogLy89PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CiAvLyBUZXN0IGNvbmZpZ3VyYXRpb24gZGF0YToKQEAgLTEyLDcgKzEyLDcg
QEAgbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKIHZhciBvcE5hbWUgPSAi
c3ViIjsKIHZhciBvcCA9ICItIjsKIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVl
cy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXZhbHVlcy5qcyIsICJjYWxsZXIg
cmVsYXRpdmUiKTsKIAogdGVzdHMgPSBbXTsKIGdlbmVyYXRlQmluYXJ5VGVzdHModGVzdHMsIG9w
TmFtZSwgb3AsICJWYXJDb25zdCIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL29wX3N1Yi1WYXJWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF9zdWItVmFyVmFy
LmpzCmluZGV4IDZiOWQxN2NlZjhhMDE3OWEwZTYwMzVjNWZlZGFjMWFmYTEyMzZhZGYuLmQwZjhl
OWUyMDBjMGQzZDU5ZjkyN2M2ZDM4MDRhNTU3Yjk4OWUyOWMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
c3RyZXNzL29wX3N1Yi1WYXJWYXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvb3Bfc3ViLVZhclZh
ci5qcwpAQCAtNCw3ICs0LDcgQEAKIC8vIElmIGFsbCBnb2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1
bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5vdCwgaXQgd2lsbCBwcmludAogLy8gZXJy
b3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRlYnVnZ2luZyBvcHRpb25zIGlmIG5lZWRl
ZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiKTsKK2xvYWQoIi4vcmVz
b3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAvLz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJhdGlvbiBkYXRhOgpAQCAtMTIsNyArMTIs
NyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9
ICJzdWIiOwogdmFyIG9wID0gIi0iOwogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFs
dWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxl
ciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtdOwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywg
b3BOYW1lLCBvcCwgIlZhclZhciIsIHZhbHVlcywgdmFsdWVzKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL29wX3Vyc2hpZnQtQ29uc3RWYXIuanMgYi9KU1Rlc3RzL3N0cmVzcy9vcF91cnNo
aWZ0LUNvbnN0VmFyLmpzCmluZGV4IGZkZWUwYmU2ZTk1MTdjMzBhYmVjZGI1NTc2ZjUxYmY3ODc1
NzNkYmMuLmViNTE4NjA5ZGQ3OTk0NThmY2JhZTExYzZmNTA0OWFiNjJhNjMwMjQgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvc3RyZXNzL29wX3Vyc2hpZnQtQ29uc3RWYXIuanMKKysrIGIvSlNUZXN0cy9z
dHJlc3Mvb3BfdXJzaGlmdC1Db25zdFZhci5qcwpAQCAtMyw3ICszLDcgQEAKIC8vIElmIGFsbCBn
b2VzIHdlbGwsIHRoaXMgdGVzdCBtb2R1bGUgd2lsbCB0ZXJtaW5hdGUgc2lsZW50bHkuIElmIG5v
dCwgaXQgd2lsbCBwcmludAogLy8gZXJyb3JzLiBTZWUgYmluYXJ5LW9wLXRlc3QuanMgZm9yIGRl
YnVnZ2luZyBvcHRpb25zIGlmIG5lZWRlZC4KIAotbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9w
LXRlc3QuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIiwgImNhbGxl
ciByZWxhdGl2ZSIpOwogCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRlc3QgY29uZmlndXJh
dGlvbiBkYXRhOgpAQCAtMTEsNyArMTEsNyBAQCBsb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3At
dGVzdC5qcyIpOwogdmFyIG9wTmFtZSA9ICJ1cnNoaWZ0IjsKIHZhciBvcCA9ICI+Pj4iOwogCi1s
b2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdmFsdWVzLmpzIik7Citsb2FkKCIuL3Jlc291cmNl
cy9iaW5hcnktb3AtdmFsdWVzLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB0ZXN0cyA9IFtd
OwogZ2VuZXJhdGVCaW5hcnlUZXN0cyh0ZXN0cywgb3BOYW1lLCBvcCwgIkNvbnN0VmFyIiwgdmFs
dWVzLCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb3BfdXJzaGlmdC1WYXJD
b25zdC5qcyBiL0pTVGVzdHMvc3RyZXNzL29wX3Vyc2hpZnQtVmFyQ29uc3QuanMKaW5kZXggOGI0
YWNlZGFiYjM1ZTFiYjIzMWJmN2YzYjY5NDA5MzI3ODE4ODlkYy4uMjhkYTA1MDNlZDI5ZGExNzJi
NWYxMjdmYzY4Y2UyZTk3MjhiYjRhZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvb3BfdXJz
aGlmdC1WYXJDb25zdC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LVZhckNvbnN0
LmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdvZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVs
ZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90LCBpdCB3aWxsIHByaW50CiAvLyBlcnJv
cnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVidWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVk
LgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3AtdGVzdC5qcyIpOworbG9hZCgiLi9yZXNv
dXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIC8vPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3
IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0g
InVyc2hpZnQiOwogdmFyIG9wID0gIj4+PiI7CiAKLWxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1v
cC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiLCAi
Y2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRl
c3RzLCBvcE5hbWUsIG9wLCAiVmFyQ29uc3QiLCB2YWx1ZXMsIHZhbHVlcyk7CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9vcF91cnNoaWZ0LVZhclZhci5qcyBiL0pTVGVzdHMvc3RyZXNzL29w
X3Vyc2hpZnQtVmFyVmFyLmpzCmluZGV4IGNiMTRhZWRmNWZkMWE3NjZmMGI3YTljY2NhZTJkYWJk
OTE5ZjE2NGYuLmI4NDAzN2EwMmMyYjdiODEzNWY3NDE3MmVjMDY3NjlhMjlhM2I2NWIgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL29wX3Vyc2hpZnQtVmFyVmFyLmpzCisrKyBiL0pTVGVzdHMv
c3RyZXNzL29wX3Vyc2hpZnQtVmFyVmFyLmpzCkBAIC0zLDcgKzMsNyBAQAogLy8gSWYgYWxsIGdv
ZXMgd2VsbCwgdGhpcyB0ZXN0IG1vZHVsZSB3aWxsIHRlcm1pbmF0ZSBzaWxlbnRseS4gSWYgbm90
LCBpdCB3aWxsIHByaW50CiAvLyBlcnJvcnMuIFNlZSBiaW5hcnktb3AtdGVzdC5qcyBmb3IgZGVi
dWdnaW5nIG9wdGlvbnMgaWYgbmVlZGVkLgogCi1sb2FkKCIuL3Jlc291cmNlcy9iaW5hcnktb3At
dGVzdC5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvYmluYXJ5LW9wLXRlc3QuanMiLCAiY2FsbGVy
IHJlbGF0aXZlIik7CiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGVzdCBjb25maWd1cmF0
aW9uIGRhdGE6CkBAIC0xMSw3ICsxMSw3IEBAIGxvYWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC10
ZXN0LmpzIik7CiB2YXIgb3BOYW1lID0gInVyc2hpZnQiOwogdmFyIG9wID0gIj4+PiI7CiAKLWxv
YWQoIi4vcmVzb3VyY2VzL2JpbmFyeS1vcC12YWx1ZXMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2Vz
L2JpbmFyeS1vcC12YWx1ZXMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIHRlc3RzID0gW107
CiBnZW5lcmF0ZUJpbmFyeVRlc3RzKHRlc3RzLCBvcE5hbWUsIG9wLCAiVmFyVmFyIiwgdmFsdWVz
LCB2YWx1ZXMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMS5q
cyBiL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3MtMTU5Nzc5LTEuanMKaW5kZXggYjA3MTUxZDVhYTJl
ZTIwMDU4NWVkYWExOTI2MGE3Y2VhMjU5MjM1Ny4uZWU5ZmUyMDc3NDMyMGViNGI2MTczNzdjODM1
NjM5ZWNiMTQwMGU1NiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3Nzkt
MS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE1OTc3OS0xLmpzCkBAIC0xMjkwLDcg
KzEyOTAsNyBAQCBmdW5jdGlvbiBtYWtlVXNlUmVncmVzc2lvblRlc3QoZCwgYikKICAgICAgICAg
YnJlYWs7CiAgICAgICBkZWZhdWx0OgogICAgICAgICAKLSAgICAgICAgcyArPSAiLyogcmVncmVz
c2lvbi10ZXN0LWxvYWQgKi8gIiArICJsb2FkKCIgKyBzaW1wbGVTb3VyY2UoZmlsZSkgKyAiKTsi
OworICAgICAgICBzICs9ICIvKiByZWdyZXNzaW9uLXRlc3QtbG9hZCAqLyAiICsgImxvYWQoIiAr
IHNpbXBsZVNvdXJjZShmaWxlKSArICIsICJjYWxsZXIgcmVsYXRpdmUiKTsiOwogICAgICAgICBi
cmVhazsKICAgICAgIAogICAgIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3JlZ3Jlc3Mt
MTU5Nzc5LTIuanMgYi9KU1Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE1OTc3OS0yLmpzCmluZGV4IDU4
NzllYjkxZmY3MWM3NTFlNTdkNDUyMDUwOTVkMWQ0M2QzYjRmNDUuLjg5ZmJjZTA5NTIyYWQyZTVi
M2ExNDBmNzg3NGVlZDJkZmIyZGYxMWUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3JlZ3Jl
c3MtMTU5Nzc5LTIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvcmVncmVzcy0xNTk3NzktMi5qcwpA
QCAtMTI5MCw3ICsxMjkwLDcgQEAgZnVuY3Rpb24gbWFrZVVzZVJlZ3Jlc3Npb25UZXN0KGQsIGIp
CiAgICAgICAgIGJyZWFrOwogICAgICAgZGVmYXVsdDoKICAgICAgICAgCi0gICAgICAgIHMgKz0g
Ii8qIHJlZ3Jlc3Npb24tdGVzdC1sb2FkICovICIgKyAibG9hZCgiICsgc2ltcGxlU291cmNlKGZp
bGUpICsgIik7IjsKKyAgICAgICAgcyArPSAiLyogcmVncmVzc2lvbi10ZXN0LWxvYWQgKi8gIiAr
ICJsb2FkKCIgKyBzaW1wbGVTb3VyY2UoZmlsZSkgKyAiLCAiY2FsbGVyIHJlbGF0aXZlIik7IjsK
ICAgICAgICAgYnJlYWs7CiAgICAgICAKICAgICB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9yZXNvdXJjZXMvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzIGIv
SlNUZXN0cy9zdHJlc3MvcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1
bmN0aW9ucy5qcwppbmRleCBiZjM0ZGI0YzZhZTZhZWZjN2NmOTczYjFiNWM2MTg3ZWE2NjliNGU3
Li43MmIwODE0MWIxMTViYjIyZDU4YjZlODdiZjRkYzcyNWNmM2JmZDljIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVu
Y3Rpb25zLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3Jlc291cmNlcy90eXBlZGFycmF5LWNvbnN0
cnVjdG9yLWhlbHBlci1mdW5jdGlvbnMuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291
cmNlcy9zdGFuZGFsb25lLXByZS5qcyIpOworbG9hZCgiLi9zdGFuZGFsb25lLXByZS5qcyIsICJj
YWxsZXIgcmVsYXRpdmUiKTsKIAogInVzZSBzdHJpY3QiOwogCmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMgYi9K
U1Rlc3RzL3N0cmVzcy9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMu
anMKaW5kZXggYzkxNWIyNjk3YzkzMWJlODIwMWJjYTIxM2Y3MmJkNmQxODE0NzhlYi4uNTc5ZDgw
MTA2MzU1YzIyYjZmNzNlZThhMTYwMDIzY2ZlMjkzN2Y1ZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9z
dHJlc3MvcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzCisrKyBi
L0pTVGVzdHMvc3RyZXNzL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9u
cy5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3N0YW5kYWxvbmUtcHJlLmpz
Iik7Citsb2FkKCIuL3N0YW5kYWxvbmUtcHJlLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiB2
YXIgdHlwZWRBcnJheXMgPSBbSW50OEFycmF5LCBVaW50OEFycmF5LCBVaW50OENsYW1wZWRBcnJh
eSwgSW50MTZBcnJheSwgVWludDE2QXJyYXksIEludDMyQXJyYXksIFVpbnQzMkFycmF5LCBGbG9h
dDMyQXJyYXksIEZsb2F0NjRBcnJheV07CiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3Nh
bXBsaW5nLXByb2ZpbGVyLWFub255bW91cy1mdW5jdGlvbi5qcyBiL0pTVGVzdHMvc3RyZXNzL3Nh
bXBsaW5nLXByb2ZpbGVyLWFub255bW91cy1mdW5jdGlvbi5qcwppbmRleCA1ODc2ZGY3NGNjNTY0
MzNlZjYxMmRmNTVmMTM4NmE4N2I1M2UwZjRkLi5hODIxZjE3NDU3NjYwOTU1Y2Q5NzExOTJiNGY0
N2VjZTNmODlmZGNmIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxl
ci1hbm9ueW1vdXMtZnVuY3Rpb24uanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJv
ZmlsZXItYW5vbnltb3VzLWZ1bmN0aW9uLmpzCkBAIC0xLDUgKzEsNSBAQAogaWYgKHBsYXRmb3Jt
U3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKCkpIHsKLSAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2Zp
bGVyL3NhbXBsaW5nUHJvZmlsZXIuanMiKTsKKyAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVy
L3NhbXBsaW5nUHJvZmlsZXIuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKICAgICBmdW5jdGlv
biBmb28oZikgewogICAgICAgICBmKCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1w
bGluZy1wcm9maWxlci1iYXNpYy5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVy
LWJhc2ljLmpzCmluZGV4IGMxMjI4NzBkYWRmMmEzNjEwNjA0YmVlZjNkZjZhMWFjNGMwNmIxMGYu
LmE3NjdkMGI0NzFiNzFjOTA1MWVjNDYxOTFjYTM5YzM1MzQwZjZlMGEgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWJhc2ljLmpzCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWJhc2ljLmpzCkBAIC0xLDUgKzEsNSBAQAogaWYgKHBsYXRm
b3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKCkpIHsKLSAgICBsb2FkKCIuL3NhbXBsaW5nLXBy
b2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIuanMiKTsKKyAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2Zp
bGVyL3NhbXBsaW5nUHJvZmlsZXIuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKICAgICBmdW5j
dGlvbiBiYXIoeSkgewogICAgICAgICBsZXQgeDsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L3NhbXBsaW5nLXByb2ZpbGVyLWJvdW5kLWZ1bmN0aW9uLW5hbWUuanMgYi9KU1Rlc3RzL3N0cmVz
cy9zYW1wbGluZy1wcm9maWxlci1ib3VuZC1mdW5jdGlvbi1uYW1lLmpzCmluZGV4IDdlYmFhNDMz
YTEyMThiNjc3ZGY4ZWM2YTQxNmRkZDExNDllMTFlMmUuLmYzNzc2Mjk4OTU4NTY1ZDkwN2NiMzU2
MGM2YTczMzkzYTA3YjYzZmEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXBy
b2ZpbGVyLWJvdW5kLWZ1bmN0aW9uLW5hbWUuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxp
bmctcHJvZmlsZXItYm91bmQtZnVuY3Rpb24tbmFtZS5qcwpAQCAtMSw1ICsxLDUgQEAKIGlmIChw
bGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigpKSB7Ci0gICAgbG9hZCgiLi9zYW1wbGlu
Zy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIik7CisgICAgbG9hZCgiLi9zYW1wbGluZy1w
cm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogCiAgICAg
ZnVuY3Rpb24gZm9vKCkgewogICAgICAgICBsZXQgbyA9IHt9OwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItZGVlcC1zdGFjay5qcyBiL0pTVGVzdHMvc3RyZXNz
L3NhbXBsaW5nLXByb2ZpbGVyLWRlZXAtc3RhY2suanMKaW5kZXggYzMzOTY5MTYzODg0MTdiZjlj
Y2Q2Zjc0Y2JjYzg1YWFjOTUwNjA4My4uYjFlMzU1YTQ5NDk1Nzk4N2EyM2NmYjVjNDc1OTZlOTBi
M2I5YWQ1YyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItZGVl
cC1zdGFjay5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1kZWVwLXN0
YWNrLmpzCkBAIC0xLDUgKzEsNSBAQAogaWYgKHBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2Zp
bGVyKCkpIHsKLSAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIu
anMiKTsKKyAgICBsb2FkKCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIuanMi
LCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKICAgICBmdW5jdGlvbiBmb28oeCkgeyAKICAgICAgICAg
bGV0IG8gPSB7fTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVy
LWRpc3BsYXktbmFtZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWRpc3Bs
YXktbmFtZS5qcwppbmRleCBkYWI3MTA4MGE3NWNhY2I1OWQ1ODllZjhjMDE1ZWFkY2U2NjU1NWY1
Li41ZDk3OWMxZTZiYjcyNzQ0OWMxNGZkMDQzZTY5NDExNWIzZDNlYWM0IDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1kaXNwbGF5LW5hbWUuanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItZGlzcGxheS1uYW1lLmpzCkBAIC0xLDUgKzEs
NSBAQAogaWYgKHBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKCkpIHsKLSAgICBsb2Fk
KCIuL3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIuanMiKTsKKyAgICBsb2FkKCIu
L3NhbXBsaW5nLXByb2ZpbGVyL3NhbXBsaW5nUHJvZmlsZXIuanMiLCAiY2FsbGVyIHJlbGF0aXZl
Iik7CiAKICAgICBmdW5jdGlvbiBmb28oKSB7CiAgICAgICAgIGxldCBvID0ge307CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1pbnRlcm5hbC1mdW5jdGlvbi1u
YW1lLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItaW50ZXJuYWwtZnVuY3Rp
b24tbmFtZS5qcwppbmRleCA4ODkyY2EzNTAzYzkwNDkzYTlhYzVhZjM0YzlhMDQ2ZjI5MGQxNDE5
Li5hY2ZjNmNiZTE2OWZlMDk3M2FiODkyNzk5M2M4NDE2NTNhNGQ3YTE3IDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1pbnRlcm5hbC1mdW5jdGlvbi1uYW1lLmpz
CisrKyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLWludGVybmFsLWZ1bmN0aW9u
LW5hbWUuanMKQEAgLTEsNSArMSw1IEBACiBpZiAocGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJv
ZmlsZXIoKSkgewotICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxl
ci5qcyIpOworICAgIGxvYWQoIi4vc2FtcGxpbmctcHJvZmlsZXIvc2FtcGxpbmdQcm9maWxlci5q
cyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIAogICAgIGZ1bmN0aW9uIGZvbygpIHsKICAgICAgICAg
bGV0IHg7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci1taWNy
b3Rhc2tzLmpzIGIvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmlsZXItbWljcm90YXNrcy5q
cwppbmRleCBjZTM1ZDE2YWIxYmFiMjc2MDUxMDI1NzRjYTUyYTM0YzBhNDM2YTAwLi45ZGIxODY2
MmE0OGI2ODJjY2Q3ZjEwNjhiZDM1YzgzMGVmNDI2YzliIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0
cmVzcy9zYW1wbGluZy1wcm9maWxlci1taWNyb3Rhc2tzLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L3NhbXBsaW5nLXByb2ZpbGVyLW1pY3JvdGFza3MuanMKQEAgLTEsNyArMSw3IEBACiB2YXIgYWJv
cnQgPSAkdm0uYWJvcnQ7CiAKIGlmIChwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcigp
KSB7Ci0gICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIik7
CisgICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwgImNh
bGxlciByZWxhdGl2ZSIpOwogCiAgICAgbGV0IHRyZWUgPSBudWxsOwogICAgIGZ1bmN0aW9uIHRl
c3RSZXN1bHRzKCkgewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJvZmls
ZXItd2FzbS1uYW1lLXNlY3Rpb24uanMgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxl
ci13YXNtLW5hbWUtc2VjdGlvbi5qcwppbmRleCBiYTllNTZlNmQ4NTFkNGRjMGE2MmExY2QyNjEz
MmE2MGFlNjA2YzVjLi41MmQ0NWUwNDcxMWJlY2U1YmU2YzBlYTk0ZjVkMGVkNDgzNDMxMDViIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUtc2Vj
dGlvbi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGluZy1wcm9maWxlci13YXNtLW5hbWUt
c2VjdGlvbi5qcwpAQCAtNjUsNyArNjUsNyBAQCBpZiAocGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5n
UHJvZmlsZXIoKSAmJiAkdm0uaXNXYXNtU3VwcG9ydGVkKCkpIHsKICAgICBjb25zdCBpbnN0YW5j
ZSA9IGNvbXBpbGUod2FzbUZpbGUsIGltcG9ydE9iamVjdCk7CiAgICAgY29uc3QgcmVzdWx0ID0g
aW5zdGFuY2UuZXhwb3J0cy5fcGFycm90KDEpOwogCi0gICAgbG9hZCgiLi9zYW1wbGluZy1wcm9m
aWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIik7CisgICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxl
ci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogICAgIHZhciB3YXNt
RW50cnkgPSBmdW5jdGlvbigpIHsKICAgICAgICAgcmV0dXJuIGluc3RhbmNlLmV4cG9ydHMuX3Bh
cnJvdCgxKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2FtcGxpbmctcHJv
ZmlsZXItd2FzbS5qcyBiL0pTVGVzdHMvc3RyZXNzL3NhbXBsaW5nLXByb2ZpbGVyLXdhc20uanMK
aW5kZXggN2FkNjVkMWUyZTAwMmI5OWU3ZmIyNzg1ZDNmZmY3NDI3MmZlNDgwMy4uOWY4NzdkNzE4
ZmRmMmQ0YTEwYWI5ZWZmMWM2MGE1YTYyYmZlMWU1NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJl
c3Mvc2FtcGxpbmctcHJvZmlsZXItd2FzbS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zYW1wbGlu
Zy1wcm9maWxlci13YXNtLmpzCkBAIC0xLDcgKzEsNyBAQAogLy9AIHJ1bkRlZmF1bHQKIAogaWYg
KHBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKCkgJiYgJHZtLmlzV2FzbVN1cHBvcnRl
ZCgpKSB7Ci0gICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpz
Iik7CisgICAgbG9hZCgiLi9zYW1wbGluZy1wcm9maWxlci9zYW1wbGluZ1Byb2ZpbGVyLmpzIiwg
ImNhbGxlciByZWxhdGl2ZSIpOwogICAgIGxldCBidWYgPSByZWFkKCIuL3NhbXBsaW5nLXByb2Zp
bGVyL2xvb3Aud2FzbSIsICJiaW5hcnkiKTsKICAgICBsZXQgbW9kdWxlID0gbmV3IFdlYkFzc2Vt
Ymx5Lk1vZHVsZShidWYpOwogICAgIGxldCBpbnN0YW5jZSA9IG5ldyBXZWJBc3NlbWJseS5JbnN0
YW5jZShtb2R1bGUpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4t
ZGlzYWJsZWQuanMgYi9KU1Rlc3RzL3N0cmVzcy9zaGFkb3ctY2hpY2tlbi1kaXNhYmxlZC5qcwpp
bmRleCBhNzMxMDAzMTg4YmQ1ZjNhMTAwNjBmZjU4N2UwMDRmYjE0OGVmMDQ5Li5iMmMwNWM0NDNl
NDZmNGU1NWFhZGRkY2FlZThiYTZmYjBiMTYxYzAzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVz
cy9zaGFkb3ctY2hpY2tlbi1kaXNhYmxlZC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zaGFkb3ct
Y2hpY2tlbi1kaXNhYmxlZC5qcwpAQCAtMyw3ICszLDcgQEAKICJ1c2Ugc3RyaWN0IjsKIAogdmFy
IHZlcmJvc2UgPSBmYWxzZTsKLWxvYWQoInJlc291cmNlcy9zaGFkb3ctY2hpY2tlbi1zdXBwb3J0
LmpzIik7Citsb2FkKCJyZXNvdXJjZXMvc2hhZG93LWNoaWNrZW4tc3VwcG9ydC5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKIGluaXRpYWxpemUoKTsKIAogKGZ1bmN0aW9uIHRlc3QxKCkgewpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4tZW5hYmxlZC5qcyBiL0pTVGVz
dHMvc3RyZXNzL3NoYWRvdy1jaGlja2VuLWVuYWJsZWQuanMKaW5kZXggMTljZjczZDA0MDExNDYx
YmMwZmU1ZDgzNjJhNTRkNDBmY2EwZGM4MC4uZTdlYmY5ZjBjODEzNDI4NGU0Zjg5NGZkZTAyYWNk
NGYwNDFkNDNjNyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3Mvc2hhZG93LWNoaWNrZW4tZW5h
YmxlZC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9zaGFkb3ctY2hpY2tlbi1lbmFibGVkLmpzCkBA
IC02LDcgKzYsNyBAQCB2YXIgc2hhZG93Q2hpY2tlbkZ1bmN0aW9uc09uU3RhY2sgPSAkdm0uc2hh
ZG93Q2hpY2tlbkZ1bmN0aW9uc09uU3RhY2s7CiAKIHZhciB2ZXJib3NlID0gZmFsc2U7CiAKLWxv
YWQoInJlc291cmNlcy9zaGFkb3ctY2hpY2tlbi1zdXBwb3J0LmpzIik7Citsb2FkKCJyZXNvdXJj
ZXMvc2hhZG93LWNoaWNrZW4tc3VwcG9ydC5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGluaXRp
YWxpemUoKTsKIAogKGZ1bmN0aW9uIHRlc3QxKCkgewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3MvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXkt
Y29uc3RydWN0b3IuanMKaW5kZXggMGU4ZWFmNzQ5ODgwODJjNGIxNDBiNzVmMDU0MzMxMTEyMmNk
YTJhNi4uYjI0NTM1NjJmMjBmM2FhZTgwYmFkMzg0MDVkMzY4ZDAyNmJkZmQ0NSAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgi
Li9yZXNvdXJjZXMvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzIik7
Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LWNvbnN0cnVjdG9yLWhlbHBlci1mdW5jdGlv
bnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiAKIGxldCBUeXBlZEFycmF5ID0gT2JqZWN0Lmdl
dFByb3RvdHlwZU9mKEludDMyQXJyYXkpOwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90
eXBlZGFycmF5LWNvcHlXaXRoaW4uanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWNvcHlX
aXRoaW4uanMKaW5kZXggZTVlNzlhYTBlNjA5NjFiMGFhNGU1NTAwMjc2NDdkZWQyYWFhZGQ4OS4u
MTY5MDg4NTZhZGFiMjNhMmZmYTEzZmQ2MTY0NDIzYWViZmQyN2JiOCAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1jb3B5V2l0aGluLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktY29weVdpdGhpbi5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3Vy
Y2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291
cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRp
dmUiKTsKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUg
VHlwZWRBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbiBmdW5jdGlvbiIpOwogCiAKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZXZlcnkuanMgYi9KU1Rlc3RzL3N0cmVzcy90
eXBlZGFycmF5LWV2ZXJ5LmpzCmluZGV4IGM0ZTk3OWNhYjU4YWNkMzE1ZjI3ZGE0MDJmMzRmMzY5
MDdkNjBiYmQuLjFkMGFiYmQxN2Q0YTgwZjk3NzY4OTI5ZTFmNTQ1MzA3YmQ3ZDNiNWEgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZXZlcnkuanMKKysrIGIvSlNUZXN0cy9z
dHJlc3MvdHlwZWRhcnJheS1ldmVyeS5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3Vy
Y2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291
cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRp
dmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRo
ZSBUeXBlZEFycmF5LnByb3RvdHlwZS5ldmVyeSBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbGwuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFy
cmF5LWZpbGwuanMKaW5kZXggNzU1YjQ0MDQ3Y2E3YTQ0OGQwYTkzMTJiMzUyMmIzY2I5ODMwMTRj
Mi4uZmQ1Mzc4ODQxZDhkZTg4MTM4OTc2OWE4NzMwMGJhZTgzNDllOGE2NCAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maWxsLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5
cGVkYXJyYXktZmlsbC5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVk
YXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBl
ZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRl
c2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFy
cmF5LnByb3RvdHlwZS5maWxsIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktZmlsdGVyLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1maWx0
ZXIuanMKaW5kZXggN2NlN2JiZjYzNjc5N2JmZGUxMzUzNWFjNGY0ODE4N2M1YjBhNDUwNi4uM2Ey
MjNkZjRmZjc2Njc0OTg3Y2E0ZjE2NGRhMzRiMTM5MWQ0OGI0MCAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9zdHJlc3MvdHlwZWRhcnJheS1maWx0ZXIuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1maWx0ZXIuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFy
cmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRh
cnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNj
cmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJh
eS5wcm90b3R5cGUuZmlsdGVyIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktZmluZC5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZmluZC5q
cwppbmRleCBiMTkwMmM0NWEwZWU4MmU1ZDA5YWUyYjE3MjU1M2U4YmY5NTk5MmFlLi5lODYwNWIy
MjEyMDZmNDNmOGI0ZTkzZjcwZGFhZjczZTJjZWM1MjhkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0
cmVzcy90eXBlZGFycmF5LWZpbmQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1m
aW5kLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0
LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVz
dC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24o
CiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90
eXBlLmZpbmQgZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1maW5kSW5kZXguanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZpbmRJbmRleC5q
cwppbmRleCBlMDE1YjdjNWE1MjkxOWRjNTI3YWNmMWYyZjgyYWViNTlmZTMxZWQ3Li45MDg2MjIy
NDAxNTIwZjg1NTNiOTM2NjkxMGUwZDAxMzY2YWIxNTE0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0
cmVzcy90eXBlZGFycmF5LWZpbmRJbmRleC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFy
cmF5LWZpbmRJbmRleC5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVk
YXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBl
ZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRl
c2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFy
cmF5LnByb3RvdHlwZS5maW5kSW5kZXggZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvdHlwZWRhcnJheS1mb3JFYWNoLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJh
eS1mb3JFYWNoLmpzCmluZGV4IDBkNjlmZmVkNGM0NjQ4MTRhZmExMGFiMGFmY2U3N2JlNDAwMzcz
ODUuLjJhY2YyNWJjMmYzM2E1ODNiODczN2RlZGIwNzNkMDYzMWY2Yjk4ZmMgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZm9yRWFjaC5qcworKysgYi9KU1Rlc3RzL3N0cmVz
cy90eXBlZGFycmF5LWZvckVhY2guanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNl
cy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJj
ZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZl
Iik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUg
VHlwZWRBcnJheS5wcm90b3R5cGUuZm9yRWFjaCBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZyb20uanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFy
cmF5LWZyb20uanMKaW5kZXggZGJiZmM4YTJlZGZiZGM4NzZkZjQzODlmMDdlNjk2MGEwZGMxZjdm
ZC4uMmZmYzljMWUxMDVhMTkzYTM4ODdjZTAwYTI3ODhlMmUxZjkxOGE3YyAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1mcm9tLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5
cGVkYXJyYXktZnJvbS5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVk
YXJyYXktY29uc3RydWN0b3ItaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJj
ZXMvdHlwZWRhcnJheS1jb25zdHJ1Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciBy
ZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Ig
b2YgdGhlIFR5cGVkQXJyYXkuZnJvbSBmdW5jdGlvbiIKICk7CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy90eXBlZGFycmF5LWluY2x1ZGVzLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJh
eS1pbmNsdWRlcy5qcwppbmRleCBkNmMwM2FmOGRhMmQzMDY0YmE4ODk1NDg5MzcxZTJiYzhkYjA2
MmI1Li5lNjgxYTQ4MzU3NGFhOWZiOTM1NGJkY2NmMWQ5Y2JmYWJhNzUzMzg0IDEwMDY0NAotLS0g
YS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWluY2x1ZGVzLmpzCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktaW5jbHVkZXMuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCJyZXNvdXJj
ZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoInJlc291cmNl
cy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUi
KTsKIAogZm9yIChjb25zdHJ1Y3RvciBvZiB0eXBlZEFycmF5cykgewogICAgIGxldCBhID0gbmV3
IGNvbnN0cnVjdG9yKDEwKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXkt
aW5kZXhPZi5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktaW5kZXhPZi5qcwppbmRleCA3
ZGQ1ZjAwMWFhNmE0NThlZTBlMWQxY2Y0YzIzNGM3NjZhNTIxNGRhLi4wMzIxYWJhNTVlMzE1ODMw
MGI0ZjZkZGVkMGRiMDM2MTdmMTliYjdlIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBl
ZGFycmF5LWluZGV4T2YuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1pbmRleE9m
LmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhl
bHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1o
ZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3JpcHRpb24oCiAi
VGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJvdG90eXBl
LmluZGV4T2YgZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1sYXN0SW5kZXhPZi5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktbGFzdEluZGV4
T2YuanMKaW5kZXggYzc0MDA0MzI0MmMwNjdlOGFkYjFmZDk2MmNjNDFhYTYxZjNjZjYwNS4uM2Jh
NmNlYzUyMDFlMDRiYzIyN2ZhY2E2YzEzMTdhNzJiM2IzZDE2NSAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9zdHJlc3MvdHlwZWRhcnJheS1sYXN0SW5kZXhPZi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90
eXBlZGFycmF5LWxhc3RJbmRleE9mLmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJj
ZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3Vy
Y2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2
ZSIpOwogZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhl
IFR5cGVkQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktbWFwLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlw
ZWRhcnJheS1tYXAuanMKaW5kZXggOGRhZDIyMmNjZjUwMTlhM2FmMDkzODY2YWY5M2FkZDY3YzA2
NWMxMi4uOWExNmFmMzJhMTQ0NTUxYmQ4YzQxMTEwODk1ZWY0ZjE4ZmVmMTI5NiAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1tYXAuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mv
dHlwZWRhcnJheS1tYXAuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBl
ZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlw
ZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBk
ZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRB
cnJheS5wcm90b3R5cGUubWFwIGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktb2YuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LW9mLmpzCmlu
ZGV4IDBlODUyZGQ4YzhjYWZjODNkMGIzODkwYTZiM2I0NDQxNjI4Njg4MGUuLjM2NzQzMjdhNGQ4
OTc5M2EzMjFlYjJiMGM2NGIwZWIzMmY4YWMwNmIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktb2YuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1vZi5qcwpA
QCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktY29uc3RydWN0b3It
aGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS1jb25z
dHJ1Y3Rvci1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwogZGVzY3Jp
cHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXku
b2YgZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1y
ZWR1Y2UuanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXJlZHVjZS5qcwppbmRleCAzOWE2
ZGEzMWE0NmVkOGI3M2UyZjA1NzBkMjM0OTAxNGY0MGEwZTU2Li5lMTllNTA0ZTFlNjE3NzM4YmZj
Y2U4YWE4YTYxZTI0NDMxMzc4NzY1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFy
cmF5LXJlZHVjZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXJlZHVjZS5qcwpA
QCAtMSw0ICsxLDQgQEAKLWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXIt
ZnVuY3Rpb25zLmpzIik7Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVy
LWZ1bmN0aW9ucy5qcyIsICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMg
dGVzdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5yZWR1
Y2UgZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1y
ZWR1Y2VSaWdodC5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktcmVkdWNlUmlnaHQuanMK
aW5kZXggZDVkYjNjN2I2ZTMyZDhjNDM0MzA3YWJlNzFiOGIwMWY5YTQ1OTE5MS4uOGY4YmRiZTdl
YTRiM2YxZDU0ODRlZTFkOTJhY2M5YWZlMTZlOGZkNSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJl
c3MvdHlwZWRhcnJheS1yZWR1Y2VSaWdodC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFy
cmF5LXJlZHVjZVJpZ2h0LmpzCkBAIC0xLDQgKzEsNCBAQAotbG9hZCgiLi9yZXNvdXJjZXMvdHlw
ZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiKTsKK2xvYWQoIi4vcmVzb3VyY2VzL3R5
cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOwog
ZGVzY3JpcHRpb24oCiAiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVk
QXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0IGZ1bmN0aW9uIgogKTsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc2V0LmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJh
eS1zZXQuanMKaW5kZXggZmFjNWZjN2NlZGRjMjE5MWM3NDI5NGNjNGNlMThmMjdiY2U2YzU4YS4u
ZDgyZTU5ODc3NmM4YzBjOWJkYzgwNmQwZDU0ZWRiOWQ3MDk2ZTc0OCAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zZXQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1zZXQuanMKQEAgLTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5
LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJh
eS10ZXN0LWhlbHBlci1mdW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIFR5cGVkQXJyYXkucHJv
dG90eXBlLnNldCBmdW5jdGlvbiIpOwogCiBzaG91bGRCZSgiSW50MzJBcnJheS5wcm90b3R5cGUu
c2V0Lmxlbmd0aCIsICIxIik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5
LXNsaWNlLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zbGljZS5qcwppbmRleCBmYmNi
MWY4YjE1ZDRkODA4NGZkZTY0NTAxZWE3ZjUwYzRlNWE0ODllLi45NWRlZDAzOTRlYzExNGJjOTI5
ZTVhNjVlNGM4M2FmNWQ5Y2ZjNTkxIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFy
cmF5LXNsaWNlLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc2xpY2UuanMKQEAg
LTEsNCArMSw0IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1
bmN0aW9ucy5qcyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1m
dW5jdGlvbnMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRl
c3QgY2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuc2xpY2Ug
ZnVuY3Rpb24iCiApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zb21l
LmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zb21lLmpzCmluZGV4IDAxM2M0OTY4NTJk
YTRjMWQyNjgzNGVkZDUwYzQwZDY3MGVjM2VjNWEuLmMzOGEyODljNjc0ZjJkOWY1ZTE0NTg5MDZm
Mzk4ODM4YTA5NzMyZjggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc29t
ZS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNvbWUuanMKQEAgLTEsNCArMSw0
IEBACi1sb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5q
cyIpOworbG9hZCgiLi9yZXNvdXJjZXMvdHlwZWRhcnJheS10ZXN0LWhlbHBlci1mdW5jdGlvbnMu
anMiLCAiY2FsbGVyIHJlbGF0aXZlIik7CiBkZXNjcmlwdGlvbigKICJUaGlzIHRlc3QgY2hlY2tz
IHRoZSBiZWhhdmlvciBvZiB0aGUgVHlwZWRBcnJheS5wcm90b3R5cGUuc29tZSBmdW5jdGlvbiIK
ICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LXNvcnQuanMgYi9KU1Rl
c3RzL3N0cmVzcy90eXBlZGFycmF5LXNvcnQuanMKaW5kZXggNjk0MWUwYWQyOWU0MGZjN2Q1OTcz
MTFiZjNkMTkwYTQ3YWFkYjQ0ZS4uZjM2MzEyNzIyM2FlOWFmMDY0NjUzZDA1ZDdlNmNjNmY0ZTc0
ZWJjOCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zb3J0LmpzCisrKyBi
L0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc29ydC5qcwpAQCAtMSw0ICsxLDQgQEAKLWxvYWQo
Ii4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7Citsb2Fk
KCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIsICJjYWxs
ZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhlIGJlaGF2
aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5zb3J0IGZ1bmN0aW9uIgogKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc3ViYXJyYXkuanMgYi9KU1Rlc3RzL3N0
cmVzcy90eXBlZGFycmF5LXN1YmFycmF5LmpzCmluZGV4IDhmMzI5NWYwMWY1MjEyOWIyYjgzNTEy
ZDI3YTQwZTg2YzdkZTk4ZjYuLjMwYmEyNTVjODU4N2M1NTJmMGMzNDI3NWE4MDJhMTVhNGExZDJl
OTEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktc3ViYXJyYXkuanMKKysr
IGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1zdWJhcnJheS5qcwpAQCAtMSw0ICsxLDQgQEAK
LWxvYWQoIi4vcmVzb3VyY2VzL3R5cGVkYXJyYXktdGVzdC1oZWxwZXItZnVuY3Rpb25zLmpzIik7
Citsb2FkKCIuL3Jlc291cmNlcy90eXBlZGFycmF5LXRlc3QtaGVscGVyLWZ1bmN0aW9ucy5qcyIs
ICJjYWxsZXIgcmVsYXRpdmUiKTsKIGRlc2NyaXB0aW9uKAogIlRoaXMgdGVzdCBjaGVja3MgdGhl
IGJlaGF2aW9yIG9mIHRoZSBUeXBlZEFycmF5LnByb3RvdHlwZS5zdWJhcnJheSBmdW5jdGlvbiIK
ICk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vQnVpbGRlci5qcyBiL0pTVGVzdHMvd2FzbS9C
dWlsZGVyLmpzCmluZGV4IDk3NjM3N2Y3YjNkOTEzZDRiOGRiMWY4YTc1OTZlNzNkMjc5MWNiNDcu
LmM3ODgzZjRmNDM1ZGM1ZGY0MTI0NjAzNjNhODNmODI0NjllMWJlOGMgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvd2FzbS9CdWlsZGVyLmpzCisrKyBiL0pTVGVzdHMvd2FzbS9CdWlsZGVyLmpzCkBAIC0y
MywxMSArMjMsMTEgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotaW1wb3J0ICogYXMgYXNzZXJ0
IGZyb20gJ2Fzc2VydC5qcyc7Ci1pbXBvcnQgKiBhcyBCdWlsZFdlYkFzc2VtYmx5IGZyb20gJ0J1
aWxkZXJfV2ViQXNzZW1ibHlCaW5hcnkuanMnOwotaW1wb3J0ICogYXMgTExCIGZyb20gJ0xvd0xl
dmVsQmluYXJ5LmpzJzsKLWltcG9ydCAqIGFzIFdBU00gZnJvbSAnV0FTTS5qcyc7Ci1pbXBvcnQg
KiBhcyB1dGlsIGZyb20gJ3V0aWxpdGllcy5qcyc7CitpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAn
Li9hc3NlcnQuanMnOworaW1wb3J0ICogYXMgQnVpbGRXZWJBc3NlbWJseSBmcm9tICcuL0J1aWxk
ZXJfV2ViQXNzZW1ibHlCaW5hcnkuanMnOworaW1wb3J0ICogYXMgTExCIGZyb20gJy4vTG93TGV2
ZWxCaW5hcnkuanMnOworaW1wb3J0ICogYXMgV0FTTSBmcm9tICcuL1dBU00uanMnOworaW1wb3J0
ICogYXMgdXRpbCBmcm9tICcuL3V0aWxpdGllcy5qcyc7CiAKIGNvbnN0IF9pc1ZhbGlkVmFsdWUg
PSAodmFsdWUsIHR5cGUpID0+IHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvd2FzbS9CdWlsZGVyX1dlYkFzc2VtYmx5QmluYXJ5LmpzIGIvSlNUZXN0cy93YXNtL0J1
aWxkZXJfV2ViQXNzZW1ibHlCaW5hcnkuanMKaW5kZXggODYzMzhkMzQ1ZGM4OTk2ZDEzYTQwMDEy
YjM1ZDU0MTcyOWFlNjVkYS4uMTNjNTg2MjIxZTM2Yjk1YzViZTMyMmEzYzYzNjkxMjYxODkzNzcy
NyAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL0J1aWxkZXJfV2ViQXNzZW1ibHlCaW5hcnkuanMK
KysrIGIvSlNUZXN0cy93YXNtL0J1aWxkZXJfV2ViQXNzZW1ibHlCaW5hcnkuanMKQEAgLTIzLDkg
KzIzLDkgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20g
J2Fzc2VydC5qcyc7Ci1pbXBvcnQgTG93TGV2ZWxCaW5hcnkgZnJvbSAnTG93TGV2ZWxCaW5hcnku
anMnOwotaW1wb3J0ICogYXMgV0FTTSBmcm9tICdXQVNNLmpzJzsKK2ltcG9ydCAqIGFzIGFzc2Vy
dCBmcm9tICcuL2Fzc2VydC5qcyc7CitpbXBvcnQgTG93TGV2ZWxCaW5hcnkgZnJvbSAnLi9Mb3dM
ZXZlbEJpbmFyeS5qcyc7CitpbXBvcnQgKiBhcyBXQVNNIGZyb20gJy4vV0FTTS5qcyc7CiAKIGNv
bnN0IHB1dCA9IChiaW4sIHR5cGUsIHZhbHVlKSA9PiBiaW5bdHlwZV0odmFsdWUpOwogCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3dhc20vTG93TGV2ZWxCaW5hcnkuanMgYi9KU1Rlc3RzL3dhc20vTG93
TGV2ZWxCaW5hcnkuanMKaW5kZXggZjliYzhhMzcwNjU3NGFkNDQ1M2ExMGU5MWE5NGYyYzExMjUw
Nzg3Ni4uZWRjMGJlY2ZkZTNhM2IzOTczZGRjODdlNzEwZTczNzU1MWE1ZmI1MyAxMDA2NDQKLS0t
IGEvSlNUZXN0cy93YXNtL0xvd0xldmVsQmluYXJ5LmpzCisrKyBiL0pTVGVzdHMvd2FzbS9Mb3dM
ZXZlbEJpbmFyeS5qcwpAQCAtMjMsOCArMjMsOCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1p
bXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0LmpzJzsKLWltcG9ydCAqIGFzIFdBU00gZnJv
bSAnV0FTTS5qcyc7CitpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnLi9hc3NlcnQuanMnOworaW1w
b3J0ICogYXMgV0FTTSBmcm9tICcuL1dBU00uanMnOwogCiBjb25zdCBfaW5pdGlhbEFsbG9jYXRp
b25TaXplID0gMTAyNDsKIGNvbnN0IF9ncm93QWxsb2NhdGlvblNpemUgPSBhbGxvY2F0ZWQgPT4g
YWxsb2NhdGVkICogMjsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9SRUFETUUubWQgYi9KU1Rl
c3RzL3dhc20vUkVBRE1FLm1kCmluZGV4IDA2NTE1NzU1ZmI2MmQxNDdlZDM1MzgwZTUzMmMwMzcy
ZDI5NjFjOTguLjI1NTg5YzEyMWI1ZjFhZmUwMTNmNzBiZjYzMzExMTEzNDQxZDg4OGMgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvd2FzbS9SRUFETUUubWQKKysrIGIvSlNUZXN0cy93YXNtL1JFQURNRS5t
ZApAQCAtMjksNyArMjksNyBAQCBjcmVhdGUgYSBzY29wZSBjYW4gYmUgbmVzdGVkIHVzaW5nIGEg
bGFtYmRhLgogQSBzaW1wbGUgZXhhbXBsZToKIAogYGBgamF2YXNjcmlwdAotaW1wb3J0IEJ1aWxk
ZXIgZnJvbSAnQnVpbGRlci5qcyc7CitpbXBvcnQgQnVpbGRlciBmcm9tICcuL0J1aWxkZXIuanMn
OwogCiBjb25zdCBidWlsZGVyID0gbmV3IEJ1aWxkZXIoKTsKIApkaWZmIC0tZ2l0IGEvSlNUZXN0
cy93YXNtL1dBU00uanMgYi9KU1Rlc3RzL3dhc20vV0FTTS5qcwppbmRleCAzYzlkZjY4NzE0YTJh
NDJmODE3YmVlYjFiOWU2ZmE4YTJlYjRmZGU3Li4wOTc1NTZjY2U2OWY2ZDU5ODE4YWU5OGIwOGRi
ZDA1ZTExNmI1ZTk1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vV0FTTS5qcworKysgYi9KU1Rl
c3RzL3dhc20vV0FTTS5qcwpAQCAtMjMsNyArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
Ci1pbXBvcnQgKiBhcyB1dGlsaXRpZXMgZnJvbSAndXRpbGl0aWVzLmpzJzsKK2ltcG9ydCAqIGFz
IHV0aWxpdGllcyBmcm9tICcuL3V0aWxpdGllcy5qcyc7CiAKIGNvbnN0IF9tYXBWYWx1ZXMgPSBm
cm9tID0+IHsKICAgICBsZXQgdmFsdWVzID0ge307CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20v
cmVncmVzcy9zZWxlY3RmNjQuanMgYi9KU1Rlc3RzL3dhc20vcmVncmVzcy9zZWxlY3RmNjQuanMK
aW5kZXggZGQ0OTZjOTg5YTVhZTFmYTMxNTFlYWY3N2I2ZDk3OGQ3NjAxMzUxNy4uMGE0MGNkYjg4
ZjMzNTY3ZWQzNTZhMWRhZTFhODA1M2I5NjZjMzkzZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNt
L3JlZ3Jlc3Mvc2VsZWN0ZjY0LmpzCisrKyBiL0pTVGVzdHMvd2FzbS9yZWdyZXNzL3NlbGVjdGY2
NC5qcwpAQCAtMSw0ICsxLDQgQEAKLWltcG9ydCB7IHRlc3QgfSBmcm9tICdzZWxlY3RmNjQud2Fz
bScKK2ltcG9ydCB7IHRlc3QgfSBmcm9tICcuL3NlbGVjdGY2NC53YXNtJwogaW1wb3J0ICogYXMg
YXNzZXJ0IGZyb20gJy4uL2Fzc2VydC5qcyc7CiAKIGFzc2VydC5lcSh0ZXN0KCksIDQzKQpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy93YXNtL3NwZWMtaGFybmVzcy5qcyBiL0pTVGVzdHMvd2FzbS9zcGVj
LWhhcm5lc3MuanMKaW5kZXggY2I3OTIzNDhjMDlkNzVjYjA2ZjUzNDA1Nzg2MTlkNjU2MDBhZjc4
MS4uMzMwOTRhYjkxOTE1NmE5ODYwNTczY2JjZWQ2NmJmNGM5MWVkMmVlMCAxMDA2NDQKLS0tIGEv
SlNUZXN0cy93YXNtL3NwZWMtaGFybmVzcy5qcworKysgYi9KU1Rlc3RzL3dhc20vc3BlYy1oYXJu
ZXNzLmpzCkBAIC0yLDkgKzIsOSBAQAogCiAvLyBUaGlzIGlzIG91ciBuaWZ0eSB3YXkgdG8gbWFr
ZSBtb2R1bGVzIHN5bmNocm9ub3VzLgogbGV0IGFzc2VydDsKLWltcG9ydCgnYXNzZXJ0LmpzJyku
dGhlbigobW9kdWxlKSA9PiB7CitpbXBvcnQoJy4vYXNzZXJ0LmpzJykudGhlbigobW9kdWxlKSA9
PiB7CiAgICAgYXNzZXJ0ID0gbW9kdWxlOwotfSk7Cit9LCAkdm0uY3Jhc2gpOwogZHJhaW5NaWNy
b3Rhc2tzKCk7CiAKIGZ1bmN0aW9uIHRlc3QoZnVuYywgZGVzY3JpcHRpb24pIHsKQEAgLTMzLDcg
KzMzLDYgQEAgbGV0IGNvbnNvbGUgPSB7CiAgICAgfQogfTsKIAotLy8gVGhpcyBpcyBydW4gZnJv
bSB0aGUgc3BlYy10ZXN0cyBkaXJlY3RvcnkKLWxvYWQoIi4uL3NwZWMtaGFybmVzcy9zeW5jX2lu
ZGV4LmpzIik7Ci1sb2FkKCIuLi9zcGVjLWhhcm5lc3Mvd2FzbS1jb25zdGFudHMuanMiKTsKLWxv
YWQoIi4uL3NwZWMtaGFybmVzcy93YXNtLW1vZHVsZS1idWlsZGVyLmpzIik7Citsb2FkKCIuL3Nw
ZWMtaGFybmVzcy9zeW5jX2luZGV4LmpzIiwgImNhbGxlciByZWxhdGl2ZSIpOworbG9hZCgiLi9z
cGVjLWhhcm5lc3Mvd2FzbS1jb25zdGFudHMuanMiLCAiY2FsbGVyIHJlbGF0aXZlIik7Citsb2Fk
KCIuL3NwZWMtaGFybmVzcy93YXNtLW1vZHVsZS1idWlsZGVyLmpzIiwgImNhbGxlciByZWxhdGl2
ZSIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>